@modern-js/devtools-client 2.34.0 → 2.35.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 (124) hide show
  1. package/.turbo/turbo-build.log +133 -17
  2. package/CHANGELOG.md +9 -0
  3. package/build.sh +5 -0
  4. package/dist/html/main/index.html +5 -0
  5. package/dist/modern.config.json +30 -10
  6. package/dist/nestedRoutes.json +1 -1
  7. package/dist/route.json +3 -3
  8. package/dist/routes-manifest.json +198 -16
  9. package/dist/static/css/main.d8cf90b5.css +1 -0
  10. package/dist/static/css/vendors~node_modules_pnpm_emotion_styled_11_11_0__emotion_react_11_11_1__types_react_18_0_21_~8b4e97.f2739ed5.css +51 -0
  11. package/dist/static/js/async/config/builder/resolved/page.5c4715c4.js +1 -0
  12. package/dist/static/js/async/config/builder/resolved/page.5c4715c4.js.map +1 -0
  13. package/dist/static/js/async/config/builder/transformed/page.a05d2c7f.js +1 -0
  14. package/dist/static/js/async/config/builder/transformed/page.a05d2c7f.js.map +1 -0
  15. package/dist/static/js/async/config/bundler/resolved/page.2bc07a42.js +1 -0
  16. package/dist/static/js/async/config/bundler/resolved/page.2bc07a42.js.map +1 -0
  17. package/dist/static/js/async/config/bundler/transformed/page.704303d4.js +1 -0
  18. package/dist/static/js/async/config/bundler/transformed/page.704303d4.js.map +1 -0
  19. package/dist/static/js/async/config/framework/resolved/page.c78a652b.js +1 -0
  20. package/dist/static/js/async/config/framework/resolved/page.c78a652b.js.map +1 -0
  21. package/dist/static/js/async/config/framework/transformed/page.acd03a20.js +1 -0
  22. package/dist/static/js/async/config/framework/transformed/page.acd03a20.js.map +1 -0
  23. package/dist/static/js/async/config/layout.c988e6cc.js +1 -0
  24. package/dist/static/js/async/config/layout.c988e6cc.js.map +1 -0
  25. package/dist/static/js/async/config/page.6183831d.js +1 -0
  26. package/dist/static/js/async/config/page.6183831d.js.map +1 -0
  27. package/dist/static/js/async/context/builder/page.af1058db.js +1 -0
  28. package/dist/static/js/async/context/builder/page.af1058db.js.map +1 -0
  29. package/dist/static/js/async/context/framework/page.65d0c64b.js +1 -0
  30. package/dist/static/js/async/context/framework/page.65d0c64b.js.map +1 -0
  31. package/dist/static/js/async/context/layout.69e165a7.js +1 -0
  32. package/dist/static/js/async/context/layout.69e165a7.js.map +1 -0
  33. package/dist/static/js/async/context/page.d7bb42e1.js +1 -0
  34. package/dist/static/js/async/context/page.d7bb42e1.js.map +1 -0
  35. package/dist/static/js/async/overview/page.d26d09d5.js +1 -0
  36. package/dist/static/js/async/overview/page.d26d09d5.js.map +1 -0
  37. package/dist/static/js/async/page.3a64325e.js +1 -0
  38. package/dist/static/js/async/page.3a64325e.js.map +1 -0
  39. package/dist/static/js/async/pages/layout.45470473.js +1 -0
  40. package/dist/static/js/async/pages/layout.45470473.js.map +1 -0
  41. package/dist/static/js/async/pages/page.27267daf.js +1 -0
  42. package/dist/static/js/async/pages/page.27267daf.js.map +1 -0
  43. package/dist/static/js/lib-lodash.d4590abd.js +1 -0
  44. package/dist/static/js/lib-lodash.d4590abd.js.map +1 -0
  45. package/dist/static/js/lib-polyfill.6e913595.js +1 -0
  46. package/dist/static/js/lib-polyfill.6e913595.js.map +1 -0
  47. package/dist/static/js/lib-react.e7e80806.js +1 -0
  48. package/dist/static/js/{lib-react.be1fdbe9.js.LICENSE.txt → lib-react.e7e80806.js.LICENSE.txt} +11 -1
  49. package/dist/static/js/lib-react.e7e80806.js.map +1 -0
  50. package/dist/static/js/lib-router.a49a7033.js +1 -0
  51. package/dist/static/js/{lib-router.7b48a0f0.js.LICENSE.txt → lib-router.a49a7033.js.LICENSE.txt} +3 -3
  52. package/dist/static/js/{lib-router.7b48a0f0.js.map → lib-router.a49a7033.js.map} +1 -1
  53. package/dist/static/js/main.31be2b44.js +1 -0
  54. package/dist/static/js/main.31be2b44.js.map +1 -0
  55. package/dist/static/js/vendors~node_modules_pnpm_emotion_styled_11_11_0__emotion_react_11_11_1__types_react_18_0_21_~8b4e97.a3a62da9.js +1 -0
  56. package/dist/static/js/vendors~node_modules_pnpm_emotion_styled_11_11_0__emotion_react_11_11_1__types_react_18_0_21_~8b4e97.a3a62da9.js.LICENSE.txt +39 -0
  57. package/dist/static/js/vendors~node_modules_pnpm_emotion_styled_11_11_0__emotion_react_11_11_1__types_react_18_0_21_~8b4e97.a3a62da9.js.map +1 -0
  58. package/modern.config.ts +42 -3
  59. package/package.json +28 -8
  60. package/scripts/build-redirects.js +32 -0
  61. package/scripts/deploy-netlify.js +0 -0
  62. package/src/.eslintrc.js +4 -0
  63. package/src/components/Breadcrumbs.tsx +43 -0
  64. package/src/components/ObjectInspector.tsx +37 -0
  65. package/src/constants.tsx +34 -0
  66. package/src/routes/RootTabs.tsx +148 -0
  67. package/src/routes/config/builder/resolved/page.tsx +17 -0
  68. package/src/routes/config/builder/transformed/page.tsx +17 -0
  69. package/src/routes/config/bundler/resolved/page.tsx +17 -0
  70. package/src/routes/config/bundler/transformed/page.tsx +17 -0
  71. package/src/routes/config/framework/resolved/page.tsx +17 -0
  72. package/src/routes/config/framework/transformed/page.tsx +17 -0
  73. package/src/routes/config/layout.tsx +68 -0
  74. package/src/routes/config/page.loader.ts +7 -0
  75. package/src/routes/config/page.tsx +1 -0
  76. package/src/routes/context/builder/page.tsx +12 -0
  77. package/src/routes/context/framework/page.tsx +14 -0
  78. package/src/routes/context/layout.tsx +38 -0
  79. package/src/routes/context/page.loader.ts +7 -0
  80. package/src/routes/context/page.tsx +1 -0
  81. package/src/routes/layout.css +3 -0
  82. package/src/routes/layout.tsx +25 -0
  83. package/src/routes/overview/heading.svg +12 -0
  84. package/src/routes/overview/page.tsx +122 -0
  85. package/src/routes/page.loader.ts +7 -0
  86. package/src/routes/page.tsx +1 -0
  87. package/src/routes/pages/BaseRoute.tsx +87 -0
  88. package/src/routes/pages/EntryRoute/ClientRouteStats/ClientRouteStats.tsx +42 -0
  89. package/src/routes/pages/EntryRoute/ClientRouteStats/LegacyRouteStats.tsx +6 -0
  90. package/src/routes/pages/EntryRoute/ClientRouteStats/RemixRoute.tsx +85 -0
  91. package/src/routes/pages/EntryRoute/ClientRouteStats/RemixRouteStats.tsx +44 -0
  92. package/src/routes/pages/EntryRoute/ClientRouteStats/index.ts +1 -0
  93. package/src/routes/pages/EntryRoute/EntryRoute.tsx +25 -0
  94. package/src/routes/pages/EntryRoute/EntryStats.tsx +44 -0
  95. package/src/routes/pages/EntryRoute/MatchRemixRouteContext.ts +6 -0
  96. package/src/routes/pages/EntryRoute/index.ts +1 -0
  97. package/src/routes/pages/MatchUrl.tsx +3 -0
  98. package/src/routes/pages/ServerRoute.tsx +21 -0
  99. package/src/routes/pages/UnknownRoute.tsx +20 -0
  100. package/src/routes/pages/layout.tsx +13 -0
  101. package/src/routes/pages/page.tsx +54 -0
  102. package/src/rpc/index.ts +36 -0
  103. package/src/stores/index.tsx +141 -0
  104. package/src/types/index.ts +62 -0
  105. package/src/utils/context.tsx +22 -0
  106. package/src/utils/hooks.ts +23 -0
  107. package/src/utils/index.ts +1 -0
  108. package/dist/html/devtools/index.html +0 -5
  109. package/dist/static/css/async/devtools_page.215ea1d3.css +0 -1
  110. package/dist/static/js/async/devtools_page.8337a013.js +0 -1
  111. package/dist/static/js/async/devtools_page.8337a013.js.map +0 -1
  112. package/dist/static/js/devtools.56bf0fe9.js +0 -1
  113. package/dist/static/js/devtools.56bf0fe9.js.map +0 -1
  114. package/dist/static/js/lib-polyfill.db4711e8.js +0 -1
  115. package/dist/static/js/lib-polyfill.db4711e8.js.map +0 -1
  116. package/dist/static/js/lib-react.be1fdbe9.js +0 -1
  117. package/dist/static/js/lib-react.be1fdbe9.js.map +0 -1
  118. package/dist/static/js/lib-router.7b48a0f0.js +0 -1
  119. package/dist/static/js/vendors~node_modules_pnpm_loadable_component_5_15_3_react_18_2_0_node_modules_loadable_compon~2b20fe.2a50a754.js +0 -1
  120. package/dist/static/js/vendors~node_modules_pnpm_loadable_component_5_15_3_react_18_2_0_node_modules_loadable_compon~2b20fe.2a50a754.js.LICENSE.txt +0 -24
  121. package/dist/static/js/vendors~node_modules_pnpm_loadable_component_5_15_3_react_18_2_0_node_modules_loadable_compon~2b20fe.2a50a754.js.map +0 -1
  122. package/src/devtools/routes/index.css +0 -115
  123. package/src/devtools/routes/layout.tsx +0 -9
  124. package/src/devtools/routes/page.tsx +0 -19
@@ -0,0 +1,54 @@
1
+ import styled from '@emotion/styled';
2
+ import { Box, Text, TextField } from '@radix-ui/themes';
3
+ import React, { useState } from 'react';
4
+ import { useSnapshot } from 'valtio';
5
+ import { MatchUrlContext } from './MatchUrl';
6
+ import { ServerRoute } from './ServerRoute';
7
+ import { useStore } from '@/stores';
8
+
9
+ const Page: React.FC = () => {
10
+ const $store = useStore();
11
+ const store = useSnapshot($store);
12
+ const { serverRoutes } = store.framework.context;
13
+
14
+ const [testingUrl, setTestingUrl] = useState<string>('');
15
+
16
+ return (
17
+ <MatchUrlContext.Provider value={testingUrl}>
18
+ <Container>
19
+ <Box>
20
+ <TextField.Root>
21
+ <TextField.Slot>
22
+ <Text size="2">test:</Text>
23
+ </TextField.Slot>
24
+ <TextField.Input
25
+ placeholder="/foo?bar#baz"
26
+ onChange={e => setTestingUrl(e.target.value)}
27
+ type="search"
28
+ autoComplete="false"
29
+ autoCapitalize="false"
30
+ autoCorrect="false"
31
+ />
32
+ </TextField.Root>
33
+ </Box>
34
+ <Box height="2" />
35
+ <RoutesContainer>
36
+ {serverRoutes.map(route => (
37
+ <ServerRoute key={route.entryPath} route={route} />
38
+ ))}
39
+ </RoutesContainer>
40
+ </Container>
41
+ </MatchUrlContext.Provider>
42
+ );
43
+ };
44
+
45
+ export default Page;
46
+
47
+ const Container = styled(Box)({});
48
+
49
+ const RoutesContainer = styled(Box)({
50
+ display: 'flex',
51
+ flexDirection: 'column',
52
+ gap: 'var(--space-2)',
53
+ justifyContent: 'space-between',
54
+ });
@@ -0,0 +1,36 @@
1
+ import { ClientFunctions, ServerFunctions } from '@modern-js/devtools-kit';
2
+ import { createBirpc } from 'birpc';
3
+ import { StoreContextValue } from '@/types';
4
+
5
+ export interface SetupOptions {
6
+ url: string;
7
+ $store: StoreContextValue;
8
+ }
9
+
10
+ export const setupServerConnection = async (options: SetupOptions) => {
11
+ const { url, $store } = options;
12
+ const ws = new window.WebSocket(url);
13
+
14
+ const server = createBirpc<ServerFunctions, ClientFunctions>(
15
+ {
16
+ refresh: () => location.reload(),
17
+ updateFileSystemRoutes({ entrypoint, routes }) {
18
+ $store.framework.fileSystemRoutes[entrypoint.entryName] = routes;
19
+ },
20
+ },
21
+ {
22
+ post: data => ws.send(data),
23
+ on: cb => (ws.onmessage = cb),
24
+ serialize: v => JSON.stringify(v),
25
+ deserialize: v => JSON.parse(v.data.toString()),
26
+ },
27
+ );
28
+
29
+ await new Promise<void>((resolve, reject) => {
30
+ ws.onopen = () => resolve();
31
+ ws.onerror = () =>
32
+ reject(new Error(`Failed connect to WebSocket server: ${url}`));
33
+ });
34
+
35
+ return { server };
36
+ };
@@ -0,0 +1,141 @@
1
+ import _ from 'lodash';
2
+ import { FC, ReactElement, createContext, useContext, useMemo } from 'react';
3
+ import { useAsync } from 'react-use';
4
+ import createDeferPromise from 'p-defer';
5
+ import { getQuery } from 'ufo';
6
+ import {
7
+ AppContext,
8
+ BuilderContext,
9
+ TransformedFrameworkConfig,
10
+ FrameworkConfig,
11
+ BuilderConfig,
12
+ NormalizedBuilderConfig,
13
+ BundlerConfig,
14
+ ClientDefinition,
15
+ } from '@modern-js/devtools-kit';
16
+ import { ref, useSnapshot } from 'valtio';
17
+ import { setupServerConnection } from '@/rpc';
18
+ import { useProxyFrom } from '@/utils/hooks';
19
+ import { StoreContextValue } from '@/types';
20
+ import { getDefaultTabs } from '@/constants';
21
+
22
+ const StoreContext = createContext<unknown>(null);
23
+
24
+ const getDataSource = () => {
25
+ const src =
26
+ getQuery(location.href).src ||
27
+ sessionStorage.getItem('devtools-data-source');
28
+ if (!_.isString(src)) {
29
+ throw new TypeError(`Can't connection to data source: ${src || '<EMPTY>'}`);
30
+ }
31
+ sessionStorage.setItem('devtools-data-source', src);
32
+ return src;
33
+ };
34
+
35
+ const createDeferredTasks = () => ({
36
+ framework: {
37
+ context: createDeferPromise<AppContext>(),
38
+ config: {
39
+ resolved: createDeferPromise<FrameworkConfig>(),
40
+ transformed: createDeferPromise<TransformedFrameworkConfig>(),
41
+ },
42
+ },
43
+ builder: {
44
+ context: createDeferPromise<BuilderContext>(),
45
+ config: {
46
+ resolved: createDeferPromise<BuilderConfig>(),
47
+ transformed: createDeferPromise<NormalizedBuilderConfig>(),
48
+ },
49
+ },
50
+ bundler: {
51
+ config: {
52
+ resolved: createDeferPromise<BundlerConfig[]>(),
53
+ transformed: createDeferPromise<BundlerConfig[]>(),
54
+ },
55
+ },
56
+ dependencies: createDeferPromise<Record<string, string>>(),
57
+ compileTimeCost: createDeferPromise<number>(),
58
+ clientDefinition: createDeferPromise<ClientDefinition>(),
59
+ });
60
+
61
+ export const StoreContextProvider: FC<{ children: ReactElement }> = ({
62
+ children,
63
+ }) => {
64
+ const dataSource = useMemo(getDataSource, []);
65
+ const deferred = useMemo(createDeferredTasks, []);
66
+
67
+ const $store = useProxyFrom<StoreContextValue>(() => ({
68
+ dataSource,
69
+ location: '/',
70
+ framework: {
71
+ context: deferred.framework.context.promise,
72
+ fileSystemRoutes: {},
73
+ config: {
74
+ resolved: deferred.framework.config.resolved.promise,
75
+ transformed: deferred.framework.config.transformed.promise,
76
+ },
77
+ },
78
+ builder: {
79
+ context: deferred.builder.context.promise,
80
+ config: {
81
+ resolved: deferred.builder.config.resolved.promise,
82
+ transformed: deferred.builder.config.transformed.promise,
83
+ },
84
+ },
85
+ bundler: {
86
+ config: {
87
+ resolved: deferred.bundler.config.resolved.promise,
88
+ transformed: deferred.bundler.config.transformed.promise,
89
+ },
90
+ },
91
+ tabs: getDefaultTabs().map(tab => ref(tab)),
92
+ version: process.env.PKG_VERSION!,
93
+ dependencies: deferred.dependencies.promise,
94
+ compileTimeCost: deferred.compileTimeCost.promise,
95
+ name: deferred.clientDefinition.promise.then(def => def.name),
96
+ packages: deferred.clientDefinition.promise.then(def => def.packages),
97
+ assets: deferred.clientDefinition.promise.then(def => def.assets),
98
+ }));
99
+
100
+ useAsync(async () => {
101
+ const { server } = await setupServerConnection({ url: dataSource, $store });
102
+
103
+ deferred.framework.context.resolve(server.getAppContext());
104
+ deferred.framework.config.resolved.resolve(server.getFrameworkConfig());
105
+ deferred.framework.config.transformed.resolve(
106
+ server.getTransformedFrameworkConfig(),
107
+ );
108
+ deferred.builder.context.resolve(server.getBuilderContext());
109
+ deferred.builder.config.resolved.resolve(server.getBuilderConfig());
110
+ deferred.builder.config.transformed.resolve(
111
+ server.getTransformedBuilderConfig(),
112
+ );
113
+ deferred.bundler.config.resolved.resolve(server.getBundlerConfigs());
114
+ deferred.bundler.config.transformed.resolve(
115
+ server.getTransformedBundlerConfigs(),
116
+ );
117
+ deferred.dependencies.resolve(server.getDependencies());
118
+ deferred.compileTimeCost.resolve(server.getCompileTimeCost());
119
+ deferred.clientDefinition.resolve(server.getClientDefinition());
120
+
121
+ const ctx = await $store.framework.context;
122
+ for (const { entryName } of ctx.entrypoints) {
123
+ $store.framework.fileSystemRoutes[entryName] =
124
+ server.getFileSystemRoutes(entryName);
125
+ }
126
+ }, [dataSource, deferred]);
127
+
128
+ return (
129
+ <StoreContext.Provider value={$store}>{children}</StoreContext.Provider>
130
+ );
131
+ };
132
+
133
+ export const useStore = () => {
134
+ const ctx = useContext(StoreContext);
135
+ if (!ctx) {
136
+ throw new Error("Can't resolve the context of global store.");
137
+ }
138
+ return ctx as StoreContextValue;
139
+ };
140
+
141
+ export const useStoreSnapshot = () => useSnapshot(useStore());
@@ -0,0 +1,62 @@
1
+ import type {
2
+ AppContext,
3
+ AssetDefinition,
4
+ BuilderConfig,
5
+ BuilderContext,
6
+ BundlerConfig,
7
+ CustomTabView,
8
+ FileSystemRoutes,
9
+ NameDefinition,
10
+ NormalizedBuilderConfig,
11
+ PackageDefinition,
12
+ TransformedFrameworkConfig,
13
+ } from '@modern-js/devtools-kit';
14
+ import { FrameworkConfig } from '@modern-js/devtools-kit';
15
+ import { ReactElement } from 'react';
16
+ import { Promisable } from 'type-fest';
17
+
18
+ export interface StoreContextValue {
19
+ dataSource: string;
20
+ framework: {
21
+ context: Promise<AppContext>;
22
+ fileSystemRoutes: Record<string, Promisable<FileSystemRoutes>>;
23
+ config: {
24
+ resolved: Promise<FrameworkConfig>;
25
+ transformed: Promise<TransformedFrameworkConfig>;
26
+ };
27
+ };
28
+ builder: {
29
+ context: Promise<BuilderContext>;
30
+ config: {
31
+ resolved: Promise<BuilderConfig>;
32
+ transformed: Promise<NormalizedBuilderConfig>;
33
+ };
34
+ };
35
+ bundler: {
36
+ config: {
37
+ resolved: Promise<BundlerConfig[]>;
38
+ transformed: Promise<BundlerConfig[]>;
39
+ };
40
+ };
41
+ tabs: InternalTab[];
42
+ version: string;
43
+ dependencies: Promise<Record<string, string>>;
44
+ compileTimeCost: Promise<number>;
45
+ name: Promise<NameDefinition>;
46
+ packages: Promise<PackageDefinition>;
47
+ assets: Promise<AssetDefinition>;
48
+ }
49
+
50
+ export interface BuiltinTabView {
51
+ type: 'builtin';
52
+ url: string;
53
+ }
54
+
55
+ export type InternalTabView = CustomTabView | BuiltinTabView;
56
+
57
+ export interface InternalTab {
58
+ name: string;
59
+ title: string;
60
+ view: InternalTabView;
61
+ icon?: ReactElement;
62
+ }
@@ -0,0 +1,22 @@
1
+ import { createContext, FC, useContext, useMemo } from 'react';
2
+ import { proxy } from 'valtio';
3
+ import { Promisable } from 'type-fest';
4
+
5
+ export function createStoreContext<T extends object>(
6
+ initializer: () => Promisable<T>,
7
+ ) {
8
+ const InnerContext = createContext<unknown>(null);
9
+ const Provider: FC<{ children: React.ReactElement }> = ({ children }) => {
10
+ const _value = useMemo(() => initializer(), []);
11
+ return (
12
+ <InnerContext.Provider value={proxy(_value)}>
13
+ {children}
14
+ </InnerContext.Provider>
15
+ );
16
+ };
17
+ const _use = () => useContext(InnerContext) as T;
18
+ return {
19
+ Provider,
20
+ use: _use,
21
+ };
22
+ }
@@ -0,0 +1,23 @@
1
+ import _ from 'lodash';
2
+ import React, { useMemo } from 'react';
3
+ import { proxy, useSnapshot } from 'valtio';
4
+
5
+ export const useProxyFrom = <T extends object>(initializer: () => T) => {
6
+ return useMemo(() => proxy(initializer()), []);
7
+ };
8
+
9
+ export const useStoreMap = <T extends object, P extends keyof T>(
10
+ arr: T[],
11
+ keyProp?: P,
12
+ ): [React.Key, T][] => {
13
+ const prop = keyProp ?? 'key';
14
+ const pairs = useSnapshot(arr).map(i => {
15
+ const key = (i as any)[prop];
16
+ if (_.isString(key) || _.isNumber(key)) {
17
+ return [key, proxy(i)] as [React.Key, T];
18
+ } else {
19
+ throw new TypeError(`Can't found correct key field.`);
20
+ }
21
+ });
22
+ return pairs;
23
+ };
@@ -0,0 +1 @@
1
+ export * from './context';
@@ -1,5 +0,0 @@
1
- <!doctype html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no,viewport-fit=cover,minimum-scale=1,maximum-scale=1,user-scalable=no"><meta http-equiv="x-ua-compatible" content="ie=edge"><meta name="renderer" content="webkit"><meta name="layoutmode" content="standard"><meta name="imagemode" content="force"><meta name="wap-font-scale" content="no"><meta name="format-detection" content="telephone=no"><title></title><script defer="defer">!function(){var e,t,r,n,o,i,a,u,l,s,c={},d={};function f(e){var t=d[e];if(void 0!==t)return t.exports;var r=d[e]={exports:{}};return c[e](r,r.exports,f),r.exports}f.m=c,f.es=function(e,t){return Object.keys(e).forEach((function(r){"default"!==r&&!Object.prototype.hasOwnProperty.call(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})})),e},e={30251:["devtools_page","vendors~node_modules_pnpm_loadable_component_5_15_3_react_18_2_0_node_modules_loadable_compon~2b20fe"]},f.el=function(t){var r=e[t];return void 0===r?Promise.resolve():r.length>1?Promise.all(r.map(f.e)):f.e(r[0])},f.f={},f.e=function(e){return Promise.all(Object.keys(f.f).reduce((function(t,r){return f.f[r](e,t),t}),[]))},f.p="/",f.u=function(e){return{devtools_page:"static/js/async/devtools_page.8337a013.js"}[e]},f.k=function(e){return{devtools_page:"static/css/async/devtools_page.215ea1d3.css"}[e]},t={},f.l=function(e,r,n,o){if(t[e])t[e].push(r);else{if(void 0!==n)for(var i,a,u=document.getElementsByTagName("script"),l=0;l<u.length;l++){var s=u[l];if(s.getAttribute("src")==e){i=s;break}}!i&&(a=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,i.src=e),t[e]=[r];var c=function(r,n){i.onerror=i.onload=null,clearTimeout(d);var o=t[e];if(delete t[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((function(e){return e(n)})),r)return r(n)},d=setTimeout(c.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=c.bind(null,i.onerror),i.onload=c.bind(null,i.onload),a&&document.head.appendChild(i)}},f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r=[],f.O=function(e,t,n,o){if(!t){var i=1/0;for(s=0;s<r.length;s++){t=r[s][0],n=r[s][1],o=r[s][2];for(var a=!0,u=0;u<t.length;u++)i>=o&&Object.keys(f.O).every((function(e){return f.O[e](t[u])}))?t.splice(u--,1):(a=!1,o<i&&(i=o));if(a){r.splice(s--,1);var l=n();void 0!==l&&(e=l)}}return e}o=o||0;for(var s=r.length;s>0&&r[s-1][2]>o;s--)r[s]=r[s-1];r[s]=[t,n,o]},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.d=function(e,t){for(var r in t)f.o(t,r)&&!f.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.n=function(e){return e&&e.__esModule?e.default:e},n={},o="webpack",i="data-webpack-loading",a=function(e,t,r,n){var a,u,l="chunk-"+e;if(!n){for(var s=document.getElementsByTagName("link"),c=0;c<s.length;c++){var d=s[c],p=d.getAttribute("href")||d.href;if(p&&!p.startsWith(f.p)&&(p=f.p+(p.startsWith("/")?p.slice(1):p)),"stylesheet"==d.rel&&(p&&p.startsWith(t)||d.getAttribute("data-webpack")==o+":"+l)){a=d;break}}if(!r)return a}!a&&(u=!0,(a=document.createElement("link")).setAttribute("data-webpack",o+":"+l),a.setAttribute(i,1),a.rel="stylesheet",a.href=t);var v=function(e,t){if(a.onerror=a.onload=null,a.removeAttribute(i),clearTimeout(m),t&&"load"!=t.type&&a.parentNode.removeChild(a),r(t),e)return e(t)};if(a.getAttribute(i)){var m=setTimeout(v.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=v.bind(null,a.onerror),a.onload=v.bind(null,a.onload)}else v(void 0,{type:"load",target:a});return n?n.parentNode.insertBefore(a,n):u&&document.head.appendChild(a),a},f.f.css=function(e,t){var r=f.o(n,e)?n[e]:void 0;if(0!==r)if(r)t.push(r[2]);else if(["devtools_page"].indexOf(e)>-1){var o=new Promise((function(t,o){r=n[e]=[t,o]}));t.push(r[2]=o);var i=f.p+f.k(e),u=Error();a(e,i,(function(t){if(f.o(n,e)&&(0!==(r=n[e])&&(n[e]=void 0),r))if("load"!==t.type){var o=t&&t.type,i=t&&t.target&&t.target.src;u.message="Loading css chunk "+e+" failed.\n("+o+": "+i+")",u.name="ChunkLoadError",u.type=o,u.request=i,r[1](u)}else r[0]()}))}else n[e]=0},u={"builder-runtime":0},f.f.j=function(e,t){var r=f.o(u,e)?u[e]:void 0;if(0!==r)if(r)t.push(r[2]);else if(e){var n=new Promise((function(t,n){r=u[e]=[t,n]}));t.push(r[2]=n);var o=f.p+f.u(e),i=Error();f.l(o,(function(t){if(f.o(u,e)&&(0!==(r=u[e])&&(u[e]=void 0),r)){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+e+" failed.\n("+n+": "+o+")",i.name="ChunkLoadError",i.type=n,i.request=o,r[1](i)}}),"chunk-"+e,e)}else u[e]=0},f.O.j=function(e){return 0===u[e]},l=function(e,t){var r,n,o=t[0],i=t[1],a=t[2],l=0;if(o.some((function(e){return 0!==u[e]}))){for(r in i)f.o(i,r)&&(f.m[r]=i[r]);if(a)var s=a(f)}for(e&&e(t);l<o.length;l++)n=o[l],f.o(u,n)&&u[n]&&u[n][0](),u[n]=0;return f.O(s)},(s=self.webpackChunk_modern_js_devtools_client=self.webpackChunk_modern_js_devtools_client||[]).forEach(l.bind(null,0)),s.push=l.bind(null,s.push.bind(s))}()</script><script >
2
- ;(function(){
3
- window._MODERNJS_ROUTE_MANIFEST = {"routeAssets":{"devtools":{"chunkIds":["builder-runtime","lib-react","lib-polyfill","lib-router","vendors~node_modules_pnpm_loadable_component_5_15_3_react_18_2_0_node_modules_loadable_compon~2b20fe","devtools"],"assets":["static/js/lib-react.be1fdbe9.js","static/js/lib-polyfill.db4711e8.js","static/js/lib-router.7b48a0f0.js","static/js/vendors~node_modules_pnpm_loadable_component_5_15_3_react_18_2_0_node_modules_loadable_compon~2b20fe.2a50a754.js","static/js/devtools.56bf0fe9.js"],"referenceCssAssets":[]},"devtools_page":{"chunkIds":["vendors~node_modules_pnpm_loadable_component_5_15_3_react_18_2_0_node_modules_loadable_compon~2b20fe","devtools_page"],"assets":["static/js/vendors~node_modules_pnpm_loadable_component_5_15_3_react_18_2_0_node_modules_loadable_compon~2b20fe.2a50a754.js","static/js/async/devtools_page.8337a013.js","static/css/async/devtools_page.215ea1d3.css"],"referenceCssAssets":["static/css/async/devtools_page.215ea1d3.css"]}}};
4
- })();
5
- </script><script defer="defer" src="/static/js/lib-react.be1fdbe9.js"></script><script defer="defer" src="/static/js/lib-polyfill.db4711e8.js"></script><script defer="defer" src="/static/js/lib-router.7b48a0f0.js"></script><script defer="defer" src="/static/js/vendors~node_modules_pnpm_loadable_component_5_15_3_react_18_2_0_node_modules_loadable_compon~2b20fe.2a50a754.js"></script><script defer="defer" src="/static/js/devtools.56bf0fe9.js"></script></head><body><div id="root"><!--<?- html ?>--></div><!--<?- chunksMap.js ?>--><!--<?- SSRDataScript ?>--></body></html>
@@ -1 +0,0 @@
1
- html,body{padding:0;margin:0;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif;background:linear-gradient(to bottom,transparent,#fff)#eceeef}p{margin:0}*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}.container-box{min-height:100vh;max-width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding-top:10px}main{flex:1 1;display:flex;flex-direction:column;justify-content:center;align-items:center}.title{display:flex;margin:4rem 0;align-items:center;font-size:4rem;font-weight:600}.logo{width:6rem;margin:7px 0 0 1rem}.name{color:#4ecaff}.description{text-align:center;line-height:1.5;font-size:1.3rem;color:#1b3a42;margin-bottom:5rem}.code{background:#fafafa;border-radius:12px;padding:.6rem .9rem;font-size:1.05rem;font-family:Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace}.container-box .grid{display:flex;align-items:center;justify-content:center;width:1100px;margin-top:3rem}.card{padding:1.5rem;display:flex;flex-direction:column;justify-content:center;height:100px;color:inherit;text-decoration:none;transition:.15s ease;width:45%}.card:hover,.card:focus{transform:scale(1.05)}.card h2{display:flex;align-items:center;font-size:1.5rem;margin:0;padding:0}.card p{opacity:.6;font-size:.9rem;line-height:1.5;margin-top:1rem}.arrow-right{width:1.3rem;margin-left:.5rem;margin-top:3px}
@@ -1 +0,0 @@
1
- (self.webpackChunk_modern_js_devtools_client=self.webpackChunk_modern_js_devtools_client||[]).push([["devtools_page"],{38597:function(e,n,s){"use strict";s.r(n);var c=s("61741");s.es(c,n)},94439:function(e,n,s){},30251:function(e,n,s){"use strict";s.r(n),s.d(n,{default:function(){return i}});var c=s("9880"),t=s("38597");s("94439");var i=()=>(0,c.jsxs)("div",{className:"container-box",children:[(0,c.jsx)(t.Helmet,{children:(0,c.jsx)("link",{rel:"icon",type:"image/x-icon",href:"https://lf3-static.bytednsdoc.com/obj/eden-cn/uhbfnupenuhf/favicon.ico"})}),(0,c.jsx)("main",{children:(0,c.jsx)("div",{className:"title",children:"Hello DevTools!"})})]})}}]);
@@ -1 +0,0 @@
1
- {"version":3,"file":"static/js/async/devtools_page.8337a013.js","sources":["./src/devtools/routes/page.tsx"],"sourcesContent":["import{Helmet}from'@modern-js/runtime/head';import'./index.css';const Index=()=><div className=\"container-box\">\n <Helmet>\n <link rel=\"icon\"type=\"image/x-icon\"href=\"https://lf3-static.bytednsdoc.com/obj/eden-cn/uhbfnupenuhf/favicon.ico\"/>\n </Helmet>\n <main>\n <div className=\"title\">Hello DevTools!</div>\n </main>\n </div>;export default Index;"],"names":["className","Helmet","rel","type","href"],"mappings":"6UAOS,MAPmE,IAAI,WAAC,OAAIA,UAAU,gB,UAC3F,UAAC,EAAAC,MAAM,E,SACL,UAAC,QAAKC,IAAI,OAAMC,KAAK,eAAcC,KAAK,wE,KAE1C,UAAC,Q,SACC,UAAC,OAAIJ,UAAU,Q,SAAQ,iB"}
@@ -1 +0,0 @@
1
- (self.webpackChunk_modern_js_devtools_client=self.webpackChunk_modern_js_devtools_client||[]).push([["devtools"],{67271:function(n,r,t){"use strict";t.r(r),t.d(r,{createApp:function(){return x},bootstrap:function(){return E}});var e,o=t("61078"),u=t("20891"),i=t("15169"),a=t("85056"),c=t("93160"),l=t("73706"),s=t("9880"),f=t("57814"),d=t.n(f),p=t("99428"),v=t.n(p),_=t("47328"),h=t("38338"),m=t("31971"),g=t("97511"),y=new WeakMap,R=function(n){return{loaderManager:(0,g.createLoaderManager)({}),runner:n,isBrowser:!0,routeManifest:"undefined"!=typeof window&&window[_.ROUTE_MANIFEST]}},x=function(n){var r=n.plugins,t=n.props,e=m.runtime.clone();return e.usePlugin.apply(e,(0,c._)(r)),function(n){var r=e.init(),o=function(t){var e,o=d.createElement(n||d.Fragment,n?(0,i._)({},t):null,n?t.children:d.cloneElement(t.children,(0,i._)({},null===(e=t.children)||void 0===e?void 0:e.props,t))),u=(0,f.useContext)(h.RuntimeReactContext);return r.provide({element:o,props:(0,i._)({},t),context:u},{onLast:function(n){return n.element}})};n&&v(o,n);var u=r.hoc({App:o},{onLast:function(n){var e=n.App;return v(function(n){var o,u=n.context,c=(0,a._)(n,["context"]),l=u;!(null===(o=l)||void 0===o?void 0:o.runner)&&(l=R(r),r.init({context:l},{onLast:function(n){var r,t=n.context;return null==e?void 0:null===(r=e.init)||void 0===r?void 0:r.call(e,t)}}));var f=(0,i._)({},c,t);return(0,s.jsx)(h.RuntimeReactContext.Provider,{value:l,children:(0,s.jsx)(e,(0,i._)({},f))})},e)}});return y.set(u,r),u}};var E=(e=(0,o._)(function(n,r,t,e){var o,a,c,s,f,p,v,_,h,m,E,b,w,A,j,O,L,M;return(0,l._)(this,function(l){switch(l.label){case 0:var S;if(o=n,!(a=y.get(o))&&(o=x({plugins:[]})(o),a=y.get(o)),c=R(a),s=function(n){return a.init({context:n},{onLast:function(n){var r,t,e=n.context;return null===(t=o)||void 0===t?void 0:null===(r=t.init)||void 0===r?void 0:r.call(t,e)}})},!r)return[2,d.createElement(o,{context:c})];if(!("undefined"!=typeof window&&"nodejs"!==window.name))return[3,4];if(!("string"==typeof(S=r)||"undefined"!=typeof HTMLElement&&(0,u._)(S,HTMLElement)))return[3,2];return b=Object.keys(E=(null===(p=m=window._SSR_DATA)||void 0===p?void 0:null===(f=p.data)||void 0===f?void 0:f.loadersData)||{}).reduce(function(n,r){var t=E[r];return!1!==t.loading?n:(n[r]=t,n)},{}),Object.assign(c,(0,i._)({loaderManager:(0,g.createLoaderManager)(b,{skipStatic:!0})},m?{ssrContext:null===(v=m)||void 0===v?void 0:v.context}:{})),c.initialData=null===(h=m)||void 0===h?void 0:null===(_=h.data)||void 0===_?void 0:_.initialData,[4,s(c)];case 1:if((w=l.sent())&&(c.initialData=w),A="string"!=typeof r?r:document.getElementById(r||"root"),!e)throw Error("The `bootstrap` need provide `ReactDOM` parameter");return j=function(n){if(t)t.render(n);else if(e.createRoot)e.createRoot(A).render(n);else throw Error("The `bootstrap` `ReactDOM` parameter needs to provide the `createRoot` method")},O=function(n,r){if(!e.hydrateRoot)throw Error("The `bootstrap` `ReactDOM` parameter needs to provide the `hydrateRoot` method");e.hydrateRoot(A,n)},[2,a.client({App:o,context:c,ModernRender:j,ModernHydrate:O},{onLast:function(n){var r=n.App;j(d.createElement(r,{context:c}))}})];case 2:throw Error("`bootstrap` needs id in browser environment, it needs to be string or element");case 3:return[3,6];case 4:return Object.assign(c,{ssrContext:r,isBrowser:!1,loaderManager:(0,g.createLoaderManager)({},{skipNonStatic:r.staticGenerate,skipStatic:!r.staticGenerate})}),L=function(n){if("undefined"!=typeof Response&&(0,u._)(n,Response)&&n.status>=300&&n.status<=399){var r=n.status,t=n.headers.get("Location")||"/",e=c.ssrContext;return e&&(e.res.statusCode=r,e.res.setHeader("Location",t),e.redirection=e.redirection||{},e.redirection.status=r,e.redirection.url=t),!0}return!1},[4,s(c)];case 5:if(!L(M=l.sent()))return c.initialData=M,[2,a.server({App:o,context:c})];l.label=6;case 6:return[2]}})}),function(n,r,t,o){return e.apply(this,arguments)})},17500:function(n,r,t){"use strict";t.r(r),t.d(r,{RuntimeReactContext:function(){return o.RuntimeReactContext}});var e=t("67271");t.es(e,r);var o=t("38338"),u=t("89323");t.es(u,r)},97511:function(n,r,t){"use strict";t.r(r),t.d(r,{createLoaderManager:function(){return v}});var e,o,u=t("61078"),i=t("20891"),a=t("28003"),c=t("93160"),l=t("73706"),s=t("44463"),f=t.n(s),d=function(){var n=new Map;return function(r){var t=n.get(r);if(t)return t;var e=JSON.stringify(r);return f(e,"params should be not null value"),n.set(r,e),e}};(e=o||(o={}))[e.idle=0]="idle",e[e.loading=1]="loading",e[e.fulfilled=2]="fulfilled",e[e.rejected=3]="rejected";var p=function(n){var r,t,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{loading:!1,reloading:!1,data:void 0,error:void 0},a=arguments.length>2?arguments[2]:void 0,s=arguments.length>3&&void 0!==arguments[3]&&arguments[3],f=o.idle,d=e.data,p=e.error,v=!1,_=new Set;var h=(r=(0,u._)(function(){return(0,l._)(this,function(n){return s||f===o.loading?[2,t]:(f=o.loading,g(),[2,t=a().then(function(n){d=n,p=null,f=o.fulfilled}).catch(function(n){p=n,d=null,f=o.rejected}).finally(function(){t=null,v=!0,g()})])})}),function(){return r.apply(this,arguments)}),m=function(){return{loading:!v&&f===o.loading,reloading:v&&f===o.loading,data:d,error:(0,i._)(p,Error)?"".concat(p.message):p,_error:p}},g=function(){(0,c._)(_).forEach(function(n){n(f,m())})};return{get result(){return m()},get promise(){return t},onChange:function(n){return _.add(n),function(){_.delete(n)}},load:h}},v=function(n){var r,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=t.skipStatic,o=void 0!==e&&e,c=t.skipNonStatic,s=void 0!==c&&c,f=new Map,v=d();return{hasPendingLoaders:function(){var n=!0,r=!1,t=void 0;try{for(var e,o=f.values()[Symbol.iterator]();!(n=(e=o.next()).done);n=!0){var u=e.value.promise;if((0,i._)(u,Promise))return!0}}catch(n){r=!0,t=n}finally{try{!n&&null!=o.return&&o.return()}finally{if(r)throw t}}return!1},awaitPendingLoaders:(r=(0,u._)(function(){var n,r,t,e,o,u,c,s,d,p;return(0,l._)(this,function(l){switch(l.label){case 0:n=[],r=!0,t=!1,e=void 0;try{for(o=f[Symbol.iterator]();!(r=(u=o.next()).done);r=!0)s=(c=(0,a._)(u.value,2))[0],p=(d=c[1]).promise,(0,i._)(p,Promise)&&n.push([s,d])}catch(n){t=!0,e=n}finally{try{!r&&null!=o.return&&o.return()}finally{if(t)throw e}}return[4,Promise.all(n.map(function(n){return n[1].promise}))];case 1:return l.sent(),[2,n.reduce(function(n,r){var t=(0,a._)(r,2),e=t[0],o=t[1];return n[e]=o.result,n},{})]}})}),function(){return r.apply(this,arguments)}),add:function(r,t){var e=v(t.params),u=f.get(e),i=t._cache;if(!u||!1===i){var a=s&&!t.static,c=o&&t.static,l=a||c;u=p(e,void 0!==n[e]?n[e]:{data:t.initialData},r,l),f.set(e,u)}return e},get:function(n){return f.get(n)}}}},31971:function(n,r,t){"use strict";t.r(r),t.d(r,{runtime:function(){return u}});var e=t("89323"),o={hoc:(0,e.createPipeline)(),provide:(0,e.createPipeline)(),client:(0,e.createAsyncPipeline)(),server:(0,e.createAsyncPipeline)(),init:(0,e.createAsyncPipeline)(),pickContext:(0,e.createPipeline)()},u=(0,e.createManager)(o);u.createPlugin},71300:function(n,r,t){"use strict";t.r(r),t.d(r,{createApp:function(){return e.createApp},bootstrap:function(){return e.bootstrap}});var e=t("17500")},71593:function(n,r,t){"use strict";t.r(r),t.d(r,{default:function(){return e.default}});var e=t("94552");t.es(e,r)},75949:function(n,r,t){"use strict";t.r(r),t.d(r,{DefaultNotFound:function(){return o}});var e=t("9880"),o=function(){return(0,e.jsx)("div",{style:{margin:"150px auto",textAlign:"center",display:"flex",alignItems:"center",justifyContent:"center"},children:"404"})}},90208:function(n,r,t){"use strict";function e(){return null}t.r(r),t.d(r,{default:function(){return e}})},87872:function(n,r,t){"use strict";t.r(r),t.d(r,{modifyRoutes:function(){return e}});var e=(0,t("89323").createWaterfall)()},94552:function(n,r,t){"use strict";t.r(r),t.d(r,{Outlet:function(){return o.Outlet}}),t.d(r,{default:function(){return u}});var e=t("96856"),o=t("11275"),u=e.routerPlugin},96856:function(n,r,t){"use strict";t.r(r),t.d(r,{routerPlugin:function(){return m}});var e=t("15169"),o=t("43932"),u=t("93160"),i=t("9880"),a=t("57814"),c=t("11275"),l=t("99428"),s=t.n(l),f=t("58579"),d=t("17500"),p=t("87872"),v=t("40318"),_={routes:[]},h=!0,m=function(n){var r=n.serverBase,t=void 0===r?[]:r,l=n.supportHtml5History,h=void 0===l||l,m=n.basename,g=void 0===m?"":m,y=n.routesConfig,R=n.createRoutes,x=[];return _=y,window._SERVER_DATA=(0,f.parsedJSONFromElement)("__MODERN_SERVER_DATA__"),{name:"@modern-js/plugin-router",registerHook:{modifyRoutes:p.modifyRoutes},setup:function(n){return{init:function(n,r){var t=n.context;return t.router={useMatches:c.useMatches,useLocation:c.useLocation},Object.defineProperty(t,"routes",{get:function(){return x}}),r({context:t})},hoc:function(r,l){var f,p=r.App;if(!_&&!R)return l({App:p});var m=(f=function(r){var i,l,s=(null===(l=window._SERVER_DATA)||void 0===l?void 0:l.router.baseUrl)||(i=location.pathname,t.find(function(n){return 0===i.search(n)})||"/"),f="/"===s?(0,v.urlJoin)(s,g):s,p=window._ROUTER_DATA,m=(0,a.useContext)(d.RuntimeReactContext),y=m.unstable_getBlockNavState;return(0,a.useMemo)(function(){(null===(t=p)||void 0===t?void 0:t.errors)&&(p=(0,o._)((0,e._)({},p),{errors:(0,v.deserializeErrors)(p.errors)})),x=R?R():(0,c.createRoutesFromElements)((0,v.renderRoutes)({routesConfig:_,props:r})),x=n.useHookRunners().modifyRoutes(x);var t,i=h?(0,c.createBrowserRouter)(x,{basename:f,hydrationData:p}):(0,c.createHashRouter)(x,{basename:f,hydrationData:p}),a=i.subscribe;return i.subscribe=function(n){return a(function(){for(var r=arguments.length,t=Array(r),e=0;e<r;e++)t[e]=arguments[e];if(!(y&&y()))return n.apply(void 0,(0,u._)(t))})},Object.defineProperty(m,"remixRouter",{get:function(){return i},configurable:!0}),i},[_,r,f,p,y])},function(n){var r=f(n);return(0,i.jsx)(p,(0,o._)((0,e._)({},n),{children:(0,i.jsx)(c.RouterProvider,{router:r})}))});return(p&&(m=s(m,p)),null==y?void 0:y.globalApp)?l({App:s(m,y.globalApp)}):l({App:m})},pickContext:function(n,r){var t=n.context,u=n.pickedContext,i=t.remixRouter;if(!i)return r({context:t,pickedContext:u});var a={navigate:i.navigate,get location(){return i.state.location}};return r({context:t,pickedContext:(0,o._)((0,e._)({},u),{router:a})})}}}}}},40318:function(n,r,t){"use strict";t.r(r),t.d(r,{renderRoutes:function(){return d},urlJoin:function(){return p},deserializeErrors:function(){return v}});var e=t("15169"),o=t("85056"),u=t("28003"),i=t("9880"),a=t("11275"),c=t("54700"),l=t("53405"),s=t("75949"),f=t("90208");function d(n){var r=n.routesConfig,t=n.props,u=n.ssrMode,c=n.reporter;if(!r)return null;var d=r.routes,p=r.globalApp;return d?function(n,r){var t=r.globalApp,u=r.ssrMode,c=r.props,d=r.reporter,p=function(n){var r=n.Component,u=(0,o._)(n,["Component"]);return t?(0,i.jsx)(t,(0,e._)({Component:r},u)):(0,i.jsx)(r,(0,e._)({},u))},v=[],_=!0,h=!1,m=void 0;try{for(var g,y=n[Symbol.iterator]();!(_=(g=y.next()).done);_=!0){var R=g.value;if("nested"===R.type){var x=(0,l.renderNestedRoute)(R,{DeferredDataComponent:"stream"===u?f.default:void 0,props:c,reporter:d});v.push(x)}else{var E=(0,i.jsx)(a.Route,{path:R.path,element:(0,i.jsx)(p,{Component:R.component})},R.path);v.push(E)}}}catch(n){h=!0,m=n}finally{try{!_&&null!=y.return&&y.return()}finally{if(h)throw m}}return v.push((0,i.jsx)(a.Route,{path:"*",element:(0,i.jsx)(s.DefaultNotFound,{})},"*")),v}(d,{globalApp:p,ssrMode:u,props:t,reporter:c}):null}var p=function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];var e=RegExp("".concat("/","{1,}"),"g");return function(n){var r=n;return r&&"string"==typeof r?(r.startsWith(".")&&(r=r.slice(1)),!r.startsWith("/")&&(r="/".concat(r)),r.endsWith("/")&&"/"!==r&&(r=r.slice(0,r.length-1)),r):r}(r.join("/").replace(e,"/"))};function v(n){if(!n)return null;var r=Object.entries(n),t={},e=!0,o=!1,i=void 0;try{for(var a,l=r[Symbol.iterator]();!(e=(a=l.next()).done);e=!0){var s=(0,u._)(a.value,2),f=s[0],d=s[1];if(d&&"RouteErrorResponse"===d.__type)t[f]=new c.ErrorResponse(d.status,d.statusText,d.data,!0===d.internal);else if(d&&"Error"===d.__type){var p=Error(d.message);p.stack=d.stack,t[f]=p}else t[f]=d}}catch(n){o=!0,i=n}finally{try{!e&&null!=l.return&&l.return()}finally{if(o)throw i}}return t}},38338:function(n,r,t){"use strict";t.r(r),t.d(r,{RuntimeReactContext:function(){return o}});var e=t("57814"),o=(0,e.createContext)({});(0,e.createContext)({})},89323:function(n,r,t){"use strict";t.r(r),t.d(r,{createAsyncPipeline:function(){return p},createManager:function(){return I},createPipeline:function(){return d},createWaterfall:function(){return h}});var e=t("37599"),o=t("15169"),u=t("93160"),i=t("43932"),a=t("16584"),c=function(n){var r=function(t,e){return n(t,e,function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e;return r(t+1,n)})};return{start:function(n){return r(0,n)},dispatch:r}},l=function(n){return!!(null==n?void 0:n[s])},s=Symbol.for("MODERN_PIPELINE"),f=function(n){if("function"==typeof n)return n;if(n&&"function"==typeof n.middleware)return n.middleware;throw Error("".concat(n," is not a Middleware"))},d=function(){var n,r=[],t=function(n){return c(function(t,e,o){if(t>=r.length){if(n)return n(e);throw Error("Expect returning a value, but all middlewares just calling next()")}return r[t](e,o)})},o=t(),i=function(n){return n?t(null==n?void 0:n.onLast):o},a=function(n,r){return i(r).start(n)},l=(n={},(0,e._)(n,s,!0),(0,e._)(n,"use",function(){for(var n=arguments.length,t=Array(n),e=0;e<n;e++)t[e]=arguments[e];return r.push.apply(r,(0,u._)(t.map(f))),l}),(0,e._)(n,"run",a),(0,e._)(n,"middleware",function(n,r){return a(n,{onLast:r})}),n);return l},p=function(){var n=d();return(0,o._)({},n)},v=Symbol.for("MODERN_WATERFALL"),_=function(n){if("function"==typeof n)return n;if(n&&"function"==typeof n.middleware)return n.middleware;throw Error("".concat(n," is not a Brook or { brook: Brook }"))},h=function(){var n=d(),r=(0,i._)((0,o._)({},n),(0,e._)({use:function(){for(var t=arguments.length,e=Array(t),o=0;o<t;o++)e[o]=arguments[o];return n.use.apply(n,(0,u._)(e.map(_).map(g))),r},run:function(r,t){return n.run(r,(0,i._)((0,o._)({},t),{onLast:function(n){return n}}))},middleware:function(r){return n.run(r,{onLast:function(n){return n}})}},v,!0));return r},m=function(n){return!!(null==n?void 0:n[v])},g=function(n){return function(r,t){return t(n(r))}},y=Symbol.for("MODERN_ASYNC_WATERFALL"),R=function(n){if("function"==typeof n)return n;if(n&&"function"==typeof n.middleware)return n.middleware;throw Error("".concat(n," is not a AsyncBrook or { brook: AsyncBrook }"))},x=function(){var n=p(),r=(0,i._)((0,o._)({},n),(0,e._)({use:function(){for(var t=arguments.length,e=Array(t),o=0;o<t;o++)e[o]=arguments[o];return n.use.apply(n,(0,u._)(e.map(R).map(b))),r},run:function(r,t){return n.run(r,(0,i._)((0,o._)({},t),{onLast:function(n){return n}}))},middleware:function(r){return n.run(r,{onLast:function(n){return n}})}},y,!0));return r},E=function(n){return!!(null==n?void 0:n[y])},b=function(n){return function(r,t){return Promise.resolve(n(r)).then(function(n){return t(n)})}},w=Symbol.for("MODERN_WORKFLOW"),A=function(){var n=d(),r=(0,i._)((0,o._)({},n),(0,e._)({use:function(){for(var t=arguments.length,e=Array(t),o=0;o<t;o++)e[o]=arguments[o];return n.use.apply(n,(0,u._)(e.map(O))),r},run:function(r){return n.run(r,{onLast:function(){return[]}}).filter(Boolean)}},w,!0));return r},j=function(n){return!!(null==n?void 0:n[w])},O=function(n){return function(r,t){return[n(r)].concat((0,u._)(t(r)))}},L=Symbol.for("MODERN_PARALLEL_WORKFLOW"),M=function(n){return!!(null==n?void 0:n[L])},S=function(){var n=d(),r=(0,i._)((0,o._)({},n),(0,e._)({run:function(r){return Promise.all(n.run(r,{onLast:function(){return[]}})).then(function(n){return n.filter(Boolean)})},use:function(){for(var t=arguments.length,e=Array(t),o=0;o<t;o++)e[o]=arguments[o];return n.use.apply(n,(0,u._)(e.map(P))),r}},L,!0));return r},P=function(n){return function(r,t){return[n(r)].concat((0,u._)(t(r)))}},k=Symbol.for("MODERN_ASYNC_WORKFLOW"),C=function(n){return!!(null==n?void 0:n[k])},D=function(){var n=p(),r=(0,i._)((0,o._)({},n),(0,e._)({use:function(){for(var t=arguments.length,e=Array(t),o=0;o<t;o++)e[o]=arguments[o];return n.use.apply(n,(0,u._)(e.map(N))),r},run:function(r){var t=n.run(r,{onLast:function(){return[]}});return function(n){return n&&"function"==typeof n.then}(t)?t.then(function(n){return n.filter(Boolean)}):t.filter(Boolean)}},k,!0));return r},N=function(n){return function(r,t){return Promise.resolve(n(r)).then(function(n){return Promise.resolve(t(r)).then(function(r){return[n].concat((0,u._)(r))})})}},T=function(n){},B=function(n){return null!==n&&"object"==typeof n},F="SYNC_PLUGIN_SYMBOL",H={name:"untitled",pre:[],post:[],rivals:[],required:[],usePlugins:[],registerHook:{}},I=function(n,r){var t,e=0,u=(0,o._)({},n),c=function(){return t},l=function(n){u=(0,o._)({},n,u)},s=function(n){var r,t;return B(n)&&(r=n,t=F,r.hasOwnProperty(t))&&n[F]===F},f=(0,i._)((0,o._)({},r),{useHookRunners:c}),d=function(n){var r=[],p=function(n){var t,e;if(t=r,e=n,!t.some(function(n){return n.name===e.name}))r.push((0,o._)({},n))},v=function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return r.forEach(function(n){if(s(n))p(n);else if("function"==typeof n){var r=n();p(_(r.setup,r))}else B(n)&&p(_(n.setup,n))}),h},_=function(){var n,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(null===(n=t.usePlugins)||void 0===n?void 0:n.length)&&t.usePlugins.forEach(function(n){v(_(n.setup,n))}),t.registerHook&&l(t.registerHook),(0,i._)((0,o._)((0,i._)((0,o._)({},H),{name:"No.".concat(e++," plugin")}),t),{SYNC_PLUGIN_SYMBOL:F,setup:r})},h={createPlugin:_,isPlugin:s,usePlugin:v,init:function(){var e,i=(e=r,(0,a.pluginDagSort)(e.slice())),c=(0,o._)({},f,n);return T(i),t=W(i.map(function(n){return n.setup(c)}),u)},clear:function(){r=[]},run:function(n){return n()},registerHook:l,useRunner:c,clone:d};return h};return d()},W=function(n,r){var t={},e=z(r);if(r){var u=function(r){n.forEach(function(n){(null==n?void 0:n[r])&&e[r].use(n[r])}),t[r]=function(n,t){return e[r].run(n,(0,o._)({},t))}};for(var i in e)u(i)}return t},U=function(n){if(m(n))return h();if(E(n))return x();if(j(n))return A();if(C(n))return D();if(M(n))return S();if(l(n))return d();throw Error("Unknown hook: ".concat(n))},z=function(n){if(!n)return n;var r={};for(var t in n)r[t]=U(n[t]);return r}},58579:function(n,r,t){"use strict";t.r(r);var e=t("58759");t.es(e,r)},58759:function(n,r,t){"use strict";t.r(r),t.d(r,{parsedJSONFromElement:function(){return e}});var e=function(n){var r=document.querySelectorAll("#".concat(n));if(0!==r.length){var t=r[r.length-1];if(t)try{return JSON.parse((null==t?void 0:t.textContent)||"")}catch(r){console.error("parse ".concat(n," error"),r)}}}},53405:function(n,r,t){"use strict";t.r(r),t.d(r,{renderNestedRoute:function(){return d}});var e=t("61078"),o=t("15169"),u=t("43932"),i=t("73706"),a=t("9880"),c=t("57814"),l=t("13721"),s=t("47328"),f=t("35005"),d=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.children,v=n.index,_=n.id,h=n.component,m=n.isRoot,g=n.lazyImport,y=n.config,R=n.handle,x=r.parent,E=r.DeferredDataComponent,b=r.props,w=void 0===b?{}:b,A=r.reporter,j={caseSensitive:n.caseSensitive,path:n.path,id:n.id,loader:function(n,r){var t,o=n.loader;if(!o)return function(){return"function"==typeof n.lazyImport&&n.lazyImport(),null};return t=(0,e._)(function(t){var e,u,a,c;return(0,i._)(this,function(i){switch(i.label){case 0:return"function"==typeof n.lazyImport&&n.lazyImport(),e=(0,f.time)(),[4,o(t)];case 1:return u=i.sent(),a=e(),"undefined"==typeof document&&r&&(null===(c=r)||void 0===c||c.reportTiming("".concat(s.LOADER_REPORTER_NAME,"-").concat(n.id),a)),[2,u]}})}),function(n){return t.apply(this,arguments)}}(n,A),action:n.action,hasErrorBoundary:n.hasErrorBoundary,shouldRevalidate:n.shouldRevalidate,handle:(0,o._)({},R,"object"==typeof y?null==y?void 0:y.handle:{}),index:n.index,element:n.element,errorElement:n.errorElement};if(n.error){var O=(0,a.jsx)(n.error,{});j.errorElement=O}if(h){if((null==x?void 0:x.loading)&&g){var L,M=x.loading;L=p(h)?(0,a.jsx)(h,{fallback:(0,a.jsx)(M,{})}):(0,a.jsx)(c.Suspense,{fallback:(0,a.jsx)(M,{}),children:(0,a.jsx)(h,{})})}else L=p(h)&&g?(0,a.jsx)(h,{}):m?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(h,(0,o._)({},w)),"undefined"==typeof document&&E&&(0,a.jsx)(E,{nonce:null==w?void 0:w.nonce})]}):g?(0,a.jsx)(c.Suspense,{fallback:null,children:(0,a.jsx)(h,{})}):(0,a.jsx)(h,{})}else n.loading=null==x?void 0:x.loading,j.element=(0,a.jsx)(l.Outlet,{});L&&(j.element=L);var S=null==t?void 0:t.map(function(r){return d(r,{parent:n,reporter:A})});return v?(0,a.jsx)(l.Route,(0,u._)((0,o._)({},j),{index:!0}),_):(0,a.jsx)(l.Route,(0,u._)((0,o._)({},j),{index:!1,children:S}),_)};function p(n){return n&&"Loadable"===n.displayName&&n.preload&&"function"==typeof n.preload}},54700:function(n,r,t){"use strict";t.r(r);var e=t("15239");t.es(e,r)},11275:function(n,r,t){"use strict";t.r(r);var e=t("13721");t.es(e,r)},47328:function(n,r,t){"use strict";t.r(r),t.d(r,{ROUTE_MANIFEST:function(){return e},LOADER_REPORTER_NAME:function(){return o}});var e="_MODERNJS_ROUTE_MANIFEST",o="server-loader"},16584:function(n,r,t){"use strict";t.r(r),t.d(r,{pluginDagSort:function(){return e}});var e=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"name",t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"pre",e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"post",o=function(t){var e=n.find(function(n){return"string"==typeof t?n[r]===t:n[r]===t[r]});if(!e)throw Error("plugin ".concat(t," not existed"));return e},u=[];n.forEach(function(i){var a,c;null===(a=i[t])||void 0===a||a.forEach(function(t){n.find(function(n){return n.name===t})&&u.push([o(t)[r],o(i)[r]])}),null===(c=i[e])||void 0===c||c.forEach(function(t){n.find(function(n){return n.name===t})&&u.push([o(i)[r],o(t)[r]])})});for(var i=n.filter(function(n){return!u.find(function(t){return t[1]===n[r]})}),a=[];i.length;)!function(){var t=i.shift();a.push(o(t)),u=u.filter(function(n){return n[0]!==o(t)[r]}),i=n.filter(function(n){return!a.find(function(t){return t[r]===n[r]})}).filter(function(n){return!u.find(function(t){return t[1]===n[r]})})}();if(u.length){var c={};throw u.forEach(function(n){c[n[0]]=!0,c[n[1]]=!0}),Error("plugins dependences has loop: ".concat(Object.keys(c).join(",")))}return a}},35005:function(n,r,t){"use strict";t.r(r),t.d(r,{time:function(){return i}});var e=t("28003");function o(n){var r=.001*new Date().getTime(),t=Math.floor(r),e=Math.floor(r%1*1e9);return n&&(t-=n[0],(e-=n[1])<0&&(t--,e+=1e9)),[t,e]}var u=function(n){var r=(0,e._)(o(n),2);return 1e3*r[0]+r[1]/1e6},i=function(){var n=o();return function(){return u(n)}}},61568:function(n,r,t){"use strict";t.r(r),t.d(r,{default:function(){return u}});var e=t("9880"),o=t("71593");function u(){return(0,e.jsx)("div",{children:(0,e.jsx)(o.Outlet,{})})}}},function(n){var r=function(r){return n(n.s=r)};n.O(0,["lib-polyfill","lib-react","lib-router","vendors~node_modules_pnpm_loadable_component_5_15_3_react_18_2_0_node_modules_loadable_compon~2b20fe"],function(){return r("33802"),r("29051"),r("68924")}),n.O()}]);