[{"data":1,"prerenderedAt":1114},["ShallowReactive",2],{"navigation":3,"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fusage\u002Ferror-handling":273,"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fusage\u002Ferror-handling-surround":1061,"packages-data":1066},[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,247],{"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},"Simple Auth","i-tabler-key","\u002Fpackages\u002Fadonisjs-simple-auth","2.packages\u002Fadonisjs-simple-auth",[200,214,233],{"title":5,"icon":38,"path":201,"stem":202,"children":203,"page":22},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fgetting-started","2.packages\u002Fadonisjs-simple-auth\u002F1.getting-started",[204,208,211],{"title":10,"path":205,"stem":206,"icon":207},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fgetting-started\u002Fintroduction","2.packages\u002Fadonisjs-simple-auth\u002F1.getting-started\u002F1.introduction","i-tabler-info-circle",{"title":47,"path":209,"stem":210,"icon":50},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fgetting-started\u002Finstallation","2.packages\u002Fadonisjs-simple-auth\u002F1.getting-started\u002F2.installation",{"title":52,"path":212,"stem":213,"icon":55},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fgetting-started\u002Fconfiguration","2.packages\u002Fadonisjs-simple-auth\u002F1.getting-started\u002F3.configuration",{"title":215,"icon":110,"path":216,"stem":217,"children":218,"page":22},"Usage","\u002Fpackages\u002Fadonisjs-simple-auth\u002Fusage","2.packages\u002Fadonisjs-simple-auth\u002F2.usage",[219,224,229],{"title":220,"path":221,"stem":222,"icon":223},"Generating API Keys","\u002Fpackages\u002Fadonisjs-simple-auth\u002Fusage\u002Fgenerating-api-keys","2.packages\u002Fadonisjs-simple-auth\u002F2.usage\u002F1.generating-api-keys","i-tabler-terminal-2",{"title":225,"path":226,"stem":227,"icon":228},"Protecting Routes","\u002Fpackages\u002Fadonisjs-simple-auth\u002Fusage\u002Fprotecting-routes","2.packages\u002Fadonisjs-simple-auth\u002F2.usage\u002F2.protecting-routes","i-tabler-lock",{"title":230,"path":231,"stem":232,"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":234,"stem":235,"children":236,"page":22},"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fadvanced","2.packages\u002Fadonisjs-simple-auth\u002F3.advanced",[237,242],{"title":238,"path":239,"stem":240,"icon":241},"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":243,"path":244,"stem":245,"icon":246},"API Reference","\u002Fpackages\u002Fadonisjs-simple-auth\u002Fadvanced\u002Fapi-reference","2.packages\u002Fadonisjs-simple-auth\u002F3.advanced\u002F2.api-reference","i-tabler-code",{"title":248,"icon":249,"path":250,"stem":251,"children":252,"page":22},"AdonisJS Soft Deletes","i-tabler-trash-off","\u002Fpackages\u002Fadonisjs-soft-deletes","2.packages\u002Fadonisjs-soft-deletes",[253,263],{"title":5,"icon":38,"path":254,"stem":255,"children":256,"page":22},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fgetting-started","2.packages\u002Fadonisjs-soft-deletes\u002F1.getting-started",[257,260],{"title":10,"path":258,"stem":259,"icon":207},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fgetting-started\u002Fintroduction","2.packages\u002Fadonisjs-soft-deletes\u002F1.getting-started\u002F1.introduction",{"title":47,"path":261,"stem":262,"icon":50},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fgetting-started\u002Finstallation","2.packages\u002Fadonisjs-soft-deletes\u002F1.getting-started\u002F2.installation",{"title":215,"icon":45,"path":264,"stem":265,"children":266,"page":22},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fusage","2.packages\u002Fadonisjs-soft-deletes\u002F2.usage",[267,270],{"title":215,"path":268,"stem":269,"icon":246},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fusage\u002Fusage","2.packages\u002Fadonisjs-soft-deletes\u002F2.usage\u002F1.usage",{"title":243,"path":271,"stem":272,"icon":45},"\u002Fpackages\u002Fadonisjs-soft-deletes\u002Fusage\u002Fapi-reference","2.packages\u002Fadonisjs-soft-deletes\u002F2.usage\u002F2.api-reference",{"id":274,"title":230,"body":275,"description":1055,"extension":1056,"meta":1057,"navigation":1058,"path":231,"seo":1059,"stem":232,"__hash__":1060},"docs\u002F2.packages\u002Fadonisjs-simple-auth\u002F2.usage\u002F3.error-handling.md",{"type":276,"value":277,"toc":1048},"minimark",[278,291,325,330,343,411,415,435,599,607,632,635,699,706,710,727,1044],[279,280,281,282,286,287,290],"p",{},"When ",[283,284,285],"code",{},"ctx.simpleAuth.authenticate()"," fails, it throws a ",[283,288,289],{},"SimpleAuthException",". This exception is thrown in any of the following cases:",[292,293,294,302,305,315],"ul",{},[295,296,297,298,301],"li",{},"The configured ",[283,299,300],{},"apiKeyHeader"," is missing from the request.",[295,303,304],{},"The header value in the request is empty or contains only whitespace.",[295,306,297,307,310,311,314],{},[283,308,309],{},"apiKeyValue"," in ",[283,312,313],{},"config\u002Fsimpleauth.ts"," is empty or contains only whitespace.",[295,316,317,318,320,321,324],{},"The request header value does not match ",[283,319,309],{}," (compared using timing-safe ",[283,322,323],{},"safeEqual",").",[326,327,329],"h2",{"id":328},"exception-properties","Exception Properties",[279,331,332,334,335,338,339,342],{},[283,333,289],{}," extends ",[283,336,337],{},"@adonisjs\u002Fcore\u002Fexceptions","'s ",[283,340,341],{},"Exception"," class with the following default properties:",[344,345,346,360],"table",{},[347,348,349],"thead",{},[350,351,352,357],"tr",{},[353,354,356],"th",{"align":355},"left","Property",[353,358,359],{"align":355},"Value",[361,362,363,376,387,399],"tbody",{},[350,364,365,371],{},[366,367,368],"td",{"align":355},[283,369,370],{},"status",[366,372,373],{"align":355},[283,374,375],{},"401",[350,377,378,382],{},[366,379,380],{"align":355},[283,381,283],{},[366,383,384],{"align":355},[283,385,386],{},"'E_SIMPLE_UNAUTHORIZED_ACCESS'",[350,388,389,394],{},[366,390,391],{"align":355},[283,392,393],{},"message",[366,395,396],{"align":355},[283,397,398],{},"'Unauthorized access'",[350,400,401,406],{},[366,402,403],{"align":355},[283,404,405],{},"identifier",[366,407,408],{"align":355},[283,409,410],{},"'errors.E_SIMPLE_UNAUTHORIZED_ACCESS'",[326,412,414],{"id":413},"content-negotiation","Content Negotiation",[279,416,417,419,420,423,424,427,428,431,432,434],{},[283,418,289],{}," implements a self-handling ",[283,421,422],{},"handle()"," method that inspects the request's ",[283,425,426],{},"Accept"," header using ",[283,429,430],{},"ctx.request.accepts(['html', 'application\u002Fvnd.api+json', 'json'])"," and formats the ",[283,433,375],{}," response accordingly:",[436,437,438,523],"code-group",{},[439,440,446],"pre",{"className":441,"code":442,"filename":443,"language":444,"meta":445,"style":445},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"errors\": [\n    {\n      \"message\": \"Unauthorized access\"\n    }\n  ]\n}\n","application\u002Fjson, text\u002Fhtml, or default","json","",[283,447,448,457,476,482,505,511,517],{"__ignoreMap":445},[449,450,453],"span",{"class":451,"line":452},"line",1,[449,454,456],{"class":455},"sMK4o","{\n",[449,458,460,463,467,470,473],{"class":451,"line":459},2,[449,461,462],{"class":455},"  \"",[449,464,466],{"class":465},"spNyl","errors",[449,468,469],{"class":455},"\"",[449,471,472],{"class":455},":",[449,474,475],{"class":455}," [\n",[449,477,479],{"class":451,"line":478},3,[449,480,481],{"class":455},"    {\n",[449,483,485,488,491,493,495,498,502],{"class":451,"line":484},4,[449,486,487],{"class":455},"      \"",[449,489,393],{"class":490},"sBMFI",[449,492,469],{"class":455},[449,494,472],{"class":455},[449,496,497],{"class":455}," \"",[449,499,501],{"class":500},"sfazB","Unauthorized access",[449,503,504],{"class":455},"\"\n",[449,506,508],{"class":451,"line":507},5,[449,509,510],{"class":455},"    }\n",[449,512,514],{"class":451,"line":513},6,[449,515,516],{"class":455},"  ]\n",[449,518,520],{"class":451,"line":519},7,[449,521,522],{"class":455},"}\n",[439,524,527],{"className":441,"code":525,"filename":526,"language":444,"meta":445,"style":445},"{\n  \"errors\": [\n    {\n      \"code\": \"E_SIMPLE_UNAUTHORIZED_ACCESS\",\n      \"title\": \"Unauthorized access\"\n    }\n  ]\n}\n","application\u002Fvnd.api+json (JSON:API)",[283,528,529,533,545,549,569,586,590,594],{"__ignoreMap":445},[449,530,531],{"class":451,"line":452},[449,532,456],{"class":455},[449,534,535,537,539,541,543],{"class":451,"line":459},[449,536,462],{"class":455},[449,538,466],{"class":465},[449,540,469],{"class":455},[449,542,472],{"class":455},[449,544,475],{"class":455},[449,546,547],{"class":451,"line":478},[449,548,481],{"class":455},[449,550,551,553,555,557,559,561,564,566],{"class":451,"line":484},[449,552,487],{"class":455},[449,554,283],{"class":490},[449,556,469],{"class":455},[449,558,472],{"class":455},[449,560,497],{"class":455},[449,562,563],{"class":500},"E_SIMPLE_UNAUTHORIZED_ACCESS",[449,565,469],{"class":455},[449,567,568],{"class":455},",\n",[449,570,571,573,576,578,580,582,584],{"class":451,"line":507},[449,572,487],{"class":455},[449,574,575],{"class":490},"title",[449,577,469],{"class":455},[449,579,472],{"class":455},[449,581,497],{"class":455},[449,583,501],{"class":500},[449,585,504],{"class":455},[449,587,588],{"class":451,"line":513},[449,589,510],{"class":455},[449,591,592],{"class":451,"line":519},[449,593,516],{"class":455},[449,595,597],{"class":451,"line":596},8,[449,598,522],{"class":455},[326,600,602,603,606],{"id":601},"internationalization-adonisjsi18n","Internationalization (",[283,604,605],{},"@adonisjs\u002Fi18n",")",[279,608,609,610,612,613,616,617,620,621,623,624,627,628,631],{},"If ",[283,611,605],{}," is installed and configured in your application (attaching ",[283,614,615],{},"ctx.i18n"," to the ",[283,618,619],{},"HttpContext","), ",[283,622,289],{}," automatically looks up the translation key ",[283,625,626],{},"errors.E_SIMPLE_UNAUTHORIZED_ACCESS"," via ",[283,629,630],{},"ctx.i18n.t()",".",[279,633,634],{},"Add the translation key to your language files to return localized error messages:",[436,636,637,668],{},[439,638,641],{"className":441,"code":639,"filename":640,"language":444,"meta":445,"style":445},"{\n  \"E_SIMPLE_UNAUTHORIZED_ACCESS\": \"Unauthorized access. Please provide a valid API key.\"\n}\n","resources\u002Flang\u002Fen\u002Ferrors.json",[283,642,643,647,664],{"__ignoreMap":445},[449,644,645],{"class":451,"line":452},[449,646,456],{"class":455},[449,648,649,651,653,655,657,659,662],{"class":451,"line":459},[449,650,462],{"class":455},[449,652,563],{"class":465},[449,654,469],{"class":455},[449,656,472],{"class":455},[449,658,497],{"class":455},[449,660,661],{"class":500},"Unauthorized access. Please provide a valid API key.",[449,663,504],{"class":455},[449,665,666],{"class":451,"line":478},[449,667,522],{"class":455},[439,669,672],{"className":441,"code":670,"filename":671,"language":444,"meta":445,"style":445},"{\n  \"E_SIMPLE_UNAUTHORIZED_ACCESS\": \"Acceso no autorizado. Por favor proporcione una clave API válida.\"\n}\n","resources\u002Flang\u002Fes\u002Ferrors.json",[283,673,674,678,695],{"__ignoreMap":445},[449,675,676],{"class":451,"line":452},[449,677,456],{"class":455},[449,679,680,682,684,686,688,690,693],{"class":451,"line":459},[449,681,462],{"class":455},[449,683,563],{"class":465},[449,685,469],{"class":455},[449,687,472],{"class":455},[449,689,497],{"class":455},[449,691,692],{"class":500},"Acceso no autorizado. Por favor proporcione una clave API válida.",[449,694,504],{"class":455},[449,696,697],{"class":451,"line":478},[449,698,522],{"class":455},[279,700,609,701,703,704,631],{},[283,702,615],{}," is not present or the translation key is not defined, the exception falls back to ",[283,705,398],{},[326,707,709],{"id":708},"custom-exception-handling","Custom Exception Handling",[279,711,712,713,715,716,718,719,722,723,726],{},"If you want to intercept ",[283,714,289],{}," globally and return a custom payload, you can check for ",[283,717,289],{}," inside your application's ",[283,720,721],{},"HttpExceptionHandler"," (",[283,724,725],{},"app\u002Fexceptions\u002Fhandler.ts","):",[439,728,732],{"className":729,"code":730,"filename":725,"language":731,"meta":445,"style":445},"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 { SimpleAuthException } from '@eienjs\u002Fadonisjs-simple-auth';\n\nexport default class HttpExceptionHandler extends ExceptionHandler {\n  async handle(error: unknown, ctx: HttpContext) {\n    if (error instanceof SimpleAuthException) {\n      return ctx.response.status(error.status).send({\n        success: false,\n        error: error.code,\n        message: error.getResponseMessage(error, ctx),\n      });\n    }\n\n    return super.handle(error, ctx);\n  }\n}\n","ts",[283,733,734,768,789,811,817,839,874,893,929,943,960,987,997,1002,1007,1033,1039],{"__ignoreMap":445},[449,735,736,740,743,746,750,753,756,759,762,765],{"class":451,"line":452},[449,737,739],{"class":738},"s7zQu","import",[449,741,742],{"class":738}," type",[449,744,745],{"class":455}," {",[449,747,749],{"class":748},"sTEyZ"," HttpContext",[449,751,752],{"class":455}," }",[449,754,755],{"class":738}," from",[449,757,758],{"class":455}," '",[449,760,761],{"class":500},"@adonisjs\u002Fcore\u002Fhttp",[449,763,764],{"class":455},"'",[449,766,767],{"class":455},";\n",[449,769,770,772,774,777,779,781,783,785,787],{"class":451,"line":459},[449,771,739],{"class":738},[449,773,745],{"class":455},[449,775,776],{"class":748}," ExceptionHandler",[449,778,752],{"class":455},[449,780,755],{"class":738},[449,782,758],{"class":455},[449,784,761],{"class":500},[449,786,764],{"class":455},[449,788,767],{"class":455},[449,790,791,793,795,798,800,802,804,807,809],{"class":451,"line":478},[449,792,739],{"class":738},[449,794,745],{"class":455},[449,796,797],{"class":748}," SimpleAuthException",[449,799,752],{"class":455},[449,801,755],{"class":738},[449,803,758],{"class":455},[449,805,806],{"class":500},"@eienjs\u002Fadonisjs-simple-auth",[449,808,764],{"class":455},[449,810,767],{"class":455},[449,812,813],{"class":451,"line":484},[449,814,816],{"emptyLinePlaceholder":815},true,"\n",[449,818,819,822,825,828,831,834,836],{"class":451,"line":507},[449,820,821],{"class":738},"export",[449,823,824],{"class":738}," default",[449,826,827],{"class":465}," class",[449,829,830],{"class":490}," HttpExceptionHandler",[449,832,833],{"class":465}," extends",[449,835,776],{"class":490},[449,837,838],{"class":455}," {\n",[449,840,841,844,848,851,855,857,860,863,866,868,870,872],{"class":451,"line":513},[449,842,843],{"class":465},"  async",[449,845,847],{"class":846},"swJcz"," handle",[449,849,850],{"class":455},"(",[449,852,854],{"class":853},"sHdIc","error",[449,856,472],{"class":455},[449,858,859],{"class":490}," unknown",[449,861,862],{"class":455},",",[449,864,865],{"class":853}," ctx",[449,867,472],{"class":455},[449,869,749],{"class":490},[449,871,606],{"class":455},[449,873,838],{"class":455},[449,875,876,879,881,883,886,888,891],{"class":451,"line":519},[449,877,878],{"class":738},"    if",[449,880,722],{"class":846},[449,882,854],{"class":748},[449,884,885],{"class":455}," instanceof",[449,887,797],{"class":490},[449,889,890],{"class":846},") ",[449,892,456],{"class":455},[449,894,895,898,900,902,905,907,910,912,914,916,918,920,922,925,927],{"class":451,"line":596},[449,896,897],{"class":738},"      return",[449,899,865],{"class":748},[449,901,631],{"class":455},[449,903,904],{"class":748},"response",[449,906,631],{"class":455},[449,908,370],{"class":909},"s2Zo4",[449,911,850],{"class":846},[449,913,854],{"class":748},[449,915,631],{"class":455},[449,917,370],{"class":748},[449,919,606],{"class":846},[449,921,631],{"class":455},[449,923,924],{"class":909},"send",[449,926,850],{"class":846},[449,928,456],{"class":455},[449,930,932,935,937,941],{"class":451,"line":931},9,[449,933,934],{"class":846},"        success",[449,936,472],{"class":455},[449,938,940],{"class":939},"sfNiH"," false",[449,942,568],{"class":455},[449,944,946,949,951,954,956,958],{"class":451,"line":945},10,[449,947,948],{"class":846},"        error",[449,950,472],{"class":455},[449,952,953],{"class":748}," error",[449,955,631],{"class":455},[449,957,283],{"class":748},[449,959,568],{"class":455},[449,961,963,966,968,970,972,975,977,979,981,983,985],{"class":451,"line":962},11,[449,964,965],{"class":846},"        message",[449,967,472],{"class":455},[449,969,953],{"class":748},[449,971,631],{"class":455},[449,973,974],{"class":909},"getResponseMessage",[449,976,850],{"class":846},[449,978,854],{"class":748},[449,980,862],{"class":455},[449,982,865],{"class":748},[449,984,606],{"class":846},[449,986,568],{"class":455},[449,988,990,993,995],{"class":451,"line":989},12,[449,991,992],{"class":455},"      }",[449,994,606],{"class":846},[449,996,767],{"class":455},[449,998,1000],{"class":451,"line":999},13,[449,1001,510],{"class":455},[449,1003,1005],{"class":451,"line":1004},14,[449,1006,816],{"emptyLinePlaceholder":815},[449,1008,1010,1013,1016,1018,1021,1023,1025,1027,1029,1031],{"class":451,"line":1009},15,[449,1011,1012],{"class":738},"    return",[449,1014,1015],{"class":748}," super",[449,1017,631],{"class":455},[449,1019,1020],{"class":909},"handle",[449,1022,850],{"class":846},[449,1024,854],{"class":748},[449,1026,862],{"class":455},[449,1028,865],{"class":748},[449,1030,606],{"class":846},[449,1032,767],{"class":455},[449,1034,1036],{"class":451,"line":1035},16,[449,1037,1038],{"class":455},"  }\n",[449,1040,1042],{"class":451,"line":1041},17,[449,1043,522],{"class":455},[1045,1046,1047],"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 pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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":445,"searchDepth":452,"depth":459,"links":1049},[1050,1051,1052,1054],{"id":328,"depth":459,"text":329},{"id":413,"depth":459,"text":414},{"id":601,"depth":459,"text":1053},"Internationalization (@adonisjs\u002Fi18n)",{"id":708,"depth":459,"text":709},"Understand how SimpleAuthException handles 401 Unauthorized responses and i18n translations.","md",{},{"icon":107},{"title":230,"description":1055},"fEB1zQ5FjHYfBTubvYLOloaOhW-d6POC1_Q7CQ-0s5Y",[1062,1064],{"title":225,"path":226,"stem":227,"description":1063,"icon":228,"children":-1},"Authenticate incoming HTTP requests using the apiKey middleware or ctx.simpleAuth.",{"title":238,"path":239,"stem":240,"description":1065,"icon":241,"children":-1},"Authenticate functional HTTP tests effortlessly using the simpleAuthApiClient Japa plugin.",{"id":1067,"extension":444,"meta":1068,"packages":1069,"stem":1112,"__hash__":1113},"packages\u002Fdata\u002Fpackages.json",{},[1070,1077,1083,1089,1094,1100,1106],{"name":1071,"title":1072,"description":1073,"icon":86,"category":1074,"repo":1075,"version":1076,"docs":815},"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":1078,"title":1079,"description":1080,"icon":33,"category":1074,"repo":1081,"version":1082,"docs":815},"adonisjs-api-query","API Query","Easily build Lucid queries from API requests","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-api-query","3.0.1",{"name":1084,"title":1085,"description":1086,"icon":249,"category":1074,"repo":1087,"version":1088,"docs":815},"adonisjs-soft-deletes","Soft Deletes","Provider-based Soft deletes for AdonisJS","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-soft-deletes","1.0.2",{"name":1090,"title":195,"description":1091,"icon":196,"category":1074,"repo":1092,"version":1093,"docs":815},"adonisjs-simple-auth","Single API key authentication for AdonisJS v7 applications","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-simple-auth","2.1.0",{"name":1095,"title":1096,"description":1097,"icon":1098,"category":1074,"repo":1099,"docs":22},"adonisjs-sentry","Sentry","Sentry service provider for AdonisJS v7.","i-tabler-bug","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-sentry",{"name":1101,"title":1102,"description":1103,"icon":141,"category":1104,"repo":1105,"docs":22},"eslint-config","ESLint Config","The EienJS ESLint config preset.","tooling","https:\u002F\u002Fgithub.com\u002Feienjs\u002Feslint-config",{"name":1107,"title":1108,"description":1109,"icon":1110,"category":1104,"repo":1111,"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","5fILU7Jigsw2ib-NQg4Fr4sWgIkg0kLgpVm371gTzVY",1793868428497]