[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-vercel-enable-i18n":3,"mdc-ih3o2a-key":36,"related-repo-vercel-enable-i18n":7019,"related-org-vercel-enable-i18n":7120},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":31,"sourceUrl":34,"mdContent":35},"enable-i18n","enable multi-language support with next-intl","Enable next-intl-based i18n in the shop template — locale-prefixed URLs, per-locale message catalogs, and a locale switcher. Use when the user wants \"locale URLs\", \"multi-language\", or \"i18n\" without Shopify Markets integration. For full Shopify Markets multi-region commerce (region-aware pricing, inventory, payments), use `enable-shopify-markets` instead — this skill is the routing\u002Fi18n layer only.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"vercel","Vercel","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fvercel.png",[12,14,17,19,22],{"name":9,"slug":8,"type":13},"tag",{"name":15,"slug":16,"type":13},"Next.js","next-js",{"name":18,"slug":18,"type":13},"i18n",{"name":20,"slug":21,"type":13},"Web Development","web-development",{"name":23,"slug":24,"type":13},"Frontend","frontend",32,"https:\u002F\u002Fgithub.com\u002Fvercel\u002Fshop","2026-07-30T05:31:22.633341",null,9,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"vercel\u002Fshop","https:\u002F\u002Fgithub.com\u002Fvercel\u002Fshop\u002Ftree\u002FHEAD\u002Fpackages\u002Fplugin\u002Fskills\u002Fenable-i18n","---\nname: enable-i18n\ndescription: >\n  Enable next-intl-based i18n in the shop template — locale-prefixed URLs,\n  per-locale message catalogs, and a locale switcher. Use when the user wants\n  \"locale URLs\", \"multi-language\", or \"i18n\" without Shopify Markets\n  integration. For full Shopify Markets multi-region commerce (region-aware\n  pricing, inventory, payments), use `enable-shopify-markets` instead — this\n  skill is the routing\u002Fi18n layer only.\n---\n\n# Enable i18n (next-intl, no Markets)\n\nWire next-intl into the template so the storefront serves locale-prefixed URLs (`\u002Fen-US\u002Fproducts\u002Ffoo`), loads per-locale message catalogs, and exposes a locale switcher. The template ships single-locale by default with clean URLs (`\u002Fproducts\u002Ffoo`) — this skill restores the i18n machinery.\n\n> **Use `enable-shopify-markets` instead** if you want region-aware pricing\u002Finventory\u002Fpayments. That skill builds on the same routing layer plus Markets-specific operations. If you only want URL prefixing and translated copy, this skill is the right one.\n\n## Source of truth: `lib\u002Fi18n\u002Findex.ts`\n\nThe locale list lives in `lib\u002Fi18n\u002Findex.ts` as `locales` and `enabledLocales`. **Always read those at the start of the skill** — don't hardcode a list. Adding new locales means editing that file plus the message loaders\u002Fcatalogs; everything downstream (`routing`, sitemap, alternates, switcher) reads from it. Do not add a locale-to-currency map; commerce currency comes from Shopify responses when Markets is enabled.\n\n```ts\n\u002F\u002F lib\u002Fi18n\u002Findex.ts\nexport const locales = [\"en-US\", \"en-GB\", \"de-DE\", \"fr-FR\"] as const;\nexport const defaultLocale: Locale = \"en-US\";\nexport const enabledLocales: readonly Locale[] = locales;\n```\n\n## What this skill turns on\n\n1. `lib\u002Fi18n\u002Frouting.ts` and `lib\u002Fi18n\u002Fnavigation.ts` (next-intl)\n2. Route segment `app\u002F[locale]\u002F` containing every page\n3. `proxy.ts` middleware running `next-intl\u002Fmiddleware`\n4. `lib\u002Fparams.ts` `getLocale()` reading from `next\u002Froot-params`\n5. `lib\u002Fi18n\u002Frequest.ts` loading messages by resolved locale\n6. Locale-prefixed canonicals + hreflang alternates in `lib\u002Fseo.ts`\n7. Sitemap entries per locale\n8. `next.config.ts` rewrites\u002Fredirects on `\u002F:locale\u002F*` sources\n9. `app\u002F(unlocalized)\u002Fpage.tsx` fallback redirect to default locale\n10. `generateStaticParams` on the root layout\n11. (If `enable-shopify-menus` already ran) Re-enable `LocaleCurrencySelector` in the megamenu\n\n## Cache Components compatibility — read this first\n\nThe template runs with `cacheComponents: true` (Next.js 16). That changes a few things this skill needs to handle correctly. Skipping any of these will produce build errors that look unrelated:\n\n### A. There must be no `app\u002Flayout.tsx` above `app\u002F[locale]\u002F`\n\nFor `[locale]` to be recognized as a root param, the dynamic segment must be the root layout. After Step 2, the file at `app\u002Flayout.tsx` should be gone (moved into `app\u002F[locale]\u002Flayout.tsx`). If both exist, `rootParams.locale()` returns `undefined`.\n\n### B. `setRequestLocale` is not used\n\nnext-intl docs sometimes show `setRequestLocale(locale)` calls in layouts\u002Fpages. **Don't add them under cacheComponents.** That helper writes to a request-scoped store and forces dynamic rendering — it defeats the cache. The rootParams + request-config pattern below makes it unnecessary because the resolved locale is already a cache key.\n\n### C. Don't swap `next\u002Flink` to next-intl's `\u003CLink>`\n\nThe straightforward instinct is to replace every `import Link from \"next\u002Flink\"` with `import { Link } from \"@\u002Flib\u002Fi18n\u002Fnavigation\"`. **Don't.** next-intl's Link reads request context (locale) on render; in a server-component tree under cacheComponents, that triggers:\n\n```\nError: Route \"\u002F[locale]\u002F...\" accessed [...] which is not defined in the `unstable_samples` of `instant`.\n```\n\nor a generic \"blocking route\" prerender failure.\n\n**Do this instead:** keep `next\u002Flink` and let `proxy.ts` middleware redirect unprefixed paths (`\u002Fproducts\u002Ffoo` → `\u002Fen-US\u002Fproducts\u002Ffoo`). Internal links work; there's a one-time middleware redirect on click for unprefixed hrefs. Trade a few redirects for a clean prerender.\n\nIf you must locale-prefix a programmatic URL (server actions, `redirect()`, `permanentRedirect()`), build the path yourself: `` `\u002F${await getLocale()}\u002Faccount\u002Flogin` ``.\n\n### D. `instant` samples need `locale` in `params`\n\nAny route that exports `instant` (currently: products `[handle]`, collections `[handle]`, search) needs `locale` added to every sample, or the build fails:\n\n```\nError: Route \"\u002F[locale]\u002Fproducts\u002F[handle]\" accessed root param \"locale\"\n       which is not defined in the `unstable_samples` of `instant`.\n```\n\nFix:\n\n```ts\nexport const instant = {\n  unstable_samples: [\n    {\n      params: { locale: \"en-US\", handle: \"__placeholder__\" }, \u002F\u002F ← add locale\n      searchParams: { variant: \"1\" },\n      cookies: [{ name: \"shopify_cartId\", value: null }],\n    },\n  ],\n};\n```\n\n### E. `instant` samples need `headers` declarations if any layout-level server component reads `headers()`\n\nThis is easy to forget. If you (or a downstream skill) adds a server component to the layout that calls `headers()` — e.g. a \"Shipping to {postal}\" bar reading `x-vercel-ip-postal-code` — every `instant` sample in the app must declare the headers it might access:\n\n```ts\nunstable_samples: [\n  {\n    params: { locale: \"en-US\", handle: \"__placeholder__\" },\n    searchParams: { variant: \"1\" },\n    cookies: [{ name: \"shopify_cartId\", value: null }],\n    headers: [[\"x-vercel-ip-postal-code\", null]], \u002F\u002F ← add this\n  },\n],\n```\n\n`null` means \"header may be absent.\" If you forget, the build error is explicit:\n\n```\nError: Route \"...\" accessed header \"x-vercel-ip-postal-code\" which is not\n       defined in the `unstable_samples` of `instant`. Add it to the\n       sample's `headers` array, or `[\"...\", null]` if it should be absent.\n```\n\n### F. `redirect()` from next-intl doesn't return `never`\n\n```ts\n\u002F\u002F BREAKS: TS doesn't narrow `session` after redirect\nimport { redirect } from \"@\u002Flib\u002Fi18n\u002Fnavigation\";\nif (!session) redirect({ href: \"\u002Faccount\u002Flogin\", locale });\nreturn session; \u002F\u002F type error: session is CustomerSession | null\n```\n\nnext-intl's `redirect` is typed to return `void`, so TypeScript doesn't treat it as control-flow-ending. Use `next\u002Fnavigation`'s `redirect` (which returns `never`) and prefix the locale yourself:\n\n```ts\nimport { redirect } from \"next\u002Fnavigation\";\nimport { getLocale } from \"@\u002Flib\u002Fparams\";\n\nif (!session) redirect(`\u002F${await getLocale()}\u002Faccount\u002Flogin`);\nreturn session; \u002F\u002F OK, narrowed\n```\n\n## Step-by-step\n\n### Step 1: Routing config\n\nCreate `lib\u002Fi18n\u002Frouting.ts`:\n\n```ts\nimport { defineRouting } from \"next-intl\u002Frouting\";\nimport { defaultLocale, enabledLocales } from \".\";\n\nexport const routing = defineRouting({\n  locales: enabledLocales, \u002F\u002F pulled from lib\u002Fi18n\u002Findex.ts — never hardcode\n  defaultLocale,\n  localePrefix: \"always\",\n});\n```\n\nCreate `lib\u002Fi18n\u002Fnavigation.ts`:\n\n```ts\nimport { createNavigation } from \"next-intl\u002Fnavigation\";\nimport { routing } from \".\u002Frouting\";\n\nexport const { Link, redirect, usePathname, useRouter } = createNavigation(routing);\n```\n\n> Per \"Cache Components compatibility C\" above, `Link` here is mostly used by the locale switcher \u002F programmatic routing in client components — not as a wholesale replacement for `next\u002Flink`.\n\n### Step 2: Move routes under `app\u002F[locale]\u002F`\n\nMove every route file from `app\u002F` into `app\u002F[locale]\u002F`:\n\n- `app\u002Flayout.tsx` → `app\u002F[locale]\u002Flayout.tsx` (becomes the root layout for the locale segment). **Delete the original `app\u002Flayout.tsx` after the move** — see compatibility A above; both files cannot coexist.\n- `app\u002Fpage.tsx`, `app\u002Ferror.tsx`, `app\u002Fnot-found.tsx` → `app\u002F[locale]\u002F...`\n- `app\u002Faccount\u002F`, `app\u002Fcart\u002F`, `app\u002Fcollections\u002F`, `app\u002Fpages\u002F`, `app\u002Fpolicies\u002F`, `app\u002Fproducts\u002F`, `app\u002Fsearch\u002F` → `app\u002F[locale]\u002F...`\n\n**Stay at `app\u002F`:** `api\u002F`, `sitemap.xml\u002F`, `sitemap\u002F`, `robots.ts`, `global-error.tsx`, `globals.css`, `favicon.ico`.\n\nIn the moved layout, fix `import \".\u002Fglobals.css\"` → `import \"..\u002Fglobals.css\"`.\n\nUpdate every `PageProps\u003C\"\u002Ffoo\">` and `LayoutProps\u003C\"\u002Ffoo\">` generic to include the locale segment: `PageProps\u003C\"\u002F[locale]\u002Fproducts\u002F[handle]\">`, `LayoutProps\u003C\"\u002F[locale]\">`, etc.\n\n### Step 3: `lib\u002Fparams.ts` reads from root params\n\n```ts\nimport { notFound } from \"next\u002Fnavigation\";\nimport { locale as rootLocale } from \"next\u002Froot-params\";\nimport { type Locale, locales } from \".\u002Fi18n\";\n\nexport async function getLocale(): Promise\u003CLocale> {\n  const current = await rootLocale();\n  if (!current || !locales.includes(current as Locale)) notFound();\n  return current as Locale;\n}\n```\n\n### Step 4: `lib\u002Fi18n\u002Frequest.ts` loads messages by resolved locale\n\n```ts\nimport { hasLocale } from \"next-intl\";\nimport { getRequestConfig } from \"next-intl\u002Fserver\";\nimport { getLocale } from \"..\u002Fparams\";\nimport type enMessages from \".\u002Fmessages\u002Fen.json\";\nimport { routing } from \".\u002Frouting\";\n\nconst messageLoaders: Record\u003Cstring, () => Promise\u003C{ default: typeof enMessages }>> = {\n  \"en-US\": () => import(\".\u002Fmessages\u002Fen.json\"),\n  \u002F\u002F Add per-locale loaders as you ship message files. Missing locales fall\n  \u002F\u002F back to the default locale loader.\n};\n\n\u002F\u002F We intentionally do NOT destructure `{ locale }` from the callback args.\n\u002F\u002F next-intl populates that arg from the `x-next-intl-locale` request header,\n\u002F\u002F and reading request headers from inside a cached tree forces the route\n\u002F\u002F dynamic — every `instant` sample then needs an explicit\n\u002F\u002F `headers: [[\"x-next-intl-locale\", null]]` declaration. Going straight to\n\u002F\u002F `getLocale()` (which reads `next\u002Froot-params`) keeps the lookup cacheable.\nexport default getRequestConfig(async () => {\n  const requested = await getLocale();\n  const locale = hasLocale(routing.locales, requested) ? requested : routing.defaultLocale;\n  const loader = messageLoaders[locale] ?? messageLoaders[routing.defaultLocale];\n  const messages = (await loader()).default as typeof enMessages;\n  return { locale, messages };\n});\n```\n\n### Step 5: Extend `proxy.ts`\n\nUpdate the existing root proxy to run next-intl for matched requests:\n\n```ts\nimport createMiddleware from \"next-intl\u002Fmiddleware\";\nimport { type NextRequest, NextResponse } from \"next\u002Fserver\";\n\nimport { routing } from \"@\u002Flib\u002Fi18n\u002Frouting\";\n\nconst handleI18n = createMiddleware(routing);\n\nexport function proxy(request: NextRequest): NextResponse {\n  const response = handleI18n(request);\n  if (!response.ok) return response;\n\n  const rewriteHeader = response.headers.get(\"x-middleware-rewrite\");\n  if (!rewriteHeader) return response;\n\n  const rewriteTarget = new URL(rewriteHeader, request.url);\n  const [, ...segments] = rewriteTarget.pathname.split(\"\u002F\");\n  const normalized = new URL(`\u002F${segments.filter(Boolean).join(\"\u002F\")}`, request.url);\n  normalized.search = rewriteTarget.search;\n  return NextResponse.rewrite(normalized, { headers: response.headers });\n}\n\nexport const config = {\n  matcher: [\n    \"\u002F((?!api|_next\u002Fstatic|_next\u002Fimage|_next\u002Fdata|_vercel|favicon.ico|robots.txt|sitemap.xml|.*\\\\..*).*)\",\n    \"\u002F.well-known\u002F:path*\",\n  ],\n};\n```\n\nPreserve any other request handling already composed in `proxy()`. The matcher excludes framework internals and public files while keeping application routes and `\u002F.well-known\u002F*` in proxy processing. The file is `proxy.ts` (Next.js 16 convention), not `middleware.ts`.\n\n### Step 6: Internal hrefs — keep `next\u002Flink`\n\nPer the cache-components note above, **leave existing `next\u002Flink` imports alone**. Middleware redirects unprefixed URLs to the active locale on click. The only places to use the next-intl-aware Link are inside client components that explicitly need to switch locales (e.g. a locale switcher) — and even then, `usePathname()` + `useRouter().push()` from `next\u002Fnavigation` plus a manual segment swap is often cleaner under cacheComponents.\n\nFor programmatic redirects in server code, use `next\u002Fnavigation`'s `redirect`:\n\n```ts\nredirect(`\u002F${await getLocale()}\u002Faccount\u002Flogin`);\n```\n\n### Step 7: `lib\u002Fseo.ts` — locale-aware canonicals + hreflang alternates\n\n```ts\nimport { defaultLocale, enabledLocales } from \".\u002Fi18n\";\nimport { getLocale } from \".\u002Fparams\";\n\nfunction withLocalePath(locale: string, pathname: string): string {\n  const normalized = normalizePath(pathname);\n  return normalized === \"\u002F\" ? `\u002F${locale}` : `\u002F${locale}${normalized}`;\n}\n\nexport async function buildAlternates({ pathname, searchParams }: {...}): Promise\u003CMetadata[\"alternates\"]> {\n  const locale = await getLocale();\n  const canonical = buildCanonicalPath(withLocalePath(locale, pathname), searchParams);\n\n  const languages: Record\u003Cstring, string> = {};\n  for (const candidate of enabledLocales) {\n    languages[candidate] = buildCanonicalPath(withLocalePath(candidate, pathname), searchParams);\n  }\n  languages[\"x-default\"] = buildCanonicalPath(withLocalePath(defaultLocale, pathname), searchParams);\n\n  return { canonical, languages };\n}\n```\n\n`buildAlternates` is now async — update every caller to `await`.\n\n### Step 8: Sitemap per-locale entries\n\nEdit `app\u002Fsitemap\u002F[shard]\u002Froute.ts`. For every resource, emit one `\u003Curl>` per enabled locale and add `\u003Cxhtml:link rel=\"alternate\" hreflang=\"...\" href=\"...\" \u002F>` siblings inside each `\u003Curl>` pointing at the other locale variants. Add `xmlns:xhtml=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxhtml\"` to the `\u003Curlset>` opening tag.\n\n```ts\nimport { enabledLocales } from \"@\u002Flib\u002Fi18n\";\n\nfunction localizePath(locale: string, pathname: string): string {\n  if (pathname === \"\u002F\") return `\u002F${locale}`;\n  return `\u002F${locale}${pathname.startsWith(\"\u002F\") ? pathname : `\u002F${pathname}`}`;\n}\n\n\u002F\u002F Inside renderShard(): for each item, for each locale, emit a \u003Curl> with\n\u002F\u002F a \u003Cloc> at the localized path and an \u003Cxhtml:link> per other locale.\n```\n\n`app\u002Fsitemap.xml\u002Froute.ts` (the index) doesn't need locale handling — it only lists shard URLs, which stay locale-agnostic.\n\n### Step 9: `next.config.ts` rewrites\u002Fredirects on `\u002F:locale\u002F*`\n\nExisting markdown content-negotiation rewrites must move their `source` from `\u002Fproducts\u002F:handle` to `\u002F:locale\u002Fproducts\u002F:handle`, etc. Destinations stay at `\u002Fmd\u002Fproducts\u002F:handle`, `\u002Fmd\u002Fcollections\u002F:handle`, and `\u002Fmd\u002Fsearch` — the handlers read `locale` from query params, not the URL path. Add the locale-prefixed redirect rules from the original config (`\u002F:locale\u002Fproduct*` → `\u002F:locale\u002Fproducts*`).\n\n### Step 10: `app\u002F(unlocalized)\u002Fpage.tsx` fallback\n\n```ts\nimport { permanentRedirect } from \"next\u002Fnavigation\";\nimport { defaultLocale } from \"@\u002Flib\u002Fi18n\";\n\nexport default function UnlocalizedRoot(): never {\n  permanentRedirect(`\u002F${defaultLocale}`);\n}\n```\n\nThis is a defensive fallback; with `localePrefix: \"always\"` middleware should already redirect `\u002F`.\n\n### Step 11: `generateStaticParams` on the locale layout\n\n```ts\nimport { locales } from \"@\u002Flib\u002Fi18n\";\n\nexport const generateStaticParams = async () => {\n  return locales.map((locale) => ({ locale }));\n};\n```\n\n### Step 12: Patch `instant` samples\n\nWalk every route file that exports `instant` and add `locale` to each sample's `params`:\n\n```ts\nparams: { locale: \"en-US\", handle: \"__placeholder__\" }\n```\n\nIf any layout-level server component (e.g. a shipping\u002Fpostal banner, geo-aware nav) reads `headers()`, also add a `headers` array to every sample:\n\n```ts\nheaders: [[\"x-vercel-ip-postal-code\", null]];\n```\n\n(See \"Cache Components compatibility D\u002FE\" at the top.)\n\n### Step 13: (Conditional) Re-enable `LocaleCurrencySelector` in the megamenu\n\nOnly if the `enable-shopify-menus` skill has already been run and `components\u002Fnav\u002Fmegamenu\u002Findex.tsx` exists. The selector component lives at `components\u002Fnav\u002Flocale-currency.tsx` (with a fallback at `locale-currency-fallback.tsx`). Wire it into both `MegamenuDesktop` and `MegamenuMobile` per the original instructions.\n\n## Verifying\n\nAfter applying:\n\n```bash\npnpm build         # should pass; routes prerender at \u002Fen-US, \u002Fen-GB, etc.\npnpm dev           # then:\ncurl -I \u002F          # → 307 \u002Fen-US\ncurl -I \u002Fproducts  # → 307 \u002Fen-US\u002Fproducts\ncurl \u002Fsitemap.xml             # → sitemapindex listing shards\ncurl \u002Fsitemap\u002Fproducts-1.xml  # → entries with \u002Fen-US\u002F... URLs + xhtml:link alternates\ncurl \u002Fen-US        # → 200 with \u003Chtml lang=\"en-US\">\n```\n\nSmoke-test checklist:\n\n- [ ] Build passes\n- [ ] Bare `\u002F` redirects to default locale\n- [ ] Each enabled locale serves 200 at its prefix\n- [ ] `\u003Chtml lang>` matches the URL's locale segment\n- [ ] Sitemap emits one entry per locale per page\n- [ ] Canonical + hreflang alternates appear in page metadata\n- [ ] Unprefixed internal links from existing `next\u002Flink` calls redirect (one extra hop, but correct)\n",{"data":37,"body":38},{"name":4,"description":6},{"type":39,"children":40},"root",[41,50,73,96,109,152,392,398,565,571,584,604,648,662,682,702,729,739,744,782,810,838,872,881,886,1169,1195,1222,1495,1506,1515,1534,1698,1740,1932,1938,1944,1955,2171,2181,2344,2366,2377,2396,2517,2581,2600,2635,2648,2998,3011,3775,3786,3791,4699,4734,4745,4787,4804,4866,4879,5664,5681,5687,5739,6040,6051,6068,6141,6154,6327,6346,6359,6520,6533,6558,6629,6648,6698,6703,6715,6766,6772,6777,6916,6921,7013],{"type":42,"tag":43,"props":44,"children":46},"element","h1",{"id":45},"enable-i18n-next-intl-no-markets",[47],{"type":48,"value":49},"text","Enable i18n (next-intl, no Markets)",{"type":42,"tag":51,"props":52,"children":53},"p",{},[54,56,63,65,71],{"type":48,"value":55},"Wire next-intl into the template so the storefront serves locale-prefixed URLs (",{"type":42,"tag":57,"props":58,"children":60},"code",{"className":59},[],[61],{"type":48,"value":62},"\u002Fen-US\u002Fproducts\u002Ffoo",{"type":48,"value":64},"), loads per-locale message catalogs, and exposes a locale switcher. The template ships single-locale by default with clean URLs (",{"type":42,"tag":57,"props":66,"children":68},{"className":67},[],[69],{"type":48,"value":70},"\u002Fproducts\u002Ffoo",{"type":48,"value":72},") — this skill restores the i18n machinery.",{"type":42,"tag":74,"props":75,"children":76},"blockquote",{},[77],{"type":42,"tag":51,"props":78,"children":79},{},[80,94],{"type":42,"tag":81,"props":82,"children":83},"strong",{},[84,86,92],{"type":48,"value":85},"Use ",{"type":42,"tag":57,"props":87,"children":89},{"className":88},[],[90],{"type":48,"value":91},"enable-shopify-markets",{"type":48,"value":93}," instead",{"type":48,"value":95}," if you want region-aware pricing\u002Finventory\u002Fpayments. That skill builds on the same routing layer plus Markets-specific operations. If you only want URL prefixing and translated copy, this skill is the right one.",{"type":42,"tag":97,"props":98,"children":100},"h2",{"id":99},"source-of-truth-libi18nindexts",[101,103],{"type":48,"value":102},"Source of truth: ",{"type":42,"tag":57,"props":104,"children":106},{"className":105},[],[107],{"type":48,"value":108},"lib\u002Fi18n\u002Findex.ts",{"type":42,"tag":51,"props":110,"children":111},{},[112,114,119,121,127,129,135,137,142,144,150],{"type":48,"value":113},"The locale list lives in ",{"type":42,"tag":57,"props":115,"children":117},{"className":116},[],[118],{"type":48,"value":108},{"type":48,"value":120}," as ",{"type":42,"tag":57,"props":122,"children":124},{"className":123},[],[125],{"type":48,"value":126},"locales",{"type":48,"value":128}," and ",{"type":42,"tag":57,"props":130,"children":132},{"className":131},[],[133],{"type":48,"value":134},"enabledLocales",{"type":48,"value":136},". ",{"type":42,"tag":81,"props":138,"children":139},{},[140],{"type":48,"value":141},"Always read those at the start of the skill",{"type":48,"value":143}," — don't hardcode a list. Adding new locales means editing that file plus the message loaders\u002Fcatalogs; everything downstream (",{"type":42,"tag":57,"props":145,"children":147},{"className":146},[],[148],{"type":48,"value":149},"routing",{"type":48,"value":151},", sitemap, alternates, switcher) reads from it. Do not add a locale-to-currency map; commerce currency comes from Shopify responses when Markets is enabled.",{"type":42,"tag":153,"props":154,"children":159},"pre",{"className":155,"code":156,"language":157,"meta":158,"style":158},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F lib\u002Fi18n\u002Findex.ts\nexport const locales = [\"en-US\", \"en-GB\", \"de-DE\", \"fr-FR\"] as const;\nexport const defaultLocale: Locale = \"en-US\";\nexport const enabledLocales: readonly Locale[] = locales;\n","ts","",[160],{"type":42,"tag":57,"props":161,"children":162},{"__ignoreMap":158},[163,175,295,344],{"type":42,"tag":164,"props":165,"children":168},"span",{"class":166,"line":167},"line",1,[169],{"type":42,"tag":164,"props":170,"children":172},{"style":171},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[173],{"type":48,"value":174},"\u002F\u002F lib\u002Fi18n\u002Findex.ts\n",{"type":42,"tag":164,"props":176,"children":178},{"class":166,"line":177},2,[179,185,191,197,203,208,213,219,223,228,233,238,242,246,250,255,259,263,267,272,276,281,286,290],{"type":42,"tag":164,"props":180,"children":182},{"style":181},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[183],{"type":48,"value":184},"export",{"type":42,"tag":164,"props":186,"children":188},{"style":187},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[189],{"type":48,"value":190}," const",{"type":42,"tag":164,"props":192,"children":194},{"style":193},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[195],{"type":48,"value":196}," locales ",{"type":42,"tag":164,"props":198,"children":200},{"style":199},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[201],{"type":48,"value":202},"=",{"type":42,"tag":164,"props":204,"children":205},{"style":193},[206],{"type":48,"value":207}," [",{"type":42,"tag":164,"props":209,"children":210},{"style":199},[211],{"type":48,"value":212},"\"",{"type":42,"tag":164,"props":214,"children":216},{"style":215},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[217],{"type":48,"value":218},"en-US",{"type":42,"tag":164,"props":220,"children":221},{"style":199},[222],{"type":48,"value":212},{"type":42,"tag":164,"props":224,"children":225},{"style":199},[226],{"type":48,"value":227},",",{"type":42,"tag":164,"props":229,"children":230},{"style":199},[231],{"type":48,"value":232}," \"",{"type":42,"tag":164,"props":234,"children":235},{"style":215},[236],{"type":48,"value":237},"en-GB",{"type":42,"tag":164,"props":239,"children":240},{"style":199},[241],{"type":48,"value":212},{"type":42,"tag":164,"props":243,"children":244},{"style":199},[245],{"type":48,"value":227},{"type":42,"tag":164,"props":247,"children":248},{"style":199},[249],{"type":48,"value":232},{"type":42,"tag":164,"props":251,"children":252},{"style":215},[253],{"type":48,"value":254},"de-DE",{"type":42,"tag":164,"props":256,"children":257},{"style":199},[258],{"type":48,"value":212},{"type":42,"tag":164,"props":260,"children":261},{"style":199},[262],{"type":48,"value":227},{"type":42,"tag":164,"props":264,"children":265},{"style":199},[266],{"type":48,"value":232},{"type":42,"tag":164,"props":268,"children":269},{"style":215},[270],{"type":48,"value":271},"fr-FR",{"type":42,"tag":164,"props":273,"children":274},{"style":199},[275],{"type":48,"value":212},{"type":42,"tag":164,"props":277,"children":278},{"style":193},[279],{"type":48,"value":280},"] ",{"type":42,"tag":164,"props":282,"children":283},{"style":181},[284],{"type":48,"value":285},"as",{"type":42,"tag":164,"props":287,"children":288},{"style":187},[289],{"type":48,"value":190},{"type":42,"tag":164,"props":291,"children":292},{"style":199},[293],{"type":48,"value":294},";\n",{"type":42,"tag":164,"props":296,"children":298},{"class":166,"line":297},3,[299,303,307,312,317,323,328,332,336,340],{"type":42,"tag":164,"props":300,"children":301},{"style":181},[302],{"type":48,"value":184},{"type":42,"tag":164,"props":304,"children":305},{"style":187},[306],{"type":48,"value":190},{"type":42,"tag":164,"props":308,"children":309},{"style":193},[310],{"type":48,"value":311}," defaultLocale",{"type":42,"tag":164,"props":313,"children":314},{"style":199},[315],{"type":48,"value":316},":",{"type":42,"tag":164,"props":318,"children":320},{"style":319},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[321],{"type":48,"value":322}," Locale",{"type":42,"tag":164,"props":324,"children":325},{"style":199},[326],{"type":48,"value":327}," =",{"type":42,"tag":164,"props":329,"children":330},{"style":199},[331],{"type":48,"value":232},{"type":42,"tag":164,"props":333,"children":334},{"style":215},[335],{"type":48,"value":218},{"type":42,"tag":164,"props":337,"children":338},{"style":199},[339],{"type":48,"value":212},{"type":42,"tag":164,"props":341,"children":342},{"style":199},[343],{"type":48,"value":294},{"type":42,"tag":164,"props":345,"children":347},{"class":166,"line":346},4,[348,352,356,361,365,370,374,379,383,388],{"type":42,"tag":164,"props":349,"children":350},{"style":181},[351],{"type":48,"value":184},{"type":42,"tag":164,"props":353,"children":354},{"style":187},[355],{"type":48,"value":190},{"type":42,"tag":164,"props":357,"children":358},{"style":193},[359],{"type":48,"value":360}," enabledLocales",{"type":42,"tag":164,"props":362,"children":363},{"style":199},[364],{"type":48,"value":316},{"type":42,"tag":164,"props":366,"children":367},{"style":187},[368],{"type":48,"value":369}," readonly",{"type":42,"tag":164,"props":371,"children":372},{"style":319},[373],{"type":48,"value":322},{"type":42,"tag":164,"props":375,"children":376},{"style":193},[377],{"type":48,"value":378},"[] ",{"type":42,"tag":164,"props":380,"children":381},{"style":199},[382],{"type":48,"value":202},{"type":42,"tag":164,"props":384,"children":385},{"style":193},[386],{"type":48,"value":387}," locales",{"type":42,"tag":164,"props":389,"children":390},{"style":199},[391],{"type":48,"value":294},{"type":42,"tag":97,"props":393,"children":395},{"id":394},"what-this-skill-turns-on",[396],{"type":48,"value":397},"What this skill turns on",{"type":42,"tag":399,"props":400,"children":401},"ol",{},[402,421,434,451,476,487,498,503,522,533,544],{"type":42,"tag":403,"props":404,"children":405},"li",{},[406,412,413,419],{"type":42,"tag":57,"props":407,"children":409},{"className":408},[],[410],{"type":48,"value":411},"lib\u002Fi18n\u002Frouting.ts",{"type":48,"value":128},{"type":42,"tag":57,"props":414,"children":416},{"className":415},[],[417],{"type":48,"value":418},"lib\u002Fi18n\u002Fnavigation.ts",{"type":48,"value":420}," (next-intl)",{"type":42,"tag":403,"props":422,"children":423},{},[424,426,432],{"type":48,"value":425},"Route segment ",{"type":42,"tag":57,"props":427,"children":429},{"className":428},[],[430],{"type":48,"value":431},"app\u002F[locale]\u002F",{"type":48,"value":433}," containing every page",{"type":42,"tag":403,"props":435,"children":436},{},[437,443,445],{"type":42,"tag":57,"props":438,"children":440},{"className":439},[],[441],{"type":48,"value":442},"proxy.ts",{"type":48,"value":444}," middleware running ",{"type":42,"tag":57,"props":446,"children":448},{"className":447},[],[449],{"type":48,"value":450},"next-intl\u002Fmiddleware",{"type":42,"tag":403,"props":452,"children":453},{},[454,460,462,468,470],{"type":42,"tag":57,"props":455,"children":457},{"className":456},[],[458],{"type":48,"value":459},"lib\u002Fparams.ts",{"type":48,"value":461}," ",{"type":42,"tag":57,"props":463,"children":465},{"className":464},[],[466],{"type":48,"value":467},"getLocale()",{"type":48,"value":469}," reading from ",{"type":42,"tag":57,"props":471,"children":473},{"className":472},[],[474],{"type":48,"value":475},"next\u002Froot-params",{"type":42,"tag":403,"props":477,"children":478},{},[479,485],{"type":42,"tag":57,"props":480,"children":482},{"className":481},[],[483],{"type":48,"value":484},"lib\u002Fi18n\u002Frequest.ts",{"type":48,"value":486}," loading messages by resolved locale",{"type":42,"tag":403,"props":488,"children":489},{},[490,492],{"type":48,"value":491},"Locale-prefixed canonicals + hreflang alternates in ",{"type":42,"tag":57,"props":493,"children":495},{"className":494},[],[496],{"type":48,"value":497},"lib\u002Fseo.ts",{"type":42,"tag":403,"props":499,"children":500},{},[501],{"type":48,"value":502},"Sitemap entries per locale",{"type":42,"tag":403,"props":504,"children":505},{},[506,512,514,520],{"type":42,"tag":57,"props":507,"children":509},{"className":508},[],[510],{"type":48,"value":511},"next.config.ts",{"type":48,"value":513}," rewrites\u002Fredirects on ",{"type":42,"tag":57,"props":515,"children":517},{"className":516},[],[518],{"type":48,"value":519},"\u002F:locale\u002F*",{"type":48,"value":521}," sources",{"type":42,"tag":403,"props":523,"children":524},{},[525,531],{"type":42,"tag":57,"props":526,"children":528},{"className":527},[],[529],{"type":48,"value":530},"app\u002F(unlocalized)\u002Fpage.tsx",{"type":48,"value":532}," fallback redirect to default locale",{"type":42,"tag":403,"props":534,"children":535},{},[536,542],{"type":42,"tag":57,"props":537,"children":539},{"className":538},[],[540],{"type":48,"value":541},"generateStaticParams",{"type":48,"value":543}," on the root layout",{"type":42,"tag":403,"props":545,"children":546},{},[547,549,555,557,563],{"type":48,"value":548},"(If ",{"type":42,"tag":57,"props":550,"children":552},{"className":551},[],[553],{"type":48,"value":554},"enable-shopify-menus",{"type":48,"value":556}," already ran) Re-enable ",{"type":42,"tag":57,"props":558,"children":560},{"className":559},[],[561],{"type":48,"value":562},"LocaleCurrencySelector",{"type":48,"value":564}," in the megamenu",{"type":42,"tag":97,"props":566,"children":568},{"id":567},"cache-components-compatibility-read-this-first",[569],{"type":48,"value":570},"Cache Components compatibility — read this first",{"type":42,"tag":51,"props":572,"children":573},{},[574,576,582],{"type":48,"value":575},"The template runs with ",{"type":42,"tag":57,"props":577,"children":579},{"className":578},[],[580],{"type":48,"value":581},"cacheComponents: true",{"type":48,"value":583}," (Next.js 16). That changes a few things this skill needs to handle correctly. Skipping any of these will produce build errors that look unrelated:",{"type":42,"tag":585,"props":586,"children":588},"h3",{"id":587},"a-there-must-be-no-applayouttsx-above-applocale",[589,591,597,599],{"type":48,"value":590},"A. There must be no ",{"type":42,"tag":57,"props":592,"children":594},{"className":593},[],[595],{"type":48,"value":596},"app\u002Flayout.tsx",{"type":48,"value":598}," above ",{"type":42,"tag":57,"props":600,"children":602},{"className":601},[],[603],{"type":48,"value":431},{"type":42,"tag":51,"props":605,"children":606},{},[607,609,615,617,622,624,630,632,638,640,646],{"type":48,"value":608},"For ",{"type":42,"tag":57,"props":610,"children":612},{"className":611},[],[613],{"type":48,"value":614},"[locale]",{"type":48,"value":616}," to be recognized as a root param, the dynamic segment must be the root layout. After Step 2, the file at ",{"type":42,"tag":57,"props":618,"children":620},{"className":619},[],[621],{"type":48,"value":596},{"type":48,"value":623}," should be gone (moved into ",{"type":42,"tag":57,"props":625,"children":627},{"className":626},[],[628],{"type":48,"value":629},"app\u002F[locale]\u002Flayout.tsx",{"type":48,"value":631},"). If both exist, ",{"type":42,"tag":57,"props":633,"children":635},{"className":634},[],[636],{"type":48,"value":637},"rootParams.locale()",{"type":48,"value":639}," returns ",{"type":42,"tag":57,"props":641,"children":643},{"className":642},[],[644],{"type":48,"value":645},"undefined",{"type":48,"value":647},".",{"type":42,"tag":585,"props":649,"children":651},{"id":650},"b-setrequestlocale-is-not-used",[652,654,660],{"type":48,"value":653},"B. ",{"type":42,"tag":57,"props":655,"children":657},{"className":656},[],[658],{"type":48,"value":659},"setRequestLocale",{"type":48,"value":661}," is not used",{"type":42,"tag":51,"props":663,"children":664},{},[665,667,673,675,680],{"type":48,"value":666},"next-intl docs sometimes show ",{"type":42,"tag":57,"props":668,"children":670},{"className":669},[],[671],{"type":48,"value":672},"setRequestLocale(locale)",{"type":48,"value":674}," calls in layouts\u002Fpages. ",{"type":42,"tag":81,"props":676,"children":677},{},[678],{"type":48,"value":679},"Don't add them under cacheComponents.",{"type":48,"value":681}," That helper writes to a request-scoped store and forces dynamic rendering — it defeats the cache. The rootParams + request-config pattern below makes it unnecessary because the resolved locale is already a cache key.",{"type":42,"tag":585,"props":683,"children":685},{"id":684},"c-dont-swap-nextlink-to-next-intls-link",[686,688,694,696],{"type":48,"value":687},"C. Don't swap ",{"type":42,"tag":57,"props":689,"children":691},{"className":690},[],[692],{"type":48,"value":693},"next\u002Flink",{"type":48,"value":695}," to next-intl's ",{"type":42,"tag":57,"props":697,"children":699},{"className":698},[],[700],{"type":48,"value":701},"\u003CLink>",{"type":42,"tag":51,"props":703,"children":704},{},[705,707,713,715,721,722,727],{"type":48,"value":706},"The straightforward instinct is to replace every ",{"type":42,"tag":57,"props":708,"children":710},{"className":709},[],[711],{"type":48,"value":712},"import Link from \"next\u002Flink\"",{"type":48,"value":714}," with ",{"type":42,"tag":57,"props":716,"children":718},{"className":717},[],[719],{"type":48,"value":720},"import { Link } from \"@\u002Flib\u002Fi18n\u002Fnavigation\"",{"type":48,"value":136},{"type":42,"tag":81,"props":723,"children":724},{},[725],{"type":48,"value":726},"Don't.",{"type":48,"value":728}," next-intl's Link reads request context (locale) on render; in a server-component tree under cacheComponents, that triggers:",{"type":42,"tag":153,"props":730,"children":734},{"className":731,"code":733,"language":48},[732],"language-text","Error: Route \"\u002F[locale]\u002F...\" accessed [...] which is not defined in the `unstable_samples` of `instant`.\n",[735],{"type":42,"tag":57,"props":736,"children":737},{"__ignoreMap":158},[738],{"type":48,"value":733},{"type":42,"tag":51,"props":740,"children":741},{},[742],{"type":48,"value":743},"or a generic \"blocking route\" prerender failure.",{"type":42,"tag":51,"props":745,"children":746},{},[747,752,754,759,761,766,768,773,775,780],{"type":42,"tag":81,"props":748,"children":749},{},[750],{"type":48,"value":751},"Do this instead:",{"type":48,"value":753}," keep ",{"type":42,"tag":57,"props":755,"children":757},{"className":756},[],[758],{"type":48,"value":693},{"type":48,"value":760}," and let ",{"type":42,"tag":57,"props":762,"children":764},{"className":763},[],[765],{"type":48,"value":442},{"type":48,"value":767}," middleware redirect unprefixed paths (",{"type":42,"tag":57,"props":769,"children":771},{"className":770},[],[772],{"type":48,"value":70},{"type":48,"value":774}," → ",{"type":42,"tag":57,"props":776,"children":778},{"className":777},[],[779],{"type":48,"value":62},{"type":48,"value":781},"). Internal links work; there's a one-time middleware redirect on click for unprefixed hrefs. Trade a few redirects for a clean prerender.",{"type":42,"tag":51,"props":783,"children":784},{},[785,787,793,795,801,803,809],{"type":48,"value":786},"If you must locale-prefix a programmatic URL (server actions, ",{"type":42,"tag":57,"props":788,"children":790},{"className":789},[],[791],{"type":48,"value":792},"redirect()",{"type":48,"value":794},", ",{"type":42,"tag":57,"props":796,"children":798},{"className":797},[],[799],{"type":48,"value":800},"permanentRedirect()",{"type":48,"value":802},"), build the path yourself: ",{"type":42,"tag":57,"props":804,"children":806},{"className":805},[],[807],{"type":48,"value":808},"`\u002F${await getLocale()}\u002Faccount\u002Flogin`",{"type":48,"value":647},{"type":42,"tag":585,"props":811,"children":813},{"id":812},"d-instant-samples-need-locale-in-params",[814,816,822,824,830,832],{"type":48,"value":815},"D. ",{"type":42,"tag":57,"props":817,"children":819},{"className":818},[],[820],{"type":48,"value":821},"instant",{"type":48,"value":823}," samples need ",{"type":42,"tag":57,"props":825,"children":827},{"className":826},[],[828],{"type":48,"value":829},"locale",{"type":48,"value":831}," in ",{"type":42,"tag":57,"props":833,"children":835},{"className":834},[],[836],{"type":48,"value":837},"params",{"type":42,"tag":51,"props":839,"children":840},{},[841,843,848,850,856,858,863,865,870],{"type":48,"value":842},"Any route that exports ",{"type":42,"tag":57,"props":844,"children":846},{"className":845},[],[847],{"type":48,"value":821},{"type":48,"value":849}," (currently: products ",{"type":42,"tag":57,"props":851,"children":853},{"className":852},[],[854],{"type":48,"value":855},"[handle]",{"type":48,"value":857},", collections ",{"type":42,"tag":57,"props":859,"children":861},{"className":860},[],[862],{"type":48,"value":855},{"type":48,"value":864},", search) needs ",{"type":42,"tag":57,"props":866,"children":868},{"className":867},[],[869],{"type":48,"value":829},{"type":48,"value":871}," added to every sample, or the build fails:",{"type":42,"tag":153,"props":873,"children":876},{"className":874,"code":875,"language":48},[732],"Error: Route \"\u002F[locale]\u002Fproducts\u002F[handle]\" accessed root param \"locale\"\n       which is not defined in the `unstable_samples` of `instant`.\n",[877],{"type":42,"tag":57,"props":878,"children":879},{"__ignoreMap":158},[880],{"type":48,"value":875},{"type":42,"tag":51,"props":882,"children":883},{},[884],{"type":48,"value":885},"Fix:",{"type":42,"tag":153,"props":887,"children":889},{"className":155,"code":888,"language":157,"meta":158,"style":158},"export const instant = {\n  unstable_samples: [\n    {\n      params: { locale: \"en-US\", handle: \"__placeholder__\" }, \u002F\u002F ← add locale\n      searchParams: { variant: \"1\" },\n      cookies: [{ name: \"shopify_cartId\", value: null }],\n    },\n  ],\n};\n",[890],{"type":42,"tag":57,"props":891,"children":892},{"__ignoreMap":158},[893,918,936,944,1018,1062,1139,1148,1161],{"type":42,"tag":164,"props":894,"children":895},{"class":166,"line":167},[896,900,904,909,913],{"type":42,"tag":164,"props":897,"children":898},{"style":181},[899],{"type":48,"value":184},{"type":42,"tag":164,"props":901,"children":902},{"style":187},[903],{"type":48,"value":190},{"type":42,"tag":164,"props":905,"children":906},{"style":193},[907],{"type":48,"value":908}," instant ",{"type":42,"tag":164,"props":910,"children":911},{"style":199},[912],{"type":48,"value":202},{"type":42,"tag":164,"props":914,"children":915},{"style":199},[916],{"type":48,"value":917}," {\n",{"type":42,"tag":164,"props":919,"children":920},{"class":166,"line":177},[921,927,931],{"type":42,"tag":164,"props":922,"children":924},{"style":923},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[925],{"type":48,"value":926},"  unstable_samples",{"type":42,"tag":164,"props":928,"children":929},{"style":199},[930],{"type":48,"value":316},{"type":42,"tag":164,"props":932,"children":933},{"style":193},[934],{"type":48,"value":935}," [\n",{"type":42,"tag":164,"props":937,"children":938},{"class":166,"line":297},[939],{"type":42,"tag":164,"props":940,"children":941},{"style":199},[942],{"type":48,"value":943},"    {\n",{"type":42,"tag":164,"props":945,"children":946},{"class":166,"line":346},[947,952,956,961,966,970,974,978,982,986,991,995,999,1004,1008,1013],{"type":42,"tag":164,"props":948,"children":949},{"style":923},[950],{"type":48,"value":951},"      params",{"type":42,"tag":164,"props":953,"children":954},{"style":199},[955],{"type":48,"value":316},{"type":42,"tag":164,"props":957,"children":958},{"style":199},[959],{"type":48,"value":960}," {",{"type":42,"tag":164,"props":962,"children":963},{"style":923},[964],{"type":48,"value":965}," locale",{"type":42,"tag":164,"props":967,"children":968},{"style":199},[969],{"type":48,"value":316},{"type":42,"tag":164,"props":971,"children":972},{"style":199},[973],{"type":48,"value":232},{"type":42,"tag":164,"props":975,"children":976},{"style":215},[977],{"type":48,"value":218},{"type":42,"tag":164,"props":979,"children":980},{"style":199},[981],{"type":48,"value":212},{"type":42,"tag":164,"props":983,"children":984},{"style":199},[985],{"type":48,"value":227},{"type":42,"tag":164,"props":987,"children":988},{"style":923},[989],{"type":48,"value":990}," handle",{"type":42,"tag":164,"props":992,"children":993},{"style":199},[994],{"type":48,"value":316},{"type":42,"tag":164,"props":996,"children":997},{"style":199},[998],{"type":48,"value":232},{"type":42,"tag":164,"props":1000,"children":1001},{"style":215},[1002],{"type":48,"value":1003},"__placeholder__",{"type":42,"tag":164,"props":1005,"children":1006},{"style":199},[1007],{"type":48,"value":212},{"type":42,"tag":164,"props":1009,"children":1010},{"style":199},[1011],{"type":48,"value":1012}," },",{"type":42,"tag":164,"props":1014,"children":1015},{"style":171},[1016],{"type":48,"value":1017}," \u002F\u002F ← add locale\n",{"type":42,"tag":164,"props":1019,"children":1021},{"class":166,"line":1020},5,[1022,1027,1031,1035,1040,1044,1048,1053,1057],{"type":42,"tag":164,"props":1023,"children":1024},{"style":923},[1025],{"type":48,"value":1026},"      searchParams",{"type":42,"tag":164,"props":1028,"children":1029},{"style":199},[1030],{"type":48,"value":316},{"type":42,"tag":164,"props":1032,"children":1033},{"style":199},[1034],{"type":48,"value":960},{"type":42,"tag":164,"props":1036,"children":1037},{"style":923},[1038],{"type":48,"value":1039}," variant",{"type":42,"tag":164,"props":1041,"children":1042},{"style":199},[1043],{"type":48,"value":316},{"type":42,"tag":164,"props":1045,"children":1046},{"style":199},[1047],{"type":48,"value":232},{"type":42,"tag":164,"props":1049,"children":1050},{"style":215},[1051],{"type":48,"value":1052},"1",{"type":42,"tag":164,"props":1054,"children":1055},{"style":199},[1056],{"type":48,"value":212},{"type":42,"tag":164,"props":1058,"children":1059},{"style":199},[1060],{"type":48,"value":1061}," },\n",{"type":42,"tag":164,"props":1063,"children":1065},{"class":166,"line":1064},6,[1066,1071,1075,1079,1084,1089,1093,1097,1102,1106,1110,1115,1119,1124,1129,1134],{"type":42,"tag":164,"props":1067,"children":1068},{"style":923},[1069],{"type":48,"value":1070},"      cookies",{"type":42,"tag":164,"props":1072,"children":1073},{"style":199},[1074],{"type":48,"value":316},{"type":42,"tag":164,"props":1076,"children":1077},{"style":193},[1078],{"type":48,"value":207},{"type":42,"tag":164,"props":1080,"children":1081},{"style":199},[1082],{"type":48,"value":1083},"{",{"type":42,"tag":164,"props":1085,"children":1086},{"style":923},[1087],{"type":48,"value":1088}," name",{"type":42,"tag":164,"props":1090,"children":1091},{"style":199},[1092],{"type":48,"value":316},{"type":42,"tag":164,"props":1094,"children":1095},{"style":199},[1096],{"type":48,"value":232},{"type":42,"tag":164,"props":1098,"children":1099},{"style":215},[1100],{"type":48,"value":1101},"shopify_cartId",{"type":42,"tag":164,"props":1103,"children":1104},{"style":199},[1105],{"type":48,"value":212},{"type":42,"tag":164,"props":1107,"children":1108},{"style":199},[1109],{"type":48,"value":227},{"type":42,"tag":164,"props":1111,"children":1112},{"style":923},[1113],{"type":48,"value":1114}," value",{"type":42,"tag":164,"props":1116,"children":1117},{"style":199},[1118],{"type":48,"value":316},{"type":42,"tag":164,"props":1120,"children":1121},{"style":199},[1122],{"type":48,"value":1123}," null",{"type":42,"tag":164,"props":1125,"children":1126},{"style":199},[1127],{"type":48,"value":1128}," }",{"type":42,"tag":164,"props":1130,"children":1131},{"style":193},[1132],{"type":48,"value":1133},"]",{"type":42,"tag":164,"props":1135,"children":1136},{"style":199},[1137],{"type":48,"value":1138},",\n",{"type":42,"tag":164,"props":1140,"children":1142},{"class":166,"line":1141},7,[1143],{"type":42,"tag":164,"props":1144,"children":1145},{"style":199},[1146],{"type":48,"value":1147},"    },\n",{"type":42,"tag":164,"props":1149,"children":1151},{"class":166,"line":1150},8,[1152,1157],{"type":42,"tag":164,"props":1153,"children":1154},{"style":193},[1155],{"type":48,"value":1156},"  ]",{"type":42,"tag":164,"props":1158,"children":1159},{"style":199},[1160],{"type":48,"value":1138},{"type":42,"tag":164,"props":1162,"children":1163},{"class":166,"line":29},[1164],{"type":42,"tag":164,"props":1165,"children":1166},{"style":199},[1167],{"type":48,"value":1168},"};\n",{"type":42,"tag":585,"props":1170,"children":1172},{"id":1171},"e-instant-samples-need-headers-declarations-if-any-layout-level-server-component-reads-headers",[1173,1175,1180,1181,1187,1189],{"type":48,"value":1174},"E. ",{"type":42,"tag":57,"props":1176,"children":1178},{"className":1177},[],[1179],{"type":48,"value":821},{"type":48,"value":823},{"type":42,"tag":57,"props":1182,"children":1184},{"className":1183},[],[1185],{"type":48,"value":1186},"headers",{"type":48,"value":1188}," declarations if any layout-level server component reads ",{"type":42,"tag":57,"props":1190,"children":1192},{"className":1191},[],[1193],{"type":48,"value":1194},"headers()",{"type":42,"tag":51,"props":1196,"children":1197},{},[1198,1200,1205,1207,1213,1215,1220],{"type":48,"value":1199},"This is easy to forget. If you (or a downstream skill) adds a server component to the layout that calls ",{"type":42,"tag":57,"props":1201,"children":1203},{"className":1202},[],[1204],{"type":48,"value":1194},{"type":48,"value":1206}," — e.g. a \"Shipping to {postal}\" bar reading ",{"type":42,"tag":57,"props":1208,"children":1210},{"className":1209},[],[1211],{"type":48,"value":1212},"x-vercel-ip-postal-code",{"type":48,"value":1214}," — every ",{"type":42,"tag":57,"props":1216,"children":1218},{"className":1217},[],[1219],{"type":48,"value":821},{"type":48,"value":1221}," sample in the app must declare the headers it might access:",{"type":42,"tag":153,"props":1223,"children":1225},{"className":155,"code":1224,"language":157,"meta":158,"style":158},"unstable_samples: [\n  {\n    params: { locale: \"en-US\", handle: \"__placeholder__\" },\n    searchParams: { variant: \"1\" },\n    cookies: [{ name: \"shopify_cartId\", value: null }],\n    headers: [[\"x-vercel-ip-postal-code\", null]], \u002F\u002F ← add this\n  },\n],\n",[1226],{"type":42,"tag":57,"props":1227,"children":1228},{"__ignoreMap":158},[1229,1245,1253,1317,1357,1425,1476,1484],{"type":42,"tag":164,"props":1230,"children":1231},{"class":166,"line":167},[1232,1237,1241],{"type":42,"tag":164,"props":1233,"children":1234},{"style":319},[1235],{"type":48,"value":1236},"unstable_samples",{"type":42,"tag":164,"props":1238,"children":1239},{"style":199},[1240],{"type":48,"value":316},{"type":42,"tag":164,"props":1242,"children":1243},{"style":193},[1244],{"type":48,"value":935},{"type":42,"tag":164,"props":1246,"children":1247},{"class":166,"line":177},[1248],{"type":42,"tag":164,"props":1249,"children":1250},{"style":199},[1251],{"type":48,"value":1252},"  {\n",{"type":42,"tag":164,"props":1254,"children":1255},{"class":166,"line":297},[1256,1261,1265,1269,1273,1277,1281,1285,1289,1293,1297,1301,1305,1309,1313],{"type":42,"tag":164,"props":1257,"children":1258},{"style":923},[1259],{"type":48,"value":1260},"    params",{"type":42,"tag":164,"props":1262,"children":1263},{"style":199},[1264],{"type":48,"value":316},{"type":42,"tag":164,"props":1266,"children":1267},{"style":199},[1268],{"type":48,"value":960},{"type":42,"tag":164,"props":1270,"children":1271},{"style":923},[1272],{"type":48,"value":965},{"type":42,"tag":164,"props":1274,"children":1275},{"style":199},[1276],{"type":48,"value":316},{"type":42,"tag":164,"props":1278,"children":1279},{"style":199},[1280],{"type":48,"value":232},{"type":42,"tag":164,"props":1282,"children":1283},{"style":215},[1284],{"type":48,"value":218},{"type":42,"tag":164,"props":1286,"children":1287},{"style":199},[1288],{"type":48,"value":212},{"type":42,"tag":164,"props":1290,"children":1291},{"style":199},[1292],{"type":48,"value":227},{"type":42,"tag":164,"props":1294,"children":1295},{"style":923},[1296],{"type":48,"value":990},{"type":42,"tag":164,"props":1298,"children":1299},{"style":199},[1300],{"type":48,"value":316},{"type":42,"tag":164,"props":1302,"children":1303},{"style":199},[1304],{"type":48,"value":232},{"type":42,"tag":164,"props":1306,"children":1307},{"style":215},[1308],{"type":48,"value":1003},{"type":42,"tag":164,"props":1310,"children":1311},{"style":199},[1312],{"type":48,"value":212},{"type":42,"tag":164,"props":1314,"children":1315},{"style":199},[1316],{"type":48,"value":1061},{"type":42,"tag":164,"props":1318,"children":1319},{"class":166,"line":346},[1320,1325,1329,1333,1337,1341,1345,1349,1353],{"type":42,"tag":164,"props":1321,"children":1322},{"style":923},[1323],{"type":48,"value":1324},"    searchParams",{"type":42,"tag":164,"props":1326,"children":1327},{"style":199},[1328],{"type":48,"value":316},{"type":42,"tag":164,"props":1330,"children":1331},{"style":199},[1332],{"type":48,"value":960},{"type":42,"tag":164,"props":1334,"children":1335},{"style":923},[1336],{"type":48,"value":1039},{"type":42,"tag":164,"props":1338,"children":1339},{"style":199},[1340],{"type":48,"value":316},{"type":42,"tag":164,"props":1342,"children":1343},{"style":199},[1344],{"type":48,"value":232},{"type":42,"tag":164,"props":1346,"children":1347},{"style":215},[1348],{"type":48,"value":1052},{"type":42,"tag":164,"props":1350,"children":1351},{"style":199},[1352],{"type":48,"value":212},{"type":42,"tag":164,"props":1354,"children":1355},{"style":199},[1356],{"type":48,"value":1061},{"type":42,"tag":164,"props":1358,"children":1359},{"class":166,"line":1020},[1360,1365,1369,1373,1377,1381,1385,1389,1393,1397,1401,1405,1409,1413,1417,1421],{"type":42,"tag":164,"props":1361,"children":1362},{"style":923},[1363],{"type":48,"value":1364},"    cookies",{"type":42,"tag":164,"props":1366,"children":1367},{"style":199},[1368],{"type":48,"value":316},{"type":42,"tag":164,"props":1370,"children":1371},{"style":193},[1372],{"type":48,"value":207},{"type":42,"tag":164,"props":1374,"children":1375},{"style":199},[1376],{"type":48,"value":1083},{"type":42,"tag":164,"props":1378,"children":1379},{"style":923},[1380],{"type":48,"value":1088},{"type":42,"tag":164,"props":1382,"children":1383},{"style":199},[1384],{"type":48,"value":316},{"type":42,"tag":164,"props":1386,"children":1387},{"style":199},[1388],{"type":48,"value":232},{"type":42,"tag":164,"props":1390,"children":1391},{"style":215},[1392],{"type":48,"value":1101},{"type":42,"tag":164,"props":1394,"children":1395},{"style":199},[1396],{"type":48,"value":212},{"type":42,"tag":164,"props":1398,"children":1399},{"style":199},[1400],{"type":48,"value":227},{"type":42,"tag":164,"props":1402,"children":1403},{"style":923},[1404],{"type":48,"value":1114},{"type":42,"tag":164,"props":1406,"children":1407},{"style":199},[1408],{"type":48,"value":316},{"type":42,"tag":164,"props":1410,"children":1411},{"style":199},[1412],{"type":48,"value":1123},{"type":42,"tag":164,"props":1414,"children":1415},{"style":199},[1416],{"type":48,"value":1128},{"type":42,"tag":164,"props":1418,"children":1419},{"style":193},[1420],{"type":48,"value":1133},{"type":42,"tag":164,"props":1422,"children":1423},{"style":199},[1424],{"type":48,"value":1138},{"type":42,"tag":164,"props":1426,"children":1427},{"class":166,"line":1064},[1428,1433,1437,1442,1446,1450,1454,1458,1462,1467,1471],{"type":42,"tag":164,"props":1429,"children":1430},{"style":923},[1431],{"type":48,"value":1432},"    headers",{"type":42,"tag":164,"props":1434,"children":1435},{"style":199},[1436],{"type":48,"value":316},{"type":42,"tag":164,"props":1438,"children":1439},{"style":193},[1440],{"type":48,"value":1441}," [[",{"type":42,"tag":164,"props":1443,"children":1444},{"style":199},[1445],{"type":48,"value":212},{"type":42,"tag":164,"props":1447,"children":1448},{"style":215},[1449],{"type":48,"value":1212},{"type":42,"tag":164,"props":1451,"children":1452},{"style":199},[1453],{"type":48,"value":212},{"type":42,"tag":164,"props":1455,"children":1456},{"style":199},[1457],{"type":48,"value":227},{"type":42,"tag":164,"props":1459,"children":1460},{"style":199},[1461],{"type":48,"value":1123},{"type":42,"tag":164,"props":1463,"children":1464},{"style":193},[1465],{"type":48,"value":1466},"]]",{"type":42,"tag":164,"props":1468,"children":1469},{"style":199},[1470],{"type":48,"value":227},{"type":42,"tag":164,"props":1472,"children":1473},{"style":171},[1474],{"type":48,"value":1475}," \u002F\u002F ← add this\n",{"type":42,"tag":164,"props":1477,"children":1478},{"class":166,"line":1141},[1479],{"type":42,"tag":164,"props":1480,"children":1481},{"style":199},[1482],{"type":48,"value":1483},"  },\n",{"type":42,"tag":164,"props":1485,"children":1486},{"class":166,"line":1150},[1487,1491],{"type":42,"tag":164,"props":1488,"children":1489},{"style":193},[1490],{"type":48,"value":1133},{"type":42,"tag":164,"props":1492,"children":1493},{"style":199},[1494],{"type":48,"value":1138},{"type":42,"tag":51,"props":1496,"children":1497},{},[1498,1504],{"type":42,"tag":57,"props":1499,"children":1501},{"className":1500},[],[1502],{"type":48,"value":1503},"null",{"type":48,"value":1505}," means \"header may be absent.\" If you forget, the build error is explicit:",{"type":42,"tag":153,"props":1507,"children":1510},{"className":1508,"code":1509,"language":48},[732],"Error: Route \"...\" accessed header \"x-vercel-ip-postal-code\" which is not\n       defined in the `unstable_samples` of `instant`. Add it to the\n       sample's `headers` array, or `[\"...\", null]` if it should be absent.\n",[1511],{"type":42,"tag":57,"props":1512,"children":1513},{"__ignoreMap":158},[1514],{"type":48,"value":1509},{"type":42,"tag":585,"props":1516,"children":1518},{"id":1517},"f-redirect-from-next-intl-doesnt-return-never",[1519,1521,1526,1528],{"type":48,"value":1520},"F. ",{"type":42,"tag":57,"props":1522,"children":1524},{"className":1523},[],[1525],{"type":48,"value":792},{"type":48,"value":1527}," from next-intl doesn't return ",{"type":42,"tag":57,"props":1529,"children":1531},{"className":1530},[],[1532],{"type":48,"value":1533},"never",{"type":42,"tag":153,"props":1535,"children":1537},{"className":155,"code":1536,"language":157,"meta":158,"style":158},"\u002F\u002F BREAKS: TS doesn't narrow `session` after redirect\nimport { redirect } from \"@\u002Flib\u002Fi18n\u002Fnavigation\";\nif (!session) redirect({ href: \"\u002Faccount\u002Flogin\", locale });\nreturn session; \u002F\u002F type error: session is CustomerSession | null\n",[1538],{"type":42,"tag":57,"props":1539,"children":1540},{"__ignoreMap":158},[1541,1549,1592,1675],{"type":42,"tag":164,"props":1542,"children":1543},{"class":166,"line":167},[1544],{"type":42,"tag":164,"props":1545,"children":1546},{"style":171},[1547],{"type":48,"value":1548},"\u002F\u002F BREAKS: TS doesn't narrow `session` after redirect\n",{"type":42,"tag":164,"props":1550,"children":1551},{"class":166,"line":177},[1552,1557,1561,1566,1570,1575,1579,1584,1588],{"type":42,"tag":164,"props":1553,"children":1554},{"style":181},[1555],{"type":48,"value":1556},"import",{"type":42,"tag":164,"props":1558,"children":1559},{"style":199},[1560],{"type":48,"value":960},{"type":42,"tag":164,"props":1562,"children":1563},{"style":193},[1564],{"type":48,"value":1565}," redirect",{"type":42,"tag":164,"props":1567,"children":1568},{"style":199},[1569],{"type":48,"value":1128},{"type":42,"tag":164,"props":1571,"children":1572},{"style":181},[1573],{"type":48,"value":1574}," from",{"type":42,"tag":164,"props":1576,"children":1577},{"style":199},[1578],{"type":48,"value":232},{"type":42,"tag":164,"props":1580,"children":1581},{"style":215},[1582],{"type":48,"value":1583},"@\u002Flib\u002Fi18n\u002Fnavigation",{"type":42,"tag":164,"props":1585,"children":1586},{"style":199},[1587],{"type":48,"value":212},{"type":42,"tag":164,"props":1589,"children":1590},{"style":199},[1591],{"type":48,"value":294},{"type":42,"tag":164,"props":1593,"children":1594},{"class":166,"line":297},[1595,1600,1605,1610,1615,1621,1626,1630,1635,1639,1643,1648,1652,1656,1661,1666,1671],{"type":42,"tag":164,"props":1596,"children":1597},{"style":181},[1598],{"type":48,"value":1599},"if",{"type":42,"tag":164,"props":1601,"children":1602},{"style":193},[1603],{"type":48,"value":1604}," (",{"type":42,"tag":164,"props":1606,"children":1607},{"style":199},[1608],{"type":48,"value":1609},"!",{"type":42,"tag":164,"props":1611,"children":1612},{"style":193},[1613],{"type":48,"value":1614},"session) ",{"type":42,"tag":164,"props":1616,"children":1618},{"style":1617},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[1619],{"type":48,"value":1620},"redirect",{"type":42,"tag":164,"props":1622,"children":1623},{"style":193},[1624],{"type":48,"value":1625},"(",{"type":42,"tag":164,"props":1627,"children":1628},{"style":199},[1629],{"type":48,"value":1083},{"type":42,"tag":164,"props":1631,"children":1632},{"style":923},[1633],{"type":48,"value":1634}," href",{"type":42,"tag":164,"props":1636,"children":1637},{"style":199},[1638],{"type":48,"value":316},{"type":42,"tag":164,"props":1640,"children":1641},{"style":199},[1642],{"type":48,"value":232},{"type":42,"tag":164,"props":1644,"children":1645},{"style":215},[1646],{"type":48,"value":1647},"\u002Faccount\u002Flogin",{"type":42,"tag":164,"props":1649,"children":1650},{"style":199},[1651],{"type":48,"value":212},{"type":42,"tag":164,"props":1653,"children":1654},{"style":199},[1655],{"type":48,"value":227},{"type":42,"tag":164,"props":1657,"children":1658},{"style":193},[1659],{"type":48,"value":1660}," locale ",{"type":42,"tag":164,"props":1662,"children":1663},{"style":199},[1664],{"type":48,"value":1665},"}",{"type":42,"tag":164,"props":1667,"children":1668},{"style":193},[1669],{"type":48,"value":1670},")",{"type":42,"tag":164,"props":1672,"children":1673},{"style":199},[1674],{"type":48,"value":294},{"type":42,"tag":164,"props":1676,"children":1677},{"class":166,"line":346},[1678,1683,1688,1693],{"type":42,"tag":164,"props":1679,"children":1680},{"style":181},[1681],{"type":48,"value":1682},"return",{"type":42,"tag":164,"props":1684,"children":1685},{"style":193},[1686],{"type":48,"value":1687}," session",{"type":42,"tag":164,"props":1689,"children":1690},{"style":199},[1691],{"type":48,"value":1692},";",{"type":42,"tag":164,"props":1694,"children":1695},{"style":171},[1696],{"type":48,"value":1697}," \u002F\u002F type error: session is CustomerSession | null\n",{"type":42,"tag":51,"props":1699,"children":1700},{},[1701,1703,1708,1710,1716,1718,1724,1726,1731,1733,1738],{"type":48,"value":1702},"next-intl's ",{"type":42,"tag":57,"props":1704,"children":1706},{"className":1705},[],[1707],{"type":48,"value":1620},{"type":48,"value":1709}," is typed to return ",{"type":42,"tag":57,"props":1711,"children":1713},{"className":1712},[],[1714],{"type":48,"value":1715},"void",{"type":48,"value":1717},", so TypeScript doesn't treat it as control-flow-ending. Use ",{"type":42,"tag":57,"props":1719,"children":1721},{"className":1720},[],[1722],{"type":48,"value":1723},"next\u002Fnavigation",{"type":48,"value":1725},"'s ",{"type":42,"tag":57,"props":1727,"children":1729},{"className":1728},[],[1730],{"type":48,"value":1620},{"type":48,"value":1732}," (which returns ",{"type":42,"tag":57,"props":1734,"children":1736},{"className":1735},[],[1737],{"type":48,"value":1533},{"type":48,"value":1739},") and prefix the locale yourself:",{"type":42,"tag":153,"props":1741,"children":1743},{"className":155,"code":1742,"language":157,"meta":158,"style":158},"import { redirect } from \"next\u002Fnavigation\";\nimport { getLocale } from \"@\u002Flib\u002Fparams\";\n\nif (!session) redirect(`\u002F${await getLocale()}\u002Faccount\u002Flogin`);\nreturn session; \u002F\u002F OK, narrowed\n",[1744],{"type":42,"tag":57,"props":1745,"children":1746},{"__ignoreMap":158},[1747,1786,1827,1836,1912],{"type":42,"tag":164,"props":1748,"children":1749},{"class":166,"line":167},[1750,1754,1758,1762,1766,1770,1774,1778,1782],{"type":42,"tag":164,"props":1751,"children":1752},{"style":181},[1753],{"type":48,"value":1556},{"type":42,"tag":164,"props":1755,"children":1756},{"style":199},[1757],{"type":48,"value":960},{"type":42,"tag":164,"props":1759,"children":1760},{"style":193},[1761],{"type":48,"value":1565},{"type":42,"tag":164,"props":1763,"children":1764},{"style":199},[1765],{"type":48,"value":1128},{"type":42,"tag":164,"props":1767,"children":1768},{"style":181},[1769],{"type":48,"value":1574},{"type":42,"tag":164,"props":1771,"children":1772},{"style":199},[1773],{"type":48,"value":232},{"type":42,"tag":164,"props":1775,"children":1776},{"style":215},[1777],{"type":48,"value":1723},{"type":42,"tag":164,"props":1779,"children":1780},{"style":199},[1781],{"type":48,"value":212},{"type":42,"tag":164,"props":1783,"children":1784},{"style":199},[1785],{"type":48,"value":294},{"type":42,"tag":164,"props":1787,"children":1788},{"class":166,"line":177},[1789,1793,1797,1802,1806,1810,1814,1819,1823],{"type":42,"tag":164,"props":1790,"children":1791},{"style":181},[1792],{"type":48,"value":1556},{"type":42,"tag":164,"props":1794,"children":1795},{"style":199},[1796],{"type":48,"value":960},{"type":42,"tag":164,"props":1798,"children":1799},{"style":193},[1800],{"type":48,"value":1801}," getLocale",{"type":42,"tag":164,"props":1803,"children":1804},{"style":199},[1805],{"type":48,"value":1128},{"type":42,"tag":164,"props":1807,"children":1808},{"style":181},[1809],{"type":48,"value":1574},{"type":42,"tag":164,"props":1811,"children":1812},{"style":199},[1813],{"type":48,"value":232},{"type":42,"tag":164,"props":1815,"children":1816},{"style":215},[1817],{"type":48,"value":1818},"@\u002Flib\u002Fparams",{"type":42,"tag":164,"props":1820,"children":1821},{"style":199},[1822],{"type":48,"value":212},{"type":42,"tag":164,"props":1824,"children":1825},{"style":199},[1826],{"type":48,"value":294},{"type":42,"tag":164,"props":1828,"children":1829},{"class":166,"line":297},[1830],{"type":42,"tag":164,"props":1831,"children":1833},{"emptyLinePlaceholder":1832},true,[1834],{"type":48,"value":1835},"\n",{"type":42,"tag":164,"props":1837,"children":1838},{"class":166,"line":346},[1839,1843,1847,1851,1855,1859,1863,1868,1873,1878,1883,1887,1892,1896,1900,1904,1908],{"type":42,"tag":164,"props":1840,"children":1841},{"style":181},[1842],{"type":48,"value":1599},{"type":42,"tag":164,"props":1844,"children":1845},{"style":193},[1846],{"type":48,"value":1604},{"type":42,"tag":164,"props":1848,"children":1849},{"style":199},[1850],{"type":48,"value":1609},{"type":42,"tag":164,"props":1852,"children":1853},{"style":193},[1854],{"type":48,"value":1614},{"type":42,"tag":164,"props":1856,"children":1857},{"style":1617},[1858],{"type":48,"value":1620},{"type":42,"tag":164,"props":1860,"children":1861},{"style":193},[1862],{"type":48,"value":1625},{"type":42,"tag":164,"props":1864,"children":1865},{"style":199},[1866],{"type":48,"value":1867},"`",{"type":42,"tag":164,"props":1869,"children":1870},{"style":215},[1871],{"type":48,"value":1872},"\u002F",{"type":42,"tag":164,"props":1874,"children":1875},{"style":199},[1876],{"type":48,"value":1877},"${",{"type":42,"tag":164,"props":1879,"children":1880},{"style":181},[1881],{"type":48,"value":1882},"await",{"type":42,"tag":164,"props":1884,"children":1885},{"style":1617},[1886],{"type":48,"value":1801},{"type":42,"tag":164,"props":1888,"children":1889},{"style":193},[1890],{"type":48,"value":1891},"()",{"type":42,"tag":164,"props":1893,"children":1894},{"style":199},[1895],{"type":48,"value":1665},{"type":42,"tag":164,"props":1897,"children":1898},{"style":215},[1899],{"type":48,"value":1647},{"type":42,"tag":164,"props":1901,"children":1902},{"style":199},[1903],{"type":48,"value":1867},{"type":42,"tag":164,"props":1905,"children":1906},{"style":193},[1907],{"type":48,"value":1670},{"type":42,"tag":164,"props":1909,"children":1910},{"style":199},[1911],{"type":48,"value":294},{"type":42,"tag":164,"props":1913,"children":1914},{"class":166,"line":1020},[1915,1919,1923,1927],{"type":42,"tag":164,"props":1916,"children":1917},{"style":181},[1918],{"type":48,"value":1682},{"type":42,"tag":164,"props":1920,"children":1921},{"style":193},[1922],{"type":48,"value":1687},{"type":42,"tag":164,"props":1924,"children":1925},{"style":199},[1926],{"type":48,"value":1692},{"type":42,"tag":164,"props":1928,"children":1929},{"style":171},[1930],{"type":48,"value":1931}," \u002F\u002F OK, narrowed\n",{"type":42,"tag":97,"props":1933,"children":1935},{"id":1934},"step-by-step",[1936],{"type":48,"value":1937},"Step-by-step",{"type":42,"tag":585,"props":1939,"children":1941},{"id":1940},"step-1-routing-config",[1942],{"type":48,"value":1943},"Step 1: Routing config",{"type":42,"tag":51,"props":1945,"children":1946},{},[1947,1949,1954],{"type":48,"value":1948},"Create ",{"type":42,"tag":57,"props":1950,"children":1952},{"className":1951},[],[1953],{"type":48,"value":411},{"type":48,"value":316},{"type":42,"tag":153,"props":1956,"children":1958},{"className":155,"code":1957,"language":157,"meta":158,"style":158},"import { defineRouting } from \"next-intl\u002Frouting\";\nimport { defaultLocale, enabledLocales } from \".\";\n\nexport const routing = defineRouting({\n  locales: enabledLocales, \u002F\u002F pulled from lib\u002Fi18n\u002Findex.ts — never hardcode\n  defaultLocale,\n  localePrefix: \"always\",\n});\n",[1959],{"type":42,"tag":57,"props":1960,"children":1961},{"__ignoreMap":158},[1962,2003,2050,2057,2090,2115,2127,2156],{"type":42,"tag":164,"props":1963,"children":1964},{"class":166,"line":167},[1965,1969,1973,1978,1982,1986,1990,1995,1999],{"type":42,"tag":164,"props":1966,"children":1967},{"style":181},[1968],{"type":48,"value":1556},{"type":42,"tag":164,"props":1970,"children":1971},{"style":199},[1972],{"type":48,"value":960},{"type":42,"tag":164,"props":1974,"children":1975},{"style":193},[1976],{"type":48,"value":1977}," defineRouting",{"type":42,"tag":164,"props":1979,"children":1980},{"style":199},[1981],{"type":48,"value":1128},{"type":42,"tag":164,"props":1983,"children":1984},{"style":181},[1985],{"type":48,"value":1574},{"type":42,"tag":164,"props":1987,"children":1988},{"style":199},[1989],{"type":48,"value":232},{"type":42,"tag":164,"props":1991,"children":1992},{"style":215},[1993],{"type":48,"value":1994},"next-intl\u002Frouting",{"type":42,"tag":164,"props":1996,"children":1997},{"style":199},[1998],{"type":48,"value":212},{"type":42,"tag":164,"props":2000,"children":2001},{"style":199},[2002],{"type":48,"value":294},{"type":42,"tag":164,"props":2004,"children":2005},{"class":166,"line":177},[2006,2010,2014,2018,2022,2026,2030,2034,2038,2042,2046],{"type":42,"tag":164,"props":2007,"children":2008},{"style":181},[2009],{"type":48,"value":1556},{"type":42,"tag":164,"props":2011,"children":2012},{"style":199},[2013],{"type":48,"value":960},{"type":42,"tag":164,"props":2015,"children":2016},{"style":193},[2017],{"type":48,"value":311},{"type":42,"tag":164,"props":2019,"children":2020},{"style":199},[2021],{"type":48,"value":227},{"type":42,"tag":164,"props":2023,"children":2024},{"style":193},[2025],{"type":48,"value":360},{"type":42,"tag":164,"props":2027,"children":2028},{"style":199},[2029],{"type":48,"value":1128},{"type":42,"tag":164,"props":2031,"children":2032},{"style":181},[2033],{"type":48,"value":1574},{"type":42,"tag":164,"props":2035,"children":2036},{"style":199},[2037],{"type":48,"value":232},{"type":42,"tag":164,"props":2039,"children":2040},{"style":215},[2041],{"type":48,"value":647},{"type":42,"tag":164,"props":2043,"children":2044},{"style":199},[2045],{"type":48,"value":212},{"type":42,"tag":164,"props":2047,"children":2048},{"style":199},[2049],{"type":48,"value":294},{"type":42,"tag":164,"props":2051,"children":2052},{"class":166,"line":297},[2053],{"type":42,"tag":164,"props":2054,"children":2055},{"emptyLinePlaceholder":1832},[2056],{"type":48,"value":1835},{"type":42,"tag":164,"props":2058,"children":2059},{"class":166,"line":346},[2060,2064,2068,2073,2077,2081,2085],{"type":42,"tag":164,"props":2061,"children":2062},{"style":181},[2063],{"type":48,"value":184},{"type":42,"tag":164,"props":2065,"children":2066},{"style":187},[2067],{"type":48,"value":190},{"type":42,"tag":164,"props":2069,"children":2070},{"style":193},[2071],{"type":48,"value":2072}," routing ",{"type":42,"tag":164,"props":2074,"children":2075},{"style":199},[2076],{"type":48,"value":202},{"type":42,"tag":164,"props":2078,"children":2079},{"style":1617},[2080],{"type":48,"value":1977},{"type":42,"tag":164,"props":2082,"children":2083},{"style":193},[2084],{"type":48,"value":1625},{"type":42,"tag":164,"props":2086,"children":2087},{"style":199},[2088],{"type":48,"value":2089},"{\n",{"type":42,"tag":164,"props":2091,"children":2092},{"class":166,"line":1020},[2093,2098,2102,2106,2110],{"type":42,"tag":164,"props":2094,"children":2095},{"style":923},[2096],{"type":48,"value":2097},"  locales",{"type":42,"tag":164,"props":2099,"children":2100},{"style":199},[2101],{"type":48,"value":316},{"type":42,"tag":164,"props":2103,"children":2104},{"style":193},[2105],{"type":48,"value":360},{"type":42,"tag":164,"props":2107,"children":2108},{"style":199},[2109],{"type":48,"value":227},{"type":42,"tag":164,"props":2111,"children":2112},{"style":171},[2113],{"type":48,"value":2114}," \u002F\u002F pulled from lib\u002Fi18n\u002Findex.ts — never hardcode\n",{"type":42,"tag":164,"props":2116,"children":2117},{"class":166,"line":1064},[2118,2123],{"type":42,"tag":164,"props":2119,"children":2120},{"style":193},[2121],{"type":48,"value":2122},"  defaultLocale",{"type":42,"tag":164,"props":2124,"children":2125},{"style":199},[2126],{"type":48,"value":1138},{"type":42,"tag":164,"props":2128,"children":2129},{"class":166,"line":1141},[2130,2135,2139,2143,2148,2152],{"type":42,"tag":164,"props":2131,"children":2132},{"style":923},[2133],{"type":48,"value":2134},"  localePrefix",{"type":42,"tag":164,"props":2136,"children":2137},{"style":199},[2138],{"type":48,"value":316},{"type":42,"tag":164,"props":2140,"children":2141},{"style":199},[2142],{"type":48,"value":232},{"type":42,"tag":164,"props":2144,"children":2145},{"style":215},[2146],{"type":48,"value":2147},"always",{"type":42,"tag":164,"props":2149,"children":2150},{"style":199},[2151],{"type":48,"value":212},{"type":42,"tag":164,"props":2153,"children":2154},{"style":199},[2155],{"type":48,"value":1138},{"type":42,"tag":164,"props":2157,"children":2158},{"class":166,"line":1150},[2159,2163,2167],{"type":42,"tag":164,"props":2160,"children":2161},{"style":199},[2162],{"type":48,"value":1665},{"type":42,"tag":164,"props":2164,"children":2165},{"style":193},[2166],{"type":48,"value":1670},{"type":42,"tag":164,"props":2168,"children":2169},{"style":199},[2170],{"type":48,"value":294},{"type":42,"tag":51,"props":2172,"children":2173},{},[2174,2175,2180],{"type":48,"value":1948},{"type":42,"tag":57,"props":2176,"children":2178},{"className":2177},[],[2179],{"type":48,"value":418},{"type":48,"value":316},{"type":42,"tag":153,"props":2182,"children":2184},{"className":155,"code":2183,"language":157,"meta":158,"style":158},"import { createNavigation } from \"next-intl\u002Fnavigation\";\nimport { routing } from \".\u002Frouting\";\n\nexport const { Link, redirect, usePathname, useRouter } = createNavigation(routing);\n",[2185],{"type":42,"tag":57,"props":2186,"children":2187},{"__ignoreMap":158},[2188,2229,2270,2277],{"type":42,"tag":164,"props":2189,"children":2190},{"class":166,"line":167},[2191,2195,2199,2204,2208,2212,2216,2221,2225],{"type":42,"tag":164,"props":2192,"children":2193},{"style":181},[2194],{"type":48,"value":1556},{"type":42,"tag":164,"props":2196,"children":2197},{"style":199},[2198],{"type":48,"value":960},{"type":42,"tag":164,"props":2200,"children":2201},{"style":193},[2202],{"type":48,"value":2203}," createNavigation",{"type":42,"tag":164,"props":2205,"children":2206},{"style":199},[2207],{"type":48,"value":1128},{"type":42,"tag":164,"props":2209,"children":2210},{"style":181},[2211],{"type":48,"value":1574},{"type":42,"tag":164,"props":2213,"children":2214},{"style":199},[2215],{"type":48,"value":232},{"type":42,"tag":164,"props":2217,"children":2218},{"style":215},[2219],{"type":48,"value":2220},"next-intl\u002Fnavigation",{"type":42,"tag":164,"props":2222,"children":2223},{"style":199},[2224],{"type":48,"value":212},{"type":42,"tag":164,"props":2226,"children":2227},{"style":199},[2228],{"type":48,"value":294},{"type":42,"tag":164,"props":2230,"children":2231},{"class":166,"line":177},[2232,2236,2240,2245,2249,2253,2257,2262,2266],{"type":42,"tag":164,"props":2233,"children":2234},{"style":181},[2235],{"type":48,"value":1556},{"type":42,"tag":164,"props":2237,"children":2238},{"style":199},[2239],{"type":48,"value":960},{"type":42,"tag":164,"props":2241,"children":2242},{"style":193},[2243],{"type":48,"value":2244}," routing",{"type":42,"tag":164,"props":2246,"children":2247},{"style":199},[2248],{"type":48,"value":1128},{"type":42,"tag":164,"props":2250,"children":2251},{"style":181},[2252],{"type":48,"value":1574},{"type":42,"tag":164,"props":2254,"children":2255},{"style":199},[2256],{"type":48,"value":232},{"type":42,"tag":164,"props":2258,"children":2259},{"style":215},[2260],{"type":48,"value":2261},".\u002Frouting",{"type":42,"tag":164,"props":2263,"children":2264},{"style":199},[2265],{"type":48,"value":212},{"type":42,"tag":164,"props":2267,"children":2268},{"style":199},[2269],{"type":48,"value":294},{"type":42,"tag":164,"props":2271,"children":2272},{"class":166,"line":297},[2273],{"type":42,"tag":164,"props":2274,"children":2275},{"emptyLinePlaceholder":1832},[2276],{"type":48,"value":1835},{"type":42,"tag":164,"props":2278,"children":2279},{"class":166,"line":346},[2280,2284,2288,2292,2297,2301,2305,2309,2314,2318,2323,2327,2331,2335,2340],{"type":42,"tag":164,"props":2281,"children":2282},{"style":181},[2283],{"type":48,"value":184},{"type":42,"tag":164,"props":2285,"children":2286},{"style":187},[2287],{"type":48,"value":190},{"type":42,"tag":164,"props":2289,"children":2290},{"style":199},[2291],{"type":48,"value":960},{"type":42,"tag":164,"props":2293,"children":2294},{"style":193},[2295],{"type":48,"value":2296}," Link",{"type":42,"tag":164,"props":2298,"children":2299},{"style":199},[2300],{"type":48,"value":227},{"type":42,"tag":164,"props":2302,"children":2303},{"style":193},[2304],{"type":48,"value":1565},{"type":42,"tag":164,"props":2306,"children":2307},{"style":199},[2308],{"type":48,"value":227},{"type":42,"tag":164,"props":2310,"children":2311},{"style":193},[2312],{"type":48,"value":2313}," usePathname",{"type":42,"tag":164,"props":2315,"children":2316},{"style":199},[2317],{"type":48,"value":227},{"type":42,"tag":164,"props":2319,"children":2320},{"style":193},[2321],{"type":48,"value":2322}," useRouter ",{"type":42,"tag":164,"props":2324,"children":2325},{"style":199},[2326],{"type":48,"value":1665},{"type":42,"tag":164,"props":2328,"children":2329},{"style":199},[2330],{"type":48,"value":327},{"type":42,"tag":164,"props":2332,"children":2333},{"style":1617},[2334],{"type":48,"value":2203},{"type":42,"tag":164,"props":2336,"children":2337},{"style":193},[2338],{"type":48,"value":2339},"(routing)",{"type":42,"tag":164,"props":2341,"children":2342},{"style":199},[2343],{"type":48,"value":294},{"type":42,"tag":74,"props":2345,"children":2346},{},[2347],{"type":42,"tag":51,"props":2348,"children":2349},{},[2350,2352,2358,2360,2365],{"type":48,"value":2351},"Per \"Cache Components compatibility C\" above, ",{"type":42,"tag":57,"props":2353,"children":2355},{"className":2354},[],[2356],{"type":48,"value":2357},"Link",{"type":48,"value":2359}," here is mostly used by the locale switcher \u002F programmatic routing in client components — not as a wholesale replacement for ",{"type":42,"tag":57,"props":2361,"children":2363},{"className":2362},[],[2364],{"type":48,"value":693},{"type":48,"value":647},{"type":42,"tag":585,"props":2367,"children":2369},{"id":2368},"step-2-move-routes-under-applocale",[2370,2372],{"type":48,"value":2371},"Step 2: Move routes under ",{"type":42,"tag":57,"props":2373,"children":2375},{"className":2374},[],[2376],{"type":48,"value":431},{"type":42,"tag":51,"props":2378,"children":2379},{},[2380,2382,2388,2390,2395],{"type":48,"value":2381},"Move every route file from ",{"type":42,"tag":57,"props":2383,"children":2385},{"className":2384},[],[2386],{"type":48,"value":2387},"app\u002F",{"type":48,"value":2389}," into ",{"type":42,"tag":57,"props":2391,"children":2393},{"className":2392},[],[2394],{"type":48,"value":431},{"type":48,"value":316},{"type":42,"tag":2397,"props":2398,"children":2399},"ul",{},[2400,2430,2460],{"type":42,"tag":403,"props":2401,"children":2402},{},[2403,2408,2409,2414,2416,2428],{"type":42,"tag":57,"props":2404,"children":2406},{"className":2405},[],[2407],{"type":48,"value":596},{"type":48,"value":774},{"type":42,"tag":57,"props":2410,"children":2412},{"className":2411},[],[2413],{"type":48,"value":629},{"type":48,"value":2415}," (becomes the root layout for the locale segment). ",{"type":42,"tag":81,"props":2417,"children":2418},{},[2419,2421,2426],{"type":48,"value":2420},"Delete the original ",{"type":42,"tag":57,"props":2422,"children":2424},{"className":2423},[],[2425],{"type":48,"value":596},{"type":48,"value":2427}," after the move",{"type":48,"value":2429}," — see compatibility A above; both files cannot coexist.",{"type":42,"tag":403,"props":2431,"children":2432},{},[2433,2439,2440,2446,2447,2453,2454],{"type":42,"tag":57,"props":2434,"children":2436},{"className":2435},[],[2437],{"type":48,"value":2438},"app\u002Fpage.tsx",{"type":48,"value":794},{"type":42,"tag":57,"props":2441,"children":2443},{"className":2442},[],[2444],{"type":48,"value":2445},"app\u002Ferror.tsx",{"type":48,"value":794},{"type":42,"tag":57,"props":2448,"children":2450},{"className":2449},[],[2451],{"type":48,"value":2452},"app\u002Fnot-found.tsx",{"type":48,"value":774},{"type":42,"tag":57,"props":2455,"children":2457},{"className":2456},[],[2458],{"type":48,"value":2459},"app\u002F[locale]\u002F...",{"type":42,"tag":403,"props":2461,"children":2462},{},[2463,2469,2470,2476,2477,2483,2484,2490,2491,2497,2498,2504,2505,2511,2512],{"type":42,"tag":57,"props":2464,"children":2466},{"className":2465},[],[2467],{"type":48,"value":2468},"app\u002Faccount\u002F",{"type":48,"value":794},{"type":42,"tag":57,"props":2471,"children":2473},{"className":2472},[],[2474],{"type":48,"value":2475},"app\u002Fcart\u002F",{"type":48,"value":794},{"type":42,"tag":57,"props":2478,"children":2480},{"className":2479},[],[2481],{"type":48,"value":2482},"app\u002Fcollections\u002F",{"type":48,"value":794},{"type":42,"tag":57,"props":2485,"children":2487},{"className":2486},[],[2488],{"type":48,"value":2489},"app\u002Fpages\u002F",{"type":48,"value":794},{"type":42,"tag":57,"props":2492,"children":2494},{"className":2493},[],[2495],{"type":48,"value":2496},"app\u002Fpolicies\u002F",{"type":48,"value":794},{"type":42,"tag":57,"props":2499,"children":2501},{"className":2500},[],[2502],{"type":48,"value":2503},"app\u002Fproducts\u002F",{"type":48,"value":794},{"type":42,"tag":57,"props":2506,"children":2508},{"className":2507},[],[2509],{"type":48,"value":2510},"app\u002Fsearch\u002F",{"type":48,"value":774},{"type":42,"tag":57,"props":2513,"children":2515},{"className":2514},[],[2516],{"type":48,"value":2459},{"type":42,"tag":51,"props":2518,"children":2519},{},[2520,2531,2532,2538,2539,2545,2546,2552,2553,2559,2560,2566,2567,2573,2574,2580],{"type":42,"tag":81,"props":2521,"children":2522},{},[2523,2525,2530],{"type":48,"value":2524},"Stay at ",{"type":42,"tag":57,"props":2526,"children":2528},{"className":2527},[],[2529],{"type":48,"value":2387},{"type":48,"value":316},{"type":48,"value":461},{"type":42,"tag":57,"props":2533,"children":2535},{"className":2534},[],[2536],{"type":48,"value":2537},"api\u002F",{"type":48,"value":794},{"type":42,"tag":57,"props":2540,"children":2542},{"className":2541},[],[2543],{"type":48,"value":2544},"sitemap.xml\u002F",{"type":48,"value":794},{"type":42,"tag":57,"props":2547,"children":2549},{"className":2548},[],[2550],{"type":48,"value":2551},"sitemap\u002F",{"type":48,"value":794},{"type":42,"tag":57,"props":2554,"children":2556},{"className":2555},[],[2557],{"type":48,"value":2558},"robots.ts",{"type":48,"value":794},{"type":42,"tag":57,"props":2561,"children":2563},{"className":2562},[],[2564],{"type":48,"value":2565},"global-error.tsx",{"type":48,"value":794},{"type":42,"tag":57,"props":2568,"children":2570},{"className":2569},[],[2571],{"type":48,"value":2572},"globals.css",{"type":48,"value":794},{"type":42,"tag":57,"props":2575,"children":2577},{"className":2576},[],[2578],{"type":48,"value":2579},"favicon.ico",{"type":48,"value":647},{"type":42,"tag":51,"props":2582,"children":2583},{},[2584,2586,2592,2593,2599],{"type":48,"value":2585},"In the moved layout, fix ",{"type":42,"tag":57,"props":2587,"children":2589},{"className":2588},[],[2590],{"type":48,"value":2591},"import \".\u002Fglobals.css\"",{"type":48,"value":774},{"type":42,"tag":57,"props":2594,"children":2596},{"className":2595},[],[2597],{"type":48,"value":2598},"import \"..\u002Fglobals.css\"",{"type":48,"value":647},{"type":42,"tag":51,"props":2601,"children":2602},{},[2603,2605,2611,2612,2618,2620,2626,2627,2633],{"type":48,"value":2604},"Update every ",{"type":42,"tag":57,"props":2606,"children":2608},{"className":2607},[],[2609],{"type":48,"value":2610},"PageProps\u003C\"\u002Ffoo\">",{"type":48,"value":128},{"type":42,"tag":57,"props":2613,"children":2615},{"className":2614},[],[2616],{"type":48,"value":2617},"LayoutProps\u003C\"\u002Ffoo\">",{"type":48,"value":2619}," generic to include the locale segment: ",{"type":42,"tag":57,"props":2621,"children":2623},{"className":2622},[],[2624],{"type":48,"value":2625},"PageProps\u003C\"\u002F[locale]\u002Fproducts\u002F[handle]\">",{"type":48,"value":794},{"type":42,"tag":57,"props":2628,"children":2630},{"className":2629},[],[2631],{"type":48,"value":2632},"LayoutProps\u003C\"\u002F[locale]\">",{"type":48,"value":2634},", etc.",{"type":42,"tag":585,"props":2636,"children":2638},{"id":2637},"step-3-libparamsts-reads-from-root-params",[2639,2641,2646],{"type":48,"value":2640},"Step 3: ",{"type":42,"tag":57,"props":2642,"children":2644},{"className":2643},[],[2645],{"type":48,"value":459},{"type":48,"value":2647}," reads from root params",{"type":42,"tag":153,"props":2649,"children":2651},{"className":155,"code":2650,"language":157,"meta":158,"style":158},"import { notFound } from \"next\u002Fnavigation\";\nimport { locale as rootLocale } from \"next\u002Froot-params\";\nimport { type Locale, locales } from \".\u002Fi18n\";\n\nexport async function getLocale(): Promise\u003CLocale> {\n  const current = await rootLocale();\n  if (!current || !locales.includes(current as Locale)) notFound();\n  return current as Locale;\n}\n",[2652],{"type":42,"tag":57,"props":2653,"children":2654},{"__ignoreMap":158},[2655,2695,2744,2797,2804,2854,2888,2966,2990],{"type":42,"tag":164,"props":2656,"children":2657},{"class":166,"line":167},[2658,2662,2666,2671,2675,2679,2683,2687,2691],{"type":42,"tag":164,"props":2659,"children":2660},{"style":181},[2661],{"type":48,"value":1556},{"type":42,"tag":164,"props":2663,"children":2664},{"style":199},[2665],{"type":48,"value":960},{"type":42,"tag":164,"props":2667,"children":2668},{"style":193},[2669],{"type":48,"value":2670}," notFound",{"type":42,"tag":164,"props":2672,"children":2673},{"style":199},[2674],{"type":48,"value":1128},{"type":42,"tag":164,"props":2676,"children":2677},{"style":181},[2678],{"type":48,"value":1574},{"type":42,"tag":164,"props":2680,"children":2681},{"style":199},[2682],{"type":48,"value":232},{"type":42,"tag":164,"props":2684,"children":2685},{"style":215},[2686],{"type":48,"value":1723},{"type":42,"tag":164,"props":2688,"children":2689},{"style":199},[2690],{"type":48,"value":212},{"type":42,"tag":164,"props":2692,"children":2693},{"style":199},[2694],{"type":48,"value":294},{"type":42,"tag":164,"props":2696,"children":2697},{"class":166,"line":177},[2698,2702,2706,2710,2715,2720,2724,2728,2732,2736,2740],{"type":42,"tag":164,"props":2699,"children":2700},{"style":181},[2701],{"type":48,"value":1556},{"type":42,"tag":164,"props":2703,"children":2704},{"style":199},[2705],{"type":48,"value":960},{"type":42,"tag":164,"props":2707,"children":2708},{"style":193},[2709],{"type":48,"value":965},{"type":42,"tag":164,"props":2711,"children":2712},{"style":181},[2713],{"type":48,"value":2714}," as",{"type":42,"tag":164,"props":2716,"children":2717},{"style":193},[2718],{"type":48,"value":2719}," rootLocale",{"type":42,"tag":164,"props":2721,"children":2722},{"style":199},[2723],{"type":48,"value":1128},{"type":42,"tag":164,"props":2725,"children":2726},{"style":181},[2727],{"type":48,"value":1574},{"type":42,"tag":164,"props":2729,"children":2730},{"style":199},[2731],{"type":48,"value":232},{"type":42,"tag":164,"props":2733,"children":2734},{"style":215},[2735],{"type":48,"value":475},{"type":42,"tag":164,"props":2737,"children":2738},{"style":199},[2739],{"type":48,"value":212},{"type":42,"tag":164,"props":2741,"children":2742},{"style":199},[2743],{"type":48,"value":294},{"type":42,"tag":164,"props":2745,"children":2746},{"class":166,"line":297},[2747,2751,2755,2760,2764,2768,2772,2776,2780,2784,2789,2793],{"type":42,"tag":164,"props":2748,"children":2749},{"style":181},[2750],{"type":48,"value":1556},{"type":42,"tag":164,"props":2752,"children":2753},{"style":199},[2754],{"type":48,"value":960},{"type":42,"tag":164,"props":2756,"children":2757},{"style":181},[2758],{"type":48,"value":2759}," type",{"type":42,"tag":164,"props":2761,"children":2762},{"style":193},[2763],{"type":48,"value":322},{"type":42,"tag":164,"props":2765,"children":2766},{"style":199},[2767],{"type":48,"value":227},{"type":42,"tag":164,"props":2769,"children":2770},{"style":193},[2771],{"type":48,"value":387},{"type":42,"tag":164,"props":2773,"children":2774},{"style":199},[2775],{"type":48,"value":1128},{"type":42,"tag":164,"props":2777,"children":2778},{"style":181},[2779],{"type":48,"value":1574},{"type":42,"tag":164,"props":2781,"children":2782},{"style":199},[2783],{"type":48,"value":232},{"type":42,"tag":164,"props":2785,"children":2786},{"style":215},[2787],{"type":48,"value":2788},".\u002Fi18n",{"type":42,"tag":164,"props":2790,"children":2791},{"style":199},[2792],{"type":48,"value":212},{"type":42,"tag":164,"props":2794,"children":2795},{"style":199},[2796],{"type":48,"value":294},{"type":42,"tag":164,"props":2798,"children":2799},{"class":166,"line":346},[2800],{"type":42,"tag":164,"props":2801,"children":2802},{"emptyLinePlaceholder":1832},[2803],{"type":48,"value":1835},{"type":42,"tag":164,"props":2805,"children":2806},{"class":166,"line":1020},[2807,2811,2816,2821,2825,2830,2835,2840,2845,2850],{"type":42,"tag":164,"props":2808,"children":2809},{"style":181},[2810],{"type":48,"value":184},{"type":42,"tag":164,"props":2812,"children":2813},{"style":187},[2814],{"type":48,"value":2815}," async",{"type":42,"tag":164,"props":2817,"children":2818},{"style":187},[2819],{"type":48,"value":2820}," function",{"type":42,"tag":164,"props":2822,"children":2823},{"style":1617},[2824],{"type":48,"value":1801},{"type":42,"tag":164,"props":2826,"children":2827},{"style":199},[2828],{"type":48,"value":2829},"():",{"type":42,"tag":164,"props":2831,"children":2832},{"style":319},[2833],{"type":48,"value":2834}," Promise",{"type":42,"tag":164,"props":2836,"children":2837},{"style":199},[2838],{"type":48,"value":2839},"\u003C",{"type":42,"tag":164,"props":2841,"children":2842},{"style":319},[2843],{"type":48,"value":2844},"Locale",{"type":42,"tag":164,"props":2846,"children":2847},{"style":199},[2848],{"type":48,"value":2849},">",{"type":42,"tag":164,"props":2851,"children":2852},{"style":199},[2853],{"type":48,"value":917},{"type":42,"tag":164,"props":2855,"children":2856},{"class":166,"line":1064},[2857,2862,2867,2871,2876,2880,2884],{"type":42,"tag":164,"props":2858,"children":2859},{"style":187},[2860],{"type":48,"value":2861},"  const",{"type":42,"tag":164,"props":2863,"children":2864},{"style":193},[2865],{"type":48,"value":2866}," current",{"type":42,"tag":164,"props":2868,"children":2869},{"style":199},[2870],{"type":48,"value":327},{"type":42,"tag":164,"props":2872,"children":2873},{"style":181},[2874],{"type":48,"value":2875}," await",{"type":42,"tag":164,"props":2877,"children":2878},{"style":1617},[2879],{"type":48,"value":2719},{"type":42,"tag":164,"props":2881,"children":2882},{"style":923},[2883],{"type":48,"value":1891},{"type":42,"tag":164,"props":2885,"children":2886},{"style":199},[2887],{"type":48,"value":294},{"type":42,"tag":164,"props":2889,"children":2890},{"class":166,"line":1141},[2891,2896,2900,2904,2909,2914,2919,2923,2927,2932,2936,2940,2944,2948,2953,2958,2962],{"type":42,"tag":164,"props":2892,"children":2893},{"style":181},[2894],{"type":48,"value":2895},"  if",{"type":42,"tag":164,"props":2897,"children":2898},{"style":923},[2899],{"type":48,"value":1604},{"type":42,"tag":164,"props":2901,"children":2902},{"style":199},[2903],{"type":48,"value":1609},{"type":42,"tag":164,"props":2905,"children":2906},{"style":193},[2907],{"type":48,"value":2908},"current",{"type":42,"tag":164,"props":2910,"children":2911},{"style":199},[2912],{"type":48,"value":2913}," ||",{"type":42,"tag":164,"props":2915,"children":2916},{"style":199},[2917],{"type":48,"value":2918}," !",{"type":42,"tag":164,"props":2920,"children":2921},{"style":193},[2922],{"type":48,"value":126},{"type":42,"tag":164,"props":2924,"children":2925},{"style":199},[2926],{"type":48,"value":647},{"type":42,"tag":164,"props":2928,"children":2929},{"style":1617},[2930],{"type":48,"value":2931},"includes",{"type":42,"tag":164,"props":2933,"children":2934},{"style":923},[2935],{"type":48,"value":1625},{"type":42,"tag":164,"props":2937,"children":2938},{"style":193},[2939],{"type":48,"value":2908},{"type":42,"tag":164,"props":2941,"children":2942},{"style":181},[2943],{"type":48,"value":2714},{"type":42,"tag":164,"props":2945,"children":2946},{"style":319},[2947],{"type":48,"value":322},{"type":42,"tag":164,"props":2949,"children":2950},{"style":923},[2951],{"type":48,"value":2952},")) ",{"type":42,"tag":164,"props":2954,"children":2955},{"style":1617},[2956],{"type":48,"value":2957},"notFound",{"type":42,"tag":164,"props":2959,"children":2960},{"style":923},[2961],{"type":48,"value":1891},{"type":42,"tag":164,"props":2963,"children":2964},{"style":199},[2965],{"type":48,"value":294},{"type":42,"tag":164,"props":2967,"children":2968},{"class":166,"line":1150},[2969,2974,2978,2982,2986],{"type":42,"tag":164,"props":2970,"children":2971},{"style":181},[2972],{"type":48,"value":2973},"  return",{"type":42,"tag":164,"props":2975,"children":2976},{"style":193},[2977],{"type":48,"value":2866},{"type":42,"tag":164,"props":2979,"children":2980},{"style":181},[2981],{"type":48,"value":2714},{"type":42,"tag":164,"props":2983,"children":2984},{"style":319},[2985],{"type":48,"value":322},{"type":42,"tag":164,"props":2987,"children":2988},{"style":199},[2989],{"type":48,"value":294},{"type":42,"tag":164,"props":2991,"children":2992},{"class":166,"line":29},[2993],{"type":42,"tag":164,"props":2994,"children":2995},{"style":199},[2996],{"type":48,"value":2997},"}\n",{"type":42,"tag":585,"props":2999,"children":3001},{"id":3000},"step-4-libi18nrequestts-loads-messages-by-resolved-locale",[3002,3004,3009],{"type":48,"value":3003},"Step 4: ",{"type":42,"tag":57,"props":3005,"children":3007},{"className":3006},[],[3008],{"type":48,"value":484},{"type":48,"value":3010}," loads messages by resolved locale",{"type":42,"tag":153,"props":3012,"children":3014},{"className":155,"code":3013,"language":157,"meta":158,"style":158},"import { hasLocale } from \"next-intl\";\nimport { getRequestConfig } from \"next-intl\u002Fserver\";\nimport { getLocale } from \"..\u002Fparams\";\nimport type enMessages from \".\u002Fmessages\u002Fen.json\";\nimport { routing } from \".\u002Frouting\";\n\nconst messageLoaders: Record\u003Cstring, () => Promise\u003C{ default: typeof enMessages }>> = {\n  \"en-US\": () => import(\".\u002Fmessages\u002Fen.json\"),\n  \u002F\u002F Add per-locale loaders as you ship message files. Missing locales fall\n  \u002F\u002F back to the default locale loader.\n};\n\n\u002F\u002F We intentionally do NOT destructure `{ locale }` from the callback args.\n\u002F\u002F next-intl populates that arg from the `x-next-intl-locale` request header,\n\u002F\u002F and reading request headers from inside a cached tree forces the route\n\u002F\u002F dynamic — every `instant` sample then needs an explicit\n\u002F\u002F `headers: [[\"x-next-intl-locale\", null]]` declaration. Going straight to\n\u002F\u002F `getLocale()` (which reads `next\u002Froot-params`) keeps the lookup cacheable.\nexport default getRequestConfig(async () => {\n  const requested = await getLocale();\n  const locale = hasLocale(routing.locales, requested) ? requested : routing.defaultLocale;\n  const loader = messageLoaders[locale] ?? messageLoaders[routing.defaultLocale];\n  const messages = (await loader()).default as typeof enMessages;\n  return { locale, messages };\n});\n",[3015],{"type":42,"tag":57,"props":3016,"children":3017},{"__ignoreMap":158},[3018,3059,3100,3140,3178,3217,3224,3309,3366,3374,3383,3391,3399,3408,3417,3426,3435,3444,3453,3490,3523,3603,3670,3730,3759],{"type":42,"tag":164,"props":3019,"children":3020},{"class":166,"line":167},[3021,3025,3029,3034,3038,3042,3046,3051,3055],{"type":42,"tag":164,"props":3022,"children":3023},{"style":181},[3024],{"type":48,"value":1556},{"type":42,"tag":164,"props":3026,"children":3027},{"style":199},[3028],{"type":48,"value":960},{"type":42,"tag":164,"props":3030,"children":3031},{"style":193},[3032],{"type":48,"value":3033}," hasLocale",{"type":42,"tag":164,"props":3035,"children":3036},{"style":199},[3037],{"type":48,"value":1128},{"type":42,"tag":164,"props":3039,"children":3040},{"style":181},[3041],{"type":48,"value":1574},{"type":42,"tag":164,"props":3043,"children":3044},{"style":199},[3045],{"type":48,"value":232},{"type":42,"tag":164,"props":3047,"children":3048},{"style":215},[3049],{"type":48,"value":3050},"next-intl",{"type":42,"tag":164,"props":3052,"children":3053},{"style":199},[3054],{"type":48,"value":212},{"type":42,"tag":164,"props":3056,"children":3057},{"style":199},[3058],{"type":48,"value":294},{"type":42,"tag":164,"props":3060,"children":3061},{"class":166,"line":177},[3062,3066,3070,3075,3079,3083,3087,3092,3096],{"type":42,"tag":164,"props":3063,"children":3064},{"style":181},[3065],{"type":48,"value":1556},{"type":42,"tag":164,"props":3067,"children":3068},{"style":199},[3069],{"type":48,"value":960},{"type":42,"tag":164,"props":3071,"children":3072},{"style":193},[3073],{"type":48,"value":3074}," getRequestConfig",{"type":42,"tag":164,"props":3076,"children":3077},{"style":199},[3078],{"type":48,"value":1128},{"type":42,"tag":164,"props":3080,"children":3081},{"style":181},[3082],{"type":48,"value":1574},{"type":42,"tag":164,"props":3084,"children":3085},{"style":199},[3086],{"type":48,"value":232},{"type":42,"tag":164,"props":3088,"children":3089},{"style":215},[3090],{"type":48,"value":3091},"next-intl\u002Fserver",{"type":42,"tag":164,"props":3093,"children":3094},{"style":199},[3095],{"type":48,"value":212},{"type":42,"tag":164,"props":3097,"children":3098},{"style":199},[3099],{"type":48,"value":294},{"type":42,"tag":164,"props":3101,"children":3102},{"class":166,"line":297},[3103,3107,3111,3115,3119,3123,3127,3132,3136],{"type":42,"tag":164,"props":3104,"children":3105},{"style":181},[3106],{"type":48,"value":1556},{"type":42,"tag":164,"props":3108,"children":3109},{"style":199},[3110],{"type":48,"value":960},{"type":42,"tag":164,"props":3112,"children":3113},{"style":193},[3114],{"type":48,"value":1801},{"type":42,"tag":164,"props":3116,"children":3117},{"style":199},[3118],{"type":48,"value":1128},{"type":42,"tag":164,"props":3120,"children":3121},{"style":181},[3122],{"type":48,"value":1574},{"type":42,"tag":164,"props":3124,"children":3125},{"style":199},[3126],{"type":48,"value":232},{"type":42,"tag":164,"props":3128,"children":3129},{"style":215},[3130],{"type":48,"value":3131},"..\u002Fparams",{"type":42,"tag":164,"props":3133,"children":3134},{"style":199},[3135],{"type":48,"value":212},{"type":42,"tag":164,"props":3137,"children":3138},{"style":199},[3139],{"type":48,"value":294},{"type":42,"tag":164,"props":3141,"children":3142},{"class":166,"line":346},[3143,3147,3151,3156,3161,3165,3170,3174],{"type":42,"tag":164,"props":3144,"children":3145},{"style":181},[3146],{"type":48,"value":1556},{"type":42,"tag":164,"props":3148,"children":3149},{"style":181},[3150],{"type":48,"value":2759},{"type":42,"tag":164,"props":3152,"children":3153},{"style":193},[3154],{"type":48,"value":3155}," enMessages ",{"type":42,"tag":164,"props":3157,"children":3158},{"style":181},[3159],{"type":48,"value":3160},"from",{"type":42,"tag":164,"props":3162,"children":3163},{"style":199},[3164],{"type":48,"value":232},{"type":42,"tag":164,"props":3166,"children":3167},{"style":215},[3168],{"type":48,"value":3169},".\u002Fmessages\u002Fen.json",{"type":42,"tag":164,"props":3171,"children":3172},{"style":199},[3173],{"type":48,"value":212},{"type":42,"tag":164,"props":3175,"children":3176},{"style":199},[3177],{"type":48,"value":294},{"type":42,"tag":164,"props":3179,"children":3180},{"class":166,"line":1020},[3181,3185,3189,3193,3197,3201,3205,3209,3213],{"type":42,"tag":164,"props":3182,"children":3183},{"style":181},[3184],{"type":48,"value":1556},{"type":42,"tag":164,"props":3186,"children":3187},{"style":199},[3188],{"type":48,"value":960},{"type":42,"tag":164,"props":3190,"children":3191},{"style":193},[3192],{"type":48,"value":2244},{"type":42,"tag":164,"props":3194,"children":3195},{"style":199},[3196],{"type":48,"value":1128},{"type":42,"tag":164,"props":3198,"children":3199},{"style":181},[3200],{"type":48,"value":1574},{"type":42,"tag":164,"props":3202,"children":3203},{"style":199},[3204],{"type":48,"value":232},{"type":42,"tag":164,"props":3206,"children":3207},{"style":215},[3208],{"type":48,"value":2261},{"type":42,"tag":164,"props":3210,"children":3211},{"style":199},[3212],{"type":48,"value":212},{"type":42,"tag":164,"props":3214,"children":3215},{"style":199},[3216],{"type":48,"value":294},{"type":42,"tag":164,"props":3218,"children":3219},{"class":166,"line":1064},[3220],{"type":42,"tag":164,"props":3221,"children":3222},{"emptyLinePlaceholder":1832},[3223],{"type":48,"value":1835},{"type":42,"tag":164,"props":3225,"children":3226},{"class":166,"line":1141},[3227,3232,3237,3241,3246,3250,3255,3259,3264,3269,3273,3278,3283,3287,3292,3296,3301,3305],{"type":42,"tag":164,"props":3228,"children":3229},{"style":187},[3230],{"type":48,"value":3231},"const",{"type":42,"tag":164,"props":3233,"children":3234},{"style":193},[3235],{"type":48,"value":3236}," messageLoaders",{"type":42,"tag":164,"props":3238,"children":3239},{"style":199},[3240],{"type":48,"value":316},{"type":42,"tag":164,"props":3242,"children":3243},{"style":319},[3244],{"type":48,"value":3245}," Record",{"type":42,"tag":164,"props":3247,"children":3248},{"style":199},[3249],{"type":48,"value":2839},{"type":42,"tag":164,"props":3251,"children":3252},{"style":319},[3253],{"type":48,"value":3254},"string",{"type":42,"tag":164,"props":3256,"children":3257},{"style":199},[3258],{"type":48,"value":227},{"type":42,"tag":164,"props":3260,"children":3261},{"style":199},[3262],{"type":48,"value":3263}," ()",{"type":42,"tag":164,"props":3265,"children":3266},{"style":187},[3267],{"type":48,"value":3268}," =>",{"type":42,"tag":164,"props":3270,"children":3271},{"style":319},[3272],{"type":48,"value":2834},{"type":42,"tag":164,"props":3274,"children":3275},{"style":199},[3276],{"type":48,"value":3277},"\u003C{",{"type":42,"tag":164,"props":3279,"children":3280},{"style":923},[3281],{"type":48,"value":3282}," default",{"type":42,"tag":164,"props":3284,"children":3285},{"style":199},[3286],{"type":48,"value":316},{"type":42,"tag":164,"props":3288,"children":3289},{"style":199},[3290],{"type":48,"value":3291}," typeof",{"type":42,"tag":164,"props":3293,"children":3294},{"style":193},[3295],{"type":48,"value":3155},{"type":42,"tag":164,"props":3297,"children":3298},{"style":199},[3299],{"type":48,"value":3300},"}>>",{"type":42,"tag":164,"props":3302,"children":3303},{"style":199},[3304],{"type":48,"value":327},{"type":42,"tag":164,"props":3306,"children":3307},{"style":199},[3308],{"type":48,"value":917},{"type":42,"tag":164,"props":3310,"children":3311},{"class":166,"line":1150},[3312,3317,3321,3325,3329,3333,3337,3342,3346,3350,3354,3358,3362],{"type":42,"tag":164,"props":3313,"children":3314},{"style":199},[3315],{"type":48,"value":3316},"  \"",{"type":42,"tag":164,"props":3318,"children":3319},{"style":923},[3320],{"type":48,"value":218},{"type":42,"tag":164,"props":3322,"children":3323},{"style":199},[3324],{"type":48,"value":212},{"type":42,"tag":164,"props":3326,"children":3327},{"style":199},[3328],{"type":48,"value":316},{"type":42,"tag":164,"props":3330,"children":3331},{"style":199},[3332],{"type":48,"value":3263},{"type":42,"tag":164,"props":3334,"children":3335},{"style":187},[3336],{"type":48,"value":3268},{"type":42,"tag":164,"props":3338,"children":3339},{"style":199},[3340],{"type":48,"value":3341}," import",{"type":42,"tag":164,"props":3343,"children":3344},{"style":193},[3345],{"type":48,"value":1625},{"type":42,"tag":164,"props":3347,"children":3348},{"style":199},[3349],{"type":48,"value":212},{"type":42,"tag":164,"props":3351,"children":3352},{"style":215},[3353],{"type":48,"value":3169},{"type":42,"tag":164,"props":3355,"children":3356},{"style":199},[3357],{"type":48,"value":212},{"type":42,"tag":164,"props":3359,"children":3360},{"style":193},[3361],{"type":48,"value":1670},{"type":42,"tag":164,"props":3363,"children":3364},{"style":199},[3365],{"type":48,"value":1138},{"type":42,"tag":164,"props":3367,"children":3368},{"class":166,"line":29},[3369],{"type":42,"tag":164,"props":3370,"children":3371},{"style":171},[3372],{"type":48,"value":3373},"  \u002F\u002F Add per-locale loaders as you ship message files. Missing locales fall\n",{"type":42,"tag":164,"props":3375,"children":3377},{"class":166,"line":3376},10,[3378],{"type":42,"tag":164,"props":3379,"children":3380},{"style":171},[3381],{"type":48,"value":3382},"  \u002F\u002F back to the default locale loader.\n",{"type":42,"tag":164,"props":3384,"children":3386},{"class":166,"line":3385},11,[3387],{"type":42,"tag":164,"props":3388,"children":3389},{"style":199},[3390],{"type":48,"value":1168},{"type":42,"tag":164,"props":3392,"children":3394},{"class":166,"line":3393},12,[3395],{"type":42,"tag":164,"props":3396,"children":3397},{"emptyLinePlaceholder":1832},[3398],{"type":48,"value":1835},{"type":42,"tag":164,"props":3400,"children":3402},{"class":166,"line":3401},13,[3403],{"type":42,"tag":164,"props":3404,"children":3405},{"style":171},[3406],{"type":48,"value":3407},"\u002F\u002F We intentionally do NOT destructure `{ locale }` from the callback args.\n",{"type":42,"tag":164,"props":3409,"children":3411},{"class":166,"line":3410},14,[3412],{"type":42,"tag":164,"props":3413,"children":3414},{"style":171},[3415],{"type":48,"value":3416},"\u002F\u002F next-intl populates that arg from the `x-next-intl-locale` request header,\n",{"type":42,"tag":164,"props":3418,"children":3420},{"class":166,"line":3419},15,[3421],{"type":42,"tag":164,"props":3422,"children":3423},{"style":171},[3424],{"type":48,"value":3425},"\u002F\u002F and reading request headers from inside a cached tree forces the route\n",{"type":42,"tag":164,"props":3427,"children":3429},{"class":166,"line":3428},16,[3430],{"type":42,"tag":164,"props":3431,"children":3432},{"style":171},[3433],{"type":48,"value":3434},"\u002F\u002F dynamic — every `instant` sample then needs an explicit\n",{"type":42,"tag":164,"props":3436,"children":3438},{"class":166,"line":3437},17,[3439],{"type":42,"tag":164,"props":3440,"children":3441},{"style":171},[3442],{"type":48,"value":3443},"\u002F\u002F `headers: [[\"x-next-intl-locale\", null]]` declaration. Going straight to\n",{"type":42,"tag":164,"props":3445,"children":3447},{"class":166,"line":3446},18,[3448],{"type":42,"tag":164,"props":3449,"children":3450},{"style":171},[3451],{"type":48,"value":3452},"\u002F\u002F `getLocale()` (which reads `next\u002Froot-params`) keeps the lookup cacheable.\n",{"type":42,"tag":164,"props":3454,"children":3456},{"class":166,"line":3455},19,[3457,3461,3465,3469,3473,3478,3482,3486],{"type":42,"tag":164,"props":3458,"children":3459},{"style":181},[3460],{"type":48,"value":184},{"type":42,"tag":164,"props":3462,"children":3463},{"style":181},[3464],{"type":48,"value":3282},{"type":42,"tag":164,"props":3466,"children":3467},{"style":1617},[3468],{"type":48,"value":3074},{"type":42,"tag":164,"props":3470,"children":3471},{"style":193},[3472],{"type":48,"value":1625},{"type":42,"tag":164,"props":3474,"children":3475},{"style":187},[3476],{"type":48,"value":3477},"async",{"type":42,"tag":164,"props":3479,"children":3480},{"style":199},[3481],{"type":48,"value":3263},{"type":42,"tag":164,"props":3483,"children":3484},{"style":187},[3485],{"type":48,"value":3268},{"type":42,"tag":164,"props":3487,"children":3488},{"style":199},[3489],{"type":48,"value":917},{"type":42,"tag":164,"props":3491,"children":3493},{"class":166,"line":3492},20,[3494,3498,3503,3507,3511,3515,3519],{"type":42,"tag":164,"props":3495,"children":3496},{"style":187},[3497],{"type":48,"value":2861},{"type":42,"tag":164,"props":3499,"children":3500},{"style":193},[3501],{"type":48,"value":3502}," requested",{"type":42,"tag":164,"props":3504,"children":3505},{"style":199},[3506],{"type":48,"value":327},{"type":42,"tag":164,"props":3508,"children":3509},{"style":181},[3510],{"type":48,"value":2875},{"type":42,"tag":164,"props":3512,"children":3513},{"style":1617},[3514],{"type":48,"value":1801},{"type":42,"tag":164,"props":3516,"children":3517},{"style":923},[3518],{"type":48,"value":1891},{"type":42,"tag":164,"props":3520,"children":3521},{"style":199},[3522],{"type":48,"value":294},{"type":42,"tag":164,"props":3524,"children":3526},{"class":166,"line":3525},21,[3527,3531,3535,3539,3543,3547,3551,3555,3559,3563,3567,3572,3577,3581,3586,3590,3594,3599],{"type":42,"tag":164,"props":3528,"children":3529},{"style":187},[3530],{"type":48,"value":2861},{"type":42,"tag":164,"props":3532,"children":3533},{"style":193},[3534],{"type":48,"value":965},{"type":42,"tag":164,"props":3536,"children":3537},{"style":199},[3538],{"type":48,"value":327},{"type":42,"tag":164,"props":3540,"children":3541},{"style":1617},[3542],{"type":48,"value":3033},{"type":42,"tag":164,"props":3544,"children":3545},{"style":923},[3546],{"type":48,"value":1625},{"type":42,"tag":164,"props":3548,"children":3549},{"style":193},[3550],{"type":48,"value":149},{"type":42,"tag":164,"props":3552,"children":3553},{"style":199},[3554],{"type":48,"value":647},{"type":42,"tag":164,"props":3556,"children":3557},{"style":193},[3558],{"type":48,"value":126},{"type":42,"tag":164,"props":3560,"children":3561},{"style":199},[3562],{"type":48,"value":227},{"type":42,"tag":164,"props":3564,"children":3565},{"style":193},[3566],{"type":48,"value":3502},{"type":42,"tag":164,"props":3568,"children":3569},{"style":923},[3570],{"type":48,"value":3571},") ",{"type":42,"tag":164,"props":3573,"children":3574},{"style":199},[3575],{"type":48,"value":3576},"?",{"type":42,"tag":164,"props":3578,"children":3579},{"style":193},[3580],{"type":48,"value":3502},{"type":42,"tag":164,"props":3582,"children":3583},{"style":199},[3584],{"type":48,"value":3585}," :",{"type":42,"tag":164,"props":3587,"children":3588},{"style":193},[3589],{"type":48,"value":2244},{"type":42,"tag":164,"props":3591,"children":3592},{"style":199},[3593],{"type":48,"value":647},{"type":42,"tag":164,"props":3595,"children":3596},{"style":193},[3597],{"type":48,"value":3598},"defaultLocale",{"type":42,"tag":164,"props":3600,"children":3601},{"style":199},[3602],{"type":48,"value":294},{"type":42,"tag":164,"props":3604,"children":3606},{"class":166,"line":3605},22,[3607,3611,3616,3620,3624,3629,3633,3637,3642,3646,3650,3654,3658,3662,3666],{"type":42,"tag":164,"props":3608,"children":3609},{"style":187},[3610],{"type":48,"value":2861},{"type":42,"tag":164,"props":3612,"children":3613},{"style":193},[3614],{"type":48,"value":3615}," loader",{"type":42,"tag":164,"props":3617,"children":3618},{"style":199},[3619],{"type":48,"value":327},{"type":42,"tag":164,"props":3621,"children":3622},{"style":193},[3623],{"type":48,"value":3236},{"type":42,"tag":164,"props":3625,"children":3626},{"style":923},[3627],{"type":48,"value":3628},"[",{"type":42,"tag":164,"props":3630,"children":3631},{"style":193},[3632],{"type":48,"value":829},{"type":42,"tag":164,"props":3634,"children":3635},{"style":923},[3636],{"type":48,"value":280},{"type":42,"tag":164,"props":3638,"children":3639},{"style":199},[3640],{"type":48,"value":3641},"??",{"type":42,"tag":164,"props":3643,"children":3644},{"style":193},[3645],{"type":48,"value":3236},{"type":42,"tag":164,"props":3647,"children":3648},{"style":923},[3649],{"type":48,"value":3628},{"type":42,"tag":164,"props":3651,"children":3652},{"style":193},[3653],{"type":48,"value":149},{"type":42,"tag":164,"props":3655,"children":3656},{"style":199},[3657],{"type":48,"value":647},{"type":42,"tag":164,"props":3659,"children":3660},{"style":193},[3661],{"type":48,"value":3598},{"type":42,"tag":164,"props":3663,"children":3664},{"style":923},[3665],{"type":48,"value":1133},{"type":42,"tag":164,"props":3667,"children":3668},{"style":199},[3669],{"type":48,"value":294},{"type":42,"tag":164,"props":3671,"children":3673},{"class":166,"line":3672},23,[3674,3678,3683,3687,3691,3695,3699,3704,3708,3713,3717,3721,3726],{"type":42,"tag":164,"props":3675,"children":3676},{"style":187},[3677],{"type":48,"value":2861},{"type":42,"tag":164,"props":3679,"children":3680},{"style":193},[3681],{"type":48,"value":3682}," messages",{"type":42,"tag":164,"props":3684,"children":3685},{"style":199},[3686],{"type":48,"value":327},{"type":42,"tag":164,"props":3688,"children":3689},{"style":923},[3690],{"type":48,"value":1604},{"type":42,"tag":164,"props":3692,"children":3693},{"style":181},[3694],{"type":48,"value":1882},{"type":42,"tag":164,"props":3696,"children":3697},{"style":1617},[3698],{"type":48,"value":3615},{"type":42,"tag":164,"props":3700,"children":3701},{"style":923},[3702],{"type":48,"value":3703},"())",{"type":42,"tag":164,"props":3705,"children":3706},{"style":199},[3707],{"type":48,"value":647},{"type":42,"tag":164,"props":3709,"children":3710},{"style":193},[3711],{"type":48,"value":3712},"default",{"type":42,"tag":164,"props":3714,"children":3715},{"style":181},[3716],{"type":48,"value":2714},{"type":42,"tag":164,"props":3718,"children":3719},{"style":199},[3720],{"type":48,"value":3291},{"type":42,"tag":164,"props":3722,"children":3723},{"style":193},[3724],{"type":48,"value":3725}," enMessages",{"type":42,"tag":164,"props":3727,"children":3728},{"style":199},[3729],{"type":48,"value":294},{"type":42,"tag":164,"props":3731,"children":3733},{"class":166,"line":3732},24,[3734,3738,3742,3746,3750,3754],{"type":42,"tag":164,"props":3735,"children":3736},{"style":181},[3737],{"type":48,"value":2973},{"type":42,"tag":164,"props":3739,"children":3740},{"style":199},[3741],{"type":48,"value":960},{"type":42,"tag":164,"props":3743,"children":3744},{"style":193},[3745],{"type":48,"value":965},{"type":42,"tag":164,"props":3747,"children":3748},{"style":199},[3749],{"type":48,"value":227},{"type":42,"tag":164,"props":3751,"children":3752},{"style":193},[3753],{"type":48,"value":3682},{"type":42,"tag":164,"props":3755,"children":3756},{"style":199},[3757],{"type":48,"value":3758}," };\n",{"type":42,"tag":164,"props":3760,"children":3762},{"class":166,"line":3761},25,[3763,3767,3771],{"type":42,"tag":164,"props":3764,"children":3765},{"style":199},[3766],{"type":48,"value":1665},{"type":42,"tag":164,"props":3768,"children":3769},{"style":193},[3770],{"type":48,"value":1670},{"type":42,"tag":164,"props":3772,"children":3773},{"style":199},[3774],{"type":48,"value":294},{"type":42,"tag":585,"props":3776,"children":3778},{"id":3777},"step-5-extend-proxyts",[3779,3781],{"type":48,"value":3780},"Step 5: Extend ",{"type":42,"tag":57,"props":3782,"children":3784},{"className":3783},[],[3785],{"type":48,"value":442},{"type":42,"tag":51,"props":3787,"children":3788},{},[3789],{"type":48,"value":3790},"Update the existing root proxy to run next-intl for matched requests:",{"type":42,"tag":153,"props":3792,"children":3794},{"className":155,"code":3793,"language":157,"meta":158,"style":158},"import createMiddleware from \"next-intl\u002Fmiddleware\";\nimport { type NextRequest, NextResponse } from \"next\u002Fserver\";\n\nimport { routing } from \"@\u002Flib\u002Fi18n\u002Frouting\";\n\nconst handleI18n = createMiddleware(routing);\n\nexport function proxy(request: NextRequest): NextResponse {\n  const response = handleI18n(request);\n  if (!response.ok) return response;\n\n  const rewriteHeader = response.headers.get(\"x-middleware-rewrite\");\n  if (!rewriteHeader) return response;\n\n  const rewriteTarget = new URL(rewriteHeader, request.url);\n  const [, ...segments] = rewriteTarget.pathname.split(\"\u002F\");\n  const normalized = new URL(`\u002F${segments.filter(Boolean).join(\"\u002F\")}`, request.url);\n  normalized.search = rewriteTarget.search;\n  return NextResponse.rewrite(normalized, { headers: response.headers });\n}\n\nexport const config = {\n  matcher: [\n    \"\u002F((?!api|_next\u002Fstatic|_next\u002Fimage|_next\u002Fdata|_vercel|favicon.ico|robots.txt|sitemap.xml|.*\\\\..*).*)\",\n    \"\u002F.well-known\u002F:path*\",\n  ],\n};\n",[3795],{"type":42,"tag":57,"props":3796,"children":3797},{"__ignoreMap":158},[3798,3830,3884,3891,3931,3938,3967,3974,4021,4058,4103,4110,4172,4208,4215,4275,4351,4467,4504,4574,4581,4588,4612,4628,4659,4679,4691],{"type":42,"tag":164,"props":3799,"children":3800},{"class":166,"line":167},[3801,3805,3810,3814,3818,3822,3826],{"type":42,"tag":164,"props":3802,"children":3803},{"style":181},[3804],{"type":48,"value":1556},{"type":42,"tag":164,"props":3806,"children":3807},{"style":193},[3808],{"type":48,"value":3809}," createMiddleware ",{"type":42,"tag":164,"props":3811,"children":3812},{"style":181},[3813],{"type":48,"value":3160},{"type":42,"tag":164,"props":3815,"children":3816},{"style":199},[3817],{"type":48,"value":232},{"type":42,"tag":164,"props":3819,"children":3820},{"style":215},[3821],{"type":48,"value":450},{"type":42,"tag":164,"props":3823,"children":3824},{"style":199},[3825],{"type":48,"value":212},{"type":42,"tag":164,"props":3827,"children":3828},{"style":199},[3829],{"type":48,"value":294},{"type":42,"tag":164,"props":3831,"children":3832},{"class":166,"line":177},[3833,3837,3841,3845,3850,3854,3859,3863,3867,3871,3876,3880],{"type":42,"tag":164,"props":3834,"children":3835},{"style":181},[3836],{"type":48,"value":1556},{"type":42,"tag":164,"props":3838,"children":3839},{"style":199},[3840],{"type":48,"value":960},{"type":42,"tag":164,"props":3842,"children":3843},{"style":181},[3844],{"type":48,"value":2759},{"type":42,"tag":164,"props":3846,"children":3847},{"style":193},[3848],{"type":48,"value":3849}," NextRequest",{"type":42,"tag":164,"props":3851,"children":3852},{"style":199},[3853],{"type":48,"value":227},{"type":42,"tag":164,"props":3855,"children":3856},{"style":193},[3857],{"type":48,"value":3858}," NextResponse",{"type":42,"tag":164,"props":3860,"children":3861},{"style":199},[3862],{"type":48,"value":1128},{"type":42,"tag":164,"props":3864,"children":3865},{"style":181},[3866],{"type":48,"value":1574},{"type":42,"tag":164,"props":3868,"children":3869},{"style":199},[3870],{"type":48,"value":232},{"type":42,"tag":164,"props":3872,"children":3873},{"style":215},[3874],{"type":48,"value":3875},"next\u002Fserver",{"type":42,"tag":164,"props":3877,"children":3878},{"style":199},[3879],{"type":48,"value":212},{"type":42,"tag":164,"props":3881,"children":3882},{"style":199},[3883],{"type":48,"value":294},{"type":42,"tag":164,"props":3885,"children":3886},{"class":166,"line":297},[3887],{"type":42,"tag":164,"props":3888,"children":3889},{"emptyLinePlaceholder":1832},[3890],{"type":48,"value":1835},{"type":42,"tag":164,"props":3892,"children":3893},{"class":166,"line":346},[3894,3898,3902,3906,3910,3914,3918,3923,3927],{"type":42,"tag":164,"props":3895,"children":3896},{"style":181},[3897],{"type":48,"value":1556},{"type":42,"tag":164,"props":3899,"children":3900},{"style":199},[3901],{"type":48,"value":960},{"type":42,"tag":164,"props":3903,"children":3904},{"style":193},[3905],{"type":48,"value":2244},{"type":42,"tag":164,"props":3907,"children":3908},{"style":199},[3909],{"type":48,"value":1128},{"type":42,"tag":164,"props":3911,"children":3912},{"style":181},[3913],{"type":48,"value":1574},{"type":42,"tag":164,"props":3915,"children":3916},{"style":199},[3917],{"type":48,"value":232},{"type":42,"tag":164,"props":3919,"children":3920},{"style":215},[3921],{"type":48,"value":3922},"@\u002Flib\u002Fi18n\u002Frouting",{"type":42,"tag":164,"props":3924,"children":3925},{"style":199},[3926],{"type":48,"value":212},{"type":42,"tag":164,"props":3928,"children":3929},{"style":199},[3930],{"type":48,"value":294},{"type":42,"tag":164,"props":3932,"children":3933},{"class":166,"line":1020},[3934],{"type":42,"tag":164,"props":3935,"children":3936},{"emptyLinePlaceholder":1832},[3937],{"type":48,"value":1835},{"type":42,"tag":164,"props":3939,"children":3940},{"class":166,"line":1064},[3941,3945,3950,3954,3959,3963],{"type":42,"tag":164,"props":3942,"children":3943},{"style":187},[3944],{"type":48,"value":3231},{"type":42,"tag":164,"props":3946,"children":3947},{"style":193},[3948],{"type":48,"value":3949}," handleI18n ",{"type":42,"tag":164,"props":3951,"children":3952},{"style":199},[3953],{"type":48,"value":202},{"type":42,"tag":164,"props":3955,"children":3956},{"style":1617},[3957],{"type":48,"value":3958}," createMiddleware",{"type":42,"tag":164,"props":3960,"children":3961},{"style":193},[3962],{"type":48,"value":2339},{"type":42,"tag":164,"props":3964,"children":3965},{"style":199},[3966],{"type":48,"value":294},{"type":42,"tag":164,"props":3968,"children":3969},{"class":166,"line":1141},[3970],{"type":42,"tag":164,"props":3971,"children":3972},{"emptyLinePlaceholder":1832},[3973],{"type":48,"value":1835},{"type":42,"tag":164,"props":3975,"children":3976},{"class":166,"line":1150},[3977,3981,3985,3990,3994,4000,4004,4008,4013,4017],{"type":42,"tag":164,"props":3978,"children":3979},{"style":181},[3980],{"type":48,"value":184},{"type":42,"tag":164,"props":3982,"children":3983},{"style":187},[3984],{"type":48,"value":2820},{"type":42,"tag":164,"props":3986,"children":3987},{"style":1617},[3988],{"type":48,"value":3989}," proxy",{"type":42,"tag":164,"props":3991,"children":3992},{"style":199},[3993],{"type":48,"value":1625},{"type":42,"tag":164,"props":3995,"children":3997},{"style":3996},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[3998],{"type":48,"value":3999},"request",{"type":42,"tag":164,"props":4001,"children":4002},{"style":199},[4003],{"type":48,"value":316},{"type":42,"tag":164,"props":4005,"children":4006},{"style":319},[4007],{"type":48,"value":3849},{"type":42,"tag":164,"props":4009,"children":4010},{"style":199},[4011],{"type":48,"value":4012},"):",{"type":42,"tag":164,"props":4014,"children":4015},{"style":319},[4016],{"type":48,"value":3858},{"type":42,"tag":164,"props":4018,"children":4019},{"style":199},[4020],{"type":48,"value":917},{"type":42,"tag":164,"props":4022,"children":4023},{"class":166,"line":29},[4024,4028,4033,4037,4042,4046,4050,4054],{"type":42,"tag":164,"props":4025,"children":4026},{"style":187},[4027],{"type":48,"value":2861},{"type":42,"tag":164,"props":4029,"children":4030},{"style":193},[4031],{"type":48,"value":4032}," response",{"type":42,"tag":164,"props":4034,"children":4035},{"style":199},[4036],{"type":48,"value":327},{"type":42,"tag":164,"props":4038,"children":4039},{"style":1617},[4040],{"type":48,"value":4041}," handleI18n",{"type":42,"tag":164,"props":4043,"children":4044},{"style":923},[4045],{"type":48,"value":1625},{"type":42,"tag":164,"props":4047,"children":4048},{"style":193},[4049],{"type":48,"value":3999},{"type":42,"tag":164,"props":4051,"children":4052},{"style":923},[4053],{"type":48,"value":1670},{"type":42,"tag":164,"props":4055,"children":4056},{"style":199},[4057],{"type":48,"value":294},{"type":42,"tag":164,"props":4059,"children":4060},{"class":166,"line":3376},[4061,4065,4069,4073,4078,4082,4087,4091,4095,4099],{"type":42,"tag":164,"props":4062,"children":4063},{"style":181},[4064],{"type":48,"value":2895},{"type":42,"tag":164,"props":4066,"children":4067},{"style":923},[4068],{"type":48,"value":1604},{"type":42,"tag":164,"props":4070,"children":4071},{"style":199},[4072],{"type":48,"value":1609},{"type":42,"tag":164,"props":4074,"children":4075},{"style":193},[4076],{"type":48,"value":4077},"response",{"type":42,"tag":164,"props":4079,"children":4080},{"style":199},[4081],{"type":48,"value":647},{"type":42,"tag":164,"props":4083,"children":4084},{"style":193},[4085],{"type":48,"value":4086},"ok",{"type":42,"tag":164,"props":4088,"children":4089},{"style":923},[4090],{"type":48,"value":3571},{"type":42,"tag":164,"props":4092,"children":4093},{"style":181},[4094],{"type":48,"value":1682},{"type":42,"tag":164,"props":4096,"children":4097},{"style":193},[4098],{"type":48,"value":4032},{"type":42,"tag":164,"props":4100,"children":4101},{"style":199},[4102],{"type":48,"value":294},{"type":42,"tag":164,"props":4104,"children":4105},{"class":166,"line":3385},[4106],{"type":42,"tag":164,"props":4107,"children":4108},{"emptyLinePlaceholder":1832},[4109],{"type":48,"value":1835},{"type":42,"tag":164,"props":4111,"children":4112},{"class":166,"line":3393},[4113,4117,4122,4126,4130,4134,4138,4142,4147,4151,4155,4160,4164,4168],{"type":42,"tag":164,"props":4114,"children":4115},{"style":187},[4116],{"type":48,"value":2861},{"type":42,"tag":164,"props":4118,"children":4119},{"style":193},[4120],{"type":48,"value":4121}," rewriteHeader",{"type":42,"tag":164,"props":4123,"children":4124},{"style":199},[4125],{"type":48,"value":327},{"type":42,"tag":164,"props":4127,"children":4128},{"style":193},[4129],{"type":48,"value":4032},{"type":42,"tag":164,"props":4131,"children":4132},{"style":199},[4133],{"type":48,"value":647},{"type":42,"tag":164,"props":4135,"children":4136},{"style":193},[4137],{"type":48,"value":1186},{"type":42,"tag":164,"props":4139,"children":4140},{"style":199},[4141],{"type":48,"value":647},{"type":42,"tag":164,"props":4143,"children":4144},{"style":1617},[4145],{"type":48,"value":4146},"get",{"type":42,"tag":164,"props":4148,"children":4149},{"style":923},[4150],{"type":48,"value":1625},{"type":42,"tag":164,"props":4152,"children":4153},{"style":199},[4154],{"type":48,"value":212},{"type":42,"tag":164,"props":4156,"children":4157},{"style":215},[4158],{"type":48,"value":4159},"x-middleware-rewrite",{"type":42,"tag":164,"props":4161,"children":4162},{"style":199},[4163],{"type":48,"value":212},{"type":42,"tag":164,"props":4165,"children":4166},{"style":923},[4167],{"type":48,"value":1670},{"type":42,"tag":164,"props":4169,"children":4170},{"style":199},[4171],{"type":48,"value":294},{"type":42,"tag":164,"props":4173,"children":4174},{"class":166,"line":3401},[4175,4179,4183,4187,4192,4196,4200,4204],{"type":42,"tag":164,"props":4176,"children":4177},{"style":181},[4178],{"type":48,"value":2895},{"type":42,"tag":164,"props":4180,"children":4181},{"style":923},[4182],{"type":48,"value":1604},{"type":42,"tag":164,"props":4184,"children":4185},{"style":199},[4186],{"type":48,"value":1609},{"type":42,"tag":164,"props":4188,"children":4189},{"style":193},[4190],{"type":48,"value":4191},"rewriteHeader",{"type":42,"tag":164,"props":4193,"children":4194},{"style":923},[4195],{"type":48,"value":3571},{"type":42,"tag":164,"props":4197,"children":4198},{"style":181},[4199],{"type":48,"value":1682},{"type":42,"tag":164,"props":4201,"children":4202},{"style":193},[4203],{"type":48,"value":4032},{"type":42,"tag":164,"props":4205,"children":4206},{"style":199},[4207],{"type":48,"value":294},{"type":42,"tag":164,"props":4209,"children":4210},{"class":166,"line":3410},[4211],{"type":42,"tag":164,"props":4212,"children":4213},{"emptyLinePlaceholder":1832},[4214],{"type":48,"value":1835},{"type":42,"tag":164,"props":4216,"children":4217},{"class":166,"line":3419},[4218,4222,4227,4231,4236,4241,4245,4249,4253,4258,4262,4267,4271],{"type":42,"tag":164,"props":4219,"children":4220},{"style":187},[4221],{"type":48,"value":2861},{"type":42,"tag":164,"props":4223,"children":4224},{"style":193},[4225],{"type":48,"value":4226}," rewriteTarget",{"type":42,"tag":164,"props":4228,"children":4229},{"style":199},[4230],{"type":48,"value":327},{"type":42,"tag":164,"props":4232,"children":4233},{"style":199},[4234],{"type":48,"value":4235}," new",{"type":42,"tag":164,"props":4237,"children":4238},{"style":1617},[4239],{"type":48,"value":4240}," URL",{"type":42,"tag":164,"props":4242,"children":4243},{"style":923},[4244],{"type":48,"value":1625},{"type":42,"tag":164,"props":4246,"children":4247},{"style":193},[4248],{"type":48,"value":4191},{"type":42,"tag":164,"props":4250,"children":4251},{"style":199},[4252],{"type":48,"value":227},{"type":42,"tag":164,"props":4254,"children":4255},{"style":193},[4256],{"type":48,"value":4257}," request",{"type":42,"tag":164,"props":4259,"children":4260},{"style":199},[4261],{"type":48,"value":647},{"type":42,"tag":164,"props":4263,"children":4264},{"style":193},[4265],{"type":48,"value":4266},"url",{"type":42,"tag":164,"props":4268,"children":4269},{"style":923},[4270],{"type":48,"value":1670},{"type":42,"tag":164,"props":4272,"children":4273},{"style":199},[4274],{"type":48,"value":294},{"type":42,"tag":164,"props":4276,"children":4277},{"class":166,"line":3428},[4278,4282,4287,4292,4297,4301,4305,4309,4313,4318,4322,4327,4331,4335,4339,4343,4347],{"type":42,"tag":164,"props":4279,"children":4280},{"style":187},[4281],{"type":48,"value":2861},{"type":42,"tag":164,"props":4283,"children":4284},{"style":199},[4285],{"type":48,"value":4286}," [,",{"type":42,"tag":164,"props":4288,"children":4289},{"style":199},[4290],{"type":48,"value":4291}," ...",{"type":42,"tag":164,"props":4293,"children":4294},{"style":193},[4295],{"type":48,"value":4296},"segments",{"type":42,"tag":164,"props":4298,"children":4299},{"style":199},[4300],{"type":48,"value":1133},{"type":42,"tag":164,"props":4302,"children":4303},{"style":199},[4304],{"type":48,"value":327},{"type":42,"tag":164,"props":4306,"children":4307},{"style":193},[4308],{"type":48,"value":4226},{"type":42,"tag":164,"props":4310,"children":4311},{"style":199},[4312],{"type":48,"value":647},{"type":42,"tag":164,"props":4314,"children":4315},{"style":193},[4316],{"type":48,"value":4317},"pathname",{"type":42,"tag":164,"props":4319,"children":4320},{"style":199},[4321],{"type":48,"value":647},{"type":42,"tag":164,"props":4323,"children":4324},{"style":1617},[4325],{"type":48,"value":4326},"split",{"type":42,"tag":164,"props":4328,"children":4329},{"style":923},[4330],{"type":48,"value":1625},{"type":42,"tag":164,"props":4332,"children":4333},{"style":199},[4334],{"type":48,"value":212},{"type":42,"tag":164,"props":4336,"children":4337},{"style":215},[4338],{"type":48,"value":1872},{"type":42,"tag":164,"props":4340,"children":4341},{"style":199},[4342],{"type":48,"value":212},{"type":42,"tag":164,"props":4344,"children":4345},{"style":923},[4346],{"type":48,"value":1670},{"type":42,"tag":164,"props":4348,"children":4349},{"style":199},[4350],{"type":48,"value":294},{"type":42,"tag":164,"props":4352,"children":4353},{"class":166,"line":3437},[4354,4358,4363,4367,4371,4375,4379,4383,4387,4391,4395,4399,4404,4409,4413,4418,4422,4426,4430,4434,4438,4443,4447,4451,4455,4459,4463],{"type":42,"tag":164,"props":4355,"children":4356},{"style":187},[4357],{"type":48,"value":2861},{"type":42,"tag":164,"props":4359,"children":4360},{"style":193},[4361],{"type":48,"value":4362}," normalized",{"type":42,"tag":164,"props":4364,"children":4365},{"style":199},[4366],{"type":48,"value":327},{"type":42,"tag":164,"props":4368,"children":4369},{"style":199},[4370],{"type":48,"value":4235},{"type":42,"tag":164,"props":4372,"children":4373},{"style":1617},[4374],{"type":48,"value":4240},{"type":42,"tag":164,"props":4376,"children":4377},{"style":923},[4378],{"type":48,"value":1625},{"type":42,"tag":164,"props":4380,"children":4381},{"style":199},[4382],{"type":48,"value":1867},{"type":42,"tag":164,"props":4384,"children":4385},{"style":215},[4386],{"type":48,"value":1872},{"type":42,"tag":164,"props":4388,"children":4389},{"style":199},[4390],{"type":48,"value":1877},{"type":42,"tag":164,"props":4392,"children":4393},{"style":193},[4394],{"type":48,"value":4296},{"type":42,"tag":164,"props":4396,"children":4397},{"style":199},[4398],{"type":48,"value":647},{"type":42,"tag":164,"props":4400,"children":4401},{"style":1617},[4402],{"type":48,"value":4403},"filter",{"type":42,"tag":164,"props":4405,"children":4406},{"style":193},[4407],{"type":48,"value":4408},"(Boolean)",{"type":42,"tag":164,"props":4410,"children":4411},{"style":199},[4412],{"type":48,"value":647},{"type":42,"tag":164,"props":4414,"children":4415},{"style":1617},[4416],{"type":48,"value":4417},"join",{"type":42,"tag":164,"props":4419,"children":4420},{"style":193},[4421],{"type":48,"value":1625},{"type":42,"tag":164,"props":4423,"children":4424},{"style":199},[4425],{"type":48,"value":212},{"type":42,"tag":164,"props":4427,"children":4428},{"style":215},[4429],{"type":48,"value":1872},{"type":42,"tag":164,"props":4431,"children":4432},{"style":199},[4433],{"type":48,"value":212},{"type":42,"tag":164,"props":4435,"children":4436},{"style":193},[4437],{"type":48,"value":1670},{"type":42,"tag":164,"props":4439,"children":4440},{"style":199},[4441],{"type":48,"value":4442},"}`",{"type":42,"tag":164,"props":4444,"children":4445},{"style":199},[4446],{"type":48,"value":227},{"type":42,"tag":164,"props":4448,"children":4449},{"style":193},[4450],{"type":48,"value":4257},{"type":42,"tag":164,"props":4452,"children":4453},{"style":199},[4454],{"type":48,"value":647},{"type":42,"tag":164,"props":4456,"children":4457},{"style":193},[4458],{"type":48,"value":4266},{"type":42,"tag":164,"props":4460,"children":4461},{"style":923},[4462],{"type":48,"value":1670},{"type":42,"tag":164,"props":4464,"children":4465},{"style":199},[4466],{"type":48,"value":294},{"type":42,"tag":164,"props":4468,"children":4469},{"class":166,"line":3446},[4470,4475,4479,4484,4488,4492,4496,4500],{"type":42,"tag":164,"props":4471,"children":4472},{"style":193},[4473],{"type":48,"value":4474},"  normalized",{"type":42,"tag":164,"props":4476,"children":4477},{"style":199},[4478],{"type":48,"value":647},{"type":42,"tag":164,"props":4480,"children":4481},{"style":193},[4482],{"type":48,"value":4483},"search",{"type":42,"tag":164,"props":4485,"children":4486},{"style":199},[4487],{"type":48,"value":327},{"type":42,"tag":164,"props":4489,"children":4490},{"style":193},[4491],{"type":48,"value":4226},{"type":42,"tag":164,"props":4493,"children":4494},{"style":199},[4495],{"type":48,"value":647},{"type":42,"tag":164,"props":4497,"children":4498},{"style":193},[4499],{"type":48,"value":4483},{"type":42,"tag":164,"props":4501,"children":4502},{"style":199},[4503],{"type":48,"value":294},{"type":42,"tag":164,"props":4505,"children":4506},{"class":166,"line":3455},[4507,4511,4515,4519,4524,4528,4533,4537,4541,4546,4550,4554,4558,4562,4566,4570],{"type":42,"tag":164,"props":4508,"children":4509},{"style":181},[4510],{"type":48,"value":2973},{"type":42,"tag":164,"props":4512,"children":4513},{"style":193},[4514],{"type":48,"value":3858},{"type":42,"tag":164,"props":4516,"children":4517},{"style":199},[4518],{"type":48,"value":647},{"type":42,"tag":164,"props":4520,"children":4521},{"style":1617},[4522],{"type":48,"value":4523},"rewrite",{"type":42,"tag":164,"props":4525,"children":4526},{"style":923},[4527],{"type":48,"value":1625},{"type":42,"tag":164,"props":4529,"children":4530},{"style":193},[4531],{"type":48,"value":4532},"normalized",{"type":42,"tag":164,"props":4534,"children":4535},{"style":199},[4536],{"type":48,"value":227},{"type":42,"tag":164,"props":4538,"children":4539},{"style":199},[4540],{"type":48,"value":960},{"type":42,"tag":164,"props":4542,"children":4543},{"style":923},[4544],{"type":48,"value":4545}," headers",{"type":42,"tag":164,"props":4547,"children":4548},{"style":199},[4549],{"type":48,"value":316},{"type":42,"tag":164,"props":4551,"children":4552},{"style":193},[4553],{"type":48,"value":4032},{"type":42,"tag":164,"props":4555,"children":4556},{"style":199},[4557],{"type":48,"value":647},{"type":42,"tag":164,"props":4559,"children":4560},{"style":193},[4561],{"type":48,"value":1186},{"type":42,"tag":164,"props":4563,"children":4564},{"style":199},[4565],{"type":48,"value":1128},{"type":42,"tag":164,"props":4567,"children":4568},{"style":923},[4569],{"type":48,"value":1670},{"type":42,"tag":164,"props":4571,"children":4572},{"style":199},[4573],{"type":48,"value":294},{"type":42,"tag":164,"props":4575,"children":4576},{"class":166,"line":3492},[4577],{"type":42,"tag":164,"props":4578,"children":4579},{"style":199},[4580],{"type":48,"value":2997},{"type":42,"tag":164,"props":4582,"children":4583},{"class":166,"line":3525},[4584],{"type":42,"tag":164,"props":4585,"children":4586},{"emptyLinePlaceholder":1832},[4587],{"type":48,"value":1835},{"type":42,"tag":164,"props":4589,"children":4590},{"class":166,"line":3605},[4591,4595,4599,4604,4608],{"type":42,"tag":164,"props":4592,"children":4593},{"style":181},[4594],{"type":48,"value":184},{"type":42,"tag":164,"props":4596,"children":4597},{"style":187},[4598],{"type":48,"value":190},{"type":42,"tag":164,"props":4600,"children":4601},{"style":193},[4602],{"type":48,"value":4603}," config ",{"type":42,"tag":164,"props":4605,"children":4606},{"style":199},[4607],{"type":48,"value":202},{"type":42,"tag":164,"props":4609,"children":4610},{"style":199},[4611],{"type":48,"value":917},{"type":42,"tag":164,"props":4613,"children":4614},{"class":166,"line":3672},[4615,4620,4624],{"type":42,"tag":164,"props":4616,"children":4617},{"style":923},[4618],{"type":48,"value":4619},"  matcher",{"type":42,"tag":164,"props":4621,"children":4622},{"style":199},[4623],{"type":48,"value":316},{"type":42,"tag":164,"props":4625,"children":4626},{"style":193},[4627],{"type":48,"value":935},{"type":42,"tag":164,"props":4629,"children":4630},{"class":166,"line":3732},[4631,4636,4641,4646,4651,4655],{"type":42,"tag":164,"props":4632,"children":4633},{"style":199},[4634],{"type":48,"value":4635},"    \"",{"type":42,"tag":164,"props":4637,"children":4638},{"style":215},[4639],{"type":48,"value":4640},"\u002F((?!api|_next\u002Fstatic|_next\u002Fimage|_next\u002Fdata|_vercel|favicon.ico|robots.txt|sitemap.xml|.*",{"type":42,"tag":164,"props":4642,"children":4643},{"style":193},[4644],{"type":48,"value":4645},"\\\\",{"type":42,"tag":164,"props":4647,"children":4648},{"style":215},[4649],{"type":48,"value":4650},"..*).*)",{"type":42,"tag":164,"props":4652,"children":4653},{"style":199},[4654],{"type":48,"value":212},{"type":42,"tag":164,"props":4656,"children":4657},{"style":199},[4658],{"type":48,"value":1138},{"type":42,"tag":164,"props":4660,"children":4661},{"class":166,"line":3761},[4662,4666,4671,4675],{"type":42,"tag":164,"props":4663,"children":4664},{"style":199},[4665],{"type":48,"value":4635},{"type":42,"tag":164,"props":4667,"children":4668},{"style":215},[4669],{"type":48,"value":4670},"\u002F.well-known\u002F:path*",{"type":42,"tag":164,"props":4672,"children":4673},{"style":199},[4674],{"type":48,"value":212},{"type":42,"tag":164,"props":4676,"children":4677},{"style":199},[4678],{"type":48,"value":1138},{"type":42,"tag":164,"props":4680,"children":4682},{"class":166,"line":4681},26,[4683,4687],{"type":42,"tag":164,"props":4684,"children":4685},{"style":193},[4686],{"type":48,"value":1156},{"type":42,"tag":164,"props":4688,"children":4689},{"style":199},[4690],{"type":48,"value":1138},{"type":42,"tag":164,"props":4692,"children":4694},{"class":166,"line":4693},27,[4695],{"type":42,"tag":164,"props":4696,"children":4697},{"style":199},[4698],{"type":48,"value":1168},{"type":42,"tag":51,"props":4700,"children":4701},{},[4702,4704,4710,4712,4718,4720,4725,4727,4733],{"type":48,"value":4703},"Preserve any other request handling already composed in ",{"type":42,"tag":57,"props":4705,"children":4707},{"className":4706},[],[4708],{"type":48,"value":4709},"proxy()",{"type":48,"value":4711},". The matcher excludes framework internals and public files while keeping application routes and ",{"type":42,"tag":57,"props":4713,"children":4715},{"className":4714},[],[4716],{"type":48,"value":4717},"\u002F.well-known\u002F*",{"type":48,"value":4719}," in proxy processing. The file is ",{"type":42,"tag":57,"props":4721,"children":4723},{"className":4722},[],[4724],{"type":48,"value":442},{"type":48,"value":4726}," (Next.js 16 convention), not ",{"type":42,"tag":57,"props":4728,"children":4730},{"className":4729},[],[4731],{"type":48,"value":4732},"middleware.ts",{"type":48,"value":647},{"type":42,"tag":585,"props":4735,"children":4737},{"id":4736},"step-6-internal-hrefs-keep-nextlink",[4738,4740],{"type":48,"value":4739},"Step 6: Internal hrefs — keep ",{"type":42,"tag":57,"props":4741,"children":4743},{"className":4742},[],[4744],{"type":48,"value":693},{"type":42,"tag":51,"props":4746,"children":4747},{},[4748,4750,4762,4764,4770,4772,4778,4780,4785],{"type":48,"value":4749},"Per the cache-components note above, ",{"type":42,"tag":81,"props":4751,"children":4752},{},[4753,4755,4760],{"type":48,"value":4754},"leave existing ",{"type":42,"tag":57,"props":4756,"children":4758},{"className":4757},[],[4759],{"type":48,"value":693},{"type":48,"value":4761}," imports alone",{"type":48,"value":4763},". Middleware redirects unprefixed URLs to the active locale on click. The only places to use the next-intl-aware Link are inside client components that explicitly need to switch locales (e.g. a locale switcher) — and even then, ",{"type":42,"tag":57,"props":4765,"children":4767},{"className":4766},[],[4768],{"type":48,"value":4769},"usePathname()",{"type":48,"value":4771}," + ",{"type":42,"tag":57,"props":4773,"children":4775},{"className":4774},[],[4776],{"type":48,"value":4777},"useRouter().push()",{"type":48,"value":4779}," from ",{"type":42,"tag":57,"props":4781,"children":4783},{"className":4782},[],[4784],{"type":48,"value":1723},{"type":48,"value":4786}," plus a manual segment swap is often cleaner under cacheComponents.",{"type":42,"tag":51,"props":4788,"children":4789},{},[4790,4792,4797,4798,4803],{"type":48,"value":4791},"For programmatic redirects in server code, use ",{"type":42,"tag":57,"props":4793,"children":4795},{"className":4794},[],[4796],{"type":48,"value":1723},{"type":48,"value":1725},{"type":42,"tag":57,"props":4799,"children":4801},{"className":4800},[],[4802],{"type":48,"value":1620},{"type":48,"value":316},{"type":42,"tag":153,"props":4805,"children":4807},{"className":155,"code":4806,"language":157,"meta":158,"style":158},"redirect(`\u002F${await getLocale()}\u002Faccount\u002Flogin`);\n",[4808],{"type":42,"tag":57,"props":4809,"children":4810},{"__ignoreMap":158},[4811],{"type":42,"tag":164,"props":4812,"children":4813},{"class":166,"line":167},[4814,4818,4822,4826,4830,4834,4838,4842,4846,4850,4854,4858,4862],{"type":42,"tag":164,"props":4815,"children":4816},{"style":1617},[4817],{"type":48,"value":1620},{"type":42,"tag":164,"props":4819,"children":4820},{"style":193},[4821],{"type":48,"value":1625},{"type":42,"tag":164,"props":4823,"children":4824},{"style":199},[4825],{"type":48,"value":1867},{"type":42,"tag":164,"props":4827,"children":4828},{"style":215},[4829],{"type":48,"value":1872},{"type":42,"tag":164,"props":4831,"children":4832},{"style":199},[4833],{"type":48,"value":1877},{"type":42,"tag":164,"props":4835,"children":4836},{"style":181},[4837],{"type":48,"value":1882},{"type":42,"tag":164,"props":4839,"children":4840},{"style":1617},[4841],{"type":48,"value":1801},{"type":42,"tag":164,"props":4843,"children":4844},{"style":193},[4845],{"type":48,"value":1891},{"type":42,"tag":164,"props":4847,"children":4848},{"style":199},[4849],{"type":48,"value":1665},{"type":42,"tag":164,"props":4851,"children":4852},{"style":215},[4853],{"type":48,"value":1647},{"type":42,"tag":164,"props":4855,"children":4856},{"style":199},[4857],{"type":48,"value":1867},{"type":42,"tag":164,"props":4859,"children":4860},{"style":193},[4861],{"type":48,"value":1670},{"type":42,"tag":164,"props":4863,"children":4864},{"style":199},[4865],{"type":48,"value":294},{"type":42,"tag":585,"props":4867,"children":4869},{"id":4868},"step-7-libseots-locale-aware-canonicals-hreflang-alternates",[4870,4872,4877],{"type":48,"value":4871},"Step 7: ",{"type":42,"tag":57,"props":4873,"children":4875},{"className":4874},[],[4876],{"type":48,"value":497},{"type":48,"value":4878}," — locale-aware canonicals + hreflang alternates",{"type":42,"tag":153,"props":4880,"children":4882},{"className":155,"code":4881,"language":157,"meta":158,"style":158},"import { defaultLocale, enabledLocales } from \".\u002Fi18n\";\nimport { getLocale } from \".\u002Fparams\";\n\nfunction withLocalePath(locale: string, pathname: string): string {\n  const normalized = normalizePath(pathname);\n  return normalized === \"\u002F\" ? `\u002F${locale}` : `\u002F${locale}${normalized}`;\n}\n\nexport async function buildAlternates({ pathname, searchParams }: {...}): Promise\u003CMetadata[\"alternates\"]> {\n  const locale = await getLocale();\n  const canonical = buildCanonicalPath(withLocalePath(locale, pathname), searchParams);\n\n  const languages: Record\u003Cstring, string> = {};\n  for (const candidate of enabledLocales) {\n    languages[candidate] = buildCanonicalPath(withLocalePath(candidate, pathname), searchParams);\n  }\n  languages[\"x-default\"] = buildCanonicalPath(withLocalePath(defaultLocale, pathname), searchParams);\n\n  return { canonical, languages };\n}\n",[4883],{"type":42,"tag":57,"props":4884,"children":4885},{"__ignoreMap":158},[4886,4933,4973,4980,5039,5075,5166,5173,5180,5270,5301,5367,5374,5423,5461,5534,5542,5623,5630,5657],{"type":42,"tag":164,"props":4887,"children":4888},{"class":166,"line":167},[4889,4893,4897,4901,4905,4909,4913,4917,4921,4925,4929],{"type":42,"tag":164,"props":4890,"children":4891},{"style":181},[4892],{"type":48,"value":1556},{"type":42,"tag":164,"props":4894,"children":4895},{"style":199},[4896],{"type":48,"value":960},{"type":42,"tag":164,"props":4898,"children":4899},{"style":193},[4900],{"type":48,"value":311},{"type":42,"tag":164,"props":4902,"children":4903},{"style":199},[4904],{"type":48,"value":227},{"type":42,"tag":164,"props":4906,"children":4907},{"style":193},[4908],{"type":48,"value":360},{"type":42,"tag":164,"props":4910,"children":4911},{"style":199},[4912],{"type":48,"value":1128},{"type":42,"tag":164,"props":4914,"children":4915},{"style":181},[4916],{"type":48,"value":1574},{"type":42,"tag":164,"props":4918,"children":4919},{"style":199},[4920],{"type":48,"value":232},{"type":42,"tag":164,"props":4922,"children":4923},{"style":215},[4924],{"type":48,"value":2788},{"type":42,"tag":164,"props":4926,"children":4927},{"style":199},[4928],{"type":48,"value":212},{"type":42,"tag":164,"props":4930,"children":4931},{"style":199},[4932],{"type":48,"value":294},{"type":42,"tag":164,"props":4934,"children":4935},{"class":166,"line":177},[4936,4940,4944,4948,4952,4956,4960,4965,4969],{"type":42,"tag":164,"props":4937,"children":4938},{"style":181},[4939],{"type":48,"value":1556},{"type":42,"tag":164,"props":4941,"children":4942},{"style":199},[4943],{"type":48,"value":960},{"type":42,"tag":164,"props":4945,"children":4946},{"style":193},[4947],{"type":48,"value":1801},{"type":42,"tag":164,"props":4949,"children":4950},{"style":199},[4951],{"type":48,"value":1128},{"type":42,"tag":164,"props":4953,"children":4954},{"style":181},[4955],{"type":48,"value":1574},{"type":42,"tag":164,"props":4957,"children":4958},{"style":199},[4959],{"type":48,"value":232},{"type":42,"tag":164,"props":4961,"children":4962},{"style":215},[4963],{"type":48,"value":4964},".\u002Fparams",{"type":42,"tag":164,"props":4966,"children":4967},{"style":199},[4968],{"type":48,"value":212},{"type":42,"tag":164,"props":4970,"children":4971},{"style":199},[4972],{"type":48,"value":294},{"type":42,"tag":164,"props":4974,"children":4975},{"class":166,"line":297},[4976],{"type":42,"tag":164,"props":4977,"children":4978},{"emptyLinePlaceholder":1832},[4979],{"type":48,"value":1835},{"type":42,"tag":164,"props":4981,"children":4982},{"class":166,"line":346},[4983,4988,4993,4997,5001,5005,5010,5014,5019,5023,5027,5031,5035],{"type":42,"tag":164,"props":4984,"children":4985},{"style":187},[4986],{"type":48,"value":4987},"function",{"type":42,"tag":164,"props":4989,"children":4990},{"style":1617},[4991],{"type":48,"value":4992}," withLocalePath",{"type":42,"tag":164,"props":4994,"children":4995},{"style":199},[4996],{"type":48,"value":1625},{"type":42,"tag":164,"props":4998,"children":4999},{"style":3996},[5000],{"type":48,"value":829},{"type":42,"tag":164,"props":5002,"children":5003},{"style":199},[5004],{"type":48,"value":316},{"type":42,"tag":164,"props":5006,"children":5007},{"style":319},[5008],{"type":48,"value":5009}," string",{"type":42,"tag":164,"props":5011,"children":5012},{"style":199},[5013],{"type":48,"value":227},{"type":42,"tag":164,"props":5015,"children":5016},{"style":3996},[5017],{"type":48,"value":5018}," pathname",{"type":42,"tag":164,"props":5020,"children":5021},{"style":199},[5022],{"type":48,"value":316},{"type":42,"tag":164,"props":5024,"children":5025},{"style":319},[5026],{"type":48,"value":5009},{"type":42,"tag":164,"props":5028,"children":5029},{"style":199},[5030],{"type":48,"value":4012},{"type":42,"tag":164,"props":5032,"children":5033},{"style":319},[5034],{"type":48,"value":5009},{"type":42,"tag":164,"props":5036,"children":5037},{"style":199},[5038],{"type":48,"value":917},{"type":42,"tag":164,"props":5040,"children":5041},{"class":166,"line":1020},[5042,5046,5050,5054,5059,5063,5067,5071],{"type":42,"tag":164,"props":5043,"children":5044},{"style":187},[5045],{"type":48,"value":2861},{"type":42,"tag":164,"props":5047,"children":5048},{"style":193},[5049],{"type":48,"value":4362},{"type":42,"tag":164,"props":5051,"children":5052},{"style":199},[5053],{"type":48,"value":327},{"type":42,"tag":164,"props":5055,"children":5056},{"style":1617},[5057],{"type":48,"value":5058}," normalizePath",{"type":42,"tag":164,"props":5060,"children":5061},{"style":923},[5062],{"type":48,"value":1625},{"type":42,"tag":164,"props":5064,"children":5065},{"style":193},[5066],{"type":48,"value":4317},{"type":42,"tag":164,"props":5068,"children":5069},{"style":923},[5070],{"type":48,"value":1670},{"type":42,"tag":164,"props":5072,"children":5073},{"style":199},[5074],{"type":48,"value":294},{"type":42,"tag":164,"props":5076,"children":5077},{"class":166,"line":1064},[5078,5082,5086,5091,5095,5099,5103,5108,5113,5117,5121,5125,5129,5133,5137,5141,5145,5149,5154,5158,5162],{"type":42,"tag":164,"props":5079,"children":5080},{"style":181},[5081],{"type":48,"value":2973},{"type":42,"tag":164,"props":5083,"children":5084},{"style":193},[5085],{"type":48,"value":4362},{"type":42,"tag":164,"props":5087,"children":5088},{"style":199},[5089],{"type":48,"value":5090}," ===",{"type":42,"tag":164,"props":5092,"children":5093},{"style":199},[5094],{"type":48,"value":232},{"type":42,"tag":164,"props":5096,"children":5097},{"style":215},[5098],{"type":48,"value":1872},{"type":42,"tag":164,"props":5100,"children":5101},{"style":199},[5102],{"type":48,"value":212},{"type":42,"tag":164,"props":5104,"children":5105},{"style":199},[5106],{"type":48,"value":5107}," ?",{"type":42,"tag":164,"props":5109,"children":5110},{"style":199},[5111],{"type":48,"value":5112}," `",{"type":42,"tag":164,"props":5114,"children":5115},{"style":215},[5116],{"type":48,"value":1872},{"type":42,"tag":164,"props":5118,"children":5119},{"style":199},[5120],{"type":48,"value":1877},{"type":42,"tag":164,"props":5122,"children":5123},{"style":193},[5124],{"type":48,"value":829},{"type":42,"tag":164,"props":5126,"children":5127},{"style":199},[5128],{"type":48,"value":4442},{"type":42,"tag":164,"props":5130,"children":5131},{"style":199},[5132],{"type":48,"value":3585},{"type":42,"tag":164,"props":5134,"children":5135},{"style":199},[5136],{"type":48,"value":5112},{"type":42,"tag":164,"props":5138,"children":5139},{"style":215},[5140],{"type":48,"value":1872},{"type":42,"tag":164,"props":5142,"children":5143},{"style":199},[5144],{"type":48,"value":1877},{"type":42,"tag":164,"props":5146,"children":5147},{"style":193},[5148],{"type":48,"value":829},{"type":42,"tag":164,"props":5150,"children":5151},{"style":199},[5152],{"type":48,"value":5153},"}${",{"type":42,"tag":164,"props":5155,"children":5156},{"style":193},[5157],{"type":48,"value":4532},{"type":42,"tag":164,"props":5159,"children":5160},{"style":199},[5161],{"type":48,"value":4442},{"type":42,"tag":164,"props":5163,"children":5164},{"style":199},[5165],{"type":48,"value":294},{"type":42,"tag":164,"props":5167,"children":5168},{"class":166,"line":1141},[5169],{"type":42,"tag":164,"props":5170,"children":5171},{"style":199},[5172],{"type":48,"value":2997},{"type":42,"tag":164,"props":5174,"children":5175},{"class":166,"line":1150},[5176],{"type":42,"tag":164,"props":5177,"children":5178},{"emptyLinePlaceholder":1832},[5179],{"type":48,"value":1835},{"type":42,"tag":164,"props":5181,"children":5182},{"class":166,"line":29},[5183,5187,5191,5195,5200,5205,5209,5213,5218,5223,5228,5232,5236,5241,5245,5249,5254,5258,5262,5266],{"type":42,"tag":164,"props":5184,"children":5185},{"style":181},[5186],{"type":48,"value":184},{"type":42,"tag":164,"props":5188,"children":5189},{"style":187},[5190],{"type":48,"value":2815},{"type":42,"tag":164,"props":5192,"children":5193},{"style":187},[5194],{"type":48,"value":2820},{"type":42,"tag":164,"props":5196,"children":5197},{"style":1617},[5198],{"type":48,"value":5199}," buildAlternates",{"type":42,"tag":164,"props":5201,"children":5202},{"style":199},[5203],{"type":48,"value":5204},"({",{"type":42,"tag":164,"props":5206,"children":5207},{"style":3996},[5208],{"type":48,"value":5018},{"type":42,"tag":164,"props":5210,"children":5211},{"style":199},[5212],{"type":48,"value":227},{"type":42,"tag":164,"props":5214,"children":5215},{"style":3996},[5216],{"type":48,"value":5217}," searchParams",{"type":42,"tag":164,"props":5219,"children":5220},{"style":199},[5221],{"type":48,"value":5222}," }:",{"type":42,"tag":164,"props":5224,"children":5225},{"style":199},[5226],{"type":48,"value":5227}," {...}):",{"type":42,"tag":164,"props":5229,"children":5230},{"style":319},[5231],{"type":48,"value":2834},{"type":42,"tag":164,"props":5233,"children":5234},{"style":199},[5235],{"type":48,"value":2839},{"type":42,"tag":164,"props":5237,"children":5238},{"style":319},[5239],{"type":48,"value":5240},"Metadata",{"type":42,"tag":164,"props":5242,"children":5243},{"style":193},[5244],{"type":48,"value":3628},{"type":42,"tag":164,"props":5246,"children":5247},{"style":199},[5248],{"type":48,"value":212},{"type":42,"tag":164,"props":5250,"children":5251},{"style":215},[5252],{"type":48,"value":5253},"alternates",{"type":42,"tag":164,"props":5255,"children":5256},{"style":199},[5257],{"type":48,"value":212},{"type":42,"tag":164,"props":5259,"children":5260},{"style":193},[5261],{"type":48,"value":1133},{"type":42,"tag":164,"props":5263,"children":5264},{"style":199},[5265],{"type":48,"value":2849},{"type":42,"tag":164,"props":5267,"children":5268},{"style":199},[5269],{"type":48,"value":917},{"type":42,"tag":164,"props":5271,"children":5272},{"class":166,"line":3376},[5273,5277,5281,5285,5289,5293,5297],{"type":42,"tag":164,"props":5274,"children":5275},{"style":187},[5276],{"type":48,"value":2861},{"type":42,"tag":164,"props":5278,"children":5279},{"style":193},[5280],{"type":48,"value":965},{"type":42,"tag":164,"props":5282,"children":5283},{"style":199},[5284],{"type":48,"value":327},{"type":42,"tag":164,"props":5286,"children":5287},{"style":181},[5288],{"type":48,"value":2875},{"type":42,"tag":164,"props":5290,"children":5291},{"style":1617},[5292],{"type":48,"value":1801},{"type":42,"tag":164,"props":5294,"children":5295},{"style":923},[5296],{"type":48,"value":1891},{"type":42,"tag":164,"props":5298,"children":5299},{"style":199},[5300],{"type":48,"value":294},{"type":42,"tag":164,"props":5302,"children":5303},{"class":166,"line":3385},[5304,5308,5313,5317,5322,5326,5331,5335,5339,5343,5347,5351,5355,5359,5363],{"type":42,"tag":164,"props":5305,"children":5306},{"style":187},[5307],{"type":48,"value":2861},{"type":42,"tag":164,"props":5309,"children":5310},{"style":193},[5311],{"type":48,"value":5312}," canonical",{"type":42,"tag":164,"props":5314,"children":5315},{"style":199},[5316],{"type":48,"value":327},{"type":42,"tag":164,"props":5318,"children":5319},{"style":1617},[5320],{"type":48,"value":5321}," buildCanonicalPath",{"type":42,"tag":164,"props":5323,"children":5324},{"style":923},[5325],{"type":48,"value":1625},{"type":42,"tag":164,"props":5327,"children":5328},{"style":1617},[5329],{"type":48,"value":5330},"withLocalePath",{"type":42,"tag":164,"props":5332,"children":5333},{"style":923},[5334],{"type":48,"value":1625},{"type":42,"tag":164,"props":5336,"children":5337},{"style":193},[5338],{"type":48,"value":829},{"type":42,"tag":164,"props":5340,"children":5341},{"style":199},[5342],{"type":48,"value":227},{"type":42,"tag":164,"props":5344,"children":5345},{"style":193},[5346],{"type":48,"value":5018},{"type":42,"tag":164,"props":5348,"children":5349},{"style":923},[5350],{"type":48,"value":1670},{"type":42,"tag":164,"props":5352,"children":5353},{"style":199},[5354],{"type":48,"value":227},{"type":42,"tag":164,"props":5356,"children":5357},{"style":193},[5358],{"type":48,"value":5217},{"type":42,"tag":164,"props":5360,"children":5361},{"style":923},[5362],{"type":48,"value":1670},{"type":42,"tag":164,"props":5364,"children":5365},{"style":199},[5366],{"type":48,"value":294},{"type":42,"tag":164,"props":5368,"children":5369},{"class":166,"line":3393},[5370],{"type":42,"tag":164,"props":5371,"children":5372},{"emptyLinePlaceholder":1832},[5373],{"type":48,"value":1835},{"type":42,"tag":164,"props":5375,"children":5376},{"class":166,"line":3401},[5377,5381,5386,5390,5394,5398,5402,5406,5410,5414,5418],{"type":42,"tag":164,"props":5378,"children":5379},{"style":187},[5380],{"type":48,"value":2861},{"type":42,"tag":164,"props":5382,"children":5383},{"style":193},[5384],{"type":48,"value":5385}," languages",{"type":42,"tag":164,"props":5387,"children":5388},{"style":199},[5389],{"type":48,"value":316},{"type":42,"tag":164,"props":5391,"children":5392},{"style":319},[5393],{"type":48,"value":3245},{"type":42,"tag":164,"props":5395,"children":5396},{"style":199},[5397],{"type":48,"value":2839},{"type":42,"tag":164,"props":5399,"children":5400},{"style":319},[5401],{"type":48,"value":3254},{"type":42,"tag":164,"props":5403,"children":5404},{"style":199},[5405],{"type":48,"value":227},{"type":42,"tag":164,"props":5407,"children":5408},{"style":319},[5409],{"type":48,"value":5009},{"type":42,"tag":164,"props":5411,"children":5412},{"style":199},[5413],{"type":48,"value":2849},{"type":42,"tag":164,"props":5415,"children":5416},{"style":199},[5417],{"type":48,"value":327},{"type":42,"tag":164,"props":5419,"children":5420},{"style":199},[5421],{"type":48,"value":5422}," {};\n",{"type":42,"tag":164,"props":5424,"children":5425},{"class":166,"line":3410},[5426,5431,5435,5439,5444,5449,5453,5457],{"type":42,"tag":164,"props":5427,"children":5428},{"style":181},[5429],{"type":48,"value":5430},"  for",{"type":42,"tag":164,"props":5432,"children":5433},{"style":923},[5434],{"type":48,"value":1604},{"type":42,"tag":164,"props":5436,"children":5437},{"style":187},[5438],{"type":48,"value":3231},{"type":42,"tag":164,"props":5440,"children":5441},{"style":193},[5442],{"type":48,"value":5443}," candidate",{"type":42,"tag":164,"props":5445,"children":5446},{"style":199},[5447],{"type":48,"value":5448}," of",{"type":42,"tag":164,"props":5450,"children":5451},{"style":193},[5452],{"type":48,"value":360},{"type":42,"tag":164,"props":5454,"children":5455},{"style":923},[5456],{"type":48,"value":3571},{"type":42,"tag":164,"props":5458,"children":5459},{"style":199},[5460],{"type":48,"value":2089},{"type":42,"tag":164,"props":5462,"children":5463},{"class":166,"line":3419},[5464,5469,5473,5478,5482,5486,5490,5494,5498,5502,5506,5510,5514,5518,5522,5526,5530],{"type":42,"tag":164,"props":5465,"children":5466},{"style":193},[5467],{"type":48,"value":5468},"    languages",{"type":42,"tag":164,"props":5470,"children":5471},{"style":923},[5472],{"type":48,"value":3628},{"type":42,"tag":164,"props":5474,"children":5475},{"style":193},[5476],{"type":48,"value":5477},"candidate",{"type":42,"tag":164,"props":5479,"children":5480},{"style":923},[5481],{"type":48,"value":280},{"type":42,"tag":164,"props":5483,"children":5484},{"style":199},[5485],{"type":48,"value":202},{"type":42,"tag":164,"props":5487,"children":5488},{"style":1617},[5489],{"type":48,"value":5321},{"type":42,"tag":164,"props":5491,"children":5492},{"style":923},[5493],{"type":48,"value":1625},{"type":42,"tag":164,"props":5495,"children":5496},{"style":1617},[5497],{"type":48,"value":5330},{"type":42,"tag":164,"props":5499,"children":5500},{"style":923},[5501],{"type":48,"value":1625},{"type":42,"tag":164,"props":5503,"children":5504},{"style":193},[5505],{"type":48,"value":5477},{"type":42,"tag":164,"props":5507,"children":5508},{"style":199},[5509],{"type":48,"value":227},{"type":42,"tag":164,"props":5511,"children":5512},{"style":193},[5513],{"type":48,"value":5018},{"type":42,"tag":164,"props":5515,"children":5516},{"style":923},[5517],{"type":48,"value":1670},{"type":42,"tag":164,"props":5519,"children":5520},{"style":199},[5521],{"type":48,"value":227},{"type":42,"tag":164,"props":5523,"children":5524},{"style":193},[5525],{"type":48,"value":5217},{"type":42,"tag":164,"props":5527,"children":5528},{"style":923},[5529],{"type":48,"value":1670},{"type":42,"tag":164,"props":5531,"children":5532},{"style":199},[5533],{"type":48,"value":294},{"type":42,"tag":164,"props":5535,"children":5536},{"class":166,"line":3428},[5537],{"type":42,"tag":164,"props":5538,"children":5539},{"style":199},[5540],{"type":48,"value":5541},"  }\n",{"type":42,"tag":164,"props":5543,"children":5544},{"class":166,"line":3437},[5545,5550,5554,5558,5563,5567,5571,5575,5579,5583,5587,5591,5595,5599,5603,5607,5611,5615,5619],{"type":42,"tag":164,"props":5546,"children":5547},{"style":193},[5548],{"type":48,"value":5549},"  languages",{"type":42,"tag":164,"props":5551,"children":5552},{"style":923},[5553],{"type":48,"value":3628},{"type":42,"tag":164,"props":5555,"children":5556},{"style":199},[5557],{"type":48,"value":212},{"type":42,"tag":164,"props":5559,"children":5560},{"style":215},[5561],{"type":48,"value":5562},"x-default",{"type":42,"tag":164,"props":5564,"children":5565},{"style":199},[5566],{"type":48,"value":212},{"type":42,"tag":164,"props":5568,"children":5569},{"style":923},[5570],{"type":48,"value":280},{"type":42,"tag":164,"props":5572,"children":5573},{"style":199},[5574],{"type":48,"value":202},{"type":42,"tag":164,"props":5576,"children":5577},{"style":1617},[5578],{"type":48,"value":5321},{"type":42,"tag":164,"props":5580,"children":5581},{"style":923},[5582],{"type":48,"value":1625},{"type":42,"tag":164,"props":5584,"children":5585},{"style":1617},[5586],{"type":48,"value":5330},{"type":42,"tag":164,"props":5588,"children":5589},{"style":923},[5590],{"type":48,"value":1625},{"type":42,"tag":164,"props":5592,"children":5593},{"style":193},[5594],{"type":48,"value":3598},{"type":42,"tag":164,"props":5596,"children":5597},{"style":199},[5598],{"type":48,"value":227},{"type":42,"tag":164,"props":5600,"children":5601},{"style":193},[5602],{"type":48,"value":5018},{"type":42,"tag":164,"props":5604,"children":5605},{"style":923},[5606],{"type":48,"value":1670},{"type":42,"tag":164,"props":5608,"children":5609},{"style":199},[5610],{"type":48,"value":227},{"type":42,"tag":164,"props":5612,"children":5613},{"style":193},[5614],{"type":48,"value":5217},{"type":42,"tag":164,"props":5616,"children":5617},{"style":923},[5618],{"type":48,"value":1670},{"type":42,"tag":164,"props":5620,"children":5621},{"style":199},[5622],{"type":48,"value":294},{"type":42,"tag":164,"props":5624,"children":5625},{"class":166,"line":3446},[5626],{"type":42,"tag":164,"props":5627,"children":5628},{"emptyLinePlaceholder":1832},[5629],{"type":48,"value":1835},{"type":42,"tag":164,"props":5631,"children":5632},{"class":166,"line":3455},[5633,5637,5641,5645,5649,5653],{"type":42,"tag":164,"props":5634,"children":5635},{"style":181},[5636],{"type":48,"value":2973},{"type":42,"tag":164,"props":5638,"children":5639},{"style":199},[5640],{"type":48,"value":960},{"type":42,"tag":164,"props":5642,"children":5643},{"style":193},[5644],{"type":48,"value":5312},{"type":42,"tag":164,"props":5646,"children":5647},{"style":199},[5648],{"type":48,"value":227},{"type":42,"tag":164,"props":5650,"children":5651},{"style":193},[5652],{"type":48,"value":5385},{"type":42,"tag":164,"props":5654,"children":5655},{"style":199},[5656],{"type":48,"value":3758},{"type":42,"tag":164,"props":5658,"children":5659},{"class":166,"line":3492},[5660],{"type":42,"tag":164,"props":5661,"children":5662},{"style":199},[5663],{"type":48,"value":2997},{"type":42,"tag":51,"props":5665,"children":5666},{},[5667,5673,5675,5680],{"type":42,"tag":57,"props":5668,"children":5670},{"className":5669},[],[5671],{"type":48,"value":5672},"buildAlternates",{"type":48,"value":5674}," is now async — update every caller to ",{"type":42,"tag":57,"props":5676,"children":5678},{"className":5677},[],[5679],{"type":48,"value":1882},{"type":48,"value":647},{"type":42,"tag":585,"props":5682,"children":5684},{"id":5683},"step-8-sitemap-per-locale-entries",[5685],{"type":48,"value":5686},"Step 8: Sitemap per-locale entries",{"type":42,"tag":51,"props":5688,"children":5689},{},[5690,5692,5698,5700,5706,5708,5714,5716,5721,5723,5729,5731,5737],{"type":48,"value":5691},"Edit ",{"type":42,"tag":57,"props":5693,"children":5695},{"className":5694},[],[5696],{"type":48,"value":5697},"app\u002Fsitemap\u002F[shard]\u002Froute.ts",{"type":48,"value":5699},". For every resource, emit one ",{"type":42,"tag":57,"props":5701,"children":5703},{"className":5702},[],[5704],{"type":48,"value":5705},"\u003Curl>",{"type":48,"value":5707}," per enabled locale and add ",{"type":42,"tag":57,"props":5709,"children":5711},{"className":5710},[],[5712],{"type":48,"value":5713},"\u003Cxhtml:link rel=\"alternate\" hreflang=\"...\" href=\"...\" \u002F>",{"type":48,"value":5715}," siblings inside each ",{"type":42,"tag":57,"props":5717,"children":5719},{"className":5718},[],[5720],{"type":48,"value":5705},{"type":48,"value":5722}," pointing at the other locale variants. Add ",{"type":42,"tag":57,"props":5724,"children":5726},{"className":5725},[],[5727],{"type":48,"value":5728},"xmlns:xhtml=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxhtml\"",{"type":48,"value":5730}," to the ",{"type":42,"tag":57,"props":5732,"children":5734},{"className":5733},[],[5735],{"type":48,"value":5736},"\u003Curlset>",{"type":48,"value":5738}," opening tag.",{"type":42,"tag":153,"props":5740,"children":5742},{"className":155,"code":5741,"language":157,"meta":158,"style":158},"import { enabledLocales } from \"@\u002Flib\u002Fi18n\";\n\nfunction localizePath(locale: string, pathname: string): string {\n  if (pathname === \"\u002F\") return `\u002F${locale}`;\n  return `\u002F${locale}${pathname.startsWith(\"\u002F\") ? pathname : `\u002F${pathname}`}`;\n}\n\n\u002F\u002F Inside renderShard(): for each item, for each locale, emit a \u003Curl> with\n\u002F\u002F a \u003Cloc> at the localized path and an \u003Cxhtml:link> per other locale.\n",[5743],{"type":42,"tag":57,"props":5744,"children":5745},{"__ignoreMap":158},[5746,5786,5793,5849,5912,6010,6017,6024,6032],{"type":42,"tag":164,"props":5747,"children":5748},{"class":166,"line":167},[5749,5753,5757,5761,5765,5769,5773,5778,5782],{"type":42,"tag":164,"props":5750,"children":5751},{"style":181},[5752],{"type":48,"value":1556},{"type":42,"tag":164,"props":5754,"children":5755},{"style":199},[5756],{"type":48,"value":960},{"type":42,"tag":164,"props":5758,"children":5759},{"style":193},[5760],{"type":48,"value":360},{"type":42,"tag":164,"props":5762,"children":5763},{"style":199},[5764],{"type":48,"value":1128},{"type":42,"tag":164,"props":5766,"children":5767},{"style":181},[5768],{"type":48,"value":1574},{"type":42,"tag":164,"props":5770,"children":5771},{"style":199},[5772],{"type":48,"value":232},{"type":42,"tag":164,"props":5774,"children":5775},{"style":215},[5776],{"type":48,"value":5777},"@\u002Flib\u002Fi18n",{"type":42,"tag":164,"props":5779,"children":5780},{"style":199},[5781],{"type":48,"value":212},{"type":42,"tag":164,"props":5783,"children":5784},{"style":199},[5785],{"type":48,"value":294},{"type":42,"tag":164,"props":5787,"children":5788},{"class":166,"line":177},[5789],{"type":42,"tag":164,"props":5790,"children":5791},{"emptyLinePlaceholder":1832},[5792],{"type":48,"value":1835},{"type":42,"tag":164,"props":5794,"children":5795},{"class":166,"line":297},[5796,5800,5805,5809,5813,5817,5821,5825,5829,5833,5837,5841,5845],{"type":42,"tag":164,"props":5797,"children":5798},{"style":187},[5799],{"type":48,"value":4987},{"type":42,"tag":164,"props":5801,"children":5802},{"style":1617},[5803],{"type":48,"value":5804}," localizePath",{"type":42,"tag":164,"props":5806,"children":5807},{"style":199},[5808],{"type":48,"value":1625},{"type":42,"tag":164,"props":5810,"children":5811},{"style":3996},[5812],{"type":48,"value":829},{"type":42,"tag":164,"props":5814,"children":5815},{"style":199},[5816],{"type":48,"value":316},{"type":42,"tag":164,"props":5818,"children":5819},{"style":319},[5820],{"type":48,"value":5009},{"type":42,"tag":164,"props":5822,"children":5823},{"style":199},[5824],{"type":48,"value":227},{"type":42,"tag":164,"props":5826,"children":5827},{"style":3996},[5828],{"type":48,"value":5018},{"type":42,"tag":164,"props":5830,"children":5831},{"style":199},[5832],{"type":48,"value":316},{"type":42,"tag":164,"props":5834,"children":5835},{"style":319},[5836],{"type":48,"value":5009},{"type":42,"tag":164,"props":5838,"children":5839},{"style":199},[5840],{"type":48,"value":4012},{"type":42,"tag":164,"props":5842,"children":5843},{"style":319},[5844],{"type":48,"value":5009},{"type":42,"tag":164,"props":5846,"children":5847},{"style":199},[5848],{"type":48,"value":917},{"type":42,"tag":164,"props":5850,"children":5851},{"class":166,"line":346},[5852,5856,5860,5864,5868,5872,5876,5880,5884,5888,5892,5896,5900,5904,5908],{"type":42,"tag":164,"props":5853,"children":5854},{"style":181},[5855],{"type":48,"value":2895},{"type":42,"tag":164,"props":5857,"children":5858},{"style":923},[5859],{"type":48,"value":1604},{"type":42,"tag":164,"props":5861,"children":5862},{"style":193},[5863],{"type":48,"value":4317},{"type":42,"tag":164,"props":5865,"children":5866},{"style":199},[5867],{"type":48,"value":5090},{"type":42,"tag":164,"props":5869,"children":5870},{"style":199},[5871],{"type":48,"value":232},{"type":42,"tag":164,"props":5873,"children":5874},{"style":215},[5875],{"type":48,"value":1872},{"type":42,"tag":164,"props":5877,"children":5878},{"style":199},[5879],{"type":48,"value":212},{"type":42,"tag":164,"props":5881,"children":5882},{"style":923},[5883],{"type":48,"value":3571},{"type":42,"tag":164,"props":5885,"children":5886},{"style":181},[5887],{"type":48,"value":1682},{"type":42,"tag":164,"props":5889,"children":5890},{"style":199},[5891],{"type":48,"value":5112},{"type":42,"tag":164,"props":5893,"children":5894},{"style":215},[5895],{"type":48,"value":1872},{"type":42,"tag":164,"props":5897,"children":5898},{"style":199},[5899],{"type":48,"value":1877},{"type":42,"tag":164,"props":5901,"children":5902},{"style":193},[5903],{"type":48,"value":829},{"type":42,"tag":164,"props":5905,"children":5906},{"style":199},[5907],{"type":48,"value":4442},{"type":42,"tag":164,"props":5909,"children":5910},{"style":199},[5911],{"type":48,"value":294},{"type":42,"tag":164,"props":5913,"children":5914},{"class":166,"line":1020},[5915,5919,5923,5927,5931,5935,5939,5943,5947,5952,5956,5960,5964,5968,5972,5976,5981,5985,5989,5993,5997,6001,6006],{"type":42,"tag":164,"props":5916,"children":5917},{"style":181},[5918],{"type":48,"value":2973},{"type":42,"tag":164,"props":5920,"children":5921},{"style":199},[5922],{"type":48,"value":5112},{"type":42,"tag":164,"props":5924,"children":5925},{"style":215},[5926],{"type":48,"value":1872},{"type":42,"tag":164,"props":5928,"children":5929},{"style":199},[5930],{"type":48,"value":1877},{"type":42,"tag":164,"props":5932,"children":5933},{"style":193},[5934],{"type":48,"value":829},{"type":42,"tag":164,"props":5936,"children":5937},{"style":199},[5938],{"type":48,"value":5153},{"type":42,"tag":164,"props":5940,"children":5941},{"style":193},[5942],{"type":48,"value":4317},{"type":42,"tag":164,"props":5944,"children":5945},{"style":199},[5946],{"type":48,"value":647},{"type":42,"tag":164,"props":5948,"children":5949},{"style":1617},[5950],{"type":48,"value":5951},"startsWith",{"type":42,"tag":164,"props":5953,"children":5954},{"style":193},[5955],{"type":48,"value":1625},{"type":42,"tag":164,"props":5957,"children":5958},{"style":199},[5959],{"type":48,"value":212},{"type":42,"tag":164,"props":5961,"children":5962},{"style":215},[5963],{"type":48,"value":1872},{"type":42,"tag":164,"props":5965,"children":5966},{"style":199},[5967],{"type":48,"value":212},{"type":42,"tag":164,"props":5969,"children":5970},{"style":193},[5971],{"type":48,"value":3571},{"type":42,"tag":164,"props":5973,"children":5974},{"style":199},[5975],{"type":48,"value":3576},{"type":42,"tag":164,"props":5977,"children":5978},{"style":193},[5979],{"type":48,"value":5980}," pathname ",{"type":42,"tag":164,"props":5982,"children":5983},{"style":199},[5984],{"type":48,"value":316},{"type":42,"tag":164,"props":5986,"children":5987},{"style":199},[5988],{"type":48,"value":5112},{"type":42,"tag":164,"props":5990,"children":5991},{"style":215},[5992],{"type":48,"value":1872},{"type":42,"tag":164,"props":5994,"children":5995},{"style":199},[5996],{"type":48,"value":1877},{"type":42,"tag":164,"props":5998,"children":5999},{"style":193},[6000],{"type":48,"value":4317},{"type":42,"tag":164,"props":6002,"children":6003},{"style":199},[6004],{"type":48,"value":6005},"}`}`",{"type":42,"tag":164,"props":6007,"children":6008},{"style":199},[6009],{"type":48,"value":294},{"type":42,"tag":164,"props":6011,"children":6012},{"class":166,"line":1064},[6013],{"type":42,"tag":164,"props":6014,"children":6015},{"style":199},[6016],{"type":48,"value":2997},{"type":42,"tag":164,"props":6018,"children":6019},{"class":166,"line":1141},[6020],{"type":42,"tag":164,"props":6021,"children":6022},{"emptyLinePlaceholder":1832},[6023],{"type":48,"value":1835},{"type":42,"tag":164,"props":6025,"children":6026},{"class":166,"line":1150},[6027],{"type":42,"tag":164,"props":6028,"children":6029},{"style":171},[6030],{"type":48,"value":6031},"\u002F\u002F Inside renderShard(): for each item, for each locale, emit a \u003Curl> with\n",{"type":42,"tag":164,"props":6033,"children":6034},{"class":166,"line":29},[6035],{"type":42,"tag":164,"props":6036,"children":6037},{"style":171},[6038],{"type":48,"value":6039},"\u002F\u002F a \u003Cloc> at the localized path and an \u003Cxhtml:link> per other locale.\n",{"type":42,"tag":51,"props":6041,"children":6042},{},[6043,6049],{"type":42,"tag":57,"props":6044,"children":6046},{"className":6045},[],[6047],{"type":48,"value":6048},"app\u002Fsitemap.xml\u002Froute.ts",{"type":48,"value":6050}," (the index) doesn't need locale handling — it only lists shard URLs, which stay locale-agnostic.",{"type":42,"tag":585,"props":6052,"children":6054},{"id":6053},"step-9-nextconfigts-rewritesredirects-on-locale",[6055,6057,6062,6063],{"type":48,"value":6056},"Step 9: ",{"type":42,"tag":57,"props":6058,"children":6060},{"className":6059},[],[6061],{"type":48,"value":511},{"type":48,"value":513},{"type":42,"tag":57,"props":6064,"children":6066},{"className":6065},[],[6067],{"type":48,"value":519},{"type":42,"tag":51,"props":6069,"children":6070},{},[6071,6073,6079,6080,6086,6088,6094,6096,6102,6103,6109,6111,6117,6119,6124,6126,6132,6133,6139],{"type":48,"value":6072},"Existing markdown content-negotiation rewrites must move their ",{"type":42,"tag":57,"props":6074,"children":6076},{"className":6075},[],[6077],{"type":48,"value":6078},"source",{"type":48,"value":4779},{"type":42,"tag":57,"props":6081,"children":6083},{"className":6082},[],[6084],{"type":48,"value":6085},"\u002Fproducts\u002F:handle",{"type":48,"value":6087}," to ",{"type":42,"tag":57,"props":6089,"children":6091},{"className":6090},[],[6092],{"type":48,"value":6093},"\u002F:locale\u002Fproducts\u002F:handle",{"type":48,"value":6095},", etc. Destinations stay at ",{"type":42,"tag":57,"props":6097,"children":6099},{"className":6098},[],[6100],{"type":48,"value":6101},"\u002Fmd\u002Fproducts\u002F:handle",{"type":48,"value":794},{"type":42,"tag":57,"props":6104,"children":6106},{"className":6105},[],[6107],{"type":48,"value":6108},"\u002Fmd\u002Fcollections\u002F:handle",{"type":48,"value":6110},", and ",{"type":42,"tag":57,"props":6112,"children":6114},{"className":6113},[],[6115],{"type":48,"value":6116},"\u002Fmd\u002Fsearch",{"type":48,"value":6118}," — the handlers read ",{"type":42,"tag":57,"props":6120,"children":6122},{"className":6121},[],[6123],{"type":48,"value":829},{"type":48,"value":6125}," from query params, not the URL path. Add the locale-prefixed redirect rules from the original config (",{"type":42,"tag":57,"props":6127,"children":6129},{"className":6128},[],[6130],{"type":48,"value":6131},"\u002F:locale\u002Fproduct*",{"type":48,"value":774},{"type":42,"tag":57,"props":6134,"children":6136},{"className":6135},[],[6137],{"type":48,"value":6138},"\u002F:locale\u002Fproducts*",{"type":48,"value":6140},").",{"type":42,"tag":585,"props":6142,"children":6144},{"id":6143},"step-10-appunlocalizedpagetsx-fallback",[6145,6147,6152],{"type":48,"value":6146},"Step 10: ",{"type":42,"tag":57,"props":6148,"children":6150},{"className":6149},[],[6151],{"type":48,"value":530},{"type":48,"value":6153}," fallback",{"type":42,"tag":153,"props":6155,"children":6157},{"className":155,"code":6156,"language":157,"meta":158,"style":158},"import { permanentRedirect } from \"next\u002Fnavigation\";\nimport { defaultLocale } from \"@\u002Flib\u002Fi18n\";\n\nexport default function UnlocalizedRoot(): never {\n  permanentRedirect(`\u002F${defaultLocale}`);\n}\n",[6158],{"type":42,"tag":57,"props":6159,"children":6160},{"__ignoreMap":158},[6161,6201,6240,6247,6280,6320],{"type":42,"tag":164,"props":6162,"children":6163},{"class":166,"line":167},[6164,6168,6172,6177,6181,6185,6189,6193,6197],{"type":42,"tag":164,"props":6165,"children":6166},{"style":181},[6167],{"type":48,"value":1556},{"type":42,"tag":164,"props":6169,"children":6170},{"style":199},[6171],{"type":48,"value":960},{"type":42,"tag":164,"props":6173,"children":6174},{"style":193},[6175],{"type":48,"value":6176}," permanentRedirect",{"type":42,"tag":164,"props":6178,"children":6179},{"style":199},[6180],{"type":48,"value":1128},{"type":42,"tag":164,"props":6182,"children":6183},{"style":181},[6184],{"type":48,"value":1574},{"type":42,"tag":164,"props":6186,"children":6187},{"style":199},[6188],{"type":48,"value":232},{"type":42,"tag":164,"props":6190,"children":6191},{"style":215},[6192],{"type":48,"value":1723},{"type":42,"tag":164,"props":6194,"children":6195},{"style":199},[6196],{"type":48,"value":212},{"type":42,"tag":164,"props":6198,"children":6199},{"style":199},[6200],{"type":48,"value":294},{"type":42,"tag":164,"props":6202,"children":6203},{"class":166,"line":177},[6204,6208,6212,6216,6220,6224,6228,6232,6236],{"type":42,"tag":164,"props":6205,"children":6206},{"style":181},[6207],{"type":48,"value":1556},{"type":42,"tag":164,"props":6209,"children":6210},{"style":199},[6211],{"type":48,"value":960},{"type":42,"tag":164,"props":6213,"children":6214},{"style":193},[6215],{"type":48,"value":311},{"type":42,"tag":164,"props":6217,"children":6218},{"style":199},[6219],{"type":48,"value":1128},{"type":42,"tag":164,"props":6221,"children":6222},{"style":181},[6223],{"type":48,"value":1574},{"type":42,"tag":164,"props":6225,"children":6226},{"style":199},[6227],{"type":48,"value":232},{"type":42,"tag":164,"props":6229,"children":6230},{"style":215},[6231],{"type":48,"value":5777},{"type":42,"tag":164,"props":6233,"children":6234},{"style":199},[6235],{"type":48,"value":212},{"type":42,"tag":164,"props":6237,"children":6238},{"style":199},[6239],{"type":48,"value":294},{"type":42,"tag":164,"props":6241,"children":6242},{"class":166,"line":297},[6243],{"type":42,"tag":164,"props":6244,"children":6245},{"emptyLinePlaceholder":1832},[6246],{"type":48,"value":1835},{"type":42,"tag":164,"props":6248,"children":6249},{"class":166,"line":346},[6250,6254,6258,6262,6267,6271,6276],{"type":42,"tag":164,"props":6251,"children":6252},{"style":181},[6253],{"type":48,"value":184},{"type":42,"tag":164,"props":6255,"children":6256},{"style":181},[6257],{"type":48,"value":3282},{"type":42,"tag":164,"props":6259,"children":6260},{"style":187},[6261],{"type":48,"value":2820},{"type":42,"tag":164,"props":6263,"children":6264},{"style":1617},[6265],{"type":48,"value":6266}," UnlocalizedRoot",{"type":42,"tag":164,"props":6268,"children":6269},{"style":199},[6270],{"type":48,"value":2829},{"type":42,"tag":164,"props":6272,"children":6273},{"style":319},[6274],{"type":48,"value":6275}," never",{"type":42,"tag":164,"props":6277,"children":6278},{"style":199},[6279],{"type":48,"value":917},{"type":42,"tag":164,"props":6281,"children":6282},{"class":166,"line":1020},[6283,6288,6292,6296,6300,6304,6308,6312,6316],{"type":42,"tag":164,"props":6284,"children":6285},{"style":1617},[6286],{"type":48,"value":6287},"  permanentRedirect",{"type":42,"tag":164,"props":6289,"children":6290},{"style":923},[6291],{"type":48,"value":1625},{"type":42,"tag":164,"props":6293,"children":6294},{"style":199},[6295],{"type":48,"value":1867},{"type":42,"tag":164,"props":6297,"children":6298},{"style":215},[6299],{"type":48,"value":1872},{"type":42,"tag":164,"props":6301,"children":6302},{"style":199},[6303],{"type":48,"value":1877},{"type":42,"tag":164,"props":6305,"children":6306},{"style":193},[6307],{"type":48,"value":3598},{"type":42,"tag":164,"props":6309,"children":6310},{"style":199},[6311],{"type":48,"value":4442},{"type":42,"tag":164,"props":6313,"children":6314},{"style":923},[6315],{"type":48,"value":1670},{"type":42,"tag":164,"props":6317,"children":6318},{"style":199},[6319],{"type":48,"value":294},{"type":42,"tag":164,"props":6321,"children":6322},{"class":166,"line":1064},[6323],{"type":42,"tag":164,"props":6324,"children":6325},{"style":199},[6326],{"type":48,"value":2997},{"type":42,"tag":51,"props":6328,"children":6329},{},[6330,6332,6338,6340,6345],{"type":48,"value":6331},"This is a defensive fallback; with ",{"type":42,"tag":57,"props":6333,"children":6335},{"className":6334},[],[6336],{"type":48,"value":6337},"localePrefix: \"always\"",{"type":48,"value":6339}," middleware should already redirect ",{"type":42,"tag":57,"props":6341,"children":6343},{"className":6342},[],[6344],{"type":48,"value":1872},{"type":48,"value":647},{"type":42,"tag":585,"props":6347,"children":6349},{"id":6348},"step-11-generatestaticparams-on-the-locale-layout",[6350,6352,6357],{"type":48,"value":6351},"Step 11: ",{"type":42,"tag":57,"props":6353,"children":6355},{"className":6354},[],[6356],{"type":48,"value":541},{"type":48,"value":6358}," on the locale layout",{"type":42,"tag":153,"props":6360,"children":6362},{"className":155,"code":6361,"language":157,"meta":158,"style":158},"import { locales } from \"@\u002Flib\u002Fi18n\";\n\nexport const generateStaticParams = async () => {\n  return locales.map((locale) => ({ locale }));\n};\n",[6363],{"type":42,"tag":57,"props":6364,"children":6365},{"__ignoreMap":158},[6366,6405,6412,6448,6513],{"type":42,"tag":164,"props":6367,"children":6368},{"class":166,"line":167},[6369,6373,6377,6381,6385,6389,6393,6397,6401],{"type":42,"tag":164,"props":6370,"children":6371},{"style":181},[6372],{"type":48,"value":1556},{"type":42,"tag":164,"props":6374,"children":6375},{"style":199},[6376],{"type":48,"value":960},{"type":42,"tag":164,"props":6378,"children":6379},{"style":193},[6380],{"type":48,"value":387},{"type":42,"tag":164,"props":6382,"children":6383},{"style":199},[6384],{"type":48,"value":1128},{"type":42,"tag":164,"props":6386,"children":6387},{"style":181},[6388],{"type":48,"value":1574},{"type":42,"tag":164,"props":6390,"children":6391},{"style":199},[6392],{"type":48,"value":232},{"type":42,"tag":164,"props":6394,"children":6395},{"style":215},[6396],{"type":48,"value":5777},{"type":42,"tag":164,"props":6398,"children":6399},{"style":199},[6400],{"type":48,"value":212},{"type":42,"tag":164,"props":6402,"children":6403},{"style":199},[6404],{"type":48,"value":294},{"type":42,"tag":164,"props":6406,"children":6407},{"class":166,"line":177},[6408],{"type":42,"tag":164,"props":6409,"children":6410},{"emptyLinePlaceholder":1832},[6411],{"type":48,"value":1835},{"type":42,"tag":164,"props":6413,"children":6414},{"class":166,"line":297},[6415,6419,6423,6428,6432,6436,6440,6444],{"type":42,"tag":164,"props":6416,"children":6417},{"style":181},[6418],{"type":48,"value":184},{"type":42,"tag":164,"props":6420,"children":6421},{"style":187},[6422],{"type":48,"value":190},{"type":42,"tag":164,"props":6424,"children":6425},{"style":193},[6426],{"type":48,"value":6427}," generateStaticParams ",{"type":42,"tag":164,"props":6429,"children":6430},{"style":199},[6431],{"type":48,"value":202},{"type":42,"tag":164,"props":6433,"children":6434},{"style":187},[6435],{"type":48,"value":2815},{"type":42,"tag":164,"props":6437,"children":6438},{"style":199},[6439],{"type":48,"value":3263},{"type":42,"tag":164,"props":6441,"children":6442},{"style":187},[6443],{"type":48,"value":3268},{"type":42,"tag":164,"props":6445,"children":6446},{"style":199},[6447],{"type":48,"value":917},{"type":42,"tag":164,"props":6449,"children":6450},{"class":166,"line":346},[6451,6455,6459,6463,6468,6472,6476,6480,6484,6488,6492,6496,6500,6504,6509],{"type":42,"tag":164,"props":6452,"children":6453},{"style":181},[6454],{"type":48,"value":2973},{"type":42,"tag":164,"props":6456,"children":6457},{"style":193},[6458],{"type":48,"value":387},{"type":42,"tag":164,"props":6460,"children":6461},{"style":199},[6462],{"type":48,"value":647},{"type":42,"tag":164,"props":6464,"children":6465},{"style":1617},[6466],{"type":48,"value":6467},"map",{"type":42,"tag":164,"props":6469,"children":6470},{"style":923},[6471],{"type":48,"value":1625},{"type":42,"tag":164,"props":6473,"children":6474},{"style":199},[6475],{"type":48,"value":1625},{"type":42,"tag":164,"props":6477,"children":6478},{"style":3996},[6479],{"type":48,"value":829},{"type":42,"tag":164,"props":6481,"children":6482},{"style":199},[6483],{"type":48,"value":1670},{"type":42,"tag":164,"props":6485,"children":6486},{"style":187},[6487],{"type":48,"value":3268},{"type":42,"tag":164,"props":6489,"children":6490},{"style":923},[6491],{"type":48,"value":1604},{"type":42,"tag":164,"props":6493,"children":6494},{"style":199},[6495],{"type":48,"value":1083},{"type":42,"tag":164,"props":6497,"children":6498},{"style":193},[6499],{"type":48,"value":965},{"type":42,"tag":164,"props":6501,"children":6502},{"style":199},[6503],{"type":48,"value":1128},{"type":42,"tag":164,"props":6505,"children":6506},{"style":923},[6507],{"type":48,"value":6508},"))",{"type":42,"tag":164,"props":6510,"children":6511},{"style":199},[6512],{"type":48,"value":294},{"type":42,"tag":164,"props":6514,"children":6515},{"class":166,"line":1020},[6516],{"type":42,"tag":164,"props":6517,"children":6518},{"style":199},[6519],{"type":48,"value":1168},{"type":42,"tag":585,"props":6521,"children":6523},{"id":6522},"step-12-patch-instant-samples",[6524,6526,6531],{"type":48,"value":6525},"Step 12: Patch ",{"type":42,"tag":57,"props":6527,"children":6529},{"className":6528},[],[6530],{"type":48,"value":821},{"type":48,"value":6532}," samples",{"type":42,"tag":51,"props":6534,"children":6535},{},[6536,6538,6543,6545,6550,6552,6557],{"type":48,"value":6537},"Walk every route file that exports ",{"type":42,"tag":57,"props":6539,"children":6541},{"className":6540},[],[6542],{"type":48,"value":821},{"type":48,"value":6544}," and add ",{"type":42,"tag":57,"props":6546,"children":6548},{"className":6547},[],[6549],{"type":48,"value":829},{"type":48,"value":6551}," to each sample's ",{"type":42,"tag":57,"props":6553,"children":6555},{"className":6554},[],[6556],{"type":48,"value":837},{"type":48,"value":316},{"type":42,"tag":153,"props":6559,"children":6561},{"className":155,"code":6560,"language":157,"meta":158,"style":158},"params: { locale: \"en-US\", handle: \"__placeholder__\" }\n",[6562],{"type":42,"tag":57,"props":6563,"children":6564},{"__ignoreMap":158},[6565],{"type":42,"tag":164,"props":6566,"children":6567},{"class":166,"line":167},[6568,6572,6576,6580,6584,6588,6592,6596,6600,6604,6608,6612,6616,6620,6624],{"type":42,"tag":164,"props":6569,"children":6570},{"style":319},[6571],{"type":48,"value":837},{"type":42,"tag":164,"props":6573,"children":6574},{"style":199},[6575],{"type":48,"value":316},{"type":42,"tag":164,"props":6577,"children":6578},{"style":199},[6579],{"type":48,"value":960},{"type":42,"tag":164,"props":6581,"children":6582},{"style":319},[6583],{"type":48,"value":965},{"type":42,"tag":164,"props":6585,"children":6586},{"style":199},[6587],{"type":48,"value":316},{"type":42,"tag":164,"props":6589,"children":6590},{"style":199},[6591],{"type":48,"value":232},{"type":42,"tag":164,"props":6593,"children":6594},{"style":215},[6595],{"type":48,"value":218},{"type":42,"tag":164,"props":6597,"children":6598},{"style":199},[6599],{"type":48,"value":212},{"type":42,"tag":164,"props":6601,"children":6602},{"style":199},[6603],{"type":48,"value":227},{"type":42,"tag":164,"props":6605,"children":6606},{"style":319},[6607],{"type":48,"value":990},{"type":42,"tag":164,"props":6609,"children":6610},{"style":199},[6611],{"type":48,"value":316},{"type":42,"tag":164,"props":6613,"children":6614},{"style":199},[6615],{"type":48,"value":232},{"type":42,"tag":164,"props":6617,"children":6618},{"style":215},[6619],{"type":48,"value":1003},{"type":42,"tag":164,"props":6621,"children":6622},{"style":199},[6623],{"type":48,"value":212},{"type":42,"tag":164,"props":6625,"children":6626},{"style":199},[6627],{"type":48,"value":6628}," }\n",{"type":42,"tag":51,"props":6630,"children":6631},{},[6632,6634,6639,6641,6646],{"type":48,"value":6633},"If any layout-level server component (e.g. a shipping\u002Fpostal banner, geo-aware nav) reads ",{"type":42,"tag":57,"props":6635,"children":6637},{"className":6636},[],[6638],{"type":48,"value":1194},{"type":48,"value":6640},", also add a ",{"type":42,"tag":57,"props":6642,"children":6644},{"className":6643},[],[6645],{"type":48,"value":1186},{"type":48,"value":6647}," array to every sample:",{"type":42,"tag":153,"props":6649,"children":6651},{"className":155,"code":6650,"language":157,"meta":158,"style":158},"headers: [[\"x-vercel-ip-postal-code\", null]];\n",[6652],{"type":42,"tag":57,"props":6653,"children":6654},{"__ignoreMap":158},[6655],{"type":42,"tag":164,"props":6656,"children":6657},{"class":166,"line":167},[6658,6662,6666,6670,6674,6678,6682,6686,6690,6694],{"type":42,"tag":164,"props":6659,"children":6660},{"style":319},[6661],{"type":48,"value":1186},{"type":42,"tag":164,"props":6663,"children":6664},{"style":199},[6665],{"type":48,"value":316},{"type":42,"tag":164,"props":6667,"children":6668},{"style":193},[6669],{"type":48,"value":1441},{"type":42,"tag":164,"props":6671,"children":6672},{"style":199},[6673],{"type":48,"value":212},{"type":42,"tag":164,"props":6675,"children":6676},{"style":215},[6677],{"type":48,"value":1212},{"type":42,"tag":164,"props":6679,"children":6680},{"style":199},[6681],{"type":48,"value":212},{"type":42,"tag":164,"props":6683,"children":6684},{"style":199},[6685],{"type":48,"value":227},{"type":42,"tag":164,"props":6687,"children":6688},{"style":199},[6689],{"type":48,"value":1123},{"type":42,"tag":164,"props":6691,"children":6692},{"style":193},[6693],{"type":48,"value":1466},{"type":42,"tag":164,"props":6695,"children":6696},{"style":199},[6697],{"type":48,"value":294},{"type":42,"tag":51,"props":6699,"children":6700},{},[6701],{"type":48,"value":6702},"(See \"Cache Components compatibility D\u002FE\" at the top.)",{"type":42,"tag":585,"props":6704,"children":6706},{"id":6705},"step-13-conditional-re-enable-localecurrencyselector-in-the-megamenu",[6707,6709,6714],{"type":48,"value":6708},"Step 13: (Conditional) Re-enable ",{"type":42,"tag":57,"props":6710,"children":6712},{"className":6711},[],[6713],{"type":48,"value":562},{"type":48,"value":564},{"type":42,"tag":51,"props":6716,"children":6717},{},[6718,6720,6725,6727,6733,6735,6741,6743,6749,6751,6757,6758,6764],{"type":48,"value":6719},"Only if the ",{"type":42,"tag":57,"props":6721,"children":6723},{"className":6722},[],[6724],{"type":48,"value":554},{"type":48,"value":6726}," skill has already been run and ",{"type":42,"tag":57,"props":6728,"children":6730},{"className":6729},[],[6731],{"type":48,"value":6732},"components\u002Fnav\u002Fmegamenu\u002Findex.tsx",{"type":48,"value":6734}," exists. The selector component lives at ",{"type":42,"tag":57,"props":6736,"children":6738},{"className":6737},[],[6739],{"type":48,"value":6740},"components\u002Fnav\u002Flocale-currency.tsx",{"type":48,"value":6742}," (with a fallback at ",{"type":42,"tag":57,"props":6744,"children":6746},{"className":6745},[],[6747],{"type":48,"value":6748},"locale-currency-fallback.tsx",{"type":48,"value":6750},"). Wire it into both ",{"type":42,"tag":57,"props":6752,"children":6754},{"className":6753},[],[6755],{"type":48,"value":6756},"MegamenuDesktop",{"type":48,"value":128},{"type":42,"tag":57,"props":6759,"children":6761},{"className":6760},[],[6762],{"type":48,"value":6763},"MegamenuMobile",{"type":48,"value":6765}," per the original instructions.",{"type":42,"tag":97,"props":6767,"children":6769},{"id":6768},"verifying",[6770],{"type":48,"value":6771},"Verifying",{"type":42,"tag":51,"props":6773,"children":6774},{},[6775],{"type":48,"value":6776},"After applying:",{"type":42,"tag":153,"props":6778,"children":6782},{"className":6779,"code":6780,"language":6781,"meta":158,"style":158},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm build         # should pass; routes prerender at \u002Fen-US, \u002Fen-GB, etc.\npnpm dev           # then:\ncurl -I \u002F          # → 307 \u002Fen-US\ncurl -I \u002Fproducts  # → 307 \u002Fen-US\u002Fproducts\ncurl \u002Fsitemap.xml             # → sitemapindex listing shards\ncurl \u002Fsitemap\u002Fproducts-1.xml  # → entries with \u002Fen-US\u002F... URLs + xhtml:link alternates\ncurl \u002Fen-US        # → 200 with \u003Chtml lang=\"en-US\">\n","bash",[6783],{"type":42,"tag":57,"props":6784,"children":6785},{"__ignoreMap":158},[6786,6804,6821,6844,6865,6882,6899],{"type":42,"tag":164,"props":6787,"children":6788},{"class":166,"line":167},[6789,6794,6799],{"type":42,"tag":164,"props":6790,"children":6791},{"style":319},[6792],{"type":48,"value":6793},"pnpm",{"type":42,"tag":164,"props":6795,"children":6796},{"style":215},[6797],{"type":48,"value":6798}," build",{"type":42,"tag":164,"props":6800,"children":6801},{"style":171},[6802],{"type":48,"value":6803},"         # should pass; routes prerender at \u002Fen-US, \u002Fen-GB, etc.\n",{"type":42,"tag":164,"props":6805,"children":6806},{"class":166,"line":177},[6807,6811,6816],{"type":42,"tag":164,"props":6808,"children":6809},{"style":319},[6810],{"type":48,"value":6793},{"type":42,"tag":164,"props":6812,"children":6813},{"style":215},[6814],{"type":48,"value":6815}," dev",{"type":42,"tag":164,"props":6817,"children":6818},{"style":171},[6819],{"type":48,"value":6820},"           # then:\n",{"type":42,"tag":164,"props":6822,"children":6823},{"class":166,"line":297},[6824,6829,6834,6839],{"type":42,"tag":164,"props":6825,"children":6826},{"style":319},[6827],{"type":48,"value":6828},"curl",{"type":42,"tag":164,"props":6830,"children":6831},{"style":215},[6832],{"type":48,"value":6833}," -I",{"type":42,"tag":164,"props":6835,"children":6836},{"style":215},[6837],{"type":48,"value":6838}," \u002F",{"type":42,"tag":164,"props":6840,"children":6841},{"style":171},[6842],{"type":48,"value":6843},"          # → 307 \u002Fen-US\n",{"type":42,"tag":164,"props":6845,"children":6846},{"class":166,"line":346},[6847,6851,6855,6860],{"type":42,"tag":164,"props":6848,"children":6849},{"style":319},[6850],{"type":48,"value":6828},{"type":42,"tag":164,"props":6852,"children":6853},{"style":215},[6854],{"type":48,"value":6833},{"type":42,"tag":164,"props":6856,"children":6857},{"style":215},[6858],{"type":48,"value":6859}," \u002Fproducts",{"type":42,"tag":164,"props":6861,"children":6862},{"style":171},[6863],{"type":48,"value":6864},"  # → 307 \u002Fen-US\u002Fproducts\n",{"type":42,"tag":164,"props":6866,"children":6867},{"class":166,"line":1020},[6868,6872,6877],{"type":42,"tag":164,"props":6869,"children":6870},{"style":319},[6871],{"type":48,"value":6828},{"type":42,"tag":164,"props":6873,"children":6874},{"style":215},[6875],{"type":48,"value":6876}," \u002Fsitemap.xml",{"type":42,"tag":164,"props":6878,"children":6879},{"style":171},[6880],{"type":48,"value":6881},"             # → sitemapindex listing shards\n",{"type":42,"tag":164,"props":6883,"children":6884},{"class":166,"line":1064},[6885,6889,6894],{"type":42,"tag":164,"props":6886,"children":6887},{"style":319},[6888],{"type":48,"value":6828},{"type":42,"tag":164,"props":6890,"children":6891},{"style":215},[6892],{"type":48,"value":6893}," \u002Fsitemap\u002Fproducts-1.xml",{"type":42,"tag":164,"props":6895,"children":6896},{"style":171},[6897],{"type":48,"value":6898},"  # → entries with \u002Fen-US\u002F... URLs + xhtml:link alternates\n",{"type":42,"tag":164,"props":6900,"children":6901},{"class":166,"line":1141},[6902,6906,6911],{"type":42,"tag":164,"props":6903,"children":6904},{"style":319},[6905],{"type":48,"value":6828},{"type":42,"tag":164,"props":6907,"children":6908},{"style":215},[6909],{"type":48,"value":6910}," \u002Fen-US",{"type":42,"tag":164,"props":6912,"children":6913},{"style":171},[6914],{"type":48,"value":6915},"        # → 200 with \u003Chtml lang=\"en-US\">\n",{"type":42,"tag":51,"props":6917,"children":6918},{},[6919],{"type":48,"value":6920},"Smoke-test checklist:",{"type":42,"tag":2397,"props":6922,"children":6925},{"className":6923},[6924],"contains-task-list",[6926,6938,6954,6963,6979,6988,6997],{"type":42,"tag":403,"props":6927,"children":6930},{"className":6928},[6929],"task-list-item",[6931,6936],{"type":42,"tag":6932,"props":6933,"children":6935},"input",{"disabled":1832,"type":6934},"checkbox",[],{"type":48,"value":6937}," Build passes",{"type":42,"tag":403,"props":6939,"children":6941},{"className":6940},[6929],[6942,6945,6947,6952],{"type":42,"tag":6932,"props":6943,"children":6944},{"disabled":1832,"type":6934},[],{"type":48,"value":6946}," Bare ",{"type":42,"tag":57,"props":6948,"children":6950},{"className":6949},[],[6951],{"type":48,"value":1872},{"type":48,"value":6953}," redirects to default locale",{"type":42,"tag":403,"props":6955,"children":6957},{"className":6956},[6929],[6958,6961],{"type":42,"tag":6932,"props":6959,"children":6960},{"disabled":1832,"type":6934},[],{"type":48,"value":6962}," Each enabled locale serves 200 at its prefix",{"type":42,"tag":403,"props":6964,"children":6966},{"className":6965},[6929],[6967,6970,6971,6977],{"type":42,"tag":6932,"props":6968,"children":6969},{"disabled":1832,"type":6934},[],{"type":48,"value":461},{"type":42,"tag":57,"props":6972,"children":6974},{"className":6973},[],[6975],{"type":48,"value":6976},"\u003Chtml lang>",{"type":48,"value":6978}," matches the URL's locale segment",{"type":42,"tag":403,"props":6980,"children":6982},{"className":6981},[6929],[6983,6986],{"type":42,"tag":6932,"props":6984,"children":6985},{"disabled":1832,"type":6934},[],{"type":48,"value":6987}," Sitemap emits one entry per locale per page",{"type":42,"tag":403,"props":6989,"children":6991},{"className":6990},[6929],[6992,6995],{"type":42,"tag":6932,"props":6993,"children":6994},{"disabled":1832,"type":6934},[],{"type":48,"value":6996}," Canonical + hreflang alternates appear in page metadata",{"type":42,"tag":403,"props":6998,"children":7000},{"className":6999},[6929],[7001,7004,7006,7011],{"type":42,"tag":6932,"props":7002,"children":7003},{"disabled":1832,"type":6934},[],{"type":48,"value":7005}," Unprefixed internal links from existing ",{"type":42,"tag":57,"props":7007,"children":7009},{"className":7008},[],[7010],{"type":48,"value":693},{"type":48,"value":7012}," calls redirect (one extra hop, but correct)",{"type":42,"tag":7014,"props":7015,"children":7016},"style",{},[7017],{"type":48,"value":7018},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":7020,"total":1150},[7021,7039,7059,7067,7078,7091,7104],{"slug":7022,"name":7022,"fn":7023,"description":7024,"org":7025,"tags":7026,"stars":25,"repoUrl":26,"updatedAt":7038},"build-shop","build and adapt Shopify storefronts","Build or adapt a Shopify storefront with Vercel Shop source-backed patterns. Use when creating, redesigning, refactoring, or reviewing storefront routes, commerce data, rendering, caching, streaming, navigation, cart, account, mutations, product cards, media, loading states, or when applying Vercel Shop outside the template.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7027,7030,7033,7034,7037],{"name":7028,"slug":7029,"type":13},"Caching","caching",{"name":7031,"slug":7032,"type":13},"E-commerce","e-commerce",{"name":23,"slug":24,"type":13},{"name":7035,"slug":7036,"type":13},"Shopify","shopify",{"name":9,"slug":8,"type":13},"2026-07-01T08:07:40.865869",{"slug":7040,"name":7040,"fn":7041,"description":7042,"org":7043,"tags":7044,"stars":25,"repoUrl":26,"updatedAt":7058},"enable-analytics","enable analytics and performance monitoring","Add Vercel Analytics, Vercel Speed Insights, and Google Tag Manager to the storefront.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7045,7048,7051,7054,7057],{"name":7046,"slug":7047,"type":13},"Analytics","analytics",{"name":7049,"slug":7050,"type":13},"Marketing","marketing",{"name":7052,"slug":7053,"type":13},"Monitoring","monitoring",{"name":7055,"slug":7056,"type":13},"Performance","performance",{"name":9,"slug":8,"type":13},"2026-07-30T05:31:20.646283",{"slug":4,"name":4,"fn":5,"description":6,"org":7060,"tags":7061,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7062,7063,7064,7065,7066],{"name":23,"slug":24,"type":13},{"name":18,"slug":18,"type":13},{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"name":20,"slug":21,"type":13},{"slug":91,"name":91,"fn":7068,"description":7069,"org":7070,"tags":7071,"stars":25,"repoUrl":26,"updatedAt":7077},"enable multi-locale support with Shopify Markets","Enable Shopify Markets with regional locales, localized Storefront API context, and next-intl routing. Supports locale-prefixed, invisible cookie-based, and per-domain routing without a separate market URL segment or market mapping.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7072,7073,7074,7075,7076],{"name":7031,"slug":7032,"type":13},{"name":18,"slug":18,"type":13},{"name":7049,"slug":7050,"type":13},{"name":7035,"slug":7036,"type":13},{"name":9,"slug":8,"type":13},"2026-07-30T05:31:19.636559",{"slug":554,"name":554,"fn":7079,"description":7080,"org":7081,"tags":7082,"stars":25,"repoUrl":26,"updatedAt":7090},"implement Shopify-powered navigation menus","Replace the hardcoded nav and footer menus with Shopify-powered menus.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7083,7086,7087,7088,7089],{"name":7084,"slug":7085,"type":13},"Design","design",{"name":7031,"slug":7032,"type":13},{"name":23,"slug":24,"type":13},{"name":7035,"slug":7036,"type":13},{"name":9,"slug":8,"type":13},"2026-07-30T05:31:21.651736",{"slug":7092,"name":7092,"fn":7093,"description":7094,"org":7095,"tags":7096,"stars":25,"repoUrl":26,"updatedAt":7103},"init-vercel-shop","initialize Vercel Shop storefront projects","Initialize a new Vercel Shop storefront with the official create-vercel-shop CLI. Use when the user wants to create, scaffold, start, or initialize a Vercel Shop project from a coding agent.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7097,7100,7101,7102],{"name":7098,"slug":7099,"type":13},"CLI","cli",{"name":7031,"slug":7032,"type":13},{"name":9,"slug":8,"type":13},{"name":20,"slug":21,"type":13},"2026-06-20T07:52:13.955072",{"slug":7105,"name":7105,"fn":7106,"description":7107,"org":7108,"tags":7109,"stars":25,"repoUrl":26,"updatedAt":7119},"shopify-graphql-reference","reference Shopify GraphQL patterns and fragments","Integrate Shopify-validated Storefront or Customer Account GraphQL into Vercel Shop. Use after Shopify AI Toolkit has supplied and validated an API operation, or when adapting existing GraphQL to the template's operation placement, fragments, domain transforms, locale flow, cache role, invalidation, and route architecture.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7110,7113,7114,7117,7118],{"name":7111,"slug":7112,"type":13},"Documentation","documentation",{"name":7031,"slug":7032,"type":13},{"name":7115,"slug":7116,"type":13},"GraphQL","graphql",{"name":7035,"slug":7036,"type":13},{"name":9,"slug":8,"type":13},"2026-04-19T04:56:32.035454",{"items":7121,"total":7288},[7122,7138,7150,7167,7178,7193,7209,7227,7239,7256,7268,7278],{"slug":7123,"name":7123,"fn":7124,"description":7125,"org":7126,"tags":7127,"stars":7135,"repoUrl":7136,"updatedAt":7137},"next-cache-components-adoption","enable and migrate to Next.js Cache Components","Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the `cacheComponents` flag, work through a flood of blocking-prerender \u002F instant validation errors, run the `cache-components-instant-false` codemod, or decide between opting routes out with `export const instant = false` and fixing them in place.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7128,7129,7130,7133,7134],{"name":7028,"slug":7029,"type":13},{"name":23,"slug":24,"type":13},{"name":7131,"slug":7132,"type":13},"Migration","migration",{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},141208,"https:\u002F\u002Fgithub.com\u002Fvercel\u002Fnext.js","2026-07-24T05:38:30.118542",{"slug":7139,"name":7139,"fn":7140,"description":7141,"org":7142,"tags":7143,"stars":7135,"repoUrl":7136,"updatedAt":7149},"next-cache-components-optimizer","optimize Next.js cache components","Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components \u002F PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next\u002Fplaywright instant() e2e and work it to green, one verified route at a time; the shipped test then guards against regression. Use when asked to make a route's navigation instant (its static shell commits immediately), fix a route whose static shell isn't prerendered\u002Fserved\u002Fprefetched, grow a route's static shell or fix its slow first paint, diagnose which Suspense boundary keeps a route out of its static shell, or write the instant() e2e guard for one. Requires Next.js 16.3+ with cacheComponents; directs an upgrade if older.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7144,7145,7146,7147,7148],{"name":7028,"slug":7029,"type":13},{"name":23,"slug":24,"type":13},{"name":15,"slug":16,"type":13},{"name":7055,"slug":7056,"type":13},{"name":9,"slug":8,"type":13},"2026-07-30T05:31:10.674078",{"slug":7151,"name":7151,"fn":7152,"description":7153,"org":7154,"tags":7155,"stars":7135,"repoUrl":7136,"updatedAt":7166},"next-dev-loop","verify Next.js runtime behavior","Verify Next.js runtime behavior after editing app code. Use this skill to confirm a change actually works in a running app — not just that it compiles or type-checks. Combines \u002F_next\u002Fmcp (Next.js's view) with agent-browser (the browser's view). Requires a running `next dev`.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7156,7159,7160,7163,7164,7165],{"name":7157,"slug":7158,"type":13},"Debugging","debugging",{"name":23,"slug":24,"type":13},{"name":7161,"slug":7162,"type":13},"Local Development","local-development",{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"name":20,"slug":21,"type":13},"2026-05-22T06:45:28.627735",{"slug":7168,"name":7168,"fn":7169,"description":7170,"org":7171,"tags":7172,"stars":7135,"repoUrl":7136,"updatedAt":7177},"next-partial-prefetching-adoption","adopt Partial Prefetching in Next.js apps","Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the `partialPrefetching` flag, opt routes in with `export const prefetch = 'partial'`, audit `\u003CLink prefetch={true}>` calls, or resolve the link-prefetch-partial and instant-shell-url-data insights.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7173,7174,7175,7176],{"name":23,"slug":24,"type":13},{"name":15,"slug":16,"type":13},{"name":7055,"slug":7056,"type":13},{"name":9,"slug":8,"type":13},"2026-07-30T05:31:11.591864",{"slug":7179,"name":7179,"fn":7180,"description":7181,"org":7182,"tags":7183,"stars":7190,"repoUrl":7191,"updatedAt":7192},"turborepo","manage monorepos with Turborepo","Turborepo monorepo build system guidance. Triggers on: turbo.json, task pipelines,\ndependsOn, caching, remote cache, the \"turbo\" CLI, --filter, --affected, CI optimization, environment\nvariables, internal packages, monorepo structure\u002Fbest practices, and boundaries.\n\nUse when user: configures tasks\u002Fworkflows\u002Fpipelines, creates packages, sets up\nmonorepo, shares code between apps, runs changed\u002Faffected packages, debugs cache,\nor has apps\u002Fpackages directories.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7184,7187,7188],{"name":7185,"slug":7186,"type":13},"CI\u002FCD","ci-cd",{"name":7055,"slug":7056,"type":13},{"name":7189,"slug":7179,"type":13},"Turborepo",30809,"https:\u002F\u002Fgithub.com\u002Fvercel\u002Fturborepo","2026-07-30T05:32:14.920116",{"slug":7194,"name":7194,"fn":7195,"description":7196,"org":7197,"tags":7198,"stars":7206,"repoUrl":7207,"updatedAt":7208},"add-function-examples","add AI function examples for testing","Guide for adding new AI function examples, for testing specific features against the actual provider APIs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7199,7202,7205],{"name":7200,"slug":7201,"type":13},"AI SDK","ai-sdk",{"name":7203,"slug":7204,"type":13},"Testing","testing",{"name":9,"slug":8,"type":13},25670,"https:\u002F\u002Fgithub.com\u002Fvercel\u002Fai","2026-04-06T18:55:51.318866",{"slug":7210,"name":7210,"fn":7211,"description":7212,"org":7213,"tags":7214,"stars":7206,"repoUrl":7207,"updatedAt":7226},"add-harness-package","add AI SDK harness packages","Guide for adding new AI SDK harness packages. Use when creating a new @ai-sdk\u002Fharness-\u003Cname> package that adapts a coding-agent runtime to HarnessV1.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7215,7218,7219,7222,7225],{"name":7216,"slug":7217,"type":13},"Agents","agents",{"name":7200,"slug":7201,"type":13},{"name":7220,"slug":7221,"type":13},"Harness","harness",{"name":7223,"slug":7224,"type":13},"SDK","sdk",{"name":9,"slug":8,"type":13},"2026-06-18T08:29:19.858737",{"slug":7228,"name":7228,"fn":7229,"description":7230,"org":7231,"tags":7232,"stars":7206,"repoUrl":7207,"updatedAt":7238},"add-provider-package","add new provider packages to AI SDK","Guide for adding new AI provider packages to the AI SDK. Use when creating a new @ai-sdk\u002F\u003Cprovider> package to integrate an AI service into the SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7233,7234,7237],{"name":7200,"slug":7201,"type":13},{"name":7235,"slug":7236,"type":13},"API Development","api-development",{"name":9,"slug":8,"type":13},"2026-04-06T18:55:47.45549",{"slug":7240,"name":7240,"fn":7241,"description":7242,"org":7243,"tags":7244,"stars":7206,"repoUrl":7207,"updatedAt":7255},"adr-skill","create and maintain architecture decision records","Create and maintain Architecture Decision Records (ADRs) optimized for agentic coding workflows. Use when you need to propose, write, update, accept\u002Freject, deprecate, or supersede an ADR; bootstrap an adr folder and index; consult existing ADRs before implementing changes; or enforce ADR conventions. This skill uses Socratic questioning to capture intent before drafting, and validates output against an agent-readiness checklist.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7245,7248,7251,7252],{"name":7246,"slug":7247,"type":13},"ADR","adr",{"name":7249,"slug":7250,"type":13},"Architecture","architecture",{"name":7111,"slug":7112,"type":13},{"name":7253,"slug":7254,"type":13},"Engineering","engineering","2026-04-06T18:55:50.043694",{"slug":7201,"name":7201,"fn":7257,"description":7258,"org":7259,"tags":7260,"stars":7206,"repoUrl":7207,"updatedAt":7267},"build AI features with Vercel AI SDK","Answer questions about the AI SDK and help build AI-powered features. Use when developers: (1) Ask about AI SDK functions like generateText, streamText, ToolLoopAgent, embed, or tools, (2) Want to build AI agents, chatbots, RAG systems, or text generation features, (3) Have questions about AI providers (OpenAI, Anthropic, Google, etc.), streaming, tool calling, structured output, or embeddings, (4) Use React hooks like useChat or useCompletion. Triggers on: \"AI SDK\", \"Vercel AI SDK\", \"generateText\", \"streamText\", \"add AI to my app\", \"build an agent\", \"tool calling\", \"structured output\", \"useChat\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7261,7262,7263,7266],{"name":7216,"slug":7217,"type":13},{"name":7200,"slug":7201,"type":13},{"name":7264,"slug":7265,"type":13},"LLM","llm",{"name":9,"slug":8,"type":13},"2026-04-06T18:55:48.739463",{"slug":7269,"name":7269,"fn":7270,"description":7271,"org":7272,"tags":7273,"stars":7206,"repoUrl":7207,"updatedAt":7277},"capture-api-response-test-fixture","capture API response test fixtures","Capture API response test fixture.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7274,7275,7276],{"name":7235,"slug":7236,"type":13},{"name":7203,"slug":7204,"type":13},{"name":9,"slug":8,"type":13},"2026-04-06T18:55:56.374433",{"slug":7279,"name":7279,"fn":7280,"description":7281,"org":7282,"tags":7283,"stars":7206,"repoUrl":7207,"updatedAt":7287},"develop-ai-functions-example","develop AI SDK function examples","Develop examples for AI SDK functions. Use when creating, running, or modifying examples under examples\u002Fai-functions\u002Fsrc to validate provider support, demonstrate features, or create test fixtures.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7284,7285,7286],{"name":7200,"slug":7201,"type":13},{"name":7203,"slug":7204,"type":13},{"name":9,"slug":8,"type":13},"2026-04-06T18:55:55.088956",68]