@webtypen/webframez-react 0.0.15 → 0.0.16

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/http.cjs CHANGED
@@ -169,6 +169,7 @@ function sendRSC(res, model, options = {}) {
169
169
 
170
170
  // src/file-router.tsx
171
171
  var import_node_fs = __toESM(require("node:fs"), 1);
172
+ var import_node_module2 = __toESM(require("node:module"), 1);
172
173
  var import_node_path2 = __toESM(require("node:path"), 1);
173
174
 
174
175
  // src/router-runtime.tsx
@@ -231,6 +232,26 @@ function injectRouteChildren(node, routeChildren) {
231
232
 
232
233
  // src/file-router.tsx
233
234
  var import_jsx_runtime = require("react/jsx-runtime");
235
+ var ROOT_RUNTIME_REQUIRE = import_node_module2.default.createRequire(
236
+ import_node_path2.default.join(process.cwd(), "__webframez_react_runtime__.js")
237
+ );
238
+ var FORCED_PACKAGE_REQUESTS = [
239
+ "@webtypen/webframez-core",
240
+ "@webtypen/webframez-react",
241
+ "react",
242
+ "react/jsx-runtime",
243
+ "react/jsx-dev-runtime",
244
+ "react-dom",
245
+ "react-dom/client",
246
+ "react-dom/server",
247
+ "react-dom/server.node",
248
+ "react-server-dom-webpack",
249
+ "react-server-dom-webpack/server",
250
+ "react-server-dom-webpack/client",
251
+ "react-server-dom-webpack/client.node",
252
+ "scheduler"
253
+ ];
254
+ var forcedPackageResolutionInstalled = false;
234
255
  function normalizePathname(pathname) {
235
256
  const trimmed = pathname.replace(/\/+$/, "") || "/";
236
257
  return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
@@ -279,6 +300,28 @@ var MANAGED_HEAD_ATTR = "data-webframez-head";
279
300
  function createManagedAttributes() {
280
301
  return `${MANAGED_HEAD_ATTR}="true"`;
281
302
  }
303
+ function shouldForcePackageResolution(request) {
304
+ return FORCED_PACKAGE_REQUESTS.some(
305
+ (candidate) => request === candidate || request.startsWith(`${candidate}/`)
306
+ );
307
+ }
308
+ function installForcedPackageResolution() {
309
+ if (forcedPackageResolutionInstalled) {
310
+ return;
311
+ }
312
+ const moduleWithPrivateResolver = import_node_module2.default;
313
+ const originalResolveFilename = moduleWithPrivateResolver._resolveFilename;
314
+ moduleWithPrivateResolver._resolveFilename = function patchedResolveFilename(request, parent, isMain, options) {
315
+ if (typeof request === "string" && shouldForcePackageResolution(request)) {
316
+ try {
317
+ return ROOT_RUNTIME_REQUIRE.resolve(request);
318
+ } catch {
319
+ }
320
+ }
321
+ return originalResolveFilename.call(this, request, parent, isMain, options);
322
+ };
323
+ forcedPackageResolutionInstalled = true;
324
+ }
282
325
  function toRouteEntry(pagesDir, filePath) {
283
326
  const normalized = filePath.replace(/\\/g, "/");
284
327
  if (!normalized.endsWith("/index.js")) {
@@ -426,6 +469,7 @@ function isRouteAbort(value) {
426
469
  }
427
470
  }
428
471
  function createFileRouter(options) {
472
+ installForcedPackageResolution();
429
473
  const pagesDir = options.pagesDir;
430
474
  const layoutPath = import_node_path2.default.join(pagesDir, "layout.js");
431
475
  const errorPath = import_node_path2.default.join(pagesDir, "errors.js");
@@ -615,19 +659,34 @@ if (!pagesDir) {
615
659
  throw new Error("Missing WEBFRAMEZ_REACT_PAGES_DIR");
616
660
  }
617
661
 
618
- const appRequire = Module.createRequire(path.join(pagesDir, "__webframez_react_worker__.js"));
662
+ const rootRequire = Module.createRequire(path.join(process.cwd(), "__webframez_react_worker__.js"));
619
663
  const originalResolveFilename = Module._resolveFilename;
620
664
  const forcedResolutions = new Map([
621
- ["react", appRequire.resolve("react")],
622
- ["react/jsx-runtime", appRequire.resolve("react/jsx-runtime")],
623
- ["react/jsx-dev-runtime", appRequire.resolve("react/jsx-dev-runtime")],
624
- ["react-dom/client", appRequire.resolve("react-dom/client")]
665
+ ["@webtypen/webframez-core", rootRequire.resolve("@webtypen/webframez-core")],
666
+ ["@webtypen/webframez-react", rootRequire.resolve("@webtypen/webframez-react")],
667
+ ["react", rootRequire.resolve("react")],
668
+ ["react/jsx-runtime", rootRequire.resolve("react/jsx-runtime")],
669
+ ["react/jsx-dev-runtime", rootRequire.resolve("react/jsx-dev-runtime")],
670
+ ["react-dom", rootRequire.resolve("react-dom")],
671
+ ["react-dom/client", rootRequire.resolve("react-dom/client")],
672
+ ["react-dom/server", rootRequire.resolve("react-dom/server")],
673
+ ["react-dom/server.node", rootRequire.resolve("react-dom/server.node")],
674
+ ["react-server-dom-webpack", rootRequire.resolve("react-server-dom-webpack")],
675
+ ["react-server-dom-webpack/server", rootRequire.resolve("react-server-dom-webpack/server")],
676
+ ["react-server-dom-webpack/client", rootRequire.resolve("react-server-dom-webpack/client")],
677
+ ["react-server-dom-webpack/client.node", rootRequire.resolve("react-server-dom-webpack/client.node")],
678
+ ["scheduler", rootRequire.resolve("scheduler")]
625
679
  ]);
626
680
 
627
681
  Module._resolveFilename = function(request, parent, isMain, options) {
628
682
  if (forcedResolutions.has(request)) {
629
683
  return forcedResolutions.get(request);
630
684
  }
685
+ for (const forcedRequest of forcedResolutions.keys()) {
686
+ if (request.startsWith(forcedRequest + "/")) {
687
+ return rootRequire.resolve(request);
688
+ }
689
+ }
631
690
  return originalResolveFilename.call(this, request, parent, isMain, options);
632
691
  };
633
692
 
package/dist/http.js CHANGED
@@ -144,6 +144,7 @@ function sendRSC(res, model, options = {}) {
144
144
 
145
145
  // src/file-router.tsx
146
146
  import fs from "node:fs";
147
+ import Module from "node:module";
147
148
  import path2 from "node:path";
148
149
 
149
150
  // src/router-runtime.tsx
@@ -206,6 +207,26 @@ function injectRouteChildren(node, routeChildren) {
206
207
 
207
208
  // src/file-router.tsx
208
209
  import { jsx, jsxs } from "react/jsx-runtime";
210
+ var ROOT_RUNTIME_REQUIRE = Module.createRequire(
211
+ path2.join(process.cwd(), "__webframez_react_runtime__.js")
212
+ );
213
+ var FORCED_PACKAGE_REQUESTS = [
214
+ "@webtypen/webframez-core",
215
+ "@webtypen/webframez-react",
216
+ "react",
217
+ "react/jsx-runtime",
218
+ "react/jsx-dev-runtime",
219
+ "react-dom",
220
+ "react-dom/client",
221
+ "react-dom/server",
222
+ "react-dom/server.node",
223
+ "react-server-dom-webpack",
224
+ "react-server-dom-webpack/server",
225
+ "react-server-dom-webpack/client",
226
+ "react-server-dom-webpack/client.node",
227
+ "scheduler"
228
+ ];
229
+ var forcedPackageResolutionInstalled = false;
209
230
  function normalizePathname(pathname) {
210
231
  const trimmed = pathname.replace(/\/+$/, "") || "/";
211
232
  return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
@@ -254,6 +275,28 @@ var MANAGED_HEAD_ATTR = "data-webframez-head";
254
275
  function createManagedAttributes() {
255
276
  return `${MANAGED_HEAD_ATTR}="true"`;
256
277
  }
278
+ function shouldForcePackageResolution(request) {
279
+ return FORCED_PACKAGE_REQUESTS.some(
280
+ (candidate) => request === candidate || request.startsWith(`${candidate}/`)
281
+ );
282
+ }
283
+ function installForcedPackageResolution() {
284
+ if (forcedPackageResolutionInstalled) {
285
+ return;
286
+ }
287
+ const moduleWithPrivateResolver = Module;
288
+ const originalResolveFilename = moduleWithPrivateResolver._resolveFilename;
289
+ moduleWithPrivateResolver._resolveFilename = function patchedResolveFilename(request, parent, isMain, options) {
290
+ if (typeof request === "string" && shouldForcePackageResolution(request)) {
291
+ try {
292
+ return ROOT_RUNTIME_REQUIRE.resolve(request);
293
+ } catch {
294
+ }
295
+ }
296
+ return originalResolveFilename.call(this, request, parent, isMain, options);
297
+ };
298
+ forcedPackageResolutionInstalled = true;
299
+ }
257
300
  function toRouteEntry(pagesDir, filePath) {
258
301
  const normalized = filePath.replace(/\\/g, "/");
259
302
  if (!normalized.endsWith("/index.js")) {
@@ -401,6 +444,7 @@ function isRouteAbort(value) {
401
444
  }
402
445
  }
403
446
  function createFileRouter(options) {
447
+ installForcedPackageResolution();
404
448
  const pagesDir = options.pagesDir;
405
449
  const layoutPath = path2.join(pagesDir, "layout.js");
406
450
  const errorPath = path2.join(pagesDir, "errors.js");
@@ -590,19 +634,34 @@ if (!pagesDir) {
590
634
  throw new Error("Missing WEBFRAMEZ_REACT_PAGES_DIR");
591
635
  }
592
636
 
593
- const appRequire = Module.createRequire(path.join(pagesDir, "__webframez_react_worker__.js"));
637
+ const rootRequire = Module.createRequire(path.join(process.cwd(), "__webframez_react_worker__.js"));
594
638
  const originalResolveFilename = Module._resolveFilename;
595
639
  const forcedResolutions = new Map([
596
- ["react", appRequire.resolve("react")],
597
- ["react/jsx-runtime", appRequire.resolve("react/jsx-runtime")],
598
- ["react/jsx-dev-runtime", appRequire.resolve("react/jsx-dev-runtime")],
599
- ["react-dom/client", appRequire.resolve("react-dom/client")]
640
+ ["@webtypen/webframez-core", rootRequire.resolve("@webtypen/webframez-core")],
641
+ ["@webtypen/webframez-react", rootRequire.resolve("@webtypen/webframez-react")],
642
+ ["react", rootRequire.resolve("react")],
643
+ ["react/jsx-runtime", rootRequire.resolve("react/jsx-runtime")],
644
+ ["react/jsx-dev-runtime", rootRequire.resolve("react/jsx-dev-runtime")],
645
+ ["react-dom", rootRequire.resolve("react-dom")],
646
+ ["react-dom/client", rootRequire.resolve("react-dom/client")],
647
+ ["react-dom/server", rootRequire.resolve("react-dom/server")],
648
+ ["react-dom/server.node", rootRequire.resolve("react-dom/server.node")],
649
+ ["react-server-dom-webpack", rootRequire.resolve("react-server-dom-webpack")],
650
+ ["react-server-dom-webpack/server", rootRequire.resolve("react-server-dom-webpack/server")],
651
+ ["react-server-dom-webpack/client", rootRequire.resolve("react-server-dom-webpack/client")],
652
+ ["react-server-dom-webpack/client.node", rootRequire.resolve("react-server-dom-webpack/client.node")],
653
+ ["scheduler", rootRequire.resolve("scheduler")]
600
654
  ]);
601
655
 
602
656
  Module._resolveFilename = function(request, parent, isMain, options) {
603
657
  if (forcedResolutions.has(request)) {
604
658
  return forcedResolutions.get(request);
605
659
  }
660
+ for (const forcedRequest of forcedResolutions.keys()) {
661
+ if (request.startsWith(forcedRequest + "/")) {
662
+ return rootRequire.resolve(request);
663
+ }
664
+ }
606
665
  return originalResolveFilename.call(this, request, parent, isMain, options);
607
666
  };
608
667
 
package/dist/index.cjs CHANGED
@@ -202,6 +202,7 @@ function createRSCHandler(options) {
202
202
 
203
203
  // src/file-router.tsx
204
204
  var import_node_fs = __toESM(require("node:fs"), 1);
205
+ var import_node_module2 = __toESM(require("node:module"), 1);
205
206
  var import_node_path2 = __toESM(require("node:path"), 1);
206
207
 
207
208
  // src/router-runtime.tsx
@@ -264,6 +265,26 @@ function injectRouteChildren(node, routeChildren) {
264
265
 
265
266
  // src/file-router.tsx
266
267
  var import_jsx_runtime = require("react/jsx-runtime");
268
+ var ROOT_RUNTIME_REQUIRE = import_node_module2.default.createRequire(
269
+ import_node_path2.default.join(process.cwd(), "__webframez_react_runtime__.js")
270
+ );
271
+ var FORCED_PACKAGE_REQUESTS = [
272
+ "@webtypen/webframez-core",
273
+ "@webtypen/webframez-react",
274
+ "react",
275
+ "react/jsx-runtime",
276
+ "react/jsx-dev-runtime",
277
+ "react-dom",
278
+ "react-dom/client",
279
+ "react-dom/server",
280
+ "react-dom/server.node",
281
+ "react-server-dom-webpack",
282
+ "react-server-dom-webpack/server",
283
+ "react-server-dom-webpack/client",
284
+ "react-server-dom-webpack/client.node",
285
+ "scheduler"
286
+ ];
287
+ var forcedPackageResolutionInstalled = false;
267
288
  function normalizePathname(pathname) {
268
289
  const trimmed = pathname.replace(/\/+$/, "") || "/";
269
290
  return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
@@ -312,6 +333,28 @@ var MANAGED_HEAD_ATTR = "data-webframez-head";
312
333
  function createManagedAttributes() {
313
334
  return `${MANAGED_HEAD_ATTR}="true"`;
314
335
  }
336
+ function shouldForcePackageResolution(request) {
337
+ return FORCED_PACKAGE_REQUESTS.some(
338
+ (candidate) => request === candidate || request.startsWith(`${candidate}/`)
339
+ );
340
+ }
341
+ function installForcedPackageResolution() {
342
+ if (forcedPackageResolutionInstalled) {
343
+ return;
344
+ }
345
+ const moduleWithPrivateResolver = import_node_module2.default;
346
+ const originalResolveFilename = moduleWithPrivateResolver._resolveFilename;
347
+ moduleWithPrivateResolver._resolveFilename = function patchedResolveFilename(request, parent, isMain, options) {
348
+ if (typeof request === "string" && shouldForcePackageResolution(request)) {
349
+ try {
350
+ return ROOT_RUNTIME_REQUIRE.resolve(request);
351
+ } catch {
352
+ }
353
+ }
354
+ return originalResolveFilename.call(this, request, parent, isMain, options);
355
+ };
356
+ forcedPackageResolutionInstalled = true;
357
+ }
315
358
  function toRouteEntry(pagesDir, filePath) {
316
359
  const normalized = filePath.replace(/\\/g, "/");
317
360
  if (!normalized.endsWith("/index.js")) {
@@ -459,6 +502,7 @@ function isRouteAbort(value) {
459
502
  }
460
503
  }
461
504
  function createFileRouter(options) {
505
+ installForcedPackageResolution();
462
506
  const pagesDir = options.pagesDir;
463
507
  const layoutPath = import_node_path2.default.join(pagesDir, "layout.js");
464
508
  const errorPath = import_node_path2.default.join(pagesDir, "errors.js");
@@ -652,19 +696,34 @@ if (!pagesDir) {
652
696
  throw new Error("Missing WEBFRAMEZ_REACT_PAGES_DIR");
653
697
  }
654
698
 
655
- const appRequire = Module.createRequire(path.join(pagesDir, "__webframez_react_worker__.js"));
699
+ const rootRequire = Module.createRequire(path.join(process.cwd(), "__webframez_react_worker__.js"));
656
700
  const originalResolveFilename = Module._resolveFilename;
657
701
  const forcedResolutions = new Map([
658
- ["react", appRequire.resolve("react")],
659
- ["react/jsx-runtime", appRequire.resolve("react/jsx-runtime")],
660
- ["react/jsx-dev-runtime", appRequire.resolve("react/jsx-dev-runtime")],
661
- ["react-dom/client", appRequire.resolve("react-dom/client")]
702
+ ["@webtypen/webframez-core", rootRequire.resolve("@webtypen/webframez-core")],
703
+ ["@webtypen/webframez-react", rootRequire.resolve("@webtypen/webframez-react")],
704
+ ["react", rootRequire.resolve("react")],
705
+ ["react/jsx-runtime", rootRequire.resolve("react/jsx-runtime")],
706
+ ["react/jsx-dev-runtime", rootRequire.resolve("react/jsx-dev-runtime")],
707
+ ["react-dom", rootRequire.resolve("react-dom")],
708
+ ["react-dom/client", rootRequire.resolve("react-dom/client")],
709
+ ["react-dom/server", rootRequire.resolve("react-dom/server")],
710
+ ["react-dom/server.node", rootRequire.resolve("react-dom/server.node")],
711
+ ["react-server-dom-webpack", rootRequire.resolve("react-server-dom-webpack")],
712
+ ["react-server-dom-webpack/server", rootRequire.resolve("react-server-dom-webpack/server")],
713
+ ["react-server-dom-webpack/client", rootRequire.resolve("react-server-dom-webpack/client")],
714
+ ["react-server-dom-webpack/client.node", rootRequire.resolve("react-server-dom-webpack/client.node")],
715
+ ["scheduler", rootRequire.resolve("scheduler")]
662
716
  ]);
663
717
 
664
718
  Module._resolveFilename = function(request, parent, isMain, options) {
665
719
  if (forcedResolutions.has(request)) {
666
720
  return forcedResolutions.get(request);
667
721
  }
722
+ for (const forcedRequest of forcedResolutions.keys()) {
723
+ if (request.startsWith(forcedRequest + "/")) {
724
+ return rootRequire.resolve(request);
725
+ }
726
+ }
668
727
  return originalResolveFilename.call(this, request, parent, isMain, options);
669
728
  };
670
729
 
package/dist/index.js CHANGED
@@ -166,6 +166,7 @@ function createRSCHandler(options) {
166
166
 
167
167
  // src/file-router.tsx
168
168
  import fs from "node:fs";
169
+ import Module from "node:module";
169
170
  import path2 from "node:path";
170
171
 
171
172
  // src/router-runtime.tsx
@@ -228,6 +229,26 @@ function injectRouteChildren(node, routeChildren) {
228
229
 
229
230
  // src/file-router.tsx
230
231
  import { jsx, jsxs } from "react/jsx-runtime";
232
+ var ROOT_RUNTIME_REQUIRE = Module.createRequire(
233
+ path2.join(process.cwd(), "__webframez_react_runtime__.js")
234
+ );
235
+ var FORCED_PACKAGE_REQUESTS = [
236
+ "@webtypen/webframez-core",
237
+ "@webtypen/webframez-react",
238
+ "react",
239
+ "react/jsx-runtime",
240
+ "react/jsx-dev-runtime",
241
+ "react-dom",
242
+ "react-dom/client",
243
+ "react-dom/server",
244
+ "react-dom/server.node",
245
+ "react-server-dom-webpack",
246
+ "react-server-dom-webpack/server",
247
+ "react-server-dom-webpack/client",
248
+ "react-server-dom-webpack/client.node",
249
+ "scheduler"
250
+ ];
251
+ var forcedPackageResolutionInstalled = false;
231
252
  function normalizePathname(pathname) {
232
253
  const trimmed = pathname.replace(/\/+$/, "") || "/";
233
254
  return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
@@ -276,6 +297,28 @@ var MANAGED_HEAD_ATTR = "data-webframez-head";
276
297
  function createManagedAttributes() {
277
298
  return `${MANAGED_HEAD_ATTR}="true"`;
278
299
  }
300
+ function shouldForcePackageResolution(request) {
301
+ return FORCED_PACKAGE_REQUESTS.some(
302
+ (candidate) => request === candidate || request.startsWith(`${candidate}/`)
303
+ );
304
+ }
305
+ function installForcedPackageResolution() {
306
+ if (forcedPackageResolutionInstalled) {
307
+ return;
308
+ }
309
+ const moduleWithPrivateResolver = Module;
310
+ const originalResolveFilename = moduleWithPrivateResolver._resolveFilename;
311
+ moduleWithPrivateResolver._resolveFilename = function patchedResolveFilename(request, parent, isMain, options) {
312
+ if (typeof request === "string" && shouldForcePackageResolution(request)) {
313
+ try {
314
+ return ROOT_RUNTIME_REQUIRE.resolve(request);
315
+ } catch {
316
+ }
317
+ }
318
+ return originalResolveFilename.call(this, request, parent, isMain, options);
319
+ };
320
+ forcedPackageResolutionInstalled = true;
321
+ }
279
322
  function toRouteEntry(pagesDir, filePath) {
280
323
  const normalized = filePath.replace(/\\/g, "/");
281
324
  if (!normalized.endsWith("/index.js")) {
@@ -423,6 +466,7 @@ function isRouteAbort(value) {
423
466
  }
424
467
  }
425
468
  function createFileRouter(options) {
469
+ installForcedPackageResolution();
426
470
  const pagesDir = options.pagesDir;
427
471
  const layoutPath = path2.join(pagesDir, "layout.js");
428
472
  const errorPath = path2.join(pagesDir, "errors.js");
@@ -616,19 +660,34 @@ if (!pagesDir) {
616
660
  throw new Error("Missing WEBFRAMEZ_REACT_PAGES_DIR");
617
661
  }
618
662
 
619
- const appRequire = Module.createRequire(path.join(pagesDir, "__webframez_react_worker__.js"));
663
+ const rootRequire = Module.createRequire(path.join(process.cwd(), "__webframez_react_worker__.js"));
620
664
  const originalResolveFilename = Module._resolveFilename;
621
665
  const forcedResolutions = new Map([
622
- ["react", appRequire.resolve("react")],
623
- ["react/jsx-runtime", appRequire.resolve("react/jsx-runtime")],
624
- ["react/jsx-dev-runtime", appRequire.resolve("react/jsx-dev-runtime")],
625
- ["react-dom/client", appRequire.resolve("react-dom/client")]
666
+ ["@webtypen/webframez-core", rootRequire.resolve("@webtypen/webframez-core")],
667
+ ["@webtypen/webframez-react", rootRequire.resolve("@webtypen/webframez-react")],
668
+ ["react", rootRequire.resolve("react")],
669
+ ["react/jsx-runtime", rootRequire.resolve("react/jsx-runtime")],
670
+ ["react/jsx-dev-runtime", rootRequire.resolve("react/jsx-dev-runtime")],
671
+ ["react-dom", rootRequire.resolve("react-dom")],
672
+ ["react-dom/client", rootRequire.resolve("react-dom/client")],
673
+ ["react-dom/server", rootRequire.resolve("react-dom/server")],
674
+ ["react-dom/server.node", rootRequire.resolve("react-dom/server.node")],
675
+ ["react-server-dom-webpack", rootRequire.resolve("react-server-dom-webpack")],
676
+ ["react-server-dom-webpack/server", rootRequire.resolve("react-server-dom-webpack/server")],
677
+ ["react-server-dom-webpack/client", rootRequire.resolve("react-server-dom-webpack/client")],
678
+ ["react-server-dom-webpack/client.node", rootRequire.resolve("react-server-dom-webpack/client.node")],
679
+ ["scheduler", rootRequire.resolve("scheduler")]
626
680
  ]);
627
681
 
628
682
  Module._resolveFilename = function(request, parent, isMain, options) {
629
683
  if (forcedResolutions.has(request)) {
630
684
  return forcedResolutions.get(request);
631
685
  }
686
+ for (const forcedRequest of forcedResolutions.keys()) {
687
+ if (request.startsWith(forcedRequest + "/")) {
688
+ return rootRequire.resolve(request);
689
+ }
690
+ }
632
691
  return originalResolveFilename.call(this, request, parent, isMain, options);
633
692
  };
634
693
 
package/dist/router.cjs CHANGED
@@ -38,6 +38,7 @@ module.exports = __toCommonJS(router_exports);
38
38
 
39
39
  // src/file-router.tsx
40
40
  var import_node_fs = __toESM(require("node:fs"), 1);
41
+ var import_node_module = __toESM(require("node:module"), 1);
41
42
  var import_node_path = __toESM(require("node:path"), 1);
42
43
 
43
44
  // src/router-runtime.tsx
@@ -100,6 +101,26 @@ function injectRouteChildren(node, routeChildren) {
100
101
 
101
102
  // src/file-router.tsx
102
103
  var import_jsx_runtime = require("react/jsx-runtime");
104
+ var ROOT_RUNTIME_REQUIRE = import_node_module.default.createRequire(
105
+ import_node_path.default.join(process.cwd(), "__webframez_react_runtime__.js")
106
+ );
107
+ var FORCED_PACKAGE_REQUESTS = [
108
+ "@webtypen/webframez-core",
109
+ "@webtypen/webframez-react",
110
+ "react",
111
+ "react/jsx-runtime",
112
+ "react/jsx-dev-runtime",
113
+ "react-dom",
114
+ "react-dom/client",
115
+ "react-dom/server",
116
+ "react-dom/server.node",
117
+ "react-server-dom-webpack",
118
+ "react-server-dom-webpack/server",
119
+ "react-server-dom-webpack/client",
120
+ "react-server-dom-webpack/client.node",
121
+ "scheduler"
122
+ ];
123
+ var forcedPackageResolutionInstalled = false;
103
124
  function normalizePathname(pathname) {
104
125
  const trimmed = pathname.replace(/\/+$/, "") || "/";
105
126
  return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
@@ -148,6 +169,28 @@ var MANAGED_HEAD_ATTR = "data-webframez-head";
148
169
  function createManagedAttributes() {
149
170
  return `${MANAGED_HEAD_ATTR}="true"`;
150
171
  }
172
+ function shouldForcePackageResolution(request) {
173
+ return FORCED_PACKAGE_REQUESTS.some(
174
+ (candidate) => request === candidate || request.startsWith(`${candidate}/`)
175
+ );
176
+ }
177
+ function installForcedPackageResolution() {
178
+ if (forcedPackageResolutionInstalled) {
179
+ return;
180
+ }
181
+ const moduleWithPrivateResolver = import_node_module.default;
182
+ const originalResolveFilename = moduleWithPrivateResolver._resolveFilename;
183
+ moduleWithPrivateResolver._resolveFilename = function patchedResolveFilename(request, parent, isMain, options) {
184
+ if (typeof request === "string" && shouldForcePackageResolution(request)) {
185
+ try {
186
+ return ROOT_RUNTIME_REQUIRE.resolve(request);
187
+ } catch {
188
+ }
189
+ }
190
+ return originalResolveFilename.call(this, request, parent, isMain, options);
191
+ };
192
+ forcedPackageResolutionInstalled = true;
193
+ }
151
194
  function toRouteEntry(pagesDir, filePath) {
152
195
  const normalized = filePath.replace(/\\/g, "/");
153
196
  if (!normalized.endsWith("/index.js")) {
@@ -295,6 +338,7 @@ function isRouteAbort(value) {
295
338
  }
296
339
  }
297
340
  function createFileRouter(options) {
341
+ installForcedPackageResolution();
298
342
  const pagesDir = options.pagesDir;
299
343
  const layoutPath = import_node_path.default.join(pagesDir, "layout.js");
300
344
  const errorPath = import_node_path.default.join(pagesDir, "errors.js");
package/dist/router.js CHANGED
@@ -8,6 +8,7 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
8
8
 
9
9
  // src/file-router.tsx
10
10
  import fs from "node:fs";
11
+ import Module from "node:module";
11
12
  import path from "node:path";
12
13
 
13
14
  // src/router-runtime.tsx
@@ -70,6 +71,26 @@ function injectRouteChildren(node, routeChildren) {
70
71
 
71
72
  // src/file-router.tsx
72
73
  import { jsx, jsxs } from "react/jsx-runtime";
74
+ var ROOT_RUNTIME_REQUIRE = Module.createRequire(
75
+ path.join(process.cwd(), "__webframez_react_runtime__.js")
76
+ );
77
+ var FORCED_PACKAGE_REQUESTS = [
78
+ "@webtypen/webframez-core",
79
+ "@webtypen/webframez-react",
80
+ "react",
81
+ "react/jsx-runtime",
82
+ "react/jsx-dev-runtime",
83
+ "react-dom",
84
+ "react-dom/client",
85
+ "react-dom/server",
86
+ "react-dom/server.node",
87
+ "react-server-dom-webpack",
88
+ "react-server-dom-webpack/server",
89
+ "react-server-dom-webpack/client",
90
+ "react-server-dom-webpack/client.node",
91
+ "scheduler"
92
+ ];
93
+ var forcedPackageResolutionInstalled = false;
73
94
  function normalizePathname(pathname) {
74
95
  const trimmed = pathname.replace(/\/+$/, "") || "/";
75
96
  return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
@@ -118,6 +139,28 @@ var MANAGED_HEAD_ATTR = "data-webframez-head";
118
139
  function createManagedAttributes() {
119
140
  return `${MANAGED_HEAD_ATTR}="true"`;
120
141
  }
142
+ function shouldForcePackageResolution(request) {
143
+ return FORCED_PACKAGE_REQUESTS.some(
144
+ (candidate) => request === candidate || request.startsWith(`${candidate}/`)
145
+ );
146
+ }
147
+ function installForcedPackageResolution() {
148
+ if (forcedPackageResolutionInstalled) {
149
+ return;
150
+ }
151
+ const moduleWithPrivateResolver = Module;
152
+ const originalResolveFilename = moduleWithPrivateResolver._resolveFilename;
153
+ moduleWithPrivateResolver._resolveFilename = function patchedResolveFilename(request, parent, isMain, options) {
154
+ if (typeof request === "string" && shouldForcePackageResolution(request)) {
155
+ try {
156
+ return ROOT_RUNTIME_REQUIRE.resolve(request);
157
+ } catch {
158
+ }
159
+ }
160
+ return originalResolveFilename.call(this, request, parent, isMain, options);
161
+ };
162
+ forcedPackageResolutionInstalled = true;
163
+ }
121
164
  function toRouteEntry(pagesDir, filePath) {
122
165
  const normalized = filePath.replace(/\\/g, "/");
123
166
  if (!normalized.endsWith("/index.js")) {
@@ -265,6 +308,7 @@ function isRouteAbort(value) {
265
308
  }
266
309
  }
267
310
  function createFileRouter(options) {
311
+ installForcedPackageResolution();
268
312
  const pagesDir = options.pagesDir;
269
313
  const layoutPath = path.join(pagesDir, "layout.js");
270
314
  const errorPath = path.join(pagesDir, "errors.js");
@@ -172,6 +172,7 @@ function sendRSC(res, model, options = {}) {
172
172
 
173
173
  // src/file-router.tsx
174
174
  var import_node_fs = __toESM(require("node:fs"), 1);
175
+ var import_node_module2 = __toESM(require("node:module"), 1);
175
176
  var import_node_path2 = __toESM(require("node:path"), 1);
176
177
 
177
178
  // src/router-runtime.tsx
@@ -234,6 +235,26 @@ function injectRouteChildren(node, routeChildren) {
234
235
 
235
236
  // src/file-router.tsx
236
237
  var import_jsx_runtime = require("react/jsx-runtime");
238
+ var ROOT_RUNTIME_REQUIRE = import_node_module2.default.createRequire(
239
+ import_node_path2.default.join(process.cwd(), "__webframez_react_runtime__.js")
240
+ );
241
+ var FORCED_PACKAGE_REQUESTS = [
242
+ "@webtypen/webframez-core",
243
+ "@webtypen/webframez-react",
244
+ "react",
245
+ "react/jsx-runtime",
246
+ "react/jsx-dev-runtime",
247
+ "react-dom",
248
+ "react-dom/client",
249
+ "react-dom/server",
250
+ "react-dom/server.node",
251
+ "react-server-dom-webpack",
252
+ "react-server-dom-webpack/server",
253
+ "react-server-dom-webpack/client",
254
+ "react-server-dom-webpack/client.node",
255
+ "scheduler"
256
+ ];
257
+ var forcedPackageResolutionInstalled = false;
237
258
  function normalizePathname(pathname) {
238
259
  const trimmed = pathname.replace(/\/+$/, "") || "/";
239
260
  return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
@@ -282,6 +303,28 @@ var MANAGED_HEAD_ATTR = "data-webframez-head";
282
303
  function createManagedAttributes() {
283
304
  return `${MANAGED_HEAD_ATTR}="true"`;
284
305
  }
306
+ function shouldForcePackageResolution(request) {
307
+ return FORCED_PACKAGE_REQUESTS.some(
308
+ (candidate) => request === candidate || request.startsWith(`${candidate}/`)
309
+ );
310
+ }
311
+ function installForcedPackageResolution() {
312
+ if (forcedPackageResolutionInstalled) {
313
+ return;
314
+ }
315
+ const moduleWithPrivateResolver = import_node_module2.default;
316
+ const originalResolveFilename = moduleWithPrivateResolver._resolveFilename;
317
+ moduleWithPrivateResolver._resolveFilename = function patchedResolveFilename(request, parent, isMain, options) {
318
+ if (typeof request === "string" && shouldForcePackageResolution(request)) {
319
+ try {
320
+ return ROOT_RUNTIME_REQUIRE.resolve(request);
321
+ } catch {
322
+ }
323
+ }
324
+ return originalResolveFilename.call(this, request, parent, isMain, options);
325
+ };
326
+ forcedPackageResolutionInstalled = true;
327
+ }
285
328
  function toRouteEntry(pagesDir, filePath) {
286
329
  const normalized = filePath.replace(/\\/g, "/");
287
330
  if (!normalized.endsWith("/index.js")) {
@@ -429,6 +472,7 @@ function isRouteAbort(value) {
429
472
  }
430
473
  }
431
474
  function createFileRouter(options) {
475
+ installForcedPackageResolution();
432
476
  const pagesDir = options.pagesDir;
433
477
  const layoutPath = import_node_path2.default.join(pagesDir, "layout.js");
434
478
  const errorPath = import_node_path2.default.join(pagesDir, "errors.js");
@@ -618,19 +662,34 @@ if (!pagesDir) {
618
662
  throw new Error("Missing WEBFRAMEZ_REACT_PAGES_DIR");
619
663
  }
620
664
 
621
- const appRequire = Module.createRequire(path.join(pagesDir, "__webframez_react_worker__.js"));
665
+ const rootRequire = Module.createRequire(path.join(process.cwd(), "__webframez_react_worker__.js"));
622
666
  const originalResolveFilename = Module._resolveFilename;
623
667
  const forcedResolutions = new Map([
624
- ["react", appRequire.resolve("react")],
625
- ["react/jsx-runtime", appRequire.resolve("react/jsx-runtime")],
626
- ["react/jsx-dev-runtime", appRequire.resolve("react/jsx-dev-runtime")],
627
- ["react-dom/client", appRequire.resolve("react-dom/client")]
668
+ ["@webtypen/webframez-core", rootRequire.resolve("@webtypen/webframez-core")],
669
+ ["@webtypen/webframez-react", rootRequire.resolve("@webtypen/webframez-react")],
670
+ ["react", rootRequire.resolve("react")],
671
+ ["react/jsx-runtime", rootRequire.resolve("react/jsx-runtime")],
672
+ ["react/jsx-dev-runtime", rootRequire.resolve("react/jsx-dev-runtime")],
673
+ ["react-dom", rootRequire.resolve("react-dom")],
674
+ ["react-dom/client", rootRequire.resolve("react-dom/client")],
675
+ ["react-dom/server", rootRequire.resolve("react-dom/server")],
676
+ ["react-dom/server.node", rootRequire.resolve("react-dom/server.node")],
677
+ ["react-server-dom-webpack", rootRequire.resolve("react-server-dom-webpack")],
678
+ ["react-server-dom-webpack/server", rootRequire.resolve("react-server-dom-webpack/server")],
679
+ ["react-server-dom-webpack/client", rootRequire.resolve("react-server-dom-webpack/client")],
680
+ ["react-server-dom-webpack/client.node", rootRequire.resolve("react-server-dom-webpack/client.node")],
681
+ ["scheduler", rootRequire.resolve("scheduler")]
628
682
  ]);
629
683
 
630
684
  Module._resolveFilename = function(request, parent, isMain, options) {
631
685
  if (forcedResolutions.has(request)) {
632
686
  return forcedResolutions.get(request);
633
687
  }
688
+ for (const forcedRequest of forcedResolutions.keys()) {
689
+ if (request.startsWith(forcedRequest + "/")) {
690
+ return rootRequire.resolve(request);
691
+ }
692
+ }
634
693
  return originalResolveFilename.call(this, request, parent, isMain, options);
635
694
  };
636
695
 
@@ -144,6 +144,7 @@ function sendRSC(res, model, options = {}) {
144
144
 
145
145
  // src/file-router.tsx
146
146
  import fs from "node:fs";
147
+ import Module from "node:module";
147
148
  import path2 from "node:path";
148
149
 
149
150
  // src/router-runtime.tsx
@@ -206,6 +207,26 @@ function injectRouteChildren(node, routeChildren) {
206
207
 
207
208
  // src/file-router.tsx
208
209
  import { jsx, jsxs } from "react/jsx-runtime";
210
+ var ROOT_RUNTIME_REQUIRE = Module.createRequire(
211
+ path2.join(process.cwd(), "__webframez_react_runtime__.js")
212
+ );
213
+ var FORCED_PACKAGE_REQUESTS = [
214
+ "@webtypen/webframez-core",
215
+ "@webtypen/webframez-react",
216
+ "react",
217
+ "react/jsx-runtime",
218
+ "react/jsx-dev-runtime",
219
+ "react-dom",
220
+ "react-dom/client",
221
+ "react-dom/server",
222
+ "react-dom/server.node",
223
+ "react-server-dom-webpack",
224
+ "react-server-dom-webpack/server",
225
+ "react-server-dom-webpack/client",
226
+ "react-server-dom-webpack/client.node",
227
+ "scheduler"
228
+ ];
229
+ var forcedPackageResolutionInstalled = false;
209
230
  function normalizePathname(pathname) {
210
231
  const trimmed = pathname.replace(/\/+$/, "") || "/";
211
232
  return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
@@ -254,6 +275,28 @@ var MANAGED_HEAD_ATTR = "data-webframez-head";
254
275
  function createManagedAttributes() {
255
276
  return `${MANAGED_HEAD_ATTR}="true"`;
256
277
  }
278
+ function shouldForcePackageResolution(request) {
279
+ return FORCED_PACKAGE_REQUESTS.some(
280
+ (candidate) => request === candidate || request.startsWith(`${candidate}/`)
281
+ );
282
+ }
283
+ function installForcedPackageResolution() {
284
+ if (forcedPackageResolutionInstalled) {
285
+ return;
286
+ }
287
+ const moduleWithPrivateResolver = Module;
288
+ const originalResolveFilename = moduleWithPrivateResolver._resolveFilename;
289
+ moduleWithPrivateResolver._resolveFilename = function patchedResolveFilename(request, parent, isMain, options) {
290
+ if (typeof request === "string" && shouldForcePackageResolution(request)) {
291
+ try {
292
+ return ROOT_RUNTIME_REQUIRE.resolve(request);
293
+ } catch {
294
+ }
295
+ }
296
+ return originalResolveFilename.call(this, request, parent, isMain, options);
297
+ };
298
+ forcedPackageResolutionInstalled = true;
299
+ }
257
300
  function toRouteEntry(pagesDir, filePath) {
258
301
  const normalized = filePath.replace(/\\/g, "/");
259
302
  if (!normalized.endsWith("/index.js")) {
@@ -401,6 +444,7 @@ function isRouteAbort(value) {
401
444
  }
402
445
  }
403
446
  function createFileRouter(options) {
447
+ installForcedPackageResolution();
404
448
  const pagesDir = options.pagesDir;
405
449
  const layoutPath = path2.join(pagesDir, "layout.js");
406
450
  const errorPath = path2.join(pagesDir, "errors.js");
@@ -590,19 +634,34 @@ if (!pagesDir) {
590
634
  throw new Error("Missing WEBFRAMEZ_REACT_PAGES_DIR");
591
635
  }
592
636
 
593
- const appRequire = Module.createRequire(path.join(pagesDir, "__webframez_react_worker__.js"));
637
+ const rootRequire = Module.createRequire(path.join(process.cwd(), "__webframez_react_worker__.js"));
594
638
  const originalResolveFilename = Module._resolveFilename;
595
639
  const forcedResolutions = new Map([
596
- ["react", appRequire.resolve("react")],
597
- ["react/jsx-runtime", appRequire.resolve("react/jsx-runtime")],
598
- ["react/jsx-dev-runtime", appRequire.resolve("react/jsx-dev-runtime")],
599
- ["react-dom/client", appRequire.resolve("react-dom/client")]
640
+ ["@webtypen/webframez-core", rootRequire.resolve("@webtypen/webframez-core")],
641
+ ["@webtypen/webframez-react", rootRequire.resolve("@webtypen/webframez-react")],
642
+ ["react", rootRequire.resolve("react")],
643
+ ["react/jsx-runtime", rootRequire.resolve("react/jsx-runtime")],
644
+ ["react/jsx-dev-runtime", rootRequire.resolve("react/jsx-dev-runtime")],
645
+ ["react-dom", rootRequire.resolve("react-dom")],
646
+ ["react-dom/client", rootRequire.resolve("react-dom/client")],
647
+ ["react-dom/server", rootRequire.resolve("react-dom/server")],
648
+ ["react-dom/server.node", rootRequire.resolve("react-dom/server.node")],
649
+ ["react-server-dom-webpack", rootRequire.resolve("react-server-dom-webpack")],
650
+ ["react-server-dom-webpack/server", rootRequire.resolve("react-server-dom-webpack/server")],
651
+ ["react-server-dom-webpack/client", rootRequire.resolve("react-server-dom-webpack/client")],
652
+ ["react-server-dom-webpack/client.node", rootRequire.resolve("react-server-dom-webpack/client.node")],
653
+ ["scheduler", rootRequire.resolve("scheduler")]
600
654
  ]);
601
655
 
602
656
  Module._resolveFilename = function(request, parent, isMain, options) {
603
657
  if (forcedResolutions.has(request)) {
604
658
  return forcedResolutions.get(request);
605
659
  }
660
+ for (const forcedRequest of forcedResolutions.keys()) {
661
+ if (request.startsWith(forcedRequest + "/")) {
662
+ return rootRequire.resolve(request);
663
+ }
664
+ }
606
665
  return originalResolveFilename.call(this, request, parent, isMain, options);
607
666
  };
608
667
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webtypen/webframez-react",
3
- "version": "0.0.15",
3
+ "version": "0.0.16",
4
4
  "description": "TypeScript React RSC addition for @webtypen/webframez-core",
5
5
  "homepage": "https://webtypen.de/",
6
6
  "author": {