[{"data":1,"prerenderedAt":3302},["ShallowReactive",2],{"navLinks":3,"sidebar_docs_navigation_\u002Fdocs\u002Fauth-h3client":64,"navigation":217,"navLinks_footer":829,"\u002Fdocs\u002Fauth-h3client\u002Fclient\u002Fuse-magic-link_page":842,"\u002Fdocs\u002Fauth-h3client\u002Fclient\u002Fuse-magic-link_surround":2222,"\u002Fdocs\u002Fauth-h3client\u002Fclient\u002Fuse-magic-link":2225},{"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":156,"body":844,"description":2214,"extension":2215,"icon":2216,"meta":2217,"module":2218,"navigation":8,"path":157,"rawbody":2219,"seo":2220,"stem":158,"__hash__":2221},"docs\u002Fdocs\u002Fauth-h3client\u002F03.client\u002F01.use-magic-link.md",{"type":845,"value":846,"toc":2205},"minimark",[847,864,937,940,945,996,1036,1038,1042,1049,1100,1102,1108,1114,1177,1200,1202,1206,1300,1306,1308,1312,1315,1354,1357,1359,1363,1368,1656,1659,2195,2201],[848,849,850,853,854,857,858,863],"p",{},[851,852,156],"code",{}," is the composable that powers magic link verification pages. It reads the link query parameters, validates them, picks the correct server endpoint from the ",[851,855,856],{},"reason"," field, and calls ",[859,860,861],"a",{"href":161},[851,862,160],{}," behind the scenes. The result is the full link metadata for your page to render.",[865,866,871],"pre",{"className":867,"code":868,"language":869,"meta":870,"style":870},"language-ts shiki shiki-themes light-plus light-plus dracula","import { useMagicLink } from 'auth-h3client\u002Fclient'\n\nconst data = await useMagicLink()\n","ts","",[851,872,873,906,912],{"__ignoreMap":870},[874,875,878,882,886,889,892,895,899,903],"span",{"class":876,"line":877},"line",1,[874,879,881],{"class":880},"sZ328","import",[874,883,885],{"class":884},"sDd4n"," { ",[874,887,156],{"class":888},"sjsA6",[874,890,891],{"class":884}," } ",[874,893,894],{"class":880},"from",[874,896,898],{"class":897},"sFkSl"," '",[874,900,902],{"class":901},"sFB1V","auth-h3client\u002Fclient",[874,904,905],{"class":897},"'\n",[874,907,909],{"class":876,"line":908},2,[874,910,911],{"emptyLinePlaceholder":8},"\n",[874,913,915,919,923,927,930,934],{"class":876,"line":914},3,[874,916,918],{"class":917},"sl46w","const",[874,920,922],{"class":921},"s3JHE"," data",[874,924,926],{"class":925},"saOXh"," =",[874,928,929],{"class":880}," await",[874,931,933],{"class":932},"sHOzp"," useMagicLink",[874,935,936],{"class":884},"()\n",[938,939],"hr",{},[941,942,944],"h2",{"id":943},"signature","Signature",[865,946,948],{"className":867,"code":947,"language":869,"meta":870,"style":870},"function useMagicLink(path?: string): Promise\u003CData | NotFoundPath>\n",[851,949,950],{"__ignoreMap":870},[874,951,952,955,957,960,964,967,971,974,977,980,983,987,990,993],{"class":876,"line":877},[874,953,954],{"class":917},"function",[874,956,933],{"class":932},[874,958,959],{"class":884},"(",[874,961,963],{"class":962},"sygFZ","path",[874,965,966],{"class":925},"?:",[874,968,970],{"class":969},"sFs1U"," string",[874,972,973],{"class":884},")",[874,975,976],{"class":925},":",[874,978,979],{"class":969}," Promise",[874,981,982],{"class":884},"\u003C",[874,984,986],{"class":985},"sW-rI","Data",[874,988,989],{"class":925}," |",[874,991,992],{"class":985}," NotFoundPath",[874,994,995],{"class":884},">\n",[997,998,999,1015],"table",{},[1000,1001,1002],"thead",{},[1003,1004,1005,1009,1012],"tr",{},[1006,1007,1008],"th",{},"Parameter",[1006,1010,1011],{},"Type",[1006,1013,1014],{},"Description",[1016,1017,1018],"tbody",{},[1003,1019,1020,1025,1030],{},[1021,1022,1023],"td",{},[851,1024,963],{},[1021,1026,1027],{},[851,1028,1029],{},"string",[1021,1031,1032,1033,1035],{},"Optional path to a custom verification endpoint. Used when the ",[851,1034,856],{}," does not match any built-in flow.",[938,1037],{},[941,1039,1041],{"id":1040},"query-parameters-read-from-the-current-route","Query parameters read from the current route",[848,1043,1044,1045,1048],{},"The composable reads the following parameters from ",[851,1046,1047],{},"useRoute().query",". If any are missing, it throws a 404 error that renders your Nuxt error page.",[997,1050,1051,1059],{},[1000,1052,1053],{},[1003,1054,1055,1057],{},[1006,1056,1008],{},[1006,1058,1014],{},[1016,1060,1061,1071,1081,1090],{},[1003,1062,1063,1068],{},[1021,1064,1065],{},[851,1066,1067],{},"token",[1021,1069,1070],{},"Temporary verification token issued by the IAM service",[1003,1072,1073,1078],{},[1021,1074,1075],{},[851,1076,1077],{},"random",[1021,1079,1080],{},"Cryptographic hash binding the token to the session",[1003,1082,1083,1087],{},[1021,1084,1085],{},[851,1086,856],{},[1021,1088,1089],{},"The flow reason, used to select the verification endpoint",[1003,1091,1092,1097],{},[1021,1093,1094],{},[851,1095,1096],{},"visitor",[1021,1098,1099],{},"The visitor fingerprint tied to the session that requested the link",[938,1101],{},[941,1103,1105,1106],{"id":1104},"routing-by-reason","Routing by ",[851,1107,856],{},[848,1109,1110,1111,1113],{},"The composable lowercases the ",[851,1112,856],{}," and maps it to a server endpoint:",[997,1115,1116,1128],{},[1000,1117,1118],{},[1003,1119,1120,1125],{},[1006,1121,1122,1123],{},"Lowercased ",[851,1124,856],{},[1006,1126,1127],{},"Endpoint called",[1016,1129,1130,1142,1154,1166],{},[1003,1131,1132,1137],{},[1021,1133,1134],{},[851,1135,1136],{},"magic_link_mfa_checks",[1021,1138,1139],{},[851,1140,1141],{},"GET \u002Fapi\u002Fauth\u002Fverify-mfa",[1003,1143,1144,1149],{},[1021,1145,1146],{},[851,1147,1148],{},"password_reset",[1021,1150,1151],{},[851,1152,1153],{},"GET \u002Fapi\u002Fauth\u002Freset-password",[1003,1155,1156,1161],{},[1021,1157,1158],{},[851,1159,1160],{},"change_email",[1021,1162,1163],{},[851,1164,1165],{},"GET \u002Fapi\u002Fauth\u002Fupdate-email",[1003,1167,1168,1171],{},[1021,1169,1170],{},"Any other value",[1021,1172,1173,1174,1176],{},"The ",[851,1175,963],{}," argument (404 if omitted)",[848,1178,1179,1180,1183,1184,1187,1188,1190,1191,1195,1196,1199],{},"The comparison is case-insensitive, so a link carrying ",[851,1181,1182],{},"reason=MAGIC_LINK_MFA_CHECKS"," is routed to the same endpoint as one carrying ",[851,1185,1186],{},"reason=magic_link_mfa_checks",". However its returned ",[851,1189,856],{}," ",[1192,1193,1194],"strong",{},"is not",", and returned as is from the iam service (",[851,1197,1198],{},"MAGIC_LINK_MFA_CHECKS",").",[938,1201],{},[941,1203,1205],{"id":1204},"return-value-on-success","Return value on success",[865,1207,1209],{"className":867,"code":1208,"language":869,"meta":870,"style":870},"interface Data {\n  token: string\n  random: string\n  visitor: string\n  reason: string\n  link: 'Password Reset' | 'MFA Code' | 'Custom MFA'\n}\n",[851,1210,1211,1222,1232,1241,1251,1261,1294],{"__ignoreMap":870},[874,1212,1213,1216,1219],{"class":876,"line":877},[874,1214,1215],{"class":917},"interface",[874,1217,1218],{"class":969}," Data",[874,1220,1221],{"class":884}," {\n",[874,1223,1224,1227,1229],{"class":876,"line":908},[874,1225,1226],{"class":888},"  token",[874,1228,976],{"class":925},[874,1230,1231],{"class":969}," string\n",[874,1233,1234,1237,1239],{"class":876,"line":914},[874,1235,1236],{"class":888},"  random",[874,1238,976],{"class":925},[874,1240,1231],{"class":969},[874,1242,1244,1247,1249],{"class":876,"line":1243},4,[874,1245,1246],{"class":888},"  visitor",[874,1248,976],{"class":925},[874,1250,1231],{"class":969},[874,1252,1254,1257,1259],{"class":876,"line":1253},5,[874,1255,1256],{"class":888},"  reason",[874,1258,976],{"class":925},[874,1260,1231],{"class":969},[874,1262,1264,1267,1269,1271,1273,1276,1278,1280,1283,1285,1287,1289,1292],{"class":876,"line":1263},6,[874,1265,1266],{"class":888},"  link",[874,1268,976],{"class":925},[874,1270,898],{"class":897},[874,1272,130],{"class":901},[874,1274,1275],{"class":897},"'",[874,1277,989],{"class":925},[874,1279,898],{"class":897},[874,1281,1282],{"class":901},"MFA Code",[874,1284,1275],{"class":897},[874,1286,989],{"class":925},[874,1288,898],{"class":897},[874,1290,1291],{"class":901},"Custom MFA",[874,1293,905],{"class":897},[874,1295,1297],{"class":876,"line":1296},7,[874,1298,1299],{"class":884},"}\n",[848,1301,1173,1302,1305],{},[851,1303,1304],{},"link"," field identifies the high-level action category returned by the gateway after validating the link with the IAM service. Use it in your template to decide which form component to render.",[938,1307],{},[941,1309,1311],{"id":1310},"error-handling","Error handling",[848,1313,1314],{},"The composable throws a Nuxt 404 error in any of the following cases:",[1316,1317,1318,1333,1341,1348],"ul",{},[1319,1320,1321,1322,1324,1325,1324,1327,1329,1330,1332],"li",{},"Any of ",[851,1323,1067],{},", ",[851,1326,1077],{},[851,1328,856],{},", or ",[851,1331,1096],{}," is missing from the route query",[1319,1334,1173,1335,1337,1338,1340],{},[851,1336,856],{}," does not match a built-in flow and no ",[851,1339,963],{}," argument was provided",[1319,1342,1343,1344,1347],{},"The server endpoint returns an error or a ",[851,1345,1346],{},"NotFoundPath"," response",[1319,1349,1350,1353],{},[851,1351,1352],{},"useAsyncData"," returns an error or an empty value",[848,1355,1356],{},"Handle these by defining a Nuxt error page, or catch the error inside your page component.",[938,1358],{},[941,1360,1362],{"id":1361},"typical-usage","Typical usage",[848,1364,1365,1366,976],{},"Build a single verification page that handles every flow. Render the right form based on the ",[851,1367,856],{},[865,1369,1374],{"className":1370,"code":1371,"filename":1372,"language":1373,"meta":870,"style":870},"language-vue shiki shiki-themes light-plus light-plus dracula","\u003Cscript setup lang=\"ts\">\nconst data = await useMagicLink('\u002Fapi\u002Fcustom-verify')\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv v-if=\"data.reason.toLowerCase() === 'password_reset'\">\n    \u003CPasswordResetForm v-bind=\"data\" \u002F>\n  \u003C\u002Fdiv>\n  \u003Cdiv v-else-if=\"data.reason.toLowerCase() === 'magic_link_mfa_checks'\">\n    \u003CMfaCodeForm v-bind=\"data\" \u002F>\n  \u003C\u002Fdiv>\n  \u003Cdiv v-else-if=\"data.reason.toLowerCase() === 'change_email'\">\n    \u003CEmailChangeForm v-bind=\"data\" \u002F>\n  \u003C\u002Fdiv>\n  \u003Cdiv v-else>\n    \u003CCustomActionForm v-bind=\"data\" \u002F>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n","app\u002Fpages\u002Fauth\u002Fverify.vue","vue",[851,1375,1376,1406,1430,1439,1443,1452,1474,1497,1507,1528,1548,1557,1577,1597,1606,1618,1638,1647],{"__ignoreMap":870},[874,1377,1378,1381,1385,1389,1392,1395,1399,1402,1404],{"class":876,"line":877},[874,1379,982],{"class":1380},"spX-7",[874,1382,1384],{"class":1383},"scd-l","script",[874,1386,1388],{"class":1387},"sAY9V"," setup",[874,1390,1391],{"class":1387}," lang",[874,1393,1394],{"class":925},"=",[874,1396,1398],{"class":1397},"seisi","\"",[874,1400,869],{"class":1401},"sKKzR",[874,1403,1398],{"class":1397},[874,1405,995],{"class":1380},[874,1407,1408,1410,1412,1414,1416,1418,1420,1422,1425,1427],{"class":876,"line":908},[874,1409,918],{"class":917},[874,1411,922],{"class":921},[874,1413,926],{"class":925},[874,1415,929],{"class":880},[874,1417,933],{"class":932},[874,1419,959],{"class":884},[874,1421,1275],{"class":897},[874,1423,1424],{"class":901},"\u002Fapi\u002Fcustom-verify",[874,1426,1275],{"class":897},[874,1428,1429],{"class":884},")\n",[874,1431,1432,1435,1437],{"class":876,"line":914},[874,1433,1434],{"class":1380},"\u003C\u002F",[874,1436,1384],{"class":1383},[874,1438,995],{"class":1380},[874,1440,1441],{"class":876,"line":1243},[874,1442,911],{"emptyLinePlaceholder":8},[874,1444,1445,1447,1450],{"class":876,"line":1253},[874,1446,982],{"class":1380},[874,1448,1449],{"class":1383},"template",[874,1451,995],{"class":1380},[874,1453,1454,1457,1460,1463,1465,1467,1470,1472],{"class":876,"line":1263},[874,1455,1456],{"class":1380},"  \u003C",[874,1458,1459],{"class":1383},"div",[874,1461,1462],{"class":1387}," v-if",[874,1464,1394],{"class":925},[874,1466,1398],{"class":1397},[874,1468,1469],{"class":1401},"data.reason.toLowerCase() === 'password_reset'",[874,1471,1398],{"class":1397},[874,1473,995],{"class":1380},[874,1475,1476,1479,1482,1485,1487,1489,1492,1494],{"class":876,"line":1296},[874,1477,1478],{"class":1380},"    \u003C",[874,1480,1481],{"class":1383},"PasswordResetForm",[874,1483,1484],{"class":1387}," v-bind",[874,1486,1394],{"class":925},[874,1488,1398],{"class":1397},[874,1490,1491],{"class":1401},"data",[874,1493,1398],{"class":1397},[874,1495,1496],{"class":1380}," \u002F>\n",[874,1498,1500,1503,1505],{"class":876,"line":1499},8,[874,1501,1502],{"class":1380},"  \u003C\u002F",[874,1504,1459],{"class":1383},[874,1506,995],{"class":1380},[874,1508,1510,1512,1514,1517,1519,1521,1524,1526],{"class":876,"line":1509},9,[874,1511,1456],{"class":1380},[874,1513,1459],{"class":1383},[874,1515,1516],{"class":1387}," v-else-if",[874,1518,1394],{"class":925},[874,1520,1398],{"class":1397},[874,1522,1523],{"class":1401},"data.reason.toLowerCase() === 'magic_link_mfa_checks'",[874,1525,1398],{"class":1397},[874,1527,995],{"class":1380},[874,1529,1531,1533,1536,1538,1540,1542,1544,1546],{"class":876,"line":1530},10,[874,1532,1478],{"class":1380},[874,1534,1535],{"class":1383},"MfaCodeForm",[874,1537,1484],{"class":1387},[874,1539,1394],{"class":925},[874,1541,1398],{"class":1397},[874,1543,1491],{"class":1401},[874,1545,1398],{"class":1397},[874,1547,1496],{"class":1380},[874,1549,1551,1553,1555],{"class":876,"line":1550},11,[874,1552,1502],{"class":1380},[874,1554,1459],{"class":1383},[874,1556,995],{"class":1380},[874,1558,1560,1562,1564,1566,1568,1570,1573,1575],{"class":876,"line":1559},12,[874,1561,1456],{"class":1380},[874,1563,1459],{"class":1383},[874,1565,1516],{"class":1387},[874,1567,1394],{"class":925},[874,1569,1398],{"class":1397},[874,1571,1572],{"class":1401},"data.reason.toLowerCase() === 'change_email'",[874,1574,1398],{"class":1397},[874,1576,995],{"class":1380},[874,1578,1580,1582,1585,1587,1589,1591,1593,1595],{"class":876,"line":1579},13,[874,1581,1478],{"class":1380},[874,1583,1584],{"class":1383},"EmailChangeForm",[874,1586,1484],{"class":1387},[874,1588,1394],{"class":925},[874,1590,1398],{"class":1397},[874,1592,1491],{"class":1401},[874,1594,1398],{"class":1397},[874,1596,1496],{"class":1380},[874,1598,1600,1602,1604],{"class":876,"line":1599},14,[874,1601,1502],{"class":1380},[874,1603,1459],{"class":1383},[874,1605,995],{"class":1380},[874,1607,1609,1611,1613,1616],{"class":876,"line":1608},15,[874,1610,1456],{"class":1380},[874,1612,1459],{"class":1383},[874,1614,1615],{"class":1387}," v-else",[874,1617,995],{"class":1380},[874,1619,1621,1623,1626,1628,1630,1632,1634,1636],{"class":876,"line":1620},16,[874,1622,1478],{"class":1380},[874,1624,1625],{"class":1383},"CustomActionForm",[874,1627,1484],{"class":1387},[874,1629,1394],{"class":925},[874,1631,1398],{"class":1397},[874,1633,1491],{"class":1401},[874,1635,1398],{"class":1397},[874,1637,1496],{"class":1380},[874,1639,1641,1643,1645],{"class":876,"line":1640},17,[874,1642,1502],{"class":1380},[874,1644,1459],{"class":1383},[874,1646,995],{"class":1380},[874,1648,1650,1652,1654],{"class":876,"line":1649},18,[874,1651,1434],{"class":1380},[874,1653,1449],{"class":1383},[874,1655,995],{"class":1380},[848,1657,1658],{},"Another example:",[865,1660,1662],{"className":1370,"code":1661,"filename":1372,"language":1373,"meta":870,"style":870},"\u003Cscript setup lang=\"ts\">\nimport { type Component } from 'vue';\nimport AuthPasswordResetForm from '~\u002Fcomponents\u002FAuth\u002FAuthPasswordResetForm.vue';\nimport AuthMfaForm from '~\u002Fcomponents\u002FAuth\u002FAuthMfaForm.vue';\nimport AuthChangeEmail from '~\u002Fcomponents\u002FAuth\u002FAuthChangeEmail.vue';\nimport {useMagicLink} from 'auth-h3client\u002Fclient';\nconst result = await useMagicLink(); \n\n\nif ('error' in result) {\n    throw createError({\n        statusCode: 404,\n        statusText: 'Not Found',\n        message: `The page you are looking for doesn't exists`\n    });  \n}\n\nconst activeComponent = computed\u003CComponent | null>(() => {\n    switch (result.reason) {\n        case 'PASSWORD_RESET': \n            return AuthPasswordResetForm as Component;\n        case 'MAGIC_LINK_MFA_CHECKS':\n            return AuthMfaForm as Component;\n        case 'change_email':\n            return AuthChangeEmail as Component; \n        default:\n            return AuthMfaForm as Component;\n    }\n});\n\nconst componentProps = computed(() => ({\n    ...result\n}));\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Ccomponent\n    :is=\"activeComponent\"\n    v-if=\"activeComponent\"\n    v-bind=\"componentProps\"\n  \u002F>\n\u003C\u002Ftemplate>\n",[851,1663,1664,1684,1709,1728,1746,1764,1786,1802,1806,1810,1833,1844,1859,1875,1885,1890,1894,1898,1928,1946,1962,1977,1991,2004,2017,2031,2039,2052,2058,2064,2069,2089,2098,2104,2113,2118,2127,2135,2151,2165,2180,2186],{"__ignoreMap":870},[874,1665,1666,1668,1670,1672,1674,1676,1678,1680,1682],{"class":876,"line":877},[874,1667,982],{"class":1380},[874,1669,1384],{"class":1383},[874,1671,1388],{"class":1387},[874,1673,1391],{"class":1387},[874,1675,1394],{"class":925},[874,1677,1398],{"class":1397},[874,1679,869],{"class":1401},[874,1681,1398],{"class":1397},[874,1683,995],{"class":1380},[874,1685,1686,1688,1690,1693,1696,1698,1700,1702,1704,1706],{"class":876,"line":908},[874,1687,881],{"class":880},[874,1689,885],{"class":884},[874,1691,1692],{"class":880},"type",[874,1694,1695],{"class":888}," Component",[874,1697,891],{"class":884},[874,1699,894],{"class":880},[874,1701,898],{"class":897},[874,1703,1373],{"class":901},[874,1705,1275],{"class":897},[874,1707,1708],{"class":884},";\n",[874,1710,1711,1713,1716,1719,1721,1724,1726],{"class":876,"line":914},[874,1712,881],{"class":880},[874,1714,1715],{"class":888}," AuthPasswordResetForm",[874,1717,1718],{"class":880}," from",[874,1720,898],{"class":897},[874,1722,1723],{"class":901},"~\u002Fcomponents\u002FAuth\u002FAuthPasswordResetForm.vue",[874,1725,1275],{"class":897},[874,1727,1708],{"class":884},[874,1729,1730,1732,1735,1737,1739,1742,1744],{"class":876,"line":1243},[874,1731,881],{"class":880},[874,1733,1734],{"class":888}," AuthMfaForm",[874,1736,1718],{"class":880},[874,1738,898],{"class":897},[874,1740,1741],{"class":901},"~\u002Fcomponents\u002FAuth\u002FAuthMfaForm.vue",[874,1743,1275],{"class":897},[874,1745,1708],{"class":884},[874,1747,1748,1750,1753,1755,1757,1760,1762],{"class":876,"line":1253},[874,1749,881],{"class":880},[874,1751,1752],{"class":888}," AuthChangeEmail",[874,1754,1718],{"class":880},[874,1756,898],{"class":897},[874,1758,1759],{"class":901},"~\u002Fcomponents\u002FAuth\u002FAuthChangeEmail.vue",[874,1761,1275],{"class":897},[874,1763,1708],{"class":884},[874,1765,1766,1768,1771,1773,1776,1778,1780,1782,1784],{"class":876,"line":1263},[874,1767,881],{"class":880},[874,1769,1770],{"class":884}," {",[874,1772,156],{"class":888},[874,1774,1775],{"class":884},"} ",[874,1777,894],{"class":880},[874,1779,898],{"class":897},[874,1781,902],{"class":901},[874,1783,1275],{"class":897},[874,1785,1708],{"class":884},[874,1787,1788,1790,1793,1795,1797,1799],{"class":876,"line":1296},[874,1789,918],{"class":917},[874,1791,1792],{"class":921}," result",[874,1794,926],{"class":925},[874,1796,929],{"class":880},[874,1798,933],{"class":932},[874,1800,1801],{"class":884},"(); \n",[874,1803,1804],{"class":876,"line":1499},[874,1805,911],{"emptyLinePlaceholder":8},[874,1807,1808],{"class":876,"line":1509},[874,1809,911],{"emptyLinePlaceholder":8},[874,1811,1812,1815,1818,1820,1823,1825,1828,1830],{"class":876,"line":1530},[874,1813,1814],{"class":880},"if",[874,1816,1817],{"class":884}," (",[874,1819,1275],{"class":897},[874,1821,1822],{"class":901},"error",[874,1824,1275],{"class":897},[874,1826,1827],{"class":917}," in",[874,1829,1792],{"class":888},[874,1831,1832],{"class":884},") {\n",[874,1834,1835,1838,1841],{"class":876,"line":1550},[874,1836,1837],{"class":880},"    throw",[874,1839,1840],{"class":932}," createError",[874,1842,1843],{"class":884},"({\n",[874,1845,1846,1849,1852,1856],{"class":876,"line":1559},[874,1847,1848],{"class":888},"        statusCode",[874,1850,976],{"class":1851},"s34zl",[874,1853,1855],{"class":1854},"spgvN"," 404",[874,1857,1858],{"class":884},",\n",[874,1860,1861,1864,1866,1868,1871,1873],{"class":876,"line":1579},[874,1862,1863],{"class":888},"        statusText",[874,1865,976],{"class":1851},[874,1867,898],{"class":897},[874,1869,1870],{"class":901},"Not Found",[874,1872,1275],{"class":897},[874,1874,1858],{"class":884},[874,1876,1877,1880,1882],{"class":876,"line":1599},[874,1878,1879],{"class":888},"        message",[874,1881,976],{"class":1851},[874,1883,1884],{"class":901}," `The page you are looking for doesn't exists`\n",[874,1886,1887],{"class":876,"line":1608},[874,1888,1889],{"class":884},"    });  \n",[874,1891,1892],{"class":876,"line":1620},[874,1893,1299],{"class":884},[874,1895,1896],{"class":876,"line":1640},[874,1897,911],{"emptyLinePlaceholder":8},[874,1899,1900,1902,1905,1907,1910,1912,1915,1917,1920,1923,1926],{"class":876,"line":1649},[874,1901,918],{"class":917},[874,1903,1904],{"class":921}," activeComponent",[874,1906,926],{"class":925},[874,1908,1909],{"class":932}," computed",[874,1911,982],{"class":884},[874,1913,1914],{"class":985},"Component",[874,1916,989],{"class":925},[874,1918,1919],{"class":969}," null",[874,1921,1922],{"class":884},">(() ",[874,1924,1925],{"class":917},"=>",[874,1927,1221],{"class":884},[874,1929,1931,1934,1936,1939,1942,1944],{"class":876,"line":1930},19,[874,1932,1933],{"class":880},"    switch",[874,1935,1817],{"class":884},[874,1937,1938],{"class":888},"result",[874,1940,1941],{"class":884},".",[874,1943,856],{"class":888},[874,1945,1832],{"class":884},[874,1947,1949,1952,1954,1957,1959],{"class":876,"line":1948},20,[874,1950,1951],{"class":880},"        case",[874,1953,898],{"class":897},[874,1955,1956],{"class":901},"PASSWORD_RESET",[874,1958,1275],{"class":897},[874,1960,1961],{"class":884},": \n",[874,1963,1965,1968,1970,1973,1975],{"class":876,"line":1964},21,[874,1966,1967],{"class":880},"            return",[874,1969,1715],{"class":888},[874,1971,1972],{"class":880}," as",[874,1974,1695],{"class":969},[874,1976,1708],{"class":884},[874,1978,1980,1982,1984,1986,1988],{"class":876,"line":1979},22,[874,1981,1951],{"class":880},[874,1983,898],{"class":897},[874,1985,1198],{"class":901},[874,1987,1275],{"class":897},[874,1989,1990],{"class":884},":\n",[874,1992,1994,1996,1998,2000,2002],{"class":876,"line":1993},23,[874,1995,1967],{"class":880},[874,1997,1734],{"class":888},[874,1999,1972],{"class":880},[874,2001,1695],{"class":969},[874,2003,1708],{"class":884},[874,2005,2007,2009,2011,2013,2015],{"class":876,"line":2006},24,[874,2008,1951],{"class":880},[874,2010,898],{"class":897},[874,2012,1160],{"class":901},[874,2014,1275],{"class":897},[874,2016,1990],{"class":884},[874,2018,2020,2022,2024,2026,2028],{"class":876,"line":2019},25,[874,2021,1967],{"class":880},[874,2023,1752],{"class":888},[874,2025,1972],{"class":880},[874,2027,1695],{"class":969},[874,2029,2030],{"class":884},"; \n",[874,2032,2034,2037],{"class":876,"line":2033},26,[874,2035,2036],{"class":880},"        default",[874,2038,1990],{"class":884},[874,2040,2042,2044,2046,2048,2050],{"class":876,"line":2041},27,[874,2043,1967],{"class":880},[874,2045,1734],{"class":888},[874,2047,1972],{"class":880},[874,2049,1695],{"class":969},[874,2051,1708],{"class":884},[874,2053,2055],{"class":876,"line":2054},28,[874,2056,2057],{"class":884},"    }\n",[874,2059,2061],{"class":876,"line":2060},29,[874,2062,2063],{"class":884},"});\n",[874,2065,2067],{"class":876,"line":2066},30,[874,2068,911],{"emptyLinePlaceholder":8},[874,2070,2072,2074,2077,2079,2081,2084,2086],{"class":876,"line":2071},31,[874,2073,918],{"class":917},[874,2075,2076],{"class":921}," componentProps",[874,2078,926],{"class":925},[874,2080,1909],{"class":932},[874,2082,2083],{"class":884},"(() ",[874,2085,1925],{"class":917},[874,2087,2088],{"class":884}," ({\n",[874,2090,2092,2095],{"class":876,"line":2091},32,[874,2093,2094],{"class":925},"    ...",[874,2096,2097],{"class":888},"result\n",[874,2099,2101],{"class":876,"line":2100},33,[874,2102,2103],{"class":884},"}));\n",[874,2105,2107,2109,2111],{"class":876,"line":2106},34,[874,2108,1434],{"class":1380},[874,2110,1384],{"class":1383},[874,2112,995],{"class":1380},[874,2114,2116],{"class":876,"line":2115},35,[874,2117,911],{"emptyLinePlaceholder":8},[874,2119,2121,2123,2125],{"class":876,"line":2120},36,[874,2122,982],{"class":1380},[874,2124,1449],{"class":1383},[874,2126,995],{"class":1380},[874,2128,2130,2132],{"class":876,"line":2129},37,[874,2131,1456],{"class":1380},[874,2133,2134],{"class":1383},"component\n",[874,2136,2138,2141,2143,2145,2148],{"class":876,"line":2137},38,[874,2139,2140],{"class":1387},"    :is",[874,2142,1394],{"class":925},[874,2144,1398],{"class":1397},[874,2146,2147],{"class":1401},"activeComponent",[874,2149,2150],{"class":1397},"\"\n",[874,2152,2154,2157,2159,2161,2163],{"class":876,"line":2153},39,[874,2155,2156],{"class":1387},"    v-if",[874,2158,1394],{"class":925},[874,2160,1398],{"class":1397},[874,2162,2147],{"class":1401},[874,2164,2150],{"class":1397},[874,2166,2168,2171,2173,2175,2178],{"class":876,"line":2167},40,[874,2169,2170],{"class":1387},"    v-bind",[874,2172,1394],{"class":925},[874,2174,1398],{"class":1397},[874,2176,2177],{"class":1401},"componentProps",[874,2179,2150],{"class":1397},[874,2181,2183],{"class":876,"line":2182},41,[874,2184,2185],{"class":1380},"  \u002F>\n",[874,2187,2189,2191,2193],{"class":876,"line":2188},42,[874,2190,1434],{"class":1380},[874,2192,1449],{"class":1383},[874,2194,995],{"class":1380},[848,2196,2197,2198,2200],{},"Each form component posts the verification code back to the same server endpoint. See ",[859,2199,142],{"href":143}," for the full end-to-end flow including the bounce route and code submission.",[2202,2203,2204],"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 .s34zl, html code.shiki .s34zl{--shiki-light:#001080;--shiki-default:#001080;--shiki-dark:#FF79C6}html pre.shiki code .spgvN, html code.shiki .spgvN{--shiki-light:#098658;--shiki-default:#098658;--shiki-dark:#BD93F9}",{"title":870,"searchDepth":908,"depth":908,"links":2206},[2207,2208,2209,2211,2212,2213],{"id":943,"depth":908,"text":944},{"id":1040,"depth":908,"text":1041},{"id":1104,"depth":908,"text":2210},"Routing by reason",{"id":1204,"depth":908,"text":1205},{"id":1310,"depth":908,"text":1311},{"id":1361,"depth":908,"text":1362},"Vue composable that reads magic link query parameters from the current route, validates them with the gateway, and routes the verification call to the matching server endpoint based on the reason field.","md","i-lucide-link",{},null,"---\ntitle: useMagicLink\ndescription: Vue composable that reads magic link query parameters from the current route, validates them with the gateway, and routes the verification call to the matching server endpoint based on the reason field.\nicon: i-lucide-link\n---\n\n`useMagicLink` is the composable that powers magic link verification pages. It reads the link query parameters, validates them, picks the correct server endpoint from the `reason` field, and calls [`executeRequest`](\u002Fdocs\u002Fauth-h3client\u002Fclient\u002Fexecute-request) behind the scenes. The result is the full link metadata for your page to render.\n\n```ts\nimport { useMagicLink } from 'auth-h3client\u002Fclient'\n\nconst data = await useMagicLink()\n```\n\n---\n\n## Signature\n\n```ts\nfunction useMagicLink(path?: string): Promise\u003CData | NotFoundPath>\n```\n\n| Parameter | Type | Description |\n|---|---|---|\n| `path` | `string` | Optional path to a custom verification endpoint. Used when the `reason` does not match any built-in flow. |\n\n---\n\n## Query parameters read from the current route\n\nThe composable reads the following parameters from `useRoute().query`. If any are missing, it throws a 404 error that renders your Nuxt error page.\n\n| Parameter | Description |\n|---|---|\n| `token` | Temporary verification token issued by the IAM service |\n| `random` | Cryptographic hash binding the token to the session |\n| `reason` | The flow reason, used to select the verification endpoint |\n| `visitor` | The visitor fingerprint tied to the session that requested the link |\n\n---\n\n## Routing by `reason`\n\nThe composable lowercases the `reason` and maps it to a server endpoint:\n\n| Lowercased `reason` | Endpoint called |\n|---|---|\n| `magic_link_mfa_checks` | `GET \u002Fapi\u002Fauth\u002Fverify-mfa` |\n| `password_reset` | `GET \u002Fapi\u002Fauth\u002Freset-password` |\n| `change_email` | `GET \u002Fapi\u002Fauth\u002Fupdate-email` |\n| Any other value | The `path` argument (404 if omitted) |\n\nThe comparison is case-insensitive, so a link carrying `reason=MAGIC_LINK_MFA_CHECKS` is routed to the same endpoint as one carrying `reason=magic_link_mfa_checks`. However its returned `reason` **is not**, and returned as is from the iam service (`MAGIC_LINK_MFA_CHECKS`).\n\n---\n\n## Return value on success\n\n```ts\ninterface Data {\n  token: string\n  random: string\n  visitor: string\n  reason: string\n  link: 'Password Reset' | 'MFA Code' | 'Custom MFA'\n}\n```\n\nThe `link` field identifies the high-level action category returned by the gateway after validating the link with the IAM service. Use it in your template to decide which form component to render.\n\n---\n\n## Error handling\n\nThe composable throws a Nuxt 404 error in any of the following cases:\n\n- Any of `token`, `random`, `reason`, or `visitor` is missing from the route query\n- The `reason` does not match a built-in flow and no `path` argument was provided\n- The server endpoint returns an error or a `NotFoundPath` response\n- `useAsyncData` returns an error or an empty value\n\nHandle these by defining a Nuxt error page, or catch the error inside your page component.\n\n---\n\n## Typical usage\n\nBuild a single verification page that handles every flow. Render the right form based on the `reason`:\n\n```vue [app\u002Fpages\u002Fauth\u002Fverify.vue]\n\u003Cscript setup lang=\"ts\">\nconst data = await useMagicLink('\u002Fapi\u002Fcustom-verify')\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv v-if=\"data.reason.toLowerCase() === 'password_reset'\">\n    \u003CPasswordResetForm v-bind=\"data\" \u002F>\n  \u003C\u002Fdiv>\n  \u003Cdiv v-else-if=\"data.reason.toLowerCase() === 'magic_link_mfa_checks'\">\n    \u003CMfaCodeForm v-bind=\"data\" \u002F>\n  \u003C\u002Fdiv>\n  \u003Cdiv v-else-if=\"data.reason.toLowerCase() === 'change_email'\">\n    \u003CEmailChangeForm v-bind=\"data\" \u002F>\n  \u003C\u002Fdiv>\n  \u003Cdiv v-else>\n    \u003CCustomActionForm v-bind=\"data\" \u002F>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n```\nAnother example:\n\n```vue [app\u002Fpages\u002Fauth\u002Fverify.vue]\n\u003Cscript setup lang=\"ts\">\nimport { type Component } from 'vue';\nimport AuthPasswordResetForm from '~\u002Fcomponents\u002FAuth\u002FAuthPasswordResetForm.vue';\nimport AuthMfaForm from '~\u002Fcomponents\u002FAuth\u002FAuthMfaForm.vue';\nimport AuthChangeEmail from '~\u002Fcomponents\u002FAuth\u002FAuthChangeEmail.vue';\nimport {useMagicLink} from 'auth-h3client\u002Fclient';\nconst result = await useMagicLink(); \n\n\nif ('error' in result) {\n    throw createError({\n        statusCode: 404,\n        statusText: 'Not Found',\n        message: `The page you are looking for doesn't exists`\n    });  \n}\n\nconst activeComponent = computed\u003CComponent | null>(() => {\n    switch (result.reason) {\n        case 'PASSWORD_RESET': \n            return AuthPasswordResetForm as Component;\n        case 'MAGIC_LINK_MFA_CHECKS':\n            return AuthMfaForm as Component;\n        case 'change_email':\n            return AuthChangeEmail as Component; \n        default:\n            return AuthMfaForm as Component;\n    }\n});\n\nconst componentProps = computed(() => ({\n    ...result\n}));\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Ccomponent\n    :is=\"activeComponent\"\n    v-if=\"activeComponent\"\n    v-bind=\"componentProps\"\n  \u002F>\n\u003C\u002Ftemplate>\n```\n\nEach form component posts the verification code back to the same server endpoint. See [Client-Side MFA](\u002Fdocs\u002Fauth-h3client\u002Fmfa\u002Fclient-side) for the full end-to-end flow including the bounce route and code submission.",{"title":156,"description":2214},"i3O2XfNnmCI79sjX79w6we1vAXpOCKHZQDYpiYDuJCw",[2223,2224],{"title":152,"path":153,"stem":154,"children":-1},{"title":160,"path":161,"stem":162,"children":-1},{"id":843,"title":156,"body":2226,"description":2214,"extension":2215,"icon":2216,"meta":3300,"module":2218,"navigation":8,"path":157,"rawbody":2219,"seo":3301,"stem":158,"__hash__":2221},{"type":845,"value":2227,"toc":3292},[2228,2238,2278,2280,2282,2316,2344,2346,2348,2352,2396,2398,2402,2406,2458,2470,2472,2474,2550,2554,2556,2558,2560,2586,2588,2590,2592,2596,2838,2840,3286,3290],[848,2229,2230,853,2232,857,2234,863],{},[851,2231,156],{},[851,2233,856],{},[859,2235,2236],{"href":161},[851,2237,160],{},[865,2239,2240],{"className":867,"code":868,"language":869,"meta":870,"style":870},[851,2241,2242,2260,2264],{"__ignoreMap":870},[874,2243,2244,2246,2248,2250,2252,2254,2256,2258],{"class":876,"line":877},[874,2245,881],{"class":880},[874,2247,885],{"class":884},[874,2249,156],{"class":888},[874,2251,891],{"class":884},[874,2253,894],{"class":880},[874,2255,898],{"class":897},[874,2257,902],{"class":901},[874,2259,905],{"class":897},[874,2261,2262],{"class":876,"line":908},[874,2263,911],{"emptyLinePlaceholder":8},[874,2265,2266,2268,2270,2272,2274,2276],{"class":876,"line":914},[874,2267,918],{"class":917},[874,2269,922],{"class":921},[874,2271,926],{"class":925},[874,2273,929],{"class":880},[874,2275,933],{"class":932},[874,2277,936],{"class":884},[938,2279],{},[941,2281,944],{"id":943},[865,2283,2284],{"className":867,"code":947,"language":869,"meta":870,"style":870},[851,2285,2286],{"__ignoreMap":870},[874,2287,2288,2290,2292,2294,2296,2298,2300,2302,2304,2306,2308,2310,2312,2314],{"class":876,"line":877},[874,2289,954],{"class":917},[874,2291,933],{"class":932},[874,2293,959],{"class":884},[874,2295,963],{"class":962},[874,2297,966],{"class":925},[874,2299,970],{"class":969},[874,2301,973],{"class":884},[874,2303,976],{"class":925},[874,2305,979],{"class":969},[874,2307,982],{"class":884},[874,2309,986],{"class":985},[874,2311,989],{"class":925},[874,2313,992],{"class":985},[874,2315,995],{"class":884},[997,2317,2318,2328],{},[1000,2319,2320],{},[1003,2321,2322,2324,2326],{},[1006,2323,1008],{},[1006,2325,1011],{},[1006,2327,1014],{},[1016,2329,2330],{},[1003,2331,2332,2336,2340],{},[1021,2333,2334],{},[851,2335,963],{},[1021,2337,2338],{},[851,2339,1029],{},[1021,2341,1032,2342,1035],{},[851,2343,856],{},[938,2345],{},[941,2347,1041],{"id":1040},[848,2349,1044,2350,1048],{},[851,2351,1047],{},[997,2353,2354,2362],{},[1000,2355,2356],{},[1003,2357,2358,2360],{},[1006,2359,1008],{},[1006,2361,1014],{},[1016,2363,2364,2372,2380,2388],{},[1003,2365,2366,2370],{},[1021,2367,2368],{},[851,2369,1067],{},[1021,2371,1070],{},[1003,2373,2374,2378],{},[1021,2375,2376],{},[851,2377,1077],{},[1021,2379,1080],{},[1003,2381,2382,2386],{},[1021,2383,2384],{},[851,2385,856],{},[1021,2387,1089],{},[1003,2389,2390,2394],{},[1021,2391,2392],{},[851,2393,1096],{},[1021,2395,1099],{},[938,2397],{},[941,2399,1105,2400],{"id":1104},[851,2401,856],{},[848,2403,1110,2404,1113],{},[851,2405,856],{},[997,2407,2408,2418],{},[1000,2409,2410],{},[1003,2411,2412,2416],{},[1006,2413,1122,2414],{},[851,2415,856],{},[1006,2417,1127],{},[1016,2419,2420,2430,2440,2450],{},[1003,2421,2422,2426],{},[1021,2423,2424],{},[851,2425,1136],{},[1021,2427,2428],{},[851,2429,1141],{},[1003,2431,2432,2436],{},[1021,2433,2434],{},[851,2435,1148],{},[1021,2437,2438],{},[851,2439,1153],{},[1003,2441,2442,2446],{},[1021,2443,2444],{},[851,2445,1160],{},[1021,2447,2448],{},[851,2449,1165],{},[1003,2451,2452,2454],{},[1021,2453,1170],{},[1021,2455,1173,2456,1176],{},[851,2457,963],{},[848,2459,1179,2460,1183,2462,1187,2464,1190,2466,1195,2468,1199],{},[851,2461,1182],{},[851,2463,1186],{},[851,2465,856],{},[1192,2467,1194],{},[851,2469,1198],{},[938,2471],{},[941,2473,1205],{"id":1204},[865,2475,2476],{"className":867,"code":1208,"language":869,"meta":870,"style":870},[851,2477,2478,2486,2494,2502,2510,2518,2546],{"__ignoreMap":870},[874,2479,2480,2482,2484],{"class":876,"line":877},[874,2481,1215],{"class":917},[874,2483,1218],{"class":969},[874,2485,1221],{"class":884},[874,2487,2488,2490,2492],{"class":876,"line":908},[874,2489,1226],{"class":888},[874,2491,976],{"class":925},[874,2493,1231],{"class":969},[874,2495,2496,2498,2500],{"class":876,"line":914},[874,2497,1236],{"class":888},[874,2499,976],{"class":925},[874,2501,1231],{"class":969},[874,2503,2504,2506,2508],{"class":876,"line":1243},[874,2505,1246],{"class":888},[874,2507,976],{"class":925},[874,2509,1231],{"class":969},[874,2511,2512,2514,2516],{"class":876,"line":1253},[874,2513,1256],{"class":888},[874,2515,976],{"class":925},[874,2517,1231],{"class":969},[874,2519,2520,2522,2524,2526,2528,2530,2532,2534,2536,2538,2540,2542,2544],{"class":876,"line":1263},[874,2521,1266],{"class":888},[874,2523,976],{"class":925},[874,2525,898],{"class":897},[874,2527,130],{"class":901},[874,2529,1275],{"class":897},[874,2531,989],{"class":925},[874,2533,898],{"class":897},[874,2535,1282],{"class":901},[874,2537,1275],{"class":897},[874,2539,989],{"class":925},[874,2541,898],{"class":897},[874,2543,1291],{"class":901},[874,2545,905],{"class":897},[874,2547,2548],{"class":876,"line":1296},[874,2549,1299],{"class":884},[848,2551,1173,2552,1305],{},[851,2553,1304],{},[938,2555],{},[941,2557,1311],{"id":1310},[848,2559,1314],{},[1316,2561,2562,2572,2578,2582],{},[1319,2563,1321,2564,1324,2566,1324,2568,1329,2570,1332],{},[851,2565,1067],{},[851,2567,1077],{},[851,2569,856],{},[851,2571,1096],{},[1319,2573,1173,2574,1337,2576,1340],{},[851,2575,856],{},[851,2577,963],{},[1319,2579,1343,2580,1347],{},[851,2581,1346],{},[1319,2583,2584,1353],{},[851,2585,1352],{},[848,2587,1356],{},[938,2589],{},[941,2591,1362],{"id":1361},[848,2593,1365,2594,976],{},[851,2595,856],{},[865,2597,2598],{"className":1370,"code":1371,"filename":1372,"language":1373,"meta":870,"style":870},[851,2599,2600,2620,2642,2650,2654,2662,2680,2698,2706,2724,2742,2750,2768,2786,2794,2804,2822,2830],{"__ignoreMap":870},[874,2601,2602,2604,2606,2608,2610,2612,2614,2616,2618],{"class":876,"line":877},[874,2603,982],{"class":1380},[874,2605,1384],{"class":1383},[874,2607,1388],{"class":1387},[874,2609,1391],{"class":1387},[874,2611,1394],{"class":925},[874,2613,1398],{"class":1397},[874,2615,869],{"class":1401},[874,2617,1398],{"class":1397},[874,2619,995],{"class":1380},[874,2621,2622,2624,2626,2628,2630,2632,2634,2636,2638,2640],{"class":876,"line":908},[874,2623,918],{"class":917},[874,2625,922],{"class":921},[874,2627,926],{"class":925},[874,2629,929],{"class":880},[874,2631,933],{"class":932},[874,2633,959],{"class":884},[874,2635,1275],{"class":897},[874,2637,1424],{"class":901},[874,2639,1275],{"class":897},[874,2641,1429],{"class":884},[874,2643,2644,2646,2648],{"class":876,"line":914},[874,2645,1434],{"class":1380},[874,2647,1384],{"class":1383},[874,2649,995],{"class":1380},[874,2651,2652],{"class":876,"line":1243},[874,2653,911],{"emptyLinePlaceholder":8},[874,2655,2656,2658,2660],{"class":876,"line":1253},[874,2657,982],{"class":1380},[874,2659,1449],{"class":1383},[874,2661,995],{"class":1380},[874,2663,2664,2666,2668,2670,2672,2674,2676,2678],{"class":876,"line":1263},[874,2665,1456],{"class":1380},[874,2667,1459],{"class":1383},[874,2669,1462],{"class":1387},[874,2671,1394],{"class":925},[874,2673,1398],{"class":1397},[874,2675,1469],{"class":1401},[874,2677,1398],{"class":1397},[874,2679,995],{"class":1380},[874,2681,2682,2684,2686,2688,2690,2692,2694,2696],{"class":876,"line":1296},[874,2683,1478],{"class":1380},[874,2685,1481],{"class":1383},[874,2687,1484],{"class":1387},[874,2689,1394],{"class":925},[874,2691,1398],{"class":1397},[874,2693,1491],{"class":1401},[874,2695,1398],{"class":1397},[874,2697,1496],{"class":1380},[874,2699,2700,2702,2704],{"class":876,"line":1499},[874,2701,1502],{"class":1380},[874,2703,1459],{"class":1383},[874,2705,995],{"class":1380},[874,2707,2708,2710,2712,2714,2716,2718,2720,2722],{"class":876,"line":1509},[874,2709,1456],{"class":1380},[874,2711,1459],{"class":1383},[874,2713,1516],{"class":1387},[874,2715,1394],{"class":925},[874,2717,1398],{"class":1397},[874,2719,1523],{"class":1401},[874,2721,1398],{"class":1397},[874,2723,995],{"class":1380},[874,2725,2726,2728,2730,2732,2734,2736,2738,2740],{"class":876,"line":1530},[874,2727,1478],{"class":1380},[874,2729,1535],{"class":1383},[874,2731,1484],{"class":1387},[874,2733,1394],{"class":925},[874,2735,1398],{"class":1397},[874,2737,1491],{"class":1401},[874,2739,1398],{"class":1397},[874,2741,1496],{"class":1380},[874,2743,2744,2746,2748],{"class":876,"line":1550},[874,2745,1502],{"class":1380},[874,2747,1459],{"class":1383},[874,2749,995],{"class":1380},[874,2751,2752,2754,2756,2758,2760,2762,2764,2766],{"class":876,"line":1559},[874,2753,1456],{"class":1380},[874,2755,1459],{"class":1383},[874,2757,1516],{"class":1387},[874,2759,1394],{"class":925},[874,2761,1398],{"class":1397},[874,2763,1572],{"class":1401},[874,2765,1398],{"class":1397},[874,2767,995],{"class":1380},[874,2769,2770,2772,2774,2776,2778,2780,2782,2784],{"class":876,"line":1579},[874,2771,1478],{"class":1380},[874,2773,1584],{"class":1383},[874,2775,1484],{"class":1387},[874,2777,1394],{"class":925},[874,2779,1398],{"class":1397},[874,2781,1491],{"class":1401},[874,2783,1398],{"class":1397},[874,2785,1496],{"class":1380},[874,2787,2788,2790,2792],{"class":876,"line":1599},[874,2789,1502],{"class":1380},[874,2791,1459],{"class":1383},[874,2793,995],{"class":1380},[874,2795,2796,2798,2800,2802],{"class":876,"line":1608},[874,2797,1456],{"class":1380},[874,2799,1459],{"class":1383},[874,2801,1615],{"class":1387},[874,2803,995],{"class":1380},[874,2805,2806,2808,2810,2812,2814,2816,2818,2820],{"class":876,"line":1620},[874,2807,1478],{"class":1380},[874,2809,1625],{"class":1383},[874,2811,1484],{"class":1387},[874,2813,1394],{"class":925},[874,2815,1398],{"class":1397},[874,2817,1491],{"class":1401},[874,2819,1398],{"class":1397},[874,2821,1496],{"class":1380},[874,2823,2824,2826,2828],{"class":876,"line":1640},[874,2825,1502],{"class":1380},[874,2827,1459],{"class":1383},[874,2829,995],{"class":1380},[874,2831,2832,2834,2836],{"class":876,"line":1649},[874,2833,1434],{"class":1380},[874,2835,1449],{"class":1383},[874,2837,995],{"class":1380},[848,2839,1658],{},[865,2841,2842],{"className":1370,"code":1661,"filename":1372,"language":1373,"meta":870,"style":870},[851,2843,2844,2864,2886,2902,2918,2934,2954,2968,2972,2976,2994,3002,3012,3026,3034,3038,3042,3046,3070,3084,3096,3108,3120,3132,3144,3156,3162,3174,3178,3182,3186,3202,3208,3212,3220,3224,3232,3238,3250,3262,3274,3278],{"__ignoreMap":870},[874,2845,2846,2848,2850,2852,2854,2856,2858,2860,2862],{"class":876,"line":877},[874,2847,982],{"class":1380},[874,2849,1384],{"class":1383},[874,2851,1388],{"class":1387},[874,2853,1391],{"class":1387},[874,2855,1394],{"class":925},[874,2857,1398],{"class":1397},[874,2859,869],{"class":1401},[874,2861,1398],{"class":1397},[874,2863,995],{"class":1380},[874,2865,2866,2868,2870,2872,2874,2876,2878,2880,2882,2884],{"class":876,"line":908},[874,2867,881],{"class":880},[874,2869,885],{"class":884},[874,2871,1692],{"class":880},[874,2873,1695],{"class":888},[874,2875,891],{"class":884},[874,2877,894],{"class":880},[874,2879,898],{"class":897},[874,2881,1373],{"class":901},[874,2883,1275],{"class":897},[874,2885,1708],{"class":884},[874,2887,2888,2890,2892,2894,2896,2898,2900],{"class":876,"line":914},[874,2889,881],{"class":880},[874,2891,1715],{"class":888},[874,2893,1718],{"class":880},[874,2895,898],{"class":897},[874,2897,1723],{"class":901},[874,2899,1275],{"class":897},[874,2901,1708],{"class":884},[874,2903,2904,2906,2908,2910,2912,2914,2916],{"class":876,"line":1243},[874,2905,881],{"class":880},[874,2907,1734],{"class":888},[874,2909,1718],{"class":880},[874,2911,898],{"class":897},[874,2913,1741],{"class":901},[874,2915,1275],{"class":897},[874,2917,1708],{"class":884},[874,2919,2920,2922,2924,2926,2928,2930,2932],{"class":876,"line":1253},[874,2921,881],{"class":880},[874,2923,1752],{"class":888},[874,2925,1718],{"class":880},[874,2927,898],{"class":897},[874,2929,1759],{"class":901},[874,2931,1275],{"class":897},[874,2933,1708],{"class":884},[874,2935,2936,2938,2940,2942,2944,2946,2948,2950,2952],{"class":876,"line":1263},[874,2937,881],{"class":880},[874,2939,1770],{"class":884},[874,2941,156],{"class":888},[874,2943,1775],{"class":884},[874,2945,894],{"class":880},[874,2947,898],{"class":897},[874,2949,902],{"class":901},[874,2951,1275],{"class":897},[874,2953,1708],{"class":884},[874,2955,2956,2958,2960,2962,2964,2966],{"class":876,"line":1296},[874,2957,918],{"class":917},[874,2959,1792],{"class":921},[874,2961,926],{"class":925},[874,2963,929],{"class":880},[874,2965,933],{"class":932},[874,2967,1801],{"class":884},[874,2969,2970],{"class":876,"line":1499},[874,2971,911],{"emptyLinePlaceholder":8},[874,2973,2974],{"class":876,"line":1509},[874,2975,911],{"emptyLinePlaceholder":8},[874,2977,2978,2980,2982,2984,2986,2988,2990,2992],{"class":876,"line":1530},[874,2979,1814],{"class":880},[874,2981,1817],{"class":884},[874,2983,1275],{"class":897},[874,2985,1822],{"class":901},[874,2987,1275],{"class":897},[874,2989,1827],{"class":917},[874,2991,1792],{"class":888},[874,2993,1832],{"class":884},[874,2995,2996,2998,3000],{"class":876,"line":1550},[874,2997,1837],{"class":880},[874,2999,1840],{"class":932},[874,3001,1843],{"class":884},[874,3003,3004,3006,3008,3010],{"class":876,"line":1559},[874,3005,1848],{"class":888},[874,3007,976],{"class":1851},[874,3009,1855],{"class":1854},[874,3011,1858],{"class":884},[874,3013,3014,3016,3018,3020,3022,3024],{"class":876,"line":1579},[874,3015,1863],{"class":888},[874,3017,976],{"class":1851},[874,3019,898],{"class":897},[874,3021,1870],{"class":901},[874,3023,1275],{"class":897},[874,3025,1858],{"class":884},[874,3027,3028,3030,3032],{"class":876,"line":1599},[874,3029,1879],{"class":888},[874,3031,976],{"class":1851},[874,3033,1884],{"class":901},[874,3035,3036],{"class":876,"line":1608},[874,3037,1889],{"class":884},[874,3039,3040],{"class":876,"line":1620},[874,3041,1299],{"class":884},[874,3043,3044],{"class":876,"line":1640},[874,3045,911],{"emptyLinePlaceholder":8},[874,3047,3048,3050,3052,3054,3056,3058,3060,3062,3064,3066,3068],{"class":876,"line":1649},[874,3049,918],{"class":917},[874,3051,1904],{"class":921},[874,3053,926],{"class":925},[874,3055,1909],{"class":932},[874,3057,982],{"class":884},[874,3059,1914],{"class":985},[874,3061,989],{"class":925},[874,3063,1919],{"class":969},[874,3065,1922],{"class":884},[874,3067,1925],{"class":917},[874,3069,1221],{"class":884},[874,3071,3072,3074,3076,3078,3080,3082],{"class":876,"line":1930},[874,3073,1933],{"class":880},[874,3075,1817],{"class":884},[874,3077,1938],{"class":888},[874,3079,1941],{"class":884},[874,3081,856],{"class":888},[874,3083,1832],{"class":884},[874,3085,3086,3088,3090,3092,3094],{"class":876,"line":1948},[874,3087,1951],{"class":880},[874,3089,898],{"class":897},[874,3091,1956],{"class":901},[874,3093,1275],{"class":897},[874,3095,1961],{"class":884},[874,3097,3098,3100,3102,3104,3106],{"class":876,"line":1964},[874,3099,1967],{"class":880},[874,3101,1715],{"class":888},[874,3103,1972],{"class":880},[874,3105,1695],{"class":969},[874,3107,1708],{"class":884},[874,3109,3110,3112,3114,3116,3118],{"class":876,"line":1979},[874,3111,1951],{"class":880},[874,3113,898],{"class":897},[874,3115,1198],{"class":901},[874,3117,1275],{"class":897},[874,3119,1990],{"class":884},[874,3121,3122,3124,3126,3128,3130],{"class":876,"line":1993},[874,3123,1967],{"class":880},[874,3125,1734],{"class":888},[874,3127,1972],{"class":880},[874,3129,1695],{"class":969},[874,3131,1708],{"class":884},[874,3133,3134,3136,3138,3140,3142],{"class":876,"line":2006},[874,3135,1951],{"class":880},[874,3137,898],{"class":897},[874,3139,1160],{"class":901},[874,3141,1275],{"class":897},[874,3143,1990],{"class":884},[874,3145,3146,3148,3150,3152,3154],{"class":876,"line":2019},[874,3147,1967],{"class":880},[874,3149,1752],{"class":888},[874,3151,1972],{"class":880},[874,3153,1695],{"class":969},[874,3155,2030],{"class":884},[874,3157,3158,3160],{"class":876,"line":2033},[874,3159,2036],{"class":880},[874,3161,1990],{"class":884},[874,3163,3164,3166,3168,3170,3172],{"class":876,"line":2041},[874,3165,1967],{"class":880},[874,3167,1734],{"class":888},[874,3169,1972],{"class":880},[874,3171,1695],{"class":969},[874,3173,1708],{"class":884},[874,3175,3176],{"class":876,"line":2054},[874,3177,2057],{"class":884},[874,3179,3180],{"class":876,"line":2060},[874,3181,2063],{"class":884},[874,3183,3184],{"class":876,"line":2066},[874,3185,911],{"emptyLinePlaceholder":8},[874,3187,3188,3190,3192,3194,3196,3198,3200],{"class":876,"line":2071},[874,3189,918],{"class":917},[874,3191,2076],{"class":921},[874,3193,926],{"class":925},[874,3195,1909],{"class":932},[874,3197,2083],{"class":884},[874,3199,1925],{"class":917},[874,3201,2088],{"class":884},[874,3203,3204,3206],{"class":876,"line":2091},[874,3205,2094],{"class":925},[874,3207,2097],{"class":888},[874,3209,3210],{"class":876,"line":2100},[874,3211,2103],{"class":884},[874,3213,3214,3216,3218],{"class":876,"line":2106},[874,3215,1434],{"class":1380},[874,3217,1384],{"class":1383},[874,3219,995],{"class":1380},[874,3221,3222],{"class":876,"line":2115},[874,3223,911],{"emptyLinePlaceholder":8},[874,3225,3226,3228,3230],{"class":876,"line":2120},[874,3227,982],{"class":1380},[874,3229,1449],{"class":1383},[874,3231,995],{"class":1380},[874,3233,3234,3236],{"class":876,"line":2129},[874,3235,1456],{"class":1380},[874,3237,2134],{"class":1383},[874,3239,3240,3242,3244,3246,3248],{"class":876,"line":2137},[874,3241,2140],{"class":1387},[874,3243,1394],{"class":925},[874,3245,1398],{"class":1397},[874,3247,2147],{"class":1401},[874,3249,2150],{"class":1397},[874,3251,3252,3254,3256,3258,3260],{"class":876,"line":2153},[874,3253,2156],{"class":1387},[874,3255,1394],{"class":925},[874,3257,1398],{"class":1397},[874,3259,2147],{"class":1401},[874,3261,2150],{"class":1397},[874,3263,3264,3266,3268,3270,3272],{"class":876,"line":2167},[874,3265,2170],{"class":1387},[874,3267,1394],{"class":925},[874,3269,1398],{"class":1397},[874,3271,2177],{"class":1401},[874,3273,2150],{"class":1397},[874,3275,3276],{"class":876,"line":2182},[874,3277,2185],{"class":1380},[874,3279,3280,3282,3284],{"class":876,"line":2188},[874,3281,1434],{"class":1380},[874,3283,1449],{"class":1383},[874,3285,995],{"class":1380},[848,3287,2197,3288,2200],{},[859,3289,142],{"href":143},[2202,3291,2204],{},{"title":870,"searchDepth":908,"depth":908,"links":3293},[3294,3295,3296,3297,3298,3299],{"id":943,"depth":908,"text":944},{"id":1040,"depth":908,"text":1041},{"id":1104,"depth":908,"text":2210},{"id":1204,"depth":908,"text":1205},{"id":1310,"depth":908,"text":1311},{"id":1361,"depth":908,"text":1362},{},{"title":156,"description":2214},1780436292194]