@modern-js/runtime 2.40.0 → 2.42.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 (140) hide show
  1. package/dist/cjs/core/loader/loaderManager.js +7 -7
  2. package/dist/cjs/document/DocumentStructureContext.js +2 -1
  3. package/dist/cjs/document/Head.js +7 -5
  4. package/dist/cjs/document/Html.js +2 -0
  5. package/dist/cjs/document/Title.js +34 -0
  6. package/dist/cjs/document/cli/index.js +5 -1
  7. package/dist/cjs/document/constants.js +3 -0
  8. package/dist/cjs/router/runtime/index.js +6 -2
  9. package/dist/cjs/router/runtime/plugin.js +2 -2
  10. package/dist/cjs/router/runtime/{shouldRevalidate.js → routeModule.js} +19 -5
  11. package/dist/cjs/ssr/index.js +3 -3
  12. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +3 -3
  13. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.worker.js +3 -3
  14. package/dist/cjs/ssr/serverRender/renderToString/entry.js +3 -2
  15. package/dist/cjs/ssr/serverRender/renderToString/loadable.js +2 -2
  16. package/dist/cjs/ssr/serverRender/tracker.js +18 -15
  17. package/dist/esm/core/loader/loaderManager.js +7 -7
  18. package/dist/esm/document/DocumentStructureContext.js +2 -1
  19. package/dist/esm/document/Head.js +7 -5
  20. package/dist/esm/document/Html.js +2 -0
  21. package/dist/esm/document/Title.js +10 -0
  22. package/dist/esm/document/cli/index.js +9 -3
  23. package/dist/esm/document/constants.js +2 -0
  24. package/dist/esm/router/runtime/index.js +3 -1
  25. package/dist/esm/router/runtime/plugin.js +1 -1
  26. package/dist/esm/router/runtime/{shouldRevalidate.js → routeModule.js} +13 -1
  27. package/dist/esm/ssr/cli/babel-plugin-ssr-loader-id.js +3 -3
  28. package/dist/esm/ssr/index.js +1 -1
  29. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +6 -6
  30. package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +14 -14
  31. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.js +3 -3
  32. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.worker.js +3 -3
  33. package/dist/esm/ssr/serverRender/renderToString/entry.js +2 -1
  34. package/dist/esm/ssr/serverRender/renderToString/loadable.js +2 -2
  35. package/dist/esm/ssr/serverRender/tracker.js +18 -15
  36. package/dist/esm-node/core/loader/loaderManager.js +7 -7
  37. package/dist/esm-node/document/DocumentStructureContext.js +2 -1
  38. package/dist/esm-node/document/Head.js +7 -5
  39. package/dist/esm-node/document/Html.js +2 -0
  40. package/dist/esm-node/document/Title.js +10 -0
  41. package/dist/esm-node/document/cli/index.js +6 -2
  42. package/dist/esm-node/document/constants.js +2 -0
  43. package/dist/esm-node/router/runtime/index.js +3 -1
  44. package/dist/esm-node/router/runtime/plugin.js +1 -1
  45. package/dist/esm-node/router/runtime/{shouldRevalidate.js → routeModule.js} +13 -1
  46. package/dist/esm-node/ssr/index.js +1 -1
  47. package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.js +3 -3
  48. package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.worker.js +3 -3
  49. package/dist/esm-node/ssr/serverRender/renderToString/entry.js +3 -2
  50. package/dist/esm-node/ssr/serverRender/renderToString/loadable.js +2 -2
  51. package/dist/esm-node/ssr/serverRender/tracker.js +18 -15
  52. package/dist/types/cli/index.d.ts +1 -1
  53. package/dist/types/common.d.ts +3 -3
  54. package/dist/types/config.d.ts +5 -5
  55. package/dist/types/core/appConfig.d.ts +1 -1
  56. package/dist/types/core/compatible.d.ts +8 -11
  57. package/dist/types/core/index.d.ts +1 -1
  58. package/dist/types/core/loader/index.d.ts +1 -1
  59. package/dist/types/core/loader/loaderManager.d.ts +38 -38
  60. package/dist/types/core/loader/useLoader.d.ts +31 -31
  61. package/dist/types/core/plugin.d.ts +178 -177
  62. package/dist/types/core/types.d.ts +12 -12
  63. package/dist/types/document/Body.d.ts +2 -2
  64. package/dist/types/document/Comment.d.ts +3 -3
  65. package/dist/types/document/DocumentContext.d.ts +9 -9
  66. package/dist/types/document/DocumentStructureContext.d.ts +8 -7
  67. package/dist/types/document/Head.d.ts +2 -2
  68. package/dist/types/document/Html.d.ts +2 -2
  69. package/dist/types/document/Links.d.ts +1 -1
  70. package/dist/types/document/Root.d.ts +4 -4
  71. package/dist/types/document/Script.d.ts +2 -2
  72. package/dist/types/document/Scripts.d.ts +1 -1
  73. package/dist/types/document/Style.d.ts +3 -3
  74. package/dist/types/document/Title.d.ts +2 -0
  75. package/dist/types/document/cli/index.d.ts +1 -1
  76. package/dist/types/document/constants.d.ts +3 -2
  77. package/dist/types/document/index.d.ts +1 -1
  78. package/dist/types/exports/head.d.ts +1 -1
  79. package/dist/types/exports/loadable.d.ts +1 -1
  80. package/dist/types/exports/server.d.ts +9 -17
  81. package/dist/types/exports/styled.d.ts +1 -1
  82. package/dist/types/index.d.ts +3 -3
  83. package/dist/types/router/cli/index.d.ts +1 -1
  84. package/dist/types/router/index.d.ts +1 -1
  85. package/dist/types/router/runtime/DefaultNotFound.d.ts +1 -1
  86. package/dist/types/router/runtime/DeferredDataScripts.d.ts +1 -1
  87. package/dist/types/router/runtime/DeferredDataScripts.node.d.ts +2 -2
  88. package/dist/types/router/runtime/PrefetchLink.d.ts +3 -3
  89. package/dist/types/router/runtime/fetch.d.ts +1 -1
  90. package/dist/types/router/runtime/fetch.node.d.ts +1 -1
  91. package/dist/types/router/runtime/fetch.worker.d.ts +1 -1
  92. package/dist/types/router/runtime/hooks.d.ts +1 -1
  93. package/dist/types/router/runtime/index.d.ts +3 -3
  94. package/dist/types/router/runtime/plugin.d.ts +1 -7
  95. package/dist/types/router/runtime/plugin.node.d.ts +2 -6
  96. package/dist/types/router/runtime/routeModule.d.ts +6 -0
  97. package/dist/types/router/runtime/server.d.ts +1 -1
  98. package/dist/types/router/runtime/types.d.ts +41 -41
  99. package/dist/types/router/runtime/utils.d.ts +11 -21
  100. package/dist/types/router/runtime/withRouter.d.ts +4 -4
  101. package/dist/types/runtimeContext.d.ts +26 -26
  102. package/dist/types/ssr/cli/babel-plugin-ssr-loader-id.d.ts +1 -1
  103. package/dist/types/ssr/cli/index.d.ts +1 -1
  104. package/dist/types/ssr/cli/loadable-bundler-plugin.d.ts +1 -1
  105. package/dist/types/ssr/index.d.ts +5 -5
  106. package/dist/types/ssr/index.node.d.ts +1 -1
  107. package/dist/types/ssr/prefetch.d.ts +9 -9
  108. package/dist/types/ssr/react/index.d.ts +1 -1
  109. package/dist/types/ssr/react/nossr/index.d.ts +3 -3
  110. package/dist/types/ssr/react/prerender/index.d.ts +1 -1
  111. package/dist/types/ssr/react/prerender/type.d.ts +17 -17
  112. package/dist/types/ssr/react/prerender/util.d.ts +1 -1
  113. package/dist/types/ssr/react/withCallback/index.d.ts +3 -3
  114. package/dist/types/ssr/serverRender/helmet.d.ts +1 -1
  115. package/dist/types/ssr/serverRender/index.d.ts +1 -1
  116. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +3 -3
  117. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.share.d.ts +1 -1
  118. package/dist/types/ssr/serverRender/renderToStream/bulidTemplate.before.d.ts +1 -1
  119. package/dist/types/ssr/serverRender/renderToStream/index.d.ts +1 -4
  120. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +1 -1
  121. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.worker.d.ts +1 -1
  122. package/dist/types/ssr/serverRender/renderToStream/template.d.ts +3 -3
  123. package/dist/types/ssr/serverRender/renderToString/buildHtml.d.ts +1 -1
  124. package/dist/types/ssr/serverRender/renderToString/entry.d.ts +19 -19
  125. package/dist/types/ssr/serverRender/renderToString/index.d.ts +1 -5
  126. package/dist/types/ssr/serverRender/renderToString/loadable.d.ts +18 -18
  127. package/dist/types/ssr/serverRender/renderToString/render.d.ts +8 -8
  128. package/dist/types/ssr/serverRender/renderToString/styledComponent.d.ts +7 -7
  129. package/dist/types/ssr/serverRender/renderToString/type.d.ts +10 -10
  130. package/dist/types/ssr/serverRender/tracker.d.ts +14 -19
  131. package/dist/types/ssr/serverRender/types.d.ts +17 -17
  132. package/dist/types/ssr/serverRender/utils.d.ts +1 -1
  133. package/dist/types/ssr/utils.d.ts +4 -4
  134. package/dist/types/state/cli/index.d.ts +1 -1
  135. package/dist/types/state/index.d.ts +1 -1
  136. package/dist/types/state/plugins.d.ts +1 -1
  137. package/dist/types/state/runtime/index.d.ts +1 -1
  138. package/dist/types/state/runtime/plugin.d.ts +3 -3
  139. package/package.json +11 -11
  140. package/dist/types/router/runtime/shouldRevalidate.d.ts +0 -2
@@ -14,49 +14,52 @@ var SSRErrors;
14
14
  SSRErrors2[SSRErrors2["RENDER_SHELL"] = 4] = "RENDER_SHELL";
15
15
  })(SSRErrors || (SSRErrors = {}));
16
16
  const errors = {
17
- [SSRErrors.PRERENDER]: {
18
- reporter: "SSR Error - App Prerender",
17
+ [0]: {
18
+ reporter: "App Prerender",
19
19
  logger: "App Prerender",
20
20
  metrics: "app.prerender.error"
21
21
  },
22
- [SSRErrors.USE_LOADER]: {
23
- reporter: "SSR Error - App run useLoader",
22
+ [1]: {
23
+ reporter: "App run useLoader",
24
24
  logger: "App run useLoader",
25
25
  metrics: "app.useloader.error"
26
26
  },
27
- [SSRErrors.RENDER_HTML]: {
28
- reporter: "SSR Error - App Render To HTML",
27
+ [2]: {
28
+ reporter: "App Render To HTML",
29
29
  logger: "App Render To HTML",
30
30
  metrics: "app.render.html.error"
31
31
  },
32
- [SSRErrors.RENDER_STREAM]: {
33
- reporter: "SSR Error - App Render To Streaming",
32
+ [3]: {
33
+ reporter: "App Render To Streaming",
34
34
  logger: "An error occurs during streaming SSR",
35
35
  metrics: "app.render.streaming.error"
36
36
  },
37
- [SSRErrors.RENDER_SHELL]: {
37
+ [4]: {
38
38
  metrics: "app.render.streaming.shell.error"
39
39
  }
40
40
  };
41
41
  const timings = {
42
- [SSRTimings.PRERENDER]: {
42
+ [0]: {
43
43
  reporter: "ssr-prerender",
44
44
  serverTiming: "ssr-prerender",
45
45
  metrics: "app.prerender.cost",
46
46
  logger: "App Prerender cost = %d ms"
47
47
  },
48
- [SSRTimings.RENDER_HTML]: {
48
+ [1]: {
49
49
  reporter: "ssr-render-html",
50
50
  serverTiming: "ssr-render-html",
51
51
  metrics: "app.render.html.cost",
52
52
  logger: "App Render To HTML cost = %d ms"
53
53
  },
54
- [SSRTimings.RENDER_SHELL]: {
55
- reporter: "ssr-render-shell"
54
+ [2]: {
55
+ reporter: "ssr-render-shell",
56
+ metrics: "app.render.shell.cost",
57
+ logger: "App Render To Shell cost = %d ms"
56
58
  },
57
- [SSRTimings.USE_LOADER]: {
59
+ [3]: {
58
60
  reporter: "use-loader",
59
61
  serverTiming: "use-loader",
62
+ metrics: "app.useloader.cost",
60
63
  logger: "App run useLoader cost = %d ms"
61
64
  }
62
65
  };
@@ -67,7 +70,7 @@ function createSSRTracker({ reporter, serverTiming, metrics, logger }) {
67
70
  },
68
71
  trackError(key, e) {
69
72
  const { reporter: reporterContent, metrics: metricsContent, logger: loggerContent } = errors[key];
70
- reporterContent && reporter.reportError(reporterContent, e);
73
+ reporterContent && reporter.reportError(`SSR Error - ${reporterContent}`, e);
71
74
  metricsContent && metrics.emitCounter(metricsContent, 1);
72
75
  loggerContent && logger.error(loggerContent, e);
73
76
  },
@@ -1,3 +1,3 @@
1
1
  import type { CliPlugin, AppTools } from '@modern-js/app-tools';
2
2
  export declare const runtimePlugin: () => CliPlugin<AppTools>;
3
- export default runtimePlugin;
3
+ export default runtimePlugin;
@@ -1,8 +1,8 @@
1
1
  import type { StateConfig } from './state';
2
2
  export declare const isBrowser: () => boolean;
3
3
  export interface AppConfig {
4
- state?: StateConfig | boolean;
5
- [key: string]: any;
4
+ state?: StateConfig | boolean;
5
+ [key: string]: any;
6
6
  }
7
7
  export declare const JSX_SHELL_STREAM_END_MARK = "<!--<?- SHELL_STREAM_END ?>-->";
8
- export declare const ESCAPED_SHELL_STREAM_END_MARK = "&lt;!--&lt;?- SHELL_STREAM_END ?&gt;--&gt;";
8
+ export declare const ESCAPED_SHELL_STREAM_END_MARK = "&lt;!--&lt;?- SHELL_STREAM_END ?&gt;--&gt;";
@@ -1,8 +1,8 @@
1
1
  import type { StateConfig } from './state';
2
2
  import type { RouterConfig } from './router';
3
3
  export interface RuntimeUserConfig {
4
- runtime?: {
5
- state?: boolean | StateConfig;
6
- router?: boolean | RouterConfig;
7
- };
8
- }
4
+ runtime?: {
5
+ state?: boolean | StateConfig;
6
+ router?: boolean | RouterConfig;
7
+ };
8
+ }
@@ -1,4 +1,4 @@
1
1
  import type React from 'react';
2
2
  import { AppConfig } from '../common';
3
3
  export declare const getConfig: (Component: React.ComponentType<any>) => AppConfig | undefined;
4
- export declare const defineConfig: (Component: React.ComponentType<any>, config: AppConfig) => React.ComponentType<any>;
4
+ export declare const defineConfig: (Component: React.ComponentType<any>, config: AppConfig) => React.ComponentType<any>;
@@ -4,19 +4,16 @@ import type { hydrateRoot, createRoot } from 'react-dom/client';
4
4
  import { RuntimeContext, TRuntimeContext } from '../runtimeContext';
5
5
  import { Plugin } from './plugin';
6
6
  export type CreateAppOptions = {
7
- plugins: Plugin[];
8
- props?: any;
7
+ plugins: Plugin[];
8
+ props?: any;
9
9
  };
10
- export declare const createApp: ({
11
- plugins,
12
- props: globalProps
13
- }: CreateAppOptions) => (App?: React.ComponentType<any>) => React.ComponentType<any>;
10
+ export declare const createApp: ({ plugins, props: globalProps, }: CreateAppOptions) => (App?: React.ComponentType<any>) => React.ComponentType<any>;
14
11
  type BootStrap<T = unknown> = (App: React.ComponentType, id: string | HTMLElement | RuntimeContext, root?: any, ReactDOM?: {
15
- render?: Renderer;
16
- hydrate?: Renderer;
17
- createRoot?: typeof createRoot;
18
- hydrateRoot?: typeof hydrateRoot;
12
+ render?: Renderer;
13
+ hydrate?: Renderer;
14
+ createRoot?: typeof createRoot;
15
+ hydrateRoot?: typeof hydrateRoot;
19
16
  }) => Promise<T>;
20
17
  export declare const bootstrap: BootStrap;
21
18
  export declare const useRuntimeContext: () => TRuntimeContext;
22
- export {};
19
+ export {};
@@ -6,4 +6,4 @@ export type { TRuntimeContext, RuntimeContext } from '../runtimeContext';
6
6
  export { RuntimeReactContext, ServerRouterContext } from '../runtimeContext';
7
7
  export * from './loader';
8
8
  export type { SSRData, SSRContainer } from './types';
9
- export * from '@modern-js/plugin';
9
+ export * from '@modern-js/plugin';
@@ -1 +1 @@
1
- export { default as useLoader } from './useLoader';
1
+ export { default as useLoader } from './useLoader';
@@ -1,56 +1,56 @@
1
1
  import { LoaderOptions } from './useLoader';
2
2
  export declare enum LoaderStatus {
3
- idle = 0,
4
- loading = 1,
5
- fulfilled = 2,
6
- rejected = 3,
3
+ idle = 0,
4
+ loading = 1,
5
+ fulfilled = 2,
6
+ rejected = 3
7
7
  }
8
8
  export type LoaderResult = {
9
- loading: boolean;
10
- reloading: boolean;
11
- data: any;
12
- error: any;
13
- _error?: any;
14
- };
15
- declare const createLoader: (id: string, initialData: Partial<LoaderResult> | undefined, loaderFn: () => Promise<any>, skip?: boolean) => {
16
- readonly result: {
17
9
  loading: boolean;
18
10
  reloading: boolean;
19
11
  data: any;
20
12
  error: any;
21
- _error: any;
22
- };
23
- readonly promise: Promise<any> | null;
24
- onChange: (handler: (status: LoaderStatus, result: LoaderResult) => void) => () => void;
25
- load: () => Promise<any>;
13
+ _error?: any;
14
+ };
15
+ declare const createLoader: (id: string, initialData: Partial<LoaderResult> | undefined, loaderFn: () => Promise<any>, skip?: boolean) => {
16
+ readonly result: {
17
+ loading: boolean;
18
+ reloading: boolean;
19
+ data: any;
20
+ error: any;
21
+ _error: any;
22
+ };
23
+ readonly promise: Promise<any> | null;
24
+ onChange: (handler: (status: LoaderStatus, result: LoaderResult) => void) => () => void;
25
+ load: () => Promise<any>;
26
26
  };
27
27
  type ManagerOption = {
28
- /**
29
- * whether current manage only exec static loader
30
- */
31
- skipStatic?: boolean;
32
- skipNonStatic?: boolean;
28
+ /**
29
+ * whether current manage only exec static loader
30
+ */
31
+ skipStatic?: boolean;
32
+ skipNonStatic?: boolean;
33
33
  };
34
34
  /**
35
35
  * Create loaders manager. It's returned instance will add to context
36
36
  * @param initialDataMap used to initialing loader data
37
37
  */
38
38
  export declare const createLoaderManager: (initialDataMap: Record<string, LoaderResult>, managerOptions?: ManagerOption) => {
39
- hasPendingLoaders: () => boolean;
40
- awaitPendingLoaders: () => Promise<Record<string, LoaderResult>>;
41
- add: (loaderFn: () => Promise<any>, loaderOptions: LoaderOptions) => any;
42
- get: (id: string) => {
43
- readonly result: {
44
- loading: boolean;
45
- reloading: boolean;
46
- data: any;
47
- error: any;
48
- _error: any;
49
- };
50
- readonly promise: Promise<any> | null;
51
- onChange: (handler: (status: LoaderStatus, result: LoaderResult) => void) => () => void;
52
- load: () => Promise<any>;
53
- } | undefined;
39
+ hasPendingLoaders: () => boolean;
40
+ awaitPendingLoaders: () => Promise<Record<string, LoaderResult>>;
41
+ add: (loaderFn: () => Promise<any>, loaderOptions: LoaderOptions) => any;
42
+ get: (id: string) => {
43
+ readonly result: {
44
+ loading: boolean;
45
+ reloading: boolean;
46
+ data: any;
47
+ error: any;
48
+ _error: any;
49
+ };
50
+ readonly promise: Promise<any> | null;
51
+ onChange: (handler: (status: LoaderStatus, result: LoaderResult) => void) => () => void;
52
+ load: () => Promise<any>;
53
+ } | undefined;
54
54
  };
55
55
  export type Loader = ReturnType<typeof createLoader>;
56
- export {};
56
+ export {};
@@ -1,36 +1,36 @@
1
1
  type LoaderFn<P = any, T = any> = (context: any, params: P) => Promise<T>;
2
2
  export interface LoaderOptions<Params = any, TData = any, TError extends Error = any> {
3
- /**
4
- * Revoke when loader excuted successfully.
5
- */
6
- onSuccess?: (data: TData) => void;
7
- /**
8
- * Revoke when loader ended with error
9
- */
10
- onError?: (error: TError) => void;
11
- /**
12
- * initialData to display once loader is ready.
13
- */
14
- initialData?: TData;
15
- /**
16
- * whether skip loader
17
- * if true, the loader will not exec.
18
- */
19
- skip?: boolean;
20
- /**
21
- * User params, it will pass to loader's second parameter.
22
- */
23
- params?: Params;
24
- /**
25
- * whether loader can exec on build phase.
26
- */
27
- static?: boolean;
3
+ /**
4
+ * Revoke when loader excuted successfully.
5
+ */
6
+ onSuccess?: (data: TData) => void;
7
+ /**
8
+ * Revoke when loader ended with error
9
+ */
10
+ onError?: (error: TError) => void;
11
+ /**
12
+ * initialData to display once loader is ready.
13
+ */
14
+ initialData?: TData;
15
+ /**
16
+ * whether skip loader
17
+ * if true, the loader will not exec.
18
+ */
19
+ skip?: boolean;
20
+ /**
21
+ * User params, it will pass to loader's second parameter.
22
+ */
23
+ params?: Params;
24
+ /**
25
+ * whether loader can exec on build phase.
26
+ */
27
+ static?: boolean;
28
28
  }
29
29
  declare const useLoader: <TData = any, Params = any, E = any>(loaderFn: LoaderFn<Params, TData>, options?: LoaderOptions<Params, any, any>) => {
30
- reload: (params?: Params | undefined) => Promise<any> | undefined;
31
- loading: boolean;
32
- reloading: boolean;
33
- data: TData;
34
- error: E;
30
+ reload: (params?: Params | undefined) => Promise<any> | undefined;
31
+ loading: boolean;
32
+ reloading: boolean;
33
+ data: TData;
34
+ error: E;
35
35
  };
36
- export default useLoader;
36
+ export default useLoader;