[{"data":1,"prerenderedAt":883},["ShallowReactive",2],{"navigation":3,"\u002Fpackages\u002Fadonisjs-sentry\u002Fgetting-started\u002Fintroduction":421,"\u002Fpackages\u002Fadonisjs-sentry\u002Fgetting-started\u002Fintroduction-surround":828,"packages-data":833},[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":10,"body":423,"description":822,"extension":823,"meta":824,"navigation":825,"path":205,"seo":826,"stem":206,"__hash__":827},"docs\u002F2.packages\u002Fadonisjs-sentry\u002F1.getting-started\u002F1.introduction.md",{"type":424,"value":425,"toc":817},"minimark",[426,451,454,680,685,761,765,771,803,807,813],[427,428,429,433,434,441,442,445,446,450],"p",{},[430,431,432],"code",{},"@eienjs\u002Fadonisjs-sentry"," provides seamless integration with the official ",[435,436,440],"a",{"href":437,"rel":438},"https:\u002F\u002Fdocs.sentry.io\u002Fplatforms\u002Fjavascript\u002Fguides\u002Fnode\u002F",[439],"nofollow","Sentry Node SDK"," (",[430,443,444],{},"@sentry\u002Fnode",") for ",[447,448,449],"strong",{},"AdonisJS v7"," applications.",[427,452,453],{},"It simplifies error tracking and performance monitoring by automatically attaching HTTP context, route patterns, and user identity to captured exceptions, while isolating requests and grouping errors by AdonisJS error codes.",[455,456,462],"pre",{"className":457,"code":458,"filename":459,"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","app\u002Fexceptions\u002Fhandler.ts","ts","",[430,463,464,503,525,547,554,579,617,636,641,668,674],{"__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,432],{"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,599,602,605,608,610,612,615],{"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,598],{"class":478},":",[465,600,601],{"class":569}," unknown",[465,603,604],{"class":478},",",[465,606,607],{"class":594}," ctx",[465,609,598],{"class":478},[465,611,483],{"class":569},[465,613,614],{"class":478},")",[465,616,578],{"class":478},[465,618,620,624,626,628,630,632,634],{"class":467,"line":619},7,[465,621,623],{"class":622},"s2Zo4","    reportException",[465,625,591],{"class":587},[465,627,595],{"class":482},[465,629,604],{"class":478},[465,631,607],{"class":482},[465,633,614],{"class":587},[465,635,502],{"class":478},[465,637,639],{"class":467,"line":638},8,[465,640,553],{"emptyLinePlaceholder":552},[465,642,644,647,650,653,656,658,660,662,664,666],{"class":467,"line":643},9,[465,645,646],{"class":471},"    await",[465,648,649],{"class":482}," super",[465,651,652],{"class":478},".",[465,654,655],{"class":622},"report",[465,657,591],{"class":587},[465,659,595],{"class":482},[465,661,604],{"class":478},[465,663,607],{"class":482},[465,665,614],{"class":587},[465,667,502],{"class":478},[465,669,671],{"class":467,"line":670},10,[465,672,673],{"class":478},"  }\n",[465,675,677],{"class":467,"line":676},11,[465,678,679],{"class":478},"}\n",[681,682,684],"h2",{"id":683},"key-features","Key Features",[686,687,688,695,705,723,729,739,745,755],"ul",{},[689,690,691,694],"li",{},[447,692,693],{},"Automatic HTTP Context",": Attaches HTTP method, route pattern, request ID, URL, and route params to captured events.",[689,696,697,700,701,704],{},[447,698,699],{},"Smart Error Grouping",": Automatically fingerprints events by AdonisJS error code (",[430,702,703],{},"E_*",") so distinct error categories are never bundled together erroneously.",[689,706,707,710,711,714,715,718,719,722],{},[447,708,709],{},"Configurable Filtering",": Easily ignore non-critical errors by HTTP status codes (e.g. ",[430,712,713],{},"404",", ",[430,716,717],{},"422","), error codes (e.g. ",[430,720,721],{},"E_ROUTE_NOT_FOUND","), or custom exception classes.",[689,724,725,728],{},[447,726,727],{},"Request Scope Isolation",": Dedicated router middleware ensures concurrent asynchronous requests never leak context or user data between each other.",[689,730,731,734,735,738],{},[447,732,733],{},"Performance Tracing",": Integrates with Sentry spans, updates transaction names to match AdonisJS route patterns (e.g. ",[430,736,737],{},"GET \u002Fusers\u002F:id","), and records route attributes.",[689,740,741,744],{},[447,742,743],{},"Privacy Controls",": User IDs are captured by default while personally identifiable information (PII) such as email and IP address are withheld unless explicitly enabled.",[689,746,747,750,751,754],{},[447,748,749],{},"Health Verification",": Built-in ",[430,752,753],{},"node ace sentry:verify"," command to test your connection and ensure events are flushed and delivered.",[689,756,757,760],{},[447,758,759],{},"Preloading Support",": Seamlessly works with early preloading when full auto-instrumentation for third-party libraries (database drivers, Redis, HTTP clients) is needed.",[681,762,764],{"id":763},"requirements","Requirements",[427,766,767,768,770],{},"Before installing ",[430,769,432],{},", verify that your project meets the following requirements:",[686,772,773,782,794],{},[689,774,775,778,779],{},[447,776,777],{},"Node.js",": ",[430,780,781],{},">= 24.0.0",[689,783,784,441,787,790,791],{},[447,785,786],{},"AdonisJS Core",[430,788,789],{},"@adonisjs\u002Fcore","): ",[430,792,793],{},"^7.6.0",[689,795,796,441,798,790,800],{},[447,797,440],{},[430,799,444],{},[430,801,802],{},"^11.12.0",[681,804,806],{"id":805},"next-steps","Next Steps",[427,808,809,810,812],{},"Head over to the ",[435,811,47],{"href":208}," guide to install the package and set up error tracking in your project.",[814,815,816],"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);}",{"title":461,"searchDepth":468,"depth":505,"links":818},[819,820,821],{"id":683,"depth":505,"text":684},{"id":763,"depth":505,"text":764},{"id":805,"depth":505,"text":806},"Official Sentry integration for AdonisJS applications with automatic exception capture, request context, and distributed tracing.","md",{},{"icon":45},{"title":10,"description":822},"tACBbWuJizKkCosdG-Pl8A5KT2UzHPv4XTWSYomo-bM",[829,831],{"title":190,"path":191,"stem":192,"description":830,"icon":193,"children":-1},"Step by step migration from adonis-lucid-permission (AdonisJS v6) to @eienjs\u002Fadonisjs-permission (AdonisJS v7).",{"title":47,"path":208,"stem":209,"description":832,"icon":50,"children":-1},"Install and configure @eienjs\u002Fadonisjs-sentry in your AdonisJS v7 application.",{"id":834,"extension":835,"meta":836,"packages":837,"stem":881,"__hash__":882},"packages\u002Fdata\u002Fpackages.json","json",{},[838,845,851,857,863,869,875],{"name":839,"title":840,"description":841,"icon":86,"category":842,"repo":843,"version":844,"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":846,"title":847,"description":848,"icon":33,"category":842,"repo":849,"version":850,"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":852,"title":853,"description":854,"icon":319,"category":842,"repo":855,"version":856,"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":858,"title":859,"description":860,"icon":270,"category":842,"repo":861,"version":862,"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":864,"title":865,"description":866,"icon":196,"category":842,"repo":867,"version":868,"docs":552,"featured":22},"adonisjs-sentry","Sentry","Sentry service provider for AdonisJS","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-sentry","3.0.0",{"name":870,"title":344,"description":871,"icon":345,"category":872,"repo":873,"version":874,"docs":552,"featured":22},"eslint-config","EienJS ESLint Config","tooling","https:\u002F\u002Fgithub.com\u002Feienjs\u002Feslint-config","2.3.2",{"name":876,"title":877,"description":878,"icon":879,"category":872,"repo":880,"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",1794458196605]