@webtypen/webframez-react 0.0.32 → 0.0.34

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.
package/dist/router.js CHANGED
@@ -10,6 +10,7 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
10
10
  import fs from "node:fs";
11
11
  import Module from "node:module";
12
12
  import path from "node:path";
13
+ import { RouteChildrenSlot } from "@webtypen/webframez-react/route-slot";
13
14
 
14
15
  // src/head.ts
15
16
  var ABSOLUTE_ASSET_URL_PATTERN = /^(?:[a-zA-Z][a-zA-Z\d+\-.]*:|\/\/|#)/;
@@ -99,6 +100,16 @@ function isRouteChildrenType(type) {
99
100
  return false;
100
101
  }
101
102
  }
103
+ function isReactElementLike(node) {
104
+ if (!node || typeof node !== "object") {
105
+ return false;
106
+ }
107
+ try {
108
+ return "type" in node && "props" in node;
109
+ } catch {
110
+ return false;
111
+ }
112
+ }
102
113
  function injectRouteChildren(node, routeChildren) {
103
114
  if (node === null || node === void 0 || typeof node === "boolean") {
104
115
  return node;
@@ -114,13 +125,17 @@ function injectRouteChildren(node, routeChildren) {
114
125
  });
115
126
  return changed ? next : node;
116
127
  }
117
- if (!React.isValidElement(node)) {
128
+ if (isReactElementLike(node) && isRouteChildrenType(node.type)) {
129
+ return routeChildren;
130
+ }
131
+ const isValidElement = React.isValidElement(node);
132
+ if (!isValidElement && !isReactElementLike(node)) {
118
133
  return node;
119
134
  }
120
- if (isRouteChildrenType(node.type)) {
135
+ if (isValidElement && isRouteChildrenType(node.type)) {
121
136
  return routeChildren;
122
137
  }
123
- const props = node.props;
138
+ const props = node.props ?? {};
124
139
  if (!("children" in props)) {
125
140
  return node;
126
141
  }
@@ -128,10 +143,19 @@ function injectRouteChildren(node, routeChildren) {
128
143
  if (nextChildren === props.children) {
129
144
  return node;
130
145
  }
131
- if (Array.isArray(nextChildren)) {
132
- return React.cloneElement(node, void 0, ...nextChildren);
146
+ if (isValidElement) {
147
+ if (Array.isArray(nextChildren)) {
148
+ return React.cloneElement(node, void 0, ...nextChildren);
149
+ }
150
+ return React.cloneElement(node, void 0, nextChildren);
133
151
  }
134
- return React.cloneElement(node, void 0, nextChildren);
152
+ const elementLike = node;
153
+ const nextProps = {
154
+ ...elementLike.props ?? {},
155
+ children: nextChildren,
156
+ ...elementLike.key !== void 0 && elementLike.key !== null ? { key: elementLike.key } : {}
157
+ };
158
+ return React.createElement(elementLike.type, nextProps);
135
159
  }
136
160
 
137
161
  // src/file-router.tsx
@@ -472,9 +496,12 @@ function createFileRouter(options) {
472
496
  const errorHead = await resolveHead(errorModule, errorProps);
473
497
  const layoutNode = layoutModule ? await layoutModule.default(context) : null;
474
498
  const model = layoutNode ? injectRouteChildren(layoutNode, errorNode) : errorNode;
499
+ const contextModel = layoutNode ? injectRouteChildren(layoutNode, /* @__PURE__ */ jsx(RouteChildrenSlot, {})) : void 0;
475
500
  return {
476
501
  statusCode,
477
502
  model,
503
+ contextModel,
504
+ pageModel: errorNode,
478
505
  head: mergeHead(layoutHead, errorHead)
479
506
  };
480
507
  }
@@ -594,9 +621,12 @@ function createFileRouter(options) {
594
621
  const pageHead = await resolveHead(pageModule, pageContext);
595
622
  const layoutNode = layoutModule ? await layoutModule.default(pageContext) : null;
596
623
  const model = layoutNode ? injectRouteChildren(layoutNode, pageNode) : pageNode;
624
+ const contextModel = layoutNode ? injectRouteChildren(layoutNode, /* @__PURE__ */ jsx(RouteChildrenSlot, {})) : void 0;
597
625
  return {
598
626
  statusCode: 200,
599
627
  model,
628
+ contextModel,
629
+ pageModel: pageNode,
600
630
  head: mergeHead(layoutHead, pageHead)
601
631
  };
602
632
  } catch (error) {
package/dist/types.d.ts CHANGED
@@ -71,6 +71,8 @@ export type HeadConfig = {
71
71
  export type ClientNavigationPayload = {
72
72
  model: ReactNode;
73
73
  head: HeadConfig;
74
+ contextModel?: ReactNode;
75
+ pageModel?: ReactNode;
74
76
  };
75
77
 
76
78
  export type HeadResolver<TContext = RouteContext> = (
@@ -145,6 +145,7 @@ function sendRSC(res, model, options = {}) {
145
145
  } = options;
146
146
  res.statusCode = statusCode;
147
147
  res.setHeader("Content-Type", contentType);
148
+ res.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, proxy-revalidate");
148
149
  const stream = (0, import_server.renderToPipeableStream)(model, moduleMap, { onError });
149
150
  stream.pipe(res);
150
151
  return stream;
@@ -154,6 +155,7 @@ function sendRSC(res, model, options = {}) {
154
155
  var import_node_fs = __toESM(require("node:fs"), 1);
155
156
  var import_node_module2 = __toESM(require("node:module"), 1);
156
157
  var import_node_path2 = __toESM(require("node:path"), 1);
158
+ var import_route_slot = require("@webtypen/webframez-react/route-slot");
157
159
 
158
160
  // src/head.ts
159
161
  var ABSOLUTE_ASSET_URL_PATTERN = /^(?:[a-zA-Z][a-zA-Z\d+\-.]*:|\/\/|#)/;
@@ -243,6 +245,16 @@ function isRouteChildrenType(type) {
243
245
  return false;
244
246
  }
245
247
  }
248
+ function isReactElementLike(node) {
249
+ if (!node || typeof node !== "object") {
250
+ return false;
251
+ }
252
+ try {
253
+ return "type" in node && "props" in node;
254
+ } catch {
255
+ return false;
256
+ }
257
+ }
246
258
  function injectRouteChildren(node, routeChildren) {
247
259
  if (node === null || node === void 0 || typeof node === "boolean") {
248
260
  return node;
@@ -258,13 +270,17 @@ function injectRouteChildren(node, routeChildren) {
258
270
  });
259
271
  return changed ? next : node;
260
272
  }
261
- if (!import_react.default.isValidElement(node)) {
273
+ if (isReactElementLike(node) && isRouteChildrenType(node.type)) {
274
+ return routeChildren;
275
+ }
276
+ const isValidElement = import_react.default.isValidElement(node);
277
+ if (!isValidElement && !isReactElementLike(node)) {
262
278
  return node;
263
279
  }
264
- if (isRouteChildrenType(node.type)) {
280
+ if (isValidElement && isRouteChildrenType(node.type)) {
265
281
  return routeChildren;
266
282
  }
267
- const props = node.props;
283
+ const props = node.props ?? {};
268
284
  if (!("children" in props)) {
269
285
  return node;
270
286
  }
@@ -272,10 +288,19 @@ function injectRouteChildren(node, routeChildren) {
272
288
  if (nextChildren === props.children) {
273
289
  return node;
274
290
  }
275
- if (Array.isArray(nextChildren)) {
276
- return import_react.default.cloneElement(node, void 0, ...nextChildren);
291
+ if (isValidElement) {
292
+ if (Array.isArray(nextChildren)) {
293
+ return import_react.default.cloneElement(node, void 0, ...nextChildren);
294
+ }
295
+ return import_react.default.cloneElement(node, void 0, nextChildren);
277
296
  }
278
- return import_react.default.cloneElement(node, void 0, nextChildren);
297
+ const elementLike = node;
298
+ const nextProps = {
299
+ ...elementLike.props ?? {},
300
+ children: nextChildren,
301
+ ...elementLike.key !== void 0 && elementLike.key !== null ? { key: elementLike.key } : {}
302
+ };
303
+ return import_react.default.createElement(elementLike.type, nextProps);
279
304
  }
280
305
 
281
306
  // src/file-router.tsx
@@ -616,9 +641,12 @@ function createFileRouter(options) {
616
641
  const errorHead = await resolveHead(errorModule, errorProps);
617
642
  const layoutNode = layoutModule ? await layoutModule.default(context) : null;
618
643
  const model = layoutNode ? injectRouteChildren(layoutNode, errorNode) : errorNode;
644
+ const contextModel = layoutNode ? injectRouteChildren(layoutNode, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_route_slot.RouteChildrenSlot, {})) : void 0;
619
645
  return {
620
646
  statusCode,
621
647
  model,
648
+ contextModel,
649
+ pageModel: errorNode,
622
650
  head: mergeHead(layoutHead, errorHead)
623
651
  };
624
652
  }
@@ -738,9 +766,12 @@ function createFileRouter(options) {
738
766
  const pageHead = await resolveHead(pageModule, pageContext);
739
767
  const layoutNode = layoutModule ? await layoutModule.default(pageContext) : null;
740
768
  const model = layoutNode ? injectRouteChildren(layoutNode, pageNode) : pageNode;
769
+ const contextModel = layoutNode ? injectRouteChildren(layoutNode, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_route_slot.RouteChildrenSlot, {})) : void 0;
741
770
  return {
742
771
  statusCode: 200,
743
772
  model,
773
+ contextModel,
774
+ pageModel: pageNode,
744
775
  head: mergeHead(layoutHead, pageHead)
745
776
  };
746
777
  } catch (error) {
@@ -920,7 +951,21 @@ async function renderHtmlFromFlightData(flightData, moduleMap) {
920
951
  ? payload.model
921
952
  : payload;
922
953
 
923
- return renderHtml(model);
954
+ const basename =
955
+ payload &&
956
+ typeof payload === "object" &&
957
+ payload.head &&
958
+ typeof payload.head.basename === "string"
959
+ ? payload.head.basename
960
+ : "";
961
+
962
+ const previousBasename = globalThis.__RSC_BASENAME;
963
+ globalThis.__RSC_BASENAME = basename;
964
+ try {
965
+ return await renderHtml(model);
966
+ } finally {
967
+ globalThis.__RSC_BASENAME = previousBasename;
968
+ }
924
969
  }
925
970
 
926
971
  process.on("message", async (message) => {
@@ -1257,16 +1302,16 @@ function createServerConsumerManifest(manifest) {
1257
1302
  }
1258
1303
  return requestKey;
1259
1304
  };
1260
- const addReference = (lookupKey, reference) => {
1305
+ const addReference = (lookupKey, exportName, reference) => {
1261
1306
  if (!lookupKey || lookupKey.trim() === "") {
1262
1307
  return;
1263
1308
  }
1264
- if (lookupKey in consumerManifest) {
1309
+ const normalizedExportName = exportName || "*";
1310
+ consumerManifest[lookupKey] ??= {};
1311
+ if (normalizedExportName in consumerManifest[lookupKey]) {
1265
1312
  return;
1266
1313
  }
1267
- consumerManifest[lookupKey] = {
1268
- "*": reference
1269
- };
1314
+ consumerManifest[lookupKey][normalizedExportName] = reference;
1270
1315
  };
1271
1316
  for (const [key, value] of Object.entries(manifest)) {
1272
1317
  if (!value || typeof value !== "object") {
@@ -1283,9 +1328,35 @@ function createServerConsumerManifest(manifest) {
1283
1328
  name: entry.name ?? "*",
1284
1329
  ...entry.async ? { async: entry.async } : {}
1285
1330
  };
1286
- addReference(key, reference);
1331
+ const hashIndex = key.lastIndexOf("#");
1332
+ const keyWithoutExport = hashIndex > -1 ? key.slice(0, hashIndex) : key;
1333
+ const keyExportName = hashIndex > -1 ? key.slice(hashIndex + 1) : "";
1334
+ const manifestExportName = typeof entry.name === "string" && entry.name !== "*" ? entry.name : "";
1335
+ const exportNames = new Set(
1336
+ [keyExportName, manifestExportName].filter((name) => name.trim() !== "")
1337
+ );
1338
+ addReference(
1339
+ key,
1340
+ "*",
1341
+ keyExportName ? { ...reference, name: keyExportName } : reference
1342
+ );
1343
+ addReference(keyWithoutExport, "*", reference);
1344
+ for (const exportName of exportNames) {
1345
+ const exportReference = {
1346
+ ...reference,
1347
+ name: exportName
1348
+ };
1349
+ addReference(keyWithoutExport, exportName, exportReference);
1350
+ addReference(key, "*", exportReference);
1351
+ }
1287
1352
  if (typeof entry.id === "number" && Number.isFinite(entry.id)) {
1288
- addReference(String(entry.id), reference);
1353
+ addReference(String(entry.id), "*", reference);
1354
+ for (const exportName of exportNames) {
1355
+ addReference(String(entry.id), exportName, {
1356
+ ...reference,
1357
+ name: exportName
1358
+ });
1359
+ }
1289
1360
  }
1290
1361
  }
1291
1362
  return consumerManifest;
@@ -1387,6 +1458,8 @@ function createNodeRequestHandler(options) {
1387
1458
  );
1388
1459
  const payload = {
1389
1460
  model: resolved2.model,
1461
+ contextModel: resolved2.contextModel,
1462
+ pageModel: resolved2.pageModel,
1390
1463
  head: resolved2.head
1391
1464
  };
1392
1465
  sendRSC(res, payload, {
@@ -1409,6 +1482,7 @@ function createNodeRequestHandler(options) {
1409
1482
  } else if (ext === ".json") {
1410
1483
  res.setHeader("Content-Type", "application/json; charset=utf-8");
1411
1484
  }
1485
+ res.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, proxy-revalidate");
1412
1486
  const stream = import_node_fs2.default.createReadStream(filePath);
1413
1487
  stream.on("error", () => {
1414
1488
  res.statusCode = 404;
@@ -1432,6 +1506,8 @@ function createNodeRequestHandler(options) {
1432
1506
  );
1433
1507
  const initialPayload = {
1434
1508
  model: resolved.model,
1509
+ contextModel: resolved.contextModel,
1510
+ pageModel: resolved.pageModel,
1435
1511
  head: resolved.head
1436
1512
  };
1437
1513
  const initialFlightData = await renderRSCToString(initialPayload, {
@@ -117,6 +117,7 @@ function sendRSC(res, model, options = {}) {
117
117
  } = options;
118
118
  res.statusCode = statusCode;
119
119
  res.setHeader("Content-Type", contentType);
120
+ res.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, proxy-revalidate");
120
121
  const stream = renderToPipeableStream(model, moduleMap, { onError });
121
122
  stream.pipe(res);
122
123
  return stream;
@@ -126,6 +127,7 @@ function sendRSC(res, model, options = {}) {
126
127
  import fs from "node:fs";
127
128
  import Module from "node:module";
128
129
  import path2 from "node:path";
130
+ import { RouteChildrenSlot } from "@webtypen/webframez-react/route-slot";
129
131
 
130
132
  // src/head.ts
131
133
  var ABSOLUTE_ASSET_URL_PATTERN = /^(?:[a-zA-Z][a-zA-Z\d+\-.]*:|\/\/|#)/;
@@ -215,6 +217,16 @@ function isRouteChildrenType(type) {
215
217
  return false;
216
218
  }
217
219
  }
220
+ function isReactElementLike(node) {
221
+ if (!node || typeof node !== "object") {
222
+ return false;
223
+ }
224
+ try {
225
+ return "type" in node && "props" in node;
226
+ } catch {
227
+ return false;
228
+ }
229
+ }
218
230
  function injectRouteChildren(node, routeChildren) {
219
231
  if (node === null || node === void 0 || typeof node === "boolean") {
220
232
  return node;
@@ -230,13 +242,17 @@ function injectRouteChildren(node, routeChildren) {
230
242
  });
231
243
  return changed ? next : node;
232
244
  }
233
- if (!React.isValidElement(node)) {
245
+ if (isReactElementLike(node) && isRouteChildrenType(node.type)) {
246
+ return routeChildren;
247
+ }
248
+ const isValidElement = React.isValidElement(node);
249
+ if (!isValidElement && !isReactElementLike(node)) {
234
250
  return node;
235
251
  }
236
- if (isRouteChildrenType(node.type)) {
252
+ if (isValidElement && isRouteChildrenType(node.type)) {
237
253
  return routeChildren;
238
254
  }
239
- const props = node.props;
255
+ const props = node.props ?? {};
240
256
  if (!("children" in props)) {
241
257
  return node;
242
258
  }
@@ -244,10 +260,19 @@ function injectRouteChildren(node, routeChildren) {
244
260
  if (nextChildren === props.children) {
245
261
  return node;
246
262
  }
247
- if (Array.isArray(nextChildren)) {
248
- return React.cloneElement(node, void 0, ...nextChildren);
263
+ if (isValidElement) {
264
+ if (Array.isArray(nextChildren)) {
265
+ return React.cloneElement(node, void 0, ...nextChildren);
266
+ }
267
+ return React.cloneElement(node, void 0, nextChildren);
249
268
  }
250
- return React.cloneElement(node, void 0, nextChildren);
269
+ const elementLike = node;
270
+ const nextProps = {
271
+ ...elementLike.props ?? {},
272
+ children: nextChildren,
273
+ ...elementLike.key !== void 0 && elementLike.key !== null ? { key: elementLike.key } : {}
274
+ };
275
+ return React.createElement(elementLike.type, nextProps);
251
276
  }
252
277
 
253
278
  // src/file-router.tsx
@@ -588,9 +613,12 @@ function createFileRouter(options) {
588
613
  const errorHead = await resolveHead(errorModule, errorProps);
589
614
  const layoutNode = layoutModule ? await layoutModule.default(context) : null;
590
615
  const model = layoutNode ? injectRouteChildren(layoutNode, errorNode) : errorNode;
616
+ const contextModel = layoutNode ? injectRouteChildren(layoutNode, /* @__PURE__ */ jsx(RouteChildrenSlot, {})) : void 0;
591
617
  return {
592
618
  statusCode,
593
619
  model,
620
+ contextModel,
621
+ pageModel: errorNode,
594
622
  head: mergeHead(layoutHead, errorHead)
595
623
  };
596
624
  }
@@ -710,9 +738,12 @@ function createFileRouter(options) {
710
738
  const pageHead = await resolveHead(pageModule, pageContext);
711
739
  const layoutNode = layoutModule ? await layoutModule.default(pageContext) : null;
712
740
  const model = layoutNode ? injectRouteChildren(layoutNode, pageNode) : pageNode;
741
+ const contextModel = layoutNode ? injectRouteChildren(layoutNode, /* @__PURE__ */ jsx(RouteChildrenSlot, {})) : void 0;
713
742
  return {
714
743
  statusCode: 200,
715
744
  model,
745
+ contextModel,
746
+ pageModel: pageNode,
716
747
  head: mergeHead(layoutHead, pageHead)
717
748
  };
718
749
  } catch (error) {
@@ -892,7 +923,21 @@ async function renderHtmlFromFlightData(flightData, moduleMap) {
892
923
  ? payload.model
893
924
  : payload;
894
925
 
895
- return renderHtml(model);
926
+ const basename =
927
+ payload &&
928
+ typeof payload === "object" &&
929
+ payload.head &&
930
+ typeof payload.head.basename === "string"
931
+ ? payload.head.basename
932
+ : "";
933
+
934
+ const previousBasename = globalThis.__RSC_BASENAME;
935
+ globalThis.__RSC_BASENAME = basename;
936
+ try {
937
+ return await renderHtml(model);
938
+ } finally {
939
+ globalThis.__RSC_BASENAME = previousBasename;
940
+ }
896
941
  }
897
942
 
898
943
  process.on("message", async (message) => {
@@ -1229,16 +1274,16 @@ function createServerConsumerManifest(manifest) {
1229
1274
  }
1230
1275
  return requestKey;
1231
1276
  };
1232
- const addReference = (lookupKey, reference) => {
1277
+ const addReference = (lookupKey, exportName, reference) => {
1233
1278
  if (!lookupKey || lookupKey.trim() === "") {
1234
1279
  return;
1235
1280
  }
1236
- if (lookupKey in consumerManifest) {
1281
+ const normalizedExportName = exportName || "*";
1282
+ consumerManifest[lookupKey] ??= {};
1283
+ if (normalizedExportName in consumerManifest[lookupKey]) {
1237
1284
  return;
1238
1285
  }
1239
- consumerManifest[lookupKey] = {
1240
- "*": reference
1241
- };
1286
+ consumerManifest[lookupKey][normalizedExportName] = reference;
1242
1287
  };
1243
1288
  for (const [key, value] of Object.entries(manifest)) {
1244
1289
  if (!value || typeof value !== "object") {
@@ -1255,9 +1300,35 @@ function createServerConsumerManifest(manifest) {
1255
1300
  name: entry.name ?? "*",
1256
1301
  ...entry.async ? { async: entry.async } : {}
1257
1302
  };
1258
- addReference(key, reference);
1303
+ const hashIndex = key.lastIndexOf("#");
1304
+ const keyWithoutExport = hashIndex > -1 ? key.slice(0, hashIndex) : key;
1305
+ const keyExportName = hashIndex > -1 ? key.slice(hashIndex + 1) : "";
1306
+ const manifestExportName = typeof entry.name === "string" && entry.name !== "*" ? entry.name : "";
1307
+ const exportNames = new Set(
1308
+ [keyExportName, manifestExportName].filter((name) => name.trim() !== "")
1309
+ );
1310
+ addReference(
1311
+ key,
1312
+ "*",
1313
+ keyExportName ? { ...reference, name: keyExportName } : reference
1314
+ );
1315
+ addReference(keyWithoutExport, "*", reference);
1316
+ for (const exportName of exportNames) {
1317
+ const exportReference = {
1318
+ ...reference,
1319
+ name: exportName
1320
+ };
1321
+ addReference(keyWithoutExport, exportName, exportReference);
1322
+ addReference(key, "*", exportReference);
1323
+ }
1259
1324
  if (typeof entry.id === "number" && Number.isFinite(entry.id)) {
1260
- addReference(String(entry.id), reference);
1325
+ addReference(String(entry.id), "*", reference);
1326
+ for (const exportName of exportNames) {
1327
+ addReference(String(entry.id), exportName, {
1328
+ ...reference,
1329
+ name: exportName
1330
+ });
1331
+ }
1261
1332
  }
1262
1333
  }
1263
1334
  return consumerManifest;
@@ -1359,6 +1430,8 @@ function createNodeRequestHandler(options) {
1359
1430
  );
1360
1431
  const payload = {
1361
1432
  model: resolved2.model,
1433
+ contextModel: resolved2.contextModel,
1434
+ pageModel: resolved2.pageModel,
1362
1435
  head: resolved2.head
1363
1436
  };
1364
1437
  sendRSC(res, payload, {
@@ -1381,6 +1454,7 @@ function createNodeRequestHandler(options) {
1381
1454
  } else if (ext === ".json") {
1382
1455
  res.setHeader("Content-Type", "application/json; charset=utf-8");
1383
1456
  }
1457
+ res.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, proxy-revalidate");
1384
1458
  const stream = fs2.createReadStream(filePath);
1385
1459
  stream.on("error", () => {
1386
1460
  res.statusCode = 404;
@@ -1404,6 +1478,8 @@ function createNodeRequestHandler(options) {
1404
1478
  );
1405
1479
  const initialPayload = {
1406
1480
  model: resolved.model,
1481
+ contextModel: resolved.contextModel,
1482
+ pageModel: resolved.pageModel,
1407
1483
  head: resolved.head
1408
1484
  };
1409
1485
  const initialFlightData = await renderRSCToString(initialPayload, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webtypen/webframez-react",
3
- "version": "0.0.32",
3
+ "version": "0.0.34",
4
4
  "description": "TypeScript React RSC addition for @webtypen/webframez-core",
5
5
  "homepage": "https://webtypen.de/",
6
6
  "author": {
@@ -43,6 +43,11 @@
43
43
  "import": "./dist/navigation.js",
44
44
  "require": "./dist/navigation.cjs"
45
45
  },
46
+ "./route-slot": {
47
+ "types": "./dist/route-slot.d.ts",
48
+ "import": "./dist/route-slot.js",
49
+ "require": "./dist/route-slot.cjs"
50
+ },
46
51
  "./types": {
47
52
  "types": "./dist/types.d.ts",
48
53
  "import": "./dist/types.js",