[{"data":1,"prerenderedAt":2034},["ShallowReactive",2],{"navLinks":3,"sidebar_docs_navigation_\u002Fdocs\u002Fauth-h3client":64,"navigation":217,"navLinks_footer":829,"\u002Fdocs\u002Fauth-h3client\u002Fconfiguration_page":842,"\u002Fdocs\u002Fauth-h3client\u002Fconfiguration_surround":1546,"\u002Fdocs\u002Fauth-h3client\u002Fconfiguration":1549},{"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":192,"body":844,"description":1538,"extension":1539,"icon":1540,"meta":1541,"module":1542,"navigation":8,"path":193,"rawbody":1543,"seo":1544,"stem":194,"__hash__":1545},"docs\u002Fdocs\u002Fauth-h3client\u002F06.configuration.md",{"type":845,"value":846,"toc":1521},"minimark",[847,855,866,869,875,878,885,904,910,917,969,975,981,1039,1045,1053,1055,1061,1070,1090,1092,1098,1104,1152,1154,1160,1167,1216,1218,1224,1232,1234,1240,1246,1413,1415,1421,1434,1440,1456,1462,1493,1495,1501,1517],[848,849,850,851,854],"p",{},"The ",[852,853,192],"code",{}," object is validated against a Zod schema at startup. Passing invalid values throws immediately with a descriptive error. All fields are required unless marked optional.",[848,856,857,858,861,862,865],{},"Pass the configuration object to ",[852,859,860],{},"configuration(...)"," exactly once when your H3, Nitro, or Nuxt application starts. You can spread one of the shipped templates and override only the fields you need. See ",[863,864,14],"a",{"href":74}," for setup examples.",[867,868],"hr",{},[870,871,873],"h2",{"id":872},"server",[852,874,872],{},[848,876,877],{},"Connection and security settings for the upstream IAM service.",[879,880,882],"h3",{"id":881},"serverauth_location",[852,883,884],{},"server.auth_location",[886,887,888,897],"field-group",{},[889,890,894],"field",{"name":891,"type":892,":required":893},"serverOrDNS","string","true",[848,895,896],{},"Hostname, DNS name, or IP address of the IAM service. Do not include the protocol or port.",[889,898,901],{"name":899,"type":900,":required":893},"port","number",[848,902,903],{},"Port the IAM service listens on.",[879,905,907],{"id":906},"serverhmac",[852,908,909],{},"server.hmac",[848,911,912,913,916],{},"HMAC request signing. A discriminated union on ",[852,914,915],{},"enableHmac",".",[886,918,919,945,959],{},[889,920,922],{"name":915,"type":921,":required":893},"boolean",[848,923,924,925,927,928,931,932,935,936,939,940,942,943,916],{},"When ",[852,926,893],{},", every outbound request to the IAM service is signed with HMAC-SHA256. When ",[852,929,930],{},"false",", requests are sent without authentication headers. The ",[852,933,934],{},"clientId"," and ",[852,937,938],{},"sharedSecret"," fields are required when ",[852,941,915],{}," is ",[852,944,893],{},[889,946,947],{"name":934,"type":892},[848,948,949,950,953,954,942,956,958],{},"Stable identifier for this gateway instance, sent as ",[852,951,952],{},"X-Client-Id",". Required when ",[852,955,915],{},[852,957,893],{},". Must match the value registered on the IAM service.",[889,960,961],{"name":938,"type":892},[848,962,963,964,942,966,968],{},"HMAC-SHA256 key. Required when ",[852,965,915],{},[852,967,893],{},". Must be identical in both the module configuration and the IAM service configuration. Should be at least 32 bytes of random data.",[879,970,972],{"id":971},"serverssl",[852,973,974],{},"server.ssl",[848,976,977,978,916],{},"Mutual TLS configuration. A discriminated union on ",[852,979,980],{},"enableSSL",[886,982,983,993,1003,1015,1027],{},[889,984,985],{"name":980,"type":921,":required":893},[848,986,924,987,989,990,992],{},[852,988,893],{},", all outbound connections use the configured certificate bundle. When ",[852,991,930],{},", plain HTTP is used.",[889,994,996],{"name":995,"type":892},"mainDirPath",[848,997,998,999,942,1001,916],{},"Absolute path to the directory containing the certificate files. Required when ",[852,1000,980],{},[852,1002,893],{},[889,1004,1006],{"name":1005,"type":892},"rootCertsPath",[848,1007,1008,1009,953,1011,942,1013,916],{},"Filename of the CA certificate relative to ",[852,1010,995],{},[852,1012,980],{},[852,1014,893],{},[889,1016,1018],{"name":1017,"type":892},"clientCertsPath",[848,1019,1020,1021,953,1023,942,1025,916],{},"Filename of the client certificate relative to ",[852,1022,995],{},[852,1024,980],{},[852,1026,893],{},[889,1028,1030],{"name":1029,"type":892},"clientKeyPath",[848,1031,1032,1033,953,1035,942,1037,916],{},"Filename of the client private key relative to ",[852,1034,995],{},[852,1036,980],{},[852,1038,893],{},[879,1040,1042],{"id":1041},"servercryptocookiessecret",[852,1043,1044],{},"server.cryptoCookiesSecret",[886,1046,1047],{},[889,1048,1050],{"name":1049,"type":892,":required":893},"cryptoCookiesSecret",[848,1051,1052],{},"HMAC key used to sign cookies, including the CSRF cookie and OAuth state cookies. Must be stable across restarts. Changing this value invalidates all existing signed cookies. Should be at least 32 bytes of random data.",[867,1054],{},[870,1056,1058],{"id":1057},"htmlsanitizer",[852,1059,1060],{},"htmlSanitizer",[848,1062,1063,1064,935,1067,916],{},"Controls the multi-pass HTML sanitization pipeline used by ",[852,1065,1066],{},"sanitizeInputString",[852,1068,1069],{},"makeSafeString",[886,1071,1072,1081],{},[889,1073,1075],{"name":1074,"type":900},"IrritationCount",[848,1076,1077,1078,916],{},"Maximum number of URI-decode and entity-decode loop iterations per input string. Higher values catch deeply nested encoding chains but increase CPU cost. Inputs that do not stabilize within this many iterations are rejected and returned as empty strings. Default to ",[852,1079,1080],{},"50",[889,1082,1084],{"name":1083,"type":900},"maxAllowedInputLength",[848,1085,1086,1087,916],{},"Maximum input string length in characters before any processing. Inputs exceeding this limit are rejected immediately. Default to ",[852,1088,1089],{},"50000",[867,1091],{},[870,1093,1095],{"id":1094},"imageuploader",[852,1096,1097],{},"imageUploader",[848,1099,1100,1101,916],{},"Controls the image validation and conversion pipeline used by ",[852,1102,1103],{},"validateImage",[886,1105,1106,1116,1129,1141],{},[889,1107,1109],{"name":1108,"type":900},"allowedBytes",[848,1110,1111,1112,1115],{},"Maximum buffer size in bytes. Buffers larger than this value are rejected before any processing. Default to ",[852,1113,1114],{},"5000000"," (5 MB).",[889,1117,1120],{"name":1118,"type":1119},"allowedMimes","string[]",[848,1121,1122,1123,1125,1126,916],{},"MIME types accepted by ",[852,1124,1103],{},". Validated against the actual detected type from the file magic bytes. Default to ",[852,1127,1128],{},"[\"image\u002Fpng\", \"image\u002Fjpeg\", \"image\u002Fwebp\"]",[889,1130,1132],{"name":1131,"type":1119},"allowedExtensions",[848,1133,1134,1135,1137,1138,916],{},"File extensions accepted by ",[852,1136,1103],{},". Validated against the extension detected from magic bytes. Default to ",[852,1139,1140],{},"[\"png\", \"webp\", \"jpeg\", \"jpg\"]",[889,1142,1145],{"name":1143,"type":1144},"key","(input: any) => string",[848,1146,1147,1148,1151],{},"Optional function that returns a storage path prefix. The result is combined with a sanitized filename and ",[852,1149,1150],{},".webp"," extension to form the final storage key. When omitted, a UUID is used as the prefix.",[867,1153],{},[870,1155,1157],{"id":1156},"ustorage",[852,1158,1159],{},"uStorage",[848,1161,1162,1163,1166],{},"Unstorage configuration for session caching. The storage instance is used by ",[852,1164,1165],{},"getCachedUserData"," to cache IAM responses.",[886,1168,1169,1193,1206],{},[889,1170,1173],{"name":1171,"type":1172,":required":893},"storage","Storage",[848,1174,1175,1176,1182,1183,1185,1186,935,1189,1192],{},"A valid ",[863,1177,1181],{"href":1178,"rel":1179},"https:\u002F\u002Funstorage.unjs.io\u002F",[1180],"nofollow","unstorage"," ",[852,1184,1172],{}," instance. The module validates that ",[852,1187,1188],{},"getItem",[852,1190,1191],{},"setItem"," are present. Any unstorage driver works: memory, Redis, filesystem, Cloudflare KV, and so on.",[889,1194,1196],{"name":1195,"type":900},"cacheOptions.successTtl",[848,1197,1198,1199,1201,1202,1205],{},"TTL in seconds for successful auth responses cached by ",[852,1200,1165],{},". Default to ",[852,1203,1204],{},"2592000"," (30 days). Increasing this reduces load on the IAM service but delays detection of revoked sessions.",[889,1207,1209],{"name":1208,"type":900},"cacheOptions.rateLimitTtl",[848,1210,1211,1212,1215],{},"TTL in seconds for rate-limit error responses. Prevents hammering the IAM service when a visitor is rate-limited. Default to ",[852,1213,1214],{},"10"," seconds.",[867,1217],{},[870,1219,1221],{"id":1220},"onsuccessredirect",[852,1222,1223],{},"onSuccessRedirect",[886,1225,1226],{},[889,1227,1229],{"name":1223,"type":1228,":required":893},"string (URL)",[848,1230,1231],{},"Full URL or path to redirect the user to after a successful login or OAuth callback. Must be a valid URL string.",[867,1233],{},[870,1235,1237],{"id":1236},"oauthproviders",[852,1238,1239],{},"OAuthProviders",[848,1241,1242,1243,1245],{},"An optional array of OAuth and OIDC provider configurations. See ",[863,1244,105],{"href":106}," for the full field reference for each provider kind.",[1247,1248,1253],"pre",{"className":1249,"code":1250,"language":1251,"meta":1252,"style":1252},"language-ts shiki shiki-themes light-plus light-plus dracula","OAuthProviders: [\n  {\n    kind: 'oidc',\n    name: 'google',\n    issuer: 'https:\u002F\u002Faccounts.google.com',\n    \u002F\u002F ...\n  },\n  {\n    kind: 'oauth',\n    name: 'github',\n    authorizationEndpoint: 'https:\u002F\u002Fgithub.com\u002Flogin\u002Foauth\u002Fauthorize',\n    \u002F\u002F ...\n  }\n]\n","ts","",[852,1254,1255,1264,1270,1295,1312,1329,1336,1342,1347,1363,1379,1396,1401,1407],{"__ignoreMap":1252},[1256,1257,1260],"span",{"class":1258,"line":1259},"line",1,[1256,1261,1263],{"class":1262},"sDd4n","OAuthProviders: [\n",[1256,1265,1267],{"class":1258,"line":1266},2,[1256,1268,1269],{"class":1262},"  {\n",[1256,1271,1273,1277,1281,1285,1289,1292],{"class":1258,"line":1272},3,[1256,1274,1276],{"class":1275},"sjsA6","    kind",[1256,1278,1280],{"class":1279},"s34zl",":",[1256,1282,1284],{"class":1283},"sFkSl"," '",[1256,1286,1288],{"class":1287},"sFB1V","oidc",[1256,1290,1291],{"class":1283},"'",[1256,1293,1294],{"class":1262},",\n",[1256,1296,1298,1301,1303,1305,1308,1310],{"class":1258,"line":1297},4,[1256,1299,1300],{"class":1275},"    name",[1256,1302,1280],{"class":1279},[1256,1304,1284],{"class":1283},[1256,1306,1307],{"class":1287},"google",[1256,1309,1291],{"class":1283},[1256,1311,1294],{"class":1262},[1256,1313,1315,1318,1320,1322,1325,1327],{"class":1258,"line":1314},5,[1256,1316,1317],{"class":1275},"    issuer",[1256,1319,1280],{"class":1279},[1256,1321,1284],{"class":1283},[1256,1323,1324],{"class":1287},"https:\u002F\u002Faccounts.google.com",[1256,1326,1291],{"class":1283},[1256,1328,1294],{"class":1262},[1256,1330,1332],{"class":1258,"line":1331},6,[1256,1333,1335],{"class":1334},"sghk6","    \u002F\u002F ...\n",[1256,1337,1339],{"class":1258,"line":1338},7,[1256,1340,1341],{"class":1262},"  },\n",[1256,1343,1345],{"class":1258,"line":1344},8,[1256,1346,1269],{"class":1262},[1256,1348,1350,1352,1354,1356,1359,1361],{"class":1258,"line":1349},9,[1256,1351,1276],{"class":1275},[1256,1353,1280],{"class":1279},[1256,1355,1284],{"class":1283},[1256,1357,1358],{"class":1287},"oauth",[1256,1360,1291],{"class":1283},[1256,1362,1294],{"class":1262},[1256,1364,1366,1368,1370,1372,1375,1377],{"class":1258,"line":1365},10,[1256,1367,1300],{"class":1275},[1256,1369,1280],{"class":1279},[1256,1371,1284],{"class":1283},[1256,1373,1374],{"class":1287},"github",[1256,1376,1291],{"class":1283},[1256,1378,1294],{"class":1262},[1256,1380,1382,1385,1387,1389,1392,1394],{"class":1258,"line":1381},11,[1256,1383,1384],{"class":1275},"    authorizationEndpoint",[1256,1386,1280],{"class":1279},[1256,1388,1284],{"class":1283},[1256,1390,1391],{"class":1287},"https:\u002F\u002Fgithub.com\u002Flogin\u002Foauth\u002Fauthorize",[1256,1393,1291],{"class":1283},[1256,1395,1294],{"class":1262},[1256,1397,1399],{"class":1258,"line":1398},12,[1256,1400,1335],{"class":1334},[1256,1402,1404],{"class":1258,"line":1403},13,[1256,1405,1406],{"class":1262},"  }\n",[1256,1408,1410],{"class":1258,"line":1409},14,[1256,1411,1412],{"class":1262},"]\n",[867,1414],{},[870,1416,1418],{"id":1417},"magiclinkredirectpath",[852,1419,1420],{},"magicLinkRedirectPath",[886,1422,1423],{},[889,1424,1425],{"name":1420,"type":892},[848,1426,1427,1428,1430,1431,916],{},"The path in your frontend application where users land after the bounce handler processes a magic link. The bounce handler redirects to this path with the link parameters as query params. A page at this path should call ",[852,1429,156],{}," to complete the flow. Default to ",[852,1432,1433],{},"'\u002Fauth\u002Fverify'",[870,1435,1437],{"id":1436},"magiclinkbouncepath",[852,1438,1439],{},"magicLinkBouncePath",[886,1441,1442],{},[889,1443,1444],{"name":1439,"type":892},[848,1445,1446,1447,1450,1451,1201,1453,916],{},"The path registered by ",[852,1448,1449],{},"bounceRouter"," for handling incoming magic links. The IAM service generates links that land here first. The bounce handler parses the parameters and redirects to ",[852,1452,1420],{},[852,1454,1455],{},"'\u002Fauth\u002Fbounce'",[870,1457,1459],{"id":1458},"enablefirewallbans",[852,1460,1461],{},"enableFireWallBans",[886,1463,1464],{},[889,1465,1466],{"name":1461,"type":921,":required":893},[848,1467,924,1468,1470,1471,935,1474,1477,1478,1481,1482,1485,1486,1489,1490,1492],{},[852,1469,893],{},", ",[852,1472,1473],{},"botDetectorMiddleware",[852,1475,1476],{},"restartPasswordHandler"," call ",[852,1479,1480],{},"banIp"," to add a UFW firewall rule for flagged IPs. Requires a Linux environment with ",[852,1483,1484],{},"ufw"," installed and passwordless ",[852,1487,1488],{},"sudo"," for the Node.js process. Set to ",[852,1491,930],{}," on serverless or edge environments.",[867,1494],{},[870,1496,1498],{"id":1497},"loglevel",[852,1499,1500],{},"logLevel",[886,1502,1503],{},[889,1504,1506],{"name":1500,"type":1505,":required":893},"\"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\"",[848,1507,1508,1509,1512,1513,1516],{},"Minimum severity level emitted by the pino logger. Use ",[852,1510,1511],{},"info"," in production. Use ",[852,1514,1515],{},"debug"," in development to see the full authentication pipeline output.",[1518,1519,1520],"style",{},"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 .s34zl, html code.shiki .s34zl{--shiki-light:#001080;--shiki-default:#001080;--shiki-dark:#FF79C6}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 .sghk6, html code.shiki .sghk6{--shiki-light:#008000;--shiki-default:#008000;--shiki-dark:#6272A4}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);}",{"title":1252,"searchDepth":1266,"depth":1266,"links":1522},[1523,1529,1530,1531,1532,1533,1534,1535,1536,1537],{"id":872,"depth":1266,"text":872,"children":1524},[1525,1526,1527,1528],{"id":881,"depth":1272,"text":884},{"id":906,"depth":1272,"text":909},{"id":971,"depth":1272,"text":974},{"id":1041,"depth":1272,"text":1044},{"id":1057,"depth":1266,"text":1060},{"id":1094,"depth":1266,"text":1097},{"id":1156,"depth":1266,"text":1159},{"id":1220,"depth":1266,"text":1223},{"id":1236,"depth":1266,"text":1239},{"id":1417,"depth":1266,"text":1420},{"id":1436,"depth":1266,"text":1439},{"id":1458,"depth":1266,"text":1461},{"id":1497,"depth":1266,"text":1500},"Complete reference for the Configuration object passed to the configuration() function, covering server connection, HMAC, SSL, storage, sanitization, image upload, OAuth providers, and all top-level options.","md","i-lucide-settings",{},null,"---\ntitle: Configuration\ndescription: Complete reference for the Configuration object passed to the configuration() function, covering server connection, HMAC, SSL, storage, sanitization, image upload, OAuth providers, and all top-level options.\nicon: i-lucide-settings\n---\n\nThe `Configuration` object is validated against a Zod schema at startup. Passing invalid values throws immediately with a descriptive error. All fields are required unless marked optional.\n\nPass the configuration object to `configuration(...)` exactly once when your H3, Nitro, or Nuxt application starts. You can spread one of the shipped templates and override only the fields you need. See [Getting Started](\u002Fdocs\u002Fauth-h3client\u002Fgetting-started) for setup examples.\n\n---\n\n## `server`\n\nConnection and security settings for the upstream IAM service.\n\n### `server.auth_location`\n\n::field-group\n\n::field{name=\"serverOrDNS\" type=\"string\" required}\nHostname, DNS name, or IP address of the IAM service. Do not include the protocol or port.\n::\n\n::field{name=\"port\" type=\"number\" required}\nPort the IAM service listens on.\n::\n\n::\n\n### `server.hmac`\n\nHMAC request signing. A discriminated union on `enableHmac`.\n\n::field-group\n\n::field{name=\"enableHmac\" type=\"boolean\" required}\nWhen `true`, every outbound request to the IAM service is signed with HMAC-SHA256. When `false`, requests are sent without authentication headers. The `clientId` and `sharedSecret` fields are required when `enableHmac` is `true`.\n::\n\n::field{name=\"clientId\" type=\"string\"}\nStable identifier for this gateway instance, sent as `X-Client-Id`. Required when `enableHmac` is `true`. Must match the value registered on the IAM service.\n::\n\n::field{name=\"sharedSecret\" type=\"string\"}\nHMAC-SHA256 key. Required when `enableHmac` is `true`. Must be identical in both the module configuration and the IAM service configuration. Should be at least 32 bytes of random data.\n::\n\n::\n\n### `server.ssl`\n\nMutual TLS configuration. A discriminated union on `enableSSL`.\n\n::field-group\n\n::field{name=\"enableSSL\" type=\"boolean\" required}\nWhen `true`, all outbound connections use the configured certificate bundle. When `false`, plain HTTP is used.\n::\n\n::field{name=\"mainDirPath\" type=\"string\"}\nAbsolute path to the directory containing the certificate files. Required when `enableSSL` is `true`.\n::\n\n::field{name=\"rootCertsPath\" type=\"string\"}\nFilename of the CA certificate relative to `mainDirPath`. Required when `enableSSL` is `true`.\n::\n\n::field{name=\"clientCertsPath\" type=\"string\"}\nFilename of the client certificate relative to `mainDirPath`. Required when `enableSSL` is `true`.\n::\n\n::field{name=\"clientKeyPath\" type=\"string\"}\nFilename of the client private key relative to `mainDirPath`. Required when `enableSSL` is `true`.\n::\n\n::\n\n### `server.cryptoCookiesSecret`\n\n::field-group\n\n::field{name=\"cryptoCookiesSecret\" type=\"string\" required}\nHMAC key used to sign cookies, including the CSRF cookie and OAuth state cookies. Must be stable across restarts. Changing this value invalidates all existing signed cookies. Should be at least 32 bytes of random data.\n::\n\n::\n\n---\n\n## `htmlSanitizer`\n\nControls the multi-pass HTML sanitization pipeline used by `sanitizeInputString` and `makeSafeString`.\n\n::field-group\n\n::field{name=\"IrritationCount\" type=\"number\"}\nMaximum number of URI-decode and entity-decode loop iterations per input string. Higher values catch deeply nested encoding chains but increase CPU cost. Inputs that do not stabilize within this many iterations are rejected and returned as empty strings. Default to `50`.\n::\n\n::field{name=\"maxAllowedInputLength\" type=\"number\"}\nMaximum input string length in characters before any processing. Inputs exceeding this limit are rejected immediately. Default to `50000`.\n::\n\n::\n\n---\n\n## `imageUploader`\n\nControls the image validation and conversion pipeline used by `validateImage`.\n\n::field-group\n\n::field{name=\"allowedBytes\" type=\"number\"}\nMaximum buffer size in bytes. Buffers larger than this value are rejected before any processing. Default to `5000000` (5 MB).\n::\n\n::field{name=\"allowedMimes\" type=\"string[]\"}\nMIME types accepted by `validateImage`. Validated against the actual detected type from the file magic bytes. Default to `[\"image\u002Fpng\", \"image\u002Fjpeg\", \"image\u002Fwebp\"]`.\n::\n\n::field{name=\"allowedExtensions\" type=\"string[]\"}\nFile extensions accepted by `validateImage`. Validated against the extension detected from magic bytes. Default to `[\"png\", \"webp\", \"jpeg\", \"jpg\"]`.\n::\n\n::field{name=\"key\" type=\"(input: any) => string\"}\nOptional function that returns a storage path prefix. The result is combined with a sanitized filename and `.webp` extension to form the final storage key. When omitted, a UUID is used as the prefix.\n::\n\n::\n\n---\n\n## `uStorage`\n\nUnstorage configuration for session caching. The storage instance is used by `getCachedUserData` to cache IAM responses.\n\n::field-group\n\n::field{name=\"storage\" type=\"Storage\" required}\nA valid [unstorage](https:\u002F\u002Funstorage.unjs.io\u002F) `Storage` instance. The module validates that `getItem` and `setItem` are present. Any unstorage driver works: memory, Redis, filesystem, Cloudflare KV, and so on.\n::\n\n::field{name=\"cacheOptions.successTtl\" type=\"number\"}\nTTL in seconds for successful auth responses cached by `getCachedUserData`. Default to `2592000` (30 days). Increasing this reduces load on the IAM service but delays detection of revoked sessions.\n::\n\n::field{name=\"cacheOptions.rateLimitTtl\" type=\"number\"}\nTTL in seconds for rate-limit error responses. Prevents hammering the IAM service when a visitor is rate-limited. Default to `10` seconds.\n::\n\n::\n\n---\n\n## `onSuccessRedirect`\n\n::field-group\n\n::field{name=\"onSuccessRedirect\" type=\"string (URL)\" required}\nFull URL or path to redirect the user to after a successful login or OAuth callback. Must be a valid URL string.\n::\n\n::\n\n---\n\n## `OAuthProviders`\n\nAn optional array of OAuth and OIDC provider configurations. See [OAuth and OIDC](\u002Fdocs\u002Fauth-h3client\u002Fessentials\u002Foauth) for the full field reference for each provider kind.\n\n```ts\nOAuthProviders: [\n  {\n    kind: 'oidc',\n    name: 'google',\n    issuer: 'https:\u002F\u002Faccounts.google.com',\n    \u002F\u002F ...\n  },\n  {\n    kind: 'oauth',\n    name: 'github',\n    authorizationEndpoint: 'https:\u002F\u002Fgithub.com\u002Flogin\u002Foauth\u002Fauthorize',\n    \u002F\u002F ...\n  }\n]\n```\n\n---\n\n## `magicLinkRedirectPath`\n\n::field-group\n\n::field{name=\"magicLinkRedirectPath\" type=\"string\"}\nThe path in your frontend application where users land after the bounce handler processes a magic link. The bounce handler redirects to this path with the link parameters as query params. A page at this path should call `useMagicLink` to complete the flow. Default to `'\u002Fauth\u002Fverify'`.\n::\n\n::\n\n## `magicLinkBouncePath`\n\n::field-group\n\n::field{name=\"magicLinkBouncePath\" type=\"string\"}\nThe path registered by `bounceRouter` for handling incoming magic links. The IAM service generates links that land here first. The bounce handler parses the parameters and redirects to `magicLinkRedirectPath`. Default to `'\u002Fauth\u002Fbounce'`.\n::\n\n::\n\n## `enableFireWallBans`\n\n::field-group\n\n::field{name=\"enableFireWallBans\" type=\"boolean\" required}\nWhen `true`, `botDetectorMiddleware` and `restartPasswordHandler` call `banIp` to add a UFW firewall rule for flagged IPs. Requires a Linux environment with `ufw` installed and passwordless `sudo` for the Node.js process. Set to `false` on serverless or edge environments.\n::\n\n::\n\n---\n\n## `logLevel`\n\n::field-group\n\n::field{name=\"logLevel\" type='\"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\"' required}\nMinimum severity level emitted by the pino logger. Use `info` in production. Use `debug` in development to see the full authentication pipeline output.\n::\n\n::\n",{"title":192,"description":1538},"nk42NaQb7mA86TMIel7D2vFS4drgi3kOpO1QCtJnlZ0",[1547,1548],{"title":188,"path":189,"stem":190,"children":-1},{"title":196,"path":197,"stem":198,"children":-1},{"id":843,"title":192,"body":1550,"description":1538,"extension":1539,"icon":1540,"meta":2032,"module":1542,"navigation":8,"path":193,"rawbody":1543,"seo":2033,"stem":194,"__hash__":1545},{"type":845,"value":1551,"toc":2015},[1552,1556,1562,1564,1568,1570,1574,1584,1588,1592,1628,1632,1636,1684,1688,1694,1696,1700,1706,1720,1722,1726,1730,1760,1762,1766,1770,1799,1801,1805,1811,1813,1817,1821,1941,1943,1947,1957,1961,1973,1977,1997,1999,2003,2013],[848,1553,850,1554,854],{},[852,1555,192],{},[848,1557,857,1558,861,1560,865],{},[852,1559,860],{},[863,1561,14],{"href":74},[867,1563],{},[870,1565,1566],{"id":872},[852,1567,872],{},[848,1569,877],{},[879,1571,1572],{"id":881},[852,1573,884],{},[886,1575,1576,1580],{},[889,1577,1578],{"name":891,"type":892,":required":893},[848,1579,896],{},[889,1581,1582],{"name":899,"type":900,":required":893},[848,1583,903],{},[879,1585,1586],{"id":906},[852,1587,909],{},[848,1589,912,1590,916],{},[852,1591,915],{},[886,1593,1594,1610,1620],{},[889,1595,1596],{"name":915,"type":921,":required":893},[848,1597,924,1598,927,1600,931,1602,935,1604,939,1606,942,1608,916],{},[852,1599,893],{},[852,1601,930],{},[852,1603,934],{},[852,1605,938],{},[852,1607,915],{},[852,1609,893],{},[889,1611,1612],{"name":934,"type":892},[848,1613,949,1614,953,1616,942,1618,958],{},[852,1615,952],{},[852,1617,915],{},[852,1619,893],{},[889,1621,1622],{"name":938,"type":892},[848,1623,963,1624,942,1626,968],{},[852,1625,915],{},[852,1627,893],{},[879,1629,1630],{"id":971},[852,1631,974],{},[848,1633,977,1634,916],{},[852,1635,980],{},[886,1637,1638,1646,1654,1664,1674],{},[889,1639,1640],{"name":980,"type":921,":required":893},[848,1641,924,1642,989,1644,992],{},[852,1643,893],{},[852,1645,930],{},[889,1647,1648],{"name":995,"type":892},[848,1649,998,1650,942,1652,916],{},[852,1651,980],{},[852,1653,893],{},[889,1655,1656],{"name":1005,"type":892},[848,1657,1008,1658,953,1660,942,1662,916],{},[852,1659,995],{},[852,1661,980],{},[852,1663,893],{},[889,1665,1666],{"name":1017,"type":892},[848,1667,1020,1668,953,1670,942,1672,916],{},[852,1669,995],{},[852,1671,980],{},[852,1673,893],{},[889,1675,1676],{"name":1029,"type":892},[848,1677,1032,1678,953,1680,942,1682,916],{},[852,1679,995],{},[852,1681,980],{},[852,1683,893],{},[879,1685,1686],{"id":1041},[852,1687,1044],{},[886,1689,1690],{},[889,1691,1692],{"name":1049,"type":892,":required":893},[848,1693,1052],{},[867,1695],{},[870,1697,1698],{"id":1057},[852,1699,1060],{},[848,1701,1063,1702,935,1704,916],{},[852,1703,1066],{},[852,1705,1069],{},[886,1707,1708,1714],{},[889,1709,1710],{"name":1074,"type":900},[848,1711,1077,1712,916],{},[852,1713,1080],{},[889,1715,1716],{"name":1083,"type":900},[848,1717,1086,1718,916],{},[852,1719,1089],{},[867,1721],{},[870,1723,1724],{"id":1094},[852,1725,1097],{},[848,1727,1100,1728,916],{},[852,1729,1103],{},[886,1731,1732,1738,1746,1754],{},[889,1733,1734],{"name":1108,"type":900},[848,1735,1111,1736,1115],{},[852,1737,1114],{},[889,1739,1740],{"name":1118,"type":1119},[848,1741,1122,1742,1125,1744,916],{},[852,1743,1103],{},[852,1745,1128],{},[889,1747,1748],{"name":1131,"type":1119},[848,1749,1134,1750,1137,1752,916],{},[852,1751,1103],{},[852,1753,1140],{},[889,1755,1756],{"name":1143,"type":1144},[848,1757,1147,1758,1151],{},[852,1759,1150],{},[867,1761],{},[870,1763,1764],{"id":1156},[852,1765,1159],{},[848,1767,1162,1768,1166],{},[852,1769,1165],{},[886,1771,1772,1785,1793],{},[889,1773,1774],{"name":1171,"type":1172,":required":893},[848,1775,1175,1776,1182,1779,1185,1781,935,1783,1192],{},[863,1777,1181],{"href":1178,"rel":1778},[1180],[852,1780,1172],{},[852,1782,1188],{},[852,1784,1191],{},[889,1786,1787],{"name":1195,"type":900},[848,1788,1198,1789,1201,1791,1205],{},[852,1790,1165],{},[852,1792,1204],{},[889,1794,1795],{"name":1208,"type":900},[848,1796,1211,1797,1215],{},[852,1798,1214],{},[867,1800],{},[870,1802,1803],{"id":1220},[852,1804,1223],{},[886,1806,1807],{},[889,1808,1809],{"name":1223,"type":1228,":required":893},[848,1810,1231],{},[867,1812],{},[870,1814,1815],{"id":1236},[852,1816,1239],{},[848,1818,1242,1819,1245],{},[863,1820,105],{"href":106},[1247,1822,1823],{"className":1249,"code":1250,"language":1251,"meta":1252,"style":1252},[852,1824,1825,1829,1833,1847,1861,1875,1879,1883,1887,1901,1915,1929,1933,1937],{"__ignoreMap":1252},[1256,1826,1827],{"class":1258,"line":1259},[1256,1828,1263],{"class":1262},[1256,1830,1831],{"class":1258,"line":1266},[1256,1832,1269],{"class":1262},[1256,1834,1835,1837,1839,1841,1843,1845],{"class":1258,"line":1272},[1256,1836,1276],{"class":1275},[1256,1838,1280],{"class":1279},[1256,1840,1284],{"class":1283},[1256,1842,1288],{"class":1287},[1256,1844,1291],{"class":1283},[1256,1846,1294],{"class":1262},[1256,1848,1849,1851,1853,1855,1857,1859],{"class":1258,"line":1297},[1256,1850,1300],{"class":1275},[1256,1852,1280],{"class":1279},[1256,1854,1284],{"class":1283},[1256,1856,1307],{"class":1287},[1256,1858,1291],{"class":1283},[1256,1860,1294],{"class":1262},[1256,1862,1863,1865,1867,1869,1871,1873],{"class":1258,"line":1314},[1256,1864,1317],{"class":1275},[1256,1866,1280],{"class":1279},[1256,1868,1284],{"class":1283},[1256,1870,1324],{"class":1287},[1256,1872,1291],{"class":1283},[1256,1874,1294],{"class":1262},[1256,1876,1877],{"class":1258,"line":1331},[1256,1878,1335],{"class":1334},[1256,1880,1881],{"class":1258,"line":1338},[1256,1882,1341],{"class":1262},[1256,1884,1885],{"class":1258,"line":1344},[1256,1886,1269],{"class":1262},[1256,1888,1889,1891,1893,1895,1897,1899],{"class":1258,"line":1349},[1256,1890,1276],{"class":1275},[1256,1892,1280],{"class":1279},[1256,1894,1284],{"class":1283},[1256,1896,1358],{"class":1287},[1256,1898,1291],{"class":1283},[1256,1900,1294],{"class":1262},[1256,1902,1903,1905,1907,1909,1911,1913],{"class":1258,"line":1365},[1256,1904,1300],{"class":1275},[1256,1906,1280],{"class":1279},[1256,1908,1284],{"class":1283},[1256,1910,1374],{"class":1287},[1256,1912,1291],{"class":1283},[1256,1914,1294],{"class":1262},[1256,1916,1917,1919,1921,1923,1925,1927],{"class":1258,"line":1381},[1256,1918,1384],{"class":1275},[1256,1920,1280],{"class":1279},[1256,1922,1284],{"class":1283},[1256,1924,1391],{"class":1287},[1256,1926,1291],{"class":1283},[1256,1928,1294],{"class":1262},[1256,1930,1931],{"class":1258,"line":1398},[1256,1932,1335],{"class":1334},[1256,1934,1935],{"class":1258,"line":1403},[1256,1936,1406],{"class":1262},[1256,1938,1939],{"class":1258,"line":1409},[1256,1940,1412],{"class":1262},[867,1942],{},[870,1944,1945],{"id":1417},[852,1946,1420],{},[886,1948,1949],{},[889,1950,1951],{"name":1420,"type":892},[848,1952,1427,1953,1430,1955,916],{},[852,1954,156],{},[852,1956,1433],{},[870,1958,1959],{"id":1436},[852,1960,1439],{},[886,1962,1963],{},[889,1964,1965],{"name":1439,"type":892},[848,1966,1446,1967,1450,1969,1201,1971,916],{},[852,1968,1449],{},[852,1970,1420],{},[852,1972,1455],{},[870,1974,1975],{"id":1458},[852,1976,1461],{},[886,1978,1979],{},[889,1980,1981],{"name":1461,"type":921,":required":893},[848,1982,924,1983,1470,1985,935,1987,1477,1989,1481,1991,1485,1993,1489,1995,1492],{},[852,1984,893],{},[852,1986,1473],{},[852,1988,1476],{},[852,1990,1480],{},[852,1992,1484],{},[852,1994,1488],{},[852,1996,930],{},[867,1998],{},[870,2000,2001],{"id":1497},[852,2002,1500],{},[886,2004,2005],{},[889,2006,2007],{"name":1500,"type":1505,":required":893},[848,2008,1508,2009,1512,2011,1516],{},[852,2010,1511],{},[852,2012,1515],{},[1518,2014,1520],{},{"title":1252,"searchDepth":1266,"depth":1266,"links":2016},[2017,2023,2024,2025,2026,2027,2028,2029,2030,2031],{"id":872,"depth":1266,"text":872,"children":2018},[2019,2020,2021,2022],{"id":881,"depth":1272,"text":884},{"id":906,"depth":1272,"text":909},{"id":971,"depth":1272,"text":974},{"id":1041,"depth":1272,"text":1044},{"id":1057,"depth":1266,"text":1060},{"id":1094,"depth":1266,"text":1097},{"id":1156,"depth":1266,"text":1159},{"id":1220,"depth":1266,"text":1223},{"id":1236,"depth":1266,"text":1239},{"id":1417,"depth":1266,"text":1420},{"id":1436,"depth":1266,"text":1439},{"id":1458,"depth":1266,"text":1461},{"id":1497,"depth":1266,"text":1500},{},{"title":192,"description":1538},1780436290084]