[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openai-native-data-fetching":3,"mdc--opk7gj-key":36,"related-org-openai-native-data-fetching":7513,"related-repo-openai-native-data-fetching":7718},{"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},"native-data-fetching","implement data fetching in native apps","Use when implementing or debugging ANY network request, API call, or data fetching. Covers fetch API, React Query, SWR, error handling, caching, offline support, and Expo Router data loaders (`useLoaderData`).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"openai","OpenAI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fopenai.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Expo","expo","tag",{"name":17,"slug":18,"type":15},"Mobile","mobile",{"name":20,"slug":21,"type":15},"API Development","api-development",{"name":23,"slug":24,"type":15},"Caching","caching",3992,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins","2026-04-17T05:07:27.662355","MIT",465,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"OpenAI Plugins","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins\u002Ftree\u002FHEAD\u002Fplugins\u002Fexpo\u002Fskills\u002Fnative-data-fetching","---\nname: native-data-fetching\ndescription: Use when implementing or debugging ANY network request, API call, or data fetching. Covers fetch API, React Query, SWR, error handling, caching, offline support, and Expo Router data loaders (`useLoaderData`).\nversion: 1.0.0\nlicense: MIT\n---\n\n# Expo Networking\n\n**You MUST use this skill for ANY networking work including API requests, data fetching, caching, or network debugging.**\n\n## References\n\nConsult these resources as needed:\n\n```\nreferences\u002F\n  expo-router-loaders.md   Route-level data loading with Expo Router loaders (web, SDK 55+)\n```\n\n## When to Use\n\nUse this skill when:\n\n- Implementing API requests\n- Setting up data fetching (React Query, SWR)\n- Using Expo Router data loaders (`useLoaderData`, web SDK 55+)\n- Debugging network failures\n- Implementing caching strategies\n- Handling offline scenarios\n- Authentication\u002Ftoken management\n- Configuring API URLs and environment variables\n\n## Preferences\n\n- Avoid axios, prefer expo\u002Ffetch\n\n## Common Issues & Solutions\n\n### 1. Basic Fetch Usage\n\n**Simple GET request**:\n\n```tsx\nconst fetchUser = async (userId: string) => {\n  const response = await fetch(`https:\u002F\u002Fapi.example.com\u002Fusers\u002F${userId}`);\n\n  if (!response.ok) {\n    throw new Error(`HTTP error! status: ${response.status}`);\n  }\n\n  return response.json();\n};\n```\n\n**POST request with body**:\n\n```tsx\nconst createUser = async (userData: UserData) => {\n  const response = await fetch(\"https:\u002F\u002Fapi.example.com\u002Fusers\", {\n    method: \"POST\",\n    headers: {\n      \"Content-Type\": \"application\u002Fjson\",\n      Authorization: `Bearer ${token}`,\n    },\n    body: JSON.stringify(userData),\n  });\n\n  if (!response.ok) {\n    const error = await response.json();\n    throw new Error(error.message);\n  }\n\n  return response.json();\n};\n```\n\n---\n\n### 2. React Query (TanStack Query)\n\n**Setup**:\n\n```tsx\n\u002F\u002F app\u002F_layout.tsx\nimport { QueryClient, QueryClientProvider } from \"@tanstack\u002Freact-query\";\n\nconst queryClient = new QueryClient({\n  defaultOptions: {\n    queries: {\n      staleTime: 1000 * 60 * 5, \u002F\u002F 5 minutes\n      retry: 2,\n    },\n  },\n});\n\nexport default function RootLayout() {\n  return (\n    \u003CQueryClientProvider client={queryClient}>\n      \u003CStack \u002F>\n    \u003C\u002FQueryClientProvider>\n  );\n}\n```\n\n**Fetching data**:\n\n```tsx\nimport { useQuery } from \"@tanstack\u002Freact-query\";\n\nfunction UserProfile({ userId }: { userId: string }) {\n  const { data, isLoading, error, refetch } = useQuery({\n    queryKey: [\"user\", userId],\n    queryFn: () => fetchUser(userId),\n  });\n\n  if (isLoading) return \u003CLoading \u002F>;\n  if (error) return \u003CError message={error.message} \u002F>;\n\n  return \u003CProfile user={data} \u002F>;\n}\n```\n\n**Mutations**:\n\n```tsx\nimport { useMutation, useQueryClient } from \"@tanstack\u002Freact-query\";\n\nfunction CreateUserForm() {\n  const queryClient = useQueryClient();\n\n  const mutation = useMutation({\n    mutationFn: createUser,\n    onSuccess: () => {\n      \u002F\u002F Invalidate and refetch\n      queryClient.invalidateQueries({ queryKey: [\"users\"] });\n    },\n  });\n\n  const handleSubmit = (data: UserData) => {\n    mutation.mutate(data);\n  };\n\n  return \u003CForm onSubmit={handleSubmit} isLoading={mutation.isPending} \u002F>;\n}\n```\n\n---\n\n### 3. Error Handling\n\n**Comprehensive error handling**:\n\n```tsx\nclass ApiError extends Error {\n  constructor(message: string, public status: number, public code?: string) {\n    super(message);\n    this.name = \"ApiError\";\n  }\n}\n\nconst fetchWithErrorHandling = async (url: string, options?: RequestInit) => {\n  try {\n    const response = await fetch(url, options);\n\n    if (!response.ok) {\n      const error = await response.json().catch(() => ({}));\n      throw new ApiError(\n        error.message || \"Request failed\",\n        response.status,\n        error.code\n      );\n    }\n\n    return response.json();\n  } catch (error) {\n    if (error instanceof ApiError) {\n      throw error;\n    }\n    \u002F\u002F Network error (no internet, timeout, etc.)\n    throw new ApiError(\"Network error\", 0, \"NETWORK_ERROR\");\n  }\n};\n```\n\n**Retry logic**:\n\n```tsx\nconst fetchWithRetry = async (\n  url: string,\n  options?: RequestInit,\n  retries = 3\n) => {\n  for (let i = 0; i \u003C retries; i++) {\n    try {\n      return await fetchWithErrorHandling(url, options);\n    } catch (error) {\n      if (i === retries - 1) throw error;\n      \u002F\u002F Exponential backoff\n      await new Promise((r) => setTimeout(r, Math.pow(2, i) * 1000));\n    }\n  }\n};\n```\n\n---\n\n### 4. Authentication\n\n**Token management**:\n\n```tsx\nimport * as SecureStore from \"expo-secure-store\";\n\nconst TOKEN_KEY = \"auth_token\";\n\nexport const auth = {\n  getToken: () => SecureStore.getItemAsync(TOKEN_KEY),\n  setToken: (token: string) => SecureStore.setItemAsync(TOKEN_KEY, token),\n  removeToken: () => SecureStore.deleteItemAsync(TOKEN_KEY),\n};\n\n\u002F\u002F Authenticated fetch wrapper\nconst authFetch = async (url: string, options: RequestInit = {}) => {\n  const token = await auth.getToken();\n\n  return fetch(url, {\n    ...options,\n    headers: {\n      ...options.headers,\n      Authorization: token ? `Bearer ${token}` : \"\",\n    },\n  });\n};\n```\n\n**Token refresh**:\n\n```tsx\nlet isRefreshing = false;\nlet refreshPromise: Promise\u003Cstring> | null = null;\n\nconst getValidToken = async (): Promise\u003Cstring> => {\n  const token = await auth.getToken();\n\n  if (!token || isTokenExpired(token)) {\n    if (!isRefreshing) {\n      isRefreshing = true;\n      refreshPromise = refreshToken().finally(() => {\n        isRefreshing = false;\n        refreshPromise = null;\n      });\n    }\n    return refreshPromise!;\n  }\n\n  return token;\n};\n```\n\n---\n\n### 5. Offline Support\n\n**Check network status**:\n\n```tsx\nimport NetInfo from \"@react-native-community\u002Fnetinfo\";\n\n\u002F\u002F Hook for network status\nfunction useNetworkStatus() {\n  const [isOnline, setIsOnline] = useState(true);\n\n  useEffect(() => {\n    return NetInfo.addEventListener((state) => {\n      setIsOnline(state.isConnected ?? true);\n    });\n  }, []);\n\n  return isOnline;\n}\n```\n\n**Offline-first with React Query**:\n\n```tsx\nimport { onlineManager } from \"@tanstack\u002Freact-query\";\nimport NetInfo from \"@react-native-community\u002Fnetinfo\";\n\n\u002F\u002F Sync React Query with network status\nonlineManager.setEventListener((setOnline) => {\n  return NetInfo.addEventListener((state) => {\n    setOnline(state.isConnected ?? true);\n  });\n});\n\n\u002F\u002F Queries will pause when offline and resume when online\n```\n\n---\n\n### 6. Environment Variables\n\n**Using environment variables for API configuration**:\n\nExpo supports environment variables with the `EXPO_PUBLIC_` prefix. These are inlined at build time and available in your JavaScript code.\n\n```tsx\n\u002F\u002F .env\nEXPO_PUBLIC_API_URL=https:\u002F\u002Fapi.example.com\nEXPO_PUBLIC_API_VERSION=v1\n\n\u002F\u002F Usage in code\nconst API_URL = process.env.EXPO_PUBLIC_API_URL;\n\nconst fetchUsers = async () => {\n  const response = await fetch(`${API_URL}\u002Fusers`);\n  return response.json();\n};\n```\n\n**Environment-specific configuration**:\n\n```tsx\n\u002F\u002F .env.development\nEXPO_PUBLIC_API_URL=http:\u002F\u002Flocalhost:3000\n\n\u002F\u002F .env.production\nEXPO_PUBLIC_API_URL=https:\u002F\u002Fapi.production.com\n```\n\n**Creating an API client with environment config**:\n\n```tsx\n\u002F\u002F api\u002Fclient.ts\nconst BASE_URL = process.env.EXPO_PUBLIC_API_URL;\n\nif (!BASE_URL) {\n  throw new Error(\"EXPO_PUBLIC_API_URL is not defined\");\n}\n\nexport const apiClient = {\n  get: async \u003CT,>(path: string): Promise\u003CT> => {\n    const response = await fetch(`${BASE_URL}${path}`);\n    if (!response.ok) throw new Error(`HTTP ${response.status}`);\n    return response.json();\n  },\n\n  post: async \u003CT,>(path: string, body: unknown): Promise\u003CT> => {\n    const response = await fetch(`${BASE_URL}${path}`, {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application\u002Fjson\" },\n      body: JSON.stringify(body),\n    });\n    if (!response.ok) throw new Error(`HTTP ${response.status}`);\n    return response.json();\n  },\n};\n```\n\n**Important notes**:\n\n- Only variables prefixed with `EXPO_PUBLIC_` are exposed to the client bundle\n- Never put secrets (API keys with write access, database passwords) in `EXPO_PUBLIC_` variables—they're visible in the built app\n- Environment variables are inlined at **build time**, not runtime\n- Restart the dev server after changing `.env` files\n- For server-side secrets in API routes, use variables without the `EXPO_PUBLIC_` prefix\n\n**TypeScript support**:\n\n```tsx\n\u002F\u002F types\u002Fenv.d.ts\ndeclare global {\n  namespace NodeJS {\n    interface ProcessEnv {\n      EXPO_PUBLIC_API_URL: string;\n      EXPO_PUBLIC_API_VERSION?: string;\n    }\n  }\n}\n\nexport {};\n```\n\n---\n\n### 7. Request Cancellation\n\n**Cancel on unmount**:\n\n```tsx\nuseEffect(() => {\n  const controller = new AbortController();\n\n  fetch(url, { signal: controller.signal })\n    .then((response) => response.json())\n    .then(setData)\n    .catch((error) => {\n      if (error.name !== \"AbortError\") {\n        setError(error);\n      }\n    });\n\n  return () => controller.abort();\n}, [url]);\n```\n\n**With React Query** (automatic):\n\n```tsx\n\u002F\u002F React Query automatically cancels requests when queries are invalidated\n\u002F\u002F or components unmount\n```\n\n---\n\n## Decision Tree\n\n```\nUser asks about networking\n  |-- Route-level data loading (web, SDK 55+)?\n  |   \\-- Expo Router loaders — see references\u002Fexpo-router-loaders.md\n  |\n  |-- Basic fetch?\n  |   \\-- Use fetch API with error handling\n  |\n  |-- Need caching\u002Fstate management?\n  |   |-- Complex app -> React Query (TanStack Query)\n  |   \\-- Simpler needs -> SWR or custom hooks\n  |\n  |-- Authentication?\n  |   |-- Token storage -> expo-secure-store\n  |   \\-- Token refresh -> Implement refresh flow\n  |\n  |-- Error handling?\n  |   |-- Network errors -> Check connectivity first\n  |   |-- HTTP errors -> Parse response, throw typed errors\n  |   \\-- Retries -> Exponential backoff\n  |\n  |-- Offline support?\n  |   |-- Check status -> NetInfo\n  |   \\-- Queue requests -> React Query persistence\n  |\n  |-- Environment\u002FAPI config?\n  |   |-- Client-side URLs -> EXPO_PUBLIC_ prefix in .env\n  |   |-- Server secrets -> Non-prefixed env vars (API routes only)\n  |   \\-- Multiple environments -> .env.development, .env.production\n  |\n  \\-- Performance?\n      |-- Caching -> React Query with staleTime\n      |-- Deduplication -> React Query handles this\n      \\-- Cancellation -> AbortController or React Query\n```\n\n## Common Mistakes\n\n**Wrong: No error handling**\n\n```tsx\nconst data = await fetch(url).then((r) => r.json());\n```\n\n**Right: Check response status**\n\n```tsx\nconst response = await fetch(url);\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\n```\n\n**Wrong: Storing tokens in AsyncStorage**\n\n```tsx\nawait AsyncStorage.setItem(\"token\", token); \u002F\u002F Not secure!\n```\n\n**Right: Use SecureStore for sensitive data**\n\n```tsx\nawait SecureStore.setItemAsync(\"token\", token);\n```\n\n## Example Invocations\n\nUser: \"How do I make API calls in React Native?\"\n-> Use fetch, wrap with error handling\n\nUser: \"Should I use React Query or SWR?\"\n-> React Query for complex apps, SWR for simpler needs\n\nUser: \"My app needs to work offline\"\n-> Use NetInfo for status, React Query persistence for caching\n\nUser: \"How do I handle authentication tokens?\"\n-> Store in expo-secure-store, implement refresh flow\n\nUser: \"API calls are slow\"\n-> Check caching strategy, use React Query staleTime\n\nUser: \"How do I configure different API URLs for dev and prod?\"\n-> Use EXPO*PUBLIC* env vars with .env.development and .env.production files\n\nUser: \"Where should I put my API key?\"\n-> Client-safe keys: EXPO*PUBLIC* in .env. Secret keys: non-prefixed env vars in API routes only\n\nUser: \"How do I load data for a page in Expo Router?\"\n-> See references\u002Fexpo-router-loaders.md for route-level loaders (web, SDK 55+). For native, use React Query or fetch.\n",{"data":37,"body":39},{"name":4,"description":6,"version":38,"license":28},"1.0.0",{"type":40,"children":41},"root",[42,51,61,68,73,86,92,97,150,156,164,170,177,187,503,512,989,993,999,1008,1387,1396,1822,1831,2288,2291,2297,2306,3069,3078,3521,3524,3530,3539,4119,4128,4568,4571,4577,4586,4897,4906,5169,5172,5178,5187,5200,5446,5455,5534,5543,6361,6370,6434,6443,6589,6592,6598,6607,6998,7008,7031,7034,7040,7049,7055,7063,7149,7157,7315,7323,7385,7393,7447,7453,7458,7463,7468,7473,7478,7491,7502,7507],{"type":43,"tag":44,"props":45,"children":47},"element","h1",{"id":46},"expo-networking",[48],{"type":49,"value":50},"text","Expo Networking",{"type":43,"tag":52,"props":53,"children":54},"p",{},[55],{"type":43,"tag":56,"props":57,"children":58},"strong",{},[59],{"type":49,"value":60},"You MUST use this skill for ANY networking work including API requests, data fetching, caching, or network debugging.",{"type":43,"tag":62,"props":63,"children":65},"h2",{"id":64},"references",[66],{"type":49,"value":67},"References",{"type":43,"tag":52,"props":69,"children":70},{},[71],{"type":49,"value":72},"Consult these resources as needed:",{"type":43,"tag":74,"props":75,"children":79},"pre",{"className":76,"code":78,"language":49},[77],"language-text","references\u002F\n  expo-router-loaders.md   Route-level data loading with Expo Router loaders (web, SDK 55+)\n",[80],{"type":43,"tag":81,"props":82,"children":84},"code",{"__ignoreMap":83},"",[85],{"type":49,"value":78},{"type":43,"tag":62,"props":87,"children":89},{"id":88},"when-to-use",[90],{"type":49,"value":91},"When to Use",{"type":43,"tag":52,"props":93,"children":94},{},[95],{"type":49,"value":96},"Use this skill when:",{"type":43,"tag":98,"props":99,"children":100},"ul",{},[101,107,112,125,130,135,140,145],{"type":43,"tag":102,"props":103,"children":104},"li",{},[105],{"type":49,"value":106},"Implementing API requests",{"type":43,"tag":102,"props":108,"children":109},{},[110],{"type":49,"value":111},"Setting up data fetching (React Query, SWR)",{"type":43,"tag":102,"props":113,"children":114},{},[115,117,123],{"type":49,"value":116},"Using Expo Router data loaders (",{"type":43,"tag":81,"props":118,"children":120},{"className":119},[],[121],{"type":49,"value":122},"useLoaderData",{"type":49,"value":124},", web SDK 55+)",{"type":43,"tag":102,"props":126,"children":127},{},[128],{"type":49,"value":129},"Debugging network failures",{"type":43,"tag":102,"props":131,"children":132},{},[133],{"type":49,"value":134},"Implementing caching strategies",{"type":43,"tag":102,"props":136,"children":137},{},[138],{"type":49,"value":139},"Handling offline scenarios",{"type":43,"tag":102,"props":141,"children":142},{},[143],{"type":49,"value":144},"Authentication\u002Ftoken management",{"type":43,"tag":102,"props":146,"children":147},{},[148],{"type":49,"value":149},"Configuring API URLs and environment variables",{"type":43,"tag":62,"props":151,"children":153},{"id":152},"preferences",[154],{"type":49,"value":155},"Preferences",{"type":43,"tag":98,"props":157,"children":158},{},[159],{"type":43,"tag":102,"props":160,"children":161},{},[162],{"type":49,"value":163},"Avoid axios, prefer expo\u002Ffetch",{"type":43,"tag":62,"props":165,"children":167},{"id":166},"common-issues-solutions",[168],{"type":49,"value":169},"Common Issues & Solutions",{"type":43,"tag":171,"props":172,"children":174},"h3",{"id":173},"_1-basic-fetch-usage",[175],{"type":49,"value":176},"1. Basic Fetch Usage",{"type":43,"tag":52,"props":178,"children":179},{},[180,185],{"type":43,"tag":56,"props":181,"children":182},{},[183],{"type":49,"value":184},"Simple GET request",{"type":49,"value":186},":",{"type":43,"tag":74,"props":188,"children":192},{"className":189,"code":190,"language":191,"meta":83,"style":83},"language-tsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const fetchUser = async (userId: string) => {\n  const response = await fetch(`https:\u002F\u002Fapi.example.com\u002Fusers\u002F${userId}`);\n\n  if (!response.ok) {\n    throw new Error(`HTTP error! status: ${response.status}`);\n  }\n\n  return response.json();\n};\n","tsx",[193],{"type":43,"tag":81,"props":194,"children":195},{"__ignoreMap":83},[196,261,332,342,385,446,455,463,494],{"type":43,"tag":197,"props":198,"children":201},"span",{"class":199,"line":200},"line",1,[202,208,214,220,225,230,236,240,246,251,256],{"type":43,"tag":197,"props":203,"children":205},{"style":204},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[206],{"type":49,"value":207},"const",{"type":43,"tag":197,"props":209,"children":211},{"style":210},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[212],{"type":49,"value":213}," fetchUser ",{"type":43,"tag":197,"props":215,"children":217},{"style":216},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[218],{"type":49,"value":219},"=",{"type":43,"tag":197,"props":221,"children":222},{"style":204},[223],{"type":49,"value":224}," async",{"type":43,"tag":197,"props":226,"children":227},{"style":216},[228],{"type":49,"value":229}," (",{"type":43,"tag":197,"props":231,"children":233},{"style":232},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[234],{"type":49,"value":235},"userId",{"type":43,"tag":197,"props":237,"children":238},{"style":216},[239],{"type":49,"value":186},{"type":43,"tag":197,"props":241,"children":243},{"style":242},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[244],{"type":49,"value":245}," string",{"type":43,"tag":197,"props":247,"children":248},{"style":216},[249],{"type":49,"value":250},")",{"type":43,"tag":197,"props":252,"children":253},{"style":204},[254],{"type":49,"value":255}," =>",{"type":43,"tag":197,"props":257,"children":258},{"style":216},[259],{"type":49,"value":260}," {\n",{"type":43,"tag":197,"props":262,"children":264},{"class":199,"line":263},2,[265,270,275,280,286,292,298,303,309,314,318,323,327],{"type":43,"tag":197,"props":266,"children":267},{"style":204},[268],{"type":49,"value":269},"  const",{"type":43,"tag":197,"props":271,"children":272},{"style":210},[273],{"type":49,"value":274}," response",{"type":43,"tag":197,"props":276,"children":277},{"style":216},[278],{"type":49,"value":279}," =",{"type":43,"tag":197,"props":281,"children":283},{"style":282},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[284],{"type":49,"value":285}," await",{"type":43,"tag":197,"props":287,"children":289},{"style":288},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[290],{"type":49,"value":291}," fetch",{"type":43,"tag":197,"props":293,"children":295},{"style":294},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[296],{"type":49,"value":297},"(",{"type":43,"tag":197,"props":299,"children":300},{"style":216},[301],{"type":49,"value":302},"`",{"type":43,"tag":197,"props":304,"children":306},{"style":305},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[307],{"type":49,"value":308},"https:\u002F\u002Fapi.example.com\u002Fusers\u002F",{"type":43,"tag":197,"props":310,"children":311},{"style":216},[312],{"type":49,"value":313},"${",{"type":43,"tag":197,"props":315,"children":316},{"style":210},[317],{"type":49,"value":235},{"type":43,"tag":197,"props":319,"children":320},{"style":216},[321],{"type":49,"value":322},"}`",{"type":43,"tag":197,"props":324,"children":325},{"style":294},[326],{"type":49,"value":250},{"type":43,"tag":197,"props":328,"children":329},{"style":216},[330],{"type":49,"value":331},";\n",{"type":43,"tag":197,"props":333,"children":335},{"class":199,"line":334},3,[336],{"type":43,"tag":197,"props":337,"children":339},{"emptyLinePlaceholder":338},true,[340],{"type":49,"value":341},"\n",{"type":43,"tag":197,"props":343,"children":345},{"class":199,"line":344},4,[346,351,355,360,365,370,375,380],{"type":43,"tag":197,"props":347,"children":348},{"style":282},[349],{"type":49,"value":350},"  if",{"type":43,"tag":197,"props":352,"children":353},{"style":294},[354],{"type":49,"value":229},{"type":43,"tag":197,"props":356,"children":357},{"style":216},[358],{"type":49,"value":359},"!",{"type":43,"tag":197,"props":361,"children":362},{"style":210},[363],{"type":49,"value":364},"response",{"type":43,"tag":197,"props":366,"children":367},{"style":216},[368],{"type":49,"value":369},".",{"type":43,"tag":197,"props":371,"children":372},{"style":210},[373],{"type":49,"value":374},"ok",{"type":43,"tag":197,"props":376,"children":377},{"style":294},[378],{"type":49,"value":379},") ",{"type":43,"tag":197,"props":381,"children":382},{"style":216},[383],{"type":49,"value":384},"{\n",{"type":43,"tag":197,"props":386,"children":388},{"class":199,"line":387},5,[389,394,399,404,408,412,417,421,425,429,434,438,442],{"type":43,"tag":197,"props":390,"children":391},{"style":282},[392],{"type":49,"value":393},"    throw",{"type":43,"tag":197,"props":395,"children":396},{"style":216},[397],{"type":49,"value":398}," new",{"type":43,"tag":197,"props":400,"children":401},{"style":288},[402],{"type":49,"value":403}," Error",{"type":43,"tag":197,"props":405,"children":406},{"style":294},[407],{"type":49,"value":297},{"type":43,"tag":197,"props":409,"children":410},{"style":216},[411],{"type":49,"value":302},{"type":43,"tag":197,"props":413,"children":414},{"style":305},[415],{"type":49,"value":416},"HTTP error! status: ",{"type":43,"tag":197,"props":418,"children":419},{"style":216},[420],{"type":49,"value":313},{"type":43,"tag":197,"props":422,"children":423},{"style":210},[424],{"type":49,"value":364},{"type":43,"tag":197,"props":426,"children":427},{"style":216},[428],{"type":49,"value":369},{"type":43,"tag":197,"props":430,"children":431},{"style":210},[432],{"type":49,"value":433},"status",{"type":43,"tag":197,"props":435,"children":436},{"style":216},[437],{"type":49,"value":322},{"type":43,"tag":197,"props":439,"children":440},{"style":294},[441],{"type":49,"value":250},{"type":43,"tag":197,"props":443,"children":444},{"style":216},[445],{"type":49,"value":331},{"type":43,"tag":197,"props":447,"children":449},{"class":199,"line":448},6,[450],{"type":43,"tag":197,"props":451,"children":452},{"style":216},[453],{"type":49,"value":454},"  }\n",{"type":43,"tag":197,"props":456,"children":458},{"class":199,"line":457},7,[459],{"type":43,"tag":197,"props":460,"children":461},{"emptyLinePlaceholder":338},[462],{"type":49,"value":341},{"type":43,"tag":197,"props":464,"children":466},{"class":199,"line":465},8,[467,472,476,480,485,490],{"type":43,"tag":197,"props":468,"children":469},{"style":282},[470],{"type":49,"value":471},"  return",{"type":43,"tag":197,"props":473,"children":474},{"style":210},[475],{"type":49,"value":274},{"type":43,"tag":197,"props":477,"children":478},{"style":216},[479],{"type":49,"value":369},{"type":43,"tag":197,"props":481,"children":482},{"style":288},[483],{"type":49,"value":484},"json",{"type":43,"tag":197,"props":486,"children":487},{"style":294},[488],{"type":49,"value":489},"()",{"type":43,"tag":197,"props":491,"children":492},{"style":216},[493],{"type":49,"value":331},{"type":43,"tag":197,"props":495,"children":497},{"class":199,"line":496},9,[498],{"type":43,"tag":197,"props":499,"children":500},{"style":216},[501],{"type":49,"value":502},"};\n",{"type":43,"tag":52,"props":504,"children":505},{},[506,511],{"type":43,"tag":56,"props":507,"children":508},{},[509],{"type":49,"value":510},"POST request with body",{"type":49,"value":186},{"type":43,"tag":74,"props":513,"children":515},{"className":189,"code":514,"language":191,"meta":83,"style":83},"const createUser = async (userData: UserData) => {\n  const response = await fetch(\"https:\u002F\u002Fapi.example.com\u002Fusers\", {\n    method: \"POST\",\n    headers: {\n      \"Content-Type\": \"application\u002Fjson\",\n      Authorization: `Bearer ${token}`,\n    },\n    body: JSON.stringify(userData),\n  });\n\n  if (!response.ok) {\n    const error = await response.json();\n    throw new Error(error.message);\n  }\n\n  return response.json();\n};\n",[516],{"type":43,"tag":81,"props":517,"children":518},{"__ignoreMap":83},[519,569,619,650,666,704,743,751,793,809,817,853,895,937,945,953,981],{"type":43,"tag":197,"props":520,"children":521},{"class":199,"line":200},[522,526,531,535,539,543,548,552,557,561,565],{"type":43,"tag":197,"props":523,"children":524},{"style":204},[525],{"type":49,"value":207},{"type":43,"tag":197,"props":527,"children":528},{"style":210},[529],{"type":49,"value":530}," createUser ",{"type":43,"tag":197,"props":532,"children":533},{"style":216},[534],{"type":49,"value":219},{"type":43,"tag":197,"props":536,"children":537},{"style":204},[538],{"type":49,"value":224},{"type":43,"tag":197,"props":540,"children":541},{"style":216},[542],{"type":49,"value":229},{"type":43,"tag":197,"props":544,"children":545},{"style":232},[546],{"type":49,"value":547},"userData",{"type":43,"tag":197,"props":549,"children":550},{"style":216},[551],{"type":49,"value":186},{"type":43,"tag":197,"props":553,"children":554},{"style":242},[555],{"type":49,"value":556}," UserData",{"type":43,"tag":197,"props":558,"children":559},{"style":216},[560],{"type":49,"value":250},{"type":43,"tag":197,"props":562,"children":563},{"style":204},[564],{"type":49,"value":255},{"type":43,"tag":197,"props":566,"children":567},{"style":216},[568],{"type":49,"value":260},{"type":43,"tag":197,"props":570,"children":571},{"class":199,"line":263},[572,576,580,584,588,592,596,601,606,610,615],{"type":43,"tag":197,"props":573,"children":574},{"style":204},[575],{"type":49,"value":269},{"type":43,"tag":197,"props":577,"children":578},{"style":210},[579],{"type":49,"value":274},{"type":43,"tag":197,"props":581,"children":582},{"style":216},[583],{"type":49,"value":279},{"type":43,"tag":197,"props":585,"children":586},{"style":282},[587],{"type":49,"value":285},{"type":43,"tag":197,"props":589,"children":590},{"style":288},[591],{"type":49,"value":291},{"type":43,"tag":197,"props":593,"children":594},{"style":294},[595],{"type":49,"value":297},{"type":43,"tag":197,"props":597,"children":598},{"style":216},[599],{"type":49,"value":600},"\"",{"type":43,"tag":197,"props":602,"children":603},{"style":305},[604],{"type":49,"value":605},"https:\u002F\u002Fapi.example.com\u002Fusers",{"type":43,"tag":197,"props":607,"children":608},{"style":216},[609],{"type":49,"value":600},{"type":43,"tag":197,"props":611,"children":612},{"style":216},[613],{"type":49,"value":614},",",{"type":43,"tag":197,"props":616,"children":617},{"style":216},[618],{"type":49,"value":260},{"type":43,"tag":197,"props":620,"children":621},{"class":199,"line":334},[622,627,631,636,641,645],{"type":43,"tag":197,"props":623,"children":624},{"style":294},[625],{"type":49,"value":626},"    method",{"type":43,"tag":197,"props":628,"children":629},{"style":216},[630],{"type":49,"value":186},{"type":43,"tag":197,"props":632,"children":633},{"style":216},[634],{"type":49,"value":635}," \"",{"type":43,"tag":197,"props":637,"children":638},{"style":305},[639],{"type":49,"value":640},"POST",{"type":43,"tag":197,"props":642,"children":643},{"style":216},[644],{"type":49,"value":600},{"type":43,"tag":197,"props":646,"children":647},{"style":216},[648],{"type":49,"value":649},",\n",{"type":43,"tag":197,"props":651,"children":652},{"class":199,"line":344},[653,658,662],{"type":43,"tag":197,"props":654,"children":655},{"style":294},[656],{"type":49,"value":657},"    headers",{"type":43,"tag":197,"props":659,"children":660},{"style":216},[661],{"type":49,"value":186},{"type":43,"tag":197,"props":663,"children":664},{"style":216},[665],{"type":49,"value":260},{"type":43,"tag":197,"props":667,"children":668},{"class":199,"line":387},[669,674,679,683,687,691,696,700],{"type":43,"tag":197,"props":670,"children":671},{"style":216},[672],{"type":49,"value":673},"      \"",{"type":43,"tag":197,"props":675,"children":676},{"style":294},[677],{"type":49,"value":678},"Content-Type",{"type":43,"tag":197,"props":680,"children":681},{"style":216},[682],{"type":49,"value":600},{"type":43,"tag":197,"props":684,"children":685},{"style":216},[686],{"type":49,"value":186},{"type":43,"tag":197,"props":688,"children":689},{"style":216},[690],{"type":49,"value":635},{"type":43,"tag":197,"props":692,"children":693},{"style":305},[694],{"type":49,"value":695},"application\u002Fjson",{"type":43,"tag":197,"props":697,"children":698},{"style":216},[699],{"type":49,"value":600},{"type":43,"tag":197,"props":701,"children":702},{"style":216},[703],{"type":49,"value":649},{"type":43,"tag":197,"props":705,"children":706},{"class":199,"line":448},[707,712,716,721,726,730,735,739],{"type":43,"tag":197,"props":708,"children":709},{"style":294},[710],{"type":49,"value":711},"      Authorization",{"type":43,"tag":197,"props":713,"children":714},{"style":216},[715],{"type":49,"value":186},{"type":43,"tag":197,"props":717,"children":718},{"style":216},[719],{"type":49,"value":720}," `",{"type":43,"tag":197,"props":722,"children":723},{"style":305},[724],{"type":49,"value":725},"Bearer ",{"type":43,"tag":197,"props":727,"children":728},{"style":216},[729],{"type":49,"value":313},{"type":43,"tag":197,"props":731,"children":732},{"style":210},[733],{"type":49,"value":734},"token",{"type":43,"tag":197,"props":736,"children":737},{"style":216},[738],{"type":49,"value":322},{"type":43,"tag":197,"props":740,"children":741},{"style":216},[742],{"type":49,"value":649},{"type":43,"tag":197,"props":744,"children":745},{"class":199,"line":457},[746],{"type":43,"tag":197,"props":747,"children":748},{"style":216},[749],{"type":49,"value":750},"    },\n",{"type":43,"tag":197,"props":752,"children":753},{"class":199,"line":465},[754,759,763,768,772,777,781,785,789],{"type":43,"tag":197,"props":755,"children":756},{"style":294},[757],{"type":49,"value":758},"    body",{"type":43,"tag":197,"props":760,"children":761},{"style":216},[762],{"type":49,"value":186},{"type":43,"tag":197,"props":764,"children":765},{"style":210},[766],{"type":49,"value":767}," JSON",{"type":43,"tag":197,"props":769,"children":770},{"style":216},[771],{"type":49,"value":369},{"type":43,"tag":197,"props":773,"children":774},{"style":288},[775],{"type":49,"value":776},"stringify",{"type":43,"tag":197,"props":778,"children":779},{"style":294},[780],{"type":49,"value":297},{"type":43,"tag":197,"props":782,"children":783},{"style":210},[784],{"type":49,"value":547},{"type":43,"tag":197,"props":786,"children":787},{"style":294},[788],{"type":49,"value":250},{"type":43,"tag":197,"props":790,"children":791},{"style":216},[792],{"type":49,"value":649},{"type":43,"tag":197,"props":794,"children":795},{"class":199,"line":496},[796,801,805],{"type":43,"tag":197,"props":797,"children":798},{"style":216},[799],{"type":49,"value":800},"  }",{"type":43,"tag":197,"props":802,"children":803},{"style":294},[804],{"type":49,"value":250},{"type":43,"tag":197,"props":806,"children":807},{"style":216},[808],{"type":49,"value":331},{"type":43,"tag":197,"props":810,"children":812},{"class":199,"line":811},10,[813],{"type":43,"tag":197,"props":814,"children":815},{"emptyLinePlaceholder":338},[816],{"type":49,"value":341},{"type":43,"tag":197,"props":818,"children":820},{"class":199,"line":819},11,[821,825,829,833,837,841,845,849],{"type":43,"tag":197,"props":822,"children":823},{"style":282},[824],{"type":49,"value":350},{"type":43,"tag":197,"props":826,"children":827},{"style":294},[828],{"type":49,"value":229},{"type":43,"tag":197,"props":830,"children":831},{"style":216},[832],{"type":49,"value":359},{"type":43,"tag":197,"props":834,"children":835},{"style":210},[836],{"type":49,"value":364},{"type":43,"tag":197,"props":838,"children":839},{"style":216},[840],{"type":49,"value":369},{"type":43,"tag":197,"props":842,"children":843},{"style":210},[844],{"type":49,"value":374},{"type":43,"tag":197,"props":846,"children":847},{"style":294},[848],{"type":49,"value":379},{"type":43,"tag":197,"props":850,"children":851},{"style":216},[852],{"type":49,"value":384},{"type":43,"tag":197,"props":854,"children":856},{"class":199,"line":855},12,[857,862,867,871,875,879,883,887,891],{"type":43,"tag":197,"props":858,"children":859},{"style":204},[860],{"type":49,"value":861},"    const",{"type":43,"tag":197,"props":863,"children":864},{"style":210},[865],{"type":49,"value":866}," error",{"type":43,"tag":197,"props":868,"children":869},{"style":216},[870],{"type":49,"value":279},{"type":43,"tag":197,"props":872,"children":873},{"style":282},[874],{"type":49,"value":285},{"type":43,"tag":197,"props":876,"children":877},{"style":210},[878],{"type":49,"value":274},{"type":43,"tag":197,"props":880,"children":881},{"style":216},[882],{"type":49,"value":369},{"type":43,"tag":197,"props":884,"children":885},{"style":288},[886],{"type":49,"value":484},{"type":43,"tag":197,"props":888,"children":889},{"style":294},[890],{"type":49,"value":489},{"type":43,"tag":197,"props":892,"children":893},{"style":216},[894],{"type":49,"value":331},{"type":43,"tag":197,"props":896,"children":898},{"class":199,"line":897},13,[899,903,907,911,915,920,924,929,933],{"type":43,"tag":197,"props":900,"children":901},{"style":282},[902],{"type":49,"value":393},{"type":43,"tag":197,"props":904,"children":905},{"style":216},[906],{"type":49,"value":398},{"type":43,"tag":197,"props":908,"children":909},{"style":288},[910],{"type":49,"value":403},{"type":43,"tag":197,"props":912,"children":913},{"style":294},[914],{"type":49,"value":297},{"type":43,"tag":197,"props":916,"children":917},{"style":210},[918],{"type":49,"value":919},"error",{"type":43,"tag":197,"props":921,"children":922},{"style":216},[923],{"type":49,"value":369},{"type":43,"tag":197,"props":925,"children":926},{"style":210},[927],{"type":49,"value":928},"message",{"type":43,"tag":197,"props":930,"children":931},{"style":294},[932],{"type":49,"value":250},{"type":43,"tag":197,"props":934,"children":935},{"style":216},[936],{"type":49,"value":331},{"type":43,"tag":197,"props":938,"children":940},{"class":199,"line":939},14,[941],{"type":43,"tag":197,"props":942,"children":943},{"style":216},[944],{"type":49,"value":454},{"type":43,"tag":197,"props":946,"children":948},{"class":199,"line":947},15,[949],{"type":43,"tag":197,"props":950,"children":951},{"emptyLinePlaceholder":338},[952],{"type":49,"value":341},{"type":43,"tag":197,"props":954,"children":956},{"class":199,"line":955},16,[957,961,965,969,973,977],{"type":43,"tag":197,"props":958,"children":959},{"style":282},[960],{"type":49,"value":471},{"type":43,"tag":197,"props":962,"children":963},{"style":210},[964],{"type":49,"value":274},{"type":43,"tag":197,"props":966,"children":967},{"style":216},[968],{"type":49,"value":369},{"type":43,"tag":197,"props":970,"children":971},{"style":288},[972],{"type":49,"value":484},{"type":43,"tag":197,"props":974,"children":975},{"style":294},[976],{"type":49,"value":489},{"type":43,"tag":197,"props":978,"children":979},{"style":216},[980],{"type":49,"value":331},{"type":43,"tag":197,"props":982,"children":984},{"class":199,"line":983},17,[985],{"type":43,"tag":197,"props":986,"children":987},{"style":216},[988],{"type":49,"value":502},{"type":43,"tag":990,"props":991,"children":992},"hr",{},[],{"type":43,"tag":171,"props":994,"children":996},{"id":995},"_2-react-query-tanstack-query",[997],{"type":49,"value":998},"2. React Query (TanStack Query)",{"type":43,"tag":52,"props":1000,"children":1001},{},[1002,1007],{"type":43,"tag":56,"props":1003,"children":1004},{},[1005],{"type":49,"value":1006},"Setup",{"type":49,"value":186},{"type":43,"tag":74,"props":1009,"children":1011},{"className":189,"code":1010,"language":191,"meta":83,"style":83},"\u002F\u002F app\u002F_layout.tsx\nimport { QueryClient, QueryClientProvider } from \"@tanstack\u002Freact-query\";\n\nconst queryClient = new QueryClient({\n  defaultOptions: {\n    queries: {\n      staleTime: 1000 * 60 * 5, \u002F\u002F 5 minutes\n      retry: 2,\n    },\n  },\n});\n\nexport default function RootLayout() {\n  return (\n    \u003CQueryClientProvider client={queryClient}>\n      \u003CStack \u002F>\n    \u003C\u002FQueryClientProvider>\n  );\n}\n",[1012],{"type":43,"tag":81,"props":1013,"children":1014},{"__ignoreMap":83},[1015,1024,1078,1085,1117,1133,1149,1195,1216,1223,1231,1247,1254,1285,1297,1330,1348,1365,1378],{"type":43,"tag":197,"props":1016,"children":1017},{"class":199,"line":200},[1018],{"type":43,"tag":197,"props":1019,"children":1021},{"style":1020},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1022],{"type":49,"value":1023},"\u002F\u002F app\u002F_layout.tsx\n",{"type":43,"tag":197,"props":1025,"children":1026},{"class":199,"line":263},[1027,1032,1037,1042,1046,1051,1056,1061,1065,1070,1074],{"type":43,"tag":197,"props":1028,"children":1029},{"style":282},[1030],{"type":49,"value":1031},"import",{"type":43,"tag":197,"props":1033,"children":1034},{"style":216},[1035],{"type":49,"value":1036}," {",{"type":43,"tag":197,"props":1038,"children":1039},{"style":210},[1040],{"type":49,"value":1041}," QueryClient",{"type":43,"tag":197,"props":1043,"children":1044},{"style":216},[1045],{"type":49,"value":614},{"type":43,"tag":197,"props":1047,"children":1048},{"style":210},[1049],{"type":49,"value":1050}," QueryClientProvider",{"type":43,"tag":197,"props":1052,"children":1053},{"style":216},[1054],{"type":49,"value":1055}," }",{"type":43,"tag":197,"props":1057,"children":1058},{"style":282},[1059],{"type":49,"value":1060}," from",{"type":43,"tag":197,"props":1062,"children":1063},{"style":216},[1064],{"type":49,"value":635},{"type":43,"tag":197,"props":1066,"children":1067},{"style":305},[1068],{"type":49,"value":1069},"@tanstack\u002Freact-query",{"type":43,"tag":197,"props":1071,"children":1072},{"style":216},[1073],{"type":49,"value":600},{"type":43,"tag":197,"props":1075,"children":1076},{"style":216},[1077],{"type":49,"value":331},{"type":43,"tag":197,"props":1079,"children":1080},{"class":199,"line":334},[1081],{"type":43,"tag":197,"props":1082,"children":1083},{"emptyLinePlaceholder":338},[1084],{"type":49,"value":341},{"type":43,"tag":197,"props":1086,"children":1087},{"class":199,"line":344},[1088,1092,1097,1101,1105,1109,1113],{"type":43,"tag":197,"props":1089,"children":1090},{"style":204},[1091],{"type":49,"value":207},{"type":43,"tag":197,"props":1093,"children":1094},{"style":210},[1095],{"type":49,"value":1096}," queryClient ",{"type":43,"tag":197,"props":1098,"children":1099},{"style":216},[1100],{"type":49,"value":219},{"type":43,"tag":197,"props":1102,"children":1103},{"style":216},[1104],{"type":49,"value":398},{"type":43,"tag":197,"props":1106,"children":1107},{"style":288},[1108],{"type":49,"value":1041},{"type":43,"tag":197,"props":1110,"children":1111},{"style":210},[1112],{"type":49,"value":297},{"type":43,"tag":197,"props":1114,"children":1115},{"style":216},[1116],{"type":49,"value":384},{"type":43,"tag":197,"props":1118,"children":1119},{"class":199,"line":387},[1120,1125,1129],{"type":43,"tag":197,"props":1121,"children":1122},{"style":294},[1123],{"type":49,"value":1124},"  defaultOptions",{"type":43,"tag":197,"props":1126,"children":1127},{"style":216},[1128],{"type":49,"value":186},{"type":43,"tag":197,"props":1130,"children":1131},{"style":216},[1132],{"type":49,"value":260},{"type":43,"tag":197,"props":1134,"children":1135},{"class":199,"line":448},[1136,1141,1145],{"type":43,"tag":197,"props":1137,"children":1138},{"style":294},[1139],{"type":49,"value":1140},"    queries",{"type":43,"tag":197,"props":1142,"children":1143},{"style":216},[1144],{"type":49,"value":186},{"type":43,"tag":197,"props":1146,"children":1147},{"style":216},[1148],{"type":49,"value":260},{"type":43,"tag":197,"props":1150,"children":1151},{"class":199,"line":457},[1152,1157,1161,1167,1172,1177,1181,1186,1190],{"type":43,"tag":197,"props":1153,"children":1154},{"style":294},[1155],{"type":49,"value":1156},"      staleTime",{"type":43,"tag":197,"props":1158,"children":1159},{"style":216},[1160],{"type":49,"value":186},{"type":43,"tag":197,"props":1162,"children":1164},{"style":1163},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1165],{"type":49,"value":1166}," 1000",{"type":43,"tag":197,"props":1168,"children":1169},{"style":216},[1170],{"type":49,"value":1171}," *",{"type":43,"tag":197,"props":1173,"children":1174},{"style":1163},[1175],{"type":49,"value":1176}," 60",{"type":43,"tag":197,"props":1178,"children":1179},{"style":216},[1180],{"type":49,"value":1171},{"type":43,"tag":197,"props":1182,"children":1183},{"style":1163},[1184],{"type":49,"value":1185}," 5",{"type":43,"tag":197,"props":1187,"children":1188},{"style":216},[1189],{"type":49,"value":614},{"type":43,"tag":197,"props":1191,"children":1192},{"style":1020},[1193],{"type":49,"value":1194}," \u002F\u002F 5 minutes\n",{"type":43,"tag":197,"props":1196,"children":1197},{"class":199,"line":465},[1198,1203,1207,1212],{"type":43,"tag":197,"props":1199,"children":1200},{"style":294},[1201],{"type":49,"value":1202},"      retry",{"type":43,"tag":197,"props":1204,"children":1205},{"style":216},[1206],{"type":49,"value":186},{"type":43,"tag":197,"props":1208,"children":1209},{"style":1163},[1210],{"type":49,"value":1211}," 2",{"type":43,"tag":197,"props":1213,"children":1214},{"style":216},[1215],{"type":49,"value":649},{"type":43,"tag":197,"props":1217,"children":1218},{"class":199,"line":496},[1219],{"type":43,"tag":197,"props":1220,"children":1221},{"style":216},[1222],{"type":49,"value":750},{"type":43,"tag":197,"props":1224,"children":1225},{"class":199,"line":811},[1226],{"type":43,"tag":197,"props":1227,"children":1228},{"style":216},[1229],{"type":49,"value":1230},"  },\n",{"type":43,"tag":197,"props":1232,"children":1233},{"class":199,"line":819},[1234,1239,1243],{"type":43,"tag":197,"props":1235,"children":1236},{"style":216},[1237],{"type":49,"value":1238},"}",{"type":43,"tag":197,"props":1240,"children":1241},{"style":210},[1242],{"type":49,"value":250},{"type":43,"tag":197,"props":1244,"children":1245},{"style":216},[1246],{"type":49,"value":331},{"type":43,"tag":197,"props":1248,"children":1249},{"class":199,"line":855},[1250],{"type":43,"tag":197,"props":1251,"children":1252},{"emptyLinePlaceholder":338},[1253],{"type":49,"value":341},{"type":43,"tag":197,"props":1255,"children":1256},{"class":199,"line":897},[1257,1262,1267,1272,1277,1281],{"type":43,"tag":197,"props":1258,"children":1259},{"style":282},[1260],{"type":49,"value":1261},"export",{"type":43,"tag":197,"props":1263,"children":1264},{"style":282},[1265],{"type":49,"value":1266}," default",{"type":43,"tag":197,"props":1268,"children":1269},{"style":204},[1270],{"type":49,"value":1271}," function",{"type":43,"tag":197,"props":1273,"children":1274},{"style":288},[1275],{"type":49,"value":1276}," RootLayout",{"type":43,"tag":197,"props":1278,"children":1279},{"style":216},[1280],{"type":49,"value":489},{"type":43,"tag":197,"props":1282,"children":1283},{"style":216},[1284],{"type":49,"value":260},{"type":43,"tag":197,"props":1286,"children":1287},{"class":199,"line":939},[1288,1292],{"type":43,"tag":197,"props":1289,"children":1290},{"style":282},[1291],{"type":49,"value":471},{"type":43,"tag":197,"props":1293,"children":1294},{"style":294},[1295],{"type":49,"value":1296}," (\n",{"type":43,"tag":197,"props":1298,"children":1299},{"class":199,"line":947},[1300,1305,1310,1315,1320,1325],{"type":43,"tag":197,"props":1301,"children":1302},{"style":216},[1303],{"type":49,"value":1304},"    \u003C",{"type":43,"tag":197,"props":1306,"children":1307},{"style":242},[1308],{"type":49,"value":1309},"QueryClientProvider",{"type":43,"tag":197,"props":1311,"children":1312},{"style":204},[1313],{"type":49,"value":1314}," client",{"type":43,"tag":197,"props":1316,"children":1317},{"style":216},[1318],{"type":49,"value":1319},"={",{"type":43,"tag":197,"props":1321,"children":1322},{"style":210},[1323],{"type":49,"value":1324},"queryClient",{"type":43,"tag":197,"props":1326,"children":1327},{"style":216},[1328],{"type":49,"value":1329},"}>\n",{"type":43,"tag":197,"props":1331,"children":1332},{"class":199,"line":955},[1333,1338,1343],{"type":43,"tag":197,"props":1334,"children":1335},{"style":216},[1336],{"type":49,"value":1337},"      \u003C",{"type":43,"tag":197,"props":1339,"children":1340},{"style":242},[1341],{"type":49,"value":1342},"Stack",{"type":43,"tag":197,"props":1344,"children":1345},{"style":216},[1346],{"type":49,"value":1347}," \u002F>\n",{"type":43,"tag":197,"props":1349,"children":1350},{"class":199,"line":983},[1351,1356,1360],{"type":43,"tag":197,"props":1352,"children":1353},{"style":216},[1354],{"type":49,"value":1355},"    \u003C\u002F",{"type":43,"tag":197,"props":1357,"children":1358},{"style":242},[1359],{"type":49,"value":1309},{"type":43,"tag":197,"props":1361,"children":1362},{"style":216},[1363],{"type":49,"value":1364},">\n",{"type":43,"tag":197,"props":1366,"children":1368},{"class":199,"line":1367},18,[1369,1374],{"type":43,"tag":197,"props":1370,"children":1371},{"style":294},[1372],{"type":49,"value":1373},"  )",{"type":43,"tag":197,"props":1375,"children":1376},{"style":216},[1377],{"type":49,"value":331},{"type":43,"tag":197,"props":1379,"children":1381},{"class":199,"line":1380},19,[1382],{"type":43,"tag":197,"props":1383,"children":1384},{"style":216},[1385],{"type":49,"value":1386},"}\n",{"type":43,"tag":52,"props":1388,"children":1389},{},[1390,1395],{"type":43,"tag":56,"props":1391,"children":1392},{},[1393],{"type":49,"value":1394},"Fetching data",{"type":49,"value":186},{"type":43,"tag":74,"props":1397,"children":1399},{"className":189,"code":1398,"language":191,"meta":83,"style":83},"import { useQuery } from \"@tanstack\u002Freact-query\";\n\nfunction UserProfile({ userId }: { userId: string }) {\n  const { data, isLoading, error, refetch } = useQuery({\n    queryKey: [\"user\", userId],\n    queryFn: () => fetchUser(userId),\n  });\n\n  if (isLoading) return \u003CLoading \u002F>;\n  if (error) return \u003CError message={error.message} \u002F>;\n\n  return \u003CProfile user={data} \u002F>;\n}\n",[1400],{"type":43,"tag":81,"props":1401,"children":1402},{"__ignoreMap":83},[1403,1443,1450,1503,1565,1612,1654,1669,1676,1716,1774,1781,1815],{"type":43,"tag":197,"props":1404,"children":1405},{"class":199,"line":200},[1406,1410,1414,1419,1423,1427,1431,1435,1439],{"type":43,"tag":197,"props":1407,"children":1408},{"style":282},[1409],{"type":49,"value":1031},{"type":43,"tag":197,"props":1411,"children":1412},{"style":216},[1413],{"type":49,"value":1036},{"type":43,"tag":197,"props":1415,"children":1416},{"style":210},[1417],{"type":49,"value":1418}," useQuery",{"type":43,"tag":197,"props":1420,"children":1421},{"style":216},[1422],{"type":49,"value":1055},{"type":43,"tag":197,"props":1424,"children":1425},{"style":282},[1426],{"type":49,"value":1060},{"type":43,"tag":197,"props":1428,"children":1429},{"style":216},[1430],{"type":49,"value":635},{"type":43,"tag":197,"props":1432,"children":1433},{"style":305},[1434],{"type":49,"value":1069},{"type":43,"tag":197,"props":1436,"children":1437},{"style":216},[1438],{"type":49,"value":600},{"type":43,"tag":197,"props":1440,"children":1441},{"style":216},[1442],{"type":49,"value":331},{"type":43,"tag":197,"props":1444,"children":1445},{"class":199,"line":263},[1446],{"type":43,"tag":197,"props":1447,"children":1448},{"emptyLinePlaceholder":338},[1449],{"type":49,"value":341},{"type":43,"tag":197,"props":1451,"children":1452},{"class":199,"line":334},[1453,1458,1463,1468,1473,1478,1482,1486,1490,1494,1499],{"type":43,"tag":197,"props":1454,"children":1455},{"style":204},[1456],{"type":49,"value":1457},"function",{"type":43,"tag":197,"props":1459,"children":1460},{"style":288},[1461],{"type":49,"value":1462}," UserProfile",{"type":43,"tag":197,"props":1464,"children":1465},{"style":216},[1466],{"type":49,"value":1467},"({",{"type":43,"tag":197,"props":1469,"children":1470},{"style":232},[1471],{"type":49,"value":1472}," userId",{"type":43,"tag":197,"props":1474,"children":1475},{"style":216},[1476],{"type":49,"value":1477}," }:",{"type":43,"tag":197,"props":1479,"children":1480},{"style":216},[1481],{"type":49,"value":1036},{"type":43,"tag":197,"props":1483,"children":1484},{"style":294},[1485],{"type":49,"value":1472},{"type":43,"tag":197,"props":1487,"children":1488},{"style":216},[1489],{"type":49,"value":186},{"type":43,"tag":197,"props":1491,"children":1492},{"style":242},[1493],{"type":49,"value":245},{"type":43,"tag":197,"props":1495,"children":1496},{"style":216},[1497],{"type":49,"value":1498}," })",{"type":43,"tag":197,"props":1500,"children":1501},{"style":216},[1502],{"type":49,"value":260},{"type":43,"tag":197,"props":1504,"children":1505},{"class":199,"line":344},[1506,1510,1514,1519,1523,1528,1532,1536,1540,1545,1549,1553,1557,1561],{"type":43,"tag":197,"props":1507,"children":1508},{"style":204},[1509],{"type":49,"value":269},{"type":43,"tag":197,"props":1511,"children":1512},{"style":216},[1513],{"type":49,"value":1036},{"type":43,"tag":197,"props":1515,"children":1516},{"style":210},[1517],{"type":49,"value":1518}," data",{"type":43,"tag":197,"props":1520,"children":1521},{"style":216},[1522],{"type":49,"value":614},{"type":43,"tag":197,"props":1524,"children":1525},{"style":210},[1526],{"type":49,"value":1527}," isLoading",{"type":43,"tag":197,"props":1529,"children":1530},{"style":216},[1531],{"type":49,"value":614},{"type":43,"tag":197,"props":1533,"children":1534},{"style":210},[1535],{"type":49,"value":866},{"type":43,"tag":197,"props":1537,"children":1538},{"style":216},[1539],{"type":49,"value":614},{"type":43,"tag":197,"props":1541,"children":1542},{"style":210},[1543],{"type":49,"value":1544}," refetch",{"type":43,"tag":197,"props":1546,"children":1547},{"style":216},[1548],{"type":49,"value":1055},{"type":43,"tag":197,"props":1550,"children":1551},{"style":216},[1552],{"type":49,"value":279},{"type":43,"tag":197,"props":1554,"children":1555},{"style":288},[1556],{"type":49,"value":1418},{"type":43,"tag":197,"props":1558,"children":1559},{"style":294},[1560],{"type":49,"value":297},{"type":43,"tag":197,"props":1562,"children":1563},{"style":216},[1564],{"type":49,"value":384},{"type":43,"tag":197,"props":1566,"children":1567},{"class":199,"line":387},[1568,1573,1577,1582,1586,1591,1595,1599,1603,1608],{"type":43,"tag":197,"props":1569,"children":1570},{"style":294},[1571],{"type":49,"value":1572},"    queryKey",{"type":43,"tag":197,"props":1574,"children":1575},{"style":216},[1576],{"type":49,"value":186},{"type":43,"tag":197,"props":1578,"children":1579},{"style":294},[1580],{"type":49,"value":1581}," [",{"type":43,"tag":197,"props":1583,"children":1584},{"style":216},[1585],{"type":49,"value":600},{"type":43,"tag":197,"props":1587,"children":1588},{"style":305},[1589],{"type":49,"value":1590},"user",{"type":43,"tag":197,"props":1592,"children":1593},{"style":216},[1594],{"type":49,"value":600},{"type":43,"tag":197,"props":1596,"children":1597},{"style":216},[1598],{"type":49,"value":614},{"type":43,"tag":197,"props":1600,"children":1601},{"style":210},[1602],{"type":49,"value":1472},{"type":43,"tag":197,"props":1604,"children":1605},{"style":294},[1606],{"type":49,"value":1607},"]",{"type":43,"tag":197,"props":1609,"children":1610},{"style":216},[1611],{"type":49,"value":649},{"type":43,"tag":197,"props":1613,"children":1614},{"class":199,"line":448},[1615,1620,1624,1629,1633,1638,1642,1646,1650],{"type":43,"tag":197,"props":1616,"children":1617},{"style":288},[1618],{"type":49,"value":1619},"    queryFn",{"type":43,"tag":197,"props":1621,"children":1622},{"style":216},[1623],{"type":49,"value":186},{"type":43,"tag":197,"props":1625,"children":1626},{"style":216},[1627],{"type":49,"value":1628}," ()",{"type":43,"tag":197,"props":1630,"children":1631},{"style":204},[1632],{"type":49,"value":255},{"type":43,"tag":197,"props":1634,"children":1635},{"style":288},[1636],{"type":49,"value":1637}," fetchUser",{"type":43,"tag":197,"props":1639,"children":1640},{"style":294},[1641],{"type":49,"value":297},{"type":43,"tag":197,"props":1643,"children":1644},{"style":210},[1645],{"type":49,"value":235},{"type":43,"tag":197,"props":1647,"children":1648},{"style":294},[1649],{"type":49,"value":250},{"type":43,"tag":197,"props":1651,"children":1652},{"style":216},[1653],{"type":49,"value":649},{"type":43,"tag":197,"props":1655,"children":1656},{"class":199,"line":457},[1657,1661,1665],{"type":43,"tag":197,"props":1658,"children":1659},{"style":216},[1660],{"type":49,"value":800},{"type":43,"tag":197,"props":1662,"children":1663},{"style":294},[1664],{"type":49,"value":250},{"type":43,"tag":197,"props":1666,"children":1667},{"style":216},[1668],{"type":49,"value":331},{"type":43,"tag":197,"props":1670,"children":1671},{"class":199,"line":465},[1672],{"type":43,"tag":197,"props":1673,"children":1674},{"emptyLinePlaceholder":338},[1675],{"type":49,"value":341},{"type":43,"tag":197,"props":1677,"children":1678},{"class":199,"line":496},[1679,1683,1687,1692,1696,1701,1706,1711],{"type":43,"tag":197,"props":1680,"children":1681},{"style":282},[1682],{"type":49,"value":350},{"type":43,"tag":197,"props":1684,"children":1685},{"style":294},[1686],{"type":49,"value":229},{"type":43,"tag":197,"props":1688,"children":1689},{"style":210},[1690],{"type":49,"value":1691},"isLoading",{"type":43,"tag":197,"props":1693,"children":1694},{"style":294},[1695],{"type":49,"value":379},{"type":43,"tag":197,"props":1697,"children":1698},{"style":282},[1699],{"type":49,"value":1700},"return",{"type":43,"tag":197,"props":1702,"children":1703},{"style":216},[1704],{"type":49,"value":1705}," \u003C",{"type":43,"tag":197,"props":1707,"children":1708},{"style":242},[1709],{"type":49,"value":1710},"Loading",{"type":43,"tag":197,"props":1712,"children":1713},{"style":216},[1714],{"type":49,"value":1715}," \u002F>;\n",{"type":43,"tag":197,"props":1717,"children":1718},{"class":199,"line":811},[1719,1723,1727,1731,1735,1739,1743,1748,1753,1757,1761,1765,1769],{"type":43,"tag":197,"props":1720,"children":1721},{"style":282},[1722],{"type":49,"value":350},{"type":43,"tag":197,"props":1724,"children":1725},{"style":294},[1726],{"type":49,"value":229},{"type":43,"tag":197,"props":1728,"children":1729},{"style":210},[1730],{"type":49,"value":919},{"type":43,"tag":197,"props":1732,"children":1733},{"style":294},[1734],{"type":49,"value":379},{"type":43,"tag":197,"props":1736,"children":1737},{"style":282},[1738],{"type":49,"value":1700},{"type":43,"tag":197,"props":1740,"children":1741},{"style":216},[1742],{"type":49,"value":1705},{"type":43,"tag":197,"props":1744,"children":1745},{"style":242},[1746],{"type":49,"value":1747},"Error",{"type":43,"tag":197,"props":1749,"children":1750},{"style":204},[1751],{"type":49,"value":1752}," message",{"type":43,"tag":197,"props":1754,"children":1755},{"style":216},[1756],{"type":49,"value":1319},{"type":43,"tag":197,"props":1758,"children":1759},{"style":210},[1760],{"type":49,"value":919},{"type":43,"tag":197,"props":1762,"children":1763},{"style":216},[1764],{"type":49,"value":369},{"type":43,"tag":197,"props":1766,"children":1767},{"style":210},[1768],{"type":49,"value":928},{"type":43,"tag":197,"props":1770,"children":1771},{"style":216},[1772],{"type":49,"value":1773},"} \u002F>;\n",{"type":43,"tag":197,"props":1775,"children":1776},{"class":199,"line":819},[1777],{"type":43,"tag":197,"props":1778,"children":1779},{"emptyLinePlaceholder":338},[1780],{"type":49,"value":341},{"type":43,"tag":197,"props":1782,"children":1783},{"class":199,"line":855},[1784,1788,1792,1797,1802,1806,1811],{"type":43,"tag":197,"props":1785,"children":1786},{"style":282},[1787],{"type":49,"value":471},{"type":43,"tag":197,"props":1789,"children":1790},{"style":216},[1791],{"type":49,"value":1705},{"type":43,"tag":197,"props":1793,"children":1794},{"style":242},[1795],{"type":49,"value":1796},"Profile",{"type":43,"tag":197,"props":1798,"children":1799},{"style":204},[1800],{"type":49,"value":1801}," user",{"type":43,"tag":197,"props":1803,"children":1804},{"style":216},[1805],{"type":49,"value":1319},{"type":43,"tag":197,"props":1807,"children":1808},{"style":210},[1809],{"type":49,"value":1810},"data",{"type":43,"tag":197,"props":1812,"children":1813},{"style":216},[1814],{"type":49,"value":1773},{"type":43,"tag":197,"props":1816,"children":1817},{"class":199,"line":897},[1818],{"type":43,"tag":197,"props":1819,"children":1820},{"style":216},[1821],{"type":49,"value":1386},{"type":43,"tag":52,"props":1823,"children":1824},{},[1825,1830],{"type":43,"tag":56,"props":1826,"children":1827},{},[1828],{"type":49,"value":1829},"Mutations",{"type":49,"value":186},{"type":43,"tag":74,"props":1832,"children":1834},{"className":189,"code":1833,"language":191,"meta":83,"style":83},"import { useMutation, useQueryClient } from \"@tanstack\u002Freact-query\";\n\nfunction CreateUserForm() {\n  const queryClient = useQueryClient();\n\n  const mutation = useMutation({\n    mutationFn: createUser,\n    onSuccess: () => {\n      \u002F\u002F Invalidate and refetch\n      queryClient.invalidateQueries({ queryKey: [\"users\"] });\n    },\n  });\n\n  const handleSubmit = (data: UserData) => {\n    mutation.mutate(data);\n  };\n\n  return \u003CForm onSubmit={handleSubmit} isLoading={mutation.isPending} \u002F>;\n}\n",[1835],{"type":43,"tag":81,"props":1836,"children":1837},{"__ignoreMap":83},[1838,1887,1894,1914,1942,1949,1977,1998,2022,2030,2099,2106,2121,2128,2172,2205,2213,2220,2281],{"type":43,"tag":197,"props":1839,"children":1840},{"class":199,"line":200},[1841,1845,1849,1854,1858,1863,1867,1871,1875,1879,1883],{"type":43,"tag":197,"props":1842,"children":1843},{"style":282},[1844],{"type":49,"value":1031},{"type":43,"tag":197,"props":1846,"children":1847},{"style":216},[1848],{"type":49,"value":1036},{"type":43,"tag":197,"props":1850,"children":1851},{"style":210},[1852],{"type":49,"value":1853}," useMutation",{"type":43,"tag":197,"props":1855,"children":1856},{"style":216},[1857],{"type":49,"value":614},{"type":43,"tag":197,"props":1859,"children":1860},{"style":210},[1861],{"type":49,"value":1862}," useQueryClient",{"type":43,"tag":197,"props":1864,"children":1865},{"style":216},[1866],{"type":49,"value":1055},{"type":43,"tag":197,"props":1868,"children":1869},{"style":282},[1870],{"type":49,"value":1060},{"type":43,"tag":197,"props":1872,"children":1873},{"style":216},[1874],{"type":49,"value":635},{"type":43,"tag":197,"props":1876,"children":1877},{"style":305},[1878],{"type":49,"value":1069},{"type":43,"tag":197,"props":1880,"children":1881},{"style":216},[1882],{"type":49,"value":600},{"type":43,"tag":197,"props":1884,"children":1885},{"style":216},[1886],{"type":49,"value":331},{"type":43,"tag":197,"props":1888,"children":1889},{"class":199,"line":263},[1890],{"type":43,"tag":197,"props":1891,"children":1892},{"emptyLinePlaceholder":338},[1893],{"type":49,"value":341},{"type":43,"tag":197,"props":1895,"children":1896},{"class":199,"line":334},[1897,1901,1906,1910],{"type":43,"tag":197,"props":1898,"children":1899},{"style":204},[1900],{"type":49,"value":1457},{"type":43,"tag":197,"props":1902,"children":1903},{"style":288},[1904],{"type":49,"value":1905}," CreateUserForm",{"type":43,"tag":197,"props":1907,"children":1908},{"style":216},[1909],{"type":49,"value":489},{"type":43,"tag":197,"props":1911,"children":1912},{"style":216},[1913],{"type":49,"value":260},{"type":43,"tag":197,"props":1915,"children":1916},{"class":199,"line":344},[1917,1921,1926,1930,1934,1938],{"type":43,"tag":197,"props":1918,"children":1919},{"style":204},[1920],{"type":49,"value":269},{"type":43,"tag":197,"props":1922,"children":1923},{"style":210},[1924],{"type":49,"value":1925}," queryClient",{"type":43,"tag":197,"props":1927,"children":1928},{"style":216},[1929],{"type":49,"value":279},{"type":43,"tag":197,"props":1931,"children":1932},{"style":288},[1933],{"type":49,"value":1862},{"type":43,"tag":197,"props":1935,"children":1936},{"style":294},[1937],{"type":49,"value":489},{"type":43,"tag":197,"props":1939,"children":1940},{"style":216},[1941],{"type":49,"value":331},{"type":43,"tag":197,"props":1943,"children":1944},{"class":199,"line":387},[1945],{"type":43,"tag":197,"props":1946,"children":1947},{"emptyLinePlaceholder":338},[1948],{"type":49,"value":341},{"type":43,"tag":197,"props":1950,"children":1951},{"class":199,"line":448},[1952,1956,1961,1965,1969,1973],{"type":43,"tag":197,"props":1953,"children":1954},{"style":204},[1955],{"type":49,"value":269},{"type":43,"tag":197,"props":1957,"children":1958},{"style":210},[1959],{"type":49,"value":1960}," mutation",{"type":43,"tag":197,"props":1962,"children":1963},{"style":216},[1964],{"type":49,"value":279},{"type":43,"tag":197,"props":1966,"children":1967},{"style":288},[1968],{"type":49,"value":1853},{"type":43,"tag":197,"props":1970,"children":1971},{"style":294},[1972],{"type":49,"value":297},{"type":43,"tag":197,"props":1974,"children":1975},{"style":216},[1976],{"type":49,"value":384},{"type":43,"tag":197,"props":1978,"children":1979},{"class":199,"line":457},[1980,1985,1989,1994],{"type":43,"tag":197,"props":1981,"children":1982},{"style":294},[1983],{"type":49,"value":1984},"    mutationFn",{"type":43,"tag":197,"props":1986,"children":1987},{"style":216},[1988],{"type":49,"value":186},{"type":43,"tag":197,"props":1990,"children":1991},{"style":210},[1992],{"type":49,"value":1993}," createUser",{"type":43,"tag":197,"props":1995,"children":1996},{"style":216},[1997],{"type":49,"value":649},{"type":43,"tag":197,"props":1999,"children":2000},{"class":199,"line":465},[2001,2006,2010,2014,2018],{"type":43,"tag":197,"props":2002,"children":2003},{"style":288},[2004],{"type":49,"value":2005},"    onSuccess",{"type":43,"tag":197,"props":2007,"children":2008},{"style":216},[2009],{"type":49,"value":186},{"type":43,"tag":197,"props":2011,"children":2012},{"style":216},[2013],{"type":49,"value":1628},{"type":43,"tag":197,"props":2015,"children":2016},{"style":204},[2017],{"type":49,"value":255},{"type":43,"tag":197,"props":2019,"children":2020},{"style":216},[2021],{"type":49,"value":260},{"type":43,"tag":197,"props":2023,"children":2024},{"class":199,"line":496},[2025],{"type":43,"tag":197,"props":2026,"children":2027},{"style":1020},[2028],{"type":49,"value":2029},"      \u002F\u002F Invalidate and refetch\n",{"type":43,"tag":197,"props":2031,"children":2032},{"class":199,"line":811},[2033,2038,2042,2047,2051,2056,2061,2065,2069,2073,2078,2082,2087,2091,2095],{"type":43,"tag":197,"props":2034,"children":2035},{"style":210},[2036],{"type":49,"value":2037},"      queryClient",{"type":43,"tag":197,"props":2039,"children":2040},{"style":216},[2041],{"type":49,"value":369},{"type":43,"tag":197,"props":2043,"children":2044},{"style":288},[2045],{"type":49,"value":2046},"invalidateQueries",{"type":43,"tag":197,"props":2048,"children":2049},{"style":294},[2050],{"type":49,"value":297},{"type":43,"tag":197,"props":2052,"children":2053},{"style":216},[2054],{"type":49,"value":2055},"{",{"type":43,"tag":197,"props":2057,"children":2058},{"style":294},[2059],{"type":49,"value":2060}," queryKey",{"type":43,"tag":197,"props":2062,"children":2063},{"style":216},[2064],{"type":49,"value":186},{"type":43,"tag":197,"props":2066,"children":2067},{"style":294},[2068],{"type":49,"value":1581},{"type":43,"tag":197,"props":2070,"children":2071},{"style":216},[2072],{"type":49,"value":600},{"type":43,"tag":197,"props":2074,"children":2075},{"style":305},[2076],{"type":49,"value":2077},"users",{"type":43,"tag":197,"props":2079,"children":2080},{"style":216},[2081],{"type":49,"value":600},{"type":43,"tag":197,"props":2083,"children":2084},{"style":294},[2085],{"type":49,"value":2086},"] ",{"type":43,"tag":197,"props":2088,"children":2089},{"style":216},[2090],{"type":49,"value":1238},{"type":43,"tag":197,"props":2092,"children":2093},{"style":294},[2094],{"type":49,"value":250},{"type":43,"tag":197,"props":2096,"children":2097},{"style":216},[2098],{"type":49,"value":331},{"type":43,"tag":197,"props":2100,"children":2101},{"class":199,"line":819},[2102],{"type":43,"tag":197,"props":2103,"children":2104},{"style":216},[2105],{"type":49,"value":750},{"type":43,"tag":197,"props":2107,"children":2108},{"class":199,"line":855},[2109,2113,2117],{"type":43,"tag":197,"props":2110,"children":2111},{"style":216},[2112],{"type":49,"value":800},{"type":43,"tag":197,"props":2114,"children":2115},{"style":294},[2116],{"type":49,"value":250},{"type":43,"tag":197,"props":2118,"children":2119},{"style":216},[2120],{"type":49,"value":331},{"type":43,"tag":197,"props":2122,"children":2123},{"class":199,"line":897},[2124],{"type":43,"tag":197,"props":2125,"children":2126},{"emptyLinePlaceholder":338},[2127],{"type":49,"value":341},{"type":43,"tag":197,"props":2129,"children":2130},{"class":199,"line":939},[2131,2135,2140,2144,2148,2152,2156,2160,2164,2168],{"type":43,"tag":197,"props":2132,"children":2133},{"style":204},[2134],{"type":49,"value":269},{"type":43,"tag":197,"props":2136,"children":2137},{"style":210},[2138],{"type":49,"value":2139}," handleSubmit",{"type":43,"tag":197,"props":2141,"children":2142},{"style":216},[2143],{"type":49,"value":279},{"type":43,"tag":197,"props":2145,"children":2146},{"style":216},[2147],{"type":49,"value":229},{"type":43,"tag":197,"props":2149,"children":2150},{"style":232},[2151],{"type":49,"value":1810},{"type":43,"tag":197,"props":2153,"children":2154},{"style":216},[2155],{"type":49,"value":186},{"type":43,"tag":197,"props":2157,"children":2158},{"style":242},[2159],{"type":49,"value":556},{"type":43,"tag":197,"props":2161,"children":2162},{"style":216},[2163],{"type":49,"value":250},{"type":43,"tag":197,"props":2165,"children":2166},{"style":204},[2167],{"type":49,"value":255},{"type":43,"tag":197,"props":2169,"children":2170},{"style":216},[2171],{"type":49,"value":260},{"type":43,"tag":197,"props":2173,"children":2174},{"class":199,"line":947},[2175,2180,2184,2189,2193,2197,2201],{"type":43,"tag":197,"props":2176,"children":2177},{"style":210},[2178],{"type":49,"value":2179},"    mutation",{"type":43,"tag":197,"props":2181,"children":2182},{"style":216},[2183],{"type":49,"value":369},{"type":43,"tag":197,"props":2185,"children":2186},{"style":288},[2187],{"type":49,"value":2188},"mutate",{"type":43,"tag":197,"props":2190,"children":2191},{"style":294},[2192],{"type":49,"value":297},{"type":43,"tag":197,"props":2194,"children":2195},{"style":210},[2196],{"type":49,"value":1810},{"type":43,"tag":197,"props":2198,"children":2199},{"style":294},[2200],{"type":49,"value":250},{"type":43,"tag":197,"props":2202,"children":2203},{"style":216},[2204],{"type":49,"value":331},{"type":43,"tag":197,"props":2206,"children":2207},{"class":199,"line":955},[2208],{"type":43,"tag":197,"props":2209,"children":2210},{"style":216},[2211],{"type":49,"value":2212},"  };\n",{"type":43,"tag":197,"props":2214,"children":2215},{"class":199,"line":983},[2216],{"type":43,"tag":197,"props":2217,"children":2218},{"emptyLinePlaceholder":338},[2219],{"type":49,"value":341},{"type":43,"tag":197,"props":2221,"children":2222},{"class":199,"line":1367},[2223,2227,2231,2236,2241,2245,2250,2255,2259,2263,2268,2272,2277],{"type":43,"tag":197,"props":2224,"children":2225},{"style":282},[2226],{"type":49,"value":471},{"type":43,"tag":197,"props":2228,"children":2229},{"style":216},[2230],{"type":49,"value":1705},{"type":43,"tag":197,"props":2232,"children":2233},{"style":242},[2234],{"type":49,"value":2235},"Form",{"type":43,"tag":197,"props":2237,"children":2238},{"style":204},[2239],{"type":49,"value":2240}," onSubmit",{"type":43,"tag":197,"props":2242,"children":2243},{"style":216},[2244],{"type":49,"value":1319},{"type":43,"tag":197,"props":2246,"children":2247},{"style":210},[2248],{"type":49,"value":2249},"handleSubmit",{"type":43,"tag":197,"props":2251,"children":2252},{"style":216},[2253],{"type":49,"value":2254},"} ",{"type":43,"tag":197,"props":2256,"children":2257},{"style":204},[2258],{"type":49,"value":1691},{"type":43,"tag":197,"props":2260,"children":2261},{"style":216},[2262],{"type":49,"value":1319},{"type":43,"tag":197,"props":2264,"children":2265},{"style":210},[2266],{"type":49,"value":2267},"mutation",{"type":43,"tag":197,"props":2269,"children":2270},{"style":216},[2271],{"type":49,"value":369},{"type":43,"tag":197,"props":2273,"children":2274},{"style":210},[2275],{"type":49,"value":2276},"isPending",{"type":43,"tag":197,"props":2278,"children":2279},{"style":216},[2280],{"type":49,"value":1773},{"type":43,"tag":197,"props":2282,"children":2283},{"class":199,"line":1380},[2284],{"type":43,"tag":197,"props":2285,"children":2286},{"style":216},[2287],{"type":49,"value":1386},{"type":43,"tag":990,"props":2289,"children":2290},{},[],{"type":43,"tag":171,"props":2292,"children":2294},{"id":2293},"_3-error-handling",[2295],{"type":49,"value":2296},"3. Error Handling",{"type":43,"tag":52,"props":2298,"children":2299},{},[2300,2305],{"type":43,"tag":56,"props":2301,"children":2302},{},[2303],{"type":49,"value":2304},"Comprehensive error handling",{"type":49,"value":186},{"type":43,"tag":74,"props":2307,"children":2309},{"className":189,"code":2308,"language":191,"meta":83,"style":83},"class ApiError extends Error {\n  constructor(message: string, public status: number, public code?: string) {\n    super(message);\n    this.name = \"ApiError\";\n  }\n}\n\nconst fetchWithErrorHandling = async (url: string, options?: RequestInit) => {\n  try {\n    const response = await fetch(url, options);\n\n    if (!response.ok) {\n      const error = await response.json().catch(() => ({}));\n      throw new ApiError(\n        error.message || \"Request failed\",\n        response.status,\n        error.code\n      );\n    }\n\n    return response.json();\n  } catch (error) {\n    if (error instanceof ApiError) {\n      throw error;\n    }\n    \u002F\u002F Network error (no internet, timeout, etc.)\n    throw new ApiError(\"Network error\", 0, \"NETWORK_ERROR\");\n  }\n};\n",[2310],{"type":43,"tag":81,"props":2311,"children":2312},{"__ignoreMap":83},[2313,2339,2416,2440,2474,2481,2488,2495,2562,2574,2621,2628,2664,2739,2760,2798,2818,2834,2846,2854,2862,2891,2920,2953,2969,2977,2986,3053,3061],{"type":43,"tag":197,"props":2314,"children":2315},{"class":199,"line":200},[2316,2321,2326,2331,2335],{"type":43,"tag":197,"props":2317,"children":2318},{"style":204},[2319],{"type":49,"value":2320},"class",{"type":43,"tag":197,"props":2322,"children":2323},{"style":242},[2324],{"type":49,"value":2325}," ApiError",{"type":43,"tag":197,"props":2327,"children":2328},{"style":204},[2329],{"type":49,"value":2330}," extends",{"type":43,"tag":197,"props":2332,"children":2333},{"style":242},[2334],{"type":49,"value":403},{"type":43,"tag":197,"props":2336,"children":2337},{"style":216},[2338],{"type":49,"value":260},{"type":43,"tag":197,"props":2340,"children":2341},{"class":199,"line":263},[2342,2347,2351,2355,2359,2363,2367,2372,2377,2381,2386,2390,2394,2399,2404,2408,2412],{"type":43,"tag":197,"props":2343,"children":2344},{"style":204},[2345],{"type":49,"value":2346},"  constructor",{"type":43,"tag":197,"props":2348,"children":2349},{"style":216},[2350],{"type":49,"value":297},{"type":43,"tag":197,"props":2352,"children":2353},{"style":232},[2354],{"type":49,"value":928},{"type":43,"tag":197,"props":2356,"children":2357},{"style":216},[2358],{"type":49,"value":186},{"type":43,"tag":197,"props":2360,"children":2361},{"style":242},[2362],{"type":49,"value":245},{"type":43,"tag":197,"props":2364,"children":2365},{"style":216},[2366],{"type":49,"value":614},{"type":43,"tag":197,"props":2368,"children":2369},{"style":204},[2370],{"type":49,"value":2371}," public",{"type":43,"tag":197,"props":2373,"children":2374},{"style":232},[2375],{"type":49,"value":2376}," status",{"type":43,"tag":197,"props":2378,"children":2379},{"style":216},[2380],{"type":49,"value":186},{"type":43,"tag":197,"props":2382,"children":2383},{"style":242},[2384],{"type":49,"value":2385}," number",{"type":43,"tag":197,"props":2387,"children":2388},{"style":216},[2389],{"type":49,"value":614},{"type":43,"tag":197,"props":2391,"children":2392},{"style":204},[2393],{"type":49,"value":2371},{"type":43,"tag":197,"props":2395,"children":2396},{"style":232},[2397],{"type":49,"value":2398}," code",{"type":43,"tag":197,"props":2400,"children":2401},{"style":216},[2402],{"type":49,"value":2403},"?:",{"type":43,"tag":197,"props":2405,"children":2406},{"style":242},[2407],{"type":49,"value":245},{"type":43,"tag":197,"props":2409,"children":2410},{"style":216},[2411],{"type":49,"value":250},{"type":43,"tag":197,"props":2413,"children":2414},{"style":216},[2415],{"type":49,"value":260},{"type":43,"tag":197,"props":2417,"children":2418},{"class":199,"line":334},[2419,2424,2428,2432,2436],{"type":43,"tag":197,"props":2420,"children":2421},{"style":210},[2422],{"type":49,"value":2423},"    super",{"type":43,"tag":197,"props":2425,"children":2426},{"style":294},[2427],{"type":49,"value":297},{"type":43,"tag":197,"props":2429,"children":2430},{"style":210},[2431],{"type":49,"value":928},{"type":43,"tag":197,"props":2433,"children":2434},{"style":294},[2435],{"type":49,"value":250},{"type":43,"tag":197,"props":2437,"children":2438},{"style":216},[2439],{"type":49,"value":331},{"type":43,"tag":197,"props":2441,"children":2442},{"class":199,"line":344},[2443,2448,2453,2457,2461,2466,2470],{"type":43,"tag":197,"props":2444,"children":2445},{"style":216},[2446],{"type":49,"value":2447},"    this.",{"type":43,"tag":197,"props":2449,"children":2450},{"style":210},[2451],{"type":49,"value":2452},"name",{"type":43,"tag":197,"props":2454,"children":2455},{"style":216},[2456],{"type":49,"value":279},{"type":43,"tag":197,"props":2458,"children":2459},{"style":216},[2460],{"type":49,"value":635},{"type":43,"tag":197,"props":2462,"children":2463},{"style":305},[2464],{"type":49,"value":2465},"ApiError",{"type":43,"tag":197,"props":2467,"children":2468},{"style":216},[2469],{"type":49,"value":600},{"type":43,"tag":197,"props":2471,"children":2472},{"style":216},[2473],{"type":49,"value":331},{"type":43,"tag":197,"props":2475,"children":2476},{"class":199,"line":387},[2477],{"type":43,"tag":197,"props":2478,"children":2479},{"style":216},[2480],{"type":49,"value":454},{"type":43,"tag":197,"props":2482,"children":2483},{"class":199,"line":448},[2484],{"type":43,"tag":197,"props":2485,"children":2486},{"style":216},[2487],{"type":49,"value":1386},{"type":43,"tag":197,"props":2489,"children":2490},{"class":199,"line":457},[2491],{"type":43,"tag":197,"props":2492,"children":2493},{"emptyLinePlaceholder":338},[2494],{"type":49,"value":341},{"type":43,"tag":197,"props":2496,"children":2497},{"class":199,"line":465},[2498,2502,2507,2511,2515,2519,2524,2528,2532,2536,2541,2545,2550,2554,2558],{"type":43,"tag":197,"props":2499,"children":2500},{"style":204},[2501],{"type":49,"value":207},{"type":43,"tag":197,"props":2503,"children":2504},{"style":210},[2505],{"type":49,"value":2506}," fetchWithErrorHandling ",{"type":43,"tag":197,"props":2508,"children":2509},{"style":216},[2510],{"type":49,"value":219},{"type":43,"tag":197,"props":2512,"children":2513},{"style":204},[2514],{"type":49,"value":224},{"type":43,"tag":197,"props":2516,"children":2517},{"style":216},[2518],{"type":49,"value":229},{"type":43,"tag":197,"props":2520,"children":2521},{"style":232},[2522],{"type":49,"value":2523},"url",{"type":43,"tag":197,"props":2525,"children":2526},{"style":216},[2527],{"type":49,"value":186},{"type":43,"tag":197,"props":2529,"children":2530},{"style":242},[2531],{"type":49,"value":245},{"type":43,"tag":197,"props":2533,"children":2534},{"style":216},[2535],{"type":49,"value":614},{"type":43,"tag":197,"props":2537,"children":2538},{"style":232},[2539],{"type":49,"value":2540}," options",{"type":43,"tag":197,"props":2542,"children":2543},{"style":216},[2544],{"type":49,"value":2403},{"type":43,"tag":197,"props":2546,"children":2547},{"style":242},[2548],{"type":49,"value":2549}," RequestInit",{"type":43,"tag":197,"props":2551,"children":2552},{"style":216},[2553],{"type":49,"value":250},{"type":43,"tag":197,"props":2555,"children":2556},{"style":204},[2557],{"type":49,"value":255},{"type":43,"tag":197,"props":2559,"children":2560},{"style":216},[2561],{"type":49,"value":260},{"type":43,"tag":197,"props":2563,"children":2564},{"class":199,"line":496},[2565,2570],{"type":43,"tag":197,"props":2566,"children":2567},{"style":282},[2568],{"type":49,"value":2569},"  try",{"type":43,"tag":197,"props":2571,"children":2572},{"style":216},[2573],{"type":49,"value":260},{"type":43,"tag":197,"props":2575,"children":2576},{"class":199,"line":811},[2577,2581,2585,2589,2593,2597,2601,2605,2609,2613,2617],{"type":43,"tag":197,"props":2578,"children":2579},{"style":204},[2580],{"type":49,"value":861},{"type":43,"tag":197,"props":2582,"children":2583},{"style":210},[2584],{"type":49,"value":274},{"type":43,"tag":197,"props":2586,"children":2587},{"style":216},[2588],{"type":49,"value":279},{"type":43,"tag":197,"props":2590,"children":2591},{"style":282},[2592],{"type":49,"value":285},{"type":43,"tag":197,"props":2594,"children":2595},{"style":288},[2596],{"type":49,"value":291},{"type":43,"tag":197,"props":2598,"children":2599},{"style":294},[2600],{"type":49,"value":297},{"type":43,"tag":197,"props":2602,"children":2603},{"style":210},[2604],{"type":49,"value":2523},{"type":43,"tag":197,"props":2606,"children":2607},{"style":216},[2608],{"type":49,"value":614},{"type":43,"tag":197,"props":2610,"children":2611},{"style":210},[2612],{"type":49,"value":2540},{"type":43,"tag":197,"props":2614,"children":2615},{"style":294},[2616],{"type":49,"value":250},{"type":43,"tag":197,"props":2618,"children":2619},{"style":216},[2620],{"type":49,"value":331},{"type":43,"tag":197,"props":2622,"children":2623},{"class":199,"line":819},[2624],{"type":43,"tag":197,"props":2625,"children":2626},{"emptyLinePlaceholder":338},[2627],{"type":49,"value":341},{"type":43,"tag":197,"props":2629,"children":2630},{"class":199,"line":855},[2631,2636,2640,2644,2648,2652,2656,2660],{"type":43,"tag":197,"props":2632,"children":2633},{"style":282},[2634],{"type":49,"value":2635},"    if",{"type":43,"tag":197,"props":2637,"children":2638},{"style":294},[2639],{"type":49,"value":229},{"type":43,"tag":197,"props":2641,"children":2642},{"style":216},[2643],{"type":49,"value":359},{"type":43,"tag":197,"props":2645,"children":2646},{"style":210},[2647],{"type":49,"value":364},{"type":43,"tag":197,"props":2649,"children":2650},{"style":216},[2651],{"type":49,"value":369},{"type":43,"tag":197,"props":2653,"children":2654},{"style":210},[2655],{"type":49,"value":374},{"type":43,"tag":197,"props":2657,"children":2658},{"style":294},[2659],{"type":49,"value":379},{"type":43,"tag":197,"props":2661,"children":2662},{"style":216},[2663],{"type":49,"value":384},{"type":43,"tag":197,"props":2665,"children":2666},{"class":199,"line":897},[2667,2672,2676,2680,2684,2688,2692,2696,2700,2704,2709,2713,2717,2721,2725,2730,2735],{"type":43,"tag":197,"props":2668,"children":2669},{"style":204},[2670],{"type":49,"value":2671},"      const",{"type":43,"tag":197,"props":2673,"children":2674},{"style":210},[2675],{"type":49,"value":866},{"type":43,"tag":197,"props":2677,"children":2678},{"style":216},[2679],{"type":49,"value":279},{"type":43,"tag":197,"props":2681,"children":2682},{"style":282},[2683],{"type":49,"value":285},{"type":43,"tag":197,"props":2685,"children":2686},{"style":210},[2687],{"type":49,"value":274},{"type":43,"tag":197,"props":2689,"children":2690},{"style":216},[2691],{"type":49,"value":369},{"type":43,"tag":197,"props":2693,"children":2694},{"style":288},[2695],{"type":49,"value":484},{"type":43,"tag":197,"props":2697,"children":2698},{"style":294},[2699],{"type":49,"value":489},{"type":43,"tag":197,"props":2701,"children":2702},{"style":216},[2703],{"type":49,"value":369},{"type":43,"tag":197,"props":2705,"children":2706},{"style":288},[2707],{"type":49,"value":2708},"catch",{"type":43,"tag":197,"props":2710,"children":2711},{"style":294},[2712],{"type":49,"value":297},{"type":43,"tag":197,"props":2714,"children":2715},{"style":216},[2716],{"type":49,"value":489},{"type":43,"tag":197,"props":2718,"children":2719},{"style":204},[2720],{"type":49,"value":255},{"type":43,"tag":197,"props":2722,"children":2723},{"style":294},[2724],{"type":49,"value":229},{"type":43,"tag":197,"props":2726,"children":2727},{"style":216},[2728],{"type":49,"value":2729},"{}",{"type":43,"tag":197,"props":2731,"children":2732},{"style":294},[2733],{"type":49,"value":2734},"))",{"type":43,"tag":197,"props":2736,"children":2737},{"style":216},[2738],{"type":49,"value":331},{"type":43,"tag":197,"props":2740,"children":2741},{"class":199,"line":939},[2742,2747,2751,2755],{"type":43,"tag":197,"props":2743,"children":2744},{"style":282},[2745],{"type":49,"value":2746},"      throw",{"type":43,"tag":197,"props":2748,"children":2749},{"style":216},[2750],{"type":49,"value":398},{"type":43,"tag":197,"props":2752,"children":2753},{"style":288},[2754],{"type":49,"value":2325},{"type":43,"tag":197,"props":2756,"children":2757},{"style":294},[2758],{"type":49,"value":2759},"(\n",{"type":43,"tag":197,"props":2761,"children":2762},{"class":199,"line":947},[2763,2768,2772,2776,2781,2785,2790,2794],{"type":43,"tag":197,"props":2764,"children":2765},{"style":210},[2766],{"type":49,"value":2767},"        error",{"type":43,"tag":197,"props":2769,"children":2770},{"style":216},[2771],{"type":49,"value":369},{"type":43,"tag":197,"props":2773,"children":2774},{"style":210},[2775],{"type":49,"value":928},{"type":43,"tag":197,"props":2777,"children":2778},{"style":216},[2779],{"type":49,"value":2780}," ||",{"type":43,"tag":197,"props":2782,"children":2783},{"style":216},[2784],{"type":49,"value":635},{"type":43,"tag":197,"props":2786,"children":2787},{"style":305},[2788],{"type":49,"value":2789},"Request failed",{"type":43,"tag":197,"props":2791,"children":2792},{"style":216},[2793],{"type":49,"value":600},{"type":43,"tag":197,"props":2795,"children":2796},{"style":216},[2797],{"type":49,"value":649},{"type":43,"tag":197,"props":2799,"children":2800},{"class":199,"line":955},[2801,2806,2810,2814],{"type":43,"tag":197,"props":2802,"children":2803},{"style":210},[2804],{"type":49,"value":2805},"        response",{"type":43,"tag":197,"props":2807,"children":2808},{"style":216},[2809],{"type":49,"value":369},{"type":43,"tag":197,"props":2811,"children":2812},{"style":210},[2813],{"type":49,"value":433},{"type":43,"tag":197,"props":2815,"children":2816},{"style":216},[2817],{"type":49,"value":649},{"type":43,"tag":197,"props":2819,"children":2820},{"class":199,"line":983},[2821,2825,2829],{"type":43,"tag":197,"props":2822,"children":2823},{"style":210},[2824],{"type":49,"value":2767},{"type":43,"tag":197,"props":2826,"children":2827},{"style":216},[2828],{"type":49,"value":369},{"type":43,"tag":197,"props":2830,"children":2831},{"style":210},[2832],{"type":49,"value":2833},"code\n",{"type":43,"tag":197,"props":2835,"children":2836},{"class":199,"line":1367},[2837,2842],{"type":43,"tag":197,"props":2838,"children":2839},{"style":294},[2840],{"type":49,"value":2841},"      )",{"type":43,"tag":197,"props":2843,"children":2844},{"style":216},[2845],{"type":49,"value":331},{"type":43,"tag":197,"props":2847,"children":2848},{"class":199,"line":1380},[2849],{"type":43,"tag":197,"props":2850,"children":2851},{"style":216},[2852],{"type":49,"value":2853},"    }\n",{"type":43,"tag":197,"props":2855,"children":2857},{"class":199,"line":2856},20,[2858],{"type":43,"tag":197,"props":2859,"children":2860},{"emptyLinePlaceholder":338},[2861],{"type":49,"value":341},{"type":43,"tag":197,"props":2863,"children":2865},{"class":199,"line":2864},21,[2866,2871,2875,2879,2883,2887],{"type":43,"tag":197,"props":2867,"children":2868},{"style":282},[2869],{"type":49,"value":2870},"    return",{"type":43,"tag":197,"props":2872,"children":2873},{"style":210},[2874],{"type":49,"value":274},{"type":43,"tag":197,"props":2876,"children":2877},{"style":216},[2878],{"type":49,"value":369},{"type":43,"tag":197,"props":2880,"children":2881},{"style":288},[2882],{"type":49,"value":484},{"type":43,"tag":197,"props":2884,"children":2885},{"style":294},[2886],{"type":49,"value":489},{"type":43,"tag":197,"props":2888,"children":2889},{"style":216},[2890],{"type":49,"value":331},{"type":43,"tag":197,"props":2892,"children":2894},{"class":199,"line":2893},22,[2895,2899,2904,2908,2912,2916],{"type":43,"tag":197,"props":2896,"children":2897},{"style":216},[2898],{"type":49,"value":800},{"type":43,"tag":197,"props":2900,"children":2901},{"style":282},[2902],{"type":49,"value":2903}," catch",{"type":43,"tag":197,"props":2905,"children":2906},{"style":294},[2907],{"type":49,"value":229},{"type":43,"tag":197,"props":2909,"children":2910},{"style":210},[2911],{"type":49,"value":919},{"type":43,"tag":197,"props":2913,"children":2914},{"style":294},[2915],{"type":49,"value":379},{"type":43,"tag":197,"props":2917,"children":2918},{"style":216},[2919],{"type":49,"value":384},{"type":43,"tag":197,"props":2921,"children":2923},{"class":199,"line":2922},23,[2924,2928,2932,2936,2941,2945,2949],{"type":43,"tag":197,"props":2925,"children":2926},{"style":282},[2927],{"type":49,"value":2635},{"type":43,"tag":197,"props":2929,"children":2930},{"style":294},[2931],{"type":49,"value":229},{"type":43,"tag":197,"props":2933,"children":2934},{"style":210},[2935],{"type":49,"value":919},{"type":43,"tag":197,"props":2937,"children":2938},{"style":216},[2939],{"type":49,"value":2940}," instanceof",{"type":43,"tag":197,"props":2942,"children":2943},{"style":242},[2944],{"type":49,"value":2325},{"type":43,"tag":197,"props":2946,"children":2947},{"style":294},[2948],{"type":49,"value":379},{"type":43,"tag":197,"props":2950,"children":2951},{"style":216},[2952],{"type":49,"value":384},{"type":43,"tag":197,"props":2954,"children":2956},{"class":199,"line":2955},24,[2957,2961,2965],{"type":43,"tag":197,"props":2958,"children":2959},{"style":282},[2960],{"type":49,"value":2746},{"type":43,"tag":197,"props":2962,"children":2963},{"style":210},[2964],{"type":49,"value":866},{"type":43,"tag":197,"props":2966,"children":2967},{"style":216},[2968],{"type":49,"value":331},{"type":43,"tag":197,"props":2970,"children":2972},{"class":199,"line":2971},25,[2973],{"type":43,"tag":197,"props":2974,"children":2975},{"style":216},[2976],{"type":49,"value":2853},{"type":43,"tag":197,"props":2978,"children":2980},{"class":199,"line":2979},26,[2981],{"type":43,"tag":197,"props":2982,"children":2983},{"style":1020},[2984],{"type":49,"value":2985},"    \u002F\u002F Network error (no internet, timeout, etc.)\n",{"type":43,"tag":197,"props":2987,"children":2989},{"class":199,"line":2988},27,[2990,2994,2998,3002,3006,3010,3015,3019,3023,3028,3032,3036,3041,3045,3049],{"type":43,"tag":197,"props":2991,"children":2992},{"style":282},[2993],{"type":49,"value":393},{"type":43,"tag":197,"props":2995,"children":2996},{"style":216},[2997],{"type":49,"value":398},{"type":43,"tag":197,"props":2999,"children":3000},{"style":288},[3001],{"type":49,"value":2325},{"type":43,"tag":197,"props":3003,"children":3004},{"style":294},[3005],{"type":49,"value":297},{"type":43,"tag":197,"props":3007,"children":3008},{"style":216},[3009],{"type":49,"value":600},{"type":43,"tag":197,"props":3011,"children":3012},{"style":305},[3013],{"type":49,"value":3014},"Network error",{"type":43,"tag":197,"props":3016,"children":3017},{"style":216},[3018],{"type":49,"value":600},{"type":43,"tag":197,"props":3020,"children":3021},{"style":216},[3022],{"type":49,"value":614},{"type":43,"tag":197,"props":3024,"children":3025},{"style":1163},[3026],{"type":49,"value":3027}," 0",{"type":43,"tag":197,"props":3029,"children":3030},{"style":216},[3031],{"type":49,"value":614},{"type":43,"tag":197,"props":3033,"children":3034},{"style":216},[3035],{"type":49,"value":635},{"type":43,"tag":197,"props":3037,"children":3038},{"style":305},[3039],{"type":49,"value":3040},"NETWORK_ERROR",{"type":43,"tag":197,"props":3042,"children":3043},{"style":216},[3044],{"type":49,"value":600},{"type":43,"tag":197,"props":3046,"children":3047},{"style":294},[3048],{"type":49,"value":250},{"type":43,"tag":197,"props":3050,"children":3051},{"style":216},[3052],{"type":49,"value":331},{"type":43,"tag":197,"props":3054,"children":3056},{"class":199,"line":3055},28,[3057],{"type":43,"tag":197,"props":3058,"children":3059},{"style":216},[3060],{"type":49,"value":454},{"type":43,"tag":197,"props":3062,"children":3064},{"class":199,"line":3063},29,[3065],{"type":43,"tag":197,"props":3066,"children":3067},{"style":216},[3068],{"type":49,"value":502},{"type":43,"tag":52,"props":3070,"children":3071},{},[3072,3077],{"type":43,"tag":56,"props":3073,"children":3074},{},[3075],{"type":49,"value":3076},"Retry logic",{"type":49,"value":186},{"type":43,"tag":74,"props":3079,"children":3081},{"className":189,"code":3080,"language":191,"meta":83,"style":83},"const fetchWithRetry = async (\n  url: string,\n  options?: RequestInit,\n  retries = 3\n) => {\n  for (let i = 0; i \u003C retries; i++) {\n    try {\n      return await fetchWithErrorHandling(url, options);\n    } catch (error) {\n      if (i === retries - 1) throw error;\n      \u002F\u002F Exponential backoff\n      await new Promise((r) => setTimeout(r, Math.pow(2, i) * 1000));\n    }\n  }\n};\n",[3082],{"type":43,"tag":81,"props":3083,"children":3084},{"__ignoreMap":83},[3085,3109,3129,3149,3166,3182,3251,3263,3304,3332,3385,3393,3500,3507,3514],{"type":43,"tag":197,"props":3086,"children":3087},{"class":199,"line":200},[3088,3092,3097,3101,3105],{"type":43,"tag":197,"props":3089,"children":3090},{"style":204},[3091],{"type":49,"value":207},{"type":43,"tag":197,"props":3093,"children":3094},{"style":210},[3095],{"type":49,"value":3096}," fetchWithRetry ",{"type":43,"tag":197,"props":3098,"children":3099},{"style":216},[3100],{"type":49,"value":219},{"type":43,"tag":197,"props":3102,"children":3103},{"style":204},[3104],{"type":49,"value":224},{"type":43,"tag":197,"props":3106,"children":3107},{"style":210},[3108],{"type":49,"value":1296},{"type":43,"tag":197,"props":3110,"children":3111},{"class":199,"line":263},[3112,3117,3121,3125],{"type":43,"tag":197,"props":3113,"children":3114},{"style":232},[3115],{"type":49,"value":3116},"  url",{"type":43,"tag":197,"props":3118,"children":3119},{"style":216},[3120],{"type":49,"value":186},{"type":43,"tag":197,"props":3122,"children":3123},{"style":242},[3124],{"type":49,"value":245},{"type":43,"tag":197,"props":3126,"children":3127},{"style":216},[3128],{"type":49,"value":649},{"type":43,"tag":197,"props":3130,"children":3131},{"class":199,"line":334},[3132,3137,3141,3145],{"type":43,"tag":197,"props":3133,"children":3134},{"style":232},[3135],{"type":49,"value":3136},"  options",{"type":43,"tag":197,"props":3138,"children":3139},{"style":216},[3140],{"type":49,"value":2403},{"type":43,"tag":197,"props":3142,"children":3143},{"style":242},[3144],{"type":49,"value":2549},{"type":43,"tag":197,"props":3146,"children":3147},{"style":216},[3148],{"type":49,"value":649},{"type":43,"tag":197,"props":3150,"children":3151},{"class":199,"line":344},[3152,3157,3161],{"type":43,"tag":197,"props":3153,"children":3154},{"style":210},[3155],{"type":49,"value":3156},"  retries ",{"type":43,"tag":197,"props":3158,"children":3159},{"style":216},[3160],{"type":49,"value":219},{"type":43,"tag":197,"props":3162,"children":3163},{"style":1163},[3164],{"type":49,"value":3165}," 3\n",{"type":43,"tag":197,"props":3167,"children":3168},{"class":199,"line":387},[3169,3173,3178],{"type":43,"tag":197,"props":3170,"children":3171},{"style":210},[3172],{"type":49,"value":379},{"type":43,"tag":197,"props":3174,"children":3175},{"style":204},[3176],{"type":49,"value":3177},"=>",{"type":43,"tag":197,"props":3179,"children":3180},{"style":216},[3181],{"type":49,"value":260},{"type":43,"tag":197,"props":3183,"children":3184},{"class":199,"line":448},[3185,3190,3194,3199,3204,3208,3212,3217,3221,3225,3230,3234,3238,3243,3247],{"type":43,"tag":197,"props":3186,"children":3187},{"style":282},[3188],{"type":49,"value":3189},"  for",{"type":43,"tag":197,"props":3191,"children":3192},{"style":294},[3193],{"type":49,"value":229},{"type":43,"tag":197,"props":3195,"children":3196},{"style":204},[3197],{"type":49,"value":3198},"let",{"type":43,"tag":197,"props":3200,"children":3201},{"style":210},[3202],{"type":49,"value":3203}," i",{"type":43,"tag":197,"props":3205,"children":3206},{"style":216},[3207],{"type":49,"value":279},{"type":43,"tag":197,"props":3209,"children":3210},{"style":1163},[3211],{"type":49,"value":3027},{"type":43,"tag":197,"props":3213,"children":3214},{"style":216},[3215],{"type":49,"value":3216},";",{"type":43,"tag":197,"props":3218,"children":3219},{"style":210},[3220],{"type":49,"value":3203},{"type":43,"tag":197,"props":3222,"children":3223},{"style":216},[3224],{"type":49,"value":1705},{"type":43,"tag":197,"props":3226,"children":3227},{"style":210},[3228],{"type":49,"value":3229}," retries",{"type":43,"tag":197,"props":3231,"children":3232},{"style":216},[3233],{"type":49,"value":3216},{"type":43,"tag":197,"props":3235,"children":3236},{"style":210},[3237],{"type":49,"value":3203},{"type":43,"tag":197,"props":3239,"children":3240},{"style":216},[3241],{"type":49,"value":3242},"++",{"type":43,"tag":197,"props":3244,"children":3245},{"style":294},[3246],{"type":49,"value":379},{"type":43,"tag":197,"props":3248,"children":3249},{"style":216},[3250],{"type":49,"value":384},{"type":43,"tag":197,"props":3252,"children":3253},{"class":199,"line":457},[3254,3259],{"type":43,"tag":197,"props":3255,"children":3256},{"style":282},[3257],{"type":49,"value":3258},"    try",{"type":43,"tag":197,"props":3260,"children":3261},{"style":216},[3262],{"type":49,"value":260},{"type":43,"tag":197,"props":3264,"children":3265},{"class":199,"line":465},[3266,3271,3275,3280,3284,3288,3292,3296,3300],{"type":43,"tag":197,"props":3267,"children":3268},{"style":282},[3269],{"type":49,"value":3270},"      return",{"type":43,"tag":197,"props":3272,"children":3273},{"style":282},[3274],{"type":49,"value":285},{"type":43,"tag":197,"props":3276,"children":3277},{"style":288},[3278],{"type":49,"value":3279}," fetchWithErrorHandling",{"type":43,"tag":197,"props":3281,"children":3282},{"style":294},[3283],{"type":49,"value":297},{"type":43,"tag":197,"props":3285,"children":3286},{"style":210},[3287],{"type":49,"value":2523},{"type":43,"tag":197,"props":3289,"children":3290},{"style":216},[3291],{"type":49,"value":614},{"type":43,"tag":197,"props":3293,"children":3294},{"style":210},[3295],{"type":49,"value":2540},{"type":43,"tag":197,"props":3297,"children":3298},{"style":294},[3299],{"type":49,"value":250},{"type":43,"tag":197,"props":3301,"children":3302},{"style":216},[3303],{"type":49,"value":331},{"type":43,"tag":197,"props":3305,"children":3306},{"class":199,"line":496},[3307,3312,3316,3320,3324,3328],{"type":43,"tag":197,"props":3308,"children":3309},{"style":216},[3310],{"type":49,"value":3311},"    }",{"type":43,"tag":197,"props":3313,"children":3314},{"style":282},[3315],{"type":49,"value":2903},{"type":43,"tag":197,"props":3317,"children":3318},{"style":294},[3319],{"type":49,"value":229},{"type":43,"tag":197,"props":3321,"children":3322},{"style":210},[3323],{"type":49,"value":919},{"type":43,"tag":197,"props":3325,"children":3326},{"style":294},[3327],{"type":49,"value":379},{"type":43,"tag":197,"props":3329,"children":3330},{"style":216},[3331],{"type":49,"value":384},{"type":43,"tag":197,"props":3333,"children":3334},{"class":199,"line":811},[3335,3340,3344,3349,3354,3358,3363,3368,3372,3377,3381],{"type":43,"tag":197,"props":3336,"children":3337},{"style":282},[3338],{"type":49,"value":3339},"      if",{"type":43,"tag":197,"props":3341,"children":3342},{"style":294},[3343],{"type":49,"value":229},{"type":43,"tag":197,"props":3345,"children":3346},{"style":210},[3347],{"type":49,"value":3348},"i",{"type":43,"tag":197,"props":3350,"children":3351},{"style":216},[3352],{"type":49,"value":3353}," ===",{"type":43,"tag":197,"props":3355,"children":3356},{"style":210},[3357],{"type":49,"value":3229},{"type":43,"tag":197,"props":3359,"children":3360},{"style":216},[3361],{"type":49,"value":3362}," -",{"type":43,"tag":197,"props":3364,"children":3365},{"style":1163},[3366],{"type":49,"value":3367}," 1",{"type":43,"tag":197,"props":3369,"children":3370},{"style":294},[3371],{"type":49,"value":379},{"type":43,"tag":197,"props":3373,"children":3374},{"style":282},[3375],{"type":49,"value":3376},"throw",{"type":43,"tag":197,"props":3378,"children":3379},{"style":210},[3380],{"type":49,"value":866},{"type":43,"tag":197,"props":3382,"children":3383},{"style":216},[3384],{"type":49,"value":331},{"type":43,"tag":197,"props":3386,"children":3387},{"class":199,"line":819},[3388],{"type":43,"tag":197,"props":3389,"children":3390},{"style":1020},[3391],{"type":49,"value":3392},"      \u002F\u002F Exponential backoff\n",{"type":43,"tag":197,"props":3394,"children":3395},{"class":199,"line":855},[3396,3401,3405,3410,3414,3418,3423,3427,3431,3436,3440,3444,3448,3453,3457,3462,3466,3471,3475,3479,3483,3488,3492,3496],{"type":43,"tag":197,"props":3397,"children":3398},{"style":282},[3399],{"type":49,"value":3400},"      await",{"type":43,"tag":197,"props":3402,"children":3403},{"style":216},[3404],{"type":49,"value":398},{"type":43,"tag":197,"props":3406,"children":3407},{"style":242},[3408],{"type":49,"value":3409}," Promise",{"type":43,"tag":197,"props":3411,"children":3412},{"style":294},[3413],{"type":49,"value":297},{"type":43,"tag":197,"props":3415,"children":3416},{"style":216},[3417],{"type":49,"value":297},{"type":43,"tag":197,"props":3419,"children":3420},{"style":232},[3421],{"type":49,"value":3422},"r",{"type":43,"tag":197,"props":3424,"children":3425},{"style":216},[3426],{"type":49,"value":250},{"type":43,"tag":197,"props":3428,"children":3429},{"style":204},[3430],{"type":49,"value":255},{"type":43,"tag":197,"props":3432,"children":3433},{"style":288},[3434],{"type":49,"value":3435}," setTimeout",{"type":43,"tag":197,"props":3437,"children":3438},{"style":294},[3439],{"type":49,"value":297},{"type":43,"tag":197,"props":3441,"children":3442},{"style":210},[3443],{"type":49,"value":3422},{"type":43,"tag":197,"props":3445,"children":3446},{"style":216},[3447],{"type":49,"value":614},{"type":43,"tag":197,"props":3449,"children":3450},{"style":210},[3451],{"type":49,"value":3452}," Math",{"type":43,"tag":197,"props":3454,"children":3455},{"style":216},[3456],{"type":49,"value":369},{"type":43,"tag":197,"props":3458,"children":3459},{"style":288},[3460],{"type":49,"value":3461},"pow",{"type":43,"tag":197,"props":3463,"children":3464},{"style":294},[3465],{"type":49,"value":297},{"type":43,"tag":197,"props":3467,"children":3468},{"style":1163},[3469],{"type":49,"value":3470},"2",{"type":43,"tag":197,"props":3472,"children":3473},{"style":216},[3474],{"type":49,"value":614},{"type":43,"tag":197,"props":3476,"children":3477},{"style":210},[3478],{"type":49,"value":3203},{"type":43,"tag":197,"props":3480,"children":3481},{"style":294},[3482],{"type":49,"value":379},{"type":43,"tag":197,"props":3484,"children":3485},{"style":216},[3486],{"type":49,"value":3487},"*",{"type":43,"tag":197,"props":3489,"children":3490},{"style":1163},[3491],{"type":49,"value":1166},{"type":43,"tag":197,"props":3493,"children":3494},{"style":294},[3495],{"type":49,"value":2734},{"type":43,"tag":197,"props":3497,"children":3498},{"style":216},[3499],{"type":49,"value":331},{"type":43,"tag":197,"props":3501,"children":3502},{"class":199,"line":897},[3503],{"type":43,"tag":197,"props":3504,"children":3505},{"style":216},[3506],{"type":49,"value":2853},{"type":43,"tag":197,"props":3508,"children":3509},{"class":199,"line":939},[3510],{"type":43,"tag":197,"props":3511,"children":3512},{"style":216},[3513],{"type":49,"value":454},{"type":43,"tag":197,"props":3515,"children":3516},{"class":199,"line":947},[3517],{"type":43,"tag":197,"props":3518,"children":3519},{"style":216},[3520],{"type":49,"value":502},{"type":43,"tag":990,"props":3522,"children":3523},{},[],{"type":43,"tag":171,"props":3525,"children":3527},{"id":3526},"_4-authentication",[3528],{"type":49,"value":3529},"4. Authentication",{"type":43,"tag":52,"props":3531,"children":3532},{},[3533,3538],{"type":43,"tag":56,"props":3534,"children":3535},{},[3536],{"type":49,"value":3537},"Token management",{"type":49,"value":186},{"type":43,"tag":74,"props":3540,"children":3542},{"className":189,"code":3541,"language":191,"meta":83,"style":83},"import * as SecureStore from \"expo-secure-store\";\n\nconst TOKEN_KEY = \"auth_token\";\n\nexport const auth = {\n  getToken: () => SecureStore.getItemAsync(TOKEN_KEY),\n  setToken: (token: string) => SecureStore.setItemAsync(TOKEN_KEY, token),\n  removeToken: () => SecureStore.deleteItemAsync(TOKEN_KEY),\n};\n\n\u002F\u002F Authenticated fetch wrapper\nconst authFetch = async (url: string, options: RequestInit = {}) => {\n  const token = await auth.getToken();\n\n  return fetch(url, {\n    ...options,\n    headers: {\n      ...options.headers,\n      Authorization: token ? `Bearer ${token}` : \"\",\n    },\n  });\n};\n",[3543],{"type":43,"tag":81,"props":3544,"children":3545},{"__ignoreMap":83},[3546,3589,3596,3629,3636,3661,3704,3771,3812,3819,3826,3834,3903,3945,3952,3979,3996,4011,4036,4090,4097,4112],{"type":43,"tag":197,"props":3547,"children":3548},{"class":199,"line":200},[3549,3553,3557,3562,3567,3572,3576,3581,3585],{"type":43,"tag":197,"props":3550,"children":3551},{"style":282},[3552],{"type":49,"value":1031},{"type":43,"tag":197,"props":3554,"children":3555},{"style":216},[3556],{"type":49,"value":1171},{"type":43,"tag":197,"props":3558,"children":3559},{"style":282},[3560],{"type":49,"value":3561}," as",{"type":43,"tag":197,"props":3563,"children":3564},{"style":210},[3565],{"type":49,"value":3566}," SecureStore ",{"type":43,"tag":197,"props":3568,"children":3569},{"style":282},[3570],{"type":49,"value":3571},"from",{"type":43,"tag":197,"props":3573,"children":3574},{"style":216},[3575],{"type":49,"value":635},{"type":43,"tag":197,"props":3577,"children":3578},{"style":305},[3579],{"type":49,"value":3580},"expo-secure-store",{"type":43,"tag":197,"props":3582,"children":3583},{"style":216},[3584],{"type":49,"value":600},{"type":43,"tag":197,"props":3586,"children":3587},{"style":216},[3588],{"type":49,"value":331},{"type":43,"tag":197,"props":3590,"children":3591},{"class":199,"line":263},[3592],{"type":43,"tag":197,"props":3593,"children":3594},{"emptyLinePlaceholder":338},[3595],{"type":49,"value":341},{"type":43,"tag":197,"props":3597,"children":3598},{"class":199,"line":334},[3599,3603,3608,3612,3616,3621,3625],{"type":43,"tag":197,"props":3600,"children":3601},{"style":204},[3602],{"type":49,"value":207},{"type":43,"tag":197,"props":3604,"children":3605},{"style":210},[3606],{"type":49,"value":3607}," TOKEN_KEY ",{"type":43,"tag":197,"props":3609,"children":3610},{"style":216},[3611],{"type":49,"value":219},{"type":43,"tag":197,"props":3613,"children":3614},{"style":216},[3615],{"type":49,"value":635},{"type":43,"tag":197,"props":3617,"children":3618},{"style":305},[3619],{"type":49,"value":3620},"auth_token",{"type":43,"tag":197,"props":3622,"children":3623},{"style":216},[3624],{"type":49,"value":600},{"type":43,"tag":197,"props":3626,"children":3627},{"style":216},[3628],{"type":49,"value":331},{"type":43,"tag":197,"props":3630,"children":3631},{"class":199,"line":344},[3632],{"type":43,"tag":197,"props":3633,"children":3634},{"emptyLinePlaceholder":338},[3635],{"type":49,"value":341},{"type":43,"tag":197,"props":3637,"children":3638},{"class":199,"line":387},[3639,3643,3648,3653,3657],{"type":43,"tag":197,"props":3640,"children":3641},{"style":282},[3642],{"type":49,"value":1261},{"type":43,"tag":197,"props":3644,"children":3645},{"style":204},[3646],{"type":49,"value":3647}," const",{"type":43,"tag":197,"props":3649,"children":3650},{"style":210},[3651],{"type":49,"value":3652}," auth ",{"type":43,"tag":197,"props":3654,"children":3655},{"style":216},[3656],{"type":49,"value":219},{"type":43,"tag":197,"props":3658,"children":3659},{"style":216},[3660],{"type":49,"value":260},{"type":43,"tag":197,"props":3662,"children":3663},{"class":199,"line":448},[3664,3669,3673,3677,3681,3686,3690,3695,3700],{"type":43,"tag":197,"props":3665,"children":3666},{"style":288},[3667],{"type":49,"value":3668},"  getToken",{"type":43,"tag":197,"props":3670,"children":3671},{"style":216},[3672],{"type":49,"value":186},{"type":43,"tag":197,"props":3674,"children":3675},{"style":216},[3676],{"type":49,"value":1628},{"type":43,"tag":197,"props":3678,"children":3679},{"style":204},[3680],{"type":49,"value":255},{"type":43,"tag":197,"props":3682,"children":3683},{"style":210},[3684],{"type":49,"value":3685}," SecureStore",{"type":43,"tag":197,"props":3687,"children":3688},{"style":216},[3689],{"type":49,"value":369},{"type":43,"tag":197,"props":3691,"children":3692},{"style":288},[3693],{"type":49,"value":3694},"getItemAsync",{"type":43,"tag":197,"props":3696,"children":3697},{"style":210},[3698],{"type":49,"value":3699},"(TOKEN_KEY)",{"type":43,"tag":197,"props":3701,"children":3702},{"style":216},[3703],{"type":49,"value":649},{"type":43,"tag":197,"props":3705,"children":3706},{"class":199,"line":457},[3707,3712,3716,3720,3724,3728,3732,3736,3740,3744,3748,3753,3758,3762,3767],{"type":43,"tag":197,"props":3708,"children":3709},{"style":288},[3710],{"type":49,"value":3711},"  setToken",{"type":43,"tag":197,"props":3713,"children":3714},{"style":216},[3715],{"type":49,"value":186},{"type":43,"tag":197,"props":3717,"children":3718},{"style":216},[3719],{"type":49,"value":229},{"type":43,"tag":197,"props":3721,"children":3722},{"style":232},[3723],{"type":49,"value":734},{"type":43,"tag":197,"props":3725,"children":3726},{"style":216},[3727],{"type":49,"value":186},{"type":43,"tag":197,"props":3729,"children":3730},{"style":242},[3731],{"type":49,"value":245},{"type":43,"tag":197,"props":3733,"children":3734},{"style":216},[3735],{"type":49,"value":250},{"type":43,"tag":197,"props":3737,"children":3738},{"style":204},[3739],{"type":49,"value":255},{"type":43,"tag":197,"props":3741,"children":3742},{"style":210},[3743],{"type":49,"value":3685},{"type":43,"tag":197,"props":3745,"children":3746},{"style":216},[3747],{"type":49,"value":369},{"type":43,"tag":197,"props":3749,"children":3750},{"style":288},[3751],{"type":49,"value":3752},"setItemAsync",{"type":43,"tag":197,"props":3754,"children":3755},{"style":210},[3756],{"type":49,"value":3757},"(TOKEN_KEY",{"type":43,"tag":197,"props":3759,"children":3760},{"style":216},[3761],{"type":49,"value":614},{"type":43,"tag":197,"props":3763,"children":3764},{"style":210},[3765],{"type":49,"value":3766}," token)",{"type":43,"tag":197,"props":3768,"children":3769},{"style":216},[3770],{"type":49,"value":649},{"type":43,"tag":197,"props":3772,"children":3773},{"class":199,"line":465},[3774,3779,3783,3787,3791,3795,3799,3804,3808],{"type":43,"tag":197,"props":3775,"children":3776},{"style":288},[3777],{"type":49,"value":3778},"  removeToken",{"type":43,"tag":197,"props":3780,"children":3781},{"style":216},[3782],{"type":49,"value":186},{"type":43,"tag":197,"props":3784,"children":3785},{"style":216},[3786],{"type":49,"value":1628},{"type":43,"tag":197,"props":3788,"children":3789},{"style":204},[3790],{"type":49,"value":255},{"type":43,"tag":197,"props":3792,"children":3793},{"style":210},[3794],{"type":49,"value":3685},{"type":43,"tag":197,"props":3796,"children":3797},{"style":216},[3798],{"type":49,"value":369},{"type":43,"tag":197,"props":3800,"children":3801},{"style":288},[3802],{"type":49,"value":3803},"deleteItemAsync",{"type":43,"tag":197,"props":3805,"children":3806},{"style":210},[3807],{"type":49,"value":3699},{"type":43,"tag":197,"props":3809,"children":3810},{"style":216},[3811],{"type":49,"value":649},{"type":43,"tag":197,"props":3813,"children":3814},{"class":199,"line":496},[3815],{"type":43,"tag":197,"props":3816,"children":3817},{"style":216},[3818],{"type":49,"value":502},{"type":43,"tag":197,"props":3820,"children":3821},{"class":199,"line":811},[3822],{"type":43,"tag":197,"props":3823,"children":3824},{"emptyLinePlaceholder":338},[3825],{"type":49,"value":341},{"type":43,"tag":197,"props":3827,"children":3828},{"class":199,"line":819},[3829],{"type":43,"tag":197,"props":3830,"children":3831},{"style":1020},[3832],{"type":49,"value":3833},"\u002F\u002F Authenticated fetch wrapper\n",{"type":43,"tag":197,"props":3835,"children":3836},{"class":199,"line":855},[3837,3841,3846,3850,3854,3858,3862,3866,3870,3874,3878,3882,3886,3890,3895,3899],{"type":43,"tag":197,"props":3838,"children":3839},{"style":204},[3840],{"type":49,"value":207},{"type":43,"tag":197,"props":3842,"children":3843},{"style":210},[3844],{"type":49,"value":3845}," authFetch ",{"type":43,"tag":197,"props":3847,"children":3848},{"style":216},[3849],{"type":49,"value":219},{"type":43,"tag":197,"props":3851,"children":3852},{"style":204},[3853],{"type":49,"value":224},{"type":43,"tag":197,"props":3855,"children":3856},{"style":216},[3857],{"type":49,"value":229},{"type":43,"tag":197,"props":3859,"children":3860},{"style":232},[3861],{"type":49,"value":2523},{"type":43,"tag":197,"props":3863,"children":3864},{"style":216},[3865],{"type":49,"value":186},{"type":43,"tag":197,"props":3867,"children":3868},{"style":242},[3869],{"type":49,"value":245},{"type":43,"tag":197,"props":3871,"children":3872},{"style":216},[3873],{"type":49,"value":614},{"type":43,"tag":197,"props":3875,"children":3876},{"style":232},[3877],{"type":49,"value":2540},{"type":43,"tag":197,"props":3879,"children":3880},{"style":216},[3881],{"type":49,"value":186},{"type":43,"tag":197,"props":3883,"children":3884},{"style":242},[3885],{"type":49,"value":2549},{"type":43,"tag":197,"props":3887,"children":3888},{"style":216},[3889],{"type":49,"value":279},{"type":43,"tag":197,"props":3891,"children":3892},{"style":216},[3893],{"type":49,"value":3894}," {})",{"type":43,"tag":197,"props":3896,"children":3897},{"style":204},[3898],{"type":49,"value":255},{"type":43,"tag":197,"props":3900,"children":3901},{"style":216},[3902],{"type":49,"value":260},{"type":43,"tag":197,"props":3904,"children":3905},{"class":199,"line":897},[3906,3910,3915,3919,3923,3928,3932,3937,3941],{"type":43,"tag":197,"props":3907,"children":3908},{"style":204},[3909],{"type":49,"value":269},{"type":43,"tag":197,"props":3911,"children":3912},{"style":210},[3913],{"type":49,"value":3914}," token",{"type":43,"tag":197,"props":3916,"children":3917},{"style":216},[3918],{"type":49,"value":279},{"type":43,"tag":197,"props":3920,"children":3921},{"style":282},[3922],{"type":49,"value":285},{"type":43,"tag":197,"props":3924,"children":3925},{"style":210},[3926],{"type":49,"value":3927}," auth",{"type":43,"tag":197,"props":3929,"children":3930},{"style":216},[3931],{"type":49,"value":369},{"type":43,"tag":197,"props":3933,"children":3934},{"style":288},[3935],{"type":49,"value":3936},"getToken",{"type":43,"tag":197,"props":3938,"children":3939},{"style":294},[3940],{"type":49,"value":489},{"type":43,"tag":197,"props":3942,"children":3943},{"style":216},[3944],{"type":49,"value":331},{"type":43,"tag":197,"props":3946,"children":3947},{"class":199,"line":939},[3948],{"type":43,"tag":197,"props":3949,"children":3950},{"emptyLinePlaceholder":338},[3951],{"type":49,"value":341},{"type":43,"tag":197,"props":3953,"children":3954},{"class":199,"line":947},[3955,3959,3963,3967,3971,3975],{"type":43,"tag":197,"props":3956,"children":3957},{"style":282},[3958],{"type":49,"value":471},{"type":43,"tag":197,"props":3960,"children":3961},{"style":288},[3962],{"type":49,"value":291},{"type":43,"tag":197,"props":3964,"children":3965},{"style":294},[3966],{"type":49,"value":297},{"type":43,"tag":197,"props":3968,"children":3969},{"style":210},[3970],{"type":49,"value":2523},{"type":43,"tag":197,"props":3972,"children":3973},{"style":216},[3974],{"type":49,"value":614},{"type":43,"tag":197,"props":3976,"children":3977},{"style":216},[3978],{"type":49,"value":260},{"type":43,"tag":197,"props":3980,"children":3981},{"class":199,"line":955},[3982,3987,3992],{"type":43,"tag":197,"props":3983,"children":3984},{"style":216},[3985],{"type":49,"value":3986},"    ...",{"type":43,"tag":197,"props":3988,"children":3989},{"style":210},[3990],{"type":49,"value":3991},"options",{"type":43,"tag":197,"props":3993,"children":3994},{"style":216},[3995],{"type":49,"value":649},{"type":43,"tag":197,"props":3997,"children":3998},{"class":199,"line":983},[3999,4003,4007],{"type":43,"tag":197,"props":4000,"children":4001},{"style":294},[4002],{"type":49,"value":657},{"type":43,"tag":197,"props":4004,"children":4005},{"style":216},[4006],{"type":49,"value":186},{"type":43,"tag":197,"props":4008,"children":4009},{"style":216},[4010],{"type":49,"value":260},{"type":43,"tag":197,"props":4012,"children":4013},{"class":199,"line":1367},[4014,4019,4023,4027,4032],{"type":43,"tag":197,"props":4015,"children":4016},{"style":216},[4017],{"type":49,"value":4018},"      ...",{"type":43,"tag":197,"props":4020,"children":4021},{"style":210},[4022],{"type":49,"value":3991},{"type":43,"tag":197,"props":4024,"children":4025},{"style":216},[4026],{"type":49,"value":369},{"type":43,"tag":197,"props":4028,"children":4029},{"style":210},[4030],{"type":49,"value":4031},"headers",{"type":43,"tag":197,"props":4033,"children":4034},{"style":216},[4035],{"type":49,"value":649},{"type":43,"tag":197,"props":4037,"children":4038},{"class":199,"line":1380},[4039,4043,4047,4051,4056,4060,4064,4068,4072,4076,4081,4086],{"type":43,"tag":197,"props":4040,"children":4041},{"style":294},[4042],{"type":49,"value":711},{"type":43,"tag":197,"props":4044,"children":4045},{"style":216},[4046],{"type":49,"value":186},{"type":43,"tag":197,"props":4048,"children":4049},{"style":210},[4050],{"type":49,"value":3914},{"type":43,"tag":197,"props":4052,"children":4053},{"style":216},[4054],{"type":49,"value":4055}," ?",{"type":43,"tag":197,"props":4057,"children":4058},{"style":216},[4059],{"type":49,"value":720},{"type":43,"tag":197,"props":4061,"children":4062},{"style":305},[4063],{"type":49,"value":725},{"type":43,"tag":197,"props":4065,"children":4066},{"style":216},[4067],{"type":49,"value":313},{"type":43,"tag":197,"props":4069,"children":4070},{"style":210},[4071],{"type":49,"value":734},{"type":43,"tag":197,"props":4073,"children":4074},{"style":216},[4075],{"type":49,"value":322},{"type":43,"tag":197,"props":4077,"children":4078},{"style":216},[4079],{"type":49,"value":4080}," :",{"type":43,"tag":197,"props":4082,"children":4083},{"style":216},[4084],{"type":49,"value":4085}," \"\"",{"type":43,"tag":197,"props":4087,"children":4088},{"style":216},[4089],{"type":49,"value":649},{"type":43,"tag":197,"props":4091,"children":4092},{"class":199,"line":2856},[4093],{"type":43,"tag":197,"props":4094,"children":4095},{"style":216},[4096],{"type":49,"value":750},{"type":43,"tag":197,"props":4098,"children":4099},{"class":199,"line":2864},[4100,4104,4108],{"type":43,"tag":197,"props":4101,"children":4102},{"style":216},[4103],{"type":49,"value":800},{"type":43,"tag":197,"props":4105,"children":4106},{"style":294},[4107],{"type":49,"value":250},{"type":43,"tag":197,"props":4109,"children":4110},{"style":216},[4111],{"type":49,"value":331},{"type":43,"tag":197,"props":4113,"children":4114},{"class":199,"line":2893},[4115],{"type":43,"tag":197,"props":4116,"children":4117},{"style":216},[4118],{"type":49,"value":502},{"type":43,"tag":52,"props":4120,"children":4121},{},[4122,4127],{"type":43,"tag":56,"props":4123,"children":4124},{},[4125],{"type":49,"value":4126},"Token refresh",{"type":49,"value":186},{"type":43,"tag":74,"props":4129,"children":4131},{"className":189,"code":4130,"language":191,"meta":83,"style":83},"let isRefreshing = false;\nlet refreshPromise: Promise\u003Cstring> | null = null;\n\nconst getValidToken = async (): Promise\u003Cstring> => {\n  const token = await auth.getToken();\n\n  if (!token || isTokenExpired(token)) {\n    if (!isRefreshing) {\n      isRefreshing = true;\n      refreshPromise = refreshToken().finally(() => {\n        isRefreshing = false;\n        refreshPromise = null;\n      });\n    }\n    return refreshPromise!;\n  }\n\n  return token;\n};\n",[4132],{"type":43,"tag":81,"props":4133,"children":4134},{"__ignoreMap":83},[4135,4161,4215,4222,4271,4310,4317,4362,4390,4411,4457,4477,4493,4509,4516,4532,4539,4546,4561],{"type":43,"tag":197,"props":4136,"children":4137},{"class":199,"line":200},[4138,4142,4147,4151,4157],{"type":43,"tag":197,"props":4139,"children":4140},{"style":204},[4141],{"type":49,"value":3198},{"type":43,"tag":197,"props":4143,"children":4144},{"style":210},[4145],{"type":49,"value":4146}," isRefreshing ",{"type":43,"tag":197,"props":4148,"children":4149},{"style":216},[4150],{"type":49,"value":219},{"type":43,"tag":197,"props":4152,"children":4154},{"style":4153},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[4155],{"type":49,"value":4156}," false",{"type":43,"tag":197,"props":4158,"children":4159},{"style":216},[4160],{"type":49,"value":331},{"type":43,"tag":197,"props":4162,"children":4163},{"class":199,"line":263},[4164,4168,4173,4177,4181,4186,4191,4196,4201,4206,4210],{"type":43,"tag":197,"props":4165,"children":4166},{"style":204},[4167],{"type":49,"value":3198},{"type":43,"tag":197,"props":4169,"children":4170},{"style":210},[4171],{"type":49,"value":4172}," refreshPromise",{"type":43,"tag":197,"props":4174,"children":4175},{"style":216},[4176],{"type":49,"value":186},{"type":43,"tag":197,"props":4178,"children":4179},{"style":242},[4180],{"type":49,"value":3409},{"type":43,"tag":197,"props":4182,"children":4183},{"style":216},[4184],{"type":49,"value":4185},"\u003C",{"type":43,"tag":197,"props":4187,"children":4188},{"style":242},[4189],{"type":49,"value":4190},"string",{"type":43,"tag":197,"props":4192,"children":4193},{"style":216},[4194],{"type":49,"value":4195},">",{"type":43,"tag":197,"props":4197,"children":4198},{"style":216},[4199],{"type":49,"value":4200}," |",{"type":43,"tag":197,"props":4202,"children":4203},{"style":242},[4204],{"type":49,"value":4205}," null",{"type":43,"tag":197,"props":4207,"children":4208},{"style":216},[4209],{"type":49,"value":279},{"type":43,"tag":197,"props":4211,"children":4212},{"style":216},[4213],{"type":49,"value":4214}," null;\n",{"type":43,"tag":197,"props":4216,"children":4217},{"class":199,"line":334},[4218],{"type":43,"tag":197,"props":4219,"children":4220},{"emptyLinePlaceholder":338},[4221],{"type":49,"value":341},{"type":43,"tag":197,"props":4223,"children":4224},{"class":199,"line":344},[4225,4229,4234,4238,4242,4247,4251,4255,4259,4263,4267],{"type":43,"tag":197,"props":4226,"children":4227},{"style":204},[4228],{"type":49,"value":207},{"type":43,"tag":197,"props":4230,"children":4231},{"style":210},[4232],{"type":49,"value":4233}," getValidToken ",{"type":43,"tag":197,"props":4235,"children":4236},{"style":216},[4237],{"type":49,"value":219},{"type":43,"tag":197,"props":4239,"children":4240},{"style":204},[4241],{"type":49,"value":224},{"type":43,"tag":197,"props":4243,"children":4244},{"style":216},[4245],{"type":49,"value":4246}," ():",{"type":43,"tag":197,"props":4248,"children":4249},{"style":242},[4250],{"type":49,"value":3409},{"type":43,"tag":197,"props":4252,"children":4253},{"style":216},[4254],{"type":49,"value":4185},{"type":43,"tag":197,"props":4256,"children":4257},{"style":242},[4258],{"type":49,"value":4190},{"type":43,"tag":197,"props":4260,"children":4261},{"style":216},[4262],{"type":49,"value":4195},{"type":43,"tag":197,"props":4264,"children":4265},{"style":204},[4266],{"type":49,"value":255},{"type":43,"tag":197,"props":4268,"children":4269},{"style":216},[4270],{"type":49,"value":260},{"type":43,"tag":197,"props":4272,"children":4273},{"class":199,"line":387},[4274,4278,4282,4286,4290,4294,4298,4302,4306],{"type":43,"tag":197,"props":4275,"children":4276},{"style":204},[4277],{"type":49,"value":269},{"type":43,"tag":197,"props":4279,"children":4280},{"style":210},[4281],{"type":49,"value":3914},{"type":43,"tag":197,"props":4283,"children":4284},{"style":216},[4285],{"type":49,"value":279},{"type":43,"tag":197,"props":4287,"children":4288},{"style":282},[4289],{"type":49,"value":285},{"type":43,"tag":197,"props":4291,"children":4292},{"style":210},[4293],{"type":49,"value":3927},{"type":43,"tag":197,"props":4295,"children":4296},{"style":216},[4297],{"type":49,"value":369},{"type":43,"tag":197,"props":4299,"children":4300},{"style":288},[4301],{"type":49,"value":3936},{"type":43,"tag":197,"props":4303,"children":4304},{"style":294},[4305],{"type":49,"value":489},{"type":43,"tag":197,"props":4307,"children":4308},{"style":216},[4309],{"type":49,"value":331},{"type":43,"tag":197,"props":4311,"children":4312},{"class":199,"line":448},[4313],{"type":43,"tag":197,"props":4314,"children":4315},{"emptyLinePlaceholder":338},[4316],{"type":49,"value":341},{"type":43,"tag":197,"props":4318,"children":4319},{"class":199,"line":457},[4320,4324,4328,4332,4336,4340,4345,4349,4353,4358],{"type":43,"tag":197,"props":4321,"children":4322},{"style":282},[4323],{"type":49,"value":350},{"type":43,"tag":197,"props":4325,"children":4326},{"style":294},[4327],{"type":49,"value":229},{"type":43,"tag":197,"props":4329,"children":4330},{"style":216},[4331],{"type":49,"value":359},{"type":43,"tag":197,"props":4333,"children":4334},{"style":210},[4335],{"type":49,"value":734},{"type":43,"tag":197,"props":4337,"children":4338},{"style":216},[4339],{"type":49,"value":2780},{"type":43,"tag":197,"props":4341,"children":4342},{"style":288},[4343],{"type":49,"value":4344}," isTokenExpired",{"type":43,"tag":197,"props":4346,"children":4347},{"style":294},[4348],{"type":49,"value":297},{"type":43,"tag":197,"props":4350,"children":4351},{"style":210},[4352],{"type":49,"value":734},{"type":43,"tag":197,"props":4354,"children":4355},{"style":294},[4356],{"type":49,"value":4357},")) ",{"type":43,"tag":197,"props":4359,"children":4360},{"style":216},[4361],{"type":49,"value":384},{"type":43,"tag":197,"props":4363,"children":4364},{"class":199,"line":465},[4365,4369,4373,4377,4382,4386],{"type":43,"tag":197,"props":4366,"children":4367},{"style":282},[4368],{"type":49,"value":2635},{"type":43,"tag":197,"props":4370,"children":4371},{"style":294},[4372],{"type":49,"value":229},{"type":43,"tag":197,"props":4374,"children":4375},{"style":216},[4376],{"type":49,"value":359},{"type":43,"tag":197,"props":4378,"children":4379},{"style":210},[4380],{"type":49,"value":4381},"isRefreshing",{"type":43,"tag":197,"props":4383,"children":4384},{"style":294},[4385],{"type":49,"value":379},{"type":43,"tag":197,"props":4387,"children":4388},{"style":216},[4389],{"type":49,"value":384},{"type":43,"tag":197,"props":4391,"children":4392},{"class":199,"line":496},[4393,4398,4402,4407],{"type":43,"tag":197,"props":4394,"children":4395},{"style":210},[4396],{"type":49,"value":4397},"      isRefreshing",{"type":43,"tag":197,"props":4399,"children":4400},{"style":216},[4401],{"type":49,"value":279},{"type":43,"tag":197,"props":4403,"children":4404},{"style":4153},[4405],{"type":49,"value":4406}," true",{"type":43,"tag":197,"props":4408,"children":4409},{"style":216},[4410],{"type":49,"value":331},{"type":43,"tag":197,"props":4412,"children":4413},{"class":199,"line":811},[4414,4419,4423,4428,4432,4436,4441,4445,4449,4453],{"type":43,"tag":197,"props":4415,"children":4416},{"style":210},[4417],{"type":49,"value":4418},"      refreshPromise",{"type":43,"tag":197,"props":4420,"children":4421},{"style":216},[4422],{"type":49,"value":279},{"type":43,"tag":197,"props":4424,"children":4425},{"style":288},[4426],{"type":49,"value":4427}," refreshToken",{"type":43,"tag":197,"props":4429,"children":4430},{"style":294},[4431],{"type":49,"value":489},{"type":43,"tag":197,"props":4433,"children":4434},{"style":216},[4435],{"type":49,"value":369},{"type":43,"tag":197,"props":4437,"children":4438},{"style":288},[4439],{"type":49,"value":4440},"finally",{"type":43,"tag":197,"props":4442,"children":4443},{"style":294},[4444],{"type":49,"value":297},{"type":43,"tag":197,"props":4446,"children":4447},{"style":216},[4448],{"type":49,"value":489},{"type":43,"tag":197,"props":4450,"children":4451},{"style":204},[4452],{"type":49,"value":255},{"type":43,"tag":197,"props":4454,"children":4455},{"style":216},[4456],{"type":49,"value":260},{"type":43,"tag":197,"props":4458,"children":4459},{"class":199,"line":819},[4460,4465,4469,4473],{"type":43,"tag":197,"props":4461,"children":4462},{"style":210},[4463],{"type":49,"value":4464},"        isRefreshing",{"type":43,"tag":197,"props":4466,"children":4467},{"style":216},[4468],{"type":49,"value":279},{"type":43,"tag":197,"props":4470,"children":4471},{"style":4153},[4472],{"type":49,"value":4156},{"type":43,"tag":197,"props":4474,"children":4475},{"style":216},[4476],{"type":49,"value":331},{"type":43,"tag":197,"props":4478,"children":4479},{"class":199,"line":855},[4480,4485,4489],{"type":43,"tag":197,"props":4481,"children":4482},{"style":210},[4483],{"type":49,"value":4484},"        refreshPromise",{"type":43,"tag":197,"props":4486,"children":4487},{"style":216},[4488],{"type":49,"value":279},{"type":43,"tag":197,"props":4490,"children":4491},{"style":216},[4492],{"type":49,"value":4214},{"type":43,"tag":197,"props":4494,"children":4495},{"class":199,"line":897},[4496,4501,4505],{"type":43,"tag":197,"props":4497,"children":4498},{"style":216},[4499],{"type":49,"value":4500},"      }",{"type":43,"tag":197,"props":4502,"children":4503},{"style":294},[4504],{"type":49,"value":250},{"type":43,"tag":197,"props":4506,"children":4507},{"style":216},[4508],{"type":49,"value":331},{"type":43,"tag":197,"props":4510,"children":4511},{"class":199,"line":939},[4512],{"type":43,"tag":197,"props":4513,"children":4514},{"style":216},[4515],{"type":49,"value":2853},{"type":43,"tag":197,"props":4517,"children":4518},{"class":199,"line":947},[4519,4523,4527],{"type":43,"tag":197,"props":4520,"children":4521},{"style":282},[4522],{"type":49,"value":2870},{"type":43,"tag":197,"props":4524,"children":4525},{"style":210},[4526],{"type":49,"value":4172},{"type":43,"tag":197,"props":4528,"children":4529},{"style":216},[4530],{"type":49,"value":4531},"!;\n",{"type":43,"tag":197,"props":4533,"children":4534},{"class":199,"line":955},[4535],{"type":43,"tag":197,"props":4536,"children":4537},{"style":216},[4538],{"type":49,"value":454},{"type":43,"tag":197,"props":4540,"children":4541},{"class":199,"line":983},[4542],{"type":43,"tag":197,"props":4543,"children":4544},{"emptyLinePlaceholder":338},[4545],{"type":49,"value":341},{"type":43,"tag":197,"props":4547,"children":4548},{"class":199,"line":1367},[4549,4553,4557],{"type":43,"tag":197,"props":4550,"children":4551},{"style":282},[4552],{"type":49,"value":471},{"type":43,"tag":197,"props":4554,"children":4555},{"style":210},[4556],{"type":49,"value":3914},{"type":43,"tag":197,"props":4558,"children":4559},{"style":216},[4560],{"type":49,"value":331},{"type":43,"tag":197,"props":4562,"children":4563},{"class":199,"line":1380},[4564],{"type":43,"tag":197,"props":4565,"children":4566},{"style":216},[4567],{"type":49,"value":502},{"type":43,"tag":990,"props":4569,"children":4570},{},[],{"type":43,"tag":171,"props":4572,"children":4574},{"id":4573},"_5-offline-support",[4575],{"type":49,"value":4576},"5. Offline Support",{"type":43,"tag":52,"props":4578,"children":4579},{},[4580,4585],{"type":43,"tag":56,"props":4581,"children":4582},{},[4583],{"type":49,"value":4584},"Check network status",{"type":49,"value":186},{"type":43,"tag":74,"props":4587,"children":4589},{"className":189,"code":4588,"language":191,"meta":83,"style":83},"import NetInfo from \"@react-native-community\u002Fnetinfo\";\n\n\u002F\u002F Hook for network status\nfunction useNetworkStatus() {\n  const [isOnline, setIsOnline] = useState(true);\n\n  useEffect(() => {\n    return NetInfo.addEventListener((state) => {\n      setIsOnline(state.isConnected ?? true);\n    });\n  }, []);\n\n  return isOnline;\n}\n",[4590],{"type":43,"tag":81,"props":4591,"children":4592},{"__ignoreMap":83},[4593,4626,4633,4641,4661,4716,4723,4747,4793,4835,4850,4867,4874,4890],{"type":43,"tag":197,"props":4594,"children":4595},{"class":199,"line":200},[4596,4600,4605,4609,4613,4618,4622],{"type":43,"tag":197,"props":4597,"children":4598},{"style":282},[4599],{"type":49,"value":1031},{"type":43,"tag":197,"props":4601,"children":4602},{"style":210},[4603],{"type":49,"value":4604}," NetInfo ",{"type":43,"tag":197,"props":4606,"children":4607},{"style":282},[4608],{"type":49,"value":3571},{"type":43,"tag":197,"props":4610,"children":4611},{"style":216},[4612],{"type":49,"value":635},{"type":43,"tag":197,"props":4614,"children":4615},{"style":305},[4616],{"type":49,"value":4617},"@react-native-community\u002Fnetinfo",{"type":43,"tag":197,"props":4619,"children":4620},{"style":216},[4621],{"type":49,"value":600},{"type":43,"tag":197,"props":4623,"children":4624},{"style":216},[4625],{"type":49,"value":331},{"type":43,"tag":197,"props":4627,"children":4628},{"class":199,"line":263},[4629],{"type":43,"tag":197,"props":4630,"children":4631},{"emptyLinePlaceholder":338},[4632],{"type":49,"value":341},{"type":43,"tag":197,"props":4634,"children":4635},{"class":199,"line":334},[4636],{"type":43,"tag":197,"props":4637,"children":4638},{"style":1020},[4639],{"type":49,"value":4640},"\u002F\u002F Hook for network status\n",{"type":43,"tag":197,"props":4642,"children":4643},{"class":199,"line":344},[4644,4648,4653,4657],{"type":43,"tag":197,"props":4645,"children":4646},{"style":204},[4647],{"type":49,"value":1457},{"type":43,"tag":197,"props":4649,"children":4650},{"style":288},[4651],{"type":49,"value":4652}," useNetworkStatus",{"type":43,"tag":197,"props":4654,"children":4655},{"style":216},[4656],{"type":49,"value":489},{"type":43,"tag":197,"props":4658,"children":4659},{"style":216},[4660],{"type":49,"value":260},{"type":43,"tag":197,"props":4662,"children":4663},{"class":199,"line":387},[4664,4668,4672,4677,4681,4686,4690,4694,4699,4703,4708,4712],{"type":43,"tag":197,"props":4665,"children":4666},{"style":204},[4667],{"type":49,"value":269},{"type":43,"tag":197,"props":4669,"children":4670},{"style":216},[4671],{"type":49,"value":1581},{"type":43,"tag":197,"props":4673,"children":4674},{"style":210},[4675],{"type":49,"value":4676},"isOnline",{"type":43,"tag":197,"props":4678,"children":4679},{"style":216},[4680],{"type":49,"value":614},{"type":43,"tag":197,"props":4682,"children":4683},{"style":210},[4684],{"type":49,"value":4685}," setIsOnline",{"type":43,"tag":197,"props":4687,"children":4688},{"style":216},[4689],{"type":49,"value":1607},{"type":43,"tag":197,"props":4691,"children":4692},{"style":216},[4693],{"type":49,"value":279},{"type":43,"tag":197,"props":4695,"children":4696},{"style":288},[4697],{"type":49,"value":4698}," useState",{"type":43,"tag":197,"props":4700,"children":4701},{"style":294},[4702],{"type":49,"value":297},{"type":43,"tag":197,"props":4704,"children":4705},{"style":4153},[4706],{"type":49,"value":4707},"true",{"type":43,"tag":197,"props":4709,"children":4710},{"style":294},[4711],{"type":49,"value":250},{"type":43,"tag":197,"props":4713,"children":4714},{"style":216},[4715],{"type":49,"value":331},{"type":43,"tag":197,"props":4717,"children":4718},{"class":199,"line":448},[4719],{"type":43,"tag":197,"props":4720,"children":4721},{"emptyLinePlaceholder":338},[4722],{"type":49,"value":341},{"type":43,"tag":197,"props":4724,"children":4725},{"class":199,"line":457},[4726,4731,4735,4739,4743],{"type":43,"tag":197,"props":4727,"children":4728},{"style":288},[4729],{"type":49,"value":4730},"  useEffect",{"type":43,"tag":197,"props":4732,"children":4733},{"style":294},[4734],{"type":49,"value":297},{"type":43,"tag":197,"props":4736,"children":4737},{"style":216},[4738],{"type":49,"value":489},{"type":43,"tag":197,"props":4740,"children":4741},{"style":204},[4742],{"type":49,"value":255},{"type":43,"tag":197,"props":4744,"children":4745},{"style":216},[4746],{"type":49,"value":260},{"type":43,"tag":197,"props":4748,"children":4749},{"class":199,"line":465},[4750,4754,4759,4763,4768,4772,4776,4781,4785,4789],{"type":43,"tag":197,"props":4751,"children":4752},{"style":282},[4753],{"type":49,"value":2870},{"type":43,"tag":197,"props":4755,"children":4756},{"style":210},[4757],{"type":49,"value":4758}," NetInfo",{"type":43,"tag":197,"props":4760,"children":4761},{"style":216},[4762],{"type":49,"value":369},{"type":43,"tag":197,"props":4764,"children":4765},{"style":288},[4766],{"type":49,"value":4767},"addEventListener",{"type":43,"tag":197,"props":4769,"children":4770},{"style":294},[4771],{"type":49,"value":297},{"type":43,"tag":197,"props":4773,"children":4774},{"style":216},[4775],{"type":49,"value":297},{"type":43,"tag":197,"props":4777,"children":4778},{"style":232},[4779],{"type":49,"value":4780},"state",{"type":43,"tag":197,"props":4782,"children":4783},{"style":216},[4784],{"type":49,"value":250},{"type":43,"tag":197,"props":4786,"children":4787},{"style":204},[4788],{"type":49,"value":255},{"type":43,"tag":197,"props":4790,"children":4791},{"style":216},[4792],{"type":49,"value":260},{"type":43,"tag":197,"props":4794,"children":4795},{"class":199,"line":496},[4796,4801,4805,4809,4813,4818,4823,4827,4831],{"type":43,"tag":197,"props":4797,"children":4798},{"style":288},[4799],{"type":49,"value":4800},"      setIsOnline",{"type":43,"tag":197,"props":4802,"children":4803},{"style":294},[4804],{"type":49,"value":297},{"type":43,"tag":197,"props":4806,"children":4807},{"style":210},[4808],{"type":49,"value":4780},{"type":43,"tag":197,"props":4810,"children":4811},{"style":216},[4812],{"type":49,"value":369},{"type":43,"tag":197,"props":4814,"children":4815},{"style":210},[4816],{"type":49,"value":4817},"isConnected",{"type":43,"tag":197,"props":4819,"children":4820},{"style":216},[4821],{"type":49,"value":4822}," ??",{"type":43,"tag":197,"props":4824,"children":4825},{"style":4153},[4826],{"type":49,"value":4406},{"type":43,"tag":197,"props":4828,"children":4829},{"style":294},[4830],{"type":49,"value":250},{"type":43,"tag":197,"props":4832,"children":4833},{"style":216},[4834],{"type":49,"value":331},{"type":43,"tag":197,"props":4836,"children":4837},{"class":199,"line":811},[4838,4842,4846],{"type":43,"tag":197,"props":4839,"children":4840},{"style":216},[4841],{"type":49,"value":3311},{"type":43,"tag":197,"props":4843,"children":4844},{"style":294},[4845],{"type":49,"value":250},{"type":43,"tag":197,"props":4847,"children":4848},{"style":216},[4849],{"type":49,"value":331},{"type":43,"tag":197,"props":4851,"children":4852},{"class":199,"line":819},[4853,4858,4863],{"type":43,"tag":197,"props":4854,"children":4855},{"style":216},[4856],{"type":49,"value":4857},"  },",{"type":43,"tag":197,"props":4859,"children":4860},{"style":294},[4861],{"type":49,"value":4862}," [])",{"type":43,"tag":197,"props":4864,"children":4865},{"style":216},[4866],{"type":49,"value":331},{"type":43,"tag":197,"props":4868,"children":4869},{"class":199,"line":855},[4870],{"type":43,"tag":197,"props":4871,"children":4872},{"emptyLinePlaceholder":338},[4873],{"type":49,"value":341},{"type":43,"tag":197,"props":4875,"children":4876},{"class":199,"line":897},[4877,4881,4886],{"type":43,"tag":197,"props":4878,"children":4879},{"style":282},[4880],{"type":49,"value":471},{"type":43,"tag":197,"props":4882,"children":4883},{"style":210},[4884],{"type":49,"value":4885}," isOnline",{"type":43,"tag":197,"props":4887,"children":4888},{"style":216},[4889],{"type":49,"value":331},{"type":43,"tag":197,"props":4891,"children":4892},{"class":199,"line":939},[4893],{"type":43,"tag":197,"props":4894,"children":4895},{"style":216},[4896],{"type":49,"value":1386},{"type":43,"tag":52,"props":4898,"children":4899},{},[4900,4905],{"type":43,"tag":56,"props":4901,"children":4902},{},[4903],{"type":49,"value":4904},"Offline-first with React Query",{"type":49,"value":186},{"type":43,"tag":74,"props":4907,"children":4909},{"className":189,"code":4908,"language":191,"meta":83,"style":83},"import { onlineManager } from \"@tanstack\u002Freact-query\";\nimport NetInfo from \"@react-native-community\u002Fnetinfo\";\n\n\u002F\u002F Sync React Query with network status\nonlineManager.setEventListener((setOnline) => {\n  return NetInfo.addEventListener((state) => {\n    setOnline(state.isConnected ?? true);\n  });\n});\n\n\u002F\u002F Queries will pause when offline and resume when online\n",[4910],{"type":43,"tag":81,"props":4911,"children":4912},{"__ignoreMap":83},[4913,4953,4984,4991,4999,5041,5084,5124,5139,5154,5161],{"type":43,"tag":197,"props":4914,"children":4915},{"class":199,"line":200},[4916,4920,4924,4929,4933,4937,4941,4945,4949],{"type":43,"tag":197,"props":4917,"children":4918},{"style":282},[4919],{"type":49,"value":1031},{"type":43,"tag":197,"props":4921,"children":4922},{"style":216},[4923],{"type":49,"value":1036},{"type":43,"tag":197,"props":4925,"children":4926},{"style":210},[4927],{"type":49,"value":4928}," onlineManager",{"type":43,"tag":197,"props":4930,"children":4931},{"style":216},[4932],{"type":49,"value":1055},{"type":43,"tag":197,"props":4934,"children":4935},{"style":282},[4936],{"type":49,"value":1060},{"type":43,"tag":197,"props":4938,"children":4939},{"style":216},[4940],{"type":49,"value":635},{"type":43,"tag":197,"props":4942,"children":4943},{"style":305},[4944],{"type":49,"value":1069},{"type":43,"tag":197,"props":4946,"children":4947},{"style":216},[4948],{"type":49,"value":600},{"type":43,"tag":197,"props":4950,"children":4951},{"style":216},[4952],{"type":49,"value":331},{"type":43,"tag":197,"props":4954,"children":4955},{"class":199,"line":263},[4956,4960,4964,4968,4972,4976,4980],{"type":43,"tag":197,"props":4957,"children":4958},{"style":282},[4959],{"type":49,"value":1031},{"type":43,"tag":197,"props":4961,"children":4962},{"style":210},[4963],{"type":49,"value":4604},{"type":43,"tag":197,"props":4965,"children":4966},{"style":282},[4967],{"type":49,"value":3571},{"type":43,"tag":197,"props":4969,"children":4970},{"style":216},[4971],{"type":49,"value":635},{"type":43,"tag":197,"props":4973,"children":4974},{"style":305},[4975],{"type":49,"value":4617},{"type":43,"tag":197,"props":4977,"children":4978},{"style":216},[4979],{"type":49,"value":600},{"type":43,"tag":197,"props":4981,"children":4982},{"style":216},[4983],{"type":49,"value":331},{"type":43,"tag":197,"props":4985,"children":4986},{"class":199,"line":334},[4987],{"type":43,"tag":197,"props":4988,"children":4989},{"emptyLinePlaceholder":338},[4990],{"type":49,"value":341},{"type":43,"tag":197,"props":4992,"children":4993},{"class":199,"line":344},[4994],{"type":43,"tag":197,"props":4995,"children":4996},{"style":1020},[4997],{"type":49,"value":4998},"\u002F\u002F Sync React Query with network status\n",{"type":43,"tag":197,"props":5000,"children":5001},{"class":199,"line":387},[5002,5007,5011,5016,5020,5024,5029,5033,5037],{"type":43,"tag":197,"props":5003,"children":5004},{"style":210},[5005],{"type":49,"value":5006},"onlineManager",{"type":43,"tag":197,"props":5008,"children":5009},{"style":216},[5010],{"type":49,"value":369},{"type":43,"tag":197,"props":5012,"children":5013},{"style":288},[5014],{"type":49,"value":5015},"setEventListener",{"type":43,"tag":197,"props":5017,"children":5018},{"style":210},[5019],{"type":49,"value":297},{"type":43,"tag":197,"props":5021,"children":5022},{"style":216},[5023],{"type":49,"value":297},{"type":43,"tag":197,"props":5025,"children":5026},{"style":232},[5027],{"type":49,"value":5028},"setOnline",{"type":43,"tag":197,"props":5030,"children":5031},{"style":216},[5032],{"type":49,"value":250},{"type":43,"tag":197,"props":5034,"children":5035},{"style":204},[5036],{"type":49,"value":255},{"type":43,"tag":197,"props":5038,"children":5039},{"style":216},[5040],{"type":49,"value":260},{"type":43,"tag":197,"props":5042,"children":5043},{"class":199,"line":448},[5044,5048,5052,5056,5060,5064,5068,5072,5076,5080],{"type":43,"tag":197,"props":5045,"children":5046},{"style":282},[5047],{"type":49,"value":471},{"type":43,"tag":197,"props":5049,"children":5050},{"style":210},[5051],{"type":49,"value":4758},{"type":43,"tag":197,"props":5053,"children":5054},{"style":216},[5055],{"type":49,"value":369},{"type":43,"tag":197,"props":5057,"children":5058},{"style":288},[5059],{"type":49,"value":4767},{"type":43,"tag":197,"props":5061,"children":5062},{"style":294},[5063],{"type":49,"value":297},{"type":43,"tag":197,"props":5065,"children":5066},{"style":216},[5067],{"type":49,"value":297},{"type":43,"tag":197,"props":5069,"children":5070},{"style":232},[5071],{"type":49,"value":4780},{"type":43,"tag":197,"props":5073,"children":5074},{"style":216},[5075],{"type":49,"value":250},{"type":43,"tag":197,"props":5077,"children":5078},{"style":204},[5079],{"type":49,"value":255},{"type":43,"tag":197,"props":5081,"children":5082},{"style":216},[5083],{"type":49,"value":260},{"type":43,"tag":197,"props":5085,"children":5086},{"class":199,"line":457},[5087,5092,5096,5100,5104,5108,5112,5116,5120],{"type":43,"tag":197,"props":5088,"children":5089},{"style":288},[5090],{"type":49,"value":5091},"    setOnline",{"type":43,"tag":197,"props":5093,"children":5094},{"style":294},[5095],{"type":49,"value":297},{"type":43,"tag":197,"props":5097,"children":5098},{"style":210},[5099],{"type":49,"value":4780},{"type":43,"tag":197,"props":5101,"children":5102},{"style":216},[5103],{"type":49,"value":369},{"type":43,"tag":197,"props":5105,"children":5106},{"style":210},[5107],{"type":49,"value":4817},{"type":43,"tag":197,"props":5109,"children":5110},{"style":216},[5111],{"type":49,"value":4822},{"type":43,"tag":197,"props":5113,"children":5114},{"style":4153},[5115],{"type":49,"value":4406},{"type":43,"tag":197,"props":5117,"children":5118},{"style":294},[5119],{"type":49,"value":250},{"type":43,"tag":197,"props":5121,"children":5122},{"style":216},[5123],{"type":49,"value":331},{"type":43,"tag":197,"props":5125,"children":5126},{"class":199,"line":465},[5127,5131,5135],{"type":43,"tag":197,"props":5128,"children":5129},{"style":216},[5130],{"type":49,"value":800},{"type":43,"tag":197,"props":5132,"children":5133},{"style":294},[5134],{"type":49,"value":250},{"type":43,"tag":197,"props":5136,"children":5137},{"style":216},[5138],{"type":49,"value":331},{"type":43,"tag":197,"props":5140,"children":5141},{"class":199,"line":496},[5142,5146,5150],{"type":43,"tag":197,"props":5143,"children":5144},{"style":216},[5145],{"type":49,"value":1238},{"type":43,"tag":197,"props":5147,"children":5148},{"style":210},[5149],{"type":49,"value":250},{"type":43,"tag":197,"props":5151,"children":5152},{"style":216},[5153],{"type":49,"value":331},{"type":43,"tag":197,"props":5155,"children":5156},{"class":199,"line":811},[5157],{"type":43,"tag":197,"props":5158,"children":5159},{"emptyLinePlaceholder":338},[5160],{"type":49,"value":341},{"type":43,"tag":197,"props":5162,"children":5163},{"class":199,"line":819},[5164],{"type":43,"tag":197,"props":5165,"children":5166},{"style":1020},[5167],{"type":49,"value":5168},"\u002F\u002F Queries will pause when offline and resume when online\n",{"type":43,"tag":990,"props":5170,"children":5171},{},[],{"type":43,"tag":171,"props":5173,"children":5175},{"id":5174},"_6-environment-variables",[5176],{"type":49,"value":5177},"6. Environment Variables",{"type":43,"tag":52,"props":5179,"children":5180},{},[5181,5186],{"type":43,"tag":56,"props":5182,"children":5183},{},[5184],{"type":49,"value":5185},"Using environment variables for API configuration",{"type":49,"value":186},{"type":43,"tag":52,"props":5188,"children":5189},{},[5190,5192,5198],{"type":49,"value":5191},"Expo supports environment variables with the ",{"type":43,"tag":81,"props":5193,"children":5195},{"className":5194},[],[5196],{"type":49,"value":5197},"EXPO_PUBLIC_",{"type":49,"value":5199}," prefix. These are inlined at build time and available in your JavaScript code.",{"type":43,"tag":74,"props":5201,"children":5203},{"className":189,"code":5202,"language":191,"meta":83,"style":83},"\u002F\u002F .env\nEXPO_PUBLIC_API_URL=https:\u002F\u002Fapi.example.com\nEXPO_PUBLIC_API_VERSION=v1\n\n\u002F\u002F Usage in code\nconst API_URL = process.env.EXPO_PUBLIC_API_URL;\n\nconst fetchUsers = async () => {\n  const response = await fetch(`${API_URL}\u002Fusers`);\n  return response.json();\n};\n",[5204],{"type":43,"tag":81,"props":5205,"children":5206},{"__ignoreMap":83},[5207,5215,5241,5258,5265,5273,5315,5322,5354,5412,5439],{"type":43,"tag":197,"props":5208,"children":5209},{"class":199,"line":200},[5210],{"type":43,"tag":197,"props":5211,"children":5212},{"style":1020},[5213],{"type":49,"value":5214},"\u002F\u002F .env\n",{"type":43,"tag":197,"props":5216,"children":5217},{"class":199,"line":263},[5218,5223,5227,5232,5236],{"type":43,"tag":197,"props":5219,"children":5220},{"style":210},[5221],{"type":49,"value":5222},"EXPO_PUBLIC_API_URL",{"type":43,"tag":197,"props":5224,"children":5225},{"style":216},[5226],{"type":49,"value":219},{"type":43,"tag":197,"props":5228,"children":5229},{"style":242},[5230],{"type":49,"value":5231},"https",{"type":43,"tag":197,"props":5233,"children":5234},{"style":216},[5235],{"type":49,"value":186},{"type":43,"tag":197,"props":5237,"children":5238},{"style":1020},[5239],{"type":49,"value":5240},"\u002F\u002Fapi.example.com\n",{"type":43,"tag":197,"props":5242,"children":5243},{"class":199,"line":334},[5244,5249,5253],{"type":43,"tag":197,"props":5245,"children":5246},{"style":210},[5247],{"type":49,"value":5248},"EXPO_PUBLIC_API_VERSION",{"type":43,"tag":197,"props":5250,"children":5251},{"style":216},[5252],{"type":49,"value":219},{"type":43,"tag":197,"props":5254,"children":5255},{"style":210},[5256],{"type":49,"value":5257},"v1\n",{"type":43,"tag":197,"props":5259,"children":5260},{"class":199,"line":344},[5261],{"type":43,"tag":197,"props":5262,"children":5263},{"emptyLinePlaceholder":338},[5264],{"type":49,"value":341},{"type":43,"tag":197,"props":5266,"children":5267},{"class":199,"line":387},[5268],{"type":43,"tag":197,"props":5269,"children":5270},{"style":1020},[5271],{"type":49,"value":5272},"\u002F\u002F Usage in code\n",{"type":43,"tag":197,"props":5274,"children":5275},{"class":199,"line":448},[5276,5280,5285,5289,5294,5298,5303,5307,5311],{"type":43,"tag":197,"props":5277,"children":5278},{"style":204},[5279],{"type":49,"value":207},{"type":43,"tag":197,"props":5281,"children":5282},{"style":210},[5283],{"type":49,"value":5284}," API_URL ",{"type":43,"tag":197,"props":5286,"children":5287},{"style":216},[5288],{"type":49,"value":219},{"type":43,"tag":197,"props":5290,"children":5291},{"style":210},[5292],{"type":49,"value":5293}," process",{"type":43,"tag":197,"props":5295,"children":5296},{"style":216},[5297],{"type":49,"value":369},{"type":43,"tag":197,"props":5299,"children":5300},{"style":210},[5301],{"type":49,"value":5302},"env",{"type":43,"tag":197,"props":5304,"children":5305},{"style":216},[5306],{"type":49,"value":369},{"type":43,"tag":197,"props":5308,"children":5309},{"style":210},[5310],{"type":49,"value":5222},{"type":43,"tag":197,"props":5312,"children":5313},{"style":216},[5314],{"type":49,"value":331},{"type":43,"tag":197,"props":5316,"children":5317},{"class":199,"line":457},[5318],{"type":43,"tag":197,"props":5319,"children":5320},{"emptyLinePlaceholder":338},[5321],{"type":49,"value":341},{"type":43,"tag":197,"props":5323,"children":5324},{"class":199,"line":465},[5325,5329,5334,5338,5342,5346,5350],{"type":43,"tag":197,"props":5326,"children":5327},{"style":204},[5328],{"type":49,"value":207},{"type":43,"tag":197,"props":5330,"children":5331},{"style":210},[5332],{"type":49,"value":5333}," fetchUsers ",{"type":43,"tag":197,"props":5335,"children":5336},{"style":216},[5337],{"type":49,"value":219},{"type":43,"tag":197,"props":5339,"children":5340},{"style":204},[5341],{"type":49,"value":224},{"type":43,"tag":197,"props":5343,"children":5344},{"style":216},[5345],{"type":49,"value":1628},{"type":43,"tag":197,"props":5347,"children":5348},{"style":204},[5349],{"type":49,"value":255},{"type":43,"tag":197,"props":5351,"children":5352},{"style":216},[5353],{"type":49,"value":260},{"type":43,"tag":197,"props":5355,"children":5356},{"class":199,"line":496},[5357,5361,5365,5369,5373,5377,5381,5386,5391,5395,5400,5404,5408],{"type":43,"tag":197,"props":5358,"children":5359},{"style":204},[5360],{"type":49,"value":269},{"type":43,"tag":197,"props":5362,"children":5363},{"style":210},[5364],{"type":49,"value":274},{"type":43,"tag":197,"props":5366,"children":5367},{"style":216},[5368],{"type":49,"value":279},{"type":43,"tag":197,"props":5370,"children":5371},{"style":282},[5372],{"type":49,"value":285},{"type":43,"tag":197,"props":5374,"children":5375},{"style":288},[5376],{"type":49,"value":291},{"type":43,"tag":197,"props":5378,"children":5379},{"style":294},[5380],{"type":49,"value":297},{"type":43,"tag":197,"props":5382,"children":5383},{"style":216},[5384],{"type":49,"value":5385},"`${",{"type":43,"tag":197,"props":5387,"children":5388},{"style":210},[5389],{"type":49,"value":5390},"API_URL",{"type":43,"tag":197,"props":5392,"children":5393},{"style":216},[5394],{"type":49,"value":1238},{"type":43,"tag":197,"props":5396,"children":5397},{"style":305},[5398],{"type":49,"value":5399},"\u002Fusers",{"type":43,"tag":197,"props":5401,"children":5402},{"style":216},[5403],{"type":49,"value":302},{"type":43,"tag":197,"props":5405,"children":5406},{"style":294},[5407],{"type":49,"value":250},{"type":43,"tag":197,"props":5409,"children":5410},{"style":216},[5411],{"type":49,"value":331},{"type":43,"tag":197,"props":5413,"children":5414},{"class":199,"line":811},[5415,5419,5423,5427,5431,5435],{"type":43,"tag":197,"props":5416,"children":5417},{"style":282},[5418],{"type":49,"value":471},{"type":43,"tag":197,"props":5420,"children":5421},{"style":210},[5422],{"type":49,"value":274},{"type":43,"tag":197,"props":5424,"children":5425},{"style":216},[5426],{"type":49,"value":369},{"type":43,"tag":197,"props":5428,"children":5429},{"style":288},[5430],{"type":49,"value":484},{"type":43,"tag":197,"props":5432,"children":5433},{"style":294},[5434],{"type":49,"value":489},{"type":43,"tag":197,"props":5436,"children":5437},{"style":216},[5438],{"type":49,"value":331},{"type":43,"tag":197,"props":5440,"children":5441},{"class":199,"line":819},[5442],{"type":43,"tag":197,"props":5443,"children":5444},{"style":216},[5445],{"type":49,"value":502},{"type":43,"tag":52,"props":5447,"children":5448},{},[5449,5454],{"type":43,"tag":56,"props":5450,"children":5451},{},[5452],{"type":49,"value":5453},"Environment-specific configuration",{"type":49,"value":186},{"type":43,"tag":74,"props":5456,"children":5458},{"className":189,"code":5457,"language":191,"meta":83,"style":83},"\u002F\u002F .env.development\nEXPO_PUBLIC_API_URL=http:\u002F\u002Flocalhost:3000\n\n\u002F\u002F .env.production\nEXPO_PUBLIC_API_URL=https:\u002F\u002Fapi.production.com\n",[5459],{"type":43,"tag":81,"props":5460,"children":5461},{"__ignoreMap":83},[5462,5470,5495,5502,5510],{"type":43,"tag":197,"props":5463,"children":5464},{"class":199,"line":200},[5465],{"type":43,"tag":197,"props":5466,"children":5467},{"style":1020},[5468],{"type":49,"value":5469},"\u002F\u002F .env.development\n",{"type":43,"tag":197,"props":5471,"children":5472},{"class":199,"line":263},[5473,5477,5481,5486,5490],{"type":43,"tag":197,"props":5474,"children":5475},{"style":210},[5476],{"type":49,"value":5222},{"type":43,"tag":197,"props":5478,"children":5479},{"style":216},[5480],{"type":49,"value":219},{"type":43,"tag":197,"props":5482,"children":5483},{"style":242},[5484],{"type":49,"value":5485},"http",{"type":43,"tag":197,"props":5487,"children":5488},{"style":216},[5489],{"type":49,"value":186},{"type":43,"tag":197,"props":5491,"children":5492},{"style":1020},[5493],{"type":49,"value":5494},"\u002F\u002Flocalhost:3000\n",{"type":43,"tag":197,"props":5496,"children":5497},{"class":199,"line":334},[5498],{"type":43,"tag":197,"props":5499,"children":5500},{"emptyLinePlaceholder":338},[5501],{"type":49,"value":341},{"type":43,"tag":197,"props":5503,"children":5504},{"class":199,"line":344},[5505],{"type":43,"tag":197,"props":5506,"children":5507},{"style":1020},[5508],{"type":49,"value":5509},"\u002F\u002F .env.production\n",{"type":43,"tag":197,"props":5511,"children":5512},{"class":199,"line":387},[5513,5517,5521,5525,5529],{"type":43,"tag":197,"props":5514,"children":5515},{"style":210},[5516],{"type":49,"value":5222},{"type":43,"tag":197,"props":5518,"children":5519},{"style":216},[5520],{"type":49,"value":219},{"type":43,"tag":197,"props":5522,"children":5523},{"style":242},[5524],{"type":49,"value":5231},{"type":43,"tag":197,"props":5526,"children":5527},{"style":216},[5528],{"type":49,"value":186},{"type":43,"tag":197,"props":5530,"children":5531},{"style":1020},[5532],{"type":49,"value":5533},"\u002F\u002Fapi.production.com\n",{"type":43,"tag":52,"props":5535,"children":5536},{},[5537,5542],{"type":43,"tag":56,"props":5538,"children":5539},{},[5540],{"type":49,"value":5541},"Creating an API client with environment config",{"type":49,"value":186},{"type":43,"tag":74,"props":5544,"children":5546},{"className":189,"code":5545,"language":191,"meta":83,"style":83},"\u002F\u002F api\u002Fclient.ts\nconst BASE_URL = process.env.EXPO_PUBLIC_API_URL;\n\nif (!BASE_URL) {\n  throw new Error(\"EXPO_PUBLIC_API_URL is not defined\");\n}\n\nexport const apiClient = {\n  get: async \u003CT,>(path: string): Promise\u003CT> => {\n    const response = await fetch(`${BASE_URL}${path}`);\n    if (!response.ok) throw new Error(`HTTP ${response.status}`);\n    return response.json();\n  },\n\n  post: async \u003CT,>(path: string, body: unknown): Promise\u003CT> => {\n    const response = await fetch(`${BASE_URL}${path}`, {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application\u002Fjson\" },\n      body: JSON.stringify(body),\n    });\n    if (!response.ok) throw new Error(`HTTP ${response.status}`);\n    return response.json();\n  },\n};\n",[5547],{"type":43,"tag":81,"props":5548,"children":5549},{"__ignoreMap":83},[5550,5558,5598,5605,5630,5671,5678,5685,5709,5781,5838,5922,5949,5956,5963,6049,6104,6132,6181,6222,6237,6320,6347,6354],{"type":43,"tag":197,"props":5551,"children":5552},{"class":199,"line":200},[5553],{"type":43,"tag":197,"props":5554,"children":5555},{"style":1020},[5556],{"type":49,"value":5557},"\u002F\u002F api\u002Fclient.ts\n",{"type":43,"tag":197,"props":5559,"children":5560},{"class":199,"line":263},[5561,5565,5570,5574,5578,5582,5586,5590,5594],{"type":43,"tag":197,"props":5562,"children":5563},{"style":204},[5564],{"type":49,"value":207},{"type":43,"tag":197,"props":5566,"children":5567},{"style":210},[5568],{"type":49,"value":5569}," BASE_URL ",{"type":43,"tag":197,"props":5571,"children":5572},{"style":216},[5573],{"type":49,"value":219},{"type":43,"tag":197,"props":5575,"children":5576},{"style":210},[5577],{"type":49,"value":5293},{"type":43,"tag":197,"props":5579,"children":5580},{"style":216},[5581],{"type":49,"value":369},{"type":43,"tag":197,"props":5583,"children":5584},{"style":210},[5585],{"type":49,"value":5302},{"type":43,"tag":197,"props":5587,"children":5588},{"style":216},[5589],{"type":49,"value":369},{"type":43,"tag":197,"props":5591,"children":5592},{"style":210},[5593],{"type":49,"value":5222},{"type":43,"tag":197,"props":5595,"children":5596},{"style":216},[5597],{"type":49,"value":331},{"type":43,"tag":197,"props":5599,"children":5600},{"class":199,"line":334},[5601],{"type":43,"tag":197,"props":5602,"children":5603},{"emptyLinePlaceholder":338},[5604],{"type":49,"value":341},{"type":43,"tag":197,"props":5606,"children":5607},{"class":199,"line":344},[5608,5613,5617,5621,5626],{"type":43,"tag":197,"props":5609,"children":5610},{"style":282},[5611],{"type":49,"value":5612},"if",{"type":43,"tag":197,"props":5614,"children":5615},{"style":210},[5616],{"type":49,"value":229},{"type":43,"tag":197,"props":5618,"children":5619},{"style":216},[5620],{"type":49,"value":359},{"type":43,"tag":197,"props":5622,"children":5623},{"style":210},[5624],{"type":49,"value":5625},"BASE_URL) ",{"type":43,"tag":197,"props":5627,"children":5628},{"style":216},[5629],{"type":49,"value":384},{"type":43,"tag":197,"props":5631,"children":5632},{"class":199,"line":387},[5633,5638,5642,5646,5650,5654,5659,5663,5667],{"type":43,"tag":197,"props":5634,"children":5635},{"style":282},[5636],{"type":49,"value":5637},"  throw",{"type":43,"tag":197,"props":5639,"children":5640},{"style":216},[5641],{"type":49,"value":398},{"type":43,"tag":197,"props":5643,"children":5644},{"style":288},[5645],{"type":49,"value":403},{"type":43,"tag":197,"props":5647,"children":5648},{"style":294},[5649],{"type":49,"value":297},{"type":43,"tag":197,"props":5651,"children":5652},{"style":216},[5653],{"type":49,"value":600},{"type":43,"tag":197,"props":5655,"children":5656},{"style":305},[5657],{"type":49,"value":5658},"EXPO_PUBLIC_API_URL is not defined",{"type":43,"tag":197,"props":5660,"children":5661},{"style":216},[5662],{"type":49,"value":600},{"type":43,"tag":197,"props":5664,"children":5665},{"style":294},[5666],{"type":49,"value":250},{"type":43,"tag":197,"props":5668,"children":5669},{"style":216},[5670],{"type":49,"value":331},{"type":43,"tag":197,"props":5672,"children":5673},{"class":199,"line":448},[5674],{"type":43,"tag":197,"props":5675,"children":5676},{"style":216},[5677],{"type":49,"value":1386},{"type":43,"tag":197,"props":5679,"children":5680},{"class":199,"line":457},[5681],{"type":43,"tag":197,"props":5682,"children":5683},{"emptyLinePlaceholder":338},[5684],{"type":49,"value":341},{"type":43,"tag":197,"props":5686,"children":5687},{"class":199,"line":465},[5688,5692,5696,5701,5705],{"type":43,"tag":197,"props":5689,"children":5690},{"style":282},[5691],{"type":49,"value":1261},{"type":43,"tag":197,"props":5693,"children":5694},{"style":204},[5695],{"type":49,"value":3647},{"type":43,"tag":197,"props":5697,"children":5698},{"style":210},[5699],{"type":49,"value":5700}," apiClient ",{"type":43,"tag":197,"props":5702,"children":5703},{"style":216},[5704],{"type":49,"value":219},{"type":43,"tag":197,"props":5706,"children":5707},{"style":216},[5708],{"type":49,"value":260},{"type":43,"tag":197,"props":5710,"children":5711},{"class":199,"line":496},[5712,5717,5721,5725,5729,5734,5739,5744,5748,5752,5757,5761,5765,5769,5773,5777],{"type":43,"tag":197,"props":5713,"children":5714},{"style":288},[5715],{"type":49,"value":5716},"  get",{"type":43,"tag":197,"props":5718,"children":5719},{"style":216},[5720],{"type":49,"value":186},{"type":43,"tag":197,"props":5722,"children":5723},{"style":204},[5724],{"type":49,"value":224},{"type":43,"tag":197,"props":5726,"children":5727},{"style":216},[5728],{"type":49,"value":1705},{"type":43,"tag":197,"props":5730,"children":5731},{"style":242},[5732],{"type":49,"value":5733},"T",{"type":43,"tag":197,"props":5735,"children":5736},{"style":216},[5737],{"type":49,"value":5738},",>(",{"type":43,"tag":197,"props":5740,"children":5741},{"style":232},[5742],{"type":49,"value":5743},"path",{"type":43,"tag":197,"props":5745,"children":5746},{"style":216},[5747],{"type":49,"value":186},{"type":43,"tag":197,"props":5749,"children":5750},{"style":242},[5751],{"type":49,"value":245},{"type":43,"tag":197,"props":5753,"children":5754},{"style":216},[5755],{"type":49,"value":5756},"):",{"type":43,"tag":197,"props":5758,"children":5759},{"style":242},[5760],{"type":49,"value":3409},{"type":43,"tag":197,"props":5762,"children":5763},{"style":216},[5764],{"type":49,"value":4185},{"type":43,"tag":197,"props":5766,"children":5767},{"style":242},[5768],{"type":49,"value":5733},{"type":43,"tag":197,"props":5770,"children":5771},{"style":216},[5772],{"type":49,"value":4195},{"type":43,"tag":197,"props":5774,"children":5775},{"style":204},[5776],{"type":49,"value":255},{"type":43,"tag":197,"props":5778,"children":5779},{"style":216},[5780],{"type":49,"value":260},{"type":43,"tag":197,"props":5782,"children":5783},{"class":199,"line":811},[5784,5788,5792,5796,5800,5804,5808,5812,5817,5822,5826,5830,5834],{"type":43,"tag":197,"props":5785,"children":5786},{"style":204},[5787],{"type":49,"value":861},{"type":43,"tag":197,"props":5789,"children":5790},{"style":210},[5791],{"type":49,"value":274},{"type":43,"tag":197,"props":5793,"children":5794},{"style":216},[5795],{"type":49,"value":279},{"type":43,"tag":197,"props":5797,"children":5798},{"style":282},[5799],{"type":49,"value":285},{"type":43,"tag":197,"props":5801,"children":5802},{"style":288},[5803],{"type":49,"value":291},{"type":43,"tag":197,"props":5805,"children":5806},{"style":294},[5807],{"type":49,"value":297},{"type":43,"tag":197,"props":5809,"children":5810},{"style":216},[5811],{"type":49,"value":5385},{"type":43,"tag":197,"props":5813,"children":5814},{"style":210},[5815],{"type":49,"value":5816},"BASE_URL",{"type":43,"tag":197,"props":5818,"children":5819},{"style":216},[5820],{"type":49,"value":5821},"}${",{"type":43,"tag":197,"props":5823,"children":5824},{"style":210},[5825],{"type":49,"value":5743},{"type":43,"tag":197,"props":5827,"children":5828},{"style":216},[5829],{"type":49,"value":322},{"type":43,"tag":197,"props":5831,"children":5832},{"style":294},[5833],{"type":49,"value":250},{"type":43,"tag":197,"props":5835,"children":5836},{"style":216},[5837],{"type":49,"value":331},{"type":43,"tag":197,"props":5839,"children":5840},{"class":199,"line":819},[5841,5845,5849,5853,5857,5861,5865,5869,5873,5877,5881,5885,5889,5894,5898,5902,5906,5910,5914,5918],{"type":43,"tag":197,"props":5842,"children":5843},{"style":282},[5844],{"type":49,"value":2635},{"type":43,"tag":197,"props":5846,"children":5847},{"style":294},[5848],{"type":49,"value":229},{"type":43,"tag":197,"props":5850,"children":5851},{"style":216},[5852],{"type":49,"value":359},{"type":43,"tag":197,"props":5854,"children":5855},{"style":210},[5856],{"type":49,"value":364},{"type":43,"tag":197,"props":5858,"children":5859},{"style":216},[5860],{"type":49,"value":369},{"type":43,"tag":197,"props":5862,"children":5863},{"style":210},[5864],{"type":49,"value":374},{"type":43,"tag":197,"props":5866,"children":5867},{"style":294},[5868],{"type":49,"value":379},{"type":43,"tag":197,"props":5870,"children":5871},{"style":282},[5872],{"type":49,"value":3376},{"type":43,"tag":197,"props":5874,"children":5875},{"style":216},[5876],{"type":49,"value":398},{"type":43,"tag":197,"props":5878,"children":5879},{"style":288},[5880],{"type":49,"value":403},{"type":43,"tag":197,"props":5882,"children":5883},{"style":294},[5884],{"type":49,"value":297},{"type":43,"tag":197,"props":5886,"children":5887},{"style":216},[5888],{"type":49,"value":302},{"type":43,"tag":197,"props":5890,"children":5891},{"style":305},[5892],{"type":49,"value":5893},"HTTP ",{"type":43,"tag":197,"props":5895,"children":5896},{"style":216},[5897],{"type":49,"value":313},{"type":43,"tag":197,"props":5899,"children":5900},{"style":210},[5901],{"type":49,"value":364},{"type":43,"tag":197,"props":5903,"children":5904},{"style":216},[5905],{"type":49,"value":369},{"type":43,"tag":197,"props":5907,"children":5908},{"style":210},[5909],{"type":49,"value":433},{"type":43,"tag":197,"props":5911,"children":5912},{"style":216},[5913],{"type":49,"value":322},{"type":43,"tag":197,"props":5915,"children":5916},{"style":294},[5917],{"type":49,"value":250},{"type":43,"tag":197,"props":5919,"children":5920},{"style":216},[5921],{"type":49,"value":331},{"type":43,"tag":197,"props":5923,"children":5924},{"class":199,"line":855},[5925,5929,5933,5937,5941,5945],{"type":43,"tag":197,"props":5926,"children":5927},{"style":282},[5928],{"type":49,"value":2870},{"type":43,"tag":197,"props":5930,"children":5931},{"style":210},[5932],{"type":49,"value":274},{"type":43,"tag":197,"props":5934,"children":5935},{"style":216},[5936],{"type":49,"value":369},{"type":43,"tag":197,"props":5938,"children":5939},{"style":288},[5940],{"type":49,"value":484},{"type":43,"tag":197,"props":5942,"children":5943},{"style":294},[5944],{"type":49,"value":489},{"type":43,"tag":197,"props":5946,"children":5947},{"style":216},[5948],{"type":49,"value":331},{"type":43,"tag":197,"props":5950,"children":5951},{"class":199,"line":897},[5952],{"type":43,"tag":197,"props":5953,"children":5954},{"style":216},[5955],{"type":49,"value":1230},{"type":43,"tag":197,"props":5957,"children":5958},{"class":199,"line":939},[5959],{"type":43,"tag":197,"props":5960,"children":5961},{"emptyLinePlaceholder":338},[5962],{"type":49,"value":341},{"type":43,"tag":197,"props":5964,"children":5965},{"class":199,"line":947},[5966,5971,5975,5979,5983,5987,5991,5995,5999,6003,6007,6012,6016,6021,6025,6029,6033,6037,6041,6045],{"type":43,"tag":197,"props":5967,"children":5968},{"style":288},[5969],{"type":49,"value":5970},"  post",{"type":43,"tag":197,"props":5972,"children":5973},{"style":216},[5974],{"type":49,"value":186},{"type":43,"tag":197,"props":5976,"children":5977},{"style":204},[5978],{"type":49,"value":224},{"type":43,"tag":197,"props":5980,"children":5981},{"style":216},[5982],{"type":49,"value":1705},{"type":43,"tag":197,"props":5984,"children":5985},{"style":242},[5986],{"type":49,"value":5733},{"type":43,"tag":197,"props":5988,"children":5989},{"style":216},[5990],{"type":49,"value":5738},{"type":43,"tag":197,"props":5992,"children":5993},{"style":232},[5994],{"type":49,"value":5743},{"type":43,"tag":197,"props":5996,"children":5997},{"style":216},[5998],{"type":49,"value":186},{"type":43,"tag":197,"props":6000,"children":6001},{"style":242},[6002],{"type":49,"value":245},{"type":43,"tag":197,"props":6004,"children":6005},{"style":216},[6006],{"type":49,"value":614},{"type":43,"tag":197,"props":6008,"children":6009},{"style":232},[6010],{"type":49,"value":6011}," body",{"type":43,"tag":197,"props":6013,"children":6014},{"style":216},[6015],{"type":49,"value":186},{"type":43,"tag":197,"props":6017,"children":6018},{"style":242},[6019],{"type":49,"value":6020}," unknown",{"type":43,"tag":197,"props":6022,"children":6023},{"style":216},[6024],{"type":49,"value":5756},{"type":43,"tag":197,"props":6026,"children":6027},{"style":242},[6028],{"type":49,"value":3409},{"type":43,"tag":197,"props":6030,"children":6031},{"style":216},[6032],{"type":49,"value":4185},{"type":43,"tag":197,"props":6034,"children":6035},{"style":242},[6036],{"type":49,"value":5733},{"type":43,"tag":197,"props":6038,"children":6039},{"style":216},[6040],{"type":49,"value":4195},{"type":43,"tag":197,"props":6042,"children":6043},{"style":204},[6044],{"type":49,"value":255},{"type":43,"tag":197,"props":6046,"children":6047},{"style":216},[6048],{"type":49,"value":260},{"type":43,"tag":197,"props":6050,"children":6051},{"class":199,"line":955},[6052,6056,6060,6064,6068,6072,6076,6080,6084,6088,6092,6096,6100],{"type":43,"tag":197,"props":6053,"children":6054},{"style":204},[6055],{"type":49,"value":861},{"type":43,"tag":197,"props":6057,"children":6058},{"style":210},[6059],{"type":49,"value":274},{"type":43,"tag":197,"props":6061,"children":6062},{"style":216},[6063],{"type":49,"value":279},{"type":43,"tag":197,"props":6065,"children":6066},{"style":282},[6067],{"type":49,"value":285},{"type":43,"tag":197,"props":6069,"children":6070},{"style":288},[6071],{"type":49,"value":291},{"type":43,"tag":197,"props":6073,"children":6074},{"style":294},[6075],{"type":49,"value":297},{"type":43,"tag":197,"props":6077,"children":6078},{"style":216},[6079],{"type":49,"value":5385},{"type":43,"tag":197,"props":6081,"children":6082},{"style":210},[6083],{"type":49,"value":5816},{"type":43,"tag":197,"props":6085,"children":6086},{"style":216},[6087],{"type":49,"value":5821},{"type":43,"tag":197,"props":6089,"children":6090},{"style":210},[6091],{"type":49,"value":5743},{"type":43,"tag":197,"props":6093,"children":6094},{"style":216},[6095],{"type":49,"value":322},{"type":43,"tag":197,"props":6097,"children":6098},{"style":216},[6099],{"type":49,"value":614},{"type":43,"tag":197,"props":6101,"children":6102},{"style":216},[6103],{"type":49,"value":260},{"type":43,"tag":197,"props":6105,"children":6106},{"class":199,"line":983},[6107,6112,6116,6120,6124,6128],{"type":43,"tag":197,"props":6108,"children":6109},{"style":294},[6110],{"type":49,"value":6111},"      method",{"type":43,"tag":197,"props":6113,"children":6114},{"style":216},[6115],{"type":49,"value":186},{"type":43,"tag":197,"props":6117,"children":6118},{"style":216},[6119],{"type":49,"value":635},{"type":43,"tag":197,"props":6121,"children":6122},{"style":305},[6123],{"type":49,"value":640},{"type":43,"tag":197,"props":6125,"children":6126},{"style":216},[6127],{"type":49,"value":600},{"type":43,"tag":197,"props":6129,"children":6130},{"style":216},[6131],{"type":49,"value":649},{"type":43,"tag":197,"props":6133,"children":6134},{"class":199,"line":1367},[6135,6140,6144,6148,6152,6156,6160,6164,6168,6172,6176],{"type":43,"tag":197,"props":6136,"children":6137},{"style":294},[6138],{"type":49,"value":6139},"      headers",{"type":43,"tag":197,"props":6141,"children":6142},{"style":216},[6143],{"type":49,"value":186},{"type":43,"tag":197,"props":6145,"children":6146},{"style":216},[6147],{"type":49,"value":1036},{"type":43,"tag":197,"props":6149,"children":6150},{"style":216},[6151],{"type":49,"value":635},{"type":43,"tag":197,"props":6153,"children":6154},{"style":294},[6155],{"type":49,"value":678},{"type":43,"tag":197,"props":6157,"children":6158},{"style":216},[6159],{"type":49,"value":600},{"type":43,"tag":197,"props":6161,"children":6162},{"style":216},[6163],{"type":49,"value":186},{"type":43,"tag":197,"props":6165,"children":6166},{"style":216},[6167],{"type":49,"value":635},{"type":43,"tag":197,"props":6169,"children":6170},{"style":305},[6171],{"type":49,"value":695},{"type":43,"tag":197,"props":6173,"children":6174},{"style":216},[6175],{"type":49,"value":600},{"type":43,"tag":197,"props":6177,"children":6178},{"style":216},[6179],{"type":49,"value":6180}," },\n",{"type":43,"tag":197,"props":6182,"children":6183},{"class":199,"line":1380},[6184,6189,6193,6197,6201,6205,6209,6214,6218],{"type":43,"tag":197,"props":6185,"children":6186},{"style":294},[6187],{"type":49,"value":6188},"      body",{"type":43,"tag":197,"props":6190,"children":6191},{"style":216},[6192],{"type":49,"value":186},{"type":43,"tag":197,"props":6194,"children":6195},{"style":210},[6196],{"type":49,"value":767},{"type":43,"tag":197,"props":6198,"children":6199},{"style":216},[6200],{"type":49,"value":369},{"type":43,"tag":197,"props":6202,"children":6203},{"style":288},[6204],{"type":49,"value":776},{"type":43,"tag":197,"props":6206,"children":6207},{"style":294},[6208],{"type":49,"value":297},{"type":43,"tag":197,"props":6210,"children":6211},{"style":210},[6212],{"type":49,"value":6213},"body",{"type":43,"tag":197,"props":6215,"children":6216},{"style":294},[6217],{"type":49,"value":250},{"type":43,"tag":197,"props":6219,"children":6220},{"style":216},[6221],{"type":49,"value":649},{"type":43,"tag":197,"props":6223,"children":6224},{"class":199,"line":2856},[6225,6229,6233],{"type":43,"tag":197,"props":6226,"children":6227},{"style":216},[6228],{"type":49,"value":3311},{"type":43,"tag":197,"props":6230,"children":6231},{"style":294},[6232],{"type":49,"value":250},{"type":43,"tag":197,"props":6234,"children":6235},{"style":216},[6236],{"type":49,"value":331},{"type":43,"tag":197,"props":6238,"children":6239},{"class":199,"line":2864},[6240,6244,6248,6252,6256,6260,6264,6268,6272,6276,6280,6284,6288,6292,6296,6300,6304,6308,6312,6316],{"type":43,"tag":197,"props":6241,"children":6242},{"style":282},[6243],{"type":49,"value":2635},{"type":43,"tag":197,"props":6245,"children":6246},{"style":294},[6247],{"type":49,"value":229},{"type":43,"tag":197,"props":6249,"children":6250},{"style":216},[6251],{"type":49,"value":359},{"type":43,"tag":197,"props":6253,"children":6254},{"style":210},[6255],{"type":49,"value":364},{"type":43,"tag":197,"props":6257,"children":6258},{"style":216},[6259],{"type":49,"value":369},{"type":43,"tag":197,"props":6261,"children":6262},{"style":210},[6263],{"type":49,"value":374},{"type":43,"tag":197,"props":6265,"children":6266},{"style":294},[6267],{"type":49,"value":379},{"type":43,"tag":197,"props":6269,"children":6270},{"style":282},[6271],{"type":49,"value":3376},{"type":43,"tag":197,"props":6273,"children":6274},{"style":216},[6275],{"type":49,"value":398},{"type":43,"tag":197,"props":6277,"children":6278},{"style":288},[6279],{"type":49,"value":403},{"type":43,"tag":197,"props":6281,"children":6282},{"style":294},[6283],{"type":49,"value":297},{"type":43,"tag":197,"props":6285,"children":6286},{"style":216},[6287],{"type":49,"value":302},{"type":43,"tag":197,"props":6289,"children":6290},{"style":305},[6291],{"type":49,"value":5893},{"type":43,"tag":197,"props":6293,"children":6294},{"style":216},[6295],{"type":49,"value":313},{"type":43,"tag":197,"props":6297,"children":6298},{"style":210},[6299],{"type":49,"value":364},{"type":43,"tag":197,"props":6301,"children":6302},{"style":216},[6303],{"type":49,"value":369},{"type":43,"tag":197,"props":6305,"children":6306},{"style":210},[6307],{"type":49,"value":433},{"type":43,"tag":197,"props":6309,"children":6310},{"style":216},[6311],{"type":49,"value":322},{"type":43,"tag":197,"props":6313,"children":6314},{"style":294},[6315],{"type":49,"value":250},{"type":43,"tag":197,"props":6317,"children":6318},{"style":216},[6319],{"type":49,"value":331},{"type":43,"tag":197,"props":6321,"children":6322},{"class":199,"line":2893},[6323,6327,6331,6335,6339,6343],{"type":43,"tag":197,"props":6324,"children":6325},{"style":282},[6326],{"type":49,"value":2870},{"type":43,"tag":197,"props":6328,"children":6329},{"style":210},[6330],{"type":49,"value":274},{"type":43,"tag":197,"props":6332,"children":6333},{"style":216},[6334],{"type":49,"value":369},{"type":43,"tag":197,"props":6336,"children":6337},{"style":288},[6338],{"type":49,"value":484},{"type":43,"tag":197,"props":6340,"children":6341},{"style":294},[6342],{"type":49,"value":489},{"type":43,"tag":197,"props":6344,"children":6345},{"style":216},[6346],{"type":49,"value":331},{"type":43,"tag":197,"props":6348,"children":6349},{"class":199,"line":2922},[6350],{"type":43,"tag":197,"props":6351,"children":6352},{"style":216},[6353],{"type":49,"value":1230},{"type":43,"tag":197,"props":6355,"children":6356},{"class":199,"line":2955},[6357],{"type":43,"tag":197,"props":6358,"children":6359},{"style":216},[6360],{"type":49,"value":502},{"type":43,"tag":52,"props":6362,"children":6363},{},[6364,6369],{"type":43,"tag":56,"props":6365,"children":6366},{},[6367],{"type":49,"value":6368},"Important notes",{"type":49,"value":186},{"type":43,"tag":98,"props":6371,"children":6372},{},[6373,6385,6397,6409,6422],{"type":43,"tag":102,"props":6374,"children":6375},{},[6376,6378,6383],{"type":49,"value":6377},"Only variables prefixed with ",{"type":43,"tag":81,"props":6379,"children":6381},{"className":6380},[],[6382],{"type":49,"value":5197},{"type":49,"value":6384}," are exposed to the client bundle",{"type":43,"tag":102,"props":6386,"children":6387},{},[6388,6390,6395],{"type":49,"value":6389},"Never put secrets (API keys with write access, database passwords) in ",{"type":43,"tag":81,"props":6391,"children":6393},{"className":6392},[],[6394],{"type":49,"value":5197},{"type":49,"value":6396}," variables—they're visible in the built app",{"type":43,"tag":102,"props":6398,"children":6399},{},[6400,6402,6407],{"type":49,"value":6401},"Environment variables are inlined at ",{"type":43,"tag":56,"props":6403,"children":6404},{},[6405],{"type":49,"value":6406},"build time",{"type":49,"value":6408},", not runtime",{"type":43,"tag":102,"props":6410,"children":6411},{},[6412,6414,6420],{"type":49,"value":6413},"Restart the dev server after changing ",{"type":43,"tag":81,"props":6415,"children":6417},{"className":6416},[],[6418],{"type":49,"value":6419},".env",{"type":49,"value":6421}," files",{"type":43,"tag":102,"props":6423,"children":6424},{},[6425,6427,6432],{"type":49,"value":6426},"For server-side secrets in API routes, use variables without the ",{"type":43,"tag":81,"props":6428,"children":6430},{"className":6429},[],[6431],{"type":49,"value":5197},{"type":49,"value":6433}," prefix",{"type":43,"tag":52,"props":6435,"children":6436},{},[6437,6442],{"type":43,"tag":56,"props":6438,"children":6439},{},[6440],{"type":49,"value":6441},"TypeScript support",{"type":49,"value":186},{"type":43,"tag":74,"props":6444,"children":6446},{"className":189,"code":6445,"language":191,"meta":83,"style":83},"\u002F\u002F types\u002Fenv.d.ts\ndeclare global {\n  namespace NodeJS {\n    interface ProcessEnv {\n      EXPO_PUBLIC_API_URL: string;\n      EXPO_PUBLIC_API_VERSION?: string;\n    }\n  }\n}\n\nexport {};\n",[6447],{"type":43,"tag":81,"props":6448,"children":6449},{"__ignoreMap":83},[6450,6458,6475,6492,6509,6529,6549,6556,6563,6570,6577],{"type":43,"tag":197,"props":6451,"children":6452},{"class":199,"line":200},[6453],{"type":43,"tag":197,"props":6454,"children":6455},{"style":1020},[6456],{"type":49,"value":6457},"\u002F\u002F types\u002Fenv.d.ts\n",{"type":43,"tag":197,"props":6459,"children":6460},{"class":199,"line":263},[6461,6466,6471],{"type":43,"tag":197,"props":6462,"children":6463},{"style":204},[6464],{"type":49,"value":6465},"declare",{"type":43,"tag":197,"props":6467,"children":6468},{"style":210},[6469],{"type":49,"value":6470}," global ",{"type":43,"tag":197,"props":6472,"children":6473},{"style":216},[6474],{"type":49,"value":384},{"type":43,"tag":197,"props":6476,"children":6477},{"class":199,"line":334},[6478,6483,6488],{"type":43,"tag":197,"props":6479,"children":6480},{"style":204},[6481],{"type":49,"value":6482},"  namespace",{"type":43,"tag":197,"props":6484,"children":6485},{"style":242},[6486],{"type":49,"value":6487}," NodeJS",{"type":43,"tag":197,"props":6489,"children":6490},{"style":216},[6491],{"type":49,"value":260},{"type":43,"tag":197,"props":6493,"children":6494},{"class":199,"line":344},[6495,6500,6505],{"type":43,"tag":197,"props":6496,"children":6497},{"style":204},[6498],{"type":49,"value":6499},"    interface",{"type":43,"tag":197,"props":6501,"children":6502},{"style":242},[6503],{"type":49,"value":6504}," ProcessEnv",{"type":43,"tag":197,"props":6506,"children":6507},{"style":216},[6508],{"type":49,"value":260},{"type":43,"tag":197,"props":6510,"children":6511},{"class":199,"line":387},[6512,6517,6521,6525],{"type":43,"tag":197,"props":6513,"children":6514},{"style":294},[6515],{"type":49,"value":6516},"      EXPO_PUBLIC_API_URL",{"type":43,"tag":197,"props":6518,"children":6519},{"style":216},[6520],{"type":49,"value":186},{"type":43,"tag":197,"props":6522,"children":6523},{"style":242},[6524],{"type":49,"value":245},{"type":43,"tag":197,"props":6526,"children":6527},{"style":216},[6528],{"type":49,"value":331},{"type":43,"tag":197,"props":6530,"children":6531},{"class":199,"line":448},[6532,6537,6541,6545],{"type":43,"tag":197,"props":6533,"children":6534},{"style":294},[6535],{"type":49,"value":6536},"      EXPO_PUBLIC_API_VERSION",{"type":43,"tag":197,"props":6538,"children":6539},{"style":216},[6540],{"type":49,"value":2403},{"type":43,"tag":197,"props":6542,"children":6543},{"style":242},[6544],{"type":49,"value":245},{"type":43,"tag":197,"props":6546,"children":6547},{"style":216},[6548],{"type":49,"value":331},{"type":43,"tag":197,"props":6550,"children":6551},{"class":199,"line":457},[6552],{"type":43,"tag":197,"props":6553,"children":6554},{"style":216},[6555],{"type":49,"value":2853},{"type":43,"tag":197,"props":6557,"children":6558},{"class":199,"line":465},[6559],{"type":43,"tag":197,"props":6560,"children":6561},{"style":216},[6562],{"type":49,"value":454},{"type":43,"tag":197,"props":6564,"children":6565},{"class":199,"line":496},[6566],{"type":43,"tag":197,"props":6567,"children":6568},{"style":216},[6569],{"type":49,"value":1386},{"type":43,"tag":197,"props":6571,"children":6572},{"class":199,"line":811},[6573],{"type":43,"tag":197,"props":6574,"children":6575},{"emptyLinePlaceholder":338},[6576],{"type":49,"value":341},{"type":43,"tag":197,"props":6578,"children":6579},{"class":199,"line":819},[6580,6584],{"type":43,"tag":197,"props":6581,"children":6582},{"style":282},[6583],{"type":49,"value":1261},{"type":43,"tag":197,"props":6585,"children":6586},{"style":216},[6587],{"type":49,"value":6588}," {};\n",{"type":43,"tag":990,"props":6590,"children":6591},{},[],{"type":43,"tag":171,"props":6593,"children":6595},{"id":6594},"_7-request-cancellation",[6596],{"type":49,"value":6597},"7. Request Cancellation",{"type":43,"tag":52,"props":6599,"children":6600},{},[6601,6606],{"type":43,"tag":56,"props":6602,"children":6603},{},[6604],{"type":49,"value":6605},"Cancel on unmount",{"type":49,"value":186},{"type":43,"tag":74,"props":6608,"children":6610},{"className":189,"code":6609,"language":191,"meta":83,"style":83},"useEffect(() => {\n  const controller = new AbortController();\n\n  fetch(url, { signal: controller.signal })\n    .then((response) => response.json())\n    .then(setData)\n    .catch((error) => {\n      if (error.name !== \"AbortError\") {\n        setError(error);\n      }\n    });\n\n  return () => controller.abort();\n}, [url]);\n",[6611],{"type":43,"tag":81,"props":6612,"children":6613},{"__ignoreMap":83},[6614,6638,6671,6678,6733,6783,6807,6842,6891,6915,6923,6938,6945,6981],{"type":43,"tag":197,"props":6615,"children":6616},{"class":199,"line":200},[6617,6622,6626,6630,6634],{"type":43,"tag":197,"props":6618,"children":6619},{"style":288},[6620],{"type":49,"value":6621},"useEffect",{"type":43,"tag":197,"props":6623,"children":6624},{"style":210},[6625],{"type":49,"value":297},{"type":43,"tag":197,"props":6627,"children":6628},{"style":216},[6629],{"type":49,"value":489},{"type":43,"tag":197,"props":6631,"children":6632},{"style":204},[6633],{"type":49,"value":255},{"type":43,"tag":197,"props":6635,"children":6636},{"style":216},[6637],{"type":49,"value":260},{"type":43,"tag":197,"props":6639,"children":6640},{"class":199,"line":263},[6641,6645,6650,6654,6658,6663,6667],{"type":43,"tag":197,"props":6642,"children":6643},{"style":204},[6644],{"type":49,"value":269},{"type":43,"tag":197,"props":6646,"children":6647},{"style":210},[6648],{"type":49,"value":6649}," controller",{"type":43,"tag":197,"props":6651,"children":6652},{"style":216},[6653],{"type":49,"value":279},{"type":43,"tag":197,"props":6655,"children":6656},{"style":216},[6657],{"type":49,"value":398},{"type":43,"tag":197,"props":6659,"children":6660},{"style":288},[6661],{"type":49,"value":6662}," AbortController",{"type":43,"tag":197,"props":6664,"children":6665},{"style":294},[6666],{"type":49,"value":489},{"type":43,"tag":197,"props":6668,"children":6669},{"style":216},[6670],{"type":49,"value":331},{"type":43,"tag":197,"props":6672,"children":6673},{"class":199,"line":334},[6674],{"type":43,"tag":197,"props":6675,"children":6676},{"emptyLinePlaceholder":338},[6677],{"type":49,"value":341},{"type":43,"tag":197,"props":6679,"children":6680},{"class":199,"line":344},[6681,6686,6690,6694,6698,6702,6707,6711,6715,6719,6724,6728],{"type":43,"tag":197,"props":6682,"children":6683},{"style":288},[6684],{"type":49,"value":6685},"  fetch",{"type":43,"tag":197,"props":6687,"children":6688},{"style":294},[6689],{"type":49,"value":297},{"type":43,"tag":197,"props":6691,"children":6692},{"style":210},[6693],{"type":49,"value":2523},{"type":43,"tag":197,"props":6695,"children":6696},{"style":216},[6697],{"type":49,"value":614},{"type":43,"tag":197,"props":6699,"children":6700},{"style":216},[6701],{"type":49,"value":1036},{"type":43,"tag":197,"props":6703,"children":6704},{"style":294},[6705],{"type":49,"value":6706}," signal",{"type":43,"tag":197,"props":6708,"children":6709},{"style":216},[6710],{"type":49,"value":186},{"type":43,"tag":197,"props":6712,"children":6713},{"style":210},[6714],{"type":49,"value":6649},{"type":43,"tag":197,"props":6716,"children":6717},{"style":216},[6718],{"type":49,"value":369},{"type":43,"tag":197,"props":6720,"children":6721},{"style":210},[6722],{"type":49,"value":6723},"signal",{"type":43,"tag":197,"props":6725,"children":6726},{"style":216},[6727],{"type":49,"value":1055},{"type":43,"tag":197,"props":6729,"children":6730},{"style":294},[6731],{"type":49,"value":6732},")\n",{"type":43,"tag":197,"props":6734,"children":6735},{"class":199,"line":387},[6736,6741,6746,6750,6754,6758,6762,6766,6770,6774,6778],{"type":43,"tag":197,"props":6737,"children":6738},{"style":216},[6739],{"type":49,"value":6740},"    .",{"type":43,"tag":197,"props":6742,"children":6743},{"style":288},[6744],{"type":49,"value":6745},"then",{"type":43,"tag":197,"props":6747,"children":6748},{"style":294},[6749],{"type":49,"value":297},{"type":43,"tag":197,"props":6751,"children":6752},{"style":216},[6753],{"type":49,"value":297},{"type":43,"tag":197,"props":6755,"children":6756},{"style":232},[6757],{"type":49,"value":364},{"type":43,"tag":197,"props":6759,"children":6760},{"style":216},[6761],{"type":49,"value":250},{"type":43,"tag":197,"props":6763,"children":6764},{"style":204},[6765],{"type":49,"value":255},{"type":43,"tag":197,"props":6767,"children":6768},{"style":210},[6769],{"type":49,"value":274},{"type":43,"tag":197,"props":6771,"children":6772},{"style":216},[6773],{"type":49,"value":369},{"type":43,"tag":197,"props":6775,"children":6776},{"style":288},[6777],{"type":49,"value":484},{"type":43,"tag":197,"props":6779,"children":6780},{"style":294},[6781],{"type":49,"value":6782},"())\n",{"type":43,"tag":197,"props":6784,"children":6785},{"class":199,"line":448},[6786,6790,6794,6798,6803],{"type":43,"tag":197,"props":6787,"children":6788},{"style":216},[6789],{"type":49,"value":6740},{"type":43,"tag":197,"props":6791,"children":6792},{"style":288},[6793],{"type":49,"value":6745},{"type":43,"tag":197,"props":6795,"children":6796},{"style":294},[6797],{"type":49,"value":297},{"type":43,"tag":197,"props":6799,"children":6800},{"style":210},[6801],{"type":49,"value":6802},"setData",{"type":43,"tag":197,"props":6804,"children":6805},{"style":294},[6806],{"type":49,"value":6732},{"type":43,"tag":197,"props":6808,"children":6809},{"class":199,"line":457},[6810,6814,6818,6822,6826,6830,6834,6838],{"type":43,"tag":197,"props":6811,"children":6812},{"style":216},[6813],{"type":49,"value":6740},{"type":43,"tag":197,"props":6815,"children":6816},{"style":288},[6817],{"type":49,"value":2708},{"type":43,"tag":197,"props":6819,"children":6820},{"style":294},[6821],{"type":49,"value":297},{"type":43,"tag":197,"props":6823,"children":6824},{"style":216},[6825],{"type":49,"value":297},{"type":43,"tag":197,"props":6827,"children":6828},{"style":232},[6829],{"type":49,"value":919},{"type":43,"tag":197,"props":6831,"children":6832},{"style":216},[6833],{"type":49,"value":250},{"type":43,"tag":197,"props":6835,"children":6836},{"style":204},[6837],{"type":49,"value":255},{"type":43,"tag":197,"props":6839,"children":6840},{"style":216},[6841],{"type":49,"value":260},{"type":43,"tag":197,"props":6843,"children":6844},{"class":199,"line":465},[6845,6849,6853,6857,6861,6865,6870,6874,6879,6883,6887],{"type":43,"tag":197,"props":6846,"children":6847},{"style":282},[6848],{"type":49,"value":3339},{"type":43,"tag":197,"props":6850,"children":6851},{"style":294},[6852],{"type":49,"value":229},{"type":43,"tag":197,"props":6854,"children":6855},{"style":210},[6856],{"type":49,"value":919},{"type":43,"tag":197,"props":6858,"children":6859},{"style":216},[6860],{"type":49,"value":369},{"type":43,"tag":197,"props":6862,"children":6863},{"style":210},[6864],{"type":49,"value":2452},{"type":43,"tag":197,"props":6866,"children":6867},{"style":216},[6868],{"type":49,"value":6869}," !==",{"type":43,"tag":197,"props":6871,"children":6872},{"style":216},[6873],{"type":49,"value":635},{"type":43,"tag":197,"props":6875,"children":6876},{"style":305},[6877],{"type":49,"value":6878},"AbortError",{"type":43,"tag":197,"props":6880,"children":6881},{"style":216},[6882],{"type":49,"value":600},{"type":43,"tag":197,"props":6884,"children":6885},{"style":294},[6886],{"type":49,"value":379},{"type":43,"tag":197,"props":6888,"children":6889},{"style":216},[6890],{"type":49,"value":384},{"type":43,"tag":197,"props":6892,"children":6893},{"class":199,"line":496},[6894,6899,6903,6907,6911],{"type":43,"tag":197,"props":6895,"children":6896},{"style":288},[6897],{"type":49,"value":6898},"        setError",{"type":43,"tag":197,"props":6900,"children":6901},{"style":294},[6902],{"type":49,"value":297},{"type":43,"tag":197,"props":6904,"children":6905},{"style":210},[6906],{"type":49,"value":919},{"type":43,"tag":197,"props":6908,"children":6909},{"style":294},[6910],{"type":49,"value":250},{"type":43,"tag":197,"props":6912,"children":6913},{"style":216},[6914],{"type":49,"value":331},{"type":43,"tag":197,"props":6916,"children":6917},{"class":199,"line":811},[6918],{"type":43,"tag":197,"props":6919,"children":6920},{"style":216},[6921],{"type":49,"value":6922},"      }\n",{"type":43,"tag":197,"props":6924,"children":6925},{"class":199,"line":819},[6926,6930,6934],{"type":43,"tag":197,"props":6927,"children":6928},{"style":216},[6929],{"type":49,"value":3311},{"type":43,"tag":197,"props":6931,"children":6932},{"style":294},[6933],{"type":49,"value":250},{"type":43,"tag":197,"props":6935,"children":6936},{"style":216},[6937],{"type":49,"value":331},{"type":43,"tag":197,"props":6939,"children":6940},{"class":199,"line":855},[6941],{"type":43,"tag":197,"props":6942,"children":6943},{"emptyLinePlaceholder":338},[6944],{"type":49,"value":341},{"type":43,"tag":197,"props":6946,"children":6947},{"class":199,"line":897},[6948,6952,6956,6960,6964,6968,6973,6977],{"type":43,"tag":197,"props":6949,"children":6950},{"style":282},[6951],{"type":49,"value":471},{"type":43,"tag":197,"props":6953,"children":6954},{"style":216},[6955],{"type":49,"value":1628},{"type":43,"tag":197,"props":6957,"children":6958},{"style":204},[6959],{"type":49,"value":255},{"type":43,"tag":197,"props":6961,"children":6962},{"style":210},[6963],{"type":49,"value":6649},{"type":43,"tag":197,"props":6965,"children":6966},{"style":216},[6967],{"type":49,"value":369},{"type":43,"tag":197,"props":6969,"children":6970},{"style":288},[6971],{"type":49,"value":6972},"abort",{"type":43,"tag":197,"props":6974,"children":6975},{"style":294},[6976],{"type":49,"value":489},{"type":43,"tag":197,"props":6978,"children":6979},{"style":216},[6980],{"type":49,"value":331},{"type":43,"tag":197,"props":6982,"children":6983},{"class":199,"line":939},[6984,6989,6994],{"type":43,"tag":197,"props":6985,"children":6986},{"style":216},[6987],{"type":49,"value":6988},"},",{"type":43,"tag":197,"props":6990,"children":6991},{"style":210},[6992],{"type":49,"value":6993}," [url])",{"type":43,"tag":197,"props":6995,"children":6996},{"style":216},[6997],{"type":49,"value":331},{"type":43,"tag":52,"props":6999,"children":7000},{},[7001,7006],{"type":43,"tag":56,"props":7002,"children":7003},{},[7004],{"type":49,"value":7005},"With React Query",{"type":49,"value":7007}," (automatic):",{"type":43,"tag":74,"props":7009,"children":7011},{"className":189,"code":7010,"language":191,"meta":83,"style":83},"\u002F\u002F React Query automatically cancels requests when queries are invalidated\n\u002F\u002F or components unmount\n",[7012],{"type":43,"tag":81,"props":7013,"children":7014},{"__ignoreMap":83},[7015,7023],{"type":43,"tag":197,"props":7016,"children":7017},{"class":199,"line":200},[7018],{"type":43,"tag":197,"props":7019,"children":7020},{"style":1020},[7021],{"type":49,"value":7022},"\u002F\u002F React Query automatically cancels requests when queries are invalidated\n",{"type":43,"tag":197,"props":7024,"children":7025},{"class":199,"line":263},[7026],{"type":43,"tag":197,"props":7027,"children":7028},{"style":1020},[7029],{"type":49,"value":7030},"\u002F\u002F or components unmount\n",{"type":43,"tag":990,"props":7032,"children":7033},{},[],{"type":43,"tag":62,"props":7035,"children":7037},{"id":7036},"decision-tree",[7038],{"type":49,"value":7039},"Decision Tree",{"type":43,"tag":74,"props":7041,"children":7044},{"className":7042,"code":7043,"language":49},[77],"User asks about networking\n  |-- Route-level data loading (web, SDK 55+)?\n  |   \\-- Expo Router loaders — see references\u002Fexpo-router-loaders.md\n  |\n  |-- Basic fetch?\n  |   \\-- Use fetch API with error handling\n  |\n  |-- Need caching\u002Fstate management?\n  |   |-- Complex app -> React Query (TanStack Query)\n  |   \\-- Simpler needs -> SWR or custom hooks\n  |\n  |-- Authentication?\n  |   |-- Token storage -> expo-secure-store\n  |   \\-- Token refresh -> Implement refresh flow\n  |\n  |-- Error handling?\n  |   |-- Network errors -> Check connectivity first\n  |   |-- HTTP errors -> Parse response, throw typed errors\n  |   \\-- Retries -> Exponential backoff\n  |\n  |-- Offline support?\n  |   |-- Check status -> NetInfo\n  |   \\-- Queue requests -> React Query persistence\n  |\n  |-- Environment\u002FAPI config?\n  |   |-- Client-side URLs -> EXPO_PUBLIC_ prefix in .env\n  |   |-- Server secrets -> Non-prefixed env vars (API routes only)\n  |   \\-- Multiple environments -> .env.development, .env.production\n  |\n  \\-- Performance?\n      |-- Caching -> React Query with staleTime\n      |-- Deduplication -> React Query handles this\n      \\-- Cancellation -> AbortController or React Query\n",[7045],{"type":43,"tag":81,"props":7046,"children":7047},{"__ignoreMap":83},[7048],{"type":49,"value":7043},{"type":43,"tag":62,"props":7050,"children":7052},{"id":7051},"common-mistakes",[7053],{"type":49,"value":7054},"Common Mistakes",{"type":43,"tag":52,"props":7056,"children":7057},{},[7058],{"type":43,"tag":56,"props":7059,"children":7060},{},[7061],{"type":49,"value":7062},"Wrong: No error handling",{"type":43,"tag":74,"props":7064,"children":7066},{"className":189,"code":7065,"language":191,"meta":83,"style":83},"const data = await fetch(url).then((r) => r.json());\n",[7067],{"type":43,"tag":81,"props":7068,"children":7069},{"__ignoreMap":83},[7070],{"type":43,"tag":197,"props":7071,"children":7072},{"class":199,"line":200},[7073,7077,7082,7086,7090,7094,7099,7103,7107,7111,7115,7119,7123,7127,7132,7136,7140,7145],{"type":43,"tag":197,"props":7074,"children":7075},{"style":204},[7076],{"type":49,"value":207},{"type":43,"tag":197,"props":7078,"children":7079},{"style":210},[7080],{"type":49,"value":7081}," data ",{"type":43,"tag":197,"props":7083,"children":7084},{"style":216},[7085],{"type":49,"value":219},{"type":43,"tag":197,"props":7087,"children":7088},{"style":282},[7089],{"type":49,"value":285},{"type":43,"tag":197,"props":7091,"children":7092},{"style":288},[7093],{"type":49,"value":291},{"type":43,"tag":197,"props":7095,"children":7096},{"style":210},[7097],{"type":49,"value":7098},"(url)",{"type":43,"tag":197,"props":7100,"children":7101},{"style":216},[7102],{"type":49,"value":369},{"type":43,"tag":197,"props":7104,"children":7105},{"style":288},[7106],{"type":49,"value":6745},{"type":43,"tag":197,"props":7108,"children":7109},{"style":210},[7110],{"type":49,"value":297},{"type":43,"tag":197,"props":7112,"children":7113},{"style":216},[7114],{"type":49,"value":297},{"type":43,"tag":197,"props":7116,"children":7117},{"style":232},[7118],{"type":49,"value":3422},{"type":43,"tag":197,"props":7120,"children":7121},{"style":216},[7122],{"type":49,"value":250},{"type":43,"tag":197,"props":7124,"children":7125},{"style":204},[7126],{"type":49,"value":255},{"type":43,"tag":197,"props":7128,"children":7129},{"style":210},[7130],{"type":49,"value":7131}," r",{"type":43,"tag":197,"props":7133,"children":7134},{"style":216},[7135],{"type":49,"value":369},{"type":43,"tag":197,"props":7137,"children":7138},{"style":288},[7139],{"type":49,"value":484},{"type":43,"tag":197,"props":7141,"children":7142},{"style":210},[7143],{"type":49,"value":7144},"())",{"type":43,"tag":197,"props":7146,"children":7147},{"style":216},[7148],{"type":49,"value":331},{"type":43,"tag":52,"props":7150,"children":7151},{},[7152],{"type":43,"tag":56,"props":7153,"children":7154},{},[7155],{"type":49,"value":7156},"Right: Check response status",{"type":43,"tag":74,"props":7158,"children":7160},{"className":189,"code":7159,"language":191,"meta":83,"style":83},"const response = await fetch(url);\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\n",[7161],{"type":43,"tag":81,"props":7162,"children":7163},{"__ignoreMap":83},[7164,7196,7276],{"type":43,"tag":197,"props":7165,"children":7166},{"class":199,"line":200},[7167,7171,7176,7180,7184,7188,7192],{"type":43,"tag":197,"props":7168,"children":7169},{"style":204},[7170],{"type":49,"value":207},{"type":43,"tag":197,"props":7172,"children":7173},{"style":210},[7174],{"type":49,"value":7175}," response ",{"type":43,"tag":197,"props":7177,"children":7178},{"style":216},[7179],{"type":49,"value":219},{"type":43,"tag":197,"props":7181,"children":7182},{"style":282},[7183],{"type":49,"value":285},{"type":43,"tag":197,"props":7185,"children":7186},{"style":288},[7187],{"type":49,"value":291},{"type":43,"tag":197,"props":7189,"children":7190},{"style":210},[7191],{"type":49,"value":7098},{"type":43,"tag":197,"props":7193,"children":7194},{"style":216},[7195],{"type":49,"value":331},{"type":43,"tag":197,"props":7197,"children":7198},{"class":199,"line":263},[7199,7203,7207,7211,7215,7219,7224,7228,7232,7236,7240,7244,7248,7252,7256,7260,7264,7268,7272],{"type":43,"tag":197,"props":7200,"children":7201},{"style":282},[7202],{"type":49,"value":5612},{"type":43,"tag":197,"props":7204,"children":7205},{"style":210},[7206],{"type":49,"value":229},{"type":43,"tag":197,"props":7208,"children":7209},{"style":216},[7210],{"type":49,"value":359},{"type":43,"tag":197,"props":7212,"children":7213},{"style":210},[7214],{"type":49,"value":364},{"type":43,"tag":197,"props":7216,"children":7217},{"style":216},[7218],{"type":49,"value":369},{"type":43,"tag":197,"props":7220,"children":7221},{"style":210},[7222],{"type":49,"value":7223},"ok) ",{"type":43,"tag":197,"props":7225,"children":7226},{"style":282},[7227],{"type":49,"value":3376},{"type":43,"tag":197,"props":7229,"children":7230},{"style":216},[7231],{"type":49,"value":398},{"type":43,"tag":197,"props":7233,"children":7234},{"style":288},[7235],{"type":49,"value":403},{"type":43,"tag":197,"props":7237,"children":7238},{"style":210},[7239],{"type":49,"value":297},{"type":43,"tag":197,"props":7241,"children":7242},{"style":216},[7243],{"type":49,"value":302},{"type":43,"tag":197,"props":7245,"children":7246},{"style":305},[7247],{"type":49,"value":5893},{"type":43,"tag":197,"props":7249,"children":7250},{"style":216},[7251],{"type":49,"value":313},{"type":43,"tag":197,"props":7253,"children":7254},{"style":210},[7255],{"type":49,"value":364},{"type":43,"tag":197,"props":7257,"children":7258},{"style":216},[7259],{"type":49,"value":369},{"type":43,"tag":197,"props":7261,"children":7262},{"style":210},[7263],{"type":49,"value":433},{"type":43,"tag":197,"props":7265,"children":7266},{"style":216},[7267],{"type":49,"value":322},{"type":43,"tag":197,"props":7269,"children":7270},{"style":210},[7271],{"type":49,"value":250},{"type":43,"tag":197,"props":7273,"children":7274},{"style":216},[7275],{"type":49,"value":331},{"type":43,"tag":197,"props":7277,"children":7278},{"class":199,"line":334},[7279,7283,7287,7291,7295,7299,7303,7307,7311],{"type":43,"tag":197,"props":7280,"children":7281},{"style":204},[7282],{"type":49,"value":207},{"type":43,"tag":197,"props":7284,"children":7285},{"style":210},[7286],{"type":49,"value":7081},{"type":43,"tag":197,"props":7288,"children":7289},{"style":216},[7290],{"type":49,"value":219},{"type":43,"tag":197,"props":7292,"children":7293},{"style":282},[7294],{"type":49,"value":285},{"type":43,"tag":197,"props":7296,"children":7297},{"style":210},[7298],{"type":49,"value":274},{"type":43,"tag":197,"props":7300,"children":7301},{"style":216},[7302],{"type":49,"value":369},{"type":43,"tag":197,"props":7304,"children":7305},{"style":288},[7306],{"type":49,"value":484},{"type":43,"tag":197,"props":7308,"children":7309},{"style":210},[7310],{"type":49,"value":489},{"type":43,"tag":197,"props":7312,"children":7313},{"style":216},[7314],{"type":49,"value":331},{"type":43,"tag":52,"props":7316,"children":7317},{},[7318],{"type":43,"tag":56,"props":7319,"children":7320},{},[7321],{"type":49,"value":7322},"Wrong: Storing tokens in AsyncStorage",{"type":43,"tag":74,"props":7324,"children":7326},{"className":189,"code":7325,"language":191,"meta":83,"style":83},"await AsyncStorage.setItem(\"token\", token); \u002F\u002F Not secure!\n",[7327],{"type":43,"tag":81,"props":7328,"children":7329},{"__ignoreMap":83},[7330],{"type":43,"tag":197,"props":7331,"children":7332},{"class":199,"line":200},[7333,7338,7343,7347,7352,7356,7360,7364,7368,7372,7376,7380],{"type":43,"tag":197,"props":7334,"children":7335},{"style":282},[7336],{"type":49,"value":7337},"await",{"type":43,"tag":197,"props":7339,"children":7340},{"style":210},[7341],{"type":49,"value":7342}," AsyncStorage",{"type":43,"tag":197,"props":7344,"children":7345},{"style":216},[7346],{"type":49,"value":369},{"type":43,"tag":197,"props":7348,"children":7349},{"style":288},[7350],{"type":49,"value":7351},"setItem",{"type":43,"tag":197,"props":7353,"children":7354},{"style":210},[7355],{"type":49,"value":297},{"type":43,"tag":197,"props":7357,"children":7358},{"style":216},[7359],{"type":49,"value":600},{"type":43,"tag":197,"props":7361,"children":7362},{"style":305},[7363],{"type":49,"value":734},{"type":43,"tag":197,"props":7365,"children":7366},{"style":216},[7367],{"type":49,"value":600},{"type":43,"tag":197,"props":7369,"children":7370},{"style":216},[7371],{"type":49,"value":614},{"type":43,"tag":197,"props":7373,"children":7374},{"style":210},[7375],{"type":49,"value":3766},{"type":43,"tag":197,"props":7377,"children":7378},{"style":216},[7379],{"type":49,"value":3216},{"type":43,"tag":197,"props":7381,"children":7382},{"style":1020},[7383],{"type":49,"value":7384}," \u002F\u002F Not secure!\n",{"type":43,"tag":52,"props":7386,"children":7387},{},[7388],{"type":43,"tag":56,"props":7389,"children":7390},{},[7391],{"type":49,"value":7392},"Right: Use SecureStore for sensitive data",{"type":43,"tag":74,"props":7394,"children":7396},{"className":189,"code":7395,"language":191,"meta":83,"style":83},"await SecureStore.setItemAsync(\"token\", token);\n",[7397],{"type":43,"tag":81,"props":7398,"children":7399},{"__ignoreMap":83},[7400],{"type":43,"tag":197,"props":7401,"children":7402},{"class":199,"line":200},[7403,7407,7411,7415,7419,7423,7427,7431,7435,7439,7443],{"type":43,"tag":197,"props":7404,"children":7405},{"style":282},[7406],{"type":49,"value":7337},{"type":43,"tag":197,"props":7408,"children":7409},{"style":210},[7410],{"type":49,"value":3685},{"type":43,"tag":197,"props":7412,"children":7413},{"style":216},[7414],{"type":49,"value":369},{"type":43,"tag":197,"props":7416,"children":7417},{"style":288},[7418],{"type":49,"value":3752},{"type":43,"tag":197,"props":7420,"children":7421},{"style":210},[7422],{"type":49,"value":297},{"type":43,"tag":197,"props":7424,"children":7425},{"style":216},[7426],{"type":49,"value":600},{"type":43,"tag":197,"props":7428,"children":7429},{"style":305},[7430],{"type":49,"value":734},{"type":43,"tag":197,"props":7432,"children":7433},{"style":216},[7434],{"type":49,"value":600},{"type":43,"tag":197,"props":7436,"children":7437},{"style":216},[7438],{"type":49,"value":614},{"type":43,"tag":197,"props":7440,"children":7441},{"style":210},[7442],{"type":49,"value":3766},{"type":43,"tag":197,"props":7444,"children":7445},{"style":216},[7446],{"type":49,"value":331},{"type":43,"tag":62,"props":7448,"children":7450},{"id":7449},"example-invocations",[7451],{"type":49,"value":7452},"Example Invocations",{"type":43,"tag":52,"props":7454,"children":7455},{},[7456],{"type":49,"value":7457},"User: \"How do I make API calls in React Native?\"\n-> Use fetch, wrap with error handling",{"type":43,"tag":52,"props":7459,"children":7460},{},[7461],{"type":49,"value":7462},"User: \"Should I use React Query or SWR?\"\n-> React Query for complex apps, SWR for simpler needs",{"type":43,"tag":52,"props":7464,"children":7465},{},[7466],{"type":49,"value":7467},"User: \"My app needs to work offline\"\n-> Use NetInfo for status, React Query persistence for caching",{"type":43,"tag":52,"props":7469,"children":7470},{},[7471],{"type":49,"value":7472},"User: \"How do I handle authentication tokens?\"\n-> Store in expo-secure-store, implement refresh flow",{"type":43,"tag":52,"props":7474,"children":7475},{},[7476],{"type":49,"value":7477},"User: \"API calls are slow\"\n-> Check caching strategy, use React Query staleTime",{"type":43,"tag":52,"props":7479,"children":7480},{},[7481,7483,7489],{"type":49,"value":7482},"User: \"How do I configure different API URLs for dev and prod?\"\n-> Use EXPO",{"type":43,"tag":7484,"props":7485,"children":7486},"em",{},[7487],{"type":49,"value":7488},"PUBLIC",{"type":49,"value":7490}," env vars with .env.development and .env.production files",{"type":43,"tag":52,"props":7492,"children":7493},{},[7494,7496,7500],{"type":49,"value":7495},"User: \"Where should I put my API key?\"\n-> Client-safe keys: EXPO",{"type":43,"tag":7484,"props":7497,"children":7498},{},[7499],{"type":49,"value":7488},{"type":49,"value":7501}," in .env. Secret keys: non-prefixed env vars in API routes only",{"type":43,"tag":52,"props":7503,"children":7504},{},[7505],{"type":49,"value":7506},"User: \"How do I load data for a page in Expo Router?\"\n-> See references\u002Fexpo-router-loaders.md for route-level loaders (web, SDK 55+). For native, use React Query or fetch.",{"type":43,"tag":7508,"props":7509,"children":7510},"style",{},[7511],{"type":49,"value":7512},"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":7514,"total":7717},[7515,7536,7559,7576,7590,7609,7628,7644,7660,7674,7686,7701],{"slug":7516,"name":7516,"fn":7517,"description":7518,"org":7519,"tags":7520,"stars":7533,"repoUrl":7534,"updatedAt":7535},"prior-auth-packet-builder","build healthcare prior authorization packets","Build a concise prior authorization packet from local case files and payer policy docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7521,7524,7527,7530],{"name":7522,"slug":7523,"type":15},"Documents","documents",{"name":7525,"slug":7526,"type":15},"Healthcare","healthcare",{"name":7528,"slug":7529,"type":15},"Insurance","insurance",{"name":7531,"slug":7532,"type":15},"Regulatory Compliance","regulatory-compliance",28169,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python","2026-04-16T05:11:39.180399",{"slug":7537,"name":7537,"fn":7538,"description":7539,"org":7540,"tags":7541,"stars":7556,"repoUrl":7557,"updatedAt":7558},"aspnet-core","build ASP.NET Core web applications","Build, review, refactor, or architect ASP.NET Core web applications using current official guidance for .NET web development. Use when working on Blazor Web Apps, Razor Pages, MVC, Minimal APIs, controller-based Web APIs, SignalR, gRPC, middleware, dependency injection, configuration, authentication, authorization, testing, performance, deployment, or ASP.NET Core upgrades.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7542,7545,7547,7550,7553],{"name":7543,"slug":7544,"type":15},".NET","dotnet",{"name":7546,"slug":7537,"type":15},"ASP.NET Core",{"name":7548,"slug":7549,"type":15},"Blazor","blazor",{"name":7551,"slug":7552,"type":15},"C#","csharp",{"name":7554,"slug":7555,"type":15},"Web Development","web-development",23787,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills","2026-04-12T05:07:02.819491",{"slug":7560,"name":7560,"fn":7561,"description":7562,"org":7563,"tags":7564,"stars":7556,"repoUrl":7557,"updatedAt":7575},"chatgpt-apps","build ChatGPT Apps SDK applications","Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7565,7568,7571,7574],{"name":7566,"slug":7567,"type":15},"Apps SDK","apps-sdk",{"name":7569,"slug":7570,"type":15},"ChatGPT","chatgpt",{"name":7572,"slug":7573,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},"2026-04-12T05:07:05.468097",{"slug":7577,"name":7577,"fn":7578,"description":7579,"org":7580,"tags":7581,"stars":7556,"repoUrl":7557,"updatedAt":7589},"cli-creator","build CLIs from API docs","Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. Use when the user wants Codex to create a command-line tool that can run from any repo, expose composable read\u002Fwrite commands, return stable JSON, manage auth, and pair with a companion skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7582,7583,7586],{"name":20,"slug":21,"type":15},{"name":7584,"slug":7585,"type":15},"CLI","cli",{"name":7587,"slug":7588,"type":15},"Codex","codex","2026-04-12T05:07:04.132762",{"slug":7591,"name":7591,"fn":7592,"description":7593,"org":7594,"tags":7595,"stars":7556,"repoUrl":7557,"updatedAt":7608},"cloudflare-deploy","deploy projects to Cloudflare","Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7596,7599,7602,7605],{"name":7597,"slug":7598,"type":15},"Cloudflare","cloudflare",{"name":7600,"slug":7601,"type":15},"Cloudflare Pages","cloudflare-pages",{"name":7603,"slug":7604,"type":15},"Cloudflare Workers","cloudflare-workers",{"name":7606,"slug":7607,"type":15},"Deployment","deployment","2026-04-12T05:07:14.275118",{"slug":7610,"name":7610,"fn":7611,"description":7612,"org":7613,"tags":7614,"stars":7556,"repoUrl":7557,"updatedAt":7627},"define-goal","define and set measurable project goals","Help the user define a concrete, measurable goal before starting work, especially when they ask to use the goal tool, create a goal, set an objective, clarify success criteria, or turn a fuzzy intention into a quantitative outcome. Use this skill for goal creation and goal refinement only; it does not manage durable snapshots, decision logs, or long-running execution artifacts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7615,7618,7621,7624],{"name":7616,"slug":7617,"type":15},"Productivity","productivity",{"name":7619,"slug":7620,"type":15},"Project Management","project-management",{"name":7622,"slug":7623,"type":15},"Strategy","strategy",{"name":7625,"slug":7626,"type":15},"Task Management","task-management","2026-05-23T06:17:16.870838",{"slug":7629,"name":7629,"fn":7630,"description":7631,"org":7632,"tags":7633,"stars":7556,"repoUrl":7557,"updatedAt":7643},"figma","translate Figma designs into code","Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7634,7637,7639,7642],{"name":7635,"slug":7636,"type":15},"Design","design",{"name":7638,"slug":7629,"type":15},"Figma",{"name":7640,"slug":7641,"type":15},"Frontend","frontend",{"name":7572,"slug":7573,"type":15},"2026-04-12T05:06:47.939943",{"slug":7645,"name":7645,"fn":7646,"description":7647,"org":7648,"tags":7649,"stars":7556,"repoUrl":7557,"updatedAt":7659},"figma-code-connect-components","connect Figma designs to code components","Connects Figma design components to code components using Code Connect mapping tools. Use when user says \"code connect\", \"connect this component to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", or wants to establish mappings between Figma designs and code implementations. For canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7650,7651,7654,7655,7656],{"name":7635,"slug":7636,"type":15},{"name":7652,"slug":7653,"type":15},"Design System","design-system",{"name":7638,"slug":7629,"type":15},{"name":7640,"slug":7641,"type":15},{"name":7657,"slug":7658,"type":15},"UI Components","ui-components","2026-05-10T05:59:52.971881",{"slug":7661,"name":7661,"fn":7662,"description":7663,"org":7664,"tags":7665,"stars":7556,"repoUrl":7557,"updatedAt":7673},"figma-create-design-system-rules","generate design system rules from Figma","Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7666,7667,7668,7671,7672],{"name":7635,"slug":7636,"type":15},{"name":7652,"slug":7653,"type":15},{"name":7669,"slug":7670,"type":15},"Documentation","documentation",{"name":7638,"slug":7629,"type":15},{"name":7640,"slug":7641,"type":15},"2026-05-16T06:07:47.821474",{"slug":7675,"name":7675,"fn":7676,"description":7677,"org":7678,"tags":7679,"stars":7556,"repoUrl":7557,"updatedAt":7685},"figma-implement-design","translate Figma designs into application code","Translates Figma designs into production-ready application code with 1:1 visual fidelity. Use when implementing UI code from Figma files, when user mentions \"implement design\", \"generate code\", \"implement component\", provides Figma URLs, or asks to build components matching Figma specs. For Figma canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7680,7681,7682,7683,7684],{"name":7635,"slug":7636,"type":15},{"name":7638,"slug":7629,"type":15},{"name":7640,"slug":7641,"type":15},{"name":7657,"slug":7658,"type":15},{"name":7554,"slug":7555,"type":15},"2026-05-16T06:07:40.583615",{"slug":7687,"name":7687,"fn":7688,"description":7689,"org":7690,"tags":7691,"stars":7556,"repoUrl":7557,"updatedAt":7700},"hatch-pet","create animated pets for Codex","Create, repair, validate, visually QA, and package Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual references. Use when a user wants a lightweight-worker Codex pet workflow, a non-pixel custom pet style, a prospect or company mascot pet, or a full 8x9 animated pet atlas with transparent unused cells, QA contact sheets, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7692,7695,7696,7699],{"name":7693,"slug":7694,"type":15},"Animation","animation",{"name":7587,"slug":7588,"type":15},{"name":7697,"slug":7698,"type":15},"Creative","creative",{"name":7635,"slug":7636,"type":15},"2026-05-02T05:31:48.48485",{"slug":7702,"name":7702,"fn":7703,"description":7704,"org":7705,"tags":7706,"stars":7556,"repoUrl":7557,"updatedAt":7716},"imagegen","generate and edit raster images","Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG\u002Fvector\u002Fcode-native assets, extending an established icon or logo system, or building the visual directly in HTML\u002FCSS\u002Fcanvas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7707,7708,7709,7712,7715],{"name":7697,"slug":7698,"type":15},{"name":7635,"slug":7636,"type":15},{"name":7710,"slug":7711,"type":15},"Image Generation","image-generation",{"name":7713,"slug":7714,"type":15},"Images","images",{"name":9,"slug":8,"type":15},"2026-05-15T06:23:24.312127",675,{"items":7719,"total":7833},[7720,7737,7753,7765,7783,7801,7821],{"slug":7721,"name":7721,"fn":7722,"description":7723,"org":7724,"tags":7725,"stars":25,"repoUrl":26,"updatedAt":7736},"accessibility-and-inclusive-visualization","make data visualizations accessible","Make data visualizations accessible and inclusive. Use when the user needs chart or diagram accessibility guidance, text alternatives for complex visuals, color and contrast review, keyboard support, reduced-motion behavior for animation or parallax, or an accessibility QA workflow for exported figures, UML-like diagrams, and dashboards.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7726,7729,7732,7735],{"name":7727,"slug":7728,"type":15},"Accessibility","accessibility",{"name":7730,"slug":7731,"type":15},"Charts","charts",{"name":7733,"slug":7734,"type":15},"Data Visualization","data-visualization",{"name":7635,"slug":7636,"type":15},"2026-06-30T19:00:57.102",{"slug":7738,"name":7738,"fn":7739,"description":7740,"org":7741,"tags":7742,"stars":25,"repoUrl":26,"updatedAt":7752},"agent-browser","automate browser interactions for agents","Browser automation CLI for AI agents. Use when the user needs to interact with websites, verify dev server output, test web apps, navigate pages, fill forms, click buttons, take screenshots, extract data, or automate any browser task. Also triggers when a dev server starts so you can verify it visually.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7743,7746,7749],{"name":7744,"slug":7745,"type":15},"Agents","agents",{"name":7747,"slug":7748,"type":15},"Browser Automation","browser-automation",{"name":7750,"slug":7751,"type":15},"Testing","testing","2026-04-06T18:41:03.44016",{"slug":7754,"name":7754,"fn":7755,"description":7756,"org":7757,"tags":7758,"stars":25,"repoUrl":26,"updatedAt":7764},"agent-browser-verify","verify dev server output with automated browser","Automated browser verification for dev servers. Triggers when a dev server starts to run a visual gut-check with agent-browser — verifies the page loads, checks for console errors, validates key UI elements, and reports pass\u002Ffail before continuing.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7759,7760,7763],{"name":7747,"slug":7748,"type":15},{"name":7761,"slug":7762,"type":15},"Local Development","local-development",{"name":7750,"slug":7751,"type":15},"2026-04-06T18:41:17.526867",{"slug":7766,"name":7766,"fn":7767,"description":7768,"org":7769,"tags":7770,"stars":25,"repoUrl":26,"updatedAt":7782},"agents-sdk","build AI agents on Cloudflare Workers","Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7771,7772,7773,7776,7779],{"name":7744,"slug":7745,"type":15},{"name":7603,"slug":7604,"type":15},{"name":7774,"slug":7775,"type":15},"SDK","sdk",{"name":7777,"slug":7778,"type":15},"Serverless","serverless",{"name":7780,"slug":7781,"type":15},"WebSockets","websockets","2026-04-06T18:39:51.717063",{"slug":7784,"name":7784,"fn":7785,"description":7786,"org":7787,"tags":7788,"stars":25,"repoUrl":26,"updatedAt":7800},"ai-elements","build chat UIs with AI Elements","AI Elements component library guidance — pre-built React components for AI interfaces built on shadcn\u002Fui. Use when building chat UIs, message displays, tool call rendering, streaming responses, reasoning panels, or any AI-native interface with the AI SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7789,7790,7793,7796,7797],{"name":7640,"slug":7641,"type":15},{"name":7791,"slug":7792,"type":15},"React","react",{"name":7794,"slug":7795,"type":15},"shadcn\u002Fui","shadcn-ui",{"name":7657,"slug":7658,"type":15},{"name":7798,"slug":7799,"type":15},"Vercel","vercel","2026-04-06T18:40:59.619419",{"slug":7802,"name":7802,"fn":7803,"description":7804,"org":7805,"tags":7806,"stars":25,"repoUrl":26,"updatedAt":7820},"ai-gateway","configure Vercel AI Gateway","Vercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7807,7810,7813,7816,7819],{"name":7808,"slug":7809,"type":15},"AI Infrastructure","ai-infrastructure",{"name":7811,"slug":7812,"type":15},"Cost Optimization","cost-optimization",{"name":7814,"slug":7815,"type":15},"LLM","llm",{"name":7817,"slug":7818,"type":15},"Performance","performance",{"name":7798,"slug":7799,"type":15},"2026-04-06T18:40:44.377464",{"slug":7822,"name":7822,"fn":7823,"description":7824,"org":7825,"tags":7826,"stars":25,"repoUrl":26,"updatedAt":7832},"ai-generation-persistence","implement persistence patterns for AI generations","AI generation persistence patterns — unique IDs, addressable URLs, database storage, and cost tracking for every LLM generation",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7827,7828,7831],{"name":7811,"slug":7812,"type":15},{"name":7829,"slug":7830,"type":15},"Database","database",{"name":7814,"slug":7815,"type":15},"2026-04-06T18:41:08.513425",600]