@farm.js/core 0.1.0-beta.80 → 0.1.0-beta.81
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/agent-runtime.d.mts +1 -1
- package/dist/agent-runtime.d.ts +1 -1
- package/dist/{app-D1fYgNSZ.d.mts → app-B9tbSdKW.d.mts} +3 -3
- package/dist/{app-DKW_R78N.d.ts → app-C7twWiJY.d.ts} +3 -3
- package/dist/app-markdown.d.mts +2 -2
- package/dist/app-markdown.d.ts +2 -2
- package/dist/{chunk-OEI62POE.mjs → chunk-6NV2RJSZ.mjs} +2 -2
- package/dist/{chunk-OEI62POE.mjs.map → chunk-6NV2RJSZ.mjs.map} +1 -1
- package/dist/{chunk-DNPQOJQW.mjs → chunk-CRK3RQ7C.mjs} +3 -3
- package/dist/{chunk-DBG42367.mjs → chunk-CVCIL6KH.mjs} +37 -14
- package/dist/chunk-CVCIL6KH.mjs.map +1 -0
- package/dist/{chunk-3UGGCJT5.mjs → chunk-HSCQGINR.mjs} +2 -2
- package/dist/{chunk-YSX4KDLV.mjs → chunk-VPEC2CWG.mjs} +42 -8
- package/dist/chunk-VPEC2CWG.mjs.map +1 -0
- package/dist/{chunk-3HIATXA4.mjs → chunk-XSUYR4Q3.mjs} +67 -25
- package/dist/chunk-XSUYR4Q3.mjs.map +1 -0
- package/dist/{chunk-3S7V7QHJ.mjs → chunk-Z73XASLT.mjs} +46 -19
- package/dist/chunk-Z73XASLT.mjs.map +1 -0
- package/dist/client/lifecycle.mjs +2 -2
- package/dist/{client-plugins-BtfLE4dW.d.mts → client-plugins-HizW0gLc.d.mts} +13 -1
- package/dist/{client-plugins-C4me5UPd.d.ts → client-plugins-w_b1wA8e.d.ts} +13 -1
- package/dist/client-plugins.cjs +1 -1
- package/dist/client-plugins.cjs.map +1 -1
- package/dist/client-plugins.d.mts +1 -1
- package/dist/client-plugins.d.ts +1 -1
- package/dist/client-plugins.mjs +2 -2
- package/dist/client.cjs +102 -37
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.mts +4 -4
- package/dist/client.d.ts +4 -4
- package/dist/client.mjs +4 -4
- package/dist/config.d.mts +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/index.cjs +186 -60
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +9 -9
- package/dist/index.d.ts +9 -9
- package/dist/index.mjs +7 -7
- package/dist/integrations.d.mts +1 -1
- package/dist/integrations.d.ts +1 -1
- package/dist/internal/build-runtime.cjs +85 -24
- package/dist/internal/build-runtime.cjs.map +1 -1
- package/dist/internal/build-runtime.d.mts +3 -3
- package/dist/internal/build-runtime.d.ts +3 -3
- package/dist/internal/build-runtime.mjs +3 -3
- package/dist/internal/client-runtime.cjs +1 -1
- package/dist/internal/client-runtime.cjs.map +1 -1
- package/dist/internal/client-runtime.mjs +2 -2
- package/dist/internal/config-runtime.d.mts +2 -2
- package/dist/internal/config-runtime.d.ts +2 -2
- package/dist/internal/product-telemetry-runtime.cjs +1 -1
- package/dist/internal/product-telemetry-runtime.cjs.map +1 -1
- package/dist/internal/product-telemetry-runtime.mjs +1 -1
- package/dist/internal/production-runtime.d.mts +5 -5
- package/dist/internal/production-runtime.d.ts +5 -5
- package/dist/{metadata-route-Bf4aVrYO.d.mts → metadata-route-CjF_sf9F.d.mts} +1 -1
- package/dist/{metadata-route-CUPYRgfT.d.ts → metadata-route-DkyJlQFD.d.ts} +1 -1
- package/dist/middleware.d.mts +3 -3
- package/dist/middleware.d.ts +3 -3
- package/dist/navigation.cjs +66 -24
- package/dist/navigation.cjs.map +1 -1
- package/dist/navigation.mjs +3 -3
- package/dist/plugin.cjs +40 -7
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.mts +1 -1
- package/dist/plugin.d.ts +1 -1
- package/dist/plugin.mjs +2 -2
- package/dist/{production-runtime-D5ECiSmc.d.mts → production-runtime-CDSs0Rwo.d.mts} +1 -1
- package/dist/{production-runtime-Cb29k5Oi.d.ts → production-runtime-CSPVu_3h.d.ts} +1 -1
- package/dist/query/client.cjs +9 -5
- package/dist/query/client.cjs.map +1 -1
- package/dist/query/client.mjs +1 -1
- package/dist/{render-plan-DZ0LA8wX.d.ts → render-plan-C62oFdVD.d.ts} +1 -1
- package/dist/{render-plan-HL0ChBbH.d.mts → render-plan-D3TuPEmY.d.mts} +1 -1
- package/dist/renderer-client.cjs +66 -24
- package/dist/renderer-client.cjs.map +1 -1
- package/dist/renderer-client.d.mts +3 -3
- package/dist/renderer-client.d.ts +3 -3
- package/dist/renderer-client.mjs +1 -1
- package/dist/{request-8__ppqcz.d.ts → request-C-ZYE89s.d.ts} +1 -1
- package/dist/{request-DAZMscB9.d.mts → request-DPMdCOtv.d.mts} +1 -1
- package/dist/request.d.mts +2 -2
- package/dist/request.d.ts +2 -2
- package/dist/routes.d.mts +1 -1
- package/dist/routes.d.ts +1 -1
- package/dist/server-plugins.d.mts +2 -2
- package/dist/server-plugins.d.ts +2 -2
- package/dist/server.cjs +40 -7
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.mts +7 -7
- package/dist/server.d.ts +7 -7
- package/dist/server.mjs +2 -2
- package/dist/{spa-router-DMKCWHT5.d.ts → spa-router-C7RwU8o-.d.ts} +6 -2
- package/dist/{spa-router-BM-OHflh.d.mts → spa-router-Cr39oWnX.d.mts} +6 -2
- package/dist/testing.d.mts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/{utils-B8t0bZ5X.d.ts → utils-B6Jk-ITz.d.ts} +1 -1
- package/dist/{utils-B7dij0CU.d.mts → utils-U4zuTiDB.d.mts} +1 -1
- package/dist/version.cjs +1 -1
- package/dist/version.cjs.map +1 -1
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +42 -7
- package/dist/vite.cjs.map +1 -1
- package/dist/vite.d.mts +1 -1
- package/dist/vite.d.ts +1 -1
- package/dist/vite.mjs +4 -2
- package/package.json +1 -1
- package/dist/chunk-3HIATXA4.mjs.map +0 -1
- package/dist/chunk-3S7V7QHJ.mjs.map +0 -1
- package/dist/chunk-DBG42367.mjs.map +0 -1
- package/dist/chunk-YSX4KDLV.mjs.map +0 -1
- /package/dist/{chunk-DNPQOJQW.mjs.map → chunk-CRK3RQ7C.mjs.map} +0 -0
- /package/dist/{chunk-3UGGCJT5.mjs.map → chunk-HSCQGINR.mjs.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/client/router.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState, type RefObject } from \"react\";\nimport { createFarmRouter, type FarmRouter, type FarmRouterRouteInput } from \"../router\";\nimport {\n getInstalledFarmSPARouter,\n getRouter as getSPARouter,\n readPageState,\n type FarmNavigationBlockerContext,\n type FarmNavigationState,\n} from \"./spa-router\";\nimport { notifyHistoryChange, subscribeHistoryChange } from \"./history-sync\";\nimport { getFarmI18nClientState } from \"../i18n/client-runtime\";\nimport { _resolveCurrentRequest } from \"../server/request-bridge\";\nimport { stripFarmLocaleFromPathname } from \"../i18n/routing\";\nimport {\n applyFarmBasePath,\n getFarmBasePath,\n normalizeFarmBasePath,\n stripFarmBasePath,\n} from \"../base-path\";\n\ninterface RouterState {\n pathname: string;\n searchParams: URLSearchParams;\n params: Record<string, string>;\n pageState: unknown;\n}\n\nexport interface UseRouterOptions {\n basePath?: string;\n routes?: FarmRouterRouteInput[];\n}\n\nexport interface UseBlockerOptions {\n when: boolean | ((context: FarmNavigationBlockerContext) => boolean);\n message?: string;\n shouldBlock?: (context: FarmNavigationBlockerContext) => boolean | Promise<boolean>;\n}\n\nexport interface UseBlockerReturn {\n active: boolean;\n}\n\n/**\n * Hook for accessing router state and navigation\n */\n/**\n * Imperative navigation for useRouter. Delegates to the installed SPA router\n * so blockers run before the URL changes, history state is written by the\n * router, and the action is labelled push/replace rather than pop. Without a\n * Farm router (embedded usage) the URL is written directly and announced on\n * the shared history channel, whose no-router fallback is the nuqs-style\n * synthetic popstate this code previously hand-rolled.\n */\nfunction navigateViaRouter(href: string, basePath: string, replace: boolean): void {\n if (typeof window === \"undefined\") return;\n\n const url = applyFarmBasePath(href, basePath);\n const spaRouter = getInstalledFarmSPARouter();\n if (spaRouter) {\n void spaRouter.navigate(url, { replace });\n return;\n }\n\n if (replace) {\n window.history.replaceState(null, \"\", url);\n } else {\n window.history.pushState(null, \"\", url);\n }\n notifyHistoryChange(\"url-search\");\n}\n\nexport function useRouter(options: UseRouterOptions = {}) {\n const basePath =\n options.basePath === undefined ? getFarmBasePath() : normalizeFarmBasePath(options.basePath);\n const routes = options.routes;\n const routeKey =\n routes?.map((route) => (typeof route === \"string\" ? route : route.path)).join(\"\\n\") || \"\";\n const routeMatcher = useMemo(\n () => (routeKey ? createFarmRouter(routeKey.split(\"\\n\")) : null),\n [routeKey],\n );\n const [state, setState] = useState<RouterState>(() => {\n return readRouterState(basePath, routeMatcher);\n });\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n\n const handlePopState = () => {\n setState(readRouterState(basePath, routeMatcher));\n };\n\n handlePopState();\n const unsubscribe = subscribeHistoryChange(handlePopState);\n return unsubscribe;\n }, [basePath, routeMatcher]);\n\n const push = (href: string) => {\n navigateViaRouter(href, basePath, false);\n };\n\n const replace = (href: string) => {\n navigateViaRouter(href, basePath, true);\n };\n\n const pushState = <TState>(pageState: TState, href?: string) => {\n if (typeof window === \"undefined\") return;\n getSPARouter().pushState(pageState, resolveClientHref(href, basePath));\n };\n\n const replaceState = <TState>(pageState: TState, href?: string) => {\n if (typeof window === \"undefined\") return;\n getSPARouter().replaceState(pageState, resolveClientHref(href, basePath));\n };\n\n const back = () => {\n if (typeof window !== \"undefined\") {\n window.history.back();\n }\n };\n\n const forward = () => {\n if (typeof window !== \"undefined\") {\n window.history.forward();\n }\n };\n\n return {\n ...state,\n push,\n replace,\n pushState,\n replaceState,\n back,\n forward,\n };\n}\n\nexport function usePageState<TState = unknown>(): TState | null {\n const [state, setState] = useState<TState | null>(() => readPageState<TState>());\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n\n const handlePopState = () => {\n setState(readPageState<TState>());\n };\n\n handlePopState();\n return subscribeHistoryChange(handlePopState);\n }, []);\n\n return state;\n}\n\nexport function useNavigation(): FarmNavigationState {\n const [state, setState] = useState<FarmNavigationState>(() =>\n getSPARouter().getNavigationState(),\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n return getSPARouter().subscribeNavigation(setState);\n }, []);\n\n return state;\n}\n\nexport function useBlocker(options: UseBlockerOptions): UseBlockerReturn {\n const optionsRef = useRef(options);\n optionsRef.current = options;\n const active = Boolean(options.when);\n\n useEffect(() => {\n if (typeof window === \"undefined\" || !active) {\n return;\n }\n\n return getSPARouter().addBlocker(async (context) => {\n const current = optionsRef.current;\n const when = typeof current.when === \"function\" ? current.when(context) : current.when;\n\n if (!when) return false;\n\n if (current.shouldBlock && !(await current.shouldBlock(context))) {\n return false;\n }\n\n if (current.message && typeof window.confirm === \"function\") {\n return !window.confirm(current.message);\n }\n\n return true;\n });\n }, [active]);\n\n return { active };\n}\n\nexport function useScrollRestoration<TElement extends HTMLElement = HTMLElement>(\n key: string,\n): RefObject<TElement | null> {\n const ref = useRef<TElement>(null);\n\n useEffect(() => {\n const element = ref.current;\n if (!element) return;\n return getSPARouter().registerScrollElement(key, element);\n }, [key]);\n\n return ref;\n}\n\nfunction readRouterState(basePath: string, routeMatcher: FarmRouter | null): RouterState {\n const url = readCurrentUrl();\n if (!url) {\n return {\n pathname: \"/\",\n searchParams: new URLSearchParams(),\n params: {},\n pageState: null,\n };\n }\n\n const pathname = normalizeClientPathname(url.pathname, basePath);\n const i18n = getFarmI18nClientState();\n const routePathname = i18n ? stripFarmLocaleFromPathname(pathname, i18n) : pathname;\n return {\n pathname,\n searchParams: url.searchParams,\n params: routeMatcher?.match(routePathname)?.params || {},\n pageState: typeof window === \"undefined\" ? null : readPageState(),\n };\n}\n\n/**\n * The URL being rendered, on either side of hydration.\n *\n * On the server this came back as `/` with no search params, so a component\n * reading the path or the query string rendered one thing on the server and\n * another in the browser, which React reports as a hydration mismatch and\n * leaves the route without useful server rendered markup.\n */\nfunction readCurrentUrl(): URL | undefined {\n if (typeof window !== \"undefined\") {\n try {\n return new URL(window.location.href);\n } catch {\n return undefined;\n }\n }\n\n const request = _resolveCurrentRequest();\n if (!request) return undefined;\n try {\n return new URL(request.url);\n } catch {\n return undefined;\n }\n}\n\nfunction normalizeClientPathname(pathname: string, basePath: string) {\n return stripFarmBasePath(pathname, basePath);\n}\n\nfunction resolveClientHref(href: string | undefined, basePath: string): string | undefined {\n if (!href) return undefined;\n return applyFarmBasePath(href, basePath);\n}\n"],"mappings":"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","names":[]}
|