@reckona/mreact-router 0.0.186 → 0.0.188

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 (57) hide show
  1. package/dist/actions.d.ts.map +1 -1
  2. package/dist/actions.js.map +1 -1
  3. package/dist/adapters/aws-lambda.js.map +1 -1
  4. package/dist/adapters/cloudflare.js.map +1 -1
  5. package/dist/assets.js.map +1 -1
  6. package/dist/build.d.ts.map +1 -1
  7. package/dist/build.js +4 -2
  8. package/dist/build.js.map +1 -1
  9. package/dist/built-server-module-artifacts.js.map +1 -1
  10. package/dist/bundle-pipeline.d.ts +1 -0
  11. package/dist/bundle-pipeline.d.ts.map +1 -1
  12. package/dist/bundle-pipeline.js +9 -3
  13. package/dist/bundle-pipeline.js.map +1 -1
  14. package/dist/cache-config.js.map +1 -1
  15. package/dist/cache.js.map +1 -1
  16. package/dist/cli.js.map +1 -1
  17. package/dist/client-manifest-assets.js.map +1 -1
  18. package/dist/client-route-inference.d.ts +1 -1
  19. package/dist/client-route-inference.d.ts.map +1 -1
  20. package/dist/client-route-inference.js +1 -1
  21. package/dist/client-route-inference.js.map +1 -1
  22. package/dist/client.d.ts +5 -0
  23. package/dist/client.d.ts.map +1 -1
  24. package/dist/client.js +108 -187
  25. package/dist/client.js.map +1 -1
  26. package/dist/cookies.js.map +1 -1
  27. package/dist/import-policy.d.ts.map +1 -1
  28. package/dist/import-policy.js.map +1 -1
  29. package/dist/layout-composer.js.map +1 -1
  30. package/dist/module-runner.js.map +1 -1
  31. package/dist/multipart.js.map +1 -1
  32. package/dist/native-escape.js.map +1 -1
  33. package/dist/native-route-matcher.js.map +1 -1
  34. package/dist/navigation.js.map +1 -1
  35. package/dist/preload-policy.js.map +1 -1
  36. package/dist/prerender-store.js.map +1 -1
  37. package/dist/render.d.ts.map +1 -1
  38. package/dist/render.js +1 -0
  39. package/dist/render.js.map +1 -1
  40. package/dist/route-hydration-contract.d.ts.map +1 -1
  41. package/dist/route-module-loader.js.map +1 -1
  42. package/dist/route-source.js.map +1 -1
  43. package/dist/route-styles.js.map +1 -1
  44. package/dist/server-action-inference.js +1 -1
  45. package/dist/server-action-inference.js.map +1 -1
  46. package/dist/session.js.map +1 -1
  47. package/dist/vite.d.ts.map +1 -1
  48. package/dist/vite.js +23 -1
  49. package/dist/vite.js.map +1 -1
  50. package/package.json +12 -12
  51. package/src/build.ts +9 -2
  52. package/src/bundle-pipeline.ts +12 -3
  53. package/src/client-route-inference.ts +2 -0
  54. package/src/client.ts +134 -187
  55. package/src/render.ts +1 -0
  56. package/src/server-action-inference.ts +2 -2
  57. package/src/vite.ts +23 -0
@@ -1 +1 @@
1
- {"version":3,"file":"client-manifest-assets.js","sourceRoot":"","sources":["../src/client-manifest-assets.ts"],"names":[],"mappings":"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","sourcesContent":["export interface ClientManifestAssetRoute {\n css?: readonly string[] | undefined;\n imports?: readonly string[] | undefined;\n navigationScript?: string | undefined;\n script?: string | undefined;\n sourceMap?: string | undefined;\n}\n\nexport interface ClientManifestAssetSource {\n assets?: readonly string[] | undefined;\n routes: readonly ClientManifestAssetRoute[];\n}\n\nexport function clientManifestAssetPaths(\n manifest: ClientManifestAssetSource,\n options: {\n extraPaths?: readonly string[] | undefined;\n prefix?: string | undefined;\n } = {},\n): Set<string> {\n const prefix = normalizeClientManifestAssetPrefix(options.prefix ?? \"\");\n const paths = new Set<string>([`${prefix}manifest.json`]);\n\n for (const route of manifest.routes) {\n for (const asset of [\n route.script,\n route.sourceMap,\n route.navigationScript,\n ...(route.css ?? []),\n ...(route.imports ?? []),\n ]) {\n const path = safeClientManifestAssetPath(asset);\n\n if (path !== undefined) {\n paths.add(`${prefix}${path}`);\n }\n }\n }\n\n for (const asset of manifest.assets ?? []) {\n const path = safeClientManifestAssetPath(asset);\n\n if (path !== undefined) {\n paths.add(`${prefix}${path}`);\n }\n }\n\n for (const asset of options.extraPaths ?? []) {\n const path = safeClientManifestAssetPath(asset);\n\n if (path !== undefined) {\n paths.add(`${prefix}${path}`);\n }\n }\n\n return paths;\n}\n\nfunction normalizeClientManifestAssetPrefix(prefix: string): string {\n if (prefix === \"\") {\n return \"\";\n }\n\n const withLeadingSlash = prefix.startsWith(\"/\") ? prefix : `/${prefix}`;\n\n return withLeadingSlash.endsWith(\"/\") ? withLeadingSlash : `${withLeadingSlash}/`;\n}\n\nfunction safeClientManifestAssetPath(asset: string | undefined): string | undefined {\n if (asset === undefined || asset === \"\" || asset.startsWith(\"/\") || asset.includes(\"\\\\\")) {\n return undefined;\n }\n\n const segments = asset.split(\"/\");\n\n return segments.some((segment) => unsafeClientManifestAssetSegment(segment))\n ? undefined\n : segments.join(\"/\");\n}\n\nfunction unsafeClientManifestAssetSegment(segment: string): boolean {\n if (segment === \"\" || segment === \".\" || segment === \"..\") {\n return true;\n }\n\n try {\n const decoded = decodeURIComponent(segment);\n return decoded === \".\" || decoded === \"..\" || decoded.includes(\"/\") || decoded.includes(\"\\\\\");\n } catch {\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"client-manifest-assets.js","sourceRoot":"","sources":["../src/client-manifest-assets.ts"],"names":[],"mappings":"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","sourcesContent":["export interface ClientManifestAssetRoute {\n css?: readonly string[] | undefined;\n imports?: readonly string[] | undefined;\n navigationScript?: string | undefined;\n script?: string | undefined;\n sourceMap?: string | undefined;\n}\n\nexport interface ClientManifestAssetSource {\n assets?: readonly string[] | undefined;\n routes: readonly ClientManifestAssetRoute[];\n}\n\nexport function clientManifestAssetPaths(\n manifest: ClientManifestAssetSource,\n options: {\n extraPaths?: readonly string[] | undefined;\n prefix?: string | undefined;\n } = {},\n): Set<string> {\n const prefix = normalizeClientManifestAssetPrefix(options.prefix ?? \"\");\n const paths = new Set<string>([`${prefix}manifest.json`]);\n\n for (const route of manifest.routes) {\n for (const asset of [\n route.script,\n route.sourceMap,\n route.navigationScript,\n ...(route.css ?? []),\n ...(route.imports ?? []),\n ]) {\n const path = safeClientManifestAssetPath(asset);\n\n if (path !== undefined) {\n paths.add(`${prefix}${path}`);\n }\n }\n }\n\n for (const asset of manifest.assets ?? []) {\n const path = safeClientManifestAssetPath(asset);\n\n if (path !== undefined) {\n paths.add(`${prefix}${path}`);\n }\n }\n\n for (const asset of options.extraPaths ?? []) {\n const path = safeClientManifestAssetPath(asset);\n\n if (path !== undefined) {\n paths.add(`${prefix}${path}`);\n }\n }\n\n return paths;\n}\n\nfunction normalizeClientManifestAssetPrefix(prefix: string): string {\n if (prefix === \"\") {\n return \"\";\n }\n\n const withLeadingSlash = prefix.startsWith(\"/\") ? prefix : `/${prefix}`;\n\n return withLeadingSlash.endsWith(\"/\") ? withLeadingSlash : `${withLeadingSlash}/`;\n}\n\nfunction safeClientManifestAssetPath(asset: string | undefined): string | undefined {\n if (asset === undefined || asset === \"\" || asset.startsWith(\"/\") || asset.includes(\"\\\\\")) {\n return undefined;\n }\n\n const segments = asset.split(\"/\");\n\n return segments.some((segment) => unsafeClientManifestAssetSegment(segment))\n ? undefined\n : segments.join(\"/\");\n}\n\nfunction unsafeClientManifestAssetSegment(segment: string): boolean {\n if (segment === \"\" || segment === \".\" || segment === \"..\") {\n return true;\n }\n\n try {\n const decoded = decodeURIComponent(segment);\n return decoded === \".\" || decoded === \"..\" || decoded.includes(\"/\") || decoded.includes(\"\\\\\");\n } catch {\n return true;\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- export { collectClientRouteReferences, compilerModuleContextForSource, createClientRouteInferenceCache, detectClientNavigationHint, detectNavigationRuntimeOverride, formatClientRouteInferenceDiagnostic, inferClientRouteModule, isClientRouteModule, isClientRouteSource, navigationRuntimeLinkDisabledDiagnostic, resolveNavigationRuntime, routeToClientManifestEntry, type ClientReferenceImport, type ClientRouteInferenceCache, type ClientRouteInferenceDiagnostic, type ClientRouteInferenceResult, type ClientRouteManifestEntry, type ClientRouteReferenceResult, } from "./client.js";
1
+ export { collectClientRouteReferences, compilerModuleContextForSource, createClientRouteInferenceCache, detectAnchorElementUsage, detectClientNavigationHint, detectClientNavigationOverride, detectNavigationRuntimeOverride, formatClientRouteInferenceDiagnostic, inferClientRouteModule, isClientRouteModule, isClientRouteSource, navigationRuntimeLinkDisabledDiagnostic, resolveNavigationRuntime, routeToClientManifestEntry, type ClientReferenceImport, type ClientRouteInferenceCache, type ClientRouteInferenceDiagnostic, type ClientRouteInferenceResult, type ClientRouteManifestEntry, type ClientRouteReferenceResult, } from "./client.js";
2
2
  //# sourceMappingURL=client-route-inference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-route-inference.d.ts","sourceRoot":"","sources":["../src/client-route-inference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,0BAA0B,EAC1B,+BAA+B,EAC/B,oCAAoC,EACpC,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,uCAAuC,EACvC,wBAAwB,EACxB,0BAA0B,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EACnC,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,GAChC,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"client-route-inference.d.ts","sourceRoot":"","sources":["../src/client-route-inference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,wBAAwB,EACxB,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,EAC/B,oCAAoC,EACpC,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,uCAAuC,EACvC,wBAAwB,EACxB,0BAA0B,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EACnC,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,GAChC,MAAM,aAAa,CAAC"}
@@ -1,2 +1,2 @@
1
- export { collectClientRouteReferences, compilerModuleContextForSource, createClientRouteInferenceCache, detectClientNavigationHint, detectNavigationRuntimeOverride, formatClientRouteInferenceDiagnostic, inferClientRouteModule, isClientRouteModule, isClientRouteSource, navigationRuntimeLinkDisabledDiagnostic, resolveNavigationRuntime, routeToClientManifestEntry, } from "./client.js";
1
+ export { collectClientRouteReferences, compilerModuleContextForSource, createClientRouteInferenceCache, detectAnchorElementUsage, detectClientNavigationHint, detectClientNavigationOverride, detectNavigationRuntimeOverride, formatClientRouteInferenceDiagnostic, inferClientRouteModule, isClientRouteModule, isClientRouteSource, navigationRuntimeLinkDisabledDiagnostic, resolveNavigationRuntime, routeToClientManifestEntry, } from "./client.js";
2
2
  //# sourceMappingURL=client-route-inference.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-route-inference.js","sourceRoot":"","sources":["../src/client-route-inference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,0BAA0B,EAC1B,+BAA+B,EAC/B,oCAAoC,EACpC,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,uCAAuC,EACvC,wBAAwB,EACxB,0BAA0B,GAO3B,MAAM,aAAa,CAAC","sourcesContent":["export {\n collectClientRouteReferences,\n compilerModuleContextForSource,\n createClientRouteInferenceCache,\n detectClientNavigationHint,\n detectNavigationRuntimeOverride,\n formatClientRouteInferenceDiagnostic,\n inferClientRouteModule,\n isClientRouteModule,\n isClientRouteSource,\n navigationRuntimeLinkDisabledDiagnostic,\n resolveNavigationRuntime,\n routeToClientManifestEntry,\n type ClientReferenceImport,\n type ClientRouteInferenceCache,\n type ClientRouteInferenceDiagnostic,\n type ClientRouteInferenceResult,\n type ClientRouteManifestEntry,\n type ClientRouteReferenceResult,\n} from \"./client.js\";\n"]}
1
+ {"version":3,"file":"client-route-inference.js","sourceRoot":"","sources":["../src/client-route-inference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,wBAAwB,EACxB,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,EAC/B,oCAAoC,EACpC,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,uCAAuC,EACvC,wBAAwB,EACxB,0BAA0B,GAO3B,MAAM,aAAa,CAAC","sourcesContent":["export {\n collectClientRouteReferences,\n compilerModuleContextForSource,\n createClientRouteInferenceCache,\n detectAnchorElementUsage,\n detectClientNavigationHint,\n detectClientNavigationOverride,\n detectNavigationRuntimeOverride,\n formatClientRouteInferenceDiagnostic,\n inferClientRouteModule,\n isClientRouteModule,\n isClientRouteSource,\n navigationRuntimeLinkDisabledDiagnostic,\n resolveNavigationRuntime,\n routeToClientManifestEntry,\n type ClientReferenceImport,\n type ClientRouteInferenceCache,\n type ClientRouteInferenceDiagnostic,\n type ClientRouteInferenceResult,\n type ClientRouteManifestEntry,\n type ClientRouteReferenceResult,\n} from \"./client.js\";\n"]}
package/dist/client.d.ts CHANGED
@@ -35,6 +35,7 @@ export interface BuildClientRouteOutputOptions {
35
35
  vitePlugins?: readonly PluginOption[] | undefined;
36
36
  clientNavigation?: boolean | undefined;
37
37
  forceInlineNavigationRuntime?: boolean | undefined;
38
+ routeMayUseOutOfOrderFragments?: boolean | undefined;
38
39
  }
39
40
  export interface BuildClientRouteBatchOutput {
40
41
  assets?: RouterBundleAssetOutput[] | undefined;
@@ -164,7 +165,9 @@ export declare function buildClientRouteBundle(options: {
164
165
  clientBoundaryImports?: readonly string[] | undefined;
165
166
  clientReferenceImports?: readonly ClientReferenceImport[] | undefined;
166
167
  clientReferenceManifest?: readonly ClientReferenceMetadata[] | undefined;
168
+ clientNavigation?: boolean | undefined;
167
169
  filename: string;
170
+ routeMayUseOutOfOrderFragments?: boolean | undefined;
168
171
  routePath: string;
169
172
  vitePlugins?: readonly PluginOption[] | undefined;
170
173
  }): Promise<string>;
@@ -202,6 +205,8 @@ export declare function buildClientRouteEntrySource(options: BuildClientRouteOut
202
205
  * not mistaken for a real export.
203
206
  */
204
207
  export declare function detectClientNavigationHint(source: string): boolean;
208
+ export declare function detectClientNavigationOverride(source: string): boolean | undefined;
209
+ export declare function detectAnchorElementUsage(source: string, filename?: string | undefined): boolean;
205
210
  export declare function detectNavigationRuntimeOverride(source: string): boolean | undefined;
206
211
  export {};
207
212
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -1419,6 +1419,11 @@ export async function buildClientRouteEntrySource(options) {
1419
1419
  const routeUsesCleanupScope = routeUsesCells || routeUsesReactiveEffect;
1420
1420
  const routeExplicitlyRequiresHydration = isExplicitClientRouteSource(routeSourceAnalysis, options.filename);
1421
1421
  const routeHasEventBindings = (compiled.metadata.eventHydrationManifest?.events.length ?? 0) > 0;
1422
+ const routeCapturesEventBindings = compiled.code.includes("__mreactEventBindings");
1423
+ const routeMayCaptureEventBindings = routeHasEventBindings ||
1424
+ routeCapturesEventBindings ||
1425
+ /\bon[A-Z][\w$]*\s*=/.test(options.code) ||
1426
+ routeSourceAnalysis.staticImports.length > 0;
1422
1427
  const routeRequiresFullHydration = routeExplicitlyRequiresHydration ||
1423
1428
  routeUsesCells ||
1424
1429
  routeUsesReactiveEffect ||
@@ -1437,8 +1442,12 @@ export async function buildClientRouteEntrySource(options) {
1437
1442
  const routeCleanupScopeImport = routeUsesCleanupScope
1438
1443
  ? `import { withCleanupScope as __mreactWithCleanupScope } from "@reckona/mreact-reactive-core/internal";\n`
1439
1444
  : "";
1445
+ const routeUsesEventBindingSync = !routeUsesOnlyClientReferenceBoundaries && routeMayCaptureEventBindings;
1446
+ const routeCapturedEventImport = routeUsesEventBindingSync
1447
+ ? `import { bindCapturedEvent as __mreactBindCapturedEvent } from "@reckona/mreact-reactive-dom/internal";\n`
1448
+ : "";
1440
1449
  const routeReactiveDomMetadataImport = !routeUsesOnlyClientReferenceBoundaries
1441
- ? `import { withEventBindingMetadata as __mreactWithEventBindingMetadata, withPropBindingMetadata as __mreactWithPropBindingMetadata } from "@reckona/mreact-reactive-dom";\n`
1450
+ ? `${routeCapturedEventImport}import { withEventBindingMetadata as __mreactWithEventBindingMetadata, withPropBindingMetadata as __mreactWithPropBindingMetadata } from "@reckona/mreact-reactive-dom";\n`
1442
1451
  : "";
1443
1452
  const navigationStateDeclaration = inlineClientNavigation
1444
1453
  ? `const __mreactNavigationState = __mreactGlobal.__mreactNavigationState ??= {
@@ -1596,10 +1605,16 @@ function __mreactInstallNavigation() {
1596
1605
  }
1597
1606
  };
1598
1607
 
1599
- if (typeof requestIdleCallback === "function") {
1600
- requestIdleCallback(load);
1601
- } else {
1602
- setTimeout(load, 0);
1608
+ const hasSameOriginAnchor = Array.from(document.querySelectorAll("a[href]")).some((anchor) =>
1609
+ anchor instanceof HTMLAnchorElement && anchor.origin === location.origin,
1610
+ );
1611
+
1612
+ if (hasSameOriginAnchor) {
1613
+ if (typeof requestIdleCallback === "function") {
1614
+ requestIdleCallback(load);
1615
+ } else {
1616
+ setTimeout(load, 0);
1617
+ }
1603
1618
  }
1604
1619
 
1605
1620
  addEventListener("popstate", load);
@@ -1792,6 +1807,51 @@ function __mreactResolveRouteNode(value) {
1792
1807
  const routeHydrationNodeExpression = !routeUsesOnlyClientReferenceBoundaries
1793
1808
  ? `__mreactWithPropBindingMetadata(() => __mreactWithEventBindingMetadata(() => __mreactEvaluateHydrationNode(() => ${routeNodeExpression})))`
1794
1809
  : `__mreactEvaluateHydrationNode(() => ${routeNodeExpression})`;
1810
+ const routeEventBindingSyncFunction = routeUsesEventBindingSync
1811
+ ? `function __mreactSyncEventBindings(current, next) {
1812
+ const previousDisposers = current.__mreactEventDisposers;
1813
+
1814
+ if (Array.isArray(previousDisposers)) {
1815
+ for (const dispose of previousDisposers) {
1816
+ dispose();
1817
+ }
1818
+ }
1819
+
1820
+ const rawBindings = next.__mreactEventBindings;
1821
+ const bindings =
1822
+ rawBindings === undefined ? [] : Array.isArray(rawBindings) ? rawBindings : [rawBindings];
1823
+
1824
+ if (bindings.length === 0) {
1825
+ current.__mreactEventDisposers = [];
1826
+ current.__mreactHasEvents = false;
1827
+ return;
1828
+ }
1829
+
1830
+ const disposers = [];
1831
+
1832
+ for (const binding of bindings) {
1833
+ disposers.push(
1834
+ __mreactBindCapturedEvent(current, binding.type, binding.listener, binding.delegated === true),
1835
+ );
1836
+ }
1837
+
1838
+ current.__mreactEventDisposers = disposers;
1839
+ current.__mreactHasEvents = true;
1840
+ }
1841
+ `
1842
+ : `function __mreactSyncEventBindings(current) {
1843
+ const previousDisposers = current.__mreactEventDisposers;
1844
+
1845
+ if (Array.isArray(previousDisposers)) {
1846
+ for (const dispose of previousDisposers) {
1847
+ dispose();
1848
+ }
1849
+ }
1850
+
1851
+ current.__mreactEventDisposers = [];
1852
+ current.__mreactHasEvents = false;
1853
+ }
1854
+ `;
1795
1855
  const boundaryOnlyHydrationBlock = routeRequiresFullHydration
1796
1856
  ? ""
1797
1857
  : `${routeCellHydrationIndent}if (!__mreactHasNonSerializableClientBoundaries(__mreactMarker) && __mreactHydrateClientBoundaries(document, __mreactClientReferences, __mreactClientReferenceComponents)) {
@@ -1800,6 +1860,9 @@ ${routeCellHydrationIndent} __mreactMarkRouteHydrated();
1800
1860
  ${routeCellHydrationIndent} return;
1801
1861
  ${routeCellHydrationIndent}}
1802
1862
  `;
1863
+ const routeOutOfOrderFragmentHydration = options.routeMayUseOutOfOrderFragments === true
1864
+ ? " __mreactApplyOutOfOrderFragments(document);\n"
1865
+ : "";
1803
1866
  const routeComponentGuard = `${routeCellHydrationIndent}if (__mreactComponent === undefined) {
1804
1867
  ${routeCellHydrationIndent} return;
1805
1868
  ${routeCellHydrationIndent}}
@@ -1822,8 +1885,7 @@ ${clientReferenceRegistry}
1822
1885
  ${routeNodeResolver}
1823
1886
 
1824
1887
  export function __mreactHydrateRoute() {
1825
- __mreactApplyOutOfOrderFragments(document);
1826
- const __mreactMarker = document.querySelector(\`[\${__mreactRouteMarkerAttribute}="\${__mreactRouteId}"]\`);
1888
+ ${routeOutOfOrderFragmentHydration} const __mreactMarker = document.querySelector(\`[\${__mreactRouteMarkerAttribute}="\${__mreactRouteId}"]\`);
1827
1889
  const __mreactPropsElement = document.getElementById(\`\${__mreactPropsScriptPrefix}\${__mreactRouteId}\`);
1828
1890
  const __mreactClientReferencesElement = document.getElementById(\`\${__mreactClientReferencesScriptPrefix}\${__mreactRouteId}\`);
1829
1891
  const __mreactPropsText = __mreactPropsElement?.textContent;
@@ -3520,184 +3582,7 @@ function __mreactShouldReplaceNode(current, next) {
3520
3582
  current.tagName !== next.tagName;
3521
3583
  }
3522
3584
 
3523
- function __mreactSyncEventBindings(current, next) {
3524
- const previousDisposers = current.__mreactEventDisposers;
3525
-
3526
- if (Array.isArray(previousDisposers)) {
3527
- for (const dispose of previousDisposers) {
3528
- dispose();
3529
- }
3530
- }
3531
-
3532
- const rawBindings = next.__mreactEventBindings;
3533
- const bindings =
3534
- rawBindings === undefined ? [] : Array.isArray(rawBindings) ? rawBindings : [rawBindings];
3535
-
3536
- if (bindings.length === 0) {
3537
- current.__mreactEventDisposers = [];
3538
- current.__mreactHasEvents = false;
3539
- return;
3540
- }
3541
-
3542
- const disposers = [];
3543
-
3544
- for (const binding of bindings) {
3545
- if (binding.delegated === true && __mreactIsDelegatedEventType(binding.type)) {
3546
- disposers.push(__mreactAddDelegatedEventListener(current, binding.type, binding.listener));
3547
- } else {
3548
- current.addEventListener(binding.type, binding.listener);
3549
- disposers.push(() => current.removeEventListener(binding.type, binding.listener));
3550
- }
3551
- }
3552
-
3553
- current.__mreactEventDisposers = disposers;
3554
- current.__mreactHasEvents = true;
3555
- }
3556
-
3557
- function __mreactIsDelegatedEventType(type) {
3558
- return type === "change" ||
3559
- type === "click" ||
3560
- type === "input" ||
3561
- type === "keydown" ||
3562
- type === "keyup" ||
3563
- type === "pointerdown" ||
3564
- type === "pointermove" ||
3565
- type === "pointerup" ||
3566
- type === "submit";
3567
- }
3568
-
3569
- function __mreactDelegatedEventState() {
3570
- globalThis.__mreactDelegatedEventState ??= {
3571
- elements: new WeakMap(),
3572
- roots: new WeakMap(),
3573
- };
3574
- return globalThis.__mreactDelegatedEventState;
3575
- }
3576
-
3577
- function __mreactAddDelegatedEventListener(element, type, listener) {
3578
- const root = element.ownerDocument;
3579
- const state = __mreactDelegatedEventState();
3580
- let listenersByType = state.elements.get(element);
3581
-
3582
- if (listenersByType === undefined) {
3583
- listenersByType = new Map();
3584
- state.elements.set(element, listenersByType);
3585
- }
3586
-
3587
- let listeners = listenersByType.get(type);
3588
-
3589
- if (listeners === undefined) {
3590
- listeners = [];
3591
- listenersByType.set(type, listeners);
3592
- }
3593
-
3594
- listeners.push(listener);
3595
- __mreactRetainDelegatedEventRoot(root, type);
3596
-
3597
- return () => {
3598
- const state = __mreactDelegatedEventState();
3599
- const currentListeners = state.elements.get(element)?.get(type);
3600
- const index = currentListeners?.indexOf(listener) ?? -1;
3601
-
3602
- if (index !== -1) {
3603
- currentListeners?.splice(index, 1);
3604
- }
3605
-
3606
- if (currentListeners?.length === 0) {
3607
- state.elements.get(element)?.delete(type);
3608
- }
3609
-
3610
- __mreactReleaseDelegatedEventRoot(root, type);
3611
- };
3612
- }
3613
-
3614
- function __mreactRetainDelegatedEventRoot(root, type) {
3615
- const state = __mreactDelegatedEventState();
3616
- let rootsByType = state.roots.get(root);
3617
-
3618
- if (rootsByType === undefined) {
3619
- rootsByType = new Map();
3620
- state.roots.set(root, rootsByType);
3621
- }
3622
-
3623
- const current = rootsByType.get(type);
3624
-
3625
- if (current !== undefined) {
3626
- current.count += 1;
3627
- return;
3628
- }
3629
-
3630
- const listener = (event) => __mreactDispatchDelegatedEvent(root, type, event);
3631
- rootsByType.set(type, { count: 1, listener });
3632
- root.addEventListener(type, listener);
3633
- }
3634
-
3635
- function __mreactReleaseDelegatedEventRoot(root, type) {
3636
- const rootsByType = __mreactDelegatedEventState().roots.get(root);
3637
- const current = rootsByType?.get(type);
3638
-
3639
- if (rootsByType === undefined || current === undefined) {
3640
- return;
3641
- }
3642
-
3643
- current.count -= 1;
3644
-
3645
- if (current.count > 0) {
3646
- return;
3647
- }
3648
-
3649
- root.removeEventListener(type, current.listener);
3650
- rootsByType.delete(type);
3651
- }
3652
-
3653
- function __mreactDispatchDelegatedEvent(root, type, event) {
3654
- const state = __mreactDelegatedEventState();
3655
-
3656
- for (const target of event.composedPath()) {
3657
- if (target === root) {
3658
- break;
3659
- }
3660
-
3661
- if (!(target instanceof HTMLElement)) {
3662
- continue;
3663
- }
3664
-
3665
- const listeners = state.elements.get(target)?.get(type);
3666
-
3667
- if (listeners === undefined || listeners.length === 0) {
3668
- continue;
3669
- }
3670
-
3671
- const activeListeners = listeners.slice();
3672
-
3673
- for (const listener of activeListeners) {
3674
- __mreactCallWithCurrentTarget(listener, event, target);
3675
- }
3676
-
3677
- if (event.cancelBubble) {
3678
- break;
3679
- }
3680
- }
3681
- }
3682
-
3683
- function __mreactCallWithCurrentTarget(listener, event, currentTarget) {
3684
- const descriptor = Object.getOwnPropertyDescriptor(event, "currentTarget");
3685
-
3686
- Object.defineProperty(event, "currentTarget", {
3687
- configurable: true,
3688
- value: currentTarget,
3689
- });
3690
-
3691
- try {
3692
- listener.call(currentTarget, event);
3693
- } finally {
3694
- if (descriptor === undefined) {
3695
- delete event.currentTarget;
3696
- } else {
3697
- Object.defineProperty(event, "currentTarget", descriptor);
3698
- }
3699
- }
3700
- }
3585
+ ${routeEventBindingSyncFunction}
3701
3586
 
3702
3587
  function __mreactSyncAttributes(current, next) {
3703
3588
  for (const attribute of Array.from(current.attributes)) {
@@ -3824,6 +3709,10 @@ function workspaceRuntimePlugin(options) {
3824
3709
  packageFile("reactive-core", "@reckona/mreact-reactive-core", "internal"),
3825
3710
  ],
3826
3711
  ["@reckona/mreact-compat", reactCompatPath],
3712
+ [
3713
+ "@reckona/mreact-reactive-dom/internal",
3714
+ packageFile("reactive-dom", "@reckona/mreact-reactive-dom", "internal"),
3715
+ ],
3827
3716
  [
3828
3717
  "@reckona/mreact-compat/event-priority",
3829
3718
  packageFile("react-compat", "@reckona/mreact-compat", "event-priority"),
@@ -3891,9 +3780,12 @@ export function cell(initial) {
3891
3780
  }));
3892
3781
  buildApi.onLoad({ filter: /^devtools$/, namespace: "mreact-devtools-stub" }, () => ({
3893
3782
  contents: `export function emitReactiveDevtoolsEvent() {}
3783
+ export function emitReactiveEffectRunDevtoolsEvent() {}
3894
3784
  export function hasReactiveDevtoolsEmitter() { return false; }
3895
3785
  export function currentDevtoolsEmitter() { return undefined; }
3896
- export function currentReactiveDevtools() { return undefined; }`,
3786
+ export function currentReactiveDevtools() { return undefined; }
3787
+ export function invalidateReactiveDevtoolsCache() {}
3788
+ export function prepareReactiveEffectRunDevtoolsEvent() { return undefined; }`,
3897
3789
  loader: "ts",
3898
3790
  }));
3899
3791
  buildApi.onLoad({ filter: /\.(?:mreact\.)?[cm]?[jt]sx$/ }, async (args) => {
@@ -3953,7 +3845,36 @@ function importerInRuntimePackage(importer, directories, packageNames) {
3953
3845
  * not mistaken for a real export.
3954
3846
  */
3955
3847
  export function detectClientNavigationHint(source) {
3956
- return readTopLevelBooleanExport({ code: source, name: "clientNavigation" }) ?? true;
3848
+ return detectClientNavigationOverride(source) ?? true;
3849
+ }
3850
+ export function detectClientNavigationOverride(source) {
3851
+ return readTopLevelBooleanExport({ code: source, name: "clientNavigation" });
3852
+ }
3853
+ export function detectAnchorElementUsage(source, filename) {
3854
+ const context = createCompilerModuleContext({ code: source, filename });
3855
+ return containsAnchorElementWithHref(context.program);
3856
+ }
3857
+ function containsAnchorElementWithHref(value) {
3858
+ if (value === null || typeof value !== "object") {
3859
+ return false;
3860
+ }
3861
+ if (Array.isArray(value)) {
3862
+ return value.some((entry) => containsAnchorElementWithHref(entry));
3863
+ }
3864
+ const node = value;
3865
+ if (node.type === "JSXElement" && node.openingElement !== undefined) {
3866
+ const opening = node.openingElement;
3867
+ const tagName = opening?.name?.name;
3868
+ if (tagName === "a" &&
3869
+ Array.isArray(opening.attributes) &&
3870
+ opening.attributes.some((attribute) => {
3871
+ const jsxAttribute = attribute;
3872
+ return jsxAttribute.type === "JSXAttribute" && jsxAttribute.name?.name === "href";
3873
+ })) {
3874
+ return true;
3875
+ }
3876
+ }
3877
+ return Object.values(value).some((entry) => containsAnchorElementWithHref(entry));
3957
3878
  }
3958
3879
  // `Link` ships from the dedicated `/link` subpath and is also re-exported from
3959
3880
  // the package root for backward compatibility, so both specifiers must count.