[{"data":1,"prerenderedAt":1061},["ShallowReactive",2],{"navigation":3,"\u002Fpackages\u002Fadonisjs-sentry\u002Fgetting-started\u002Finstallation":421,"\u002Fpackages\u002Fadonisjs-sentry\u002Fgetting-started\u002Finstallation-surround":1006,"packages-data":1011},[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":47,"body":423,"description":1000,"extension":1001,"meta":1002,"navigation":1003,"path":208,"seo":1004,"stem":209,"__hash__":1005},"docs\u002F2.packages\u002Fadonisjs-sentry\u002F1.getting-started\u002F2.installation.md",{"type":424,"value":425,"toc":993},"minimark",[426,431,435,474,478,489,517,520,577,581,590,644,650,666,670,979,983,989],[427,428,430],"h2",{"id":429},"requirements","Requirements",[432,433,434],"p",{},"Ensure your environment satisfies the peer dependencies:",[436,437,438,450,463],"ul",{},[439,440,441,445,446],"li",{},[442,443,444],"strong",{},"Node.js",": ",[447,448,449],"code",{},">= 24.0.0",[439,451,452,455,456,459,460],{},[442,453,454],{},"AdonisJS Core"," (",[447,457,458],{},"@adonisjs\u002Fcore","): ",[447,461,462],{},"^7.6.0",[439,464,465,455,468,459,471],{},[442,466,467],{},"Sentry Node SDK",[447,469,470],{},"@sentry\u002Fnode",[447,472,473],{},"^11.12.0",[427,475,477],{"id":476},"automated-installation","Automated Installation",[432,479,480,481,484,485,488],{},"The fastest way to install and configure ",[447,482,483],{},"@eienjs\u002Fadonisjs-sentry"," is using the AdonisJS ",[447,486,487],{},"ace add"," command:",[490,491,496],"pre",{"className":492,"code":493,"language":494,"meta":495,"style":495},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","node ace add @eienjs\u002Fadonisjs-sentry\n","bash","",[447,497,498],{"__ignoreMap":495},[499,500,503,507,511,514],"span",{"class":501,"line":502},"line",1,[499,504,506],{"class":505},"sBMFI","node",[499,508,510],{"class":509},"sfazB"," ace",[499,512,513],{"class":509}," add",[499,515,516],{"class":509}," @eienjs\u002Fadonisjs-sentry\n",[432,518,519],{},"This single command will:",[521,522,523,532,539,556,563,570],"ol",{},[439,524,525,526,528,529,531],{},"Install ",[447,527,483],{}," and ",[447,530,470],{}," using your project's package manager.",[439,533,534,535,538],{},"Publish the ",[447,536,537],{},"config\u002Fsentry.ts"," configuration file.",[439,540,541,542,528,545,548,549,528,552,555],{},"Append ",[447,543,544],{},"SENTRY_DSN",[447,546,547],{},"SENTRY_RELEASE"," to your ",[447,550,551],{},".env",[447,553,554],{},".env.example"," files.",[439,557,558,559,562],{},"Define environment validation rules in ",[447,560,561],{},"start\u002Fenv.ts",".",[439,564,565,566,569],{},"Register ",[447,567,568],{},"@eienjs\u002Fadonisjs-sentry\u002Fmiddleware\u002Fsentry_middleware"," in your router middleware stack.",[439,571,572,573,576],{},"Register the provider and commands in your ",[447,574,575],{},"adonisrc.ts"," file.",[427,578,580],{"id":579},"manual-installation","Manual Installation",[432,582,583,584,586,587,589],{},"If you prefer installing packages manually, install ",[447,585,483],{}," and its peer dependency ",[447,588,470],{},":",[591,592,593,611,628],"code-group",{},[490,594,597],{"className":492,"code":595,"filename":596,"language":494,"meta":495,"style":495},"pnpm add @eienjs\u002Fadonisjs-sentry @sentry\u002Fnode\n","pnpm",[447,598,599],{"__ignoreMap":495},[499,600,601,603,605,608],{"class":501,"line":502},[499,602,596],{"class":505},[499,604,513],{"class":509},[499,606,607],{"class":509}," @eienjs\u002Fadonisjs-sentry",[499,609,610],{"class":509}," @sentry\u002Fnode\n",[490,612,615],{"className":492,"code":613,"filename":614,"language":494,"meta":495,"style":495},"npm install @eienjs\u002Fadonisjs-sentry @sentry\u002Fnode\n","npm",[447,616,617],{"__ignoreMap":495},[499,618,619,621,624,626],{"class":501,"line":502},[499,620,614],{"class":505},[499,622,623],{"class":509}," install",[499,625,607],{"class":509},[499,627,610],{"class":509},[490,629,632],{"className":492,"code":630,"filename":631,"language":494,"meta":495,"style":495},"yarn add @eienjs\u002Fadonisjs-sentry @sentry\u002Fnode\n","yarn",[447,633,634],{"__ignoreMap":495},[499,635,636,638,640,642],{"class":501,"line":502},[499,637,631],{"class":505},[499,639,513],{"class":509},[499,641,607],{"class":509},[499,643,610],{"class":509},[432,645,646,647,488],{},"Then run the ",[447,648,649],{},"configure",[490,651,653],{"className":492,"code":652,"language":494,"meta":495,"style":495},"node ace configure @eienjs\u002Fadonisjs-sentry\n",[447,654,655],{"__ignoreMap":495},[499,656,657,659,661,664],{"class":501,"line":502},[499,658,506],{"class":505},[499,660,510],{"class":509},[499,662,663],{"class":509}," configure",[499,665,516],{"class":509},[427,667,669],{"id":668},"step-by-step-setup","Step-by-Step Setup",[671,672,673,678,693,908,916,920,926,943,951,955,958,972],"steps",{},[674,675,677],"h3",{"id":676},"_1-configure-the-exception-handler","1. Configure the Exception Handler",[432,679,680,681,684,685,688,689,692],{},"Open ",[447,682,683],{},"app\u002Fexceptions\u002Fhandler.ts"," and call ",[447,686,687],{},"reportException"," inside the ",[447,690,691],{},"report"," method:",[490,694,698],{"className":695,"code":696,"filename":683,"language":697,"meta":495,"style":495},"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",[447,699,700,735,757,779,786,810,847,866,871,896,902],{"__ignoreMap":495},[499,701,702,706,709,713,717,720,723,726,729,732],{"class":501,"line":502},[499,703,705],{"class":704},"s7zQu","import",[499,707,708],{"class":704}," type",[499,710,712],{"class":711},"sMK4o"," {",[499,714,716],{"class":715},"sTEyZ"," HttpContext",[499,718,719],{"class":711}," }",[499,721,722],{"class":704}," from",[499,724,725],{"class":711}," '",[499,727,728],{"class":509},"@adonisjs\u002Fcore\u002Fhttp",[499,730,731],{"class":711},"'",[499,733,734],{"class":711},";\n",[499,736,738,740,742,745,747,749,751,753,755],{"class":501,"line":737},2,[499,739,705],{"class":704},[499,741,712],{"class":711},[499,743,744],{"class":715}," ExceptionHandler",[499,746,719],{"class":711},[499,748,722],{"class":704},[499,750,725],{"class":711},[499,752,728],{"class":509},[499,754,731],{"class":711},[499,756,734],{"class":711},[499,758,760,762,764,767,769,771,773,775,777],{"class":501,"line":759},3,[499,761,705],{"class":704},[499,763,712],{"class":711},[499,765,766],{"class":715}," reportException",[499,768,719],{"class":711},[499,770,722],{"class":704},[499,772,725],{"class":711},[499,774,483],{"class":509},[499,776,731],{"class":711},[499,778,734],{"class":711},[499,780,782],{"class":501,"line":781},4,[499,783,785],{"emptyLinePlaceholder":784},true,"\n",[499,787,789,792,795,799,802,805,807],{"class":501,"line":788},5,[499,790,791],{"class":704},"export",[499,793,794],{"class":704}," default",[499,796,798],{"class":797},"spNyl"," class",[499,800,801],{"class":505}," HttpExceptionHandler",[499,803,804],{"class":797}," extends",[499,806,744],{"class":505},[499,808,809],{"class":711}," {\n",[499,811,813,816,820,823,827,829,832,835,838,840,842,845],{"class":501,"line":812},6,[499,814,815],{"class":797},"  async",[499,817,819],{"class":818},"swJcz"," report",[499,821,822],{"class":711},"(",[499,824,826],{"class":825},"sHdIc","error",[499,828,589],{"class":711},[499,830,831],{"class":505}," unknown",[499,833,834],{"class":711},",",[499,836,837],{"class":825}," ctx",[499,839,589],{"class":711},[499,841,716],{"class":505},[499,843,844],{"class":711},")",[499,846,809],{"class":711},[499,848,850,854,856,858,860,862,864],{"class":501,"line":849},7,[499,851,853],{"class":852},"s2Zo4","    reportException",[499,855,822],{"class":818},[499,857,826],{"class":715},[499,859,834],{"class":711},[499,861,837],{"class":715},[499,863,844],{"class":818},[499,865,734],{"class":711},[499,867,869],{"class":501,"line":868},8,[499,870,785],{"emptyLinePlaceholder":784},[499,872,874,877,880,882,884,886,888,890,892,894],{"class":501,"line":873},9,[499,875,876],{"class":704},"    await",[499,878,879],{"class":715}," super",[499,881,562],{"class":711},[499,883,691],{"class":852},[499,885,822],{"class":818},[499,887,826],{"class":715},[499,889,834],{"class":711},[499,891,837],{"class":715},[499,893,844],{"class":818},[499,895,734],{"class":711},[499,897,899],{"class":501,"line":898},10,[499,900,901],{"class":711},"  }\n",[499,903,905],{"class":501,"line":904},11,[499,906,907],{"class":711},"}\n",[909,910,911],"note",{},[432,912,913,915],{},[447,914,687],{}," automatically checks whether Sentry is initialized and skips reporting if the exception matches any configured ignore lists.",[674,917,919],{"id":918},"_2-set-your-environment-variables","2. Set Your Environment Variables",[432,921,922,923,925],{},"Add your Sentry project DSN to your ",[447,924,551],{}," file:",[490,927,931],{"className":928,"code":929,"filename":551,"language":930,"meta":495,"style":495},"language-dotenv shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","SENTRY_DSN=https:\u002F\u002FexamplePublicKey@o0.ingest.sentry.io\u002F0\nSENTRY_RELEASE=\n","dotenv",[447,932,933,938],{"__ignoreMap":495},[499,934,935],{"class":501,"line":502},[499,936,937],{},"SENTRY_DSN=https:\u002F\u002FexamplePublicKey@o0.ingest.sentry.io\u002F0\n",[499,939,940],{"class":501,"line":737},[499,941,942],{},"SENTRY_RELEASE=\n",[944,945,946],"tip",{},[432,947,948,950],{},[447,949,544],{}," is only required when Sentry is enabled (by default in production). You can safely omit it in development or testing environments.",[674,952,954],{"id":953},"_3-verify-the-integration","3. Verify the Integration",[432,956,957],{},"Execute the Ace verification command to test whether your application can deliver an event to Sentry:",[490,959,961],{"className":492,"code":960,"language":494,"meta":495,"style":495},"node ace sentry:verify\n",[447,962,963],{"__ignoreMap":495},[499,964,965,967,969],{"class":501,"line":502},[499,966,506],{"class":505},[499,968,510],{"class":509},[499,970,971],{"class":509}," sentry:verify\n",[432,973,974,975,978],{},"If successful, the command prints the generated Sentry event ID. For more details on the verification command, see the ",[976,977,228],"a",{"href":229}," documentation.",[427,980,982],{"id":981},"whats-next","What's Next?",[432,984,985,986,988],{},"Check out the ",[976,987,52],{"href":211}," guide to customize sampling rates, ignore filters, release tags, and privacy settings.",[990,991,992],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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}",{"title":495,"searchDepth":502,"depth":737,"links":994},[995,996,997,998,999],{"id":429,"depth":737,"text":430},{"id":476,"depth":737,"text":477},{"id":579,"depth":737,"text":580},{"id":668,"depth":737,"text":669},{"id":981,"depth":737,"text":982},"Install and configure @eienjs\u002Fadonisjs-sentry in your AdonisJS v7 application.","md",{},{"icon":50},{"title":47,"description":1000},"xQlueJ03WinvrfgNDwC6Pboauu1PXXGppO1qxcDY9vQ",[1007,1009],{"title":10,"path":205,"stem":206,"description":1008,"icon":45,"children":-1},"Official Sentry integration for AdonisJS applications with automatic exception capture, request context, and distributed tracing.",{"title":52,"path":211,"stem":212,"description":1010,"icon":55,"children":-1},"Customize Sentry options, sampling rates, PII settings, and exception ignore lists in config\u002Fsentry.ts.",{"id":1012,"extension":1013,"meta":1014,"packages":1015,"stem":1059,"__hash__":1060},"packages\u002Fdata\u002Fpackages.json","json",{},[1016,1023,1029,1035,1041,1047,1053],{"name":1017,"title":1018,"description":1019,"icon":86,"category":1020,"repo":1021,"version":1022,"docs":784,"featured":784},"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":1024,"title":1025,"description":1026,"icon":33,"category":1020,"repo":1027,"version":1028,"docs":784,"featured":784},"adonisjs-api-query","API Query","Easily build Lucid queries from API requests","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-api-query","3.0.1",{"name":1030,"title":1031,"description":1032,"icon":319,"category":1020,"repo":1033,"version":1034,"docs":784,"featured":784},"adonisjs-soft-deletes","Soft Deletes","Provider-based Soft deletes for AdonisJS","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-soft-deletes","1.0.2",{"name":1036,"title":1037,"description":1038,"icon":270,"category":1020,"repo":1039,"version":1040,"docs":784},"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":1042,"title":1043,"description":1044,"icon":196,"category":1020,"repo":1045,"version":1046,"docs":784,"featured":22},"adonisjs-sentry","Sentry","Sentry service provider for AdonisJS","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-sentry","3.0.0",{"name":1048,"title":344,"description":1049,"icon":345,"category":1050,"repo":1051,"version":1052,"docs":784,"featured":22},"eslint-config","EienJS ESLint Config","tooling","https:\u002F\u002Fgithub.com\u002Feienjs\u002Feslint-config","2.3.2",{"name":1054,"title":1055,"description":1056,"icon":1057,"category":1050,"repo":1058,"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",1794458200410]