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