@modern-js/runtime 2.63.3 → 2.63.4

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 (38) hide show
  1. package/dist/cjs/cli/code.js +2 -2
  2. package/dist/cjs/cli/index.js +102 -108
  3. package/dist/cjs/cli/ssr/index.js +49 -52
  4. package/dist/cjs/document/cli/index.js +32 -34
  5. package/dist/cjs/router/cli/code/index.js +5 -5
  6. package/dist/cjs/router/cli/handler.js +6 -6
  7. package/dist/cjs/router/cli/index.js +76 -78
  8. package/dist/cjs/router/runtime/plugin.js +1 -4
  9. package/dist/cjs/state/cli/index.js +22 -24
  10. package/dist/esm/cli/code.js +3 -3
  11. package/dist/esm/cli/index.js +120 -130
  12. package/dist/esm/cli/ssr/index.js +50 -53
  13. package/dist/esm/document/cli/index.js +28 -30
  14. package/dist/esm/router/cli/code/index.js +8 -8
  15. package/dist/esm/router/cli/handler.js +6 -6
  16. package/dist/esm/router/cli/index.js +161 -157
  17. package/dist/esm/router/runtime/plugin.js +1 -4
  18. package/dist/esm/state/cli/index.js +23 -25
  19. package/dist/esm-node/cli/code.js +2 -2
  20. package/dist/esm-node/cli/index.js +102 -108
  21. package/dist/esm-node/cli/ssr/index.js +49 -52
  22. package/dist/esm-node/document/cli/index.js +32 -34
  23. package/dist/esm-node/router/cli/code/index.js +5 -5
  24. package/dist/esm-node/router/cli/handler.js +6 -6
  25. package/dist/esm-node/router/cli/index.js +76 -78
  26. package/dist/esm-node/router/runtime/plugin.js +1 -4
  27. package/dist/esm-node/state/cli/index.js +22 -24
  28. package/dist/types/cli/code.d.ts +2 -9
  29. package/dist/types/cli/index.d.ts +3 -3
  30. package/dist/types/cli/ssr/index.d.ts +2 -2
  31. package/dist/types/document/cli/index.d.ts +2 -2
  32. package/dist/types/router/cli/code/index.d.ts +3 -3
  33. package/dist/types/router/cli/code/templates.d.ts +2 -2
  34. package/dist/types/router/cli/handler.d.ts +4 -4
  35. package/dist/types/router/cli/index.d.ts +2 -2
  36. package/dist/types/router/runtime/types.d.ts +0 -10
  37. package/dist/types/state/cli/index.d.ts +2 -2
  38. package/package.json +11 -11
@@ -13,87 +13,85 @@ const routerPlugin = () => ({
13
13
  setup: (api) => {
14
14
  const nestedRoutes = {};
15
15
  const nestedRoutesForServer = {};
16
- return {
17
- _internalRuntimePlugins({ entrypoint, plugins }) {
18
- var _getEntryOptions;
19
- const { packageName, serverRoutes, metaName } = api.useAppContext();
20
- const serverBase = serverRoutes.filter((route) => route.entryName === entrypoint.entryName).map((route) => route.urlPath).sort((a, b) => a.length - b.length > 0 ? -1 : 1);
21
- const userConfig = api.useResolvedConfigContext();
22
- const routerConfig = (_getEntryOptions = getEntryOptions(entrypoint.entryName, entrypoint.isMainEntry, userConfig.runtime, userConfig.runtimeByEntries, packageName)) === null || _getEntryOptions === void 0 ? void 0 : _getEntryOptions.router;
23
- if (routerConfig && !isV5(userConfig)) {
24
- plugins.push({
25
- name: "router",
26
- path: `@${metaName}/runtime/router`,
27
- config: typeof routerConfig === "boolean" ? {
28
- serverBase
29
- } : {
30
- ...routerConfig,
31
- serverBase
32
- }
33
- });
34
- }
35
- return {
36
- entrypoint,
37
- plugins
38
- };
39
- },
40
- checkEntryPoint({ path: path2, entry }) {
41
- return {
42
- path: path2,
43
- entry: entry || isRouteEntry(path2)
44
- };
45
- },
46
- config() {
47
- return {
48
- source: {
49
- include: [
50
- // react-router v6 is no longer support ie 11
51
- // so we need to compile these packages to ensure the compatibility
52
- // https://github.com/remix-run/react-router/commit/f6df0697e1b2064a2b3a12e8b39577326fdd945b
53
- /node_modules\/react-router/,
54
- /node_modules\/react-router-dom/,
55
- /node_modules\/@remix-run\/router/
56
- ]
16
+ api._internalRuntimePlugins(({ entrypoint, plugins }) => {
17
+ var _getEntryOptions;
18
+ const { packageName, serverRoutes, metaName } = api.getAppContext();
19
+ const serverBase = serverRoutes.filter((route) => route.entryName === entrypoint.entryName).map((route) => route.urlPath).sort((a, b) => a.length - b.length > 0 ? -1 : 1);
20
+ const userConfig = api.getNormalizedConfig();
21
+ const routerConfig = (_getEntryOptions = getEntryOptions(entrypoint.entryName, entrypoint.isMainEntry, userConfig.runtime, userConfig.runtimeByEntries, packageName)) === null || _getEntryOptions === void 0 ? void 0 : _getEntryOptions.router;
22
+ if (routerConfig && !isV5(userConfig)) {
23
+ plugins.push({
24
+ name: "router",
25
+ path: `@${metaName}/runtime/router`,
26
+ config: typeof routerConfig === "boolean" ? {
27
+ serverBase
28
+ } : {
29
+ ...routerConfig,
30
+ serverBase
57
31
  }
58
- };
59
- },
60
- async modifyEntrypoints({ entrypoints }) {
61
- const newEntryPoints = await handleModifyEntrypoints(api, entrypoints);
62
- return {
63
- entrypoints: newEntryPoints
64
- };
65
- },
66
- async generateEntryCode({ entrypoints }) {
67
- await handleGeneratorEntryCode(api, entrypoints);
68
- },
69
- addRuntimeExports() {
70
- const userConfig = api.useResolvedConfigContext();
71
- const { internalDirectory, metaName } = api.useAppContext();
72
- const pluginsExportsUtils = createRuntimeExportsUtils(internalDirectory, "plugins");
73
- if (!isV5(userConfig)) {
74
- pluginsExportsUtils.addExport(`export { default as router } from '@${metaName}/runtime/router'`);
32
+ });
33
+ }
34
+ return {
35
+ entrypoint,
36
+ plugins
37
+ };
38
+ });
39
+ api.checkEntryPoint(({ path: path2, entry }) => {
40
+ return {
41
+ path: path2,
42
+ entry: entry || isRouteEntry(path2)
43
+ };
44
+ });
45
+ api.config(() => {
46
+ return {
47
+ source: {
48
+ include: [
49
+ // react-router v6 is no longer support ie 11
50
+ // so we need to compile these packages to ensure the compatibility
51
+ // https://github.com/remix-run/react-router/commit/f6df0697e1b2064a2b3a12e8b39577326fdd945b
52
+ /node_modules\/react-router/,
53
+ /node_modules\/react-router-dom/,
54
+ /node_modules\/@remix-run\/router/
55
+ ]
75
56
  }
76
- },
77
- async fileChange(e) {
78
- await handleFileChange(api, e);
79
- },
80
- async modifyFileSystemRoutes({ entrypoint, routes }) {
81
- nestedRoutes[entrypoint.entryName] = routes;
82
- nestedRoutesForServer[entrypoint.entryName] = filterRoutesForServer(routes);
83
- return {
84
- entrypoint,
85
- routes
86
- };
87
- },
88
- async beforeGenerateRoutes({ entrypoint, code }) {
89
- const { distDirectory } = api.useAppContext();
90
- await fs.outputJSON(path.resolve(distDirectory, NESTED_ROUTE_SPEC_FILE), nestedRoutesForServer);
91
- return {
92
- entrypoint,
93
- code
94
- };
57
+ };
58
+ });
59
+ api.modifyEntrypoints(async ({ entrypoints }) => {
60
+ const newEntryPoints = await handleModifyEntrypoints(api, entrypoints);
61
+ return {
62
+ entrypoints: newEntryPoints
63
+ };
64
+ });
65
+ api.generateEntryCode(async ({ entrypoints }) => {
66
+ await handleGeneratorEntryCode(api, entrypoints);
67
+ });
68
+ api.addRuntimeExports(() => {
69
+ const userConfig = api.useResolvedConfigContext();
70
+ const { internalDirectory, metaName } = api.useAppContext();
71
+ const pluginsExportsUtils = createRuntimeExportsUtils(internalDirectory, "plugins");
72
+ if (!isV5(userConfig)) {
73
+ pluginsExportsUtils.addExport(`export { default as router } from '@${metaName}/runtime/router'`);
95
74
  }
96
- };
75
+ });
76
+ api.onFileChanged(async (e) => {
77
+ await handleFileChange(api, e);
78
+ });
79
+ api.modifyFileSystemRoutes(({ entrypoint, routes }) => {
80
+ nestedRoutes[entrypoint.entryName] = routes;
81
+ nestedRoutesForServer[entrypoint.entryName] = filterRoutesForServer(routes);
82
+ return {
83
+ entrypoint,
84
+ routes
85
+ };
86
+ });
87
+ api.onBeforeGenerateRoutes(async ({ entrypoint, code }) => {
88
+ const { distDirectory } = api.getAppContext();
89
+ await fs.outputJSON(path.resolve(distDirectory, NESTED_ROUTE_SPEC_FILE), nestedRoutesForServer);
90
+ return {
91
+ entrypoint,
92
+ code
93
+ };
94
+ });
97
95
  }
98
96
  });
99
97
  var cli_default = routerPlugin;
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { merge } from "@modern-js/runtime-utils/merge";
3
- import { parsedJSONFromElement } from "@modern-js/runtime-utils/parsed";
4
3
  import { RouterProvider, createBrowserRouter, createHashRouter, createRoutesFromElements, useHref, useLocation, useMatches } from "@modern-js/runtime-utils/router";
5
4
  import { useContext, useMemo } from "react";
6
5
  import { RuntimeReactContext } from "../../core";
@@ -28,7 +27,6 @@ const routerPlugin = (userConfig = {}) => {
28
27
  },
29
28
  setup: (api) => {
30
29
  let routes = [];
31
- window._SERVER_DATA = parsedJSONFromElement("__MODERN_SERVER_DATA__");
32
30
  return {
33
31
  beforeRender(context) {
34
32
  context.router = {
@@ -56,9 +54,8 @@ const routerPlugin = (userConfig = {}) => {
56
54
  }
57
55
  const getRouteApp = () => {
58
56
  const useCreateRouter = (props) => {
59
- var _window__SERVER_DATA;
60
57
  const runtimeContext = useContext(RuntimeReactContext);
61
- const baseUrl = (((_window__SERVER_DATA = window._SERVER_DATA) === null || _window__SERVER_DATA === void 0 ? void 0 : _window__SERVER_DATA.router.baseUrl) || select(location.pathname)).replace(/^\/*/, "/");
58
+ const baseUrl = select(location.pathname).replace(/^\/*/, "/");
62
59
  const _basename = baseUrl === "/" ? urlJoin(baseUrl, runtimeContext._internalRouterBaseName || basename) : baseUrl;
63
60
  let hydrationData = window._ROUTER_DATA;
64
61
  const { unstable_getBlockNavState: getBlockNavState } = runtimeContext;
@@ -6,31 +6,29 @@ const statePlugin = () => ({
6
6
  "@modern-js/runtime"
7
7
  ],
8
8
  setup: (api) => {
9
- return {
10
- _internalRuntimePlugins({ entrypoint, plugins }) {
11
- var _getEntryOptions;
12
- const { entryName, isMainEntry } = entrypoint;
13
- const userConfig = api.useResolvedConfigContext();
14
- const { packageName, metaName } = api.useAppContext();
15
- const stateConfig = (_getEntryOptions = getEntryOptions(entryName, isMainEntry, userConfig.runtime, userConfig.runtimeByEntries, packageName)) === null || _getEntryOptions === void 0 ? void 0 : _getEntryOptions.state;
16
- if (stateConfig) {
17
- plugins.push({
18
- name: PLUGIN_IDENTIFIER,
19
- path: `@${metaName}/runtime/model`,
20
- config: typeof stateConfig === "boolean" ? {} : stateConfig
21
- });
22
- }
23
- return {
24
- entrypoint,
25
- plugins
26
- };
27
- },
28
- addRuntimeExports() {
29
- const { internalDirectory, metaName } = api.useAppContext();
30
- const pluginsExportsUtils = createRuntimeExportsUtils(internalDirectory, "plugins");
31
- pluginsExportsUtils.addExport(`export { default as state } from '@${metaName}/runtime/model'`);
9
+ api._internalRuntimePlugins(({ entrypoint, plugins }) => {
10
+ var _getEntryOptions;
11
+ const { entryName, isMainEntry } = entrypoint;
12
+ const userConfig = api.useResolvedConfigContext();
13
+ const { packageName, metaName } = api.useAppContext();
14
+ const stateConfig = (_getEntryOptions = getEntryOptions(entryName, isMainEntry, userConfig.runtime, userConfig.runtimeByEntries, packageName)) === null || _getEntryOptions === void 0 ? void 0 : _getEntryOptions.state;
15
+ if (stateConfig) {
16
+ plugins.push({
17
+ name: PLUGIN_IDENTIFIER,
18
+ path: `@${metaName}/runtime/model`,
19
+ config: typeof stateConfig === "boolean" ? {} : stateConfig
20
+ });
32
21
  }
33
- };
22
+ return {
23
+ entrypoint,
24
+ plugins
25
+ };
26
+ });
27
+ api.addRuntimeExports(() => {
28
+ const { internalDirectory, metaName } = api.useAppContext();
29
+ const pluginsExportsUtils = createRuntimeExportsUtils(internalDirectory, "plugins");
30
+ pluginsExportsUtils.addExport(`export { default as state } from '@${metaName}/runtime/model'`);
31
+ });
34
32
  }
35
33
  });
36
34
  var cli_default = statePlugin;
@@ -1,10 +1,3 @@
1
- import type { AppTools, IAppContext, NormalizedConfig, RuntimePlugin } from '@modern-js/app-tools';
2
- import type { MaybeAsync } from '@modern-js/plugin';
1
+ import type { AppToolsContext, AppToolsFeatureHooks, AppToolsNormalizedConfig } from '@modern-js/app-tools';
3
2
  import type { Entrypoint } from '@modern-js/types';
4
- export declare const generateCode: (entrypoints: Entrypoint[], appContext: IAppContext, config: NormalizedConfig<AppTools>, onCollectRuntimePlugins: (params: {
5
- entrypoint: Entrypoint;
6
- plugins: RuntimePlugin[];
7
- }) => MaybeAsync<{
8
- entrypoint: Entrypoint;
9
- plugins: RuntimePlugin[];
10
- }>) => Promise<void>;
3
+ export declare const generateCode: (entrypoints: Entrypoint[], appContext: AppToolsContext<'shared'>, config: AppToolsNormalizedConfig, hooks: AppToolsFeatureHooks<'shared'>) => Promise<void>;
@@ -1,4 +1,4 @@
1
- import type { AppTools, CliPlugin } from '@modern-js/app-tools';
1
+ import type { AppTools, CliPluginFuture } from '@modern-js/app-tools';
2
2
  import { documentPlugin } from '../document/cli';
3
3
  import { routerPlugin } from '../router/cli';
4
4
  import { statePlugin } from '../state/cli';
@@ -6,6 +6,6 @@ import { ssrPlugin } from './ssr';
6
6
  export { isRuntimeEntry } from './entry';
7
7
  export { statePlugin, ssrPlugin, routerPlugin, documentPlugin };
8
8
  export declare const runtimePlugin: (params?: {
9
- plugins?: CliPlugin<AppTools>[];
10
- }) => CliPlugin<AppTools>;
9
+ plugins?: CliPluginFuture<AppTools<'shared'>>[];
10
+ }) => CliPluginFuture<AppTools<'shared'>>;
11
11
  export default runtimePlugin;
@@ -1,3 +1,3 @@
1
- import type { AppTools, CliPlugin } from '@modern-js/app-tools';
2
- export declare const ssrPlugin: () => CliPlugin<AppTools>;
1
+ import type { AppTools, CliPluginFuture } from '@modern-js/app-tools';
2
+ export declare const ssrPlugin: () => CliPluginFuture<AppTools<'shared'>>;
3
3
  export default ssrPlugin;
@@ -1,5 +1,5 @@
1
- import type { AppTools, CliPlugin } from '@modern-js/app-tools';
1
+ import type { AppTools, CliPluginFuture } from '@modern-js/app-tools';
2
2
  import type { Entrypoint } from '@modern-js/types/cli';
3
3
  export declare const getDocumenByEntryName: (entrypoints: Entrypoint[], entryName: string, fallbackDir?: string) => string | undefined;
4
- export declare const documentPlugin: () => CliPlugin<AppTools>;
4
+ export declare const documentPlugin: () => CliPluginFuture<AppTools<'shared'>>;
5
5
  export default documentPlugin;
@@ -1,5 +1,5 @@
1
- import type { AppNormalizedConfig, AppTools } from '@modern-js/app-tools';
2
- import type { IAppContext, PluginAPI } from '@modern-js/core';
1
+ import type { AppNormalizedConfig, AppTools, AppToolsContext } from '@modern-js/app-tools';
2
+ import type { CLIPluginAPI } from '@modern-js/plugin-v2';
3
3
  import type { Entrypoint } from '@modern-js/types';
4
- export declare const generateCode: (appContext: IAppContext, config: AppNormalizedConfig<'shared'>, entrypoints: Entrypoint[], api: PluginAPI<AppTools<'shared'>>) => Promise<void>;
4
+ export declare const generateCode: (appContext: AppToolsContext<'shared'>, config: AppNormalizedConfig<'shared'>, entrypoints: Entrypoint[], api: CLIPluginAPI<AppTools<'shared'>>) => Promise<void>;
5
5
  export declare function generatorRegisterCode(internalDirectory: string, entryName: string, code: string): void;
@@ -1,4 +1,4 @@
1
- import type { AppNormalizedConfig, IAppContext } from '@modern-js/app-tools';
1
+ import type { AppNormalizedConfig, AppToolsContext } from '@modern-js/app-tools';
2
2
  import type { Entrypoint, NestedRouteForCli, PageRoute, RouteLegacy, SSRMode } from '@modern-js/types';
3
3
  export declare const routesForServer: ({ routesForServerLoaderMatches, }: {
4
4
  routesForServerLoaderMatches: (NestedRouteForCli | PageRoute)[];
@@ -12,7 +12,7 @@ export declare const fileSystemRoutes: ({ metaName, routes, ssrMode, nestedRoute
12
12
  internalDirectory: string;
13
13
  splitRouteChunks?: boolean | undefined;
14
14
  }) => Promise<string>;
15
- export declare function ssrLoaderCombinedModule(entrypoints: Entrypoint[], entrypoint: Entrypoint, config: AppNormalizedConfig<'shared'>, appContext: IAppContext): string | null;
15
+ export declare function ssrLoaderCombinedModule(entrypoints: Entrypoint[], entrypoint: Entrypoint, config: AppNormalizedConfig<'shared'>, appContext: AppToolsContext<'shared'>): string | null;
16
16
  export declare const runtimeGlobalContext: ({ metaName, srcDirectory, nestedRoutesEntry, internalSrcAlias, globalApp, }: {
17
17
  metaName: string;
18
18
  srcDirectory: string;
@@ -1,6 +1,6 @@
1
1
  import type { AppTools } from '@modern-js/app-tools';
2
- import type { PluginAPI } from '@modern-js/core';
2
+ import type { CLIPluginAPI } from '@modern-js/plugin-v2';
3
3
  import type { Entrypoint } from '@modern-js/types';
4
- export declare function handleModifyEntrypoints(api: PluginAPI<AppTools<'shared'>>, entrypoints: Entrypoint[]): Promise<Entrypoint[]>;
5
- export declare function handleGeneratorEntryCode(api: PluginAPI<AppTools<'shared'>>, entrypoints: Entrypoint[]): Promise<Entrypoint[]>;
6
- export declare function handleFileChange(api: PluginAPI<AppTools<'shared'>>, e: any): Promise<void>;
4
+ export declare function handleModifyEntrypoints(api: CLIPluginAPI<AppTools<'shared'>>, entrypoints: Entrypoint[]): Promise<Entrypoint[]>;
5
+ export declare function handleGeneratorEntryCode(api: CLIPluginAPI<AppTools<'shared'>>, entrypoints: Entrypoint[]): Promise<Entrypoint[]>;
6
+ export declare function handleFileChange(api: CLIPluginAPI<AppTools<'shared'>>, e: any): Promise<void>;
@@ -1,5 +1,5 @@
1
- import type { AppTools, CliPlugin } from '@modern-js/app-tools';
1
+ import type { AppTools, CliPluginFuture } from '@modern-js/app-tools';
2
2
  export { isRouteEntry } from './entry';
3
3
  export { handleFileChange, handleModifyEntrypoints } from './handler';
4
- export declare const routerPlugin: () => CliPlugin<AppTools<'shared'>>;
4
+ export declare const routerPlugin: () => CliPluginFuture<AppTools<'shared'>>;
5
5
  export default routerPlugin;
@@ -2,16 +2,6 @@
2
2
  import type { RequestContext } from '@modern-js/runtime-utils/node';
3
3
  import type { Params, RouteObject, RouteProps } from '@modern-js/runtime-utils/router';
4
4
  import type { NestedRoute, PageRoute } from '@modern-js/types';
5
- declare global {
6
- interface Window {
7
- _SERVER_DATA?: {
8
- router: {
9
- baseUrl: string;
10
- params: Record<string, string>;
11
- };
12
- };
13
- }
14
- }
15
5
  export type SingleRouteConfig = RouteProps & {
16
6
  redirect?: string;
17
7
  routes?: SingleRouteConfig[];
@@ -1,3 +1,3 @@
1
- import type { AppTools, CliPlugin } from '@modern-js/app-tools';
2
- export declare const statePlugin: () => CliPlugin<AppTools>;
1
+ import type { AppTools, CliPluginFuture } from '@modern-js/app-tools';
2
+ export declare const statePlugin: () => CliPluginFuture<AppTools<'shared'>>;
3
3
  export default statePlugin;
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.63.3",
18
+ "version": "2.63.4",
19
19
  "engines": {
20
20
  "node": ">=14.17.6"
21
21
  },
@@ -200,11 +200,12 @@
200
200
  "react-is": "^18",
201
201
  "react-side-effect": "^2.1.1",
202
202
  "styled-components": "^5.3.1",
203
- "@modern-js/plugin": "2.63.3",
204
- "@modern-js/plugin-data-loader": "2.63.3",
205
- "@modern-js/types": "2.63.3",
206
- "@modern-js/runtime-utils": "2.63.3",
207
- "@modern-js/utils": "2.63.3"
203
+ "@modern-js/plugin": "2.63.4",
204
+ "@modern-js/plugin-v2": "2.63.4",
205
+ "@modern-js/plugin-data-loader": "2.63.4",
206
+ "@modern-js/runtime-utils": "2.63.4",
207
+ "@modern-js/types": "2.63.4",
208
+ "@modern-js/utils": "2.63.4"
208
209
  },
209
210
  "peerDependencies": {
210
211
  "react": ">=17",
@@ -212,7 +213,7 @@
212
213
  },
213
214
  "devDependencies": {
214
215
  "@remix-run/web-fetch": "^4.1.3",
215
- "@rsbuild/core": "1.1.10",
216
+ "@rsbuild/core": "1.1.12",
216
217
  "@testing-library/react": "^13.4.0",
217
218
  "@types/cookie": "0.6.0",
218
219
  "@types/invariant": "^2.2.30",
@@ -228,10 +229,9 @@
228
229
  "ts-node": "^10.9.1",
229
230
  "typescript": "^5",
230
231
  "webpack": "^5.97.1",
231
- "@modern-js/app-tools": "2.63.3",
232
- "@modern-js/core": "2.63.3",
233
- "@scripts/build": "2.63.3",
234
- "@scripts/jest-config": "2.63.3"
232
+ "@modern-js/app-tools": "2.63.4",
233
+ "@scripts/build": "2.63.4",
234
+ "@scripts/jest-config": "2.63.4"
235
235
  },
236
236
  "sideEffects": false,
237
237
  "publishConfig": {