@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.
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js.map +1 -1
- package/dist/adapters/aws-lambda.js.map +1 -1
- package/dist/adapters/cloudflare.js.map +1 -1
- package/dist/assets.js.map +1 -1
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +4 -2
- package/dist/build.js.map +1 -1
- package/dist/built-server-module-artifacts.js.map +1 -1
- package/dist/bundle-pipeline.d.ts +1 -0
- package/dist/bundle-pipeline.d.ts.map +1 -1
- package/dist/bundle-pipeline.js +9 -3
- package/dist/bundle-pipeline.js.map +1 -1
- package/dist/cache-config.js.map +1 -1
- package/dist/cache.js.map +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/client-manifest-assets.js.map +1 -1
- package/dist/client-route-inference.d.ts +1 -1
- package/dist/client-route-inference.d.ts.map +1 -1
- package/dist/client-route-inference.js +1 -1
- package/dist/client-route-inference.js.map +1 -1
- package/dist/client.d.ts +5 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +108 -187
- package/dist/client.js.map +1 -1
- package/dist/cookies.js.map +1 -1
- package/dist/import-policy.d.ts.map +1 -1
- package/dist/import-policy.js.map +1 -1
- package/dist/layout-composer.js.map +1 -1
- package/dist/module-runner.js.map +1 -1
- package/dist/multipart.js.map +1 -1
- package/dist/native-escape.js.map +1 -1
- package/dist/native-route-matcher.js.map +1 -1
- package/dist/navigation.js.map +1 -1
- package/dist/preload-policy.js.map +1 -1
- package/dist/prerender-store.js.map +1 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +1 -0
- package/dist/render.js.map +1 -1
- package/dist/route-hydration-contract.d.ts.map +1 -1
- package/dist/route-module-loader.js.map +1 -1
- package/dist/route-source.js.map +1 -1
- package/dist/route-styles.js.map +1 -1
- package/dist/server-action-inference.js +1 -1
- package/dist/server-action-inference.js.map +1 -1
- package/dist/session.js.map +1 -1
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +23 -1
- package/dist/vite.js.map +1 -1
- package/package.json +12 -12
- package/src/build.ts +9 -2
- package/src/bundle-pipeline.ts +12 -3
- package/src/client-route-inference.ts +2 -0
- package/src/client.ts +134 -187
- package/src/render.ts +1 -0
- package/src/server-action-inference.ts +2 -2
- 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":"AAaA,MAAM,UAAU,wBAAwB,CACtC,QAAmC,EACnC,
|
|
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
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,KAAK,yBAAyB,EAI/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,EAQL,KAAK,qBAAqB,EAC3B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAIL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAqC,KAAK,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAY5C,OAAO,KAAK,EAAU,YAAY,EAAE,MAAM,MAAM,CAAC;AAIjD,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,uBAAuB,CAAC,EAAE,SAAS,uBAAuB,EAAE,GAAG,SAAS,CAAC;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACtD,sBAAsB,CAAC,EAAE,SAAS,qBAAqB,EAAE,GAAG,SAAS,CAAC;IACtE,uBAAuB,CAAC,EAAE,SAAS,uBAAuB,EAAE,GAAG,SAAS,CAAC;IACzE,iBAAiB,CAAC,EAAE,0BAA0B,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;IAChF,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;IAClD,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,4BAA4B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;
|
|
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
|
-
?
|
|
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
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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.
|