403Webshell
Server IP : 159.203.156.69  /  Your IP : 216.73.217.172
Web Server : nginx/1.24.0
System : Linux main-ubuntu 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64
User : root ( 0)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/tanviranik.com/node_modules/vinext/dist/shims/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/tanviranik.com/node_modules/vinext/dist/shims/link.js.map
{"version":3,"file":"link.js","names":[],"sources":["../../src/shims/link.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * next/link shim\n *\n * Renders an <a> tag with client-side navigation support.\n * On click, prevents full page reload and triggers client-side\n * page swap via the router's navigation system.\n */\nimport React, {\n  forwardRef,\n  useRef,\n  useEffect,\n  useCallback,\n  useContext,\n  createContext,\n  useState,\n  type AnchorHTMLAttributes,\n  type MouseEvent,\n  type TouchEvent,\n} from \"react\";\n// Import shared RSC prefetch utilities from navigation shim (relative path\n// so this resolves both via the Vite plugin and in direct vitest imports)\nimport {\n  getCurrentInterceptionContext,\n  getPrefetchedUrls,\n  getMountedSlotsHeader,\n  navigateClientSide,\n  prefetchRscResponse,\n} from \"./navigation.js\";\nimport { AppElementsWire } from \"../server/app-elements.js\";\nimport { createRscRequestHeaders, createRscRequestUrl } from \"../server/app-rsc-cache-busting.js\";\nimport { VINEXT_MOUNTED_SLOTS_HEADER } from \"../server/headers.js\";\nimport { isDangerousScheme } from \"./url-safety.js\";\nimport { canLinkPrefetch, getLinkPrefetchHref } from \"./link-prefetch.js\";\nimport {\n  resolveRelativeHref,\n  toBrowserNavigationHref,\n  toSameOriginAppPath,\n  withBasePath,\n} from \"./url-utils.js\";\nimport { appendSearchParamsToUrl, type UrlQuery, urlQueryToSearchParams } from \"../utils/query.js\";\nimport { addLocalePrefix, getDomainLocaleUrl, type DomainLocale } from \"../utils/domain-locale.js\";\nimport { getI18nContext } from \"./i18n-context.js\";\nimport type { VinextLinkPrefetchRoute, VinextNextData } from \"../client/vinext-next-data.js\";\nimport { createRouteTrieCache, matchRouteWithTrie } from \"../routing/route-matching.js\";\nimport { stripBasePath } from \"../utils/base-path.js\";\n\ntype NavigateEvent = {\n  url: URL;\n  /** Call to prevent the Link's default navigation (e.g. for View Transitions). */\n  preventDefault(): void;\n  /** Whether preventDefault() has been called. */\n  defaultPrevented: boolean;\n};\n\ntype LinkProps = {\n  href: string | { pathname?: string; query?: UrlQuery };\n  /** URL displayed in the browser (when href is a route pattern like /user/[id]) */\n  as?: string;\n  /** Replace the current history entry instead of pushing */\n  replace?: boolean;\n  /** Prefetch the page in the background (App Router default: auto, Pages Router default: true) */\n  prefetch?: boolean | \"auto\" | null;\n  /** Whether to pass the href to the child element */\n  passHref?: boolean;\n  /** Scroll to top on navigation (default: true) */\n  scroll?: boolean;\n  /** Locale for i18n (used for locale-prefixed URLs) */\n  locale?: string | false;\n  /** Called before navigation happens (Next.js 16). Return value is ignored. */\n  onNavigate?: (event: NavigateEvent) => void;\n  children?: React.ReactNode;\n} & Omit<AnchorHTMLAttributes<HTMLAnchorElement>, \"href\">;\n\ntype LinkPrefetchMode = \"disabled\" | \"auto\" | \"full\";\n\ndeclare global {\n  // Window is an ambient interface from lib.dom; interface merging is required\n  // for this global browser hook.\n  // oxlint-disable-next-line typescript-eslint/consistent-type-definitions\n  interface Window {\n    __VINEXT_LINK_PREFETCH_ROUTES__?: VinextLinkPrefetchRoute[];\n  }\n}\n\n// ---------------------------------------------------------------------------\n// useLinkStatus — reports the pending state of a parent <Link> navigation\n// ---------------------------------------------------------------------------\n\ntype LinkStatusContextValue = {\n  pending: boolean;\n};\n\nconst LinkStatusContext = createContext<LinkStatusContextValue>({ pending: false });\n\n/**\n * useLinkStatus returns the pending state of the enclosing <Link>.\n * In Next.js, this is used to show loading indicators while a\n * prefetch-triggered navigation is in progress.\n */\nexport function useLinkStatus(): LinkStatusContextValue {\n  return useContext(LinkStatusContext);\n}\n\n/** basePath from next.config.js, injected by the plugin at build time */\nconst __basePath: string = process.env.__NEXT_ROUTER_BASEPATH ?? \"\";\nconst linkPrefetchRouteTrieCache = createRouteTrieCache<VinextLinkPrefetchRoute>();\n\nfunction resolveHref(href: LinkProps[\"href\"]): string {\n  if (typeof href === \"string\") return href;\n  let url = href.pathname ?? \"/\";\n  if (href.query) {\n    const params = urlQueryToSearchParams(href.query);\n    url = appendSearchParamsToUrl(url, params);\n  }\n  return url;\n}\n\nexport function resolveLinkPrefetchMode(\n  prefetchProp: LinkProps[\"prefetch\"],\n  isDangerous: boolean,\n): LinkPrefetchMode {\n  if (isDangerous || prefetchProp === false) return \"disabled\";\n  if (prefetchProp === true) return \"full\";\n  return \"auto\";\n}\n\nfunction toSameOriginRouteHref(href: string): string | null {\n  if (typeof window === \"undefined\") return null;\n\n  let url: URL;\n  try {\n    url = new URL(href, window.location.href);\n  } catch {\n    return null;\n  }\n\n  if (url.origin !== window.location.origin) return null;\n\n  return `${stripBasePath(url.pathname, __basePath)}${url.search}`;\n}\n\nexport function canAutoPrefetchFullAppRoute(href: string): boolean {\n  if (typeof window === \"undefined\") return false;\n\n  const routes = window.__VINEXT_LINK_PREFETCH_ROUTES__;\n  if (!routes) return false;\n\n  const routeHref = toSameOriginRouteHref(href);\n  if (routeHref === null) return false;\n\n  const match = matchRouteWithTrie(routeHref, routes, linkPrefetchRouteTrieCache);\n  if (!match) return false;\n\n  return !match.route.isDynamic;\n}\n\n// ---------------------------------------------------------------------------\n// Prefetching infrastructure\n// ---------------------------------------------------------------------------\n\n/**\n * Prefetch a URL for faster navigation.\n *\n * For App Router (RSC): fetches the .rsc payload in the background and\n * stores it in an in-memory cache for instant use during navigation.\n * For Pages Router: injects a <link rel=\"prefetch\"> for the page module.\n *\n * Uses `requestIdleCallback` (or `setTimeout` fallback) to avoid blocking\n * the main thread during initial page load.\n */\nfunction prefetchUrl(href: string, mode: LinkPrefetchMode, priority: \"low\" | \"high\" = \"low\"): void {\n  if (typeof window === \"undefined\") return;\n\n  const prefetchHref = getLinkPrefetchHref({\n    href,\n    basePath: __basePath,\n    currentOrigin: window.location.origin,\n  });\n  if (prefetchHref == null) return;\n\n  const fullHref = toBrowserNavigationHref(prefetchHref, window.location.href, __basePath);\n\n  const schedule = window.requestIdleCallback ?? ((fn: () => void) => setTimeout(fn, 100));\n\n  schedule(() => {\n    void (async () => {\n      if (typeof window.__VINEXT_RSC_NAVIGATE__ === \"function\") {\n        // `auto`/`null`/undefined should not behave like `prefetch={true}` for\n        // App Router dynamic routes. Next.js may prefetch a loading-boundary\n        // shell for dynamic routes, but vinext's current client cache stores\n        // complete RSC responses only; keep automatic full prefetch to route\n        // shapes that are statically known safe until segment prefetch exists.\n        if (mode === \"auto\" && !canAutoPrefetchFullAppRoute(prefetchHref)) return;\n\n        const interceptionContext = getCurrentInterceptionContext();\n        const mountedSlotsHeader = getMountedSlotsHeader();\n        const headers = createRscRequestHeaders({ interceptionContext });\n        if (mountedSlotsHeader) {\n          headers.set(VINEXT_MOUNTED_SLOTS_HEADER, mountedSlotsHeader);\n        }\n        // Distinguish the same visible URL when it is prefetched from different\n        // request contexts such as /feed vs /gallery or different mounted slots.\n        const rscUrl = await createRscRequestUrl(fullHref, headers);\n        const cacheKey = AppElementsWire.encodeCacheKey(rscUrl, interceptionContext);\n        const prefetched = getPrefetchedUrls();\n        if (prefetched.has(cacheKey)) return;\n        prefetched.add(cacheKey);\n        prefetchRscResponse(\n          rscUrl,\n          fetch(rscUrl, {\n            headers,\n            credentials: \"include\",\n            priority,\n            // @ts-expect-error — purpose is a valid fetch option in some browsers\n            purpose: \"prefetch\",\n          }),\n          interceptionContext,\n          mountedSlotsHeader,\n        );\n      } else if ((window.__NEXT_DATA__ as VinextNextData | undefined)?.__vinext?.pageModuleUrl) {\n        // Pages Router: inject a prefetch link for the target page module\n        // We can't easily resolve the target page's module URL from the Link,\n        // so we create a <link rel=\"prefetch\"> for the HTML page which helps\n        // the browser's preload scanner.\n        const link = document.createElement(\"link\");\n        link.rel = \"prefetch\";\n        link.href = fullHref;\n        link.as = \"document\";\n        document.head.appendChild(link);\n      }\n    })().catch((error) => {\n      console.error(\"[vinext] RSC prefetch setup error:\", error);\n    });\n  });\n}\n\n/**\n * Shared IntersectionObserver for viewport-based prefetching.\n * All Link elements use the same observer to minimize resource usage.\n */\nlet sharedObserver: IntersectionObserver | null = null;\nconst observerCallbacks = new WeakMap<Element, () => void>();\n\nfunction getSharedObserver(): IntersectionObserver | null {\n  if (typeof window === \"undefined\" || typeof IntersectionObserver === \"undefined\") return null;\n  if (sharedObserver) return sharedObserver;\n\n  sharedObserver = new IntersectionObserver(\n    (entries) => {\n      for (const entry of entries) {\n        if (entry.isIntersecting) {\n          const callback = observerCallbacks.get(entry.target);\n          if (callback) {\n            callback();\n            // Unobserve after prefetching — only prefetch once\n            sharedObserver?.unobserve(entry.target);\n            observerCallbacks.delete(entry.target);\n          }\n        }\n      }\n    },\n    {\n      // Start prefetching when the link is within 250px of the viewport.\n      // This gives the browser a head start before the user scrolls to it.\n      rootMargin: \"250px\",\n    },\n  );\n\n  return sharedObserver;\n}\n\nfunction getDefaultLocale(): string | undefined {\n  if (typeof window !== \"undefined\") {\n    return window.__VINEXT_DEFAULT_LOCALE__;\n  }\n  return getI18nContext()?.defaultLocale;\n}\n\nfunction getDomainLocales(): readonly DomainLocale[] | undefined {\n  if (typeof window !== \"undefined\") {\n    return (window.__NEXT_DATA__ as VinextNextData | undefined)?.domainLocales;\n  }\n  return getI18nContext()?.domainLocales;\n}\n\nfunction getCurrentHostname(): string | undefined {\n  if (typeof window !== \"undefined\") return window.location.hostname;\n  return getI18nContext()?.hostname;\n}\n\nfunction getDomainLocaleHref(href: string, locale: string): string | undefined {\n  // Only cross-domain locale switches need a special absolute URL here.\n  // Same-domain cases fall back to the standard locale-prefix logic below.\n  return getDomainLocaleUrl(href, locale, {\n    basePath: __basePath,\n    currentHostname: getCurrentHostname(),\n    domainItems: getDomainLocales(),\n  });\n}\n\n/**\n * Apply locale prefix to a URL path based on the locale prop.\n * - locale=\"fr\" → prepend /fr (unless it already has a locale prefix)\n * - locale={false} → use the href as-is (no locale prefix, link to default)\n * - locale=undefined → use current locale (href as-is in most cases)\n */\nfunction applyLocaleToHref(href: string, locale: string | false | undefined): string {\n  if (locale === false) {\n    // Explicit false: no locale prefix\n    return href;\n  }\n\n  if (locale === undefined) {\n    // No locale prop: keep current behavior (href as-is)\n    return href;\n  }\n\n  // Absolute and protocol-relative URLs must not be prefixed — locale\n  // only applies to local paths.\n  if (href.startsWith(\"http://\") || href.startsWith(\"https://\") || href.startsWith(\"//\")) {\n    return href;\n  }\n\n  const domainLocaleHref = getDomainLocaleHref(href, locale);\n  if (domainLocaleHref) {\n    return domainLocaleHref;\n  }\n\n  return addLocalePrefix(href, locale, getDefaultLocale() ?? \"\");\n}\n\nconst Link = forwardRef<HTMLAnchorElement, LinkProps>(function Link(\n  {\n    href,\n    as,\n    replace = false,\n    prefetch: prefetchProp,\n    scroll = true,\n    children,\n    onClick,\n    onMouseEnter,\n    onTouchStart,\n    onNavigate,\n    ...rest\n  },\n  forwardedRef,\n) {\n  // Extract locale from rest props\n  const { locale, ...restWithoutLocale } = rest;\n\n  // If `as` is provided, use it as the actual URL (legacy Next.js pattern\n  // where href is a route pattern like \"/user/[id]\" and as is \"/user/1\")\n  const resolvedHref = as ?? resolveHref(href);\n\n  const isDangerous = typeof resolvedHref === \"string\" && isDangerousScheme(resolvedHref);\n\n  // Apply locale prefix if specified (safe even for dangerous hrefs since we\n  // won't use the result when isDangerous is true)\n  const localizedHref = applyLocaleToHref(isDangerous ? \"/\" : resolvedHref, locale);\n  // Full href with basePath for browser URLs and fetches\n  const fullHref = withBasePath(localizedHref, __basePath);\n\n  // Track pending state for useLinkStatus()\n  const [pending, setPending] = useState(false);\n  const mountedRef = useRef(true);\n  useEffect(() => {\n    mountedRef.current = true;\n    return () => {\n      mountedRef.current = false;\n    };\n  }, []);\n\n  // Prefetching: observe the element when it enters the viewport.\n  // In App Router, null/undefined/\"auto\" is automatic prefetch and true opts\n  // into a full RSC prefetch, matching Next.js's public prefetch contract.\n  const internalRef = useRef<HTMLAnchorElement | null>(null);\n  const prefetchMode = resolveLinkPrefetchMode(prefetchProp, isDangerous);\n  const shouldPrefetch = canLinkPrefetch({\n    nodeEnv: process.env.NODE_ENV,\n    prefetch: prefetchProp,\n    isDangerous,\n  });\n\n  const setRefs = useCallback(\n    (node: HTMLAnchorElement | null) => {\n      internalRef.current = node;\n      if (typeof forwardedRef === \"function\") forwardedRef(node);\n      else if (forwardedRef)\n        (forwardedRef as React.MutableRefObject<HTMLAnchorElement | null>).current = node;\n    },\n    [forwardedRef],\n  );\n\n  useEffect(() => {\n    if (!shouldPrefetch || typeof window === \"undefined\") return;\n    const node = internalRef.current;\n    if (!node) return;\n\n    const hrefToPrefetch = getLinkPrefetchHref({\n      href: localizedHref,\n      basePath: __basePath,\n      currentOrigin: window.location.origin,\n    });\n    if (hrefToPrefetch == null) return;\n\n    const observer = getSharedObserver();\n    if (!observer) return;\n\n    observerCallbacks.set(node, () => prefetchUrl(hrefToPrefetch, prefetchMode, \"low\"));\n    observer.observe(node);\n\n    return () => {\n      observer.unobserve(node);\n      observerCallbacks.delete(node);\n    };\n  }, [shouldPrefetch, prefetchMode, localizedHref]);\n\n  const prefetchOnIntent = useCallback(() => {\n    if (!shouldPrefetch) return;\n    prefetchUrl(localizedHref, prefetchMode, \"high\");\n  }, [shouldPrefetch, prefetchMode, localizedHref]);\n\n  const handleMouseEnter = useCallback(\n    (e: MouseEvent<HTMLAnchorElement>) => {\n      onMouseEnter?.(e);\n      prefetchOnIntent();\n    },\n    [onMouseEnter, prefetchOnIntent],\n  );\n\n  const handleTouchStart = useCallback(\n    (e: TouchEvent<HTMLAnchorElement>) => {\n      onTouchStart?.(e);\n      prefetchOnIntent();\n    },\n    [onTouchStart, prefetchOnIntent],\n  );\n\n  const handleClick = async (e: MouseEvent<HTMLAnchorElement>) => {\n    if (onClick) onClick(e);\n    if (e.defaultPrevented) return;\n\n    // Only intercept left clicks without modifiers (standard link behavior)\n    if (e.button !== 0 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) {\n      return;\n    }\n\n    // Don't intercept links with target (e.g. target=\"_blank\")\n    if (e.currentTarget.target && e.currentTarget.target !== \"_self\") {\n      return;\n    }\n\n    // External links: let the browser handle it.\n    // Same-origin absolute URLs (e.g. http://localhost:3000/about) are\n    // normalized to local paths so they get client-side navigation.\n    let navigateHref = localizedHref;\n    if (\n      resolvedHref.startsWith(\"http://\") ||\n      resolvedHref.startsWith(\"https://\") ||\n      resolvedHref.startsWith(\"//\")\n    ) {\n      const localPath = toSameOriginAppPath(resolvedHref, __basePath);\n      if (localPath == null) return; // truly external\n      navigateHref = localPath;\n    }\n\n    e.preventDefault();\n\n    // Resolve relative hrefs (#hash, ?query) against the current URL once so\n    // onNavigate and the actual navigation target stay in sync.\n    const absoluteHref = resolveRelativeHref(navigateHref, window.location.href, __basePath);\n    const absoluteFullHref = toBrowserNavigationHref(\n      navigateHref,\n      window.location.href,\n      __basePath,\n    );\n\n    // Call onNavigate callback if provided (Next.js 16 View Transitions support)\n    if (onNavigate) {\n      try {\n        const navUrl = new URL(absoluteFullHref, window.location.origin);\n        let prevented = false;\n        const navEvent: NavigateEvent = {\n          url: navUrl,\n          preventDefault() {\n            prevented = true;\n          },\n          get defaultPrevented() {\n            return prevented;\n          },\n        };\n        onNavigate(navEvent);\n        // If the callback called preventDefault(), skip Link's default navigation.\n        // The callback is responsible for its own navigation (e.g. via View Transitions API).\n        if (navEvent.defaultPrevented) {\n          return;\n        }\n      } catch {\n        // Ignore URL parsing errors for relative/hash hrefs\n      }\n    }\n\n    // App Router: delegate to navigateClientSide which handles scroll save,\n    // hash-only changes, RSC fetch, and two-phase URL commit.\n    if (typeof window.__VINEXT_RSC_NAVIGATE__ === \"function\") {\n      setPending(true);\n      React.startTransition(() => {\n        void navigateClientSide(navigateHref, replace ? \"replace\" : \"push\", scroll, true).finally(\n          () => {\n            if (mountedRef.current) setPending(false);\n          },\n        );\n      });\n      return;\n    } else {\n      // Next.js only consumes onRouterTransitionStart in the App Router.\n      // Pages Router still executes instrumentation-client side effects\n      // during startup, but it does not invoke the named export on navigation.\n      // Pages Router: use the Router singleton\n      try {\n        const routerModule = await import(\"next/router\");\n        // oxlint-disable-next-line @typescript-eslint/no-explicit-any -- vinext's Router shim accepts (url, as, options)\n        const Router = routerModule.default as any;\n        if (replace) {\n          await Router.replace(absoluteHref, undefined, { scroll });\n        } else {\n          await Router.push(absoluteHref, undefined, { scroll });\n        }\n      } catch {\n        // Fallback to hard navigation if router fails\n        if (replace) {\n          window.history.replaceState({}, \"\", absoluteFullHref);\n        } else {\n          window.history.pushState({}, \"\", absoluteFullHref);\n        }\n        window.dispatchEvent(new PopStateEvent(\"popstate\"));\n      }\n    }\n  };\n\n  // Remove props that shouldn't be on <a>\n  const { passHref: _p, ...anchorProps } = restWithoutLocale;\n\n  const linkStatusValue = React.useMemo(() => ({ pending }), [pending]);\n\n  // Block dangerous URI schemes (javascript:, data:, vbscript:).\n  // Render an inert <a> without href to prevent XSS while preserving\n  // styling and attributes like className, id, aria-*.\n  // This check is placed after all hooks to satisfy the Rules of Hooks.\n  if (isDangerous) {\n    if (process.env.NODE_ENV !== \"production\") {\n      console.warn(`<Link> blocked dangerous href: ${resolvedHref}`);\n    }\n    return (\n      <a {...anchorProps} onMouseEnter={handleMouseEnter} onTouchStart={handleTouchStart}>\n        {children}\n      </a>\n    );\n  }\n\n  return (\n    <LinkStatusContext.Provider value={linkStatusValue}>\n      <a\n        ref={setRefs}\n        href={fullHref}\n        onClick={(event) => {\n          void handleClick(event);\n        }}\n        onMouseEnter={handleMouseEnter}\n        onTouchStart={handleTouchStart}\n        {...anchorProps}\n      >\n        {children}\n      </a>\n    </LinkStatusContext.Provider>\n  );\n});\n\nexport default Link;\n"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit