@modern-js/server-core 2.68.5 → 2.68.7

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.
@@ -34,12 +34,18 @@ const httpCallBack2HonoMid = (handler) => {
34
34
  req.__honoRequest = context.req;
35
35
  req.__templates = context.get("templates") || {};
36
36
  req.__serverManifest = context.get("serverManifest") || {};
37
+ req.__rscServerManifest = context.get("rscServerManifest");
38
+ req.__rscClientManifest = context.get("rscClientManifest");
39
+ req.__rscSSRManifest = context.get("rscSSRManifest");
37
40
  try {
38
41
  await handler(req, res);
39
42
  } finally {
40
43
  delete req.__honoRequest;
41
44
  delete req.__templates;
42
45
  delete req.__serverManifest;
46
+ delete req.__rscServerManifest;
47
+ delete req.__rscClientManifest;
48
+ delete req.__rscSSRManifest;
43
49
  res.removeListener("pipe", onPipe);
44
50
  }
45
51
  if ((0, import_helper.isResFinalized)(res)) {
@@ -83,19 +83,30 @@ const createWebRequest = (req, res, body) => {
83
83
  }
84
84
  const originalRequest = new Request(url, init);
85
85
  if (needsRequestBody) {
86
+ const interceptedMethods = [
87
+ "json",
88
+ "text",
89
+ "blob",
90
+ "arrayBuffer",
91
+ "formData"
92
+ ];
86
93
  return new Proxy(originalRequest, {
87
94
  get(target, prop) {
88
- if ([
89
- "json",
90
- "text",
91
- "blob",
92
- "arrayBuffer",
93
- "formData",
94
- "body"
95
- ].includes(prop)) {
95
+ if (interceptedMethods.includes(prop)) {
96
+ return (...args) => {
97
+ cloneableReq.resume();
98
+ return target[prop].call(target, ...args);
99
+ };
100
+ }
101
+ const value = target[prop];
102
+ if (prop === "body") {
96
103
  cloneableReq.resume();
104
+ return value;
105
+ }
106
+ if (typeof value === "function") {
107
+ return (...args) => value.apply(target, args);
97
108
  }
98
- return target[prop];
109
+ return value;
99
110
  }
100
111
  });
101
112
  }
@@ -62,9 +62,17 @@ const injectRenderHandlerPlugin = ({ staticGenerate, cacheConfig }) => ({
62
62
  }
63
63
  });
64
64
  async function getRenderHandler({ pwd, routes, config, cacheConfig, metaName, staticGenerate, onFallback }) {
65
- var _config_server, _config_security;
65
+ var _config_server, _config_server1, _config_security;
66
66
  const ssrConfig = (_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.ssr;
67
+ const ssrByEntries = (_config_server1 = config.server) === null || _config_server1 === void 0 ? void 0 : _config_server1.ssrByEntries;
67
68
  const forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
69
+ const forceCSRMap = /* @__PURE__ */ new Map();
70
+ if (ssrByEntries) {
71
+ Object.entries(ssrByEntries).forEach(([entryName, ssrConfig2]) => {
72
+ var _ssrConfig_forceCSR;
73
+ forceCSRMap.set(entryName, typeof ssrConfig2 === "object" ? (_ssrConfig_forceCSR = ssrConfig2.forceCSR) !== null && _ssrConfig_forceCSR !== void 0 ? _ssrConfig_forceCSR : false : false);
74
+ });
75
+ }
68
76
  const render = (0, import_render.createRender)({
69
77
  routes,
70
78
  pwd,
@@ -72,6 +80,7 @@ async function getRenderHandler({ pwd, routes, config, cacheConfig, metaName, st
72
80
  staticGenerate,
73
81
  cacheConfig,
74
82
  forceCSR,
83
+ forceCSRMap,
75
84
  nonce: (_config_security = config.security) === null || _config_security === void 0 ? void 0 : _config_security.nonce,
76
85
  metaName: metaName || "modern-js",
77
86
  onFallback
@@ -83,7 +83,7 @@ function getHeadersWithoutCookie(headers) {
83
83
  delete _headers.cookie;
84
84
  return _headers;
85
85
  }
86
- async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, config, onFallback }) {
86
+ async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, forceCSRMap, config, onFallback }) {
87
87
  const router = getRouter(routes);
88
88
  return async (req, { logger, reporter, metrics, monitors, nodeReq, templates, serverManifest, rscClientManifest, rscSSRManifest, rscServerManifest, locals, matchEntryName, matchPathname, loaderContext }) => {
89
89
  const forMatchpathname = matchPathname !== null && matchPathname !== void 0 ? matchPathname : (0, import_utils2.getPathname)(req);
@@ -116,7 +116,9 @@ async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig
116
116
  }
117
117
  });
118
118
  }
119
- const renderMode = await getRenderMode(req, fallbackHeader, routeInfo.isSSR, forceCSR, nodeReq, fallbackWrapper);
119
+ var _forceCSRMap_get;
120
+ const finalForceCSR = routeInfo.entryName ? (_forceCSRMap_get = forceCSRMap === null || forceCSRMap === void 0 ? void 0 : forceCSRMap.get(routeInfo.entryName)) !== null && _forceCSRMap_get !== void 0 ? _forceCSRMap_get : forceCSR : forceCSR;
121
+ const renderMode = await getRenderMode(req, fallbackHeader, routeInfo.isSSR, finalForceCSR, nodeReq, fallbackWrapper);
120
122
  const headerData = (0, import_utils2.parseHeaders)(req);
121
123
  const onError = (e, key) => {
122
124
  monitors === null || monitors === void 0 ? void 0 : monitors.error(`SSR Error - ${key || (e instanceof Error ? e.name : e)}, error = %s, req.url = %s, req.headers = %o`, e instanceof Error ? e.stack || e.message : e, forMatchpathname, getHeadersWithoutCookie(headerData));
@@ -16,6 +16,9 @@ var httpCallBack2HonoMid = function(handler) {
16
16
  req.__honoRequest = context.req;
17
17
  req.__templates = context.get("templates") || {};
18
18
  req.__serverManifest = context.get("serverManifest") || {};
19
+ req.__rscServerManifest = context.get("rscServerManifest");
20
+ req.__rscClientManifest = context.get("rscClientManifest");
21
+ req.__rscSSRManifest = context.get("rscSSRManifest");
19
22
  _state.label = 1;
20
23
  case 1:
21
24
  _state.trys.push([
@@ -38,6 +41,9 @@ var httpCallBack2HonoMid = function(handler) {
38
41
  delete req.__honoRequest;
39
42
  delete req.__templates;
40
43
  delete req.__serverManifest;
44
+ delete req.__rscServerManifest;
45
+ delete req.__rscClientManifest;
46
+ delete req.__rscSSRManifest;
41
47
  res.removeListener("pipe", onPipe);
42
48
  return [
43
49
  7
@@ -2,6 +2,7 @@ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
2
  import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
3
3
  import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
4
4
  import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
5
+ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
5
6
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
6
7
  import { ServerResponse } from "node:http";
7
8
  import { Readable, Writable } from "node:stream";
@@ -89,19 +90,41 @@ var createWebRequest = function(req, res, body) {
89
90
  }
90
91
  var originalRequest = new Request(url, init);
91
92
  if (needsRequestBody) {
93
+ var interceptedMethods = [
94
+ "json",
95
+ "text",
96
+ "blob",
97
+ "arrayBuffer",
98
+ "formData"
99
+ ];
92
100
  return new Proxy(originalRequest, {
93
101
  get: function get(target, prop) {
94
- if ([
95
- "json",
96
- "text",
97
- "blob",
98
- "arrayBuffer",
99
- "formData",
100
- "body"
101
- ].includes(prop)) {
102
+ if (interceptedMethods.includes(prop)) {
103
+ return function() {
104
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
105
+ args[_key] = arguments[_key];
106
+ }
107
+ var _target_prop;
108
+ cloneableReq.resume();
109
+ return (_target_prop = target[prop]).call.apply(_target_prop, [
110
+ target
111
+ ].concat(_to_consumable_array(args)));
112
+ };
113
+ }
114
+ var value2 = target[prop];
115
+ if (prop === "body") {
102
116
  cloneableReq.resume();
117
+ return value2;
118
+ }
119
+ if (typeof value2 === "function") {
120
+ return function() {
121
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
122
+ args[_key] = arguments[_key];
123
+ }
124
+ return value2.apply(target, args);
125
+ };
103
126
  }
104
- return target[prop];
127
+ return value2;
105
128
  }
106
129
  });
107
130
  }
@@ -1,6 +1,7 @@
1
1
  import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
2
  import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
3
3
  import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
4
+ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
4
5
  import { _ as _type_of } from "@swc/helpers/_/_type_of";
5
6
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
6
7
  import { createRender } from "./render";
@@ -85,11 +86,20 @@ function getRenderHandler(_) {
85
86
  }
86
87
  function _getRenderHandler() {
87
88
  _getRenderHandler = _async_to_generator(function(param) {
88
- var pwd, routes, config, cacheConfig, metaName, staticGenerate, onFallback, _config_server, _config_security, ssrConfig, forceCSR, render;
89
+ var pwd, routes, config, cacheConfig, metaName, staticGenerate, onFallback, _config_server, _config_server1, _config_security, ssrConfig, ssrByEntries, forceCSR, forceCSRMap, render;
89
90
  return _ts_generator(this, function(_state) {
90
91
  pwd = param.pwd, routes = param.routes, config = param.config, cacheConfig = param.cacheConfig, metaName = param.metaName, staticGenerate = param.staticGenerate, onFallback = param.onFallback;
91
92
  ssrConfig = (_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.ssr;
93
+ ssrByEntries = (_config_server1 = config.server) === null || _config_server1 === void 0 ? void 0 : _config_server1.ssrByEntries;
92
94
  forceCSR = (typeof ssrConfig === "undefined" ? "undefined" : _type_of(ssrConfig)) === "object" ? ssrConfig.forceCSR : false;
95
+ forceCSRMap = /* @__PURE__ */ new Map();
96
+ if (ssrByEntries) {
97
+ Object.entries(ssrByEntries).forEach(function(param2) {
98
+ var _param = _sliced_to_array(param2, 2), entryName = _param[0], ssrConfig2 = _param[1];
99
+ var _ssrConfig_forceCSR;
100
+ forceCSRMap.set(entryName, (typeof ssrConfig2 === "undefined" ? "undefined" : _type_of(ssrConfig2)) === "object" ? (_ssrConfig_forceCSR = ssrConfig2.forceCSR) !== null && _ssrConfig_forceCSR !== void 0 ? _ssrConfig_forceCSR : false : false);
101
+ });
102
+ }
93
103
  render = createRender({
94
104
  routes,
95
105
  pwd,
@@ -97,6 +107,7 @@ function _getRenderHandler() {
97
107
  staticGenerate,
98
108
  cacheConfig,
99
109
  forceCSR,
110
+ forceCSRMap,
100
111
  nonce: (_config_security = config.security) === null || _config_security === void 0 ? void 0 : _config_security.nonce,
101
112
  metaName: metaName || "modern-js",
102
113
  onFallback
@@ -79,15 +79,15 @@ function createRender(_) {
79
79
  }
80
80
  function _createRender() {
81
81
  _createRender = _async_to_generator(function(param) {
82
- var routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, config, onFallback, router;
82
+ var routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, forceCSRMap, config, onFallback, router;
83
83
  return _ts_generator(this, function(_state) {
84
- routes = param.routes, pwd = param.pwd, metaName = param.metaName, staticGenerate = param.staticGenerate, cacheConfig = param.cacheConfig, forceCSR = param.forceCSR, config = param.config, onFallback = param.onFallback;
84
+ routes = param.routes, pwd = param.pwd, metaName = param.metaName, staticGenerate = param.staticGenerate, cacheConfig = param.cacheConfig, forceCSR = param.forceCSR, forceCSRMap = param.forceCSRMap, config = param.config, onFallback = param.onFallback;
85
85
  router = getRouter(routes);
86
86
  return [
87
87
  2,
88
88
  function() {
89
89
  var _ref = _async_to_generator(function(req, param2) {
90
- var logger, reporter, metrics, monitors, nodeReq, templates, serverManifest, rscClientManifest, rscSSRManifest, rscServerManifest, locals, matchEntryName, matchPathname, loaderContext, forMatchpathname, _matchRoute, routeInfo, params, framework, fallbackHeader, fallbackReason, fallbackWrapper, html, renderMode, headerData, onError, onTiming, renderOptions, response, _tmp;
90
+ var logger, reporter, metrics, monitors, nodeReq, templates, serverManifest, rscClientManifest, rscSSRManifest, rscServerManifest, locals, matchEntryName, matchPathname, loaderContext, forMatchpathname, _matchRoute, routeInfo, params, framework, fallbackHeader, fallbackReason, fallbackWrapper, html, _forceCSRMap_get, finalForceCSR, renderMode, headerData, onError, onTiming, renderOptions, response, _tmp;
91
91
  return _ts_generator(this, function(_state2) {
92
92
  switch (_state2.label) {
93
93
  case 0:
@@ -138,9 +138,10 @@ function _createRender() {
138
138
  })
139
139
  ];
140
140
  }
141
+ finalForceCSR = routeInfo.entryName ? (_forceCSRMap_get = forceCSRMap === null || forceCSRMap === void 0 ? void 0 : forceCSRMap.get(routeInfo.entryName)) !== null && _forceCSRMap_get !== void 0 ? _forceCSRMap_get : forceCSR : forceCSR;
141
142
  return [
142
143
  4,
143
- getRenderMode(req, fallbackHeader, routeInfo.isSSR, forceCSR, nodeReq, fallbackWrapper)
144
+ getRenderMode(req, fallbackHeader, routeInfo.isSSR, finalForceCSR, nodeReq, fallbackWrapper)
144
145
  ];
145
146
  case 1:
146
147
  renderMode = _state2.sent();
@@ -9,12 +9,18 @@ const httpCallBack2HonoMid = (handler) => {
9
9
  req.__honoRequest = context.req;
10
10
  req.__templates = context.get("templates") || {};
11
11
  req.__serverManifest = context.get("serverManifest") || {};
12
+ req.__rscServerManifest = context.get("rscServerManifest");
13
+ req.__rscClientManifest = context.get("rscClientManifest");
14
+ req.__rscSSRManifest = context.get("rscSSRManifest");
12
15
  try {
13
16
  await handler(req, res);
14
17
  } finally {
15
18
  delete req.__honoRequest;
16
19
  delete req.__templates;
17
20
  delete req.__serverManifest;
21
+ delete req.__rscServerManifest;
22
+ delete req.__rscClientManifest;
23
+ delete req.__rscSSRManifest;
18
24
  res.removeListener("pipe", onPipe);
19
25
  }
20
26
  if (isResFinalized(res)) {
@@ -48,19 +48,30 @@ const createWebRequest = (req, res, body) => {
48
48
  }
49
49
  const originalRequest = new Request(url, init);
50
50
  if (needsRequestBody) {
51
+ const interceptedMethods = [
52
+ "json",
53
+ "text",
54
+ "blob",
55
+ "arrayBuffer",
56
+ "formData"
57
+ ];
51
58
  return new Proxy(originalRequest, {
52
59
  get(target, prop) {
53
- if ([
54
- "json",
55
- "text",
56
- "blob",
57
- "arrayBuffer",
58
- "formData",
59
- "body"
60
- ].includes(prop)) {
60
+ if (interceptedMethods.includes(prop)) {
61
+ return (...args) => {
62
+ cloneableReq.resume();
63
+ return target[prop].call(target, ...args);
64
+ };
65
+ }
66
+ const value = target[prop];
67
+ if (prop === "body") {
61
68
  cloneableReq.resume();
69
+ return value;
70
+ }
71
+ if (typeof value === "function") {
72
+ return (...args) => value.apply(target, args);
62
73
  }
63
- return target[prop];
74
+ return value;
64
75
  }
65
76
  });
66
77
  }
@@ -38,9 +38,17 @@ const injectRenderHandlerPlugin = ({ staticGenerate, cacheConfig }) => ({
38
38
  }
39
39
  });
40
40
  async function getRenderHandler({ pwd, routes, config, cacheConfig, metaName, staticGenerate, onFallback }) {
41
- var _config_server, _config_security;
41
+ var _config_server, _config_server1, _config_security;
42
42
  const ssrConfig = (_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.ssr;
43
+ const ssrByEntries = (_config_server1 = config.server) === null || _config_server1 === void 0 ? void 0 : _config_server1.ssrByEntries;
43
44
  const forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
45
+ const forceCSRMap = /* @__PURE__ */ new Map();
46
+ if (ssrByEntries) {
47
+ Object.entries(ssrByEntries).forEach(([entryName, ssrConfig2]) => {
48
+ var _ssrConfig_forceCSR;
49
+ forceCSRMap.set(entryName, typeof ssrConfig2 === "object" ? (_ssrConfig_forceCSR = ssrConfig2.forceCSR) !== null && _ssrConfig_forceCSR !== void 0 ? _ssrConfig_forceCSR : false : false);
50
+ });
51
+ }
44
52
  const render = createRender({
45
53
  routes,
46
54
  pwd,
@@ -48,6 +56,7 @@ async function getRenderHandler({ pwd, routes, config, cacheConfig, metaName, st
48
56
  staticGenerate,
49
57
  cacheConfig,
50
58
  forceCSR,
59
+ forceCSRMap,
51
60
  nonce: (_config_security = config.security) === null || _config_security === void 0 ? void 0 : _config_security.nonce,
52
61
  metaName: metaName || "modern-js",
53
62
  onFallback
@@ -50,7 +50,7 @@ function getHeadersWithoutCookie(headers) {
50
50
  delete _headers.cookie;
51
51
  return _headers;
52
52
  }
53
- async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, config, onFallback }) {
53
+ async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, forceCSRMap, config, onFallback }) {
54
54
  const router = getRouter(routes);
55
55
  return async (req, { logger, reporter, metrics, monitors, nodeReq, templates, serverManifest, rscClientManifest, rscSSRManifest, rscServerManifest, locals, matchEntryName, matchPathname, loaderContext }) => {
56
56
  const forMatchpathname = matchPathname !== null && matchPathname !== void 0 ? matchPathname : getPathname(req);
@@ -83,7 +83,9 @@ async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig
83
83
  }
84
84
  });
85
85
  }
86
- const renderMode = await getRenderMode(req, fallbackHeader, routeInfo.isSSR, forceCSR, nodeReq, fallbackWrapper);
86
+ var _forceCSRMap_get;
87
+ const finalForceCSR = routeInfo.entryName ? (_forceCSRMap_get = forceCSRMap === null || forceCSRMap === void 0 ? void 0 : forceCSRMap.get(routeInfo.entryName)) !== null && _forceCSRMap_get !== void 0 ? _forceCSRMap_get : forceCSR : forceCSR;
88
+ const renderMode = await getRenderMode(req, fallbackHeader, routeInfo.isSSR, finalForceCSR, nodeReq, fallbackWrapper);
87
89
  const headerData = parseHeaders(req);
88
90
  const onError = (e, key) => {
89
91
  monitors === null || monitors === void 0 ? void 0 : monitors.error(`SSR Error - ${key || (e instanceof Error ? e.name : e)}, error = %s, req.url = %s, req.headers = %o`, e instanceof Error ? e.stack || e.message : e, forMatchpathname, getHeadersWithoutCookie(headerData));
@@ -1,9 +1,12 @@
1
- import type { NodeRequest, NodeResponse } from '@modern-js/types/server';
1
+ import type { ClientManifest, NodeRequest, NodeResponse, SSRManifest } from '@modern-js/types/server';
2
2
  import type { HonoRequest, ServerManifest } from '../../../types';
3
3
  type ExtendedNodeRequest = NodeRequest & {
4
4
  __honoRequest?: HonoRequest;
5
5
  __templates?: Record<string, string>;
6
6
  __serverManifest?: ServerManifest;
7
+ __rscServerManifest?: ServerManifest;
8
+ __rscClientManifest?: ClientManifest;
9
+ __rscSSRManifest?: SSRManifest;
7
10
  };
8
11
  type ExtendedNodeResponse = NodeResponse & {
9
12
  _modernBodyPiped?: boolean;
@@ -10,7 +10,8 @@ interface CreateRenderOptions {
10
10
  onFallback?: OnFallback;
11
11
  metaName?: string;
12
12
  forceCSR?: boolean;
13
+ forceCSRMap?: Map<string, boolean>;
13
14
  nonce?: string;
14
15
  }
15
- export declare function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, config, onFallback, }: CreateRenderOptions): Promise<Render>;
16
+ export declare function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, forceCSRMap, config, onFallback, }: CreateRenderOptions): Promise<Render>;
16
17
  export {};
@@ -12,7 +12,6 @@ export type SSR = boolean | {
12
12
  inlineScript?: boolean;
13
13
  disablePrerender?: boolean;
14
14
  unsafeHeaders?: string[];
15
- scriptLoading?: 'defer' | 'blocking' | 'module' | 'async';
16
15
  loaderFailureMode?: 'clientRender' | 'errorBoundary';
17
16
  };
18
17
  export type SSRByEntries = Record<string, SSR>;
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.68.5",
18
+ "version": "2.68.7",
19
19
  "jsnext:source": "./src/index.ts",
20
20
  "types": "./dist/types/index.d.ts",
21
21
  "main": "./dist/cjs/index.js",
@@ -54,10 +54,10 @@
54
54
  "flatted": "^3.3.3",
55
55
  "hono": "^3.12.2",
56
56
  "ts-deepmerge": "7.0.2",
57
- "@modern-js/plugin": "2.68.5",
58
- "@modern-js/plugin-v2": "2.68.5",
59
- "@modern-js/runtime-utils": "2.68.5",
60
- "@modern-js/utils": "2.68.5"
57
+ "@modern-js/plugin": "2.68.7",
58
+ "@modern-js/plugin-v2": "2.68.7",
59
+ "@modern-js/runtime-utils": "2.68.7",
60
+ "@modern-js/utils": "2.68.7"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@types/cloneable-readable": "^2.0.3",
@@ -68,9 +68,9 @@
68
68
  "jest": "^29",
69
69
  "ts-jest": "^29.1.0",
70
70
  "typescript": "^5",
71
- "@modern-js/types": "2.68.5",
72
- "@scripts/jest-config": "2.66.0",
73
- "@scripts/build": "2.66.0"
71
+ "@modern-js/types": "2.68.7",
72
+ "@scripts/build": "2.66.0",
73
+ "@scripts/jest-config": "2.66.0"
74
74
  },
75
75
  "sideEffects": false,
76
76
  "publishConfig": {