[{"data":1,"prerenderedAt":1750},["ShallowReactive",2],{"navigation":3,"\u002Fpackages\u002Fadonisjs-sentry\u002Fusage\u002Fexception-reporting":421,"\u002Fpackages\u002Fadonisjs-sentry\u002Fusage\u002Fexception-reporting-surround":1696,"packages-data":1701},[4,23],{"title":5,"path":6,"stem":7,"children":8,"icon":22},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-tabler-home",{"title":13,"path":14,"stem":15,"icon":16},"Manifest","\u002Fgetting-started\u002Fmanifest","1.getting-started\u002F2.manifest","i-tabler-file-diff",{"title":18,"path":19,"stem":20,"icon":21},"Contributing","\u002Fgetting-started\u002Fcontributing","1.getting-started\u002F3.contributing","i-tabler-git-fork",false,{"title":24,"path":25,"stem":26,"children":27,"icon":30},"Packages","\u002Fpackages","2.packages\u002F1.index",[28,31,108,194,268,317,343],{"title":29,"path":25,"stem":26,"icon":30},"Overview","i-tabler-packages",{"title":32,"icon":33,"path":34,"stem":35,"children":36,"page":22},"AdonisJS API Query","i-tabler-filter-search","\u002Fpackages\u002Fadonisjs-api-query","2.packages\u002Fadonisjs-api-query",[37,56,87],{"title":5,"icon":38,"path":39,"stem":40,"children":41,"page":22},"i-tabler-rocket","\u002Fpackages\u002Fadonisjs-api-query\u002Fgetting-started","2.packages\u002Fadonisjs-api-query\u002F1.getting-started",[42,46,51],{"title":10,"path":43,"stem":44,"icon":45},"\u002Fpackages\u002Fadonisjs-api-query\u002Fgetting-started\u002Fintroduction","2.packages\u002Fadonisjs-api-query\u002F1.getting-started\u002F1.introduction","i-tabler-book",{"title":47,"path":48,"stem":49,"icon":50},"Installation","\u002Fpackages\u002Fadonisjs-api-query\u002Fgetting-started\u002Finstallation","2.packages\u002Fadonisjs-api-query\u002F1.getting-started\u002F2.installation","i-tabler-download",{"title":52,"path":53,"stem":54,"icon":55},"Configuration","\u002Fpackages\u002Fadonisjs-api-query\u002Fgetting-started\u002Fconfiguration","2.packages\u002Fadonisjs-api-query\u002F1.getting-started\u002F3.configuration","i-tabler-settings",{"title":57,"icon":58,"path":59,"stem":60,"children":61,"page":22},"Features","i-tabler-sparkles","\u002Fpackages\u002Fadonisjs-api-query\u002Ffeatures","2.packages\u002Fadonisjs-api-query\u002F2.features",[62,67,72,77,82],{"title":63,"path":64,"stem":65,"icon":66},"Filtering","\u002Fpackages\u002Fadonisjs-api-query\u002Ffeatures\u002Ffiltering","2.packages\u002Fadonisjs-api-query\u002F2.features\u002F1.filtering","i-tabler-filter",{"title":68,"path":69,"stem":70,"icon":71},"Sorting","\u002Fpackages\u002Fadonisjs-api-query\u002Ffeatures\u002Fsorting","2.packages\u002Fadonisjs-api-query\u002F2.features\u002F2.sorting","i-tabler-arrows-sort",{"title":73,"path":74,"stem":75,"icon":76},"Including Relationships","\u002Fpackages\u002Fadonisjs-api-query\u002Ffeatures\u002Fincluding-relationships","2.packages\u002Fadonisjs-api-query\u002F2.features\u002F3.including-relationships","i-tabler-hierarchy-2",{"title":78,"path":79,"stem":80,"icon":81},"Filterable Classes","\u002Fpackages\u002Fadonisjs-api-query\u002Ffeatures\u002Ffilterable-classes","2.packages\u002Fadonisjs-api-query\u002F2.features\u002F4.filterable-classes","i-tabler-box-model",{"title":83,"path":84,"stem":85,"icon":86},"Validation","\u002Fpackages\u002Fadonisjs-api-query\u002Ffeatures\u002Fvalidation","2.packages\u002Fadonisjs-api-query\u002F2.features\u002F5.validation","i-tabler-shield-check",{"title":88,"icon":89,"path":90,"stem":91,"children":92,"page":22},"Advanced Usage","i-tabler-adjustments","\u002Fpackages\u002Fadonisjs-api-query\u002Fadvanced","2.packages\u002Fadonisjs-api-query\u002F3.advanced",[93,98,103],{"title":94,"path":95,"stem":96,"icon":97},"Custom Filters, Sorts & Includes","\u002Fpackages\u002Fadonisjs-api-query\u002Fadvanced\u002Fcustom-clauses","2.packages\u002Fadonisjs-api-query\u002F3.advanced\u002F1.custom-clauses","i-tabler-puzzle",{"title":99,"path":100,"stem":101,"icon":102},"Request & Delimiters","\u002Fpackages\u002Fadonisjs-api-query\u002Fadvanced\u002Frequest-and-delimiters","2.packages\u002Fadonisjs-api-query\u002F3.advanced\u002F2.request-and-delimiters","i-tabler-brackets-contain",{"title":104,"path":105,"stem":106,"icon":107},"Exceptions","\u002Fpackages\u002Fadonisjs-api-query\u002Fadvanced\u002Fexceptions","2.packages\u002Fadonisjs-api-query\u002F3.advanced\u002F3.exceptions","i-tabler-alert-triangle",{"title":109,"icon":110,"path":111,"stem":112,"children":113,"page":22},"AdonisJS Permission","i-tabler-shield-lock","\u002Fpackages\u002Fadonisjs-permission","2.packages\u002Fadonisjs-permission",[114,127,157,183],{"title":5,"icon":38,"path":115,"stem":116,"children":117,"page":22},"\u002Fpackages\u002Fadonisjs-permission\u002Fgetting-started","2.packages\u002Fadonisjs-permission\u002F1.getting-started",[118,121,124],{"title":10,"path":119,"stem":120,"icon":45},"\u002Fpackages\u002Fadonisjs-permission\u002Fgetting-started\u002Fintroduction","2.packages\u002Fadonisjs-permission\u002F1.getting-started\u002F1.introduction",{"title":47,"path":122,"stem":123,"icon":50},"\u002Fpackages\u002Fadonisjs-permission\u002Fgetting-started\u002Finstallation","2.packages\u002Fadonisjs-permission\u002F1.getting-started\u002F2.installation",{"title":52,"path":125,"stem":126,"icon":55},"\u002Fpackages\u002Fadonisjs-permission\u002Fgetting-started\u002Fconfiguration","2.packages\u002Fadonisjs-permission\u002F1.getting-started\u002F3.configuration",{"title":128,"icon":86,"path":129,"stem":130,"children":131,"page":22},"Basic Usage","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage","2.packages\u002Fadonisjs-permission\u002F2.basic-usage",[132,137,142,147,152],{"title":133,"path":134,"stem":135,"icon":136},"Roles & Permissions","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Froles-and-permissions","2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F1.roles-and-permissions","i-tabler-users",{"title":138,"path":139,"stem":140,"icon":141},"Checking Access","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fchecking","2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F2.checking","i-tabler-checks",{"title":143,"path":144,"stem":145,"icon":146},"Middleware","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fmiddleware","2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F3.middleware","i-tabler-route",{"title":148,"path":149,"stem":150,"icon":151},"Wildcard Permissions","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fwildcard-permissions","2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F4.wildcard-permissions","i-tabler-asterisk",{"title":153,"path":154,"stem":155,"icon":156},"Catalog & Sync","\u002Fpackages\u002Fadonisjs-permission\u002Fbasic-usage\u002Fcatalog","2.packages\u002Fadonisjs-permission\u002F2.basic-usage\u002F5.catalog","i-tabler-refresh",{"title":158,"icon":159,"path":160,"stem":161,"children":162,"page":22},"Advanced","i-tabler-tool","\u002Fpackages\u002Fadonisjs-permission\u002Fadvanced","2.packages\u002Fadonisjs-permission\u002F3.advanced",[163,168,173,178],{"title":164,"path":165,"stem":166,"icon":167},"Teams","\u002Fpackages\u002Fadonisjs-permission\u002Fadvanced\u002Fteams","2.packages\u002Fadonisjs-permission\u002F3.advanced\u002F1.teams","i-tabler-building",{"title":169,"path":170,"stem":171,"icon":172},"Super-Admin","\u002Fpackages\u002Fadonisjs-permission\u002Fadvanced\u002Fsuper-admin","2.packages\u002Fadonisjs-permission\u002F3.advanced\u002F2.super-admin","i-tabler-crown",{"title":174,"path":175,"stem":176,"icon":177},"Events","\u002Fpackages\u002Fadonisjs-permission\u002Fadvanced\u002Fevents","2.packages\u002Fadonisjs-permission\u002F3.advanced\u002F3.events","i-tabler-radio",{"title":179,"path":180,"stem":181,"icon":182},"Cache","\u002Fpackages\u002Fadonisjs-permission\u002Fadvanced\u002Fcache","2.packages\u002Fadonisjs-permission\u002F3.advanced\u002F4.cache","i-tabler-database",{"title":184,"icon":185,"path":186,"stem":187,"children":188,"page":22},"Upgrading","i-tabler-circle-arrow-up","\u002Fpackages\u002Fadonisjs-permission\u002Fupgrading","2.packages\u002Fadonisjs-permission\u002F4.upgrading",[189],{"title":190,"path":191,"stem":192,"icon":193},"From adonis-lucid-permission","\u002Fpackages\u002Fadonisjs-permission\u002Fupgrading\u002Ffrom-adonis-lucid-permission","2.packages\u002Fadonisjs-permission\u002F4.upgrading\u002F1.from-adonis-lucid-permission","i-tabler-git-compare",{"title":195,"icon":196,"path":197,"stem":198,"children":199,"page":22},"AdonisJS Sentry","i-tabler-brand-sentry","\u002Fpackages\u002Fadonisjs-sentry","2.packages\u002Fadonisjs-sentry",[200,213,232,252],{"title":5,"icon":38,"path":201,"stem":202,"children":203,"page":22},"\u002Fpackages\u002Fadonisjs-sentry\u002Fgetting-started","2.packages\u002Fadonisjs-sentry\u002F1.getting-started",[204,207,210],{"title":10,"path":205,"stem":206,"icon":45},"\u002Fpackages\u002Fadonisjs-sentry\u002Fgetting-started\u002Fintroduction","2.packages\u002Fadonisjs-sentry\u002F1.getting-started\u002F1.introduction",{"title":47,"path":208,"stem":209,"icon":50},"\u002Fpackages\u002Fadonisjs-sentry\u002Fgetting-started\u002Finstallation","2.packages\u002Fadonisjs-sentry\u002F1.getting-started\u002F2.installation",{"title":52,"path":211,"stem":212,"icon":55},"\u002Fpackages\u002Fadonisjs-sentry\u002Fgetting-started\u002Fconfiguration","2.packages\u002Fadonisjs-sentry\u002F1.getting-started\u002F3.configuration",{"title":214,"icon":215,"path":216,"stem":217,"children":218,"page":22},"Usage","i-tabler-activity","\u002Fpackages\u002Fadonisjs-sentry\u002Fusage","2.packages\u002Fadonisjs-sentry\u002F2.usage",[219,223,227],{"title":220,"path":221,"stem":222,"icon":107},"Exception Reporting","\u002Fpackages\u002Fadonisjs-sentry\u002Fusage\u002Fexception-reporting","2.packages\u002Fadonisjs-sentry\u002F2.usage\u002F1.exception-reporting",{"title":224,"path":225,"stem":226,"icon":146},"Tracing and Middleware","\u002Fpackages\u002Fadonisjs-sentry\u002Fusage\u002Ftracing-and-middleware","2.packages\u002Fadonisjs-sentry\u002F2.usage\u002F2.tracing-and-middleware",{"title":228,"path":229,"stem":230,"icon":231},"Verify Command","\u002Fpackages\u002Fadonisjs-sentry\u002Fusage\u002Fverify-command","2.packages\u002Fadonisjs-sentry\u002F2.usage\u002F3.verify-command","i-tabler-terminal-2",{"title":158,"icon":233,"path":234,"stem":235,"children":236,"page":22},"i-tabler-adjustments-alt","\u002Fpackages\u002Fadonisjs-sentry\u002Fadvanced","2.packages\u002Fadonisjs-sentry\u002F3.advanced",[237,242,247],{"title":238,"path":239,"stem":240,"icon":241},"Early Preloading","\u002Fpackages\u002Fadonisjs-sentry\u002Fadvanced\u002Fearly-preloading","2.packages\u002Fadonisjs-sentry\u002F3.advanced\u002F1.early-preloading","i-tabler-bolt",{"title":243,"path":244,"stem":245,"icon":246},"Source Maps and Releases","\u002Fpackages\u002Fadonisjs-sentry\u002Fadvanced\u002Fsource-maps-and-releases","2.packages\u002Fadonisjs-sentry\u002F3.advanced\u002F2.source-maps-and-releases","i-tabler-file-code",{"title":248,"path":249,"stem":250,"icon":251},"Custom Instrumentation","\u002Fpackages\u002Fadonisjs-sentry\u002Fadvanced\u002Fcustom-instrumentation","2.packages\u002Fadonisjs-sentry\u002F3.advanced\u002F3.custom-instrumentation","i-tabler-tools",{"title":253,"icon":254,"path":255,"stem":256,"children":257,"page":22},"API Reference","i-tabler-api","\u002Fpackages\u002Fadonisjs-sentry\u002Fapi-reference","2.packages\u002Fadonisjs-sentry\u002F4.api-reference",[258,263],{"title":259,"path":260,"stem":261,"icon":262},"Functions and Classes","\u002Fpackages\u002Fadonisjs-sentry\u002Fapi-reference\u002Ffunctions-and-classes","2.packages\u002Fadonisjs-sentry\u002F4.api-reference\u002F1.functions-and-classes","i-tabler-code",{"title":264,"path":265,"stem":266,"icon":267},"Types","\u002Fpackages\u002Fadonisjs-sentry\u002Fapi-reference\u002Ftypes","2.packages\u002Fadonisjs-sentry\u002F4.api-reference\u002F2.types","i-tabler-braces",{"title":269,"icon":270,"path":271,"stem":272,"children":273,"page":22},"AdonisJS Simple Auth","i-tabler-key","\u002Fpackages\u002Fadonisjs-simple-auth","2.packages\u002Fadonisjs-simple-auth",[274,288,305],{"title":5,"icon":38,"path":275,"stem":276,"children":277,"page":22},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fgetting-started","2.packages\u002Fadonisjs-simple-auth\u002F1.getting-started",[278,282,285],{"title":10,"path":279,"stem":280,"icon":281},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fgetting-started\u002Fintroduction","2.packages\u002Fadonisjs-simple-auth\u002F1.getting-started\u002F1.introduction","i-tabler-info-circle",{"title":47,"path":283,"stem":284,"icon":50},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fgetting-started\u002Finstallation","2.packages\u002Fadonisjs-simple-auth\u002F1.getting-started\u002F2.installation",{"title":52,"path":286,"stem":287,"icon":55},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fgetting-started\u002Fconfiguration","2.packages\u002Fadonisjs-simple-auth\u002F1.getting-started\u002F3.configuration",{"title":214,"icon":110,"path":289,"stem":290,"children":291,"page":22},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fusage","2.packages\u002Fadonisjs-simple-auth\u002F2.usage",[292,296,301],{"title":293,"path":294,"stem":295,"icon":231},"Generating API Keys","\u002Fpackages\u002Fadonisjs-simple-auth\u002Fusage\u002Fgenerating-api-keys","2.packages\u002Fadonisjs-simple-auth\u002F2.usage\u002F1.generating-api-keys",{"title":297,"path":298,"stem":299,"icon":300},"Protecting Routes","\u002Fpackages\u002Fadonisjs-simple-auth\u002Fusage\u002Fprotecting-routes","2.packages\u002Fadonisjs-simple-auth\u002F2.usage\u002F2.protecting-routes","i-tabler-lock",{"title":302,"path":303,"stem":304,"icon":107},"Error Handling & i18n","\u002Fpackages\u002Fadonisjs-simple-auth\u002Fusage\u002Ferror-handling","2.packages\u002Fadonisjs-simple-auth\u002F2.usage\u002F3.error-handling",{"title":158,"icon":89,"path":306,"stem":307,"children":308,"page":22},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fadvanced","2.packages\u002Fadonisjs-simple-auth\u002F3.advanced",[309,314],{"title":310,"path":311,"stem":312,"icon":313},"Testing with Japa","\u002Fpackages\u002Fadonisjs-simple-auth\u002Fadvanced\u002Ftesting-with-japa","2.packages\u002Fadonisjs-simple-auth\u002F3.advanced\u002F1.testing-with-japa","i-tabler-flask",{"title":253,"path":315,"stem":316,"icon":262},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fadvanced\u002Fapi-reference","2.packages\u002Fadonisjs-simple-auth\u002F3.advanced\u002F2.api-reference",{"title":318,"icon":319,"path":320,"stem":321,"children":322,"page":22},"AdonisJS Soft Deletes","i-tabler-trash-off","\u002Fpackages\u002Fadonisjs-soft-deletes","2.packages\u002Fadonisjs-soft-deletes",[323,333],{"title":5,"icon":38,"path":324,"stem":325,"children":326,"page":22},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fgetting-started","2.packages\u002Fadonisjs-soft-deletes\u002F1.getting-started",[327,330],{"title":10,"path":328,"stem":329,"icon":281},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fgetting-started\u002Fintroduction","2.packages\u002Fadonisjs-soft-deletes\u002F1.getting-started\u002F1.introduction",{"title":47,"path":331,"stem":332,"icon":50},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fgetting-started\u002Finstallation","2.packages\u002Fadonisjs-soft-deletes\u002F1.getting-started\u002F2.installation",{"title":214,"icon":45,"path":334,"stem":335,"children":336,"page":22},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fusage","2.packages\u002Fadonisjs-soft-deletes\u002F2.usage",[337,340],{"title":214,"path":338,"stem":339,"icon":262},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fusage\u002Fusage","2.packages\u002Fadonisjs-soft-deletes\u002F2.usage\u002F1.usage",{"title":253,"path":341,"stem":342,"icon":45},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fusage\u002Fapi-reference","2.packages\u002Fadonisjs-soft-deletes\u002F2.usage\u002F2.api-reference",{"title":344,"icon":345,"path":346,"stem":347,"children":348,"page":22},"ESLint Config","i-tabler-list-check","\u002Fpackages\u002Feslint-config","2.packages\u002Feslint-config",[349,362,385,404],{"title":5,"icon":38,"path":350,"stem":351,"children":352,"page":22},"\u002Fpackages\u002Feslint-config\u002Fgetting-started","2.packages\u002Feslint-config\u002F1.getting-started",[353,356,359],{"title":10,"path":354,"stem":355,"icon":281},"\u002Fpackages\u002Feslint-config\u002Fgetting-started\u002Fintroduction","2.packages\u002Feslint-config\u002F1.getting-started\u002F1.introduction",{"title":47,"path":357,"stem":358,"icon":50},"\u002Fpackages\u002Feslint-config\u002Fgetting-started\u002Finstallation","2.packages\u002Feslint-config\u002F1.getting-started\u002F2.installation",{"title":52,"path":360,"stem":361,"icon":55},"\u002Fpackages\u002Feslint-config\u002Fgetting-started\u002Fconfiguration","2.packages\u002Feslint-config\u002F1.getting-started\u002F3.configuration",{"title":363,"icon":58,"path":364,"stem":365,"children":366,"page":22},"Usage & Features","\u002Fpackages\u002Feslint-config\u002Fusage","2.packages\u002Feslint-config\u002F2.usage",[367,371,375,380],{"title":368,"path":369,"stem":370,"icon":231},"CLI Wizard","\u002Fpackages\u002Feslint-config\u002Fusage\u002Fcli-wizard","2.packages\u002Feslint-config\u002F2.usage\u002F1.cli-wizard",{"title":372,"path":373,"stem":374,"icon":97},"Frameworks","\u002Fpackages\u002Feslint-config\u002Fusage\u002Fframeworks","2.packages\u002Feslint-config\u002F2.usage\u002F2.frameworks",{"title":376,"path":377,"stem":378,"icon":379},"TypeScript & Node","\u002Fpackages\u002Feslint-config\u002Fusage\u002Ftypescript","2.packages\u002Feslint-config\u002F2.usage\u002F3.typescript","i-tabler-brand-typescript",{"title":381,"path":382,"stem":383,"icon":384},"Stylistic & Formatters","\u002Fpackages\u002Feslint-config\u002Fusage\u002Fstylistic-and-formatters","2.packages\u002Feslint-config\u002F2.usage\u002F4.stylistic-and-formatters","i-tabler-wand",{"title":386,"icon":89,"path":387,"stem":388,"children":389,"page":22},"Customization","\u002Fpackages\u002Feslint-config\u002Fcustomization","2.packages\u002Feslint-config\u002F3.customization",[390,395,400],{"title":391,"path":392,"stem":393,"icon":394},"Composer & Overrides","\u002Fpackages\u002Feslint-config\u002Fcustomization\u002Fcomposer-and-overrides","2.packages\u002Feslint-config\u002F3.customization\u002F1.composer-and-overrides","i-tabler-layers-subtract",{"title":396,"path":397,"stem":398,"icon":399},"Ignores & Globs","\u002Fpackages\u002Feslint-config\u002Fcustomization\u002Fignores-and-globs","2.packages\u002Feslint-config\u002F3.customization\u002F2.ignores-and-globs","i-tabler-file-off",{"title":401,"path":402,"stem":403,"icon":262},"Editor Integration","\u002Fpackages\u002Feslint-config\u002Fcustomization\u002Feditor-integration","2.packages\u002Feslint-config\u002F3.customization\u002F3.editor-integration",{"title":253,"icon":45,"path":405,"stem":406,"children":407,"page":22},"\u002Fpackages\u002Feslint-config\u002Fapi-reference","2.packages\u002Feslint-config\u002F4.api-reference",[408,413,417],{"title":409,"path":410,"stem":411,"icon":412},"Factory & Presets","\u002Fpackages\u002Feslint-config\u002Fapi-reference\u002Ffactory-and-presets","2.packages\u002Feslint-config\u002F4.api-reference\u002F1.factory-and-presets","i-tabler-function",{"title":414,"path":415,"stem":416,"icon":30},"Sub-Configs","\u002Fpackages\u002Feslint-config\u002Fapi-reference\u002Fsub-configs","2.packages\u002Feslint-config\u002F4.api-reference\u002F2.sub-configs",{"title":418,"path":419,"stem":420,"icon":251},"Utilities & Globs","\u002Fpackages\u002Feslint-config\u002Fapi-reference\u002Futilities-and-globs","2.packages\u002Feslint-config\u002F4.api-reference\u002F3.utilities-and-globs",{"id":422,"title":220,"body":423,"description":1690,"extension":1691,"meta":1692,"navigation":1693,"path":221,"seo":1694,"stem":222,"__hash__":1695},"docs\u002F2.packages\u002Fadonisjs-sentry\u002F2.usage\u002F1.exception-reporting.md",{"type":424,"value":425,"toc":1676},"minimark",[426,443,448,455,678,690,694,702,909,913,922,979,1101,1105,1114,1119,1181,1185,1192,1305,1309,1317,1327,1359,1370,1373,1427,1431,1445,1449,1466,1513,1517,1523,1577,1584,1611,1620,1672],[427,428,429,430,434,435,438,439,442],"p",{},"Exception reporting in ",[431,432,433],"code",{},"@eienjs\u002Fadonisjs-sentry"," is powered by the ",[431,436,437],{},"reportException"," function. It captures unhandled exceptions while automatically extracting contextual information from the current AdonisJS ",[431,440,441],{},"HttpContext",".",[444,445,447],"h2",{"id":446},"global-exception-handler","Global Exception Handler",[427,449,450,451,454],{},"The standard way to report errors in AdonisJS is within ",[431,452,453],{},"app\u002Fexceptions\u002Fhandler.ts",":",[456,457,462],"pre",{"className":458,"code":459,"filename":453,"language":460,"meta":461,"style":461},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import type { HttpContext } from '@adonisjs\u002Fcore\u002Fhttp';\nimport { ExceptionHandler } from '@adonisjs\u002Fcore\u002Fhttp';\nimport { reportException } from '@eienjs\u002Fadonisjs-sentry';\n\nexport default class HttpExceptionHandler extends ExceptionHandler {\n  async report(error: unknown, ctx: HttpContext) {\n    reportException(error, ctx);\n\n    await super.report(error, ctx);\n  }\n}\n","ts","",[431,463,464,503,525,547,554,579,616,635,640,666,672],{"__ignoreMap":461},[465,466,469,473,476,480,484,487,490,493,497,500],"span",{"class":467,"line":468},"line",1,[465,470,472],{"class":471},"s7zQu","import",[465,474,475],{"class":471}," type",[465,477,479],{"class":478},"sMK4o"," {",[465,481,483],{"class":482},"sTEyZ"," HttpContext",[465,485,486],{"class":478}," }",[465,488,489],{"class":471}," from",[465,491,492],{"class":478}," '",[465,494,496],{"class":495},"sfazB","@adonisjs\u002Fcore\u002Fhttp",[465,498,499],{"class":478},"'",[465,501,502],{"class":478},";\n",[465,504,506,508,510,513,515,517,519,521,523],{"class":467,"line":505},2,[465,507,472],{"class":471},[465,509,479],{"class":478},[465,511,512],{"class":482}," ExceptionHandler",[465,514,486],{"class":478},[465,516,489],{"class":471},[465,518,492],{"class":478},[465,520,496],{"class":495},[465,522,499],{"class":478},[465,524,502],{"class":478},[465,526,528,530,532,535,537,539,541,543,545],{"class":467,"line":527},3,[465,529,472],{"class":471},[465,531,479],{"class":478},[465,533,534],{"class":482}," reportException",[465,536,486],{"class":478},[465,538,489],{"class":471},[465,540,492],{"class":478},[465,542,433],{"class":495},[465,544,499],{"class":478},[465,546,502],{"class":478},[465,548,550],{"class":467,"line":549},4,[465,551,553],{"emptyLinePlaceholder":552},true,"\n",[465,555,557,560,563,567,571,574,576],{"class":467,"line":556},5,[465,558,559],{"class":471},"export",[465,561,562],{"class":471}," default",[465,564,566],{"class":565},"spNyl"," class",[465,568,570],{"class":569},"sBMFI"," HttpExceptionHandler",[465,572,573],{"class":565}," extends",[465,575,512],{"class":569},[465,577,578],{"class":478}," {\n",[465,580,582,585,589,592,596,598,601,604,607,609,611,614],{"class":467,"line":581},6,[465,583,584],{"class":565},"  async",[465,586,588],{"class":587},"swJcz"," report",[465,590,591],{"class":478},"(",[465,593,595],{"class":594},"sHdIc","error",[465,597,454],{"class":478},[465,599,600],{"class":569}," unknown",[465,602,603],{"class":478},",",[465,605,606],{"class":594}," ctx",[465,608,454],{"class":478},[465,610,483],{"class":569},[465,612,613],{"class":478},")",[465,615,578],{"class":478},[465,617,619,623,625,627,629,631,633],{"class":467,"line":618},7,[465,620,622],{"class":621},"s2Zo4","    reportException",[465,624,591],{"class":587},[465,626,595],{"class":482},[465,628,603],{"class":478},[465,630,606],{"class":482},[465,632,613],{"class":587},[465,634,502],{"class":478},[465,636,638],{"class":467,"line":637},8,[465,639,553],{"emptyLinePlaceholder":552},[465,641,643,646,649,651,654,656,658,660,662,664],{"class":467,"line":642},9,[465,644,645],{"class":471},"    await",[465,647,648],{"class":482}," super",[465,650,442],{"class":478},[465,652,653],{"class":621},"report",[465,655,591],{"class":587},[465,657,595],{"class":482},[465,659,603],{"class":478},[465,661,606],{"class":482},[465,663,613],{"class":587},[465,665,502],{"class":478},[465,667,669],{"class":467,"line":668},10,[465,670,671],{"class":478},"  }\n",[465,673,675],{"class":467,"line":674},11,[465,676,677],{"class":478},"}\n",[679,680,681],"tip",{},[427,682,683,685,686,689],{},[431,684,437],{}," returns the generated Sentry event ID string, or ",[431,687,688],{},"undefined"," if Sentry is disabled or the error was ignored.",[444,691,693],{"id":692},"manual-exception-reporting","Manual Exception Reporting",[427,695,696,697,699,700,454],{},"You can also call ",[431,698,437],{}," manually in services, background queues, or scheduled jobs without an ",[431,701,441],{},[456,703,706],{"className":458,"code":704,"filename":705,"language":460,"meta":461,"style":461},"import { reportException } from '@eienjs\u002Fadonisjs-sentry';\n\nexport class BillingService {\n  async processPayment(orderId: string) {\n    try {\n      await this.chargeGateway(orderId);\n    } catch (error) {\n      \u002F\u002F Captures the exception without HTTP context\n      const eventId = reportException(error);\n      \u002F\u002F ... handle fallback\n    }\n  }\n\n  private async chargeGateway(orderId: string): Promise\u003Cvoid> {\n    \u002F\u002F Process payment gateway charge\n  }\n}\n","app\u002Fservices\u002Fbilling_service.ts",[431,707,708,728,732,743,764,771,790,809,815,836,841,846,851,856,893,899,904],{"__ignoreMap":461},[465,709,710,712,714,716,718,720,722,724,726],{"class":467,"line":468},[465,711,472],{"class":471},[465,713,479],{"class":478},[465,715,534],{"class":482},[465,717,486],{"class":478},[465,719,489],{"class":471},[465,721,492],{"class":478},[465,723,433],{"class":495},[465,725,499],{"class":478},[465,727,502],{"class":478},[465,729,730],{"class":467,"line":505},[465,731,553],{"emptyLinePlaceholder":552},[465,733,734,736,738,741],{"class":467,"line":527},[465,735,559],{"class":471},[465,737,566],{"class":565},[465,739,740],{"class":569}," BillingService",[465,742,578],{"class":478},[465,744,745,747,750,752,755,757,760,762],{"class":467,"line":549},[465,746,584],{"class":565},[465,748,749],{"class":587}," processPayment",[465,751,591],{"class":478},[465,753,754],{"class":594},"orderId",[465,756,454],{"class":478},[465,758,759],{"class":569}," string",[465,761,613],{"class":478},[465,763,578],{"class":478},[465,765,766,769],{"class":467,"line":556},[465,767,768],{"class":471},"    try",[465,770,578],{"class":478},[465,772,773,776,779,782,784,786,788],{"class":467,"line":581},[465,774,775],{"class":471},"      await",[465,777,778],{"class":478}," this.",[465,780,781],{"class":621},"chargeGateway",[465,783,591],{"class":587},[465,785,754],{"class":482},[465,787,613],{"class":587},[465,789,502],{"class":478},[465,791,792,795,798,801,803,806],{"class":467,"line":618},[465,793,794],{"class":478},"    }",[465,796,797],{"class":471}," catch",[465,799,800],{"class":587}," (",[465,802,595],{"class":482},[465,804,805],{"class":587},") ",[465,807,808],{"class":478},"{\n",[465,810,811],{"class":467,"line":637},[465,812,814],{"class":813},"sHwdD","      \u002F\u002F Captures the exception without HTTP context\n",[465,816,817,820,823,826,828,830,832,834],{"class":467,"line":642},[465,818,819],{"class":565},"      const",[465,821,822],{"class":482}," eventId",[465,824,825],{"class":478}," =",[465,827,534],{"class":621},[465,829,591],{"class":587},[465,831,595],{"class":482},[465,833,613],{"class":587},[465,835,502],{"class":478},[465,837,838],{"class":467,"line":668},[465,839,840],{"class":813},"      \u002F\u002F ... handle fallback\n",[465,842,843],{"class":467,"line":674},[465,844,845],{"class":478},"    }\n",[465,847,849],{"class":467,"line":848},12,[465,850,671],{"class":478},[465,852,854],{"class":467,"line":853},13,[465,855,553],{"emptyLinePlaceholder":552},[465,857,859,862,865,868,870,872,874,876,879,882,885,888,891],{"class":467,"line":858},14,[465,860,861],{"class":565},"  private",[465,863,864],{"class":565}," async",[465,866,867],{"class":587}," chargeGateway",[465,869,591],{"class":478},[465,871,754],{"class":594},[465,873,454],{"class":478},[465,875,759],{"class":569},[465,877,878],{"class":478},"):",[465,880,881],{"class":569}," Promise",[465,883,884],{"class":478},"\u003C",[465,886,887],{"class":569},"void",[465,889,890],{"class":478},">",[465,892,578],{"class":478},[465,894,896],{"class":467,"line":895},15,[465,897,898],{"class":813},"    \u002F\u002F Process payment gateway charge\n",[465,900,902],{"class":467,"line":901},16,[465,903,671],{"class":478},[465,905,907],{"class":467,"line":906},17,[465,908,677],{"class":478},[444,910,912],{"id":911},"how-errors-are-filtered","How Errors Are Filtered",[427,914,915,916,918,919,454],{},"Before delivering any event to Sentry, ",[431,917,437],{}," runs filtering checks against your rules defined in ",[431,920,921],{},"config\u002Fsentry.ts",[923,924,925,937,954,967],"ol",{},[926,927,928,932,933,936],"li",{},[929,930,931],"strong",{},"Initialization check",": If ",[431,934,935],{},"Sentry.isInitialized()"," is false, reporting is immediately skipped.",[926,938,939,932,942,945,946,949,950,953],{},[929,940,941],{},"HTTP Status filtering",[431,943,944],{},"error.status"," exists (or is treated as ",[431,947,948],{},"500"," if absent) and matches ",[431,951,952],{},"ignoreStatuses",", the error is discarded.",[926,955,956,932,959,962,963,966],{},[929,957,958],{},"Error Code filtering",[431,960,961],{},"error.code"," matches any string in ",[431,964,965],{},"ignoreCodes",", it is ignored.",[926,968,969,932,972,975,976,966],{},[929,970,971],{},"Exception Class filtering",[431,973,974],{},"error instanceof exception"," matches any constructor in ",[431,977,978],{},"ignoreExceptions",[456,980,982],{"className":458,"code":981,"filename":921,"language":460,"meta":461,"style":461},"export default defineConfig({\n  \u002F\u002F ...\n  report: {\n    ignoreStatuses: [401, 403, 404, 422],\n    ignoreCodes: ['E_UNAUTHORIZED_ACCESS', 'E_VALIDATION_ERROR'],\n    ignoreExceptions: [],\n  },\n});\n",[431,983,984,997,1002,1011,1046,1075,1087,1092],{"__ignoreMap":461},[465,985,986,988,990,993,995],{"class":467,"line":468},[465,987,559],{"class":471},[465,989,562],{"class":471},[465,991,992],{"class":621}," defineConfig",[465,994,591],{"class":482},[465,996,808],{"class":478},[465,998,999],{"class":467,"line":505},[465,1000,1001],{"class":813},"  \u002F\u002F ...\n",[465,1003,1004,1007,1009],{"class":467,"line":527},[465,1005,1006],{"class":587},"  report",[465,1008,454],{"class":478},[465,1010,578],{"class":478},[465,1012,1013,1016,1018,1021,1025,1027,1030,1032,1035,1037,1040,1043],{"class":467,"line":549},[465,1014,1015],{"class":587},"    ignoreStatuses",[465,1017,454],{"class":478},[465,1019,1020],{"class":482}," [",[465,1022,1024],{"class":1023},"sbssI","401",[465,1026,603],{"class":478},[465,1028,1029],{"class":1023}," 403",[465,1031,603],{"class":478},[465,1033,1034],{"class":1023}," 404",[465,1036,603],{"class":478},[465,1038,1039],{"class":1023}," 422",[465,1041,1042],{"class":482},"]",[465,1044,1045],{"class":478},",\n",[465,1047,1048,1051,1053,1055,1057,1060,1062,1064,1066,1069,1071,1073],{"class":467,"line":556},[465,1049,1050],{"class":587},"    ignoreCodes",[465,1052,454],{"class":478},[465,1054,1020],{"class":482},[465,1056,499],{"class":478},[465,1058,1059],{"class":495},"E_UNAUTHORIZED_ACCESS",[465,1061,499],{"class":478},[465,1063,603],{"class":478},[465,1065,492],{"class":478},[465,1067,1068],{"class":495},"E_VALIDATION_ERROR",[465,1070,499],{"class":478},[465,1072,1042],{"class":482},[465,1074,1045],{"class":478},[465,1076,1077,1080,1082,1085],{"class":467,"line":581},[465,1078,1079],{"class":587},"    ignoreExceptions",[465,1081,454],{"class":478},[465,1083,1084],{"class":482}," []",[465,1086,1045],{"class":478},[465,1088,1089],{"class":467,"line":618},[465,1090,1091],{"class":478},"  },\n",[465,1093,1094,1097,1099],{"class":467,"line":637},[465,1095,1096],{"class":478},"}",[465,1098,613],{"class":482},[465,1100,502],{"class":478},[444,1102,1104],{"id":1103},"context-and-tags-attached","Context and Tags Attached",[427,1106,1107,1108,1110,1111,1113],{},"When an ",[431,1109,441],{}," is supplied, ",[431,1112,437],{}," sets up an isolated Sentry scope with comprehensive diagnostic data:",[1115,1116,1118],"h3",{"id":1117},"tags","Tags",[1120,1121,1122,1131,1143,1160,1172],"ul",{},[926,1123,1124,1126,1127,1130],{},[431,1125,961],{},": The error code (e.g. ",[431,1128,1129],{},"E_ROW_NOT_FOUND",").",[926,1132,1133,1136,1137,1139,1140,1130],{},[431,1134,1135],{},"http.status_code",": The HTTP response code (e.g. ",[431,1138,948],{},", ",[431,1141,1142],{},"400",[926,1144,1145,1148,1149,1152,1153,1156,1157,442],{},[431,1146,1147],{},"route",": The matched route pattern (e.g. ",[431,1150,1151],{},"\u002Fapi\u002Fv1\u002Fusers\u002F:id","), falling back to ",[431,1154,1155],{},"ctx.routeKey"," or ",[431,1158,1159],{},"'unknown'",[926,1161,1162,1165,1166,1139,1169,1130],{},[431,1163,1164],{},"http.method",": HTTP method in uppercase (e.g. ",[431,1167,1168],{},"GET",[431,1170,1171],{},"POST",[926,1173,1174,1177,1178,442],{},[431,1175,1176],{},"request_id",": The unique request identifier from ",[431,1179,1180],{},"ctx.request.id()",[1115,1182,1184],{"id":1183},"request-context","Request Context",[427,1186,1187,1188,1191],{},"A structured context block named ",[431,1189,1190],{},"request"," is added to the event:",[456,1193,1197],{"className":1194,"code":1195,"language":1196,"meta":461,"style":461},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"url\": \"https:\u002F\u002Fapi.example.com\u002Fusers\u002F42?include=profile\",\n  \"method\": \"GET\",\n  \"route\": \"\u002Fusers\u002F:id\",\n  \"params\": {\n    \"id\": \"42\"\n  }\n}\n","json",[431,1198,1199,1203,1226,1245,1264,1277,1297,1301],{"__ignoreMap":461},[465,1200,1201],{"class":467,"line":468},[465,1202,808],{"class":478},[465,1204,1205,1208,1211,1214,1216,1219,1222,1224],{"class":467,"line":505},[465,1206,1207],{"class":478},"  \"",[465,1209,1210],{"class":565},"url",[465,1212,1213],{"class":478},"\"",[465,1215,454],{"class":478},[465,1217,1218],{"class":478}," \"",[465,1220,1221],{"class":495},"https:\u002F\u002Fapi.example.com\u002Fusers\u002F42?include=profile",[465,1223,1213],{"class":478},[465,1225,1045],{"class":478},[465,1227,1228,1230,1233,1235,1237,1239,1241,1243],{"class":467,"line":527},[465,1229,1207],{"class":478},[465,1231,1232],{"class":565},"method",[465,1234,1213],{"class":478},[465,1236,454],{"class":478},[465,1238,1218],{"class":478},[465,1240,1168],{"class":495},[465,1242,1213],{"class":478},[465,1244,1045],{"class":478},[465,1246,1247,1249,1251,1253,1255,1257,1260,1262],{"class":467,"line":549},[465,1248,1207],{"class":478},[465,1250,1147],{"class":565},[465,1252,1213],{"class":478},[465,1254,454],{"class":478},[465,1256,1218],{"class":478},[465,1258,1259],{"class":495},"\u002Fusers\u002F:id",[465,1261,1213],{"class":478},[465,1263,1045],{"class":478},[465,1265,1266,1268,1271,1273,1275],{"class":467,"line":556},[465,1267,1207],{"class":478},[465,1269,1270],{"class":565},"params",[465,1272,1213],{"class":478},[465,1274,454],{"class":478},[465,1276,578],{"class":478},[465,1278,1279,1282,1285,1287,1289,1291,1294],{"class":467,"line":581},[465,1280,1281],{"class":478},"    \"",[465,1283,1284],{"class":569},"id",[465,1286,1213],{"class":478},[465,1288,454],{"class":478},[465,1290,1218],{"class":478},[465,1292,1293],{"class":495},"42",[465,1295,1296],{"class":478},"\"\n",[465,1298,1299],{"class":467,"line":618},[465,1300,671],{"class":478},[465,1302,1303],{"class":467,"line":637},[465,1304,677],{"class":478},[444,1306,1308],{"id":1307},"smart-fingerprinting-by-error-code","Smart Fingerprinting by Error Code",[427,1310,1311,1312,1156,1314,442],{},"In AdonisJS, built-in and custom exceptions typically define a unique code string such as ",[431,1313,1129],{},[431,1315,1316],{},"E_INVALID_CREDENTIALS",[427,1318,1319,1320,1323,1324,1326],{},"By default (",[431,1321,1322],{},"fingerprintByCode: true","), ",[431,1325,437],{}," groups issues in Sentry using:",[456,1328,1330],{"className":458,"code":1329,"language":460,"meta":461,"style":461},"scope.setFingerprint(['{{ default }}', code]);\n",[431,1331,1332],{"__ignoreMap":461},[465,1333,1334,1337,1339,1342,1345,1347,1350,1352,1354,1357],{"class":467,"line":468},[465,1335,1336],{"class":482},"scope",[465,1338,442],{"class":478},[465,1340,1341],{"class":621},"setFingerprint",[465,1343,1344],{"class":482},"([",[465,1346,499],{"class":478},[465,1348,1349],{"class":495},"{{ default }}",[465,1351,499],{"class":478},[465,1353,603],{"class":478},[465,1355,1356],{"class":482}," code])",[465,1358,502],{"class":478},[427,1360,1361,1362,1365,1366,1369],{},"This prevents issues with dynamic error messages (such as ",[431,1363,1364],{},"\"Cannot find user with ID 42\""," and ",[431,1367,1368],{},"\"Cannot find user with ID 99\"",") from creating hundreds of separate issues in your Sentry dashboard.",[427,1371,1372],{},"To disable this behavior and use Sentry's default grouping algorithms, set:",[456,1374,1376],{"className":458,"code":1375,"filename":921,"language":460,"meta":461,"style":461},"export default defineConfig({\n  \u002F\u002F ...\n  report: {\n    fingerprintByCode: false,\n  },\n});\n",[431,1377,1378,1390,1394,1402,1415,1419],{"__ignoreMap":461},[465,1379,1380,1382,1384,1386,1388],{"class":467,"line":468},[465,1381,559],{"class":471},[465,1383,562],{"class":471},[465,1385,992],{"class":621},[465,1387,591],{"class":482},[465,1389,808],{"class":478},[465,1391,1392],{"class":467,"line":505},[465,1393,1001],{"class":813},[465,1395,1396,1398,1400],{"class":467,"line":527},[465,1397,1006],{"class":587},[465,1399,454],{"class":478},[465,1401,578],{"class":478},[465,1403,1404,1407,1409,1413],{"class":467,"line":549},[465,1405,1406],{"class":587},"    fingerprintByCode",[465,1408,454],{"class":478},[465,1410,1412],{"class":1411},"sfNiH"," false",[465,1414,1045],{"class":478},[465,1416,1417],{"class":467,"line":556},[465,1418,1091],{"class":478},[465,1420,1421,1423,1425],{"class":467,"line":581},[465,1422,1096],{"class":478},[465,1424,613],{"class":482},[465,1426,502],{"class":478},[444,1428,1430],{"id":1429},"user-context-and-pii-protection","User Context and PII Protection",[427,1432,1433,1434,1437,1438,1440,1441,1444],{},"When ",[431,1435,1436],{},"@adonisjs\u002Fauth"," is installed and a user is authenticated, ",[431,1439,437],{}," automatically extracts ",[431,1442,1443],{},"ctx.auth.user"," and attaches it to the Sentry scope.",[1115,1446,1448],{"id":1447},"privacy-default-user-id-only","Privacy Default: User ID Only",[427,1450,1451,1452,1455,1456,1459,1460,1462,1463,1465],{},"By default, ",[431,1453,1454],{},"dataCollection.userInfo"," is set to ",[431,1457,1458],{},"false"," in ",[431,1461,921],{},". In this mode, only the user's ",[431,1464,1284],{}," is transmitted:",[456,1467,1469],{"className":1194,"code":1468,"language":1196,"meta":461,"style":461},"{\n  \"user\": {\n    \"id\": \"123\"\n  }\n}\n",[431,1470,1471,1475,1488,1505,1509],{"__ignoreMap":461},[465,1472,1473],{"class":467,"line":468},[465,1474,808],{"class":478},[465,1476,1477,1479,1482,1484,1486],{"class":467,"line":505},[465,1478,1207],{"class":478},[465,1480,1481],{"class":565},"user",[465,1483,1213],{"class":478},[465,1485,454],{"class":478},[465,1487,578],{"class":478},[465,1489,1490,1492,1494,1496,1498,1500,1503],{"class":467,"line":527},[465,1491,1281],{"class":478},[465,1493,1284],{"class":569},[465,1495,1213],{"class":478},[465,1497,454],{"class":478},[465,1499,1218],{"class":478},[465,1501,1502],{"class":495},"123",[465,1504,1296],{"class":478},[465,1506,1507],{"class":467,"line":549},[465,1508,671],{"class":478},[465,1510,1511],{"class":467,"line":556},[465,1512,677],{"class":478},[1115,1514,1516],{"id":1515},"enabling-full-user-information","Enabling Full User Information",[427,1518,1519,1520,454],{},"If your privacy policy and compliance requirements allow transmitting user emails and IP addresses, set ",[431,1521,1522],{},"dataCollection.userInfo: true",[456,1524,1526],{"className":458,"code":1525,"filename":921,"language":460,"meta":461,"style":461},"export default defineConfig({\n  \u002F\u002F ...\n  dataCollection: {\n    userInfo: true,\n  },\n});\n",[431,1527,1528,1540,1544,1553,1565,1569],{"__ignoreMap":461},[465,1529,1530,1532,1534,1536,1538],{"class":467,"line":468},[465,1531,559],{"class":471},[465,1533,562],{"class":471},[465,1535,992],{"class":621},[465,1537,591],{"class":482},[465,1539,808],{"class":478},[465,1541,1542],{"class":467,"line":505},[465,1543,1001],{"class":813},[465,1545,1546,1549,1551],{"class":467,"line":527},[465,1547,1548],{"class":587},"  dataCollection",[465,1550,454],{"class":478},[465,1552,578],{"class":478},[465,1554,1555,1558,1560,1563],{"class":467,"line":549},[465,1556,1557],{"class":587},"    userInfo",[465,1559,454],{"class":478},[465,1561,1562],{"class":1411}," true",[465,1564,1045],{"class":478},[465,1566,1567],{"class":467,"line":556},[465,1568,1091],{"class":478},[465,1570,1571,1573,1575],{"class":467,"line":581},[465,1572,1096],{"class":478},[465,1574,613],{"class":482},[465,1576,502],{"class":478},[427,1578,1579,1580,1583],{},"With ",[431,1581,1582],{},"userInfo: true",", the scope includes:",[1120,1585,1586,1594,1603],{},[926,1587,1588,1590,1591],{},[431,1589,1284],{},": ",[431,1592,1593],{},"String(ctx.auth.user.id)",[926,1595,1596,1590,1599,1602],{},[431,1597,1598],{},"email",[431,1600,1601],{},"ctx.auth.user.email"," (if string)",[926,1604,1605,1590,1608],{},[431,1606,1607],{},"ip_address",[431,1609,1610],{},"ctx.request.ip()",[427,1612,1613,1614,1617,1618,454],{},"To completely disable user capturing, set ",[431,1615,1616],{},"captureUser: false"," inside ",[431,1619,653],{},[456,1621,1623],{"className":458,"code":1622,"filename":921,"language":460,"meta":461,"style":461},"export default defineConfig({\n  \u002F\u002F ...\n  report: {\n    captureUser: false,\n  },\n});\n",[431,1624,1625,1637,1641,1649,1660,1664],{"__ignoreMap":461},[465,1626,1627,1629,1631,1633,1635],{"class":467,"line":468},[465,1628,559],{"class":471},[465,1630,562],{"class":471},[465,1632,992],{"class":621},[465,1634,591],{"class":482},[465,1636,808],{"class":478},[465,1638,1639],{"class":467,"line":505},[465,1640,1001],{"class":813},[465,1642,1643,1645,1647],{"class":467,"line":527},[465,1644,1006],{"class":587},[465,1646,454],{"class":478},[465,1648,578],{"class":478},[465,1650,1651,1654,1656,1658],{"class":467,"line":549},[465,1652,1653],{"class":587},"    captureUser",[465,1655,454],{"class":478},[465,1657,1412],{"class":1411},[465,1659,1045],{"class":478},[465,1661,1662],{"class":467,"line":556},[465,1663,1091],{"class":478},[465,1665,1666,1668,1670],{"class":467,"line":581},[465,1667,1096],{"class":478},[465,1669,613],{"class":482},[465,1671,502],{"class":478},[1673,1674,1675],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":461,"searchDepth":468,"depth":505,"links":1677},[1678,1679,1680,1681,1685,1686],{"id":446,"depth":505,"text":447},{"id":692,"depth":505,"text":693},{"id":911,"depth":505,"text":912},{"id":1103,"depth":505,"text":1104,"children":1682},[1683,1684],{"id":1117,"depth":527,"text":1118},{"id":1183,"depth":527,"text":1184},{"id":1307,"depth":505,"text":1308},{"id":1429,"depth":505,"text":1430,"children":1687},[1688,1689],{"id":1447,"depth":527,"text":1448},{"id":1515,"depth":527,"text":1516},"Capture, enrich, and filter exceptions with HTTP context, user details, and smart fingerprinting.","md",{},{"icon":107},{"title":220,"description":1690},"0BT3nHTUvXhLLY6rLJR0YwKQzgJ6cf3YNU6V_r7XDFs",[1697,1699],{"title":52,"path":211,"stem":212,"description":1698,"icon":55,"children":-1},"Customize Sentry options, sampling rates, PII settings, and exception ignore lists in config\u002Fsentry.ts.",{"title":224,"path":225,"stem":226,"description":1700,"icon":146,"children":-1},"Isolate request scopes, monitor performance traces, and set transaction names with SentryMiddleware.",{"id":1702,"extension":1196,"meta":1703,"packages":1704,"stem":1748,"__hash__":1749},"packages\u002Fdata\u002Fpackages.json",{},[1705,1712,1718,1724,1730,1736,1742],{"name":1706,"title":1707,"description":1708,"icon":86,"category":1709,"repo":1710,"version":1711,"docs":552,"featured":552},"adonisjs-permission","Permission","Associate users with roles and permissions in your AdonisJS app","adonisjs","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-permission","1.0.0",{"name":1713,"title":1714,"description":1715,"icon":33,"category":1709,"repo":1716,"version":1717,"docs":552,"featured":552},"adonisjs-api-query","API Query","Easily build Lucid queries from API requests","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-api-query","3.0.1",{"name":1719,"title":1720,"description":1721,"icon":319,"category":1709,"repo":1722,"version":1723,"docs":552,"featured":552},"adonisjs-soft-deletes","Soft Deletes","Provider-based Soft deletes for AdonisJS","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-soft-deletes","1.0.2",{"name":1725,"title":1726,"description":1727,"icon":270,"category":1709,"repo":1728,"version":1729,"docs":552},"adonisjs-simple-auth","Simple Auth","Single API key authentication for AdonisJS v7 applications","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-simple-auth","2.1.1",{"name":1731,"title":1732,"description":1733,"icon":196,"category":1709,"repo":1734,"version":1735,"docs":552,"featured":22},"adonisjs-sentry","Sentry","Sentry service provider for AdonisJS","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-sentry","3.0.0",{"name":1737,"title":344,"description":1738,"icon":345,"category":1739,"repo":1740,"version":1741,"docs":552,"featured":22},"eslint-config","EienJS ESLint Config","tooling","https:\u002F\u002Fgithub.com\u002Feienjs\u002Feslint-config","2.3.2",{"name":1743,"title":1744,"description":1745,"icon":1746,"category":1739,"repo":1747,"docs":22},"adonisjs-pkg-boilerplate","Package Boilerplate","A boilerplate for creating AdonisJS packages.","i-tabler-package","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-pkg-boilerplate","data\u002Fpackages","yO-yKHzkla0f83FSb61DlZNLzOMCkFiaPByfyH7Znkg",1794458200581]