[{"data":1,"prerenderedAt":7501},["ShallowReactive",2],{"navLinks":3,"sidebar_docs_navigation_\u002Fdocs\u002Fshield-base":64,"navigation":138,"navLinks_footer":802,"\u002Fdocs\u002Fshield-base\u002Fcli_page":815,"\u002Fdocs\u002Fshield-base\u002Fcli_surround":4365,"\u002Fdocs\u002Fshield-base\u002Fcli":4368},{"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":77,"body":817,"description":4357,"extension":4358,"icon":4359,"meta":4360,"module":4361,"navigation":8,"path":78,"rawbody":4362,"seo":4363,"stem":79,"__hash__":4364},"docs\u002Fdocs\u002Fshield-base\u002F01.cli.md",{"type":818,"value":819,"toc":4344},"minimark",[820,829,836,1052,1055,1060,1065,1225,1229,1326,1328,1332,1734,1736,1743,1746,1887,2606,2623,2643,2645,2651,2661,2803,2879,3733,3741,3743,3749,3752,3819,4326,4340],[821,822,823,824,828],"p",{},"The ",[825,826,827],"code",{},"shield-base"," command is the primary entry point. Running it without arguments starts the interactive wizard. You can also drive it entirely from flags for CI\u002FCD pipelines and automated scripts.",[821,830,831,832,835],{},"Use ",[825,833,834],{},"--help"," on any command or subcommand to print available options:",[837,838,839,910,962,1007],"code-group",{},[840,841,847],"pre",{"className":842,"code":843,"filename":844,"language":845,"meta":846,"style":846},"language-bash shiki shiki-themes light-plus light-plus dracula","pnpm dlx @riavzon\u002Fshield-base --help\npnpm dlx @riavzon\u002Fshield-base compile --help\npnpm dlx @riavzon\u002Fshield-base lm-read --help\npnpm dlx @riavzon\u002Fshield-base types --help\n","pnpm","bash","",[825,848,849,868,882,896],{"__ignoreMap":846},[850,851,854,857,861,864],"span",{"class":852,"line":853},"line",1,[850,855,844],{"class":856},"sHOzp",[850,858,860],{"class":859},"sFB1V"," dlx",[850,862,863],{"class":859}," @riavzon\u002Fshield-base",[850,865,867],{"class":866},"sjR7W"," --help\n",[850,869,871,873,875,877,880],{"class":852,"line":870},2,[850,872,844],{"class":856},[850,874,860],{"class":859},[850,876,863],{"class":859},[850,878,879],{"class":859}," compile",[850,881,867],{"class":866},[850,883,885,887,889,891,894],{"class":852,"line":884},3,[850,886,844],{"class":856},[850,888,860],{"class":859},[850,890,863],{"class":859},[850,892,893],{"class":859}," lm-read",[850,895,867],{"class":866},[850,897,899,901,903,905,908],{"class":852,"line":898},4,[850,900,844],{"class":856},[850,902,860],{"class":859},[850,904,863],{"class":859},[850,906,907],{"class":859}," types",[850,909,867],{"class":866},[840,911,914],{"className":842,"code":912,"filename":913,"language":845,"meta":846,"style":846},"yarn dlx @riavzon\u002Fshield-base --help\nyarn dlx @riavzon\u002Fshield-base compile --help\nyarn dlx @riavzon\u002Fshield-base lm-read --help\nyarn dlx @riavzon\u002Fshield-base types --help\n","yarn",[825,915,916,926,938,950],{"__ignoreMap":846},[850,917,918,920,922,924],{"class":852,"line":853},[850,919,913],{"class":856},[850,921,860],{"class":859},[850,923,863],{"class":859},[850,925,867],{"class":866},[850,927,928,930,932,934,936],{"class":852,"line":870},[850,929,913],{"class":856},[850,931,860],{"class":859},[850,933,863],{"class":859},[850,935,879],{"class":859},[850,937,867],{"class":866},[850,939,940,942,944,946,948],{"class":852,"line":884},[850,941,913],{"class":856},[850,943,860],{"class":859},[850,945,863],{"class":859},[850,947,893],{"class":859},[850,949,867],{"class":866},[850,951,952,954,956,958,960],{"class":852,"line":898},[850,953,913],{"class":856},[850,955,860],{"class":859},[850,957,863],{"class":859},[850,959,907],{"class":859},[850,961,867],{"class":866},[840,963,966],{"className":842,"code":964,"filename":965,"language":845,"meta":846,"style":846},"npx @riavzon\u002Fshield-base --help\nnpx @riavzon\u002Fshield-base compile --help\nnpx @riavzon\u002Fshield-base lm-read --help\nnpx @riavzon\u002Fshield-base types --help\n","npm",[825,967,968,977,987,997],{"__ignoreMap":846},[850,969,970,973,975],{"class":852,"line":853},[850,971,972],{"class":856},"npx",[850,974,863],{"class":859},[850,976,867],{"class":866},[850,978,979,981,983,985],{"class":852,"line":870},[850,980,972],{"class":856},[850,982,863],{"class":859},[850,984,879],{"class":859},[850,986,867],{"class":866},[850,988,989,991,993,995],{"class":852,"line":884},[850,990,972],{"class":856},[850,992,863],{"class":859},[850,994,893],{"class":859},[850,996,867],{"class":866},[850,998,999,1001,1003,1005],{"class":852,"line":898},[850,1000,972],{"class":856},[850,1002,863],{"class":859},[850,1004,907],{"class":859},[850,1006,867],{"class":866},[840,1008,1011],{"className":842,"code":1009,"filename":1010,"language":845,"meta":846,"style":846},"bunx @riavzon\u002Fshield-base --help\nbunx @riavzon\u002Fshield-base compile --help\nbunx @riavzon\u002Fshield-base lm-read --help\nbunx @riavzon\u002Fshield-base types --help\n","bun",[825,1012,1013,1022,1032,1042],{"__ignoreMap":846},[850,1014,1015,1018,1020],{"class":852,"line":853},[850,1016,1017],{"class":856},"bunx",[850,1019,863],{"class":859},[850,1021,867],{"class":866},[850,1023,1024,1026,1028,1030],{"class":852,"line":870},[850,1025,1017],{"class":856},[850,1027,863],{"class":859},[850,1029,879],{"class":859},[850,1031,867],{"class":866},[850,1033,1034,1036,1038,1040],{"class":852,"line":884},[850,1035,1017],{"class":856},[850,1037,863],{"class":859},[850,1039,893],{"class":859},[850,1041,867],{"class":866},[850,1043,1044,1046,1048,1050],{"class":852,"line":898},[850,1045,1017],{"class":856},[850,1047,863],{"class":859},[850,1049,907],{"class":859},[850,1051,867],{"class":866},[1053,1054],"hr",{},[1056,1057,1059],"h2",{"id":1058},"global-flags","Global Flags",[1061,1062,1064],"h3",{"id":1063},"source-selection","Source Selection",[1066,1067,1068,1081],"table",{},[1069,1070,1071],"thead",{},[1072,1073,1074,1078],"tr",{},[1075,1076,1077],"th",{},"Flag",[1075,1079,1080],{},"Description",[1082,1083,1084,1095,1105,1115,1125,1135,1145,1155,1165,1175,1185,1195,1205,1215],"tbody",{},[1072,1085,1086,1092],{},[1087,1088,1089],"td",{},[825,1090,1091],{},"--all",[1087,1093,1094],{},"Skip interactive selection and fetch all available sources.",[1072,1096,1097,1102],{},[1087,1098,1099],{},[825,1100,1101],{},"--bgp",[1087,1103,1104],{},"Compile BGP\u002FASN routing data.",[1072,1106,1107,1112],{},[1087,1108,1109],{},[825,1110,1111],{},"--city",[1087,1113,1114],{},"Compile IP-to-city geolocation data.",[1072,1116,1117,1122],{},[1087,1118,1119],{},[825,1120,1121],{},"--geo",[1087,1123,1124],{},"Compile IP-to-country geolocation data.",[1072,1126,1127,1132],{},[1087,1128,1129],{},[825,1130,1131],{},"--proxy",[1087,1133,1134],{},"Compile proxy and anonymizer IP lists.",[1072,1136,1137,1142],{},[1087,1138,1139],{},[825,1140,1141],{},"--tor",[1087,1143,1144],{},"Compile Tor relay and exit node data.",[1072,1146,1147,1152],{},[1087,1148,1149],{},[825,1150,1151],{},"--seo",[1087,1153,1154],{},"Compile verified search engine crawler IP ranges.",[1072,1156,1157,1162],{},[1087,1158,1159],{},[825,1160,1161],{},"--useragent",[1087,1163,1164],{},"Compile suspicious HTTP user-agent patterns into LMDB.",[1072,1166,1167,1172],{},[1087,1168,1169],{},[825,1170,1171],{},"--email",[1087,1173,1174],{},"Compile the disposable email domain blocklist into LMDB.",[1072,1176,1177,1182],{},[1087,1178,1179],{},[825,1180,1181],{},"--l1",[1087,1183,1184],{},"Compile FireHOL Level 1 threat intelligence.",[1072,1186,1187,1192],{},[1087,1188,1189],{},[825,1190,1191],{},"--l2",[1087,1193,1194],{},"Compile FireHOL Level 2 threat intelligence.",[1072,1196,1197,1202],{},[1087,1198,1199],{},[825,1200,1201],{},"--l3",[1087,1203,1204],{},"Compile FireHOL Level 3 threat intelligence.",[1072,1206,1207,1212],{},[1087,1208,1209],{},[825,1210,1211],{},"--l4",[1087,1213,1214],{},"Compile FireHOL Level 4 threat intelligence.",[1072,1216,1217,1222],{},[1087,1218,1219],{},[825,1220,1221],{},"--anonymous",[1087,1223,1224],{},"Compile the FireHOL anonymity network list (Tor exits, I2P, VPNs).",[1061,1226,1228],{"id":1227},"control-flags","Control Flags",[1066,1230,1231,1239],{},[1069,1232,1233],{},[1072,1234,1235,1237],{},[1075,1236,1077],{},[1075,1238,1080],{},[1082,1240,1241,1251,1261,1271,1290,1303,1313],{},[1072,1242,1243,1248],{},[1087,1244,1245],{},[825,1246,1247],{},"--parallel",[1087,1249,1250],{},"Run all compilation jobs concurrently.",[1072,1252,1253,1258],{},[1087,1254,1255],{},[825,1256,1257],{},"--refresh",[1087,1259,1260],{},"Force re-download of previously compiled sources using cached config.",[1072,1262,1263,1268],{},[1087,1264,1265],{},[825,1266,1267],{},"--refreshAll",[1087,1269,1270],{},"Force re-download and recompilation of all sources using cached config.",[1072,1272,1273,1278],{},[1087,1274,1275],{},[825,1276,1277],{},"--acceptFireholRisk",[1087,1279,1280,1281,1283,1284,1286,1287,1289],{},"Acknowledge the FireHOL license. Required for ",[825,1282,1181],{}," through ",[825,1285,1211],{}," and ",[825,1288,1221],{},".",[1072,1291,1292,1297],{},[1087,1293,1294],{},[825,1295,1296],{},"--contact \u003Cstr>",[1087,1298,1299,1300,1289],{},"BGP.tools contact string. Required format: ",[825,1301,1302],{},"\u003Cname> [url] - \u003Cemail>",[1072,1304,1305,1310],{},[1087,1306,1307],{},[825,1308,1309],{},"--path \u003Cdir>",[1087,1311,1312],{},"Output directory for compiled databases. Defaults to the current working directory.",[1072,1314,1315,1323],{},[1087,1316,1317,1319,1320],{},[825,1318,834],{},", ",[825,1321,1322],{},"-h",[1087,1324,1325],{},"Show help for the main command or a subcommand.",[1053,1327],{},[1056,1329,1331],{"id":1330},"examples","Examples",[837,1333,1334,1493,1580,1657],{},[840,1335,1337],{"className":842,"code":1336,"filename":844,"language":845,"meta":846,"style":846},"# Compile everything in parallel, non-interactively\npnpm dlx @riavzon\u002Fshield-base --all --parallel --contact \"Name https:\u002F\u002Fexample.com - you@example.com\" --acceptFireholRisk\n\n# Compile only Tor and proxy data\npnpm dlx @riavzon\u002Fshield-base --tor --proxy\n\n# Compile BGP and FireHOL Level 1 to a specific directory\npnpm dlx @riavzon\u002Fshield-base --bgp --l1 --acceptFireholRisk --contact \"Name - you@example.com\" --path .\u002Fdata\u002Fmmdb\n\n# Refresh all previously compiled sources\npnpm dlx @riavzon\u002Fshield-base --refreshAll\n\n# Compile LMDB sources only (no mmdbctl needed)\npnpm dlx @riavzon\u002Fshield-base --useragent --email\n",[825,1338,1339,1345,1375,1380,1385,1400,1405,1411,1444,1449,1455,1467,1472,1478],{"__ignoreMap":846},[850,1340,1341],{"class":852,"line":853},[850,1342,1344],{"class":1343},"sghk6","# Compile everything in parallel, non-interactively\n",[850,1346,1347,1349,1351,1353,1356,1359,1362,1366,1369,1372],{"class":852,"line":870},[850,1348,844],{"class":856},[850,1350,860],{"class":859},[850,1352,863],{"class":859},[850,1354,1355],{"class":866}," --all",[850,1357,1358],{"class":866}," --parallel",[850,1360,1361],{"class":866}," --contact",[850,1363,1365],{"class":1364},"sFkSl"," \"",[850,1367,1368],{"class":859},"Name https:\u002F\u002Fexample.com - you@example.com",[850,1370,1371],{"class":1364},"\"",[850,1373,1374],{"class":866}," --acceptFireholRisk\n",[850,1376,1377],{"class":852,"line":884},[850,1378,1379],{"emptyLinePlaceholder":8},"\n",[850,1381,1382],{"class":852,"line":898},[850,1383,1384],{"class":1343},"# Compile only Tor and proxy data\n",[850,1386,1388,1390,1392,1394,1397],{"class":852,"line":1387},5,[850,1389,844],{"class":856},[850,1391,860],{"class":859},[850,1393,863],{"class":859},[850,1395,1396],{"class":866}," --tor",[850,1398,1399],{"class":866}," --proxy\n",[850,1401,1403],{"class":852,"line":1402},6,[850,1404,1379],{"emptyLinePlaceholder":8},[850,1406,1408],{"class":852,"line":1407},7,[850,1409,1410],{"class":1343},"# Compile BGP and FireHOL Level 1 to a specific directory\n",[850,1412,1414,1416,1418,1420,1423,1426,1429,1431,1433,1436,1438,1441],{"class":852,"line":1413},8,[850,1415,844],{"class":856},[850,1417,860],{"class":859},[850,1419,863],{"class":859},[850,1421,1422],{"class":866}," --bgp",[850,1424,1425],{"class":866}," --l1",[850,1427,1428],{"class":866}," --acceptFireholRisk",[850,1430,1361],{"class":866},[850,1432,1365],{"class":1364},[850,1434,1435],{"class":859},"Name - you@example.com",[850,1437,1371],{"class":1364},[850,1439,1440],{"class":866}," --path",[850,1442,1443],{"class":859}," .\u002Fdata\u002Fmmdb\n",[850,1445,1447],{"class":852,"line":1446},9,[850,1448,1379],{"emptyLinePlaceholder":8},[850,1450,1452],{"class":852,"line":1451},10,[850,1453,1454],{"class":1343},"# Refresh all previously compiled sources\n",[850,1456,1458,1460,1462,1464],{"class":852,"line":1457},11,[850,1459,844],{"class":856},[850,1461,860],{"class":859},[850,1463,863],{"class":859},[850,1465,1466],{"class":866}," --refreshAll\n",[850,1468,1470],{"class":852,"line":1469},12,[850,1471,1379],{"emptyLinePlaceholder":8},[850,1473,1475],{"class":852,"line":1474},13,[850,1476,1477],{"class":1343},"# Compile LMDB sources only (no mmdbctl needed)\n",[850,1479,1481,1483,1485,1487,1490],{"class":852,"line":1480},14,[850,1482,844],{"class":856},[850,1484,860],{"class":859},[850,1486,863],{"class":859},[850,1488,1489],{"class":866}," --useragent",[850,1491,1492],{"class":866}," --email\n",[840,1494,1496],{"className":842,"code":1495,"filename":913,"language":845,"meta":846,"style":846},"yarn dlx @riavzon\u002Fshield-base --all --parallel --contact \"Name https:\u002F\u002Fexample.com - you@example.com\" --acceptFireholRisk\nyarn dlx @riavzon\u002Fshield-base --tor --proxy\nyarn dlx @riavzon\u002Fshield-base --bgp --l1 --acceptFireholRisk --contact \"Name - you@example.com\" --path .\u002Fdata\u002Fmmdb\nyarn dlx @riavzon\u002Fshield-base --refreshAll\nyarn dlx @riavzon\u002Fshield-base --useragent --email\n",[825,1497,1498,1520,1532,1558,1568],{"__ignoreMap":846},[850,1499,1500,1502,1504,1506,1508,1510,1512,1514,1516,1518],{"class":852,"line":853},[850,1501,913],{"class":856},[850,1503,860],{"class":859},[850,1505,863],{"class":859},[850,1507,1355],{"class":866},[850,1509,1358],{"class":866},[850,1511,1361],{"class":866},[850,1513,1365],{"class":1364},[850,1515,1368],{"class":859},[850,1517,1371],{"class":1364},[850,1519,1374],{"class":866},[850,1521,1522,1524,1526,1528,1530],{"class":852,"line":870},[850,1523,913],{"class":856},[850,1525,860],{"class":859},[850,1527,863],{"class":859},[850,1529,1396],{"class":866},[850,1531,1399],{"class":866},[850,1533,1534,1536,1538,1540,1542,1544,1546,1548,1550,1552,1554,1556],{"class":852,"line":884},[850,1535,913],{"class":856},[850,1537,860],{"class":859},[850,1539,863],{"class":859},[850,1541,1422],{"class":866},[850,1543,1425],{"class":866},[850,1545,1428],{"class":866},[850,1547,1361],{"class":866},[850,1549,1365],{"class":1364},[850,1551,1435],{"class":859},[850,1553,1371],{"class":1364},[850,1555,1440],{"class":866},[850,1557,1443],{"class":859},[850,1559,1560,1562,1564,1566],{"class":852,"line":898},[850,1561,913],{"class":856},[850,1563,860],{"class":859},[850,1565,863],{"class":859},[850,1567,1466],{"class":866},[850,1569,1570,1572,1574,1576,1578],{"class":852,"line":1387},[850,1571,913],{"class":856},[850,1573,860],{"class":859},[850,1575,863],{"class":859},[850,1577,1489],{"class":866},[850,1579,1492],{"class":866},[840,1581,1583],{"className":842,"code":1582,"filename":965,"language":845,"meta":846,"style":846},"npx @riavzon\u002Fshield-base --all --parallel --contact \"Name https:\u002F\u002Fexample.com - you@example.com\" --acceptFireholRisk\nnpx @riavzon\u002Fshield-base --tor --proxy\nnpx @riavzon\u002Fshield-base --bgp --l1 --acceptFireholRisk --contact \"Name - you@example.com\" --path .\u002Fdata\u002Fmmdb\nnpx @riavzon\u002Fshield-base --refreshAll\nnpx @riavzon\u002Fshield-base --useragent --email\n",[825,1584,1585,1605,1615,1639,1647],{"__ignoreMap":846},[850,1586,1587,1589,1591,1593,1595,1597,1599,1601,1603],{"class":852,"line":853},[850,1588,972],{"class":856},[850,1590,863],{"class":859},[850,1592,1355],{"class":866},[850,1594,1358],{"class":866},[850,1596,1361],{"class":866},[850,1598,1365],{"class":1364},[850,1600,1368],{"class":859},[850,1602,1371],{"class":1364},[850,1604,1374],{"class":866},[850,1606,1607,1609,1611,1613],{"class":852,"line":870},[850,1608,972],{"class":856},[850,1610,863],{"class":859},[850,1612,1396],{"class":866},[850,1614,1399],{"class":866},[850,1616,1617,1619,1621,1623,1625,1627,1629,1631,1633,1635,1637],{"class":852,"line":884},[850,1618,972],{"class":856},[850,1620,863],{"class":859},[850,1622,1422],{"class":866},[850,1624,1425],{"class":866},[850,1626,1428],{"class":866},[850,1628,1361],{"class":866},[850,1630,1365],{"class":1364},[850,1632,1435],{"class":859},[850,1634,1371],{"class":1364},[850,1636,1440],{"class":866},[850,1638,1443],{"class":859},[850,1640,1641,1643,1645],{"class":852,"line":898},[850,1642,972],{"class":856},[850,1644,863],{"class":859},[850,1646,1466],{"class":866},[850,1648,1649,1651,1653,1655],{"class":852,"line":1387},[850,1650,972],{"class":856},[850,1652,863],{"class":859},[850,1654,1489],{"class":866},[850,1656,1492],{"class":866},[840,1658,1660],{"className":842,"code":1659,"filename":1010,"language":845,"meta":846,"style":846},"bunx @riavzon\u002Fshield-base --all --parallel --contact \"Name https:\u002F\u002Fexample.com - you@example.com\" --acceptFireholRisk\nbunx @riavzon\u002Fshield-base --tor --proxy\nbunx @riavzon\u002Fshield-base --bgp --l1 --acceptFireholRisk --contact \"Name - you@example.com\" --path .\u002Fdata\u002Fmmdb\nbunx @riavzon\u002Fshield-base --refreshAll\nbunx @riavzon\u002Fshield-base --useragent --email\n",[825,1661,1662,1682,1692,1716,1724],{"__ignoreMap":846},[850,1663,1664,1666,1668,1670,1672,1674,1676,1678,1680],{"class":852,"line":853},[850,1665,1017],{"class":856},[850,1667,863],{"class":859},[850,1669,1355],{"class":866},[850,1671,1358],{"class":866},[850,1673,1361],{"class":866},[850,1675,1365],{"class":1364},[850,1677,1368],{"class":859},[850,1679,1371],{"class":1364},[850,1681,1374],{"class":866},[850,1683,1684,1686,1688,1690],{"class":852,"line":870},[850,1685,1017],{"class":856},[850,1687,863],{"class":859},[850,1689,1396],{"class":866},[850,1691,1399],{"class":866},[850,1693,1694,1696,1698,1700,1702,1704,1706,1708,1710,1712,1714],{"class":852,"line":884},[850,1695,1017],{"class":856},[850,1697,863],{"class":859},[850,1699,1422],{"class":866},[850,1701,1425],{"class":866},[850,1703,1428],{"class":866},[850,1705,1361],{"class":866},[850,1707,1365],{"class":1364},[850,1709,1435],{"class":859},[850,1711,1371],{"class":1364},[850,1713,1440],{"class":866},[850,1715,1443],{"class":859},[850,1717,1718,1720,1722],{"class":852,"line":898},[850,1719,1017],{"class":856},[850,1721,863],{"class":859},[850,1723,1466],{"class":866},[850,1725,1726,1728,1730,1732],{"class":852,"line":1387},[850,1727,1017],{"class":856},[850,1729,863],{"class":859},[850,1731,1489],{"class":866},[850,1733,1492],{"class":866},[1053,1735],{},[1056,1737,1739,1742],{"id":1738},"compile-subcommand",[825,1740,1741],{},"compile"," Subcommand",[821,1744,1745],{},"Generates MMDB or LMDB databases and TypeScript types from your own JSON data files.",[1066,1747,1748,1760],{},[1069,1749,1750],{},[1072,1751,1752,1755,1758],{},[1075,1753,1754],{},"Argument \u002F Flag",[1075,1756,1757],{},"Type",[1075,1759,1080],{},[1082,1761,1762,1775,1815,1830,1845,1861,1874],{},[1072,1763,1764,1769,1772],{},[1087,1765,1766],{},[825,1767,1768],{},"\u003CINPUT>",[1087,1770,1771],{},"Positional",[1087,1773,1774],{},"One or more paths to JSON data files, separated by spaces.",[1072,1776,1777,1782,1791],{},[1087,1778,1779],{},[825,1780,1781],{},"--type",[1087,1783,1784,1787,1788],{},[825,1785,1786],{},"mmdb"," | ",[825,1789,1790],{},"lmdb",[1087,1792,1793,1797,1798,1800,1801,1803,1804,1806,1807,1810,1811,1814],{},[1794,1795,1796],"strong",{},"Required."," Use ",[825,1799,1786],{}," for IP range data (",[825,1802,741],{}," field required). Use ",[825,1805,1790],{}," for key-value data (",[825,1808,1809],{},"key"," or ",[825,1812,1813],{},"id"," field required).",[1072,1816,1817,1822,1825],{},[1087,1818,1819],{},[825,1820,1821],{},"--name",[1087,1823,1824],{},"string",[1087,1826,1827,1829],{},[1794,1828,1796],{}," Base name for the output files.",[1072,1831,1832,1837,1839],{},[1087,1833,1834],{},[825,1835,1836],{},"--outputDir",[1087,1838,1824],{},[1087,1840,1841,1842,1289],{},"Directory to save the compiled files. Defaults to ",[825,1843,1844],{},".\u002F",[1072,1846,1847,1852,1855],{},[1087,1848,1849],{},[825,1850,1851],{},"--types",[1087,1853,1854],{},"boolean",[1087,1856,1857,1858,1289],{},"Generate TypeScript type definitions. Defaults to ",[825,1859,1860],{},"true",[1072,1862,1863,1868,1871],{},[1087,1864,1865],{},[825,1866,1867],{},"--no-types",[1087,1869,1870],{},"flag",[1087,1872,1873],{},"Disable TypeScript type generation.",[1072,1875,1876,1882,1884],{},[1087,1877,1878,1319,1880],{},[825,1879,834],{},[825,1881,1322],{},[1087,1883,1870],{},[1087,1885,1886],{},"Show help for this subcommand.",[837,1888,1889,2035,2136,2229,2322],{},[840,1890,1892],{"className":842,"code":1891,"filename":844,"language":845,"meta":846,"style":846},"# Compile a single MMDB database\npnpm dlx @riavzon\u002Fshield-base compile --type mmdb --name myRanges --outputDir .\u002Fout example.json\n\n# Compile a single LMDB database\npnpm dlx @riavzon\u002Fshield-base compile --type lmdb --name myKeys --outputDir .\u002Fout example.json\n\n# Compile multiple JSON files (batch)\npnpm dlx @riavzon\u002Fshield-base compile --type mmdb --name myRanges --outputDir .\u002Fout file1.json file2.json\n\n# Disable type generation\npnpm dlx @riavzon\u002Fshield-base compile --type lmdb --name myKeys --no-types data.json\n",[825,1893,1894,1899,1930,1934,1939,1965,1969,1974,2002,2006,2011],{"__ignoreMap":846},[850,1895,1896],{"class":852,"line":853},[850,1897,1898],{"class":1343},"# Compile a single MMDB database\n",[850,1900,1901,1903,1905,1907,1909,1912,1915,1918,1921,1924,1927],{"class":852,"line":870},[850,1902,844],{"class":856},[850,1904,860],{"class":859},[850,1906,863],{"class":859},[850,1908,879],{"class":859},[850,1910,1911],{"class":866}," --type",[850,1913,1914],{"class":859}," mmdb",[850,1916,1917],{"class":866}," --name",[850,1919,1920],{"class":859}," myRanges",[850,1922,1923],{"class":866}," --outputDir",[850,1925,1926],{"class":859}," .\u002Fout",[850,1928,1929],{"class":859}," example.json\n",[850,1931,1932],{"class":852,"line":884},[850,1933,1379],{"emptyLinePlaceholder":8},[850,1935,1936],{"class":852,"line":898},[850,1937,1938],{"class":1343},"# Compile a single LMDB database\n",[850,1940,1941,1943,1945,1947,1949,1951,1954,1956,1959,1961,1963],{"class":852,"line":1387},[850,1942,844],{"class":856},[850,1944,860],{"class":859},[850,1946,863],{"class":859},[850,1948,879],{"class":859},[850,1950,1911],{"class":866},[850,1952,1953],{"class":859}," lmdb",[850,1955,1917],{"class":866},[850,1957,1958],{"class":859}," myKeys",[850,1960,1923],{"class":866},[850,1962,1926],{"class":859},[850,1964,1929],{"class":859},[850,1966,1967],{"class":852,"line":1402},[850,1968,1379],{"emptyLinePlaceholder":8},[850,1970,1971],{"class":852,"line":1407},[850,1972,1973],{"class":1343},"# Compile multiple JSON files (batch)\n",[850,1975,1976,1978,1980,1982,1984,1986,1988,1990,1992,1994,1996,1999],{"class":852,"line":1413},[850,1977,844],{"class":856},[850,1979,860],{"class":859},[850,1981,863],{"class":859},[850,1983,879],{"class":859},[850,1985,1911],{"class":866},[850,1987,1914],{"class":859},[850,1989,1917],{"class":866},[850,1991,1920],{"class":859},[850,1993,1923],{"class":866},[850,1995,1926],{"class":859},[850,1997,1998],{"class":859}," file1.json",[850,2000,2001],{"class":859}," file2.json\n",[850,2003,2004],{"class":852,"line":1446},[850,2005,1379],{"emptyLinePlaceholder":8},[850,2007,2008],{"class":852,"line":1451},[850,2009,2010],{"class":1343},"# Disable type generation\n",[850,2012,2013,2015,2017,2019,2021,2023,2025,2027,2029,2032],{"class":852,"line":1457},[850,2014,844],{"class":856},[850,2016,860],{"class":859},[850,2018,863],{"class":859},[850,2020,879],{"class":859},[850,2022,1911],{"class":866},[850,2024,1953],{"class":859},[850,2026,1917],{"class":866},[850,2028,1958],{"class":859},[850,2030,2031],{"class":866}," --no-types",[850,2033,2034],{"class":859}," data.json\n",[840,2036,2038],{"className":842,"code":2037,"filename":913,"language":845,"meta":846,"style":846},"yarn dlx @riavzon\u002Fshield-base compile --type mmdb --name myRanges --outputDir .\u002Fout example.json\nyarn dlx @riavzon\u002Fshield-base compile --type lmdb --name myKeys --outputDir .\u002Fout example.json\nyarn dlx @riavzon\u002Fshield-base compile --type mmdb --name myRanges --outputDir .\u002Fout file1.json file2.json\nyarn dlx @riavzon\u002Fshield-base compile --type lmdb --name myKeys --no-types data.json\n",[825,2039,2040,2064,2088,2114],{"__ignoreMap":846},[850,2041,2042,2044,2046,2048,2050,2052,2054,2056,2058,2060,2062],{"class":852,"line":853},[850,2043,913],{"class":856},[850,2045,860],{"class":859},[850,2047,863],{"class":859},[850,2049,879],{"class":859},[850,2051,1911],{"class":866},[850,2053,1914],{"class":859},[850,2055,1917],{"class":866},[850,2057,1920],{"class":859},[850,2059,1923],{"class":866},[850,2061,1926],{"class":859},[850,2063,1929],{"class":859},[850,2065,2066,2068,2070,2072,2074,2076,2078,2080,2082,2084,2086],{"class":852,"line":870},[850,2067,913],{"class":856},[850,2069,860],{"class":859},[850,2071,863],{"class":859},[850,2073,879],{"class":859},[850,2075,1911],{"class":866},[850,2077,1953],{"class":859},[850,2079,1917],{"class":866},[850,2081,1958],{"class":859},[850,2083,1923],{"class":866},[850,2085,1926],{"class":859},[850,2087,1929],{"class":859},[850,2089,2090,2092,2094,2096,2098,2100,2102,2104,2106,2108,2110,2112],{"class":852,"line":884},[850,2091,913],{"class":856},[850,2093,860],{"class":859},[850,2095,863],{"class":859},[850,2097,879],{"class":859},[850,2099,1911],{"class":866},[850,2101,1914],{"class":859},[850,2103,1917],{"class":866},[850,2105,1920],{"class":859},[850,2107,1923],{"class":866},[850,2109,1926],{"class":859},[850,2111,1998],{"class":859},[850,2113,2001],{"class":859},[850,2115,2116,2118,2120,2122,2124,2126,2128,2130,2132,2134],{"class":852,"line":898},[850,2117,913],{"class":856},[850,2119,860],{"class":859},[850,2121,863],{"class":859},[850,2123,879],{"class":859},[850,2125,1911],{"class":866},[850,2127,1953],{"class":859},[850,2129,1917],{"class":866},[850,2131,1958],{"class":859},[850,2133,2031],{"class":866},[850,2135,2034],{"class":859},[840,2137,2139],{"className":842,"code":2138,"filename":965,"language":845,"meta":846,"style":846},"npx @riavzon\u002Fshield-base compile --type mmdb --name myRanges --outputDir .\u002Fout example.json\nnpx @riavzon\u002Fshield-base compile --type lmdb --name myKeys --outputDir .\u002Fout example.json\nnpx @riavzon\u002Fshield-base compile --type mmdb --name myRanges --outputDir .\u002Fout file1.json file2.json\nnpx @riavzon\u002Fshield-base compile --type lmdb --name myKeys --no-types data.json\n",[825,2140,2141,2163,2185,2209],{"__ignoreMap":846},[850,2142,2143,2145,2147,2149,2151,2153,2155,2157,2159,2161],{"class":852,"line":853},[850,2144,972],{"class":856},[850,2146,863],{"class":859},[850,2148,879],{"class":859},[850,2150,1911],{"class":866},[850,2152,1914],{"class":859},[850,2154,1917],{"class":866},[850,2156,1920],{"class":859},[850,2158,1923],{"class":866},[850,2160,1926],{"class":859},[850,2162,1929],{"class":859},[850,2164,2165,2167,2169,2171,2173,2175,2177,2179,2181,2183],{"class":852,"line":870},[850,2166,972],{"class":856},[850,2168,863],{"class":859},[850,2170,879],{"class":859},[850,2172,1911],{"class":866},[850,2174,1953],{"class":859},[850,2176,1917],{"class":866},[850,2178,1958],{"class":859},[850,2180,1923],{"class":866},[850,2182,1926],{"class":859},[850,2184,1929],{"class":859},[850,2186,2187,2189,2191,2193,2195,2197,2199,2201,2203,2205,2207],{"class":852,"line":884},[850,2188,972],{"class":856},[850,2190,863],{"class":859},[850,2192,879],{"class":859},[850,2194,1911],{"class":866},[850,2196,1914],{"class":859},[850,2198,1917],{"class":866},[850,2200,1920],{"class":859},[850,2202,1923],{"class":866},[850,2204,1926],{"class":859},[850,2206,1998],{"class":859},[850,2208,2001],{"class":859},[850,2210,2211,2213,2215,2217,2219,2221,2223,2225,2227],{"class":852,"line":898},[850,2212,972],{"class":856},[850,2214,863],{"class":859},[850,2216,879],{"class":859},[850,2218,1911],{"class":866},[850,2220,1953],{"class":859},[850,2222,1917],{"class":866},[850,2224,1958],{"class":859},[850,2226,2031],{"class":866},[850,2228,2034],{"class":859},[840,2230,2232],{"className":842,"code":2231,"filename":1010,"language":845,"meta":846,"style":846},"bunx @riavzon\u002Fshield-base compile --type mmdb --name myRanges --outputDir .\u002Fout example.json\nbunx @riavzon\u002Fshield-base compile --type lmdb --name myKeys --outputDir .\u002Fout example.json\nbunx @riavzon\u002Fshield-base compile --type mmdb --name myRanges --outputDir .\u002Fout file1.json file2.json\nbunx @riavzon\u002Fshield-base compile --type lmdb --name myKeys --no-types data.json\n",[825,2233,2234,2256,2278,2302],{"__ignoreMap":846},[850,2235,2236,2238,2240,2242,2244,2246,2248,2250,2252,2254],{"class":852,"line":853},[850,2237,1017],{"class":856},[850,2239,863],{"class":859},[850,2241,879],{"class":859},[850,2243,1911],{"class":866},[850,2245,1914],{"class":859},[850,2247,1917],{"class":866},[850,2249,1920],{"class":859},[850,2251,1923],{"class":866},[850,2253,1926],{"class":859},[850,2255,1929],{"class":859},[850,2257,2258,2260,2262,2264,2266,2268,2270,2272,2274,2276],{"class":852,"line":870},[850,2259,1017],{"class":856},[850,2261,863],{"class":859},[850,2263,879],{"class":859},[850,2265,1911],{"class":866},[850,2267,1953],{"class":859},[850,2269,1917],{"class":866},[850,2271,1958],{"class":859},[850,2273,1923],{"class":866},[850,2275,1926],{"class":859},[850,2277,1929],{"class":859},[850,2279,2280,2282,2284,2286,2288,2290,2292,2294,2296,2298,2300],{"class":852,"line":884},[850,2281,1017],{"class":856},[850,2283,863],{"class":859},[850,2285,879],{"class":859},[850,2287,1911],{"class":866},[850,2289,1914],{"class":859},[850,2291,1917],{"class":866},[850,2293,1920],{"class":859},[850,2295,1923],{"class":866},[850,2297,1926],{"class":859},[850,2299,1998],{"class":859},[850,2301,2001],{"class":859},[850,2303,2304,2306,2308,2310,2312,2314,2316,2318,2320],{"class":852,"line":898},[850,2305,1017],{"class":856},[850,2307,863],{"class":859},[850,2309,879],{"class":859},[850,2311,1911],{"class":866},[850,2313,1953],{"class":859},[850,2315,1917],{"class":866},[850,2317,1958],{"class":859},[850,2319,2031],{"class":866},[850,2321,2034],{"class":859},[840,2323,2328],{"className":2324,"code":2325,"filename":2326,"language":2327,"meta":846,"style":846},"language-ts shiki shiki-themes light-plus light-plus dracula","import { compiler } from '@riavzon\u002Fshield-base';\n\n\u002F\u002F MMDB (IP range data)\nawait compiler({\n  type: 'mmdb',\n  input: {\n    data: 'example.json',\n    dataBaseName: 'myRanges',\n    mmdbPath: 'mmdbctl',\n    outputPath: '.\u002Fout',\n    generateTypes: true,\n  },\n});\n\n\u002F\u002F LMDB (key-value data)\nawait compiler({\n  type: 'lmdb',\n  input: {\n    data: 'example.json',\n    dataBaseName: 'myKeys',\n    outputPath: '.\u002Fout',\n    generateTypes: true,\n  },\n});\n","Programmatic","ts",[825,2329,2330,2362,2366,2371,2382,2400,2410,2426,2442,2458,2474,2486,2491,2496,2500,2506,2515,2530,2539,2554,2570,2585,2596,2601],{"__ignoreMap":846},[850,2331,2332,2336,2340,2344,2347,2350,2353,2356,2359],{"class":852,"line":853},[850,2333,2335],{"class":2334},"sZ328","import",[850,2337,2339],{"class":2338},"sDd4n"," { ",[850,2341,2343],{"class":2342},"sjsA6","compiler",[850,2345,2346],{"class":2338}," } ",[850,2348,2349],{"class":2334},"from",[850,2351,2352],{"class":1364}," '",[850,2354,2355],{"class":859},"@riavzon\u002Fshield-base",[850,2357,2358],{"class":1364},"'",[850,2360,2361],{"class":2338},";\n",[850,2363,2364],{"class":852,"line":870},[850,2365,1379],{"emptyLinePlaceholder":8},[850,2367,2368],{"class":852,"line":884},[850,2369,2370],{"class":1343},"\u002F\u002F MMDB (IP range data)\n",[850,2372,2373,2376,2379],{"class":852,"line":898},[850,2374,2375],{"class":2334},"await",[850,2377,2378],{"class":856}," compiler",[850,2380,2381],{"class":2338},"({\n",[850,2383,2384,2387,2391,2393,2395,2397],{"class":852,"line":1387},[850,2385,2386],{"class":2342},"  type",[850,2388,2390],{"class":2389},"s34zl",":",[850,2392,2352],{"class":1364},[850,2394,1786],{"class":859},[850,2396,2358],{"class":1364},[850,2398,2399],{"class":2338},",\n",[850,2401,2402,2405,2407],{"class":852,"line":1402},[850,2403,2404],{"class":2342},"  input",[850,2406,2390],{"class":2389},[850,2408,2409],{"class":2338}," {\n",[850,2411,2412,2415,2417,2419,2422,2424],{"class":852,"line":1407},[850,2413,2414],{"class":2342},"    data",[850,2416,2390],{"class":2389},[850,2418,2352],{"class":1364},[850,2420,2421],{"class":859},"example.json",[850,2423,2358],{"class":1364},[850,2425,2399],{"class":2338},[850,2427,2428,2431,2433,2435,2438,2440],{"class":852,"line":1413},[850,2429,2430],{"class":2342},"    dataBaseName",[850,2432,2390],{"class":2389},[850,2434,2352],{"class":1364},[850,2436,2437],{"class":859},"myRanges",[850,2439,2358],{"class":1364},[850,2441,2399],{"class":2338},[850,2443,2444,2447,2449,2451,2454,2456],{"class":852,"line":1446},[850,2445,2446],{"class":2342},"    mmdbPath",[850,2448,2390],{"class":2389},[850,2450,2352],{"class":1364},[850,2452,2453],{"class":859},"mmdbctl",[850,2455,2358],{"class":1364},[850,2457,2399],{"class":2338},[850,2459,2460,2463,2465,2467,2470,2472],{"class":852,"line":1451},[850,2461,2462],{"class":2342},"    outputPath",[850,2464,2390],{"class":2389},[850,2466,2352],{"class":1364},[850,2468,2469],{"class":859},".\u002Fout",[850,2471,2358],{"class":1364},[850,2473,2399],{"class":2338},[850,2475,2476,2479,2481,2484],{"class":852,"line":1457},[850,2477,2478],{"class":2342},"    generateTypes",[850,2480,2390],{"class":2389},[850,2482,2483],{"class":866}," true",[850,2485,2399],{"class":2338},[850,2487,2488],{"class":852,"line":1469},[850,2489,2490],{"class":2338},"  },\n",[850,2492,2493],{"class":852,"line":1474},[850,2494,2495],{"class":2338},"});\n",[850,2497,2498],{"class":852,"line":1480},[850,2499,1379],{"emptyLinePlaceholder":8},[850,2501,2503],{"class":852,"line":2502},15,[850,2504,2505],{"class":1343},"\u002F\u002F LMDB (key-value data)\n",[850,2507,2509,2511,2513],{"class":852,"line":2508},16,[850,2510,2375],{"class":2334},[850,2512,2378],{"class":856},[850,2514,2381],{"class":2338},[850,2516,2518,2520,2522,2524,2526,2528],{"class":852,"line":2517},17,[850,2519,2386],{"class":2342},[850,2521,2390],{"class":2389},[850,2523,2352],{"class":1364},[850,2525,1790],{"class":859},[850,2527,2358],{"class":1364},[850,2529,2399],{"class":2338},[850,2531,2533,2535,2537],{"class":852,"line":2532},18,[850,2534,2404],{"class":2342},[850,2536,2390],{"class":2389},[850,2538,2409],{"class":2338},[850,2540,2542,2544,2546,2548,2550,2552],{"class":852,"line":2541},19,[850,2543,2414],{"class":2342},[850,2545,2390],{"class":2389},[850,2547,2352],{"class":1364},[850,2549,2421],{"class":859},[850,2551,2358],{"class":1364},[850,2553,2399],{"class":2338},[850,2555,2557,2559,2561,2563,2566,2568],{"class":852,"line":2556},20,[850,2558,2430],{"class":2342},[850,2560,2390],{"class":2389},[850,2562,2352],{"class":1364},[850,2564,2565],{"class":859},"myKeys",[850,2567,2358],{"class":1364},[850,2569,2399],{"class":2338},[850,2571,2573,2575,2577,2579,2581,2583],{"class":852,"line":2572},21,[850,2574,2462],{"class":2342},[850,2576,2390],{"class":2389},[850,2578,2352],{"class":1364},[850,2580,2469],{"class":859},[850,2582,2358],{"class":1364},[850,2584,2399],{"class":2338},[850,2586,2588,2590,2592,2594],{"class":852,"line":2587},22,[850,2589,2478],{"class":2342},[850,2591,2390],{"class":2389},[850,2593,2483],{"class":866},[850,2595,2399],{"class":2338},[850,2597,2599],{"class":852,"line":2598},23,[850,2600,2490],{"class":2338},[850,2602,2604],{"class":852,"line":2603},24,[850,2605,2495],{"class":2338},[821,2607,2608,2609,2611,2612,2615,2616,1319,2619,2622],{},"When processing multiple input files, the first output uses your ",[825,2610,1821],{}," (for example, ",[825,2613,2614],{},"myRanges.mmdb","), and subsequent files are indexed (",[825,2617,2618],{},"myRanges-1.mmdb",[825,2620,2621],{},"myRanges-2.mmdb",").",[2624,2625,2626],"note",{},[821,2627,2628,2629,2631,2632,2634,2635,2637,2638,1810,2640,2642],{},"For ",[825,2630,1786],{},", every record in the JSON input must contain a ",[825,2633,741],{}," field with an IPv4\u002FIPv6 address or CIDR range. For ",[825,2636,1790],{},", every record must contain a ",[825,2639,1809],{},[825,2641,1813],{}," field used as the lookup key.",[1053,2644],{},[1056,2646,2648,1742],{"id":2647},"lm-read-subcommand",[825,2649,2650],{},"lm-read",[821,2652,2653,2654,2657,2658,2660],{},"Reads and inspects data from an LMDB ",[825,2655,2656],{},".mdb"," database. Pass the full path to the ",[825,2659,2656],{}," environment directory, not its parent.",[1066,2662,2663,2673],{},[1069,2664,2665],{},[1072,2666,2667,2669,2671],{},[1075,2668,1077],{},[1075,2670,1757],{},[1075,2672,1080],{},[1082,2674,2675,2692,2705,2740,2756,2770,2790],{},[1072,2676,2677,2682,2684],{},[1087,2678,2679],{},[825,2680,2681],{},"--path",[1087,2683,1824],{},[1087,2685,2686,2688,2689,2691],{},[1794,2687,1796],{}," Full path to the ",[825,2690,2656],{}," database file.",[1072,2693,2694,2698,2700],{},[1087,2695,2696],{},[825,2697,1821],{},[1087,2699,1824],{},[1087,2701,2702,2704],{},[1794,2703,1796],{}," Name of the LMDB sub-database.",[1072,2706,2707,2712,2715],{},[1087,2708,2709],{},[825,2710,2711],{},"--operation",[1087,2713,2714],{},"enum",[1087,2716,2717,2719,2720,1319,2723,1319,2725,1319,2728,1319,2731,1319,2734,1319,2737,1289],{},[1794,2718,1796],{}," One of ",[825,2721,2722],{},"get",[825,2724,741],{},[825,2726,2727],{},"prefix",[825,2729,2730],{},"count",[825,2732,2733],{},"exists",[825,2735,2736],{},"stats",[825,2738,2739],{},"drop",[1072,2741,2742,2747,2749],{},[1087,2743,2744],{},[825,2745,2746],{},"--key",[1087,2748,1824],{},[1087,2750,2751,2752,1286,2754,1289],{},"Exact key to look up. Required for ",[825,2753,2722],{},[825,2755,2733],{},[1072,2757,2758,2763,2765],{},[1087,2759,2760],{},[825,2761,2762],{},"--prefix",[1087,2764,1824],{},[1087,2766,2767,2768,1289],{},"Key prefix to search. Required for ",[825,2769,2727],{},[1072,2771,2772,2777,2779],{},[1087,2773,2774],{},[825,2775,2776],{},"--limit",[1087,2778,1824],{},[1087,2780,2781,2782,1286,2784,2786,2787,1289],{},"Maximum records to return. Used by ",[825,2783,741],{},[825,2785,2727],{},". Defaults to ",[825,2788,2789],{},"10",[1072,2791,2792,2798,2800],{},[1087,2793,2794,1319,2796],{},[825,2795,834],{},[825,2797,1322],{},[1087,2799,1870],{},[1087,2801,2802],{},"Show help.",[1066,2804,2805,2814],{},[1069,2806,2807],{},[1072,2808,2809,2812],{},[1075,2810,2811],{},"Operation",[1075,2813,1080],{},[1082,2815,2816,2825,2834,2843,2852,2861,2870],{},[1072,2817,2818,2822],{},[1087,2819,2820],{},[825,2821,2722],{},[1087,2823,2824],{},"Retrieve a single record by exact key.",[1072,2826,2827,2831],{},[1087,2828,2829],{},[825,2830,741],{},[1087,2832,2833],{},"Return the first N records in B-tree order.",[1072,2835,2836,2840],{},[1087,2837,2838],{},[825,2839,2727],{},[1087,2841,2842],{},"Find all keys starting with the given prefix.",[1072,2844,2845,2849],{},[1087,2846,2847],{},[825,2848,2730],{},[1087,2850,2851],{},"Count total records in the database.",[1072,2853,2854,2858],{},[1087,2855,2856],{},[825,2857,2733],{},[1087,2859,2860],{},"Check whether a key exists.",[1072,2862,2863,2867],{},[1087,2864,2865],{},[825,2866,2736],{},[1087,2868,2869],{},"Print LMDB environment statistics (page size, depth, record count).",[1072,2871,2872,2876],{},[1087,2873,2874],{},[825,2875,2739],{},[1087,2877,2878],{},"Permanently delete the database. Irreversible.",[837,2880,2881,3082,3225,3358,3491],{},[840,2882,2884],{"className":842,"code":2883,"filename":844,"language":845,"meta":846,"style":846},"# Get a record by exact key\npnpm dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation get --key \"sqlmap\"\n\n# List the first 5 records in B-tree order\npnpm dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation range --limit 5\n\n# Find all keys starting with a prefix\npnpm dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation prefix --prefix \"curl\"\n\n# Count all records\npnpm dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation count\n\n# Check if a key exists\npnpm dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation exists --key \"nmap\"\n",[825,2885,2886,2891,2928,2932,2937,2967,2971,2976,3009,3013,3018,3041,3045,3050],{"__ignoreMap":846},[850,2887,2888],{"class":852,"line":853},[850,2889,2890],{"class":1343},"# Get a record by exact key\n",[850,2892,2893,2895,2897,2899,2901,2903,2906,2908,2911,2914,2917,2920,2922,2925],{"class":852,"line":870},[850,2894,844],{"class":856},[850,2896,860],{"class":859},[850,2898,863],{"class":859},[850,2900,893],{"class":859},[850,2902,1440],{"class":866},[850,2904,2905],{"class":859}," .\u002Fout\u002Fuseragent.mdb",[850,2907,1917],{"class":866},[850,2909,2910],{"class":859}," useragent",[850,2912,2913],{"class":866}," --operation",[850,2915,2916],{"class":859}," get",[850,2918,2919],{"class":866}," --key",[850,2921,1365],{"class":1364},[850,2923,2924],{"class":859},"sqlmap",[850,2926,2927],{"class":1364},"\"\n",[850,2929,2930],{"class":852,"line":884},[850,2931,1379],{"emptyLinePlaceholder":8},[850,2933,2934],{"class":852,"line":898},[850,2935,2936],{"class":1343},"# List the first 5 records in B-tree order\n",[850,2938,2939,2941,2943,2945,2947,2949,2951,2953,2955,2957,2960,2963],{"class":852,"line":1387},[850,2940,844],{"class":856},[850,2942,860],{"class":859},[850,2944,863],{"class":859},[850,2946,893],{"class":859},[850,2948,1440],{"class":866},[850,2950,2905],{"class":859},[850,2952,1917],{"class":866},[850,2954,2910],{"class":859},[850,2956,2913],{"class":866},[850,2958,2959],{"class":859}," range",[850,2961,2962],{"class":866}," --limit",[850,2964,2966],{"class":2965},"spgvN"," 5\n",[850,2968,2969],{"class":852,"line":1402},[850,2970,1379],{"emptyLinePlaceholder":8},[850,2972,2973],{"class":852,"line":1407},[850,2974,2975],{"class":1343},"# Find all keys starting with a prefix\n",[850,2977,2978,2980,2982,2984,2986,2988,2990,2992,2994,2996,2999,3002,3004,3007],{"class":852,"line":1413},[850,2979,844],{"class":856},[850,2981,860],{"class":859},[850,2983,863],{"class":859},[850,2985,893],{"class":859},[850,2987,1440],{"class":866},[850,2989,2905],{"class":859},[850,2991,1917],{"class":866},[850,2993,2910],{"class":859},[850,2995,2913],{"class":866},[850,2997,2998],{"class":859}," prefix",[850,3000,3001],{"class":866}," --prefix",[850,3003,1365],{"class":1364},[850,3005,3006],{"class":859},"curl",[850,3008,2927],{"class":1364},[850,3010,3011],{"class":852,"line":1446},[850,3012,1379],{"emptyLinePlaceholder":8},[850,3014,3015],{"class":852,"line":1451},[850,3016,3017],{"class":1343},"# Count all records\n",[850,3019,3020,3022,3024,3026,3028,3030,3032,3034,3036,3038],{"class":852,"line":1457},[850,3021,844],{"class":856},[850,3023,860],{"class":859},[850,3025,863],{"class":859},[850,3027,893],{"class":859},[850,3029,1440],{"class":866},[850,3031,2905],{"class":859},[850,3033,1917],{"class":866},[850,3035,2910],{"class":859},[850,3037,2913],{"class":866},[850,3039,3040],{"class":859}," count\n",[850,3042,3043],{"class":852,"line":1469},[850,3044,1379],{"emptyLinePlaceholder":8},[850,3046,3047],{"class":852,"line":1474},[850,3048,3049],{"class":1343},"# Check if a key exists\n",[850,3051,3052,3054,3056,3058,3060,3062,3064,3066,3068,3070,3073,3075,3077,3080],{"class":852,"line":1480},[850,3053,844],{"class":856},[850,3055,860],{"class":859},[850,3057,863],{"class":859},[850,3059,893],{"class":859},[850,3061,1440],{"class":866},[850,3063,2905],{"class":859},[850,3065,1917],{"class":866},[850,3067,2910],{"class":859},[850,3069,2913],{"class":866},[850,3071,3072],{"class":859}," exists",[850,3074,2919],{"class":866},[850,3076,1365],{"class":1364},[850,3078,3079],{"class":859},"nmap",[850,3081,2927],{"class":1364},[840,3083,3085],{"className":842,"code":3084,"filename":913,"language":845,"meta":846,"style":846},"yarn dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation get --key \"sqlmap\"\nyarn dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation range --limit 5\nyarn dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation prefix --prefix \"curl\"\nyarn dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation count\nyarn dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation exists --key \"nmap\"\n",[825,3086,3087,3117,3143,3173,3195],{"__ignoreMap":846},[850,3088,3089,3091,3093,3095,3097,3099,3101,3103,3105,3107,3109,3111,3113,3115],{"class":852,"line":853},[850,3090,913],{"class":856},[850,3092,860],{"class":859},[850,3094,863],{"class":859},[850,3096,893],{"class":859},[850,3098,1440],{"class":866},[850,3100,2905],{"class":859},[850,3102,1917],{"class":866},[850,3104,2910],{"class":859},[850,3106,2913],{"class":866},[850,3108,2916],{"class":859},[850,3110,2919],{"class":866},[850,3112,1365],{"class":1364},[850,3114,2924],{"class":859},[850,3116,2927],{"class":1364},[850,3118,3119,3121,3123,3125,3127,3129,3131,3133,3135,3137,3139,3141],{"class":852,"line":870},[850,3120,913],{"class":856},[850,3122,860],{"class":859},[850,3124,863],{"class":859},[850,3126,893],{"class":859},[850,3128,1440],{"class":866},[850,3130,2905],{"class":859},[850,3132,1917],{"class":866},[850,3134,2910],{"class":859},[850,3136,2913],{"class":866},[850,3138,2959],{"class":859},[850,3140,2962],{"class":866},[850,3142,2966],{"class":2965},[850,3144,3145,3147,3149,3151,3153,3155,3157,3159,3161,3163,3165,3167,3169,3171],{"class":852,"line":884},[850,3146,913],{"class":856},[850,3148,860],{"class":859},[850,3150,863],{"class":859},[850,3152,893],{"class":859},[850,3154,1440],{"class":866},[850,3156,2905],{"class":859},[850,3158,1917],{"class":866},[850,3160,2910],{"class":859},[850,3162,2913],{"class":866},[850,3164,2998],{"class":859},[850,3166,3001],{"class":866},[850,3168,1365],{"class":1364},[850,3170,3006],{"class":859},[850,3172,2927],{"class":1364},[850,3174,3175,3177,3179,3181,3183,3185,3187,3189,3191,3193],{"class":852,"line":898},[850,3176,913],{"class":856},[850,3178,860],{"class":859},[850,3180,863],{"class":859},[850,3182,893],{"class":859},[850,3184,1440],{"class":866},[850,3186,2905],{"class":859},[850,3188,1917],{"class":866},[850,3190,2910],{"class":859},[850,3192,2913],{"class":866},[850,3194,3040],{"class":859},[850,3196,3197,3199,3201,3203,3205,3207,3209,3211,3213,3215,3217,3219,3221,3223],{"class":852,"line":1387},[850,3198,913],{"class":856},[850,3200,860],{"class":859},[850,3202,863],{"class":859},[850,3204,893],{"class":859},[850,3206,1440],{"class":866},[850,3208,2905],{"class":859},[850,3210,1917],{"class":866},[850,3212,2910],{"class":859},[850,3214,2913],{"class":866},[850,3216,3072],{"class":859},[850,3218,2919],{"class":866},[850,3220,1365],{"class":1364},[850,3222,3079],{"class":859},[850,3224,2927],{"class":1364},[840,3226,3228],{"className":842,"code":3227,"filename":965,"language":845,"meta":846,"style":846},"npx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation get --key \"sqlmap\"\nnpx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation range --limit 5\nnpx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation prefix --prefix \"curl\"\nnpx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation count\nnpx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation exists --key \"nmap\"\n",[825,3229,3230,3258,3282,3310,3330],{"__ignoreMap":846},[850,3231,3232,3234,3236,3238,3240,3242,3244,3246,3248,3250,3252,3254,3256],{"class":852,"line":853},[850,3233,972],{"class":856},[850,3235,863],{"class":859},[850,3237,893],{"class":859},[850,3239,1440],{"class":866},[850,3241,2905],{"class":859},[850,3243,1917],{"class":866},[850,3245,2910],{"class":859},[850,3247,2913],{"class":866},[850,3249,2916],{"class":859},[850,3251,2919],{"class":866},[850,3253,1365],{"class":1364},[850,3255,2924],{"class":859},[850,3257,2927],{"class":1364},[850,3259,3260,3262,3264,3266,3268,3270,3272,3274,3276,3278,3280],{"class":852,"line":870},[850,3261,972],{"class":856},[850,3263,863],{"class":859},[850,3265,893],{"class":859},[850,3267,1440],{"class":866},[850,3269,2905],{"class":859},[850,3271,1917],{"class":866},[850,3273,2910],{"class":859},[850,3275,2913],{"class":866},[850,3277,2959],{"class":859},[850,3279,2962],{"class":866},[850,3281,2966],{"class":2965},[850,3283,3284,3286,3288,3290,3292,3294,3296,3298,3300,3302,3304,3306,3308],{"class":852,"line":884},[850,3285,972],{"class":856},[850,3287,863],{"class":859},[850,3289,893],{"class":859},[850,3291,1440],{"class":866},[850,3293,2905],{"class":859},[850,3295,1917],{"class":866},[850,3297,2910],{"class":859},[850,3299,2913],{"class":866},[850,3301,2998],{"class":859},[850,3303,3001],{"class":866},[850,3305,1365],{"class":1364},[850,3307,3006],{"class":859},[850,3309,2927],{"class":1364},[850,3311,3312,3314,3316,3318,3320,3322,3324,3326,3328],{"class":852,"line":898},[850,3313,972],{"class":856},[850,3315,863],{"class":859},[850,3317,893],{"class":859},[850,3319,1440],{"class":866},[850,3321,2905],{"class":859},[850,3323,1917],{"class":866},[850,3325,2910],{"class":859},[850,3327,2913],{"class":866},[850,3329,3040],{"class":859},[850,3331,3332,3334,3336,3338,3340,3342,3344,3346,3348,3350,3352,3354,3356],{"class":852,"line":1387},[850,3333,972],{"class":856},[850,3335,863],{"class":859},[850,3337,893],{"class":859},[850,3339,1440],{"class":866},[850,3341,2905],{"class":859},[850,3343,1917],{"class":866},[850,3345,2910],{"class":859},[850,3347,2913],{"class":866},[850,3349,3072],{"class":859},[850,3351,2919],{"class":866},[850,3353,1365],{"class":1364},[850,3355,3079],{"class":859},[850,3357,2927],{"class":1364},[840,3359,3361],{"className":842,"code":3360,"filename":1010,"language":845,"meta":846,"style":846},"bunx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation get --key \"sqlmap\"\nbunx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation range --limit 5\nbunx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation prefix --prefix \"curl\"\nbunx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation count\nbunx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation exists --key \"nmap\"\n",[825,3362,3363,3391,3415,3443,3463],{"__ignoreMap":846},[850,3364,3365,3367,3369,3371,3373,3375,3377,3379,3381,3383,3385,3387,3389],{"class":852,"line":853},[850,3366,1017],{"class":856},[850,3368,863],{"class":859},[850,3370,893],{"class":859},[850,3372,1440],{"class":866},[850,3374,2905],{"class":859},[850,3376,1917],{"class":866},[850,3378,2910],{"class":859},[850,3380,2913],{"class":866},[850,3382,2916],{"class":859},[850,3384,2919],{"class":866},[850,3386,1365],{"class":1364},[850,3388,2924],{"class":859},[850,3390,2927],{"class":1364},[850,3392,3393,3395,3397,3399,3401,3403,3405,3407,3409,3411,3413],{"class":852,"line":870},[850,3394,1017],{"class":856},[850,3396,863],{"class":859},[850,3398,893],{"class":859},[850,3400,1440],{"class":866},[850,3402,2905],{"class":859},[850,3404,1917],{"class":866},[850,3406,2910],{"class":859},[850,3408,2913],{"class":866},[850,3410,2959],{"class":859},[850,3412,2962],{"class":866},[850,3414,2966],{"class":2965},[850,3416,3417,3419,3421,3423,3425,3427,3429,3431,3433,3435,3437,3439,3441],{"class":852,"line":884},[850,3418,1017],{"class":856},[850,3420,863],{"class":859},[850,3422,893],{"class":859},[850,3424,1440],{"class":866},[850,3426,2905],{"class":859},[850,3428,1917],{"class":866},[850,3430,2910],{"class":859},[850,3432,2913],{"class":866},[850,3434,2998],{"class":859},[850,3436,3001],{"class":866},[850,3438,1365],{"class":1364},[850,3440,3006],{"class":859},[850,3442,2927],{"class":1364},[850,3444,3445,3447,3449,3451,3453,3455,3457,3459,3461],{"class":852,"line":898},[850,3446,1017],{"class":856},[850,3448,863],{"class":859},[850,3450,893],{"class":859},[850,3452,1440],{"class":866},[850,3454,2905],{"class":859},[850,3456,1917],{"class":866},[850,3458,2910],{"class":859},[850,3460,2913],{"class":866},[850,3462,3040],{"class":859},[850,3464,3465,3467,3469,3471,3473,3475,3477,3479,3481,3483,3485,3487,3489],{"class":852,"line":1387},[850,3466,1017],{"class":856},[850,3468,863],{"class":859},[850,3470,893],{"class":859},[850,3472,1440],{"class":866},[850,3474,2905],{"class":859},[850,3476,1917],{"class":866},[850,3478,2910],{"class":859},[850,3480,2913],{"class":866},[850,3482,3072],{"class":859},[850,3484,2919],{"class":866},[850,3486,1365],{"class":1364},[850,3488,3079],{"class":859},[850,3490,2927],{"class":1364},[840,3492,3494],{"className":2324,"code":3493,"filename":2326,"language":2327,"meta":846,"style":846},"import { getByKey, getRange, getByPrefix, countRecords, doesExist } from '@riavzon\u002Fshield-base';\n\nconst dbPath = '.\u002Fout\u002Fuseragent.mdb';\nconst dbName = 'useragent';\n\nconst record = getByKey(dbPath, dbName, 'sqlmap');\nconst first5 = getRange(dbPath, dbName, 5);\nconst curlMatches = getByPrefix(dbPath, dbName, 'curl', 20);\nconst total = countRecords(dbPath, dbName);\nconst exists = doesExist(dbPath, dbName, 'nmap');\n",[825,3495,3496,3537,3541,3564,3582,3586,3620,3647,3682,3704],{"__ignoreMap":846},[850,3497,3498,3500,3502,3505,3507,3510,3512,3515,3517,3520,3522,3525,3527,3529,3531,3533,3535],{"class":852,"line":853},[850,3499,2335],{"class":2334},[850,3501,2339],{"class":2338},[850,3503,3504],{"class":2342},"getByKey",[850,3506,1319],{"class":2338},[850,3508,3509],{"class":2342},"getRange",[850,3511,1319],{"class":2338},[850,3513,3514],{"class":2342},"getByPrefix",[850,3516,1319],{"class":2338},[850,3518,3519],{"class":2342},"countRecords",[850,3521,1319],{"class":2338},[850,3523,3524],{"class":2342},"doesExist",[850,3526,2346],{"class":2338},[850,3528,2349],{"class":2334},[850,3530,2352],{"class":1364},[850,3532,2355],{"class":859},[850,3534,2358],{"class":1364},[850,3536,2361],{"class":2338},[850,3538,3539],{"class":852,"line":870},[850,3540,1379],{"emptyLinePlaceholder":8},[850,3542,3543,3547,3551,3555,3557,3560,3562],{"class":852,"line":884},[850,3544,3546],{"class":3545},"sl46w","const",[850,3548,3550],{"class":3549},"s3JHE"," dbPath",[850,3552,3554],{"class":3553},"saOXh"," =",[850,3556,2352],{"class":1364},[850,3558,3559],{"class":859},".\u002Fout\u002Fuseragent.mdb",[850,3561,2358],{"class":1364},[850,3563,2361],{"class":2338},[850,3565,3566,3568,3571,3573,3575,3578,3580],{"class":852,"line":898},[850,3567,3546],{"class":3545},[850,3569,3570],{"class":3549}," dbName",[850,3572,3554],{"class":3553},[850,3574,2352],{"class":1364},[850,3576,3577],{"class":859},"useragent",[850,3579,2358],{"class":1364},[850,3581,2361],{"class":2338},[850,3583,3584],{"class":852,"line":1387},[850,3585,1379],{"emptyLinePlaceholder":8},[850,3587,3588,3590,3593,3595,3598,3601,3604,3606,3609,3611,3613,3615,3617],{"class":852,"line":1402},[850,3589,3546],{"class":3545},[850,3591,3592],{"class":3549}," record",[850,3594,3554],{"class":3553},[850,3596,3597],{"class":856}," getByKey",[850,3599,3600],{"class":2338},"(",[850,3602,3603],{"class":2342},"dbPath",[850,3605,1319],{"class":2338},[850,3607,3608],{"class":2342},"dbName",[850,3610,1319],{"class":2338},[850,3612,2358],{"class":1364},[850,3614,2924],{"class":859},[850,3616,2358],{"class":1364},[850,3618,3619],{"class":2338},");\n",[850,3621,3622,3624,3627,3629,3632,3634,3636,3638,3640,3642,3645],{"class":852,"line":1407},[850,3623,3546],{"class":3545},[850,3625,3626],{"class":3549}," first5",[850,3628,3554],{"class":3553},[850,3630,3631],{"class":856}," getRange",[850,3633,3600],{"class":2338},[850,3635,3603],{"class":2342},[850,3637,1319],{"class":2338},[850,3639,3608],{"class":2342},[850,3641,1319],{"class":2338},[850,3643,3644],{"class":2965},"5",[850,3646,3619],{"class":2338},[850,3648,3649,3651,3654,3656,3659,3661,3663,3665,3667,3669,3671,3673,3675,3677,3680],{"class":852,"line":1413},[850,3650,3546],{"class":3545},[850,3652,3653],{"class":3549}," curlMatches",[850,3655,3554],{"class":3553},[850,3657,3658],{"class":856}," getByPrefix",[850,3660,3600],{"class":2338},[850,3662,3603],{"class":2342},[850,3664,1319],{"class":2338},[850,3666,3608],{"class":2342},[850,3668,1319],{"class":2338},[850,3670,2358],{"class":1364},[850,3672,3006],{"class":859},[850,3674,2358],{"class":1364},[850,3676,1319],{"class":2338},[850,3678,3679],{"class":2965},"20",[850,3681,3619],{"class":2338},[850,3683,3684,3686,3689,3691,3694,3696,3698,3700,3702],{"class":852,"line":1446},[850,3685,3546],{"class":3545},[850,3687,3688],{"class":3549}," total",[850,3690,3554],{"class":3553},[850,3692,3693],{"class":856}," countRecords",[850,3695,3600],{"class":2338},[850,3697,3603],{"class":2342},[850,3699,1319],{"class":2338},[850,3701,3608],{"class":2342},[850,3703,3619],{"class":2338},[850,3705,3706,3708,3710,3712,3715,3717,3719,3721,3723,3725,3727,3729,3731],{"class":852,"line":1451},[850,3707,3546],{"class":3545},[850,3709,3072],{"class":3549},[850,3711,3554],{"class":3553},[850,3713,3714],{"class":856}," doesExist",[850,3716,3600],{"class":2338},[850,3718,3603],{"class":2342},[850,3720,1319],{"class":2338},[850,3722,3608],{"class":2342},[850,3724,1319],{"class":2338},[850,3726,2358],{"class":1364},[850,3728,3079],{"class":859},[850,3730,2358],{"class":1364},[850,3732,3619],{"class":2338},[3734,3735,3736],"caution",{},[821,3737,823,3738,3740],{},[825,3739,2739],{}," operation permanently deletes the database and cannot be undone.",[1053,3742],{},[1056,3744,3746,1742],{"id":3745},"types-subcommand",[825,3747,3748],{},"types",[821,3750,3751],{},"Generates standalone TypeScript type definitions from JSON files or raw JSON strings without compiling a database.",[1066,3753,3754,3764],{},[1069,3755,3756],{},[1072,3757,3758,3760,3762],{},[1075,3759,1754],{},[1075,3761,1757],{},[1075,3763,1080],{},[1082,3765,3766,3777,3790,3807],{},[1072,3767,3768,3772,3774],{},[1087,3769,3770],{},[825,3771,1768],{},[1087,3773,1771],{},[1087,3775,3776],{},"One or more JSON file paths or raw JSON strings, separated by spaces.",[1072,3778,3779,3783,3785],{},[1087,3780,3781],{},[825,3782,1821],{},[1087,3784,1824],{},[1087,3786,3787,3789],{},[1794,3788,1796],{}," Base name for the generated type file.",[1072,3791,3792,3796,3798],{},[1087,3793,3794],{},[825,3795,1836],{},[1087,3797,1824],{},[1087,3799,3800,3801,3804,3805,1289],{},"Directory to save the generated ",[825,3802,3803],{},".ts"," file. Defaults to ",[825,3806,1844],{},[1072,3808,3809,3815,3817],{},[1087,3810,3811,1319,3813],{},[825,3812,834],{},[825,3814,1322],{},[1087,3816,1870],{},[1087,3818,2802],{},[837,3820,3821,3920,3991,4056,4121],{},[840,3822,3824],{"className":842,"code":3823,"filename":844,"language":845,"meta":846,"style":846},"# From a JSON file\npnpm dlx @riavzon\u002Fshield-base types --name myData --outputDir .\u002Fsrc\u002Ftypes data.json\n\n# From a raw JSON string\npnpm dlx @riavzon\u002Fshield-base types --name myData --outputDir .\u002Fsrc\u002Ftypes '{\"key\": \"value\", \"count\": 1}'\n\n# Batch: multiple inputs\npnpm dlx @riavzon\u002Fshield-base types --name batchTypes --outputDir .\u002Fsrc\u002Ftypes file1.json file2.json\n",[825,3825,3826,3831,3853,3857,3862,3888,3892,3897],{"__ignoreMap":846},[850,3827,3828],{"class":852,"line":853},[850,3829,3830],{"class":1343},"# From a JSON file\n",[850,3832,3833,3835,3837,3839,3841,3843,3846,3848,3851],{"class":852,"line":870},[850,3834,844],{"class":856},[850,3836,860],{"class":859},[850,3838,863],{"class":859},[850,3840,907],{"class":859},[850,3842,1917],{"class":866},[850,3844,3845],{"class":859}," myData",[850,3847,1923],{"class":866},[850,3849,3850],{"class":859}," .\u002Fsrc\u002Ftypes",[850,3852,2034],{"class":859},[850,3854,3855],{"class":852,"line":884},[850,3856,1379],{"emptyLinePlaceholder":8},[850,3858,3859],{"class":852,"line":898},[850,3860,3861],{"class":1343},"# From a raw JSON string\n",[850,3863,3864,3866,3868,3870,3872,3874,3876,3878,3880,3882,3885],{"class":852,"line":1387},[850,3865,844],{"class":856},[850,3867,860],{"class":859},[850,3869,863],{"class":859},[850,3871,907],{"class":859},[850,3873,1917],{"class":866},[850,3875,3845],{"class":859},[850,3877,1923],{"class":866},[850,3879,3850],{"class":859},[850,3881,2352],{"class":1364},[850,3883,3884],{"class":859},"{\"key\": \"value\", \"count\": 1}",[850,3886,3887],{"class":1364},"'\n",[850,3889,3890],{"class":852,"line":1402},[850,3891,1379],{"emptyLinePlaceholder":8},[850,3893,3894],{"class":852,"line":1407},[850,3895,3896],{"class":1343},"# Batch: multiple inputs\n",[850,3898,3899,3901,3903,3905,3907,3909,3912,3914,3916,3918],{"class":852,"line":1413},[850,3900,844],{"class":856},[850,3902,860],{"class":859},[850,3904,863],{"class":859},[850,3906,907],{"class":859},[850,3908,1917],{"class":866},[850,3910,3911],{"class":859}," batchTypes",[850,3913,1923],{"class":866},[850,3915,3850],{"class":859},[850,3917,1998],{"class":859},[850,3919,2001],{"class":859},[840,3921,3923],{"className":842,"code":3922,"filename":913,"language":845,"meta":846,"style":846},"yarn dlx @riavzon\u002Fshield-base types --name myData --outputDir .\u002Fsrc\u002Ftypes data.json\nyarn dlx @riavzon\u002Fshield-base types --name myData --outputDir .\u002Fsrc\u002Ftypes '{\"key\": \"value\", \"count\": 1}'\nyarn dlx @riavzon\u002Fshield-base types --name batchTypes --outputDir .\u002Fsrc\u002Ftypes file1.json file2.json\n",[825,3924,3925,3945,3969],{"__ignoreMap":846},[850,3926,3927,3929,3931,3933,3935,3937,3939,3941,3943],{"class":852,"line":853},[850,3928,913],{"class":856},[850,3930,860],{"class":859},[850,3932,863],{"class":859},[850,3934,907],{"class":859},[850,3936,1917],{"class":866},[850,3938,3845],{"class":859},[850,3940,1923],{"class":866},[850,3942,3850],{"class":859},[850,3944,2034],{"class":859},[850,3946,3947,3949,3951,3953,3955,3957,3959,3961,3963,3965,3967],{"class":852,"line":870},[850,3948,913],{"class":856},[850,3950,860],{"class":859},[850,3952,863],{"class":859},[850,3954,907],{"class":859},[850,3956,1917],{"class":866},[850,3958,3845],{"class":859},[850,3960,1923],{"class":866},[850,3962,3850],{"class":859},[850,3964,2352],{"class":1364},[850,3966,3884],{"class":859},[850,3968,3887],{"class":1364},[850,3970,3971,3973,3975,3977,3979,3981,3983,3985,3987,3989],{"class":852,"line":884},[850,3972,913],{"class":856},[850,3974,860],{"class":859},[850,3976,863],{"class":859},[850,3978,907],{"class":859},[850,3980,1917],{"class":866},[850,3982,3911],{"class":859},[850,3984,1923],{"class":866},[850,3986,3850],{"class":859},[850,3988,1998],{"class":859},[850,3990,2001],{"class":859},[840,3992,3994],{"className":842,"code":3993,"filename":965,"language":845,"meta":846,"style":846},"npx @riavzon\u002Fshield-base types --name myData --outputDir .\u002Fsrc\u002Ftypes data.json\nnpx @riavzon\u002Fshield-base types --name myData --outputDir .\u002Fsrc\u002Ftypes '{\"key\": \"value\", \"count\": 1}'\nnpx @riavzon\u002Fshield-base types --name batchTypes --outputDir .\u002Fsrc\u002Ftypes file1.json file2.json\n",[825,3995,3996,4014,4036],{"__ignoreMap":846},[850,3997,3998,4000,4002,4004,4006,4008,4010,4012],{"class":852,"line":853},[850,3999,972],{"class":856},[850,4001,863],{"class":859},[850,4003,907],{"class":859},[850,4005,1917],{"class":866},[850,4007,3845],{"class":859},[850,4009,1923],{"class":866},[850,4011,3850],{"class":859},[850,4013,2034],{"class":859},[850,4015,4016,4018,4020,4022,4024,4026,4028,4030,4032,4034],{"class":852,"line":870},[850,4017,972],{"class":856},[850,4019,863],{"class":859},[850,4021,907],{"class":859},[850,4023,1917],{"class":866},[850,4025,3845],{"class":859},[850,4027,1923],{"class":866},[850,4029,3850],{"class":859},[850,4031,2352],{"class":1364},[850,4033,3884],{"class":859},[850,4035,3887],{"class":1364},[850,4037,4038,4040,4042,4044,4046,4048,4050,4052,4054],{"class":852,"line":884},[850,4039,972],{"class":856},[850,4041,863],{"class":859},[850,4043,907],{"class":859},[850,4045,1917],{"class":866},[850,4047,3911],{"class":859},[850,4049,1923],{"class":866},[850,4051,3850],{"class":859},[850,4053,1998],{"class":859},[850,4055,2001],{"class":859},[840,4057,4059],{"className":842,"code":4058,"filename":1010,"language":845,"meta":846,"style":846},"bunx @riavzon\u002Fshield-base types --name myData --outputDir .\u002Fsrc\u002Ftypes data.json\nbunx @riavzon\u002Fshield-base types --name myData --outputDir .\u002Fsrc\u002Ftypes '{\"key\": \"value\", \"count\": 1}'\nbunx @riavzon\u002Fshield-base types --name batchTypes --outputDir .\u002Fsrc\u002Ftypes file1.json file2.json\n",[825,4060,4061,4079,4101],{"__ignoreMap":846},[850,4062,4063,4065,4067,4069,4071,4073,4075,4077],{"class":852,"line":853},[850,4064,1017],{"class":856},[850,4066,863],{"class":859},[850,4068,907],{"class":859},[850,4070,1917],{"class":866},[850,4072,3845],{"class":859},[850,4074,1923],{"class":866},[850,4076,3850],{"class":859},[850,4078,2034],{"class":859},[850,4080,4081,4083,4085,4087,4089,4091,4093,4095,4097,4099],{"class":852,"line":870},[850,4082,1017],{"class":856},[850,4084,863],{"class":859},[850,4086,907],{"class":859},[850,4088,1917],{"class":866},[850,4090,3845],{"class":859},[850,4092,1923],{"class":866},[850,4094,3850],{"class":859},[850,4096,2352],{"class":1364},[850,4098,3884],{"class":859},[850,4100,3887],{"class":1364},[850,4102,4103,4105,4107,4109,4111,4113,4115,4117,4119],{"class":852,"line":884},[850,4104,1017],{"class":856},[850,4106,863],{"class":859},[850,4108,907],{"class":859},[850,4110,1917],{"class":866},[850,4112,3911],{"class":859},[850,4114,1923],{"class":866},[850,4116,3850],{"class":859},[850,4118,1998],{"class":859},[850,4120,2001],{"class":859},[840,4122,4124],{"className":2324,"code":4123,"filename":2326,"language":2327,"meta":846,"style":846},"import { generateTypeFile } from '@riavzon\u002Fshield-base';\n\n\u002F\u002F From a file path\ngenerateTypeFile('.\u002Fdata.json', 'myData', '.\u002Fsrc\u002Ftypes');\n\n\u002F\u002F From a raw JSON string\ngenerateTypeFile('{\"id\": 1, \"value\": \"example\"}', 'myData', '.\u002Fsrc\u002Ftypes');\n\n\u002F\u002F From a JavaScript object in memory\nconst data = { id: 1, value: 'example', tags: ['a', 'b'] };\ngenerateTypeFile(data, 'myData', '.\u002Fsrc\u002Ftypes');\n",[825,4125,4126,4147,4151,4156,4189,4193,4198,4229,4233,4238,4299],{"__ignoreMap":846},[850,4127,4128,4130,4132,4135,4137,4139,4141,4143,4145],{"class":852,"line":853},[850,4129,2335],{"class":2334},[850,4131,2339],{"class":2338},[850,4133,4134],{"class":2342},"generateTypeFile",[850,4136,2346],{"class":2338},[850,4138,2349],{"class":2334},[850,4140,2352],{"class":1364},[850,4142,2355],{"class":859},[850,4144,2358],{"class":1364},[850,4146,2361],{"class":2338},[850,4148,4149],{"class":852,"line":870},[850,4150,1379],{"emptyLinePlaceholder":8},[850,4152,4153],{"class":852,"line":884},[850,4154,4155],{"class":1343},"\u002F\u002F From a file path\n",[850,4157,4158,4160,4162,4164,4167,4169,4171,4173,4176,4178,4180,4182,4185,4187],{"class":852,"line":898},[850,4159,4134],{"class":856},[850,4161,3600],{"class":2338},[850,4163,2358],{"class":1364},[850,4165,4166],{"class":859},".\u002Fdata.json",[850,4168,2358],{"class":1364},[850,4170,1319],{"class":2338},[850,4172,2358],{"class":1364},[850,4174,4175],{"class":859},"myData",[850,4177,2358],{"class":1364},[850,4179,1319],{"class":2338},[850,4181,2358],{"class":1364},[850,4183,4184],{"class":859},".\u002Fsrc\u002Ftypes",[850,4186,2358],{"class":1364},[850,4188,3619],{"class":2338},[850,4190,4191],{"class":852,"line":1387},[850,4192,1379],{"emptyLinePlaceholder":8},[850,4194,4195],{"class":852,"line":1402},[850,4196,4197],{"class":1343},"\u002F\u002F From a raw JSON string\n",[850,4199,4200,4202,4204,4206,4209,4211,4213,4215,4217,4219,4221,4223,4225,4227],{"class":852,"line":1407},[850,4201,4134],{"class":856},[850,4203,3600],{"class":2338},[850,4205,2358],{"class":1364},[850,4207,4208],{"class":859},"{\"id\": 1, \"value\": \"example\"}",[850,4210,2358],{"class":1364},[850,4212,1319],{"class":2338},[850,4214,2358],{"class":1364},[850,4216,4175],{"class":859},[850,4218,2358],{"class":1364},[850,4220,1319],{"class":2338},[850,4222,2358],{"class":1364},[850,4224,4184],{"class":859},[850,4226,2358],{"class":1364},[850,4228,3619],{"class":2338},[850,4230,4231],{"class":852,"line":1413},[850,4232,1379],{"emptyLinePlaceholder":8},[850,4234,4235],{"class":852,"line":1446},[850,4236,4237],{"class":1343},"\u002F\u002F From a JavaScript object in memory\n",[850,4239,4240,4242,4245,4247,4249,4251,4253,4256,4258,4261,4263,4265,4268,4270,4272,4275,4277,4280,4282,4285,4287,4289,4291,4294,4296],{"class":852,"line":1451},[850,4241,3546],{"class":3545},[850,4243,4244],{"class":3549}," data",[850,4246,3554],{"class":3553},[850,4248,2339],{"class":2338},[850,4250,1813],{"class":2342},[850,4252,2390],{"class":2389},[850,4254,4255],{"class":2965}," 1",[850,4257,1319],{"class":2338},[850,4259,4260],{"class":2342},"value",[850,4262,2390],{"class":2389},[850,4264,2352],{"class":1364},[850,4266,4267],{"class":859},"example",[850,4269,2358],{"class":1364},[850,4271,1319],{"class":2338},[850,4273,4274],{"class":2342},"tags",[850,4276,2390],{"class":2389},[850,4278,4279],{"class":2338}," [",[850,4281,2358],{"class":1364},[850,4283,4284],{"class":859},"a",[850,4286,2358],{"class":1364},[850,4288,1319],{"class":2338},[850,4290,2358],{"class":1364},[850,4292,4293],{"class":859},"b",[850,4295,2358],{"class":1364},[850,4297,4298],{"class":2338},"] };\n",[850,4300,4301,4303,4305,4308,4310,4312,4314,4316,4318,4320,4322,4324],{"class":852,"line":1457},[850,4302,4134],{"class":856},[850,4304,3600],{"class":2338},[850,4306,4307],{"class":2342},"data",[850,4309,1319],{"class":2338},[850,4311,2358],{"class":1364},[850,4313,4175],{"class":859},[850,4315,2358],{"class":1364},[850,4317,1319],{"class":2338},[850,4319,2358],{"class":1364},[850,4321,4184],{"class":859},[850,4323,2358],{"class":1364},[850,4325,3619],{"class":2338},[821,4327,4328,4329,4332,4333,1319,4336,4339],{},"Output files are named ",[825,4330,4331],{},"\u003Cname>Types.ts",". Batch inputs produce indexed files: ",[825,4334,4335],{},"batchTypesTypes.ts",[825,4337,4338],{},"batchTypes-1Types.ts",", and so on.",[4341,4342,4343],"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 .sghk6, html code.shiki .sghk6{--shiki-light:#008000;--shiki-default:#008000;--shiki-dark:#6272A4}html pre.shiki code .sFkSl, html code.shiki .sFkSl{--shiki-light:#A31515;--shiki-default:#A31515;--shiki-dark:#E9F284}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 .s34zl, html code.shiki .s34zl{--shiki-light:#001080;--shiki-default:#001080;--shiki-dark:#FF79C6}html pre.shiki code .spgvN, html code.shiki .spgvN{--shiki-light:#098658;--shiki-default:#098658;--shiki-dark:#BD93F9}html pre.shiki code .sl46w, html code.shiki .sl46w{--shiki-light:#0000FF;--shiki-default:#0000FF;--shiki-dark:#FF79C6}html pre.shiki code .s3JHE, html code.shiki .s3JHE{--shiki-light:#0070C1;--shiki-default:#0070C1;--shiki-dark:#F8F8F2}html pre.shiki code .saOXh, html code.shiki .saOXh{--shiki-light:#000000;--shiki-default:#000000;--shiki-dark:#FF79C6}",{"title":846,"searchDepth":870,"depth":870,"links":4345},[4346,4350,4351,4353,4355],{"id":1058,"depth":870,"text":1059,"children":4347},[4348,4349],{"id":1063,"depth":884,"text":1064},{"id":1227,"depth":884,"text":1228},{"id":1330,"depth":870,"text":1331},{"id":1738,"depth":870,"text":4352},"compile Subcommand",{"id":2647,"depth":870,"text":4354},"lm-read Subcommand",{"id":3745,"depth":870,"text":4356},"types Subcommand","Complete reference for the shield-base command, all global flags, and the compile, types, and lm-read subcommands.","md","i-lucide-terminal",{},null,"---\ntitle: CLI Reference\ndescription: Complete reference for the shield-base command, all global flags, and the compile, types, and lm-read subcommands.\nicon: i-lucide-terminal\n---\n\nThe `shield-base` command is the primary entry point. Running it without arguments starts the interactive wizard. You can also drive it entirely from flags for CI\u002FCD pipelines and automated scripts.\n\nUse `--help` on any command or subcommand to print available options:\n\n::code-group\n```bash [pnpm]\npnpm dlx @riavzon\u002Fshield-base --help\npnpm dlx @riavzon\u002Fshield-base compile --help\npnpm dlx @riavzon\u002Fshield-base lm-read --help\npnpm dlx @riavzon\u002Fshield-base types --help\n```\n\n```bash [yarn]\nyarn dlx @riavzon\u002Fshield-base --help\nyarn dlx @riavzon\u002Fshield-base compile --help\nyarn dlx @riavzon\u002Fshield-base lm-read --help\nyarn dlx @riavzon\u002Fshield-base types --help\n```\n\n```bash [npm]\nnpx @riavzon\u002Fshield-base --help\nnpx @riavzon\u002Fshield-base compile --help\nnpx @riavzon\u002Fshield-base lm-read --help\nnpx @riavzon\u002Fshield-base types --help\n```\n\n```bash [bun]\nbunx @riavzon\u002Fshield-base --help\nbunx @riavzon\u002Fshield-base compile --help\nbunx @riavzon\u002Fshield-base lm-read --help\nbunx @riavzon\u002Fshield-base types --help\n```\n::\n\n---\n\n## Global Flags\n\n### Source Selection\n\n| Flag | Description |\n| --- | --- |\n| `--all` | Skip interactive selection and fetch all available sources. |\n| `--bgp` | Compile BGP\u002FASN routing data. |\n| `--city` | Compile IP-to-city geolocation data. |\n| `--geo` | Compile IP-to-country geolocation data. |\n| `--proxy` | Compile proxy and anonymizer IP lists. |\n| `--tor` | Compile Tor relay and exit node data. |\n| `--seo` | Compile verified search engine crawler IP ranges. |\n| `--useragent` | Compile suspicious HTTP user-agent patterns into LMDB. |\n| `--email` | Compile the disposable email domain blocklist into LMDB. |\n| `--l1` | Compile FireHOL Level 1 threat intelligence. |\n| `--l2` | Compile FireHOL Level 2 threat intelligence. |\n| `--l3` | Compile FireHOL Level 3 threat intelligence. |\n| `--l4` | Compile FireHOL Level 4 threat intelligence. |\n| `--anonymous` | Compile the FireHOL anonymity network list (Tor exits, I2P, VPNs). |\n\n### Control Flags\n\n| Flag | Description |\n| --- | --- |\n| `--parallel` | Run all compilation jobs concurrently. |\n| `--refresh` | Force re-download of previously compiled sources using cached config. |\n| `--refreshAll` | Force re-download and recompilation of all sources using cached config. |\n| `--acceptFireholRisk` | Acknowledge the FireHOL license. Required for `--l1` through `--l4` and `--anonymous`. |\n| `--contact \u003Cstr>` | BGP.tools contact string. Required format: `\u003Cname> [url] - \u003Cemail>`. |\n| `--path \u003Cdir>` | Output directory for compiled databases. Defaults to the current working directory. |\n| `--help`, `-h` | Show help for the main command or a subcommand. |\n\n---\n\n## Examples\n\n::code-group\n```bash [pnpm]\n# Compile everything in parallel, non-interactively\npnpm dlx @riavzon\u002Fshield-base --all --parallel --contact \"Name https:\u002F\u002Fexample.com - you@example.com\" --acceptFireholRisk\n\n# Compile only Tor and proxy data\npnpm dlx @riavzon\u002Fshield-base --tor --proxy\n\n# Compile BGP and FireHOL Level 1 to a specific directory\npnpm dlx @riavzon\u002Fshield-base --bgp --l1 --acceptFireholRisk --contact \"Name - you@example.com\" --path .\u002Fdata\u002Fmmdb\n\n# Refresh all previously compiled sources\npnpm dlx @riavzon\u002Fshield-base --refreshAll\n\n# Compile LMDB sources only (no mmdbctl needed)\npnpm dlx @riavzon\u002Fshield-base --useragent --email\n```\n\n```bash [yarn]\nyarn dlx @riavzon\u002Fshield-base --all --parallel --contact \"Name https:\u002F\u002Fexample.com - you@example.com\" --acceptFireholRisk\nyarn dlx @riavzon\u002Fshield-base --tor --proxy\nyarn dlx @riavzon\u002Fshield-base --bgp --l1 --acceptFireholRisk --contact \"Name - you@example.com\" --path .\u002Fdata\u002Fmmdb\nyarn dlx @riavzon\u002Fshield-base --refreshAll\nyarn dlx @riavzon\u002Fshield-base --useragent --email\n```\n\n```bash [npm]\nnpx @riavzon\u002Fshield-base --all --parallel --contact \"Name https:\u002F\u002Fexample.com - you@example.com\" --acceptFireholRisk\nnpx @riavzon\u002Fshield-base --tor --proxy\nnpx @riavzon\u002Fshield-base --bgp --l1 --acceptFireholRisk --contact \"Name - you@example.com\" --path .\u002Fdata\u002Fmmdb\nnpx @riavzon\u002Fshield-base --refreshAll\nnpx @riavzon\u002Fshield-base --useragent --email\n```\n\n```bash [bun]\nbunx @riavzon\u002Fshield-base --all --parallel --contact \"Name https:\u002F\u002Fexample.com - you@example.com\" --acceptFireholRisk\nbunx @riavzon\u002Fshield-base --tor --proxy\nbunx @riavzon\u002Fshield-base --bgp --l1 --acceptFireholRisk --contact \"Name - you@example.com\" --path .\u002Fdata\u002Fmmdb\nbunx @riavzon\u002Fshield-base --refreshAll\nbunx @riavzon\u002Fshield-base --useragent --email\n```\n::\n\n---\n\n## `compile` Subcommand\n\nGenerates MMDB or LMDB databases and TypeScript types from your own JSON data files.\n\n| Argument \u002F Flag | Type | Description |\n| --- | --- | --- |\n| `\u003CINPUT>` | Positional | One or more paths to JSON data files, separated by spaces. |\n| `--type` | `mmdb` \\| `lmdb` | **Required.** Use `mmdb` for IP range data (`range` field required). Use `lmdb` for key-value data (`key` or `id` field required). |\n| `--name` | string | **Required.** Base name for the output files. |\n| `--outputDir` | string | Directory to save the compiled files. Defaults to `.\u002F`. |\n| `--types` | boolean | Generate TypeScript type definitions. Defaults to `true`. |\n| `--no-types` | flag | Disable TypeScript type generation. |\n| `--help`, `-h` | flag | Show help for this subcommand. |\n\n::code-group\n```bash [pnpm]\n# Compile a single MMDB database\npnpm dlx @riavzon\u002Fshield-base compile --type mmdb --name myRanges --outputDir .\u002Fout example.json\n\n# Compile a single LMDB database\npnpm dlx @riavzon\u002Fshield-base compile --type lmdb --name myKeys --outputDir .\u002Fout example.json\n\n# Compile multiple JSON files (batch)\npnpm dlx @riavzon\u002Fshield-base compile --type mmdb --name myRanges --outputDir .\u002Fout file1.json file2.json\n\n# Disable type generation\npnpm dlx @riavzon\u002Fshield-base compile --type lmdb --name myKeys --no-types data.json\n```\n\n```bash [yarn]\nyarn dlx @riavzon\u002Fshield-base compile --type mmdb --name myRanges --outputDir .\u002Fout example.json\nyarn dlx @riavzon\u002Fshield-base compile --type lmdb --name myKeys --outputDir .\u002Fout example.json\nyarn dlx @riavzon\u002Fshield-base compile --type mmdb --name myRanges --outputDir .\u002Fout file1.json file2.json\nyarn dlx @riavzon\u002Fshield-base compile --type lmdb --name myKeys --no-types data.json\n```\n\n```bash [npm]\nnpx @riavzon\u002Fshield-base compile --type mmdb --name myRanges --outputDir .\u002Fout example.json\nnpx @riavzon\u002Fshield-base compile --type lmdb --name myKeys --outputDir .\u002Fout example.json\nnpx @riavzon\u002Fshield-base compile --type mmdb --name myRanges --outputDir .\u002Fout file1.json file2.json\nnpx @riavzon\u002Fshield-base compile --type lmdb --name myKeys --no-types data.json\n```\n\n```bash [bun]\nbunx @riavzon\u002Fshield-base compile --type mmdb --name myRanges --outputDir .\u002Fout example.json\nbunx @riavzon\u002Fshield-base compile --type lmdb --name myKeys --outputDir .\u002Fout example.json\nbunx @riavzon\u002Fshield-base compile --type mmdb --name myRanges --outputDir .\u002Fout file1.json file2.json\nbunx @riavzon\u002Fshield-base compile --type lmdb --name myKeys --no-types data.json\n```\n```ts [Programmatic]\nimport { compiler } from '@riavzon\u002Fshield-base';\n\n\u002F\u002F MMDB (IP range data)\nawait compiler({\n  type: 'mmdb',\n  input: {\n    data: 'example.json',\n    dataBaseName: 'myRanges',\n    mmdbPath: 'mmdbctl',\n    outputPath: '.\u002Fout',\n    generateTypes: true,\n  },\n});\n\n\u002F\u002F LMDB (key-value data)\nawait compiler({\n  type: 'lmdb',\n  input: {\n    data: 'example.json',\n    dataBaseName: 'myKeys',\n    outputPath: '.\u002Fout',\n    generateTypes: true,\n  },\n});\n```\n::\n\nWhen processing multiple input files, the first output uses your `--name` (for example, `myRanges.mmdb`), and subsequent files are indexed (`myRanges-1.mmdb`, `myRanges-2.mmdb`).\n\n::note\nFor `mmdb`, every record in the JSON input must contain a `range` field with an IPv4\u002FIPv6 address or CIDR range. For `lmdb`, every record must contain a `key` or `id` field used as the lookup key.\n::\n\n---\n\n## `lm-read` Subcommand\n\nReads and inspects data from an LMDB `.mdb` database. Pass the full path to the `.mdb` environment directory, not its parent.\n\n| Flag | Type | Description |\n| --- | --- | --- |\n| `--path` | string | **Required.** Full path to the `.mdb` database file. |\n| `--name` | string | **Required.** Name of the LMDB sub-database. |\n| `--operation` | enum | **Required.** One of `get`, `range`, `prefix`, `count`, `exists`, `stats`, `drop`. |\n| `--key` | string | Exact key to look up. Required for `get` and `exists`. |\n| `--prefix` | string | Key prefix to search. Required for `prefix`. |\n| `--limit` | string | Maximum records to return. Used by `range` and `prefix`. Defaults to `10`. |\n| `--help`, `-h` | flag | Show help. |\n\n| Operation | Description |\n| --- | --- |\n| `get` | Retrieve a single record by exact key. |\n| `range` | Return the first N records in B-tree order. |\n| `prefix` | Find all keys starting with the given prefix. |\n| `count` | Count total records in the database. |\n| `exists` | Check whether a key exists. |\n| `stats` | Print LMDB environment statistics (page size, depth, record count). |\n| `drop` | Permanently delete the database. Irreversible. |\n\n::code-group\n```bash [pnpm]\n# Get a record by exact key\npnpm dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation get --key \"sqlmap\"\n\n# List the first 5 records in B-tree order\npnpm dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation range --limit 5\n\n# Find all keys starting with a prefix\npnpm dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation prefix --prefix \"curl\"\n\n# Count all records\npnpm dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation count\n\n# Check if a key exists\npnpm dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation exists --key \"nmap\"\n```\n\n```bash [yarn]\nyarn dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation get --key \"sqlmap\"\nyarn dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation range --limit 5\nyarn dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation prefix --prefix \"curl\"\nyarn dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation count\nyarn dlx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation exists --key \"nmap\"\n```\n\n```bash [npm]\nnpx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation get --key \"sqlmap\"\nnpx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation range --limit 5\nnpx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation prefix --prefix \"curl\"\nnpx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation count\nnpx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation exists --key \"nmap\"\n```\n\n```bash [bun]\nbunx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation get --key \"sqlmap\"\nbunx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation range --limit 5\nbunx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation prefix --prefix \"curl\"\nbunx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation count\nbunx @riavzon\u002Fshield-base lm-read --path .\u002Fout\u002Fuseragent.mdb --name useragent --operation exists --key \"nmap\"\n```\n```ts [Programmatic]\nimport { getByKey, getRange, getByPrefix, countRecords, doesExist } from '@riavzon\u002Fshield-base';\n\nconst dbPath = '.\u002Fout\u002Fuseragent.mdb';\nconst dbName = 'useragent';\n\nconst record = getByKey(dbPath, dbName, 'sqlmap');\nconst first5 = getRange(dbPath, dbName, 5);\nconst curlMatches = getByPrefix(dbPath, dbName, 'curl', 20);\nconst total = countRecords(dbPath, dbName);\nconst exists = doesExist(dbPath, dbName, 'nmap');\n```\n::\n\n::caution\nThe `drop` operation permanently deletes the database and cannot be undone.\n::\n\n---\n\n## `types` Subcommand\n\nGenerates standalone TypeScript type definitions from JSON files or raw JSON strings without compiling a database.\n\n| Argument \u002F Flag | Type | Description |\n| --- | --- | --- |\n| `\u003CINPUT>` | Positional | One or more JSON file paths or raw JSON strings, separated by spaces. |\n| `--name` | string | **Required.** Base name for the generated type file. |\n| `--outputDir` | string | Directory to save the generated `.ts` file. Defaults to `.\u002F`. |\n| `--help`, `-h` | flag | Show help. |\n\n::code-group\n```bash [pnpm]\n# From a JSON file\npnpm dlx @riavzon\u002Fshield-base types --name myData --outputDir .\u002Fsrc\u002Ftypes data.json\n\n# From a raw JSON string\npnpm dlx @riavzon\u002Fshield-base types --name myData --outputDir .\u002Fsrc\u002Ftypes '{\"key\": \"value\", \"count\": 1}'\n\n# Batch: multiple inputs\npnpm dlx @riavzon\u002Fshield-base types --name batchTypes --outputDir .\u002Fsrc\u002Ftypes file1.json file2.json\n```\n\n```bash [yarn]\nyarn dlx @riavzon\u002Fshield-base types --name myData --outputDir .\u002Fsrc\u002Ftypes data.json\nyarn dlx @riavzon\u002Fshield-base types --name myData --outputDir .\u002Fsrc\u002Ftypes '{\"key\": \"value\", \"count\": 1}'\nyarn dlx @riavzon\u002Fshield-base types --name batchTypes --outputDir .\u002Fsrc\u002Ftypes file1.json file2.json\n```\n\n```bash [npm]\nnpx @riavzon\u002Fshield-base types --name myData --outputDir .\u002Fsrc\u002Ftypes data.json\nnpx @riavzon\u002Fshield-base types --name myData --outputDir .\u002Fsrc\u002Ftypes '{\"key\": \"value\", \"count\": 1}'\nnpx @riavzon\u002Fshield-base types --name batchTypes --outputDir .\u002Fsrc\u002Ftypes file1.json file2.json\n```\n\n```bash [bun]\nbunx @riavzon\u002Fshield-base types --name myData --outputDir .\u002Fsrc\u002Ftypes data.json\nbunx @riavzon\u002Fshield-base types --name myData --outputDir .\u002Fsrc\u002Ftypes '{\"key\": \"value\", \"count\": 1}'\nbunx @riavzon\u002Fshield-base types --name batchTypes --outputDir .\u002Fsrc\u002Ftypes file1.json file2.json\n```\n```ts [Programmatic]\nimport { generateTypeFile } from '@riavzon\u002Fshield-base';\n\n\u002F\u002F From a file path\ngenerateTypeFile('.\u002Fdata.json', 'myData', '.\u002Fsrc\u002Ftypes');\n\n\u002F\u002F From a raw JSON string\ngenerateTypeFile('{\"id\": 1, \"value\": \"example\"}', 'myData', '.\u002Fsrc\u002Ftypes');\n\n\u002F\u002F From a JavaScript object in memory\nconst data = { id: 1, value: 'example', tags: ['a', 'b'] };\ngenerateTypeFile(data, 'myData', '.\u002Fsrc\u002Ftypes');\n```\n::\n\nOutput files are named `\u003Cname>Types.ts`. Batch inputs produce indexed files: `batchTypesTypes.ts`, `batchTypes-1Types.ts`, and so on.\n",{"title":77,"description":4357},"olDtyE9ImilZecGCDwv_KW5IdLfWnYxju6a11OfOxoI",[4366,4367],{"title":14,"path":74,"stem":75,"children":-1},{"title":81,"path":82,"stem":83,"children":-1},{"id":816,"title":77,"body":4369,"description":4357,"extension":4358,"icon":4359,"meta":7499,"module":4361,"navigation":8,"path":78,"rawbody":4362,"seo":7500,"stem":79,"__hash__":4364},{"type":818,"value":4370,"toc":7489},[4371,4375,4379,4565,4567,4569,4571,4695,4697,4775,4777,4779,5141,5143,5147,5149,5257,5905,5915,5929,5931,5935,5941,6061,6129,6927,6933,6935,6939,6941,7003,7479,7487],[821,4372,823,4373,828],{},[825,4374,827],{},[821,4376,831,4377,835],{},[825,4378,834],{},[837,4380,4381,4431,4481,4523],{},[840,4382,4383],{"className":842,"code":843,"filename":844,"language":845,"meta":846,"style":846},[825,4384,4385,4395,4407,4419],{"__ignoreMap":846},[850,4386,4387,4389,4391,4393],{"class":852,"line":853},[850,4388,844],{"class":856},[850,4390,860],{"class":859},[850,4392,863],{"class":859},[850,4394,867],{"class":866},[850,4396,4397,4399,4401,4403,4405],{"class":852,"line":870},[850,4398,844],{"class":856},[850,4400,860],{"class":859},[850,4402,863],{"class":859},[850,4404,879],{"class":859},[850,4406,867],{"class":866},[850,4408,4409,4411,4413,4415,4417],{"class":852,"line":884},[850,4410,844],{"class":856},[850,4412,860],{"class":859},[850,4414,863],{"class":859},[850,4416,893],{"class":859},[850,4418,867],{"class":866},[850,4420,4421,4423,4425,4427,4429],{"class":852,"line":898},[850,4422,844],{"class":856},[850,4424,860],{"class":859},[850,4426,863],{"class":859},[850,4428,907],{"class":859},[850,4430,867],{"class":866},[840,4432,4433],{"className":842,"code":912,"filename":913,"language":845,"meta":846,"style":846},[825,4434,4435,4445,4457,4469],{"__ignoreMap":846},[850,4436,4437,4439,4441,4443],{"class":852,"line":853},[850,4438,913],{"class":856},[850,4440,860],{"class":859},[850,4442,863],{"class":859},[850,4444,867],{"class":866},[850,4446,4447,4449,4451,4453,4455],{"class":852,"line":870},[850,4448,913],{"class":856},[850,4450,860],{"class":859},[850,4452,863],{"class":859},[850,4454,879],{"class":859},[850,4456,867],{"class":866},[850,4458,4459,4461,4463,4465,4467],{"class":852,"line":884},[850,4460,913],{"class":856},[850,4462,860],{"class":859},[850,4464,863],{"class":859},[850,4466,893],{"class":859},[850,4468,867],{"class":866},[850,4470,4471,4473,4475,4477,4479],{"class":852,"line":898},[850,4472,913],{"class":856},[850,4474,860],{"class":859},[850,4476,863],{"class":859},[850,4478,907],{"class":859},[850,4480,867],{"class":866},[840,4482,4483],{"className":842,"code":964,"filename":965,"language":845,"meta":846,"style":846},[825,4484,4485,4493,4503,4513],{"__ignoreMap":846},[850,4486,4487,4489,4491],{"class":852,"line":853},[850,4488,972],{"class":856},[850,4490,863],{"class":859},[850,4492,867],{"class":866},[850,4494,4495,4497,4499,4501],{"class":852,"line":870},[850,4496,972],{"class":856},[850,4498,863],{"class":859},[850,4500,879],{"class":859},[850,4502,867],{"class":866},[850,4504,4505,4507,4509,4511],{"class":852,"line":884},[850,4506,972],{"class":856},[850,4508,863],{"class":859},[850,4510,893],{"class":859},[850,4512,867],{"class":866},[850,4514,4515,4517,4519,4521],{"class":852,"line":898},[850,4516,972],{"class":856},[850,4518,863],{"class":859},[850,4520,907],{"class":859},[850,4522,867],{"class":866},[840,4524,4525],{"className":842,"code":1009,"filename":1010,"language":845,"meta":846,"style":846},[825,4526,4527,4535,4545,4555],{"__ignoreMap":846},[850,4528,4529,4531,4533],{"class":852,"line":853},[850,4530,1017],{"class":856},[850,4532,863],{"class":859},[850,4534,867],{"class":866},[850,4536,4537,4539,4541,4543],{"class":852,"line":870},[850,4538,1017],{"class":856},[850,4540,863],{"class":859},[850,4542,879],{"class":859},[850,4544,867],{"class":866},[850,4546,4547,4549,4551,4553],{"class":852,"line":884},[850,4548,1017],{"class":856},[850,4550,863],{"class":859},[850,4552,893],{"class":859},[850,4554,867],{"class":866},[850,4556,4557,4559,4561,4563],{"class":852,"line":898},[850,4558,1017],{"class":856},[850,4560,863],{"class":859},[850,4562,907],{"class":859},[850,4564,867],{"class":866},[1053,4566],{},[1056,4568,1059],{"id":1058},[1061,4570,1064],{"id":1063},[1066,4572,4573,4581],{},[1069,4574,4575],{},[1072,4576,4577,4579],{},[1075,4578,1077],{},[1075,4580,1080],{},[1082,4582,4583,4591,4599,4607,4615,4623,4631,4639,4647,4655,4663,4671,4679,4687],{},[1072,4584,4585,4589],{},[1087,4586,4587],{},[825,4588,1091],{},[1087,4590,1094],{},[1072,4592,4593,4597],{},[1087,4594,4595],{},[825,4596,1101],{},[1087,4598,1104],{},[1072,4600,4601,4605],{},[1087,4602,4603],{},[825,4604,1111],{},[1087,4606,1114],{},[1072,4608,4609,4613],{},[1087,4610,4611],{},[825,4612,1121],{},[1087,4614,1124],{},[1072,4616,4617,4621],{},[1087,4618,4619],{},[825,4620,1131],{},[1087,4622,1134],{},[1072,4624,4625,4629],{},[1087,4626,4627],{},[825,4628,1141],{},[1087,4630,1144],{},[1072,4632,4633,4637],{},[1087,4634,4635],{},[825,4636,1151],{},[1087,4638,1154],{},[1072,4640,4641,4645],{},[1087,4642,4643],{},[825,4644,1161],{},[1087,4646,1164],{},[1072,4648,4649,4653],{},[1087,4650,4651],{},[825,4652,1171],{},[1087,4654,1174],{},[1072,4656,4657,4661],{},[1087,4658,4659],{},[825,4660,1181],{},[1087,4662,1184],{},[1072,4664,4665,4669],{},[1087,4666,4667],{},[825,4668,1191],{},[1087,4670,1194],{},[1072,4672,4673,4677],{},[1087,4674,4675],{},[825,4676,1201],{},[1087,4678,1204],{},[1072,4680,4681,4685],{},[1087,4682,4683],{},[825,4684,1211],{},[1087,4686,1214],{},[1072,4688,4689,4693],{},[1087,4690,4691],{},[825,4692,1221],{},[1087,4694,1224],{},[1061,4696,1228],{"id":1227},[1066,4698,4699,4707],{},[1069,4700,4701],{},[1072,4702,4703,4705],{},[1075,4704,1077],{},[1075,4706,1080],{},[1082,4708,4709,4717,4725,4733,4747,4757,4765],{},[1072,4710,4711,4715],{},[1087,4712,4713],{},[825,4714,1247],{},[1087,4716,1250],{},[1072,4718,4719,4723],{},[1087,4720,4721],{},[825,4722,1257],{},[1087,4724,1260],{},[1072,4726,4727,4731],{},[1087,4728,4729],{},[825,4730,1267],{},[1087,4732,1270],{},[1072,4734,4735,4739],{},[1087,4736,4737],{},[825,4738,1277],{},[1087,4740,1280,4741,1283,4743,1286,4745,1289],{},[825,4742,1181],{},[825,4744,1211],{},[825,4746,1221],{},[1072,4748,4749,4753],{},[1087,4750,4751],{},[825,4752,1296],{},[1087,4754,1299,4755,1289],{},[825,4756,1302],{},[1072,4758,4759,4763],{},[1087,4760,4761],{},[825,4762,1309],{},[1087,4764,1312],{},[1072,4766,4767,4773],{},[1087,4768,4769,1319,4771],{},[825,4770,834],{},[825,4772,1322],{},[1087,4774,1325],{},[1053,4776],{},[1056,4778,1331],{"id":1330},[837,4780,4781,4903,4989,5065],{},[840,4782,4783],{"className":842,"code":1336,"filename":844,"language":845,"meta":846,"style":846},[825,4784,4785,4789,4811,4815,4819,4831,4835,4839,4865,4869,4873,4883,4887,4891],{"__ignoreMap":846},[850,4786,4787],{"class":852,"line":853},[850,4788,1344],{"class":1343},[850,4790,4791,4793,4795,4797,4799,4801,4803,4805,4807,4809],{"class":852,"line":870},[850,4792,844],{"class":856},[850,4794,860],{"class":859},[850,4796,863],{"class":859},[850,4798,1355],{"class":866},[850,4800,1358],{"class":866},[850,4802,1361],{"class":866},[850,4804,1365],{"class":1364},[850,4806,1368],{"class":859},[850,4808,1371],{"class":1364},[850,4810,1374],{"class":866},[850,4812,4813],{"class":852,"line":884},[850,4814,1379],{"emptyLinePlaceholder":8},[850,4816,4817],{"class":852,"line":898},[850,4818,1384],{"class":1343},[850,4820,4821,4823,4825,4827,4829],{"class":852,"line":1387},[850,4822,844],{"class":856},[850,4824,860],{"class":859},[850,4826,863],{"class":859},[850,4828,1396],{"class":866},[850,4830,1399],{"class":866},[850,4832,4833],{"class":852,"line":1402},[850,4834,1379],{"emptyLinePlaceholder":8},[850,4836,4837],{"class":852,"line":1407},[850,4838,1410],{"class":1343},[850,4840,4841,4843,4845,4847,4849,4851,4853,4855,4857,4859,4861,4863],{"class":852,"line":1413},[850,4842,844],{"class":856},[850,4844,860],{"class":859},[850,4846,863],{"class":859},[850,4848,1422],{"class":866},[850,4850,1425],{"class":866},[850,4852,1428],{"class":866},[850,4854,1361],{"class":866},[850,4856,1365],{"class":1364},[850,4858,1435],{"class":859},[850,4860,1371],{"class":1364},[850,4862,1440],{"class":866},[850,4864,1443],{"class":859},[850,4866,4867],{"class":852,"line":1446},[850,4868,1379],{"emptyLinePlaceholder":8},[850,4870,4871],{"class":852,"line":1451},[850,4872,1454],{"class":1343},[850,4874,4875,4877,4879,4881],{"class":852,"line":1457},[850,4876,844],{"class":856},[850,4878,860],{"class":859},[850,4880,863],{"class":859},[850,4882,1466],{"class":866},[850,4884,4885],{"class":852,"line":1469},[850,4886,1379],{"emptyLinePlaceholder":8},[850,4888,4889],{"class":852,"line":1474},[850,4890,1477],{"class":1343},[850,4892,4893,4895,4897,4899,4901],{"class":852,"line":1480},[850,4894,844],{"class":856},[850,4896,860],{"class":859},[850,4898,863],{"class":859},[850,4900,1489],{"class":866},[850,4902,1492],{"class":866},[840,4904,4905],{"className":842,"code":1495,"filename":913,"language":845,"meta":846,"style":846},[825,4906,4907,4929,4941,4967,4977],{"__ignoreMap":846},[850,4908,4909,4911,4913,4915,4917,4919,4921,4923,4925,4927],{"class":852,"line":853},[850,4910,913],{"class":856},[850,4912,860],{"class":859},[850,4914,863],{"class":859},[850,4916,1355],{"class":866},[850,4918,1358],{"class":866},[850,4920,1361],{"class":866},[850,4922,1365],{"class":1364},[850,4924,1368],{"class":859},[850,4926,1371],{"class":1364},[850,4928,1374],{"class":866},[850,4930,4931,4933,4935,4937,4939],{"class":852,"line":870},[850,4932,913],{"class":856},[850,4934,860],{"class":859},[850,4936,863],{"class":859},[850,4938,1396],{"class":866},[850,4940,1399],{"class":866},[850,4942,4943,4945,4947,4949,4951,4953,4955,4957,4959,4961,4963,4965],{"class":852,"line":884},[850,4944,913],{"class":856},[850,4946,860],{"class":859},[850,4948,863],{"class":859},[850,4950,1422],{"class":866},[850,4952,1425],{"class":866},[850,4954,1428],{"class":866},[850,4956,1361],{"class":866},[850,4958,1365],{"class":1364},[850,4960,1435],{"class":859},[850,4962,1371],{"class":1364},[850,4964,1440],{"class":866},[850,4966,1443],{"class":859},[850,4968,4969,4971,4973,4975],{"class":852,"line":898},[850,4970,913],{"class":856},[850,4972,860],{"class":859},[850,4974,863],{"class":859},[850,4976,1466],{"class":866},[850,4978,4979,4981,4983,4985,4987],{"class":852,"line":1387},[850,4980,913],{"class":856},[850,4982,860],{"class":859},[850,4984,863],{"class":859},[850,4986,1489],{"class":866},[850,4988,1492],{"class":866},[840,4990,4991],{"className":842,"code":1582,"filename":965,"language":845,"meta":846,"style":846},[825,4992,4993,5013,5023,5047,5055],{"__ignoreMap":846},[850,4994,4995,4997,4999,5001,5003,5005,5007,5009,5011],{"class":852,"line":853},[850,4996,972],{"class":856},[850,4998,863],{"class":859},[850,5000,1355],{"class":866},[850,5002,1358],{"class":866},[850,5004,1361],{"class":866},[850,5006,1365],{"class":1364},[850,5008,1368],{"class":859},[850,5010,1371],{"class":1364},[850,5012,1374],{"class":866},[850,5014,5015,5017,5019,5021],{"class":852,"line":870},[850,5016,972],{"class":856},[850,5018,863],{"class":859},[850,5020,1396],{"class":866},[850,5022,1399],{"class":866},[850,5024,5025,5027,5029,5031,5033,5035,5037,5039,5041,5043,5045],{"class":852,"line":884},[850,5026,972],{"class":856},[850,5028,863],{"class":859},[850,5030,1422],{"class":866},[850,5032,1425],{"class":866},[850,5034,1428],{"class":866},[850,5036,1361],{"class":866},[850,5038,1365],{"class":1364},[850,5040,1435],{"class":859},[850,5042,1371],{"class":1364},[850,5044,1440],{"class":866},[850,5046,1443],{"class":859},[850,5048,5049,5051,5053],{"class":852,"line":898},[850,5050,972],{"class":856},[850,5052,863],{"class":859},[850,5054,1466],{"class":866},[850,5056,5057,5059,5061,5063],{"class":852,"line":1387},[850,5058,972],{"class":856},[850,5060,863],{"class":859},[850,5062,1489],{"class":866},[850,5064,1492],{"class":866},[840,5066,5067],{"className":842,"code":1659,"filename":1010,"language":845,"meta":846,"style":846},[825,5068,5069,5089,5099,5123,5131],{"__ignoreMap":846},[850,5070,5071,5073,5075,5077,5079,5081,5083,5085,5087],{"class":852,"line":853},[850,5072,1017],{"class":856},[850,5074,863],{"class":859},[850,5076,1355],{"class":866},[850,5078,1358],{"class":866},[850,5080,1361],{"class":866},[850,5082,1365],{"class":1364},[850,5084,1368],{"class":859},[850,5086,1371],{"class":1364},[850,5088,1374],{"class":866},[850,5090,5091,5093,5095,5097],{"class":852,"line":870},[850,5092,1017],{"class":856},[850,5094,863],{"class":859},[850,5096,1396],{"class":866},[850,5098,1399],{"class":866},[850,5100,5101,5103,5105,5107,5109,5111,5113,5115,5117,5119,5121],{"class":852,"line":884},[850,5102,1017],{"class":856},[850,5104,863],{"class":859},[850,5106,1422],{"class":866},[850,5108,1425],{"class":866},[850,5110,1428],{"class":866},[850,5112,1361],{"class":866},[850,5114,1365],{"class":1364},[850,5116,1435],{"class":859},[850,5118,1371],{"class":1364},[850,5120,1440],{"class":866},[850,5122,1443],{"class":859},[850,5124,5125,5127,5129],{"class":852,"line":898},[850,5126,1017],{"class":856},[850,5128,863],{"class":859},[850,5130,1466],{"class":866},[850,5132,5133,5135,5137,5139],{"class":852,"line":1387},[850,5134,1017],{"class":856},[850,5136,863],{"class":859},[850,5138,1489],{"class":866},[850,5140,1492],{"class":866},[1053,5142],{},[1056,5144,5145,1742],{"id":1738},[825,5146,1741],{},[821,5148,1745],{},[1066,5150,5151,5161],{},[1069,5152,5153],{},[1072,5154,5155,5157,5159],{},[1075,5156,1754],{},[1075,5158,1757],{},[1075,5160,1080],{},[1082,5162,5163,5173,5199,5211,5223,5235,5245],{},[1072,5164,5165,5169,5171],{},[1087,5166,5167],{},[825,5168,1768],{},[1087,5170,1771],{},[1087,5172,1774],{},[1072,5174,5175,5179,5185],{},[1087,5176,5177],{},[825,5178,1781],{},[1087,5180,5181,1787,5183],{},[825,5182,1786],{},[825,5184,1790],{},[1087,5186,5187,1797,5189,1800,5191,1803,5193,1806,5195,1810,5197,1814],{},[1794,5188,1796],{},[825,5190,1786],{},[825,5192,741],{},[825,5194,1790],{},[825,5196,1809],{},[825,5198,1813],{},[1072,5200,5201,5205,5207],{},[1087,5202,5203],{},[825,5204,1821],{},[1087,5206,1824],{},[1087,5208,5209,1829],{},[1794,5210,1796],{},[1072,5212,5213,5217,5219],{},[1087,5214,5215],{},[825,5216,1836],{},[1087,5218,1824],{},[1087,5220,1841,5221,1289],{},[825,5222,1844],{},[1072,5224,5225,5229,5231],{},[1087,5226,5227],{},[825,5228,1851],{},[1087,5230,1854],{},[1087,5232,1857,5233,1289],{},[825,5234,1860],{},[1072,5236,5237,5241,5243],{},[1087,5238,5239],{},[825,5240,1867],{},[1087,5242,1870],{},[1087,5244,1873],{},[1072,5246,5247,5253,5255],{},[1087,5248,5249,1319,5251],{},[825,5250,834],{},[825,5252,1322],{},[1087,5254,1870],{},[1087,5256,1886],{},[837,5258,5259,5387,5487,5579,5671],{},[840,5260,5261],{"className":842,"code":1891,"filename":844,"language":845,"meta":846,"style":846},[825,5262,5263,5267,5291,5295,5299,5323,5327,5331,5357,5361,5365],{"__ignoreMap":846},[850,5264,5265],{"class":852,"line":853},[850,5266,1898],{"class":1343},[850,5268,5269,5271,5273,5275,5277,5279,5281,5283,5285,5287,5289],{"class":852,"line":870},[850,5270,844],{"class":856},[850,5272,860],{"class":859},[850,5274,863],{"class":859},[850,5276,879],{"class":859},[850,5278,1911],{"class":866},[850,5280,1914],{"class":859},[850,5282,1917],{"class":866},[850,5284,1920],{"class":859},[850,5286,1923],{"class":866},[850,5288,1926],{"class":859},[850,5290,1929],{"class":859},[850,5292,5293],{"class":852,"line":884},[850,5294,1379],{"emptyLinePlaceholder":8},[850,5296,5297],{"class":852,"line":898},[850,5298,1938],{"class":1343},[850,5300,5301,5303,5305,5307,5309,5311,5313,5315,5317,5319,5321],{"class":852,"line":1387},[850,5302,844],{"class":856},[850,5304,860],{"class":859},[850,5306,863],{"class":859},[850,5308,879],{"class":859},[850,5310,1911],{"class":866},[850,5312,1953],{"class":859},[850,5314,1917],{"class":866},[850,5316,1958],{"class":859},[850,5318,1923],{"class":866},[850,5320,1926],{"class":859},[850,5322,1929],{"class":859},[850,5324,5325],{"class":852,"line":1402},[850,5326,1379],{"emptyLinePlaceholder":8},[850,5328,5329],{"class":852,"line":1407},[850,5330,1973],{"class":1343},[850,5332,5333,5335,5337,5339,5341,5343,5345,5347,5349,5351,5353,5355],{"class":852,"line":1413},[850,5334,844],{"class":856},[850,5336,860],{"class":859},[850,5338,863],{"class":859},[850,5340,879],{"class":859},[850,5342,1911],{"class":866},[850,5344,1914],{"class":859},[850,5346,1917],{"class":866},[850,5348,1920],{"class":859},[850,5350,1923],{"class":866},[850,5352,1926],{"class":859},[850,5354,1998],{"class":859},[850,5356,2001],{"class":859},[850,5358,5359],{"class":852,"line":1446},[850,5360,1379],{"emptyLinePlaceholder":8},[850,5362,5363],{"class":852,"line":1451},[850,5364,2010],{"class":1343},[850,5366,5367,5369,5371,5373,5375,5377,5379,5381,5383,5385],{"class":852,"line":1457},[850,5368,844],{"class":856},[850,5370,860],{"class":859},[850,5372,863],{"class":859},[850,5374,879],{"class":859},[850,5376,1911],{"class":866},[850,5378,1953],{"class":859},[850,5380,1917],{"class":866},[850,5382,1958],{"class":859},[850,5384,2031],{"class":866},[850,5386,2034],{"class":859},[840,5388,5389],{"className":842,"code":2037,"filename":913,"language":845,"meta":846,"style":846},[825,5390,5391,5415,5439,5465],{"__ignoreMap":846},[850,5392,5393,5395,5397,5399,5401,5403,5405,5407,5409,5411,5413],{"class":852,"line":853},[850,5394,913],{"class":856},[850,5396,860],{"class":859},[850,5398,863],{"class":859},[850,5400,879],{"class":859},[850,5402,1911],{"class":866},[850,5404,1914],{"class":859},[850,5406,1917],{"class":866},[850,5408,1920],{"class":859},[850,5410,1923],{"class":866},[850,5412,1926],{"class":859},[850,5414,1929],{"class":859},[850,5416,5417,5419,5421,5423,5425,5427,5429,5431,5433,5435,5437],{"class":852,"line":870},[850,5418,913],{"class":856},[850,5420,860],{"class":859},[850,5422,863],{"class":859},[850,5424,879],{"class":859},[850,5426,1911],{"class":866},[850,5428,1953],{"class":859},[850,5430,1917],{"class":866},[850,5432,1958],{"class":859},[850,5434,1923],{"class":866},[850,5436,1926],{"class":859},[850,5438,1929],{"class":859},[850,5440,5441,5443,5445,5447,5449,5451,5453,5455,5457,5459,5461,5463],{"class":852,"line":884},[850,5442,913],{"class":856},[850,5444,860],{"class":859},[850,5446,863],{"class":859},[850,5448,879],{"class":859},[850,5450,1911],{"class":866},[850,5452,1914],{"class":859},[850,5454,1917],{"class":866},[850,5456,1920],{"class":859},[850,5458,1923],{"class":866},[850,5460,1926],{"class":859},[850,5462,1998],{"class":859},[850,5464,2001],{"class":859},[850,5466,5467,5469,5471,5473,5475,5477,5479,5481,5483,5485],{"class":852,"line":898},[850,5468,913],{"class":856},[850,5470,860],{"class":859},[850,5472,863],{"class":859},[850,5474,879],{"class":859},[850,5476,1911],{"class":866},[850,5478,1953],{"class":859},[850,5480,1917],{"class":866},[850,5482,1958],{"class":859},[850,5484,2031],{"class":866},[850,5486,2034],{"class":859},[840,5488,5489],{"className":842,"code":2138,"filename":965,"language":845,"meta":846,"style":846},[825,5490,5491,5513,5535,5559],{"__ignoreMap":846},[850,5492,5493,5495,5497,5499,5501,5503,5505,5507,5509,5511],{"class":852,"line":853},[850,5494,972],{"class":856},[850,5496,863],{"class":859},[850,5498,879],{"class":859},[850,5500,1911],{"class":866},[850,5502,1914],{"class":859},[850,5504,1917],{"class":866},[850,5506,1920],{"class":859},[850,5508,1923],{"class":866},[850,5510,1926],{"class":859},[850,5512,1929],{"class":859},[850,5514,5515,5517,5519,5521,5523,5525,5527,5529,5531,5533],{"class":852,"line":870},[850,5516,972],{"class":856},[850,5518,863],{"class":859},[850,5520,879],{"class":859},[850,5522,1911],{"class":866},[850,5524,1953],{"class":859},[850,5526,1917],{"class":866},[850,5528,1958],{"class":859},[850,5530,1923],{"class":866},[850,5532,1926],{"class":859},[850,5534,1929],{"class":859},[850,5536,5537,5539,5541,5543,5545,5547,5549,5551,5553,5555,5557],{"class":852,"line":884},[850,5538,972],{"class":856},[850,5540,863],{"class":859},[850,5542,879],{"class":859},[850,5544,1911],{"class":866},[850,5546,1914],{"class":859},[850,5548,1917],{"class":866},[850,5550,1920],{"class":859},[850,5552,1923],{"class":866},[850,5554,1926],{"class":859},[850,5556,1998],{"class":859},[850,5558,2001],{"class":859},[850,5560,5561,5563,5565,5567,5569,5571,5573,5575,5577],{"class":852,"line":898},[850,5562,972],{"class":856},[850,5564,863],{"class":859},[850,5566,879],{"class":859},[850,5568,1911],{"class":866},[850,5570,1953],{"class":859},[850,5572,1917],{"class":866},[850,5574,1958],{"class":859},[850,5576,2031],{"class":866},[850,5578,2034],{"class":859},[840,5580,5581],{"className":842,"code":2231,"filename":1010,"language":845,"meta":846,"style":846},[825,5582,5583,5605,5627,5651],{"__ignoreMap":846},[850,5584,5585,5587,5589,5591,5593,5595,5597,5599,5601,5603],{"class":852,"line":853},[850,5586,1017],{"class":856},[850,5588,863],{"class":859},[850,5590,879],{"class":859},[850,5592,1911],{"class":866},[850,5594,1914],{"class":859},[850,5596,1917],{"class":866},[850,5598,1920],{"class":859},[850,5600,1923],{"class":866},[850,5602,1926],{"class":859},[850,5604,1929],{"class":859},[850,5606,5607,5609,5611,5613,5615,5617,5619,5621,5623,5625],{"class":852,"line":870},[850,5608,1017],{"class":856},[850,5610,863],{"class":859},[850,5612,879],{"class":859},[850,5614,1911],{"class":866},[850,5616,1953],{"class":859},[850,5618,1917],{"class":866},[850,5620,1958],{"class":859},[850,5622,1923],{"class":866},[850,5624,1926],{"class":859},[850,5626,1929],{"class":859},[850,5628,5629,5631,5633,5635,5637,5639,5641,5643,5645,5647,5649],{"class":852,"line":884},[850,5630,1017],{"class":856},[850,5632,863],{"class":859},[850,5634,879],{"class":859},[850,5636,1911],{"class":866},[850,5638,1914],{"class":859},[850,5640,1917],{"class":866},[850,5642,1920],{"class":859},[850,5644,1923],{"class":866},[850,5646,1926],{"class":859},[850,5648,1998],{"class":859},[850,5650,2001],{"class":859},[850,5652,5653,5655,5657,5659,5661,5663,5665,5667,5669],{"class":852,"line":898},[850,5654,1017],{"class":856},[850,5656,863],{"class":859},[850,5658,879],{"class":859},[850,5660,1911],{"class":866},[850,5662,1953],{"class":859},[850,5664,1917],{"class":866},[850,5666,1958],{"class":859},[850,5668,2031],{"class":866},[850,5670,2034],{"class":859},[840,5672,5673],{"className":2324,"code":2325,"filename":2326,"language":2327,"meta":846,"style":846},[825,5674,5675,5695,5699,5703,5711,5725,5733,5747,5761,5775,5789,5799,5803,5807,5811,5815,5823,5837,5845,5859,5873,5887,5897,5901],{"__ignoreMap":846},[850,5676,5677,5679,5681,5683,5685,5687,5689,5691,5693],{"class":852,"line":853},[850,5678,2335],{"class":2334},[850,5680,2339],{"class":2338},[850,5682,2343],{"class":2342},[850,5684,2346],{"class":2338},[850,5686,2349],{"class":2334},[850,5688,2352],{"class":1364},[850,5690,2355],{"class":859},[850,5692,2358],{"class":1364},[850,5694,2361],{"class":2338},[850,5696,5697],{"class":852,"line":870},[850,5698,1379],{"emptyLinePlaceholder":8},[850,5700,5701],{"class":852,"line":884},[850,5702,2370],{"class":1343},[850,5704,5705,5707,5709],{"class":852,"line":898},[850,5706,2375],{"class":2334},[850,5708,2378],{"class":856},[850,5710,2381],{"class":2338},[850,5712,5713,5715,5717,5719,5721,5723],{"class":852,"line":1387},[850,5714,2386],{"class":2342},[850,5716,2390],{"class":2389},[850,5718,2352],{"class":1364},[850,5720,1786],{"class":859},[850,5722,2358],{"class":1364},[850,5724,2399],{"class":2338},[850,5726,5727,5729,5731],{"class":852,"line":1402},[850,5728,2404],{"class":2342},[850,5730,2390],{"class":2389},[850,5732,2409],{"class":2338},[850,5734,5735,5737,5739,5741,5743,5745],{"class":852,"line":1407},[850,5736,2414],{"class":2342},[850,5738,2390],{"class":2389},[850,5740,2352],{"class":1364},[850,5742,2421],{"class":859},[850,5744,2358],{"class":1364},[850,5746,2399],{"class":2338},[850,5748,5749,5751,5753,5755,5757,5759],{"class":852,"line":1413},[850,5750,2430],{"class":2342},[850,5752,2390],{"class":2389},[850,5754,2352],{"class":1364},[850,5756,2437],{"class":859},[850,5758,2358],{"class":1364},[850,5760,2399],{"class":2338},[850,5762,5763,5765,5767,5769,5771,5773],{"class":852,"line":1446},[850,5764,2446],{"class":2342},[850,5766,2390],{"class":2389},[850,5768,2352],{"class":1364},[850,5770,2453],{"class":859},[850,5772,2358],{"class":1364},[850,5774,2399],{"class":2338},[850,5776,5777,5779,5781,5783,5785,5787],{"class":852,"line":1451},[850,5778,2462],{"class":2342},[850,5780,2390],{"class":2389},[850,5782,2352],{"class":1364},[850,5784,2469],{"class":859},[850,5786,2358],{"class":1364},[850,5788,2399],{"class":2338},[850,5790,5791,5793,5795,5797],{"class":852,"line":1457},[850,5792,2478],{"class":2342},[850,5794,2390],{"class":2389},[850,5796,2483],{"class":866},[850,5798,2399],{"class":2338},[850,5800,5801],{"class":852,"line":1469},[850,5802,2490],{"class":2338},[850,5804,5805],{"class":852,"line":1474},[850,5806,2495],{"class":2338},[850,5808,5809],{"class":852,"line":1480},[850,5810,1379],{"emptyLinePlaceholder":8},[850,5812,5813],{"class":852,"line":2502},[850,5814,2505],{"class":1343},[850,5816,5817,5819,5821],{"class":852,"line":2508},[850,5818,2375],{"class":2334},[850,5820,2378],{"class":856},[850,5822,2381],{"class":2338},[850,5824,5825,5827,5829,5831,5833,5835],{"class":852,"line":2517},[850,5826,2386],{"class":2342},[850,5828,2390],{"class":2389},[850,5830,2352],{"class":1364},[850,5832,1790],{"class":859},[850,5834,2358],{"class":1364},[850,5836,2399],{"class":2338},[850,5838,5839,5841,5843],{"class":852,"line":2532},[850,5840,2404],{"class":2342},[850,5842,2390],{"class":2389},[850,5844,2409],{"class":2338},[850,5846,5847,5849,5851,5853,5855,5857],{"class":852,"line":2541},[850,5848,2414],{"class":2342},[850,5850,2390],{"class":2389},[850,5852,2352],{"class":1364},[850,5854,2421],{"class":859},[850,5856,2358],{"class":1364},[850,5858,2399],{"class":2338},[850,5860,5861,5863,5865,5867,5869,5871],{"class":852,"line":2556},[850,5862,2430],{"class":2342},[850,5864,2390],{"class":2389},[850,5866,2352],{"class":1364},[850,5868,2565],{"class":859},[850,5870,2358],{"class":1364},[850,5872,2399],{"class":2338},[850,5874,5875,5877,5879,5881,5883,5885],{"class":852,"line":2572},[850,5876,2462],{"class":2342},[850,5878,2390],{"class":2389},[850,5880,2352],{"class":1364},[850,5882,2469],{"class":859},[850,5884,2358],{"class":1364},[850,5886,2399],{"class":2338},[850,5888,5889,5891,5893,5895],{"class":852,"line":2587},[850,5890,2478],{"class":2342},[850,5892,2390],{"class":2389},[850,5894,2483],{"class":866},[850,5896,2399],{"class":2338},[850,5898,5899],{"class":852,"line":2598},[850,5900,2490],{"class":2338},[850,5902,5903],{"class":852,"line":2603},[850,5904,2495],{"class":2338},[821,5906,2608,5907,2611,5909,2615,5911,1319,5913,2622],{},[825,5908,1821],{},[825,5910,2614],{},[825,5912,2618],{},[825,5914,2621],{},[2624,5916,5917],{},[821,5918,2628,5919,2631,5921,2634,5923,2637,5925,1810,5927,2642],{},[825,5920,1786],{},[825,5922,741],{},[825,5924,1790],{},[825,5926,1809],{},[825,5928,1813],{},[1053,5930],{},[1056,5932,5933,1742],{"id":2647},[825,5934,2650],{},[821,5936,2653,5937,2657,5939,2660],{},[825,5938,2656],{},[825,5940,2656],{},[1066,5942,5943,5953],{},[1069,5944,5945],{},[1072,5946,5947,5949,5951],{},[1075,5948,1077],{},[1075,5950,1757],{},[1075,5952,1080],{},[1082,5954,5955,5969,5981,6007,6021,6033,6049],{},[1072,5956,5957,5961,5963],{},[1087,5958,5959],{},[825,5960,2681],{},[1087,5962,1824],{},[1087,5964,5965,2688,5967,2691],{},[1794,5966,1796],{},[825,5968,2656],{},[1072,5970,5971,5975,5977],{},[1087,5972,5973],{},[825,5974,1821],{},[1087,5976,1824],{},[1087,5978,5979,2704],{},[1794,5980,1796],{},[1072,5982,5983,5987,5989],{},[1087,5984,5985],{},[825,5986,2711],{},[1087,5988,2714],{},[1087,5990,5991,2719,5993,1319,5995,1319,5997,1319,5999,1319,6001,1319,6003,1319,6005,1289],{},[1794,5992,1796],{},[825,5994,2722],{},[825,5996,741],{},[825,5998,2727],{},[825,6000,2730],{},[825,6002,2733],{},[825,6004,2736],{},[825,6006,2739],{},[1072,6008,6009,6013,6015],{},[1087,6010,6011],{},[825,6012,2746],{},[1087,6014,1824],{},[1087,6016,2751,6017,1286,6019,1289],{},[825,6018,2722],{},[825,6020,2733],{},[1072,6022,6023,6027,6029],{},[1087,6024,6025],{},[825,6026,2762],{},[1087,6028,1824],{},[1087,6030,2767,6031,1289],{},[825,6032,2727],{},[1072,6034,6035,6039,6041],{},[1087,6036,6037],{},[825,6038,2776],{},[1087,6040,1824],{},[1087,6042,2781,6043,1286,6045,2786,6047,1289],{},[825,6044,741],{},[825,6046,2727],{},[825,6048,2789],{},[1072,6050,6051,6057,6059],{},[1087,6052,6053,1319,6055],{},[825,6054,834],{},[825,6056,1322],{},[1087,6058,1870],{},[1087,6060,2802],{},[1066,6062,6063,6071],{},[1069,6064,6065],{},[1072,6066,6067,6069],{},[1075,6068,2811],{},[1075,6070,1080],{},[1082,6072,6073,6081,6089,6097,6105,6113,6121],{},[1072,6074,6075,6079],{},[1087,6076,6077],{},[825,6078,2722],{},[1087,6080,2824],{},[1072,6082,6083,6087],{},[1087,6084,6085],{},[825,6086,741],{},[1087,6088,2833],{},[1072,6090,6091,6095],{},[1087,6092,6093],{},[825,6094,2727],{},[1087,6096,2842],{},[1072,6098,6099,6103],{},[1087,6100,6101],{},[825,6102,2730],{},[1087,6104,2851],{},[1072,6106,6107,6111],{},[1087,6108,6109],{},[825,6110,2733],{},[1087,6112,2860],{},[1072,6114,6115,6119],{},[1087,6116,6117],{},[825,6118,2736],{},[1087,6120,2869],{},[1072,6122,6123,6127],{},[1087,6124,6125],{},[825,6126,2739],{},[1087,6128,2878],{},[837,6130,6131,6309,6451,6583,6715],{},[840,6132,6133],{"className":842,"code":2883,"filename":844,"language":845,"meta":846,"style":846},[825,6134,6135,6139,6169,6173,6177,6203,6207,6211,6241,6245,6249,6271,6275,6279],{"__ignoreMap":846},[850,6136,6137],{"class":852,"line":853},[850,6138,2890],{"class":1343},[850,6140,6141,6143,6145,6147,6149,6151,6153,6155,6157,6159,6161,6163,6165,6167],{"class":852,"line":870},[850,6142,844],{"class":856},[850,6144,860],{"class":859},[850,6146,863],{"class":859},[850,6148,893],{"class":859},[850,6150,1440],{"class":866},[850,6152,2905],{"class":859},[850,6154,1917],{"class":866},[850,6156,2910],{"class":859},[850,6158,2913],{"class":866},[850,6160,2916],{"class":859},[850,6162,2919],{"class":866},[850,6164,1365],{"class":1364},[850,6166,2924],{"class":859},[850,6168,2927],{"class":1364},[850,6170,6171],{"class":852,"line":884},[850,6172,1379],{"emptyLinePlaceholder":8},[850,6174,6175],{"class":852,"line":898},[850,6176,2936],{"class":1343},[850,6178,6179,6181,6183,6185,6187,6189,6191,6193,6195,6197,6199,6201],{"class":852,"line":1387},[850,6180,844],{"class":856},[850,6182,860],{"class":859},[850,6184,863],{"class":859},[850,6186,893],{"class":859},[850,6188,1440],{"class":866},[850,6190,2905],{"class":859},[850,6192,1917],{"class":866},[850,6194,2910],{"class":859},[850,6196,2913],{"class":866},[850,6198,2959],{"class":859},[850,6200,2962],{"class":866},[850,6202,2966],{"class":2965},[850,6204,6205],{"class":852,"line":1402},[850,6206,1379],{"emptyLinePlaceholder":8},[850,6208,6209],{"class":852,"line":1407},[850,6210,2975],{"class":1343},[850,6212,6213,6215,6217,6219,6221,6223,6225,6227,6229,6231,6233,6235,6237,6239],{"class":852,"line":1413},[850,6214,844],{"class":856},[850,6216,860],{"class":859},[850,6218,863],{"class":859},[850,6220,893],{"class":859},[850,6222,1440],{"class":866},[850,6224,2905],{"class":859},[850,6226,1917],{"class":866},[850,6228,2910],{"class":859},[850,6230,2913],{"class":866},[850,6232,2998],{"class":859},[850,6234,3001],{"class":866},[850,6236,1365],{"class":1364},[850,6238,3006],{"class":859},[850,6240,2927],{"class":1364},[850,6242,6243],{"class":852,"line":1446},[850,6244,1379],{"emptyLinePlaceholder":8},[850,6246,6247],{"class":852,"line":1451},[850,6248,3017],{"class":1343},[850,6250,6251,6253,6255,6257,6259,6261,6263,6265,6267,6269],{"class":852,"line":1457},[850,6252,844],{"class":856},[850,6254,860],{"class":859},[850,6256,863],{"class":859},[850,6258,893],{"class":859},[850,6260,1440],{"class":866},[850,6262,2905],{"class":859},[850,6264,1917],{"class":866},[850,6266,2910],{"class":859},[850,6268,2913],{"class":866},[850,6270,3040],{"class":859},[850,6272,6273],{"class":852,"line":1469},[850,6274,1379],{"emptyLinePlaceholder":8},[850,6276,6277],{"class":852,"line":1474},[850,6278,3049],{"class":1343},[850,6280,6281,6283,6285,6287,6289,6291,6293,6295,6297,6299,6301,6303,6305,6307],{"class":852,"line":1480},[850,6282,844],{"class":856},[850,6284,860],{"class":859},[850,6286,863],{"class":859},[850,6288,893],{"class":859},[850,6290,1440],{"class":866},[850,6292,2905],{"class":859},[850,6294,1917],{"class":866},[850,6296,2910],{"class":859},[850,6298,2913],{"class":866},[850,6300,3072],{"class":859},[850,6302,2919],{"class":866},[850,6304,1365],{"class":1364},[850,6306,3079],{"class":859},[850,6308,2927],{"class":1364},[840,6310,6311],{"className":842,"code":3084,"filename":913,"language":845,"meta":846,"style":846},[825,6312,6313,6343,6369,6399,6421],{"__ignoreMap":846},[850,6314,6315,6317,6319,6321,6323,6325,6327,6329,6331,6333,6335,6337,6339,6341],{"class":852,"line":853},[850,6316,913],{"class":856},[850,6318,860],{"class":859},[850,6320,863],{"class":859},[850,6322,893],{"class":859},[850,6324,1440],{"class":866},[850,6326,2905],{"class":859},[850,6328,1917],{"class":866},[850,6330,2910],{"class":859},[850,6332,2913],{"class":866},[850,6334,2916],{"class":859},[850,6336,2919],{"class":866},[850,6338,1365],{"class":1364},[850,6340,2924],{"class":859},[850,6342,2927],{"class":1364},[850,6344,6345,6347,6349,6351,6353,6355,6357,6359,6361,6363,6365,6367],{"class":852,"line":870},[850,6346,913],{"class":856},[850,6348,860],{"class":859},[850,6350,863],{"class":859},[850,6352,893],{"class":859},[850,6354,1440],{"class":866},[850,6356,2905],{"class":859},[850,6358,1917],{"class":866},[850,6360,2910],{"class":859},[850,6362,2913],{"class":866},[850,6364,2959],{"class":859},[850,6366,2962],{"class":866},[850,6368,2966],{"class":2965},[850,6370,6371,6373,6375,6377,6379,6381,6383,6385,6387,6389,6391,6393,6395,6397],{"class":852,"line":884},[850,6372,913],{"class":856},[850,6374,860],{"class":859},[850,6376,863],{"class":859},[850,6378,893],{"class":859},[850,6380,1440],{"class":866},[850,6382,2905],{"class":859},[850,6384,1917],{"class":866},[850,6386,2910],{"class":859},[850,6388,2913],{"class":866},[850,6390,2998],{"class":859},[850,6392,3001],{"class":866},[850,6394,1365],{"class":1364},[850,6396,3006],{"class":859},[850,6398,2927],{"class":1364},[850,6400,6401,6403,6405,6407,6409,6411,6413,6415,6417,6419],{"class":852,"line":898},[850,6402,913],{"class":856},[850,6404,860],{"class":859},[850,6406,863],{"class":859},[850,6408,893],{"class":859},[850,6410,1440],{"class":866},[850,6412,2905],{"class":859},[850,6414,1917],{"class":866},[850,6416,2910],{"class":859},[850,6418,2913],{"class":866},[850,6420,3040],{"class":859},[850,6422,6423,6425,6427,6429,6431,6433,6435,6437,6439,6441,6443,6445,6447,6449],{"class":852,"line":1387},[850,6424,913],{"class":856},[850,6426,860],{"class":859},[850,6428,863],{"class":859},[850,6430,893],{"class":859},[850,6432,1440],{"class":866},[850,6434,2905],{"class":859},[850,6436,1917],{"class":866},[850,6438,2910],{"class":859},[850,6440,2913],{"class":866},[850,6442,3072],{"class":859},[850,6444,2919],{"class":866},[850,6446,1365],{"class":1364},[850,6448,3079],{"class":859},[850,6450,2927],{"class":1364},[840,6452,6453],{"className":842,"code":3227,"filename":965,"language":845,"meta":846,"style":846},[825,6454,6455,6483,6507,6535,6555],{"__ignoreMap":846},[850,6456,6457,6459,6461,6463,6465,6467,6469,6471,6473,6475,6477,6479,6481],{"class":852,"line":853},[850,6458,972],{"class":856},[850,6460,863],{"class":859},[850,6462,893],{"class":859},[850,6464,1440],{"class":866},[850,6466,2905],{"class":859},[850,6468,1917],{"class":866},[850,6470,2910],{"class":859},[850,6472,2913],{"class":866},[850,6474,2916],{"class":859},[850,6476,2919],{"class":866},[850,6478,1365],{"class":1364},[850,6480,2924],{"class":859},[850,6482,2927],{"class":1364},[850,6484,6485,6487,6489,6491,6493,6495,6497,6499,6501,6503,6505],{"class":852,"line":870},[850,6486,972],{"class":856},[850,6488,863],{"class":859},[850,6490,893],{"class":859},[850,6492,1440],{"class":866},[850,6494,2905],{"class":859},[850,6496,1917],{"class":866},[850,6498,2910],{"class":859},[850,6500,2913],{"class":866},[850,6502,2959],{"class":859},[850,6504,2962],{"class":866},[850,6506,2966],{"class":2965},[850,6508,6509,6511,6513,6515,6517,6519,6521,6523,6525,6527,6529,6531,6533],{"class":852,"line":884},[850,6510,972],{"class":856},[850,6512,863],{"class":859},[850,6514,893],{"class":859},[850,6516,1440],{"class":866},[850,6518,2905],{"class":859},[850,6520,1917],{"class":866},[850,6522,2910],{"class":859},[850,6524,2913],{"class":866},[850,6526,2998],{"class":859},[850,6528,3001],{"class":866},[850,6530,1365],{"class":1364},[850,6532,3006],{"class":859},[850,6534,2927],{"class":1364},[850,6536,6537,6539,6541,6543,6545,6547,6549,6551,6553],{"class":852,"line":898},[850,6538,972],{"class":856},[850,6540,863],{"class":859},[850,6542,893],{"class":859},[850,6544,1440],{"class":866},[850,6546,2905],{"class":859},[850,6548,1917],{"class":866},[850,6550,2910],{"class":859},[850,6552,2913],{"class":866},[850,6554,3040],{"class":859},[850,6556,6557,6559,6561,6563,6565,6567,6569,6571,6573,6575,6577,6579,6581],{"class":852,"line":1387},[850,6558,972],{"class":856},[850,6560,863],{"class":859},[850,6562,893],{"class":859},[850,6564,1440],{"class":866},[850,6566,2905],{"class":859},[850,6568,1917],{"class":866},[850,6570,2910],{"class":859},[850,6572,2913],{"class":866},[850,6574,3072],{"class":859},[850,6576,2919],{"class":866},[850,6578,1365],{"class":1364},[850,6580,3079],{"class":859},[850,6582,2927],{"class":1364},[840,6584,6585],{"className":842,"code":3360,"filename":1010,"language":845,"meta":846,"style":846},[825,6586,6587,6615,6639,6667,6687],{"__ignoreMap":846},[850,6588,6589,6591,6593,6595,6597,6599,6601,6603,6605,6607,6609,6611,6613],{"class":852,"line":853},[850,6590,1017],{"class":856},[850,6592,863],{"class":859},[850,6594,893],{"class":859},[850,6596,1440],{"class":866},[850,6598,2905],{"class":859},[850,6600,1917],{"class":866},[850,6602,2910],{"class":859},[850,6604,2913],{"class":866},[850,6606,2916],{"class":859},[850,6608,2919],{"class":866},[850,6610,1365],{"class":1364},[850,6612,2924],{"class":859},[850,6614,2927],{"class":1364},[850,6616,6617,6619,6621,6623,6625,6627,6629,6631,6633,6635,6637],{"class":852,"line":870},[850,6618,1017],{"class":856},[850,6620,863],{"class":859},[850,6622,893],{"class":859},[850,6624,1440],{"class":866},[850,6626,2905],{"class":859},[850,6628,1917],{"class":866},[850,6630,2910],{"class":859},[850,6632,2913],{"class":866},[850,6634,2959],{"class":859},[850,6636,2962],{"class":866},[850,6638,2966],{"class":2965},[850,6640,6641,6643,6645,6647,6649,6651,6653,6655,6657,6659,6661,6663,6665],{"class":852,"line":884},[850,6642,1017],{"class":856},[850,6644,863],{"class":859},[850,6646,893],{"class":859},[850,6648,1440],{"class":866},[850,6650,2905],{"class":859},[850,6652,1917],{"class":866},[850,6654,2910],{"class":859},[850,6656,2913],{"class":866},[850,6658,2998],{"class":859},[850,6660,3001],{"class":866},[850,6662,1365],{"class":1364},[850,6664,3006],{"class":859},[850,6666,2927],{"class":1364},[850,6668,6669,6671,6673,6675,6677,6679,6681,6683,6685],{"class":852,"line":898},[850,6670,1017],{"class":856},[850,6672,863],{"class":859},[850,6674,893],{"class":859},[850,6676,1440],{"class":866},[850,6678,2905],{"class":859},[850,6680,1917],{"class":866},[850,6682,2910],{"class":859},[850,6684,2913],{"class":866},[850,6686,3040],{"class":859},[850,6688,6689,6691,6693,6695,6697,6699,6701,6703,6705,6707,6709,6711,6713],{"class":852,"line":1387},[850,6690,1017],{"class":856},[850,6692,863],{"class":859},[850,6694,893],{"class":859},[850,6696,1440],{"class":866},[850,6698,2905],{"class":859},[850,6700,1917],{"class":866},[850,6702,2910],{"class":859},[850,6704,2913],{"class":866},[850,6706,3072],{"class":859},[850,6708,2919],{"class":866},[850,6710,1365],{"class":1364},[850,6712,3079],{"class":859},[850,6714,2927],{"class":1364},[840,6716,6717],{"className":2324,"code":3493,"filename":2326,"language":2327,"meta":846,"style":846},[825,6718,6719,6755,6759,6775,6791,6795,6823,6847,6879,6899],{"__ignoreMap":846},[850,6720,6721,6723,6725,6727,6729,6731,6733,6735,6737,6739,6741,6743,6745,6747,6749,6751,6753],{"class":852,"line":853},[850,6722,2335],{"class":2334},[850,6724,2339],{"class":2338},[850,6726,3504],{"class":2342},[850,6728,1319],{"class":2338},[850,6730,3509],{"class":2342},[850,6732,1319],{"class":2338},[850,6734,3514],{"class":2342},[850,6736,1319],{"class":2338},[850,6738,3519],{"class":2342},[850,6740,1319],{"class":2338},[850,6742,3524],{"class":2342},[850,6744,2346],{"class":2338},[850,6746,2349],{"class":2334},[850,6748,2352],{"class":1364},[850,6750,2355],{"class":859},[850,6752,2358],{"class":1364},[850,6754,2361],{"class":2338},[850,6756,6757],{"class":852,"line":870},[850,6758,1379],{"emptyLinePlaceholder":8},[850,6760,6761,6763,6765,6767,6769,6771,6773],{"class":852,"line":884},[850,6762,3546],{"class":3545},[850,6764,3550],{"class":3549},[850,6766,3554],{"class":3553},[850,6768,2352],{"class":1364},[850,6770,3559],{"class":859},[850,6772,2358],{"class":1364},[850,6774,2361],{"class":2338},[850,6776,6777,6779,6781,6783,6785,6787,6789],{"class":852,"line":898},[850,6778,3546],{"class":3545},[850,6780,3570],{"class":3549},[850,6782,3554],{"class":3553},[850,6784,2352],{"class":1364},[850,6786,3577],{"class":859},[850,6788,2358],{"class":1364},[850,6790,2361],{"class":2338},[850,6792,6793],{"class":852,"line":1387},[850,6794,1379],{"emptyLinePlaceholder":8},[850,6796,6797,6799,6801,6803,6805,6807,6809,6811,6813,6815,6817,6819,6821],{"class":852,"line":1402},[850,6798,3546],{"class":3545},[850,6800,3592],{"class":3549},[850,6802,3554],{"class":3553},[850,6804,3597],{"class":856},[850,6806,3600],{"class":2338},[850,6808,3603],{"class":2342},[850,6810,1319],{"class":2338},[850,6812,3608],{"class":2342},[850,6814,1319],{"class":2338},[850,6816,2358],{"class":1364},[850,6818,2924],{"class":859},[850,6820,2358],{"class":1364},[850,6822,3619],{"class":2338},[850,6824,6825,6827,6829,6831,6833,6835,6837,6839,6841,6843,6845],{"class":852,"line":1407},[850,6826,3546],{"class":3545},[850,6828,3626],{"class":3549},[850,6830,3554],{"class":3553},[850,6832,3631],{"class":856},[850,6834,3600],{"class":2338},[850,6836,3603],{"class":2342},[850,6838,1319],{"class":2338},[850,6840,3608],{"class":2342},[850,6842,1319],{"class":2338},[850,6844,3644],{"class":2965},[850,6846,3619],{"class":2338},[850,6848,6849,6851,6853,6855,6857,6859,6861,6863,6865,6867,6869,6871,6873,6875,6877],{"class":852,"line":1413},[850,6850,3546],{"class":3545},[850,6852,3653],{"class":3549},[850,6854,3554],{"class":3553},[850,6856,3658],{"class":856},[850,6858,3600],{"class":2338},[850,6860,3603],{"class":2342},[850,6862,1319],{"class":2338},[850,6864,3608],{"class":2342},[850,6866,1319],{"class":2338},[850,6868,2358],{"class":1364},[850,6870,3006],{"class":859},[850,6872,2358],{"class":1364},[850,6874,1319],{"class":2338},[850,6876,3679],{"class":2965},[850,6878,3619],{"class":2338},[850,6880,6881,6883,6885,6887,6889,6891,6893,6895,6897],{"class":852,"line":1446},[850,6882,3546],{"class":3545},[850,6884,3688],{"class":3549},[850,6886,3554],{"class":3553},[850,6888,3693],{"class":856},[850,6890,3600],{"class":2338},[850,6892,3603],{"class":2342},[850,6894,1319],{"class":2338},[850,6896,3608],{"class":2342},[850,6898,3619],{"class":2338},[850,6900,6901,6903,6905,6907,6909,6911,6913,6915,6917,6919,6921,6923,6925],{"class":852,"line":1451},[850,6902,3546],{"class":3545},[850,6904,3072],{"class":3549},[850,6906,3554],{"class":3553},[850,6908,3714],{"class":856},[850,6910,3600],{"class":2338},[850,6912,3603],{"class":2342},[850,6914,1319],{"class":2338},[850,6916,3608],{"class":2342},[850,6918,1319],{"class":2338},[850,6920,2358],{"class":1364},[850,6922,3079],{"class":859},[850,6924,2358],{"class":1364},[850,6926,3619],{"class":2338},[3734,6928,6929],{},[821,6930,823,6931,3740],{},[825,6932,2739],{},[1053,6934],{},[1056,6936,6937,1742],{"id":3745},[825,6938,3748],{},[821,6940,3751],{},[1066,6942,6943,6953],{},[1069,6944,6945],{},[1072,6946,6947,6949,6951],{},[1075,6948,1754],{},[1075,6950,1757],{},[1075,6952,1080],{},[1082,6954,6955,6965,6977,6991],{},[1072,6956,6957,6961,6963],{},[1087,6958,6959],{},[825,6960,1768],{},[1087,6962,1771],{},[1087,6964,3776],{},[1072,6966,6967,6971,6973],{},[1087,6968,6969],{},[825,6970,1821],{},[1087,6972,1824],{},[1087,6974,6975,3789],{},[1794,6976,1796],{},[1072,6978,6979,6983,6985],{},[1087,6980,6981],{},[825,6982,1836],{},[1087,6984,1824],{},[1087,6986,3800,6987,3804,6989,1289],{},[825,6988,3803],{},[825,6990,1844],{},[1072,6992,6993,6999,7001],{},[1087,6994,6995,1319,6997],{},[825,6996,834],{},[825,6998,1322],{},[1087,7000,1870],{},[1087,7002,2802],{},[837,7004,7005,7095,7165,7229,7293],{},[840,7006,7007],{"className":842,"code":3823,"filename":844,"language":845,"meta":846,"style":846},[825,7008,7009,7013,7033,7037,7041,7065,7069,7073],{"__ignoreMap":846},[850,7010,7011],{"class":852,"line":853},[850,7012,3830],{"class":1343},[850,7014,7015,7017,7019,7021,7023,7025,7027,7029,7031],{"class":852,"line":870},[850,7016,844],{"class":856},[850,7018,860],{"class":859},[850,7020,863],{"class":859},[850,7022,907],{"class":859},[850,7024,1917],{"class":866},[850,7026,3845],{"class":859},[850,7028,1923],{"class":866},[850,7030,3850],{"class":859},[850,7032,2034],{"class":859},[850,7034,7035],{"class":852,"line":884},[850,7036,1379],{"emptyLinePlaceholder":8},[850,7038,7039],{"class":852,"line":898},[850,7040,3861],{"class":1343},[850,7042,7043,7045,7047,7049,7051,7053,7055,7057,7059,7061,7063],{"class":852,"line":1387},[850,7044,844],{"class":856},[850,7046,860],{"class":859},[850,7048,863],{"class":859},[850,7050,907],{"class":859},[850,7052,1917],{"class":866},[850,7054,3845],{"class":859},[850,7056,1923],{"class":866},[850,7058,3850],{"class":859},[850,7060,2352],{"class":1364},[850,7062,3884],{"class":859},[850,7064,3887],{"class":1364},[850,7066,7067],{"class":852,"line":1402},[850,7068,1379],{"emptyLinePlaceholder":8},[850,7070,7071],{"class":852,"line":1407},[850,7072,3896],{"class":1343},[850,7074,7075,7077,7079,7081,7083,7085,7087,7089,7091,7093],{"class":852,"line":1413},[850,7076,844],{"class":856},[850,7078,860],{"class":859},[850,7080,863],{"class":859},[850,7082,907],{"class":859},[850,7084,1917],{"class":866},[850,7086,3911],{"class":859},[850,7088,1923],{"class":866},[850,7090,3850],{"class":859},[850,7092,1998],{"class":859},[850,7094,2001],{"class":859},[840,7096,7097],{"className":842,"code":3922,"filename":913,"language":845,"meta":846,"style":846},[825,7098,7099,7119,7143],{"__ignoreMap":846},[850,7100,7101,7103,7105,7107,7109,7111,7113,7115,7117],{"class":852,"line":853},[850,7102,913],{"class":856},[850,7104,860],{"class":859},[850,7106,863],{"class":859},[850,7108,907],{"class":859},[850,7110,1917],{"class":866},[850,7112,3845],{"class":859},[850,7114,1923],{"class":866},[850,7116,3850],{"class":859},[850,7118,2034],{"class":859},[850,7120,7121,7123,7125,7127,7129,7131,7133,7135,7137,7139,7141],{"class":852,"line":870},[850,7122,913],{"class":856},[850,7124,860],{"class":859},[850,7126,863],{"class":859},[850,7128,907],{"class":859},[850,7130,1917],{"class":866},[850,7132,3845],{"class":859},[850,7134,1923],{"class":866},[850,7136,3850],{"class":859},[850,7138,2352],{"class":1364},[850,7140,3884],{"class":859},[850,7142,3887],{"class":1364},[850,7144,7145,7147,7149,7151,7153,7155,7157,7159,7161,7163],{"class":852,"line":884},[850,7146,913],{"class":856},[850,7148,860],{"class":859},[850,7150,863],{"class":859},[850,7152,907],{"class":859},[850,7154,1917],{"class":866},[850,7156,3911],{"class":859},[850,7158,1923],{"class":866},[850,7160,3850],{"class":859},[850,7162,1998],{"class":859},[850,7164,2001],{"class":859},[840,7166,7167],{"className":842,"code":3993,"filename":965,"language":845,"meta":846,"style":846},[825,7168,7169,7187,7209],{"__ignoreMap":846},[850,7170,7171,7173,7175,7177,7179,7181,7183,7185],{"class":852,"line":853},[850,7172,972],{"class":856},[850,7174,863],{"class":859},[850,7176,907],{"class":859},[850,7178,1917],{"class":866},[850,7180,3845],{"class":859},[850,7182,1923],{"class":866},[850,7184,3850],{"class":859},[850,7186,2034],{"class":859},[850,7188,7189,7191,7193,7195,7197,7199,7201,7203,7205,7207],{"class":852,"line":870},[850,7190,972],{"class":856},[850,7192,863],{"class":859},[850,7194,907],{"class":859},[850,7196,1917],{"class":866},[850,7198,3845],{"class":859},[850,7200,1923],{"class":866},[850,7202,3850],{"class":859},[850,7204,2352],{"class":1364},[850,7206,3884],{"class":859},[850,7208,3887],{"class":1364},[850,7210,7211,7213,7215,7217,7219,7221,7223,7225,7227],{"class":852,"line":884},[850,7212,972],{"class":856},[850,7214,863],{"class":859},[850,7216,907],{"class":859},[850,7218,1917],{"class":866},[850,7220,3911],{"class":859},[850,7222,1923],{"class":866},[850,7224,3850],{"class":859},[850,7226,1998],{"class":859},[850,7228,2001],{"class":859},[840,7230,7231],{"className":842,"code":4058,"filename":1010,"language":845,"meta":846,"style":846},[825,7232,7233,7251,7273],{"__ignoreMap":846},[850,7234,7235,7237,7239,7241,7243,7245,7247,7249],{"class":852,"line":853},[850,7236,1017],{"class":856},[850,7238,863],{"class":859},[850,7240,907],{"class":859},[850,7242,1917],{"class":866},[850,7244,3845],{"class":859},[850,7246,1923],{"class":866},[850,7248,3850],{"class":859},[850,7250,2034],{"class":859},[850,7252,7253,7255,7257,7259,7261,7263,7265,7267,7269,7271],{"class":852,"line":870},[850,7254,1017],{"class":856},[850,7256,863],{"class":859},[850,7258,907],{"class":859},[850,7260,1917],{"class":866},[850,7262,3845],{"class":859},[850,7264,1923],{"class":866},[850,7266,3850],{"class":859},[850,7268,2352],{"class":1364},[850,7270,3884],{"class":859},[850,7272,3887],{"class":1364},[850,7274,7275,7277,7279,7281,7283,7285,7287,7289,7291],{"class":852,"line":884},[850,7276,1017],{"class":856},[850,7278,863],{"class":859},[850,7280,907],{"class":859},[850,7282,1917],{"class":866},[850,7284,3911],{"class":859},[850,7286,1923],{"class":866},[850,7288,3850],{"class":859},[850,7290,1998],{"class":859},[850,7292,2001],{"class":859},[840,7294,7295],{"className":2324,"code":4123,"filename":2326,"language":2327,"meta":846,"style":846},[825,7296,7297,7317,7321,7325,7355,7359,7363,7393,7397,7401,7453],{"__ignoreMap":846},[850,7298,7299,7301,7303,7305,7307,7309,7311,7313,7315],{"class":852,"line":853},[850,7300,2335],{"class":2334},[850,7302,2339],{"class":2338},[850,7304,4134],{"class":2342},[850,7306,2346],{"class":2338},[850,7308,2349],{"class":2334},[850,7310,2352],{"class":1364},[850,7312,2355],{"class":859},[850,7314,2358],{"class":1364},[850,7316,2361],{"class":2338},[850,7318,7319],{"class":852,"line":870},[850,7320,1379],{"emptyLinePlaceholder":8},[850,7322,7323],{"class":852,"line":884},[850,7324,4155],{"class":1343},[850,7326,7327,7329,7331,7333,7335,7337,7339,7341,7343,7345,7347,7349,7351,7353],{"class":852,"line":898},[850,7328,4134],{"class":856},[850,7330,3600],{"class":2338},[850,7332,2358],{"class":1364},[850,7334,4166],{"class":859},[850,7336,2358],{"class":1364},[850,7338,1319],{"class":2338},[850,7340,2358],{"class":1364},[850,7342,4175],{"class":859},[850,7344,2358],{"class":1364},[850,7346,1319],{"class":2338},[850,7348,2358],{"class":1364},[850,7350,4184],{"class":859},[850,7352,2358],{"class":1364},[850,7354,3619],{"class":2338},[850,7356,7357],{"class":852,"line":1387},[850,7358,1379],{"emptyLinePlaceholder":8},[850,7360,7361],{"class":852,"line":1402},[850,7362,4197],{"class":1343},[850,7364,7365,7367,7369,7371,7373,7375,7377,7379,7381,7383,7385,7387,7389,7391],{"class":852,"line":1407},[850,7366,4134],{"class":856},[850,7368,3600],{"class":2338},[850,7370,2358],{"class":1364},[850,7372,4208],{"class":859},[850,7374,2358],{"class":1364},[850,7376,1319],{"class":2338},[850,7378,2358],{"class":1364},[850,7380,4175],{"class":859},[850,7382,2358],{"class":1364},[850,7384,1319],{"class":2338},[850,7386,2358],{"class":1364},[850,7388,4184],{"class":859},[850,7390,2358],{"class":1364},[850,7392,3619],{"class":2338},[850,7394,7395],{"class":852,"line":1413},[850,7396,1379],{"emptyLinePlaceholder":8},[850,7398,7399],{"class":852,"line":1446},[850,7400,4237],{"class":1343},[850,7402,7403,7405,7407,7409,7411,7413,7415,7417,7419,7421,7423,7425,7427,7429,7431,7433,7435,7437,7439,7441,7443,7445,7447,7449,7451],{"class":852,"line":1451},[850,7404,3546],{"class":3545},[850,7406,4244],{"class":3549},[850,7408,3554],{"class":3553},[850,7410,2339],{"class":2338},[850,7412,1813],{"class":2342},[850,7414,2390],{"class":2389},[850,7416,4255],{"class":2965},[850,7418,1319],{"class":2338},[850,7420,4260],{"class":2342},[850,7422,2390],{"class":2389},[850,7424,2352],{"class":1364},[850,7426,4267],{"class":859},[850,7428,2358],{"class":1364},[850,7430,1319],{"class":2338},[850,7432,4274],{"class":2342},[850,7434,2390],{"class":2389},[850,7436,4279],{"class":2338},[850,7438,2358],{"class":1364},[850,7440,4284],{"class":859},[850,7442,2358],{"class":1364},[850,7444,1319],{"class":2338},[850,7446,2358],{"class":1364},[850,7448,4293],{"class":859},[850,7450,2358],{"class":1364},[850,7452,4298],{"class":2338},[850,7454,7455,7457,7459,7461,7463,7465,7467,7469,7471,7473,7475,7477],{"class":852,"line":1457},[850,7456,4134],{"class":856},[850,7458,3600],{"class":2338},[850,7460,4307],{"class":2342},[850,7462,1319],{"class":2338},[850,7464,2358],{"class":1364},[850,7466,4175],{"class":859},[850,7468,2358],{"class":1364},[850,7470,1319],{"class":2338},[850,7472,2358],{"class":1364},[850,7474,4184],{"class":859},[850,7476,2358],{"class":1364},[850,7478,3619],{"class":2338},[821,7480,4328,7481,4332,7483,1319,7485,4339],{},[825,7482,4331],{},[825,7484,4335],{},[825,7486,4338],{},[4341,7488,4343],{},{"title":846,"searchDepth":870,"depth":870,"links":7490},[7491,7495,7496,7497,7498],{"id":1058,"depth":870,"text":1059,"children":7492},[7493,7494],{"id":1063,"depth":884,"text":1064},{"id":1227,"depth":884,"text":1228},{"id":1330,"depth":870,"text":1331},{"id":1738,"depth":870,"text":4352},{"id":2647,"depth":870,"text":4354},{"id":3745,"depth":870,"text":4356},{},{"title":77,"description":4357},1780436287635]