[{"data":1,"prerenderedAt":2085},["ShallowReactive",2],{"navLinks":3,"sidebar_docs_navigation_\u002Fdocs\u002Fauth-h3client":64,"navigation":217,"navLinks_footer":829,"\u002Fdocs\u002Fauth-h3client\u002Fclient\u002Fuse-auth-data_page":842,"\u002Fdocs\u002Fauth-h3client\u002Fclient\u002Fuse-auth-data_surround":1562,"\u002Fdocs\u002Fauth-h3client\u002Fclient\u002Fuse-auth-data":1565},{"id":4,"extension":5,"links":6,"meta":61,"stem":62,"__hash__":63},"navigationMenu\u002Fnavigation.json","json",[7,52,57],{"nested":8,"label":9,"icon":10,"to":11,"children":12},true,"Docs","i-lucide-book-open","\u002Fdocs\u002Fgetting-started",[13,19,26,32,39,45],{"label":14,"icon":15,"to":11,"description":16,"github":17,"badge":18},"Getting Started","i-lucide-rocket","An introduction to help you understand the core components.","https:\u002F\u002Fgithub.com\u002FSergo706\u002Fdocshub","Start Here",{"label":20,"icon":21,"to":22,"description":23,"github":24,"badge":25},"Auth H3 Client","i-lucide-key-round","\u002Fdocs\u002Fauth-h3client","Seamlessly enforce OAuth 2.0 authentication and session management integrated directly as the client of the IAM module.","https:\u002F\u002Fgithub.com\u002FSergo706\u002Fauth-h3client","Core",{"label":27,"icon":28,"to":29,"description":30,"github":31,"badge":25},"IAM","i-lucide-shield-check","\u002Fdocs\u002Fiam","Identity and Access Management featuring granular roles, permissions, and security policies.","https:\u002F\u002Fgithub.com\u002FSergo706\u002Fauth",{"label":33,"icon":34,"to":35,"description":36,"github":37,"badge":38},"Bot Detection","i-lucide-cpu","\u002Fdocs\u002Fbot-detection","Advanced behavioral analysis and request fingerprinting to stop malicious automated traffic.","https:\u002F\u002Fgithub.com\u002FSergo706\u002Fbot-detector","Security",{"label":40,"icon":41,"to":42,"description":43,"github":44,"badge":38},"Shield Base","i-lucide-database-zap","\u002Fdocs\u002Fshield-base","CLI and programmatic toolkit for compiling offline-ready IP intelligence databases from BGP, GeoIP, Tor, FireHOL, and other public threat feeds.","https:\u002F\u002Fgithub.com\u002FSergo706\u002Fshield-base-cli",{"label":46,"icon":47,"to":48,"description":49,"github":50,"badge":51},"Utils","i-lucide-wrench","\u002Fdocs\u002Futils","A standard library of highly optimized helpers for formatting, validation, and core logic.","https:\u002F\u002Fgithub.com\u002FSergo706\u002Futils","Library",{"nested":53,"label":54,"icon":55,"to":56},false,"Blog","i-lucide-pen-line","\u002Fblog",{"nested":53,"label":58,"icon":59,"to":60},"Website","lucide:app-window-mac","https:\u002F\u002Friavzon.com",{},"navigation","gkaQ0xRGxSLrLyM3kttLe0oBwkrR1EBjlepF8LSbwF8",[65],{"title":9,"path":66,"stem":67,"children":68,"page":53},"\u002Fdocs","docs",[69],{"title":20,"path":22,"stem":70,"children":71},"docs\u002Fauth-h3client\u002Findex",[72,73,82,119,145,167,170,191,195],{"title":20,"path":22,"stem":70},{"title":14,"path":74,"stem":75,"children":76},"\u002Fdocs\u002Fauth-h3client\u002Fgetting-started","docs\u002Fauth-h3client\u002F00.getting-started\u002Findex",[77,78],{"title":14,"path":74,"stem":75},{"title":79,"path":80,"stem":81},"Nuxt Module","\u002Fdocs\u002Fauth-h3client\u002Fgetting-started\u002Fnuxt","docs\u002Fauth-h3client\u002F00.getting-started\u002F00.nuxt",{"title":83,"path":84,"stem":85,"children":86},"Essentials","\u002Fdocs\u002Fauth-h3client\u002Fessentials","docs\u002Fauth-h3client\u002F01.essentials\u002Findex",[87,88,92,96,100,104,108,111,115],{"title":83,"path":84,"stem":85},{"title":89,"path":90,"stem":91},"Session Management","\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Fsession","docs\u002Fauth-h3client\u002F01.essentials\u002F00.session",{"title":93,"path":94,"stem":95},"Route Protection","\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Froute-protection","docs\u002Fauth-h3client\u002F01.essentials\u002F01.route-protection",{"title":97,"path":98,"stem":99},"CSRF Protection","\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Fcsrf","docs\u002Fauth-h3client\u002F01.essentials\u002F02.csrf",{"title":101,"path":102,"stem":103},"Auth Flows","\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Fauth-flows","docs\u002Fauth-h3client\u002F01.essentials\u002F03.auth-flows",{"title":105,"path":106,"stem":107},"OAuth and OIDC","\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Foauth","docs\u002Fauth-h3client\u002F01.essentials\u002F04.oauth",{"title":33,"path":109,"stem":110},"\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Fbot-detection","docs\u002Fauth-h3client\u002F01.essentials\u002F05.bot-detection",{"title":112,"path":113,"stem":114},"Cookies","\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Fcookies","docs\u002Fauth-h3client\u002F01.essentials\u002F06.cookies",{"title":116,"path":117,"stem":118},"Logging","\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Flogging","docs\u002Fauth-h3client\u002F01.essentials\u002F07.logging",{"title":120,"path":121,"stem":122,"children":123},"MFA","\u002Fdocs\u002Fauth-h3client\u002Fmfa","docs\u002Fauth-h3client\u002F02.mfa\u002Findex",[124,125,129,133,137,141],{"title":120,"path":121,"stem":122},{"title":126,"path":127,"stem":128},"Built-in MFA","\u002Fdocs\u002Fauth-h3client\u002Fmfa\u002Fbuilt-in-flow","docs\u002Fauth-h3client\u002F02.mfa\u002F01.built-in-flow",{"title":130,"path":131,"stem":132},"Password Reset","\u002Fdocs\u002Fauth-h3client\u002Fmfa\u002Fpassword-reset","docs\u002Fauth-h3client\u002F02.mfa\u002F02.password-reset",{"title":134,"path":135,"stem":136},"Email Change","\u002Fdocs\u002Fauth-h3client\u002Fmfa\u002Femail-change","docs\u002Fauth-h3client\u002F02.mfa\u002F03.email-change",{"title":138,"path":139,"stem":140},"Custom MFA Flow","\u002Fdocs\u002Fauth-h3client\u002Fmfa\u002Fcustom-flow","docs\u002Fauth-h3client\u002F02.mfa\u002F04.custom-flow",{"title":142,"path":143,"stem":144},"Client-Side MFA","\u002Fdocs\u002Fauth-h3client\u002Fmfa\u002Fclient-side","docs\u002Fauth-h3client\u002F02.mfa\u002F05.client-side",{"title":146,"path":147,"stem":148,"children":149},"Client-side","\u002Fdocs\u002Fauth-h3client\u002Fclient","docs\u002Fauth-h3client\u002F03.client\u002Findex",[150,151,155,159,163],{"title":146,"path":147,"stem":148},{"title":152,"path":153,"stem":154},"useAuthData","\u002Fdocs\u002Fauth-h3client\u002Fclient\u002Fuse-auth-data","docs\u002Fauth-h3client\u002F03.client\u002F00.use-auth-data",{"title":156,"path":157,"stem":158},"useMagicLink","\u002Fdocs\u002Fauth-h3client\u002Fclient\u002Fuse-magic-link","docs\u002Fauth-h3client\u002F03.client\u002F01.use-magic-link",{"title":160,"path":161,"stem":162},"executeRequest","\u002Fdocs\u002Fauth-h3client\u002Fclient\u002Fexecute-request","docs\u002Fauth-h3client\u002F03.client\u002F02.execute-request",{"title":164,"path":165,"stem":166},"getCsrfToken","\u002Fdocs\u002Fauth-h3client\u002Fclient\u002Fget-csrf-token","docs\u002Fauth-h3client\u002F03.client\u002F03.get-csrf-token",{"title":38,"path":168,"stem":169},"\u002Fdocs\u002Fauth-h3client\u002Fsecurity","docs\u002Fauth-h3client\u002F04.security",{"title":171,"path":172,"stem":173,"children":174,"page":53},"Guides","\u002Fdocs\u002Fauth-h3client\u002Fguides","docs\u002Fauth-h3client\u002F05.guides",[175,179,183,187],{"title":176,"path":177,"stem":178},"H3 and Nitro Setup","\u002Fdocs\u002Fauth-h3client\u002Fguides\u002Fh3-nitro","docs\u002Fauth-h3client\u002F05.guides\u002F00.h3-nitro",{"title":180,"path":181,"stem":182},"HMAC Inter-service Auth","\u002Fdocs\u002Fauth-h3client\u002Fguides\u002Fhmac","docs\u002Fauth-h3client\u002F05.guides\u002Fhmac",{"title":184,"path":185,"stem":186},"Image Upload","\u002Fdocs\u002Fauth-h3client\u002Fguides\u002Fimage-upload","docs\u002Fauth-h3client\u002F05.guides\u002Fimage-upload",{"title":188,"path":189,"stem":190},"mTLS Configuration","\u002Fdocs\u002Fauth-h3client\u002Fguides\u002Fmtls","docs\u002Fauth-h3client\u002F05.guides\u002Fmtls",{"title":192,"path":193,"stem":194},"Configuration","\u002Fdocs\u002Fauth-h3client\u002Fconfiguration","docs\u002Fauth-h3client\u002F06.configuration",{"title":196,"path":197,"stem":198,"children":199},"API Reference","\u002Fdocs\u002Fauth-h3client\u002Fapi","docs\u002Fauth-h3client\u002F07.api\u002Findex",[200,201,205,209,213],{"title":196,"path":197,"stem":198},{"title":202,"path":203,"stem":204},"Routes Reference","\u002Fdocs\u002Fauth-h3client\u002Fapi\u002Fcontrollers","docs\u002Fauth-h3client\u002F07.api\u002F00.controllers",{"title":206,"path":207,"stem":208},"Middleware Reference","\u002Fdocs\u002Fauth-h3client\u002Fapi\u002Fmiddleware","docs\u002Fauth-h3client\u002F07.api\u002F01.middleware",{"title":210,"path":211,"stem":212},"Client-side Reference","\u002Fdocs\u002Fauth-h3client\u002Fapi\u002Fcomposables","docs\u002Fauth-h3client\u002F07.api\u002F02.composables",{"title":214,"path":215,"stem":216},"Utilities","\u002Fdocs\u002Fauth-h3client\u002Fapi\u002Futilities","docs\u002Fauth-h3client\u002F07.api\u002F03.utilities",[218],{"title":9,"path":66,"stem":67,"children":219,"page":53},[220,268,386,391,569,636],{"title":20,"path":22,"stem":70,"children":221},[222,223,227,238,246,253,254,260,261],{"title":20,"path":22,"stem":70},{"title":14,"path":74,"stem":75,"children":224},[225,226],{"title":14,"path":74,"stem":75},{"title":79,"path":80,"stem":81},{"title":83,"path":84,"stem":85,"children":228},[229,230,231,232,233,234,235,236,237],{"title":83,"path":84,"stem":85},{"title":89,"path":90,"stem":91},{"title":93,"path":94,"stem":95},{"title":97,"path":98,"stem":99},{"title":101,"path":102,"stem":103},{"title":105,"path":106,"stem":107},{"title":33,"path":109,"stem":110},{"title":112,"path":113,"stem":114},{"title":116,"path":117,"stem":118},{"title":120,"path":121,"stem":122,"children":239},[240,241,242,243,244,245],{"title":120,"path":121,"stem":122},{"title":126,"path":127,"stem":128},{"title":130,"path":131,"stem":132},{"title":134,"path":135,"stem":136},{"title":138,"path":139,"stem":140},{"title":142,"path":143,"stem":144},{"title":146,"path":147,"stem":148,"children":247},[248,249,250,251,252],{"title":146,"path":147,"stem":148},{"title":152,"path":153,"stem":154},{"title":156,"path":157,"stem":158},{"title":160,"path":161,"stem":162},{"title":164,"path":165,"stem":166},{"title":38,"path":168,"stem":169},{"title":171,"path":172,"stem":173,"children":255,"page":53},[256,257,258,259],{"title":176,"path":177,"stem":178},{"title":180,"path":181,"stem":182},{"title":184,"path":185,"stem":186},{"title":188,"path":189,"stem":190},{"title":192,"path":193,"stem":194},{"title":196,"path":197,"stem":198,"children":262},[263,264,265,266,267],{"title":196,"path":197,"stem":198},{"title":202,"path":203,"stem":204},{"title":206,"path":207,"stem":208},{"title":210,"path":211,"stem":212},{"title":214,"path":215,"stem":216},{"title":269,"path":35,"stem":270,"children":271},"Bot Detector","docs\u002Fbot-detection\u002Findex",[272,273,276,280,284,303,377,380,383],{"title":269,"path":35,"stem":270},{"title":14,"path":274,"stem":275},"\u002Fdocs\u002Fbot-detection\u002Fgetting-started","docs\u002Fbot-detection\u002F00.getting-started",{"title":277,"path":278,"stem":279},"CLI","\u002Fdocs\u002Fbot-detection\u002Fcli","docs\u002Fbot-detection\u002F01.cli",{"title":281,"path":282,"stem":283},"Data Sources","\u002Fdocs\u002Fbot-detection\u002Fdata-sources","docs\u002Fbot-detection\u002F02.data-sources",{"title":171,"path":285,"stem":286,"children":287,"page":53},"\u002Fdocs\u002Fbot-detection\u002Fguides","docs\u002Fbot-detection\u002F03.guides",[288,292,296,299],{"title":289,"path":290,"stem":291},"Custom Checkers","\u002Fdocs\u002Fbot-detection\u002Fguides\u002Fcustom","docs\u002Fbot-detection\u002F03.guides\u002FCUSTOM",{"title":293,"path":294,"stem":295},"Scheduling Database Generation","\u002Fdocs\u002Fbot-detection\u002Fguides\u002Fgenerate","docs\u002Fbot-detection\u002F03.guides\u002FGENERATE",{"title":116,"path":297,"stem":298},"\u002Fdocs\u002Fbot-detection\u002Fguides\u002Flogging","docs\u002Fbot-detection\u002F03.guides\u002FLOGGING",{"title":300,"path":301,"stem":302},"Score Modes and Reputation Healing","\u002Fdocs\u002Fbot-detection\u002Fguides\u002Fscore","docs\u002Fbot-detection\u002F03.guides\u002FSCORE",{"title":304,"path":305,"stem":306,"children":307},"Checkers","\u002Fdocs\u002Fbot-detection\u002Fcheckers","docs\u002Fbot-detection\u002F04.checkers\u002Findex",[308,309,313,317,321,325,329,333,337,341,345,349,353,357,361,365,369,373],{"title":304,"path":305,"stem":306},{"title":310,"path":311,"stem":312},"IP Validation","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fip-validation","docs\u002Fbot-detection\u002F04.checkers\u002F01.ip-validation",{"title":314,"path":315,"stem":316},"Good \u002F Bad Bot Verification","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fgood-bots","docs\u002Fbot-detection\u002F04.checkers\u002F02.good-bots",{"title":318,"path":319,"stem":320},"Browser & Device Fingerprint","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fbrowser-device","docs\u002Fbot-detection\u002F04.checkers\u002F03.browser-device",{"title":322,"path":323,"stem":324},"Locale Map","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Flocale-map","docs\u002Fbot-detection\u002F04.checkers\u002F04.locale-map",{"title":326,"path":327,"stem":328},"Known Threats","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fknown-threats","docs\u002Fbot-detection\u002F04.checkers\u002F05.known-threats",{"title":330,"path":331,"stem":332},"ASN Classification","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fasn-classification","docs\u002Fbot-detection\u002F04.checkers\u002F06.asn-classification",{"title":334,"path":335,"stem":336},"Tor Analysis","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Ftor-analysis","docs\u002Fbot-detection\u002F04.checkers\u002F07.tor-analysis",{"title":338,"path":339,"stem":340},"Timezone Consistency","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Ftimezone-consistency","docs\u002Fbot-detection\u002F04.checkers\u002F08.timezone-consistency",{"title":342,"path":343,"stem":344},"Honeypot","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fhoneypot","docs\u002Fbot-detection\u002F04.checkers\u002F09.honeypot",{"title":346,"path":347,"stem":348},"Known Bad IPs","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fknown-bad-ips","docs\u002Fbot-detection\u002F04.checkers\u002F10.known-bad-ips",{"title":350,"path":351,"stem":352},"Behavior Rate","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fbehavior-rate","docs\u002Fbot-detection\u002F04.checkers\u002F11.behavior-rate",{"title":354,"path":355,"stem":356},"Proxy \u002F ISP \u002F Cookie","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fproxy-isp-cookies","docs\u002Fbot-detection\u002F04.checkers\u002F12.proxy-isp-cookies",{"title":358,"path":359,"stem":360},"Session Coherence","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fsession-coherence","docs\u002Fbot-detection\u002F04.checkers\u002F13.session-coherence",{"title":362,"path":363,"stem":364},"Velocity Fingerprint","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fvelocity-fingerprint","docs\u002Fbot-detection\u002F04.checkers\u002F14.velocity-fingerprint",{"title":366,"path":367,"stem":368},"UA & Header Analysis","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fua-header","docs\u002Fbot-detection\u002F04.checkers\u002F15.ua-header",{"title":370,"path":371,"stem":372},"Geolocation","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fgeolocation","docs\u002Fbot-detection\u002F04.checkers\u002F16.geolocation",{"title":374,"path":375,"stem":376},"Known Bad User-Agents","\u002Fdocs\u002Fbot-detection\u002Fcheckers\u002Fknown-bad-ua","docs\u002Fbot-detection\u002F04.checkers\u002F17.known-bad-ua",{"title":38,"path":378,"stem":379},"\u002Fdocs\u002Fbot-detection\u002Fsecurity","docs\u002Fbot-detection\u002F04.security",{"title":196,"path":381,"stem":382},"\u002Fdocs\u002Fbot-detection\u002Fapi","docs\u002Fbot-detection\u002F05.api",{"title":192,"path":384,"stem":385},"\u002Fdocs\u002Fbot-detection\u002Fconfiguration","docs\u002Fbot-detection\u002F06.configuration",{"title":387,"path":11,"stem":388,"children":389},"Introduction","docs\u002Fgetting-started\u002Findex",[390],{"title":387,"path":11,"stem":388},{"title":27,"path":29,"stem":392,"children":393},"docs\u002Fiam\u002Findex",[394,395,398,533,536,552,555],{"title":27,"path":29,"stem":392},{"title":14,"path":396,"stem":397},"\u002Fdocs\u002Fiam\u002Fgetting-started","docs\u002Fiam\u002F00.getting-started",{"title":83,"path":399,"stem":400,"children":401},"\u002Fdocs\u002Fiam\u002Fessentials","docs\u002Fiam\u002F01.essentials\u002Findex",[402,403,407,411,415,419,423,427,431,435,439,443,446,450,454,458,462,465,469,473,476,480,483],{"title":83,"path":399,"stem":400},{"title":404,"path":405,"stem":406},"Tokens","\u002Fdocs\u002Fiam\u002Fessentials\u002Ftokens","docs\u002Fiam\u002F01.essentials\u002F00.tokens",{"title":408,"path":409,"stem":410},"Access Tokens","\u002Fdocs\u002Fiam\u002Fessentials\u002Faccess-tokens","docs\u002Fiam\u002F01.essentials\u002F01.access-tokens",{"title":412,"path":413,"stem":414},"Refresh Tokens","\u002Fdocs\u002Fiam\u002Fessentials\u002Frefresh-tokens","docs\u002Fiam\u002F01.essentials\u002F02.refresh-tokens",{"title":416,"path":417,"stem":418},"Anomaly Detection","\u002Fdocs\u002Fiam\u002Fessentials\u002Fanomalies","docs\u002Fiam\u002F01.essentials\u002F03.anomalies",{"title":420,"path":421,"stem":422},"Signup","\u002Fdocs\u002Fiam\u002Fessentials\u002Fsignup","docs\u002Fiam\u002F01.essentials\u002F04.signup",{"title":424,"path":425,"stem":426},"Login","\u002Fdocs\u002Fiam\u002Fessentials\u002Flogin","docs\u002Fiam\u002F01.essentials\u002F05.login",{"title":428,"path":429,"stem":430},"Logout","\u002Fdocs\u002Fiam\u002Fessentials\u002Flogout","docs\u002Fiam\u002F01.essentials\u002F06.logout",{"title":432,"path":433,"stem":434},"OAuth","\u002Fdocs\u002Fiam\u002Fessentials\u002Foauth","docs\u002Fiam\u002F01.essentials\u002F07.oauth",{"title":436,"path":437,"stem":438},"Magic Links","\u002Fdocs\u002Fiam\u002Fessentials\u002Fmagic-links","docs\u002Fiam\u002F01.essentials\u002F08.magic-links",{"title":440,"path":441,"stem":442},"Emails","\u002Fdocs\u002Fiam\u002Fessentials\u002Femails","docs\u002Fiam\u002F01.essentials\u002F09.emails",{"title":120,"path":444,"stem":445},"\u002Fdocs\u002Fiam\u002Fessentials\u002Fmfa","docs\u002Fiam\u002F01.essentials\u002F10.mfa",{"title":447,"path":448,"stem":449},"Fingerprinting","\u002Fdocs\u002Fiam\u002Fessentials\u002Ffingerprinting","docs\u002Fiam\u002F01.essentials\u002F11.fingerprinting",{"title":451,"path":452,"stem":453},"Backend for Frontend","\u002Fdocs\u002Fiam\u002Fessentials\u002Fbff","docs\u002Fiam\u002F01.essentials\u002F12.bff",{"title":455,"path":456,"stem":457},"HMAC Authentication","\u002Fdocs\u002Fiam\u002Fessentials\u002Fhmac","docs\u002Fiam\u002F01.essentials\u002F13.hmac",{"title":459,"path":460,"stem":461},"XSS Protection","\u002Fdocs\u002Fiam\u002Fessentials\u002Fxss","docs\u002Fiam\u002F01.essentials\u002F14.xss",{"title":116,"path":463,"stem":464},"\u002Fdocs\u002Fiam\u002Fessentials\u002Flogging","docs\u002Fiam\u002F01.essentials\u002F15.logging",{"title":466,"path":467,"stem":468},"Rate Limiting","\u002Fdocs\u002Fiam\u002Fessentials\u002Frate-limiting","docs\u002Fiam\u002F01.essentials\u002F16.rate-limiting",{"title":470,"path":471,"stem":472},"Database","\u002Fdocs\u002Fiam\u002Fessentials\u002Fdatabase","docs\u002Fiam\u002F01.essentials\u002F17.database",{"title":112,"path":474,"stem":475},"\u002Fdocs\u002Fiam\u002Fessentials\u002Fcookies","docs\u002Fiam\u002F01.essentials\u002F18.cookies",{"title":477,"path":478,"stem":479},"Service Startup","\u002Fdocs\u002Fiam\u002Fessentials\u002Fservice","docs\u002Fiam\u002F01.essentials\u002F19.service",{"title":130,"path":481,"stem":482},"\u002Fdocs\u002Fiam\u002Fessentials\u002Fpassword-reset","docs\u002Fiam\u002F01.essentials\u002F20.password-reset",{"title":484,"path":485,"stem":486,"children":487},"API Tokens","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi","docs\u002Fiam\u002F01.essentials\u002F21.api\u002Findex",[488,489,493,497,527,530],{"title":484,"path":485,"stem":486},{"title":490,"path":491,"stem":492},"Creating Tokens","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fcreation","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F00.creation",{"title":494,"path":495,"stem":496},"Verifying Tokens","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fverification","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F01.verification",{"title":498,"path":499,"stem":500,"children":501},"Manage Tokens","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fmanagement","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F02.management\u002Findex",[502,503,507,511,515,519,523],{"title":498,"path":499,"stem":500},{"title":504,"path":505,"stem":506},"Privileges","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fmanagement\u002Fprivilege","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F02.management\u002F00.privilege",{"title":508,"path":509,"stem":510},"Revocation","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fmanagement\u002Frevocation","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F02.management\u002F01.revocation",{"title":512,"path":513,"stem":514},"Rotation","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fmanagement\u002Frotation","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F02.management\u002F02.rotation",{"title":516,"path":517,"stem":518},"IP Restriction","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fmanagement\u002Fip-updates","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F02.management\u002F03.ip-updates",{"title":520,"path":521,"stem":522},"Metadata","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fmanagement\u002Fmetadata","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F02.management\u002F04.metadata",{"title":524,"path":525,"stem":526},"Token Listing","\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fmanagement\u002Flist","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F02.management\u002F05.list",{"title":466,"path":528,"stem":529},"\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Frate-limiting","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F03.rate-limiting",{"title":38,"path":531,"stem":532},"\u002Fdocs\u002Fiam\u002Fessentials\u002Fapi\u002Fsecurity","docs\u002Fiam\u002F01.essentials\u002F21.api\u002F04.security",{"title":38,"path":534,"stem":535},"\u002Fdocs\u002Fiam\u002Fsecurity","docs\u002Fiam\u002F02.security",{"title":171,"path":537,"stem":538,"children":539,"page":53},"\u002Fdocs\u002Fiam\u002Fguides","docs\u002Fiam\u002F03.guides",[540,544,548],{"title":541,"path":542,"stem":543},"Deployment","\u002Fdocs\u002Fiam\u002Fguides\u002Fdeployment","docs\u002Fiam\u002F03.guides\u002Fdeployment",{"title":545,"path":546,"stem":547},"Operation Scripts","\u002Fdocs\u002Fiam\u002Fguides\u002Foperation-scripts","docs\u002Fiam\u002F03.guides\u002Foperation-scripts",{"title":549,"path":550,"stem":551},"Role-Based Access Control","\u002Fdocs\u002Fiam\u002Fguides\u002Frbac","docs\u002Fiam\u002F03.guides\u002Frbac",{"title":192,"path":553,"stem":554},"\u002Fdocs\u002Fiam\u002Fconfiguration","docs\u002Fiam\u002F04.configuration",{"title":556,"path":557,"stem":558,"children":559,"page":53},"Api","\u002Fdocs\u002Fiam\u002Fapi","docs\u002Fiam\u002F05.API",[560,563,566],{"title":196,"path":561,"stem":562},"\u002Fdocs\u002Fiam\u002Fapi\u002Fapi","docs\u002Fiam\u002F05.API\u002F00.api",{"title":206,"path":564,"stem":565},"\u002Fdocs\u002Fiam\u002Fapi\u002Fmiddlewares","docs\u002Fiam\u002F05.API\u002F02.middlewares",{"title":202,"path":567,"stem":568},"\u002Fdocs\u002Fiam\u002Fapi\u002Froutes","docs\u002Fiam\u002F05.API\u002F03.routes",{"title":40,"path":42,"stem":570,"children":571},"docs\u002Fshield-base\u002Findex",[572,573,576,580,621,625,629,633],{"title":40,"path":42,"stem":570},{"title":14,"path":574,"stem":575},"\u002Fdocs\u002Fshield-base\u002Fgetting-started","docs\u002Fshield-base\u002F00.getting-started",{"title":577,"path":578,"stem":579},"CLI Reference","\u002Fdocs\u002Fshield-base\u002Fcli","docs\u002Fshield-base\u002F01.cli",{"title":281,"path":581,"stem":582,"children":583},"\u002Fdocs\u002Fshield-base\u002Fdata-sources","docs\u002Fshield-base\u002F02.data-sources\u002Findex",[584,585,589,593,597,601,605,609,613,617],{"title":281,"path":581,"stem":582},{"title":586,"path":587,"stem":588},"BGP \u002F ASN","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Fbgp","docs\u002Fshield-base\u002F02.data-sources\u002Fbgp",{"title":590,"path":591,"stem":592},"City Geolocation","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Fcity","docs\u002Fshield-base\u002F02.data-sources\u002Fcity",{"title":594,"path":595,"stem":596},"Country Geolocation","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Fcountry","docs\u002Fshield-base\u002F02.data-sources\u002Fcountry",{"title":598,"path":599,"stem":600},"Verified Crawlers","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Fcrawlers","docs\u002Fshield-base\u002F02.data-sources\u002Fcrawlers",{"title":602,"path":603,"stem":604},"Disposable Emails","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Femail","docs\u002Fshield-base\u002F02.data-sources\u002Femail",{"title":606,"path":607,"stem":608},"FireHOL Threat Intelligence","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Ffirehol","docs\u002Fshield-base\u002F02.data-sources\u002Ffirehol",{"title":610,"path":611,"stem":612},"Proxy Detection","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Fproxy","docs\u002Fshield-base\u002F02.data-sources\u002Fproxy",{"title":614,"path":615,"stem":616},"Tor Nodes","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Ftor","docs\u002Fshield-base\u002F02.data-sources\u002Ftor",{"title":618,"path":619,"stem":620},"Suspicious User-Agents","\u002Fdocs\u002Fshield-base\u002Fdata-sources\u002Fuseragent","docs\u002Fshield-base\u002F02.data-sources\u002Fuseragent",{"title":622,"path":623,"stem":624},"Programmatic Usage","\u002Fdocs\u002Fshield-base\u002Fusage","docs\u002Fshield-base\u002F03.usage",{"title":626,"path":627,"stem":628},"Custom Data Sources","\u002Fdocs\u002Fshield-base\u002Fcustom-data-sources","docs\u002Fshield-base\u002F04.custom-data-sources",{"title":630,"path":631,"stem":632},"TypeScript Types","\u002Fdocs\u002Fshield-base\u002Ftypes","docs\u002Fshield-base\u002F05.types",{"title":196,"path":634,"stem":635},"\u002Fdocs\u002Fshield-base\u002Fapi","docs\u002Fshield-base\u002F06.api",{"title":214,"path":48,"stem":637,"children":638},"docs\u002Futils\u002Findex",[639,640,657,690,787],{"title":214,"path":48,"stem":637},{"title":641,"path":642,"stem":643,"children":644,"page":53},"Eslint","\u002Fdocs\u002Futils\u002Feslint","docs\u002Futils\u002Feslint",[645,649,653],{"title":646,"path":647,"stem":648},"React Config","\u002Fdocs\u002Futils\u002Feslint\u002Freact","docs\u002Futils\u002Feslint\u002Freact",{"title":650,"path":651,"stem":652},"TypeScript Config","\u002Fdocs\u002Futils\u002Feslint\u002Ftypescript","docs\u002Futils\u002Feslint\u002Ftypescript",{"title":654,"path":655,"stem":656},"Vue Config","\u002Fdocs\u002Futils\u002Feslint\u002Fvue","docs\u002Futils\u002Feslint\u002Fvue",{"title":658,"path":659,"stem":660,"children":661,"page":53},"Server","\u002Fdocs\u002Futils\u002Fserver","docs\u002Futils\u002Fserver",[662,666,670,674,678,682,686],{"title":663,"path":664,"stem":665},"Encryption","\u002Fdocs\u002Futils\u002Fserver\u002Fencryption","docs\u002Futils\u002Fserver\u002Fencryption",{"title":667,"path":668,"stem":669},"Path Resolver","\u002Fdocs\u002Futils\u002Fserver\u002Fpathresolver","docs\u002Futils\u002Fserver\u002FpathResolver",{"title":671,"path":672,"stem":673},"File Replacements","\u002Fdocs\u002Futils\u002Fserver\u002Freplace","docs\u002Futils\u002Fserver\u002Freplace",{"title":675,"path":676,"stem":677},"run","\u002Fdocs\u002Futils\u002Fserver\u002Frun","docs\u002Futils\u002Fserver\u002Frun",{"title":679,"path":680,"stem":681},"scheduleTask","\u002Fdocs\u002Futils\u002Fserver\u002Fscheduletask","docs\u002Futils\u002Fserver\u002FscheduleTask",{"title":683,"path":684,"stem":685},"spawnRun","\u002Fdocs\u002Futils\u002Fserver\u002Fspawnrun","docs\u002Futils\u002Fserver\u002FspawnRun",{"title":687,"path":688,"stem":689},"uploadCsv","\u002Fdocs\u002Futils\u002Fserver\u002Fuploadcsv","docs\u002Futils\u002Fserver\u002FuploadCsv",{"title":691,"path":692,"stem":693,"children":694,"page":53},"Shared","\u002Fdocs\u002Futils\u002Fshared","docs\u002Futils\u002Fshared",[695,699,703,707,711,715,719,723,727,731,735,739,743,747,751,755,759,763,767,771,775,779,783],{"title":696,"path":697,"stem":698},"BatchQueue","\u002Fdocs\u002Futils\u002Fshared\u002Fbatchqueue","docs\u002Futils\u002Fshared\u002FbatchQueue",{"title":700,"path":701,"stem":702},"capitalize","\u002Fdocs\u002Futils\u002Fshared\u002Fcapitalize","docs\u002Futils\u002Fshared\u002Fcapitalize",{"title":704,"path":705,"stem":706},"chunkProcess","\u002Fdocs\u002Futils\u002Fshared\u002Fchunkprocess","docs\u002Futils\u002Fshared\u002FchunkProcess",{"title":708,"path":709,"stem":710},"cleanObject","\u002Fdocs\u002Futils\u002Fshared\u002Fcleanobject","docs\u002Futils\u002Fshared\u002FcleanObject",{"title":712,"path":713,"stem":714},"createConfigManager","\u002Fdocs\u002Futils\u002Fshared\u002Fconfigurationdefiner","docs\u002Futils\u002Fshared\u002FconfigurationDefiner",{"title":716,"path":717,"stem":718},"debounce","\u002Fdocs\u002Futils\u002Fshared\u002Fdebounce","docs\u002Futils\u002Fshared\u002Fdebounce",{"title":720,"path":721,"stem":722},"ensureArray","\u002Fdocs\u002Futils\u002Fshared\u002Fensurearray","docs\u002Futils\u002Fshared\u002FensureArray",{"title":724,"path":725,"stem":726},"fetchWithRetry","\u002Fdocs\u002Futils\u002Fshared\u002Ffetchwithretry","docs\u002Futils\u002Fshared\u002FfetchWithRetry",{"title":728,"path":729,"stem":730},"filterEmptyValues","\u002Fdocs\u002Futils\u002Fshared\u002Ffilteremptyvalues","docs\u002Futils\u002Fshared\u002FfilterEmptyValues",{"title":732,"path":733,"stem":734},"findStringsInObject","\u002Fdocs\u002Futils\u002Fshared\u002Ffindobjectvalues","docs\u002Futils\u002Fshared\u002FfindObjectValues",{"title":736,"path":737,"stem":738},"fisherYatesShuffle","\u002Fdocs\u002Futils\u002Fshared\u002Ffisheryatesshuffle","docs\u002Futils\u002Fshared\u002FfisherYatesShuffle",{"title":740,"path":741,"stem":742},"getRandomImage","\u002Fdocs\u002Futils\u002Fshared\u002Fgetrandomimage","docs\u002Futils\u002Fshared\u002FgetRandomImage",{"title":744,"path":745,"stem":746},"isObjectHasValues","\u002Fdocs\u002Futils\u002Fshared\u002Fisobjecthasvalues","docs\u002Futils\u002Fshared\u002FisObjectHasValues",{"title":748,"path":749,"stem":750},"isAsyncOrPromise","\u002Fdocs\u002Futils\u002Fshared\u002Fispromise","docs\u002Futils\u002Fshared\u002FisPromise",{"title":752,"path":753,"stem":754},"MiniCache","\u002Fdocs\u002Futils\u002Fshared\u002Fminicache","docs\u002Futils\u002Fshared\u002FminiCache",{"title":756,"path":757,"stem":758},"parseCookies","\u002Fdocs\u002Futils\u002Fshared\u002Fparserawcookies","docs\u002Futils\u002Fshared\u002FparseRawCookies",{"title":760,"path":761,"stem":762},"safeAction","\u002Fdocs\u002Futils\u002Fshared\u002Fpromiselocker","docs\u002Futils\u002Fshared\u002FpromiseLocker",{"title":764,"path":765,"stem":766},"Random","\u002Fdocs\u002Futils\u002Fshared\u002Frandom","docs\u002Futils\u002Fshared\u002Frandom",{"title":768,"path":769,"stem":770},"range","\u002Fdocs\u002Futils\u002Fshared\u002Frange","docs\u002Futils\u002Fshared\u002Frange",{"title":772,"path":773,"stem":774},"rateLimiters","\u002Fdocs\u002Futils\u002Fshared\u002Fratelimiters","docs\u002Futils\u002Fshared\u002FrateLimiters",{"title":776,"path":777,"stem":778},"safeObjectMerge","\u002Fdocs\u002Futils\u002Fshared\u002Fsafemerge","docs\u002Futils\u002Fshared\u002FsafeMerge",{"title":780,"path":781,"stem":782},"textTruncation","\u002Fdocs\u002Futils\u002Fshared\u002Ftexttruncation","docs\u002Futils\u002Fshared\u002FtextTruncation",{"title":784,"path":785,"stem":786},"validateZodSchema","\u002Fdocs\u002Futils\u002Fshared\u002Fvalidatezodschema","docs\u002Futils\u002Fshared\u002FvalidateZodSchema",{"title":788,"path":789,"stem":790,"children":791},"Utility Types","\u002Fdocs\u002Futils\u002Ftypes","docs\u002Futils\u002Ftypes\u002Findex",[792,793,797,801,805,809,813,817,821,825],{"title":788,"path":789,"stem":790},{"title":794,"path":795,"stem":796},"Brand","\u002Fdocs\u002Futils\u002Ftypes\u002Fbrand","docs\u002Futils\u002Ftypes\u002FBrand",{"title":798,"path":799,"stem":800},"DeepPartial","\u002Fdocs\u002Futils\u002Ftypes\u002Fdeeppartial","docs\u002Futils\u002Ftypes\u002FDeepPartial",{"title":802,"path":803,"stem":804},"Merge","\u002Fdocs\u002Futils\u002Ftypes\u002Fmerge","docs\u002Futils\u002Ftypes\u002FMerge",{"title":806,"path":807,"stem":808},"NonNullable","\u002Fdocs\u002Futils\u002Ftypes\u002Fnonnullable","docs\u002Futils\u002Ftypes\u002FNonNullable",{"title":810,"path":811,"stem":812},"Prettify","\u002Fdocs\u002Futils\u002Ftypes\u002Fprettify","docs\u002Futils\u002Ftypes\u002FPrettify",{"title":814,"path":815,"stem":816},"PromiseType","\u002Fdocs\u002Futils\u002Ftypes\u002Fpromisetype","docs\u002Futils\u002Ftypes\u002FPromiseType",{"title":818,"path":819,"stem":820},"RequireKeys","\u002Fdocs\u002Futils\u002Ftypes\u002Frequirekeys","docs\u002Futils\u002Ftypes\u002FRequireKeys",{"title":822,"path":823,"stem":824},"StandardResponse","\u002Fdocs\u002Futils\u002Ftypes\u002Fstandardresponse","docs\u002Futils\u002Ftypes\u002FStandardResponse",{"title":826,"path":827,"stem":828},"ValueOf","\u002Fdocs\u002Futils\u002Ftypes\u002Fvalueof","docs\u002Futils\u002Ftypes\u002FValueOf",{"id":4,"extension":5,"links":830,"meta":841,"stem":62,"__hash__":63},[831,839,840],{"nested":8,"label":9,"icon":10,"to":11,"children":832},[833,834,835,836,837,838],{"label":14,"icon":15,"to":11,"description":16,"github":17,"badge":18},{"label":20,"icon":21,"to":22,"description":23,"github":24,"badge":25},{"label":27,"icon":28,"to":29,"description":30,"github":31,"badge":25},{"label":33,"icon":34,"to":35,"description":36,"github":37,"badge":38},{"label":40,"icon":41,"to":42,"description":43,"github":44,"badge":38},{"label":46,"icon":47,"to":48,"description":49,"github":50,"badge":51},{"nested":53,"label":54,"icon":55,"to":56},{"nested":53,"label":58,"icon":59,"to":60},{},{"id":843,"title":152,"body":844,"description":1554,"extension":1555,"icon":1556,"meta":1557,"module":1558,"navigation":8,"path":153,"rawbody":1559,"seo":1560,"stem":154,"__hash__":1561},"docs\u002Fdocs\u002Fauth-h3client\u002F03.client\u002F00.use-auth-data.md",{"type":845,"value":846,"toc":1547},"minimark",[847,862,935,942,952,955,960,1010,1059,1061,1065,1127,1189,1191,1195,1288,1306,1308,1312,1470,1485,1491,1493,1497,1500,1528,1536,1543],[848,849,850,853,854,857,858,861],"p",{},[851,852,152],"code",{}," is the primary way to read authentication state in Vue components and pages. It calls the gateway's auth status route once, stores the result in a ",[851,855,856],{},"useState('auth')"," singleton, and returns a reactive ",[851,859,860],{},"Ref\u003CAuthState>"," that every component in the tree can read without triggering a duplicate network request.",[863,864,869],"pre",{"className":865,"code":866,"language":867,"meta":868,"style":868},"language-ts shiki shiki-themes light-plus light-plus dracula","import { useAuthData } from 'auth-h3client\u002Fclient'\n\nconst auth = await useAuthData()\n","ts","",[851,870,871,904,910],{"__ignoreMap":868},[872,873,876,880,884,887,890,893,897,901],"span",{"class":874,"line":875},"line",1,[872,877,879],{"class":878},"sZ328","import",[872,881,883],{"class":882},"sDd4n"," { ",[872,885,152],{"class":886},"sjsA6",[872,888,889],{"class":882}," } ",[872,891,892],{"class":878},"from",[872,894,896],{"class":895},"sFkSl"," '",[872,898,900],{"class":899},"sFB1V","auth-h3client\u002Fclient",[872,902,903],{"class":895},"'\n",[872,905,907],{"class":874,"line":906},2,[872,908,909],{"emptyLinePlaceholder":8},"\n",[872,911,913,917,921,925,928,932],{"class":874,"line":912},3,[872,914,916],{"class":915},"sl46w","const",[872,918,920],{"class":919},"s3JHE"," auth",[872,922,924],{"class":923},"saOXh"," =",[872,926,927],{"class":878}," await",[872,929,931],{"class":930},"sHOzp"," useAuthData",[872,933,934],{"class":882},"()\n",[848,936,937,938,941],{},"During SSR the composable forwards all incoming request headers (cookies included) to the auth status route so the upstream check runs with the correct session. Any ",[851,939,940],{},"Set-Cookie"," headers returned by that route are captured and re-attached to the outgoing response, which means token rotation applied during the auth check is transparently visible to the browser.",[848,943,944,945,947,948,951],{},"During hydration, ",[851,946,152],{}," uses the Nuxt ",[851,949,950],{},"getCachedData"," hook to return the SSR payload directly instead of issuing a second fetch. On subsequent calls after hydration, it refetches fresh state.",[953,954],"hr",{},[956,957,959],"h2",{"id":958},"signature","Signature",[863,961,963],{"className":865,"code":962,"language":867,"meta":868,"style":868},"function useAuthData(authStatusUrl?: string): Promise\u003CRef\u003CAuthState>>\n",[851,964,965],{"__ignoreMap":868},[872,966,967,970,972,975,979,982,986,989,992,995,998,1002,1004,1007],{"class":874,"line":875},[872,968,969],{"class":915},"function",[872,971,931],{"class":930},[872,973,974],{"class":882},"(",[872,976,978],{"class":977},"sygFZ","authStatusUrl",[872,980,981],{"class":923},"?:",[872,983,985],{"class":984},"sFs1U"," string",[872,987,988],{"class":882},")",[872,990,991],{"class":923},":",[872,993,994],{"class":984}," Promise",[872,996,997],{"class":882},"\u003C",[872,999,1001],{"class":1000},"sW-rI","Ref",[872,1003,997],{"class":882},[872,1005,1006],{"class":1000},"AuthState",[872,1008,1009],{"class":882},">>\n",[1011,1012,1013,1032],"table",{},[1014,1015,1016],"thead",{},[1017,1018,1019,1023,1026,1029],"tr",{},[1020,1021,1022],"th",{},"Parameter",[1020,1024,1025],{},"Type",[1020,1027,1028],{},"Default",[1020,1030,1031],{},"Description",[1033,1034,1035],"tbody",{},[1017,1036,1037,1042,1047,1052],{},[1038,1039,1040],"td",{},[851,1041,978],{},[1038,1043,1044],{},[851,1045,1046],{},"string",[1038,1048,1049],{},[851,1050,1051],{},"'\u002Fapi\u002Fauth\u002Fusers\u002FauthStatus'",[1038,1053,1054,1055,1058],{},"Endpoint path for the auth status check. This matches the Nuxt module default. In manual H3 or Nitro setups, pass the path you registered ",[851,1056,1057],{},"getAuthStatusHandler"," on.",[953,1060],{},[956,1062,1064],{"id":1063},"return-type","Return type",[863,1066,1068],{"className":865,"code":1067,"language":867,"meta":868,"style":868},"interface AuthState {\n  authorized: boolean\n  mfaRequired: boolean\n  id?: string\n  message?: string\n}\n",[851,1069,1070,1081,1091,1100,1111,1121],{"__ignoreMap":868},[872,1071,1072,1075,1078],{"class":874,"line":875},[872,1073,1074],{"class":915},"interface",[872,1076,1077],{"class":984}," AuthState",[872,1079,1080],{"class":882}," {\n",[872,1082,1083,1086,1088],{"class":874,"line":906},[872,1084,1085],{"class":886},"  authorized",[872,1087,991],{"class":923},[872,1089,1090],{"class":984}," boolean\n",[872,1092,1093,1096,1098],{"class":874,"line":912},[872,1094,1095],{"class":886},"  mfaRequired",[872,1097,991],{"class":923},[872,1099,1090],{"class":984},[872,1101,1103,1106,1108],{"class":874,"line":1102},4,[872,1104,1105],{"class":886},"  id",[872,1107,981],{"class":923},[872,1109,1110],{"class":984}," string\n",[872,1112,1114,1117,1119],{"class":874,"line":1113},5,[872,1115,1116],{"class":886},"  message",[872,1118,981],{"class":923},[872,1120,1110],{"class":984},[872,1122,1124],{"class":874,"line":1123},6,[872,1125,1126],{"class":882},"}\n",[1011,1128,1129,1138],{},[1014,1130,1131],{},[1017,1132,1133,1136],{},[1020,1134,1135],{},"Field",[1020,1137,1031],{},[1033,1139,1140,1153,1165,1179],{},[1017,1141,1142,1147],{},[1038,1143,1144],{},[851,1145,1146],{},"authorized",[1038,1148,1149,1152],{},[851,1150,1151],{},"true"," when the session is valid and the user is logged in",[1017,1154,1155,1160],{},[1038,1156,1157],{},[851,1158,1159],{},"mfaRequired",[1038,1161,1162,1164],{},[851,1163,1151],{}," when the IAM service returned a 202 MFA challenge",[1017,1166,1167,1172],{},[1038,1168,1169],{},[851,1170,1171],{},"id",[1038,1173,1174,1175,1178],{},"The user ID copied from ",[851,1176,1177],{},"userId"," on the IAM response when authorized",[1017,1180,1181,1186],{},[1038,1182,1183],{},[851,1184,1185],{},"message",[1038,1187,1188],{},"Human-readable instruction returned with the MFA challenge",[953,1190],{},[956,1192,1194],{"id":1193},"status-code-handling","Status code handling",[1011,1196,1197,1215],{},[1014,1198,1199],{},[1017,1200,1201,1204,1208,1212],{},[1020,1202,1203],{},"HTTP status",[1020,1205,1206],{},[851,1207,1146],{},[1020,1209,1210],{},[851,1211,1159],{},[1020,1213,1214],{},"Notes",[1033,1216,1217,1237,1256,1272],{},[1017,1218,1219,1222,1226,1231],{},[1038,1220,1221],{},"200",[1038,1223,1224],{},[851,1225,1151],{},[1038,1227,1228],{},[851,1229,1230],{},"false",[1038,1232,1233,1234,1236],{},"User is authenticated; ",[851,1235,1171],{}," is set",[1017,1238,1239,1242,1246,1250],{},[1038,1240,1241],{},"202",[1038,1243,1244],{},[851,1245,1230],{},[1038,1247,1248],{},[851,1249,1151],{},[1038,1251,1252,1253,1255],{},"MFA challenge; ",[851,1254,1185],{}," carries the instruction text",[1017,1257,1258,1261,1265,1269],{},[1038,1259,1260],{},"401",[1038,1262,1263],{},[851,1264,1230],{},[1038,1266,1267],{},[851,1268,1230],{},[1038,1270,1271],{},"Not authenticated",[1017,1273,1274,1277,1281,1285],{},[1038,1275,1276],{},"Any other error",[1038,1278,1279],{},[851,1280,1230],{},[1038,1282,1283],{},[851,1284,1230],{},[1038,1286,1287],{},"Network or server error; fails silently",[848,1289,1290,1291,1294,1295,1298,1299,1301,1302,1305],{},"The MFA message defaults to ",[851,1292,1293],{},"\"Multi factor authentication is required. Please check your email to continue.\""," when the upstream response carries a ",[851,1296,1297],{},"text"," field but no explicit ",[851,1300,1185],{},", and to ",[851,1303,1304],{},"\"Security check required.\""," when neither is present.",[953,1307],{},[956,1309,1311],{"id":1310},"typical-usage","Typical usage",[863,1313,1318],{"className":1314,"code":1315,"filename":1316,"language":1317,"meta":868,"style":868},"language-vue shiki shiki-themes light-plus light-plus dracula","\u003Cscript setup lang=\"ts\">\nconst auth = await useAuthData()\n\nif (auth.value.mfaRequired) {\n  \u002F\u002F The IAM service has already sent the verification email.\n  \u002F\u002F Show a message telling the user to check their inbox.\n} else if (!auth.value.authorized) {\n  await navigateTo('\u002Flogin')\n}\n\u003C\u002Fscript>\n","pages\u002Findex.vue","vue",[851,1319,1320,1351,1365,1369,1393,1399,1404,1433,1455,1460],{"__ignoreMap":868},[872,1321,1322,1325,1329,1333,1336,1339,1343,1346,1348],{"class":874,"line":875},[872,1323,997],{"class":1324},"spX-7",[872,1326,1328],{"class":1327},"scd-l","script",[872,1330,1332],{"class":1331},"sAY9V"," setup",[872,1334,1335],{"class":1331}," lang",[872,1337,1338],{"class":923},"=",[872,1340,1342],{"class":1341},"seisi","\"",[872,1344,867],{"class":1345},"sKKzR",[872,1347,1342],{"class":1341},[872,1349,1350],{"class":1324},">\n",[872,1352,1353,1355,1357,1359,1361,1363],{"class":874,"line":906},[872,1354,916],{"class":915},[872,1356,920],{"class":919},[872,1358,924],{"class":923},[872,1360,927],{"class":878},[872,1362,931],{"class":930},[872,1364,934],{"class":882},[872,1366,1367],{"class":874,"line":912},[872,1368,909],{"emptyLinePlaceholder":8},[872,1370,1371,1374,1377,1380,1383,1386,1388,1390],{"class":874,"line":1102},[872,1372,1373],{"class":878},"if",[872,1375,1376],{"class":882}," (",[872,1378,1379],{"class":886},"auth",[872,1381,1382],{"class":882},".",[872,1384,1385],{"class":886},"value",[872,1387,1382],{"class":882},[872,1389,1159],{"class":886},[872,1391,1392],{"class":882},") {\n",[872,1394,1395],{"class":874,"line":1113},[872,1396,1398],{"class":1397},"sghk6","  \u002F\u002F The IAM service has already sent the verification email.\n",[872,1400,1401],{"class":874,"line":1123},[872,1402,1403],{"class":1397},"  \u002F\u002F Show a message telling the user to check their inbox.\n",[872,1405,1407,1410,1413,1416,1418,1421,1423,1425,1427,1429,1431],{"class":874,"line":1406},7,[872,1408,1409],{"class":882},"} ",[872,1411,1412],{"class":878},"else",[872,1414,1415],{"class":878}," if",[872,1417,1376],{"class":882},[872,1419,1420],{"class":923},"!",[872,1422,1379],{"class":886},[872,1424,1382],{"class":882},[872,1426,1385],{"class":886},[872,1428,1382],{"class":882},[872,1430,1146],{"class":886},[872,1432,1392],{"class":882},[872,1434,1436,1439,1442,1444,1447,1450,1452],{"class":874,"line":1435},8,[872,1437,1438],{"class":878},"  await",[872,1440,1441],{"class":930}," navigateTo",[872,1443,974],{"class":882},[872,1445,1446],{"class":895},"'",[872,1448,1449],{"class":899},"\u002Flogin",[872,1451,1446],{"class":895},[872,1453,1454],{"class":882},")\n",[872,1456,1458],{"class":874,"line":1457},9,[872,1459,1126],{"class":882},[872,1461,1463,1466,1468],{"class":874,"line":1462},10,[872,1464,1465],{"class":1324},"\u003C\u002F",[872,1467,1328],{"class":1327},[872,1469,1350],{"class":1324},[848,1471,1472,1473,1475,1476,1478,1479,1481,1482,1484],{},"Check ",[851,1474,1159],{}," before ",[851,1477,1146],{}," to route the user correctly: during an MFA challenge, ",[851,1480,1146],{}," is ",[851,1483,1230],{}," but the user already has a pending session and should land on the verification page rather than the login page.",[1486,1487,1488],"warning",{},[848,1489,1490],{},"If you using this composable in a global Nuxt middleware avoid calling it on magic links routes, since users may be locked out completely, even when trying to prove their legitimacy or reset their passwords.",[953,1492],{},[956,1494,1496],{"id":1495},"custom-endpoint","Custom endpoint",[848,1498,1499],{},"Pass a different path if you have registered the auth status handler under a non-default route:",[863,1501,1503],{"className":865,"code":1502,"language":867,"meta":868,"style":868},"const auth = await useAuthData('\u002Fapi\u002Fmy-auth-check')\n",[851,1504,1505],{"__ignoreMap":868},[872,1506,1507,1509,1511,1513,1515,1517,1519,1521,1524,1526],{"class":874,"line":875},[872,1508,916],{"class":915},[872,1510,920],{"class":919},[872,1512,924],{"class":923},[872,1514,927],{"class":878},[872,1516,931],{"class":930},[872,1518,974],{"class":882},[872,1520,1446],{"class":895},[872,1522,1523],{"class":899},"\u002Fapi\u002Fmy-auth-check",[872,1525,1446],{"class":895},[872,1527,1454],{"class":882},[848,1529,1530,1531,1533,1534,1058],{},"Under the Nuxt module, the default is controlled by the ",[851,1532,978],{}," module option. Under plain H3 or Nitro, pass whichever path you registered ",[851,1535,1057],{},[848,1537,1538,1539,1542],{},"See ",[1540,1541,89],"a",{"href":90}," for the server-side handler this composable talks to.",[1544,1545,1546],"style",{},"html pre.shiki code .sZ328, html code.shiki .sZ328{--shiki-light:#AF00DB;--shiki-default:#AF00DB;--shiki-dark:#FF79C6}html pre.shiki code .sDd4n, html code.shiki .sDd4n{--shiki-light:#000000;--shiki-default:#000000;--shiki-dark:#F8F8F2}html pre.shiki code .sjsA6, html code.shiki .sjsA6{--shiki-light:#001080;--shiki-default:#001080;--shiki-dark:#F8F8F2}html pre.shiki code .sFkSl, html code.shiki .sFkSl{--shiki-light:#A31515;--shiki-default:#A31515;--shiki-dark:#E9F284}html pre.shiki code .sFB1V, html code.shiki .sFB1V{--shiki-light:#A31515;--shiki-default:#A31515;--shiki-dark:#F1FA8C}html pre.shiki code .sl46w, html code.shiki .sl46w{--shiki-light:#0000FF;--shiki-default:#0000FF;--shiki-dark:#FF79C6}html pre.shiki code .s3JHE, html code.shiki .s3JHE{--shiki-light:#0070C1;--shiki-default:#0070C1;--shiki-dark:#F8F8F2}html pre.shiki code .saOXh, html code.shiki .saOXh{--shiki-light:#000000;--shiki-default:#000000;--shiki-dark:#FF79C6}html pre.shiki code .sHOzp, html code.shiki .sHOzp{--shiki-light:#795E26;--shiki-default:#795E26;--shiki-dark:#50FA7B}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);}html pre.shiki code .sygFZ, html code.shiki .sygFZ{--shiki-light:#001080;--shiki-light-font-style:inherit;--shiki-default:#001080;--shiki-default-font-style:inherit;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic}html pre.shiki code .sFs1U, html code.shiki .sFs1U{--shiki-light:#267F99;--shiki-light-font-style:inherit;--shiki-default:#267F99;--shiki-default-font-style:inherit;--shiki-dark:#8BE9FD;--shiki-dark-font-style:italic}html pre.shiki code .sW-rI, html code.shiki .sW-rI{--shiki-light:#267F99;--shiki-light-font-style:inherit;--shiki-default:#267F99;--shiki-default-font-style:inherit;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic}html pre.shiki code .spX-7, html code.shiki .spX-7{--shiki-light:#800000;--shiki-default:#800000;--shiki-dark:#F8F8F2}html pre.shiki code .scd-l, html code.shiki .scd-l{--shiki-light:#800000;--shiki-default:#800000;--shiki-dark:#FF79C6}html pre.shiki code .sAY9V, html code.shiki .sAY9V{--shiki-light:#E50000;--shiki-light-font-style:inherit;--shiki-default:#E50000;--shiki-default-font-style:inherit;--shiki-dark:#50FA7B;--shiki-dark-font-style:italic}html pre.shiki code .seisi, html code.shiki .seisi{--shiki-light:#0000FF;--shiki-default:#0000FF;--shiki-dark:#E9F284}html pre.shiki code .sKKzR, html code.shiki .sKKzR{--shiki-light:#0000FF;--shiki-default:#0000FF;--shiki-dark:#F1FA8C}html pre.shiki code .sghk6, html code.shiki .sghk6{--shiki-light:#008000;--shiki-default:#008000;--shiki-dark:#6272A4}",{"title":868,"searchDepth":906,"depth":906,"links":1548},[1549,1550,1551,1552,1553],{"id":958,"depth":906,"text":959},{"id":1063,"depth":906,"text":1064},{"id":1193,"depth":906,"text":1194},{"id":1310,"depth":906,"text":1311},{"id":1495,"depth":906,"text":1496},"Vue composable that resolves the current authentication state from the auth status route, deduplicates SSR and hydration requests with a singleton, and exposes MFA challenges as a reactive ref.","md","i-lucide-user-check",{},null,"---\ntitle: useAuthData\ndescription: Vue composable that resolves the current authentication state from the auth status route, deduplicates SSR and hydration requests with a singleton, and exposes MFA challenges as a reactive ref.\nicon: i-lucide-user-check\n---\n\n`useAuthData` is the primary way to read authentication state in Vue components and pages. It calls the gateway's auth status route once, stores the result in a `useState('auth')` singleton, and returns a reactive `Ref\u003CAuthState>` that every component in the tree can read without triggering a duplicate network request.\n\n```ts\nimport { useAuthData } from 'auth-h3client\u002Fclient'\n\nconst auth = await useAuthData()\n```\n\nDuring SSR the composable forwards all incoming request headers (cookies included) to the auth status route so the upstream check runs with the correct session. Any `Set-Cookie` headers returned by that route are captured and re-attached to the outgoing response, which means token rotation applied during the auth check is transparently visible to the browser.\n\nDuring hydration, `useAuthData` uses the Nuxt `getCachedData` hook to return the SSR payload directly instead of issuing a second fetch. On subsequent calls after hydration, it refetches fresh state.\n\n---\n\n## Signature\n\n```ts\nfunction useAuthData(authStatusUrl?: string): Promise\u003CRef\u003CAuthState>>\n```\n\n| Parameter | Type | Default | Description |\n|---|---|---|---|\n| `authStatusUrl` | `string` | `'\u002Fapi\u002Fauth\u002Fusers\u002FauthStatus'` | Endpoint path for the auth status check. This matches the Nuxt module default. In manual H3 or Nitro setups, pass the path you registered `getAuthStatusHandler` on. |\n\n---\n\n## Return type\n\n```ts\ninterface AuthState {\n  authorized: boolean\n  mfaRequired: boolean\n  id?: string\n  message?: string\n}\n```\n\n| Field | Description |\n|---|---|\n| `authorized` | `true` when the session is valid and the user is logged in |\n| `mfaRequired` | `true` when the IAM service returned a 202 MFA challenge |\n| `id` | The user ID copied from `userId` on the IAM response when authorized |\n| `message` | Human-readable instruction returned with the MFA challenge |\n\n---\n\n## Status code handling\n\n| HTTP status | `authorized` | `mfaRequired` | Notes |\n|---|---|---|---|\n| 200 | `true` | `false` | User is authenticated; `id` is set |\n| 202 | `false` | `true` | MFA challenge; `message` carries the instruction text |\n| 401 | `false` | `false` | Not authenticated |\n| Any other error | `false` | `false` | Network or server error; fails silently |\n\nThe MFA message defaults to `\"Multi factor authentication is required. Please check your email to continue.\"` when the upstream response carries a `text` field but no explicit `message`, and to `\"Security check required.\"` when neither is present.\n\n---\n\n## Typical usage\n\n```vue [pages\u002Findex.vue]\n\u003Cscript setup lang=\"ts\">\nconst auth = await useAuthData()\n\nif (auth.value.mfaRequired) {\n  \u002F\u002F The IAM service has already sent the verification email.\n  \u002F\u002F Show a message telling the user to check their inbox.\n} else if (!auth.value.authorized) {\n  await navigateTo('\u002Flogin')\n}\n\u003C\u002Fscript>\n```\n\nCheck `mfaRequired` before `authorized` to route the user correctly: during an MFA challenge, `authorized` is `false` but the user already has a pending session and should land on the verification page rather than the login page.\n\n::warning\nIf you using this composable in a global Nuxt middleware avoid calling it on magic links routes, since users may be locked out completely, even when trying to prove their legitimacy or reset their passwords.\n::\n\n---\n\n## Custom endpoint\n\nPass a different path if you have registered the auth status handler under a non-default route:\n\n```ts\nconst auth = await useAuthData('\u002Fapi\u002Fmy-auth-check')\n```\n\nUnder the Nuxt module, the default is controlled by the `authStatusUrl` module option. Under plain H3 or Nitro, pass whichever path you registered `getAuthStatusHandler` on.\n\nSee [Session Management](\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Fsession) for the server-side handler this composable talks to.",{"title":152,"description":1554},"qr2WssSB95CoKAwDKwYXJuO5lM7u2wGtkx5W68KgvoY",[1563,1564],{"title":146,"path":147,"stem":148,"children":-1},{"title":156,"path":157,"stem":158,"children":-1},{"id":843,"title":152,"body":1566,"description":1554,"extension":1555,"icon":1556,"meta":2083,"module":1558,"navigation":8,"path":153,"rawbody":1559,"seo":2084,"stem":154,"__hash__":1561},{"type":845,"value":1567,"toc":2076},[1568,1576,1616,1620,1626,1628,1630,1664,1698,1700,1702,1750,1800,1802,1804,1884,1894,1896,1898,2018,2028,2032,2034,2036,2038,2064,2070,2074],[848,1569,1570,853,1572,857,1574,861],{},[851,1571,152],{},[851,1573,856],{},[851,1575,860],{},[863,1577,1578],{"className":865,"code":866,"language":867,"meta":868,"style":868},[851,1579,1580,1598,1602],{"__ignoreMap":868},[872,1581,1582,1584,1586,1588,1590,1592,1594,1596],{"class":874,"line":875},[872,1583,879],{"class":878},[872,1585,883],{"class":882},[872,1587,152],{"class":886},[872,1589,889],{"class":882},[872,1591,892],{"class":878},[872,1593,896],{"class":895},[872,1595,900],{"class":899},[872,1597,903],{"class":895},[872,1599,1600],{"class":874,"line":906},[872,1601,909],{"emptyLinePlaceholder":8},[872,1603,1604,1606,1608,1610,1612,1614],{"class":874,"line":912},[872,1605,916],{"class":915},[872,1607,920],{"class":919},[872,1609,924],{"class":923},[872,1611,927],{"class":878},[872,1613,931],{"class":930},[872,1615,934],{"class":882},[848,1617,937,1618,941],{},[851,1619,940],{},[848,1621,944,1622,947,1624,951],{},[851,1623,152],{},[851,1625,950],{},[953,1627],{},[956,1629,959],{"id":958},[863,1631,1632],{"className":865,"code":962,"language":867,"meta":868,"style":868},[851,1633,1634],{"__ignoreMap":868},[872,1635,1636,1638,1640,1642,1644,1646,1648,1650,1652,1654,1656,1658,1660,1662],{"class":874,"line":875},[872,1637,969],{"class":915},[872,1639,931],{"class":930},[872,1641,974],{"class":882},[872,1643,978],{"class":977},[872,1645,981],{"class":923},[872,1647,985],{"class":984},[872,1649,988],{"class":882},[872,1651,991],{"class":923},[872,1653,994],{"class":984},[872,1655,997],{"class":882},[872,1657,1001],{"class":1000},[872,1659,997],{"class":882},[872,1661,1006],{"class":1000},[872,1663,1009],{"class":882},[1011,1665,1666,1678],{},[1014,1667,1668],{},[1017,1669,1670,1672,1674,1676],{},[1020,1671,1022],{},[1020,1673,1025],{},[1020,1675,1028],{},[1020,1677,1031],{},[1033,1679,1680],{},[1017,1681,1682,1686,1690,1694],{},[1038,1683,1684],{},[851,1685,978],{},[1038,1687,1688],{},[851,1689,1046],{},[1038,1691,1692],{},[851,1693,1051],{},[1038,1695,1054,1696,1058],{},[851,1697,1057],{},[953,1699],{},[956,1701,1064],{"id":1063},[863,1703,1704],{"className":865,"code":1067,"language":867,"meta":868,"style":868},[851,1705,1706,1714,1722,1730,1738,1746],{"__ignoreMap":868},[872,1707,1708,1710,1712],{"class":874,"line":875},[872,1709,1074],{"class":915},[872,1711,1077],{"class":984},[872,1713,1080],{"class":882},[872,1715,1716,1718,1720],{"class":874,"line":906},[872,1717,1085],{"class":886},[872,1719,991],{"class":923},[872,1721,1090],{"class":984},[872,1723,1724,1726,1728],{"class":874,"line":912},[872,1725,1095],{"class":886},[872,1727,991],{"class":923},[872,1729,1090],{"class":984},[872,1731,1732,1734,1736],{"class":874,"line":1102},[872,1733,1105],{"class":886},[872,1735,981],{"class":923},[872,1737,1110],{"class":984},[872,1739,1740,1742,1744],{"class":874,"line":1113},[872,1741,1116],{"class":886},[872,1743,981],{"class":923},[872,1745,1110],{"class":984},[872,1747,1748],{"class":874,"line":1123},[872,1749,1126],{"class":882},[1011,1751,1752,1760],{},[1014,1753,1754],{},[1017,1755,1756,1758],{},[1020,1757,1135],{},[1020,1759,1031],{},[1033,1761,1762,1772,1782,1792],{},[1017,1763,1764,1768],{},[1038,1765,1766],{},[851,1767,1146],{},[1038,1769,1770,1152],{},[851,1771,1151],{},[1017,1773,1774,1778],{},[1038,1775,1776],{},[851,1777,1159],{},[1038,1779,1780,1164],{},[851,1781,1151],{},[1017,1783,1784,1788],{},[1038,1785,1786],{},[851,1787,1171],{},[1038,1789,1174,1790,1178],{},[851,1791,1177],{},[1017,1793,1794,1798],{},[1038,1795,1796],{},[851,1797,1185],{},[1038,1799,1188],{},[953,1801],{},[956,1803,1194],{"id":1193},[1011,1805,1806,1822],{},[1014,1807,1808],{},[1017,1809,1810,1812,1816,1820],{},[1020,1811,1203],{},[1020,1813,1814],{},[851,1815,1146],{},[1020,1817,1818],{},[851,1819,1159],{},[1020,1821,1214],{},[1033,1823,1824,1840,1856,1870],{},[1017,1825,1826,1828,1832,1836],{},[1038,1827,1221],{},[1038,1829,1830],{},[851,1831,1151],{},[1038,1833,1834],{},[851,1835,1230],{},[1038,1837,1233,1838,1236],{},[851,1839,1171],{},[1017,1841,1842,1844,1848,1852],{},[1038,1843,1241],{},[1038,1845,1846],{},[851,1847,1230],{},[1038,1849,1850],{},[851,1851,1151],{},[1038,1853,1252,1854,1255],{},[851,1855,1185],{},[1017,1857,1858,1860,1864,1868],{},[1038,1859,1260],{},[1038,1861,1862],{},[851,1863,1230],{},[1038,1865,1866],{},[851,1867,1230],{},[1038,1869,1271],{},[1017,1871,1872,1874,1878,1882],{},[1038,1873,1276],{},[1038,1875,1876],{},[851,1877,1230],{},[1038,1879,1880],{},[851,1881,1230],{},[1038,1883,1287],{},[848,1885,1290,1886,1294,1888,1298,1890,1301,1892,1305],{},[851,1887,1293],{},[851,1889,1297],{},[851,1891,1185],{},[851,1893,1304],{},[953,1895],{},[956,1897,1311],{"id":1310},[863,1899,1900],{"className":1314,"code":1315,"filename":1316,"language":1317,"meta":868,"style":868},[851,1901,1902,1922,1936,1940,1958,1962,1966,1990,2006,2010],{"__ignoreMap":868},[872,1903,1904,1906,1908,1910,1912,1914,1916,1918,1920],{"class":874,"line":875},[872,1905,997],{"class":1324},[872,1907,1328],{"class":1327},[872,1909,1332],{"class":1331},[872,1911,1335],{"class":1331},[872,1913,1338],{"class":923},[872,1915,1342],{"class":1341},[872,1917,867],{"class":1345},[872,1919,1342],{"class":1341},[872,1921,1350],{"class":1324},[872,1923,1924,1926,1928,1930,1932,1934],{"class":874,"line":906},[872,1925,916],{"class":915},[872,1927,920],{"class":919},[872,1929,924],{"class":923},[872,1931,927],{"class":878},[872,1933,931],{"class":930},[872,1935,934],{"class":882},[872,1937,1938],{"class":874,"line":912},[872,1939,909],{"emptyLinePlaceholder":8},[872,1941,1942,1944,1946,1948,1950,1952,1954,1956],{"class":874,"line":1102},[872,1943,1373],{"class":878},[872,1945,1376],{"class":882},[872,1947,1379],{"class":886},[872,1949,1382],{"class":882},[872,1951,1385],{"class":886},[872,1953,1382],{"class":882},[872,1955,1159],{"class":886},[872,1957,1392],{"class":882},[872,1959,1960],{"class":874,"line":1113},[872,1961,1398],{"class":1397},[872,1963,1964],{"class":874,"line":1123},[872,1965,1403],{"class":1397},[872,1967,1968,1970,1972,1974,1976,1978,1980,1982,1984,1986,1988],{"class":874,"line":1406},[872,1969,1409],{"class":882},[872,1971,1412],{"class":878},[872,1973,1415],{"class":878},[872,1975,1376],{"class":882},[872,1977,1420],{"class":923},[872,1979,1379],{"class":886},[872,1981,1382],{"class":882},[872,1983,1385],{"class":886},[872,1985,1382],{"class":882},[872,1987,1146],{"class":886},[872,1989,1392],{"class":882},[872,1991,1992,1994,1996,1998,2000,2002,2004],{"class":874,"line":1435},[872,1993,1438],{"class":878},[872,1995,1441],{"class":930},[872,1997,974],{"class":882},[872,1999,1446],{"class":895},[872,2001,1449],{"class":899},[872,2003,1446],{"class":895},[872,2005,1454],{"class":882},[872,2007,2008],{"class":874,"line":1457},[872,2009,1126],{"class":882},[872,2011,2012,2014,2016],{"class":874,"line":1462},[872,2013,1465],{"class":1324},[872,2015,1328],{"class":1327},[872,2017,1350],{"class":1324},[848,2019,1472,2020,1475,2022,1478,2024,1481,2026,1484],{},[851,2021,1159],{},[851,2023,1146],{},[851,2025,1146],{},[851,2027,1230],{},[1486,2029,2030],{},[848,2031,1490],{},[953,2033],{},[956,2035,1496],{"id":1495},[848,2037,1499],{},[863,2039,2040],{"className":865,"code":1502,"language":867,"meta":868,"style":868},[851,2041,2042],{"__ignoreMap":868},[872,2043,2044,2046,2048,2050,2052,2054,2056,2058,2060,2062],{"class":874,"line":875},[872,2045,916],{"class":915},[872,2047,920],{"class":919},[872,2049,924],{"class":923},[872,2051,927],{"class":878},[872,2053,931],{"class":930},[872,2055,974],{"class":882},[872,2057,1446],{"class":895},[872,2059,1523],{"class":899},[872,2061,1446],{"class":895},[872,2063,1454],{"class":882},[848,2065,1530,2066,1533,2068,1058],{},[851,2067,978],{},[851,2069,1057],{},[848,2071,1538,2072,1542],{},[1540,2073,89],{"href":90},[1544,2075,1546],{},{"title":868,"searchDepth":906,"depth":906,"links":2077},[2078,2079,2080,2081,2082],{"id":958,"depth":906,"text":959},{"id":1063,"depth":906,"text":1064},{"id":1193,"depth":906,"text":1194},{"id":1310,"depth":906,"text":1311},{"id":1495,"depth":906,"text":1496},{},{"title":152,"description":1554},1780436292193]