[{"data":1,"prerenderedAt":1425},["ShallowReactive",2],{"navigation":3,"\u002Fpackages\u002Fadonisjs-api-query\u002Fadvanced\u002Fexceptions":273,"\u002Fpackages\u002Fadonisjs-api-query\u002Fadvanced\u002Fexceptions-surround":1371,"packages-data":1376},[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":104,"body":275,"description":1365,"extension":1366,"meta":1367,"navigation":1368,"path":105,"seo":1369,"stem":106,"__hash__":1370},"docs\u002F2.packages\u002Fadonisjs-api-query\u002F3.advanced\u002F3.exceptions.md",{"type":276,"value":277,"toc":1360},"minimark",[278,303,308,518,547,551,561,1254,1258,1271,1356],[279,280,281,282,286,287,290,291,294,295,298,299,302],"p",{},"By default, ",[283,284,285],"code",{},"@eienjs\u002Fadonisjs-api-query"," validates that any requested ",[283,288,289],{},"filter",", ",[283,292,293],{},"sort",", or ",[283,296,297],{},"include"," parameter in the URL has been explicitly allowed on the query. When a disallowed parameter is encountered, an exception extending AdonisJS ",[283,300,301],{},"Exception"," is thrown.",[304,305,307],"h2",{"id":306},"exception-reference","Exception Reference",[309,310,311,331],"table",{},[312,313,314],"thead",{},[315,316,317,322,325,328],"tr",{},[318,319,321],"th",{"align":320},"left","Exception Class",[318,323,324],{"align":320},"HTTP Status",[318,326,327],{"align":320},"Code \u002F Base Class",[318,329,330],{"align":320},"When It Is Thrown",[332,333,334,376,406,436,466,495],"tbody",{},[315,335,336,342,347,357],{},[337,338,339],"td",{"align":320},[283,340,341],{},"InvalidFilterQuery",[337,343,344],{"align":320},[283,345,346],{},"400 Bad Request",[337,348,349,352,353,356],{"align":320},[283,350,351],{},"E_INVALID_QUERY_EXCEPTION"," (",[283,354,355],{},"InvalidQuery",")",[337,358,359,360,363,364,367,368,371,372,375],{"align":320},"A requested ",[283,361,362],{},"filter[...]"," is not in ",[283,365,366],{},".allowedFilters()",". Exposes ",[283,369,370],{},"unknownFilters"," and ",[283,373,374],{},"allowedFilters",".",[315,377,378,383,387,393],{},[337,379,380],{"align":320},[283,381,382],{},"InvalidSortQuery",[337,384,385],{"align":320},[283,386,346],{},[337,388,389,352,391,356],{"align":320},[283,390,351],{},[283,392,355],{},[337,394,359,395,363,397,367,400,371,403,375],{"align":320},[283,396,293],{},[283,398,399],{},".allowedSorts()",[283,401,402],{},"unknownSorts",[283,404,405],{},"allowedSorts",[315,407,408,413,417,423],{},[337,409,410],{"align":320},[283,411,412],{},"InvalidIncludeQuery",[337,414,415],{"align":320},[283,416,346],{},[337,418,419,352,421,356],{"align":320},[283,420,351],{},[283,422,355],{},[337,424,359,425,363,427,367,430,371,433,375],{"align":320},[283,426,297],{},[283,428,429],{},".allowedIncludes()",[283,431,432],{},"unknownIncludes",[283,434,435],{},"allowedIncludes",[315,437,438,443,448,452],{},[337,439,440],{"align":320},[283,441,442],{},"InvalidDirection",[337,444,445],{"align":320},[283,446,447],{},"500 Internal Server Error",[337,449,450],{"align":320},[283,451,301],{},[337,453,454,455,458,459,462,463,375],{"align":320},"An invalid default sort direction (not ",[283,456,457],{},"'asc'"," or ",[283,460,461],{},"'desc'",") is passed to ",[283,464,465],{},"AllowedSort.setDefaultDirection()",[315,467,468,473,477,482],{},[337,469,470],{"align":320},[283,471,472],{},"FilterableNotConfigured",[337,474,475],{"align":320},[283,476,447],{},[337,478,479],{"align":320},[283,480,481],{},"E_FILTERABLE_NOT_CONFIGURED",[337,483,484,458,487,490,491,494],{"align":320},[283,485,486],{},"Model.$filter()",[283,488,489],{},"query.filter()"," is called on a model that has no ",[283,492,493],{},"$filterable"," configured and no filterable class argument was provided.",[315,496,497,502,506,511],{},[337,498,499],{"align":320},[283,500,501],{},"VineNotInstalledException",[337,503,504],{"align":320},[283,505,447],{},[337,507,508],{"align":320},[283,509,510],{},"E_VINE_NOT_INSTALLED",[337,512,513,514,517],{"align":320},"Validation rules are executed when ",[283,515,516],{},"@vinejs\u002Fvine"," is not installed in the project.",[519,520,521],"note",{},[279,522,523,524,290,526,290,528,290,530,290,533,290,536,539,540,542,543,546],{},"All invalid query exceptions (",[283,525,341],{},[283,527,382],{},[283,529,412],{},[283,531,532],{},"InvalidFieldQuery",[283,534,535],{},"InvalidAppendQuery",[283,537,538],{},"UnknownIncludedFieldsQuery",") inherit from the abstract ",[283,541,355],{}," class, making it easy to catch all client query errors in a single ",[283,544,545],{},"instanceof InvalidQuery"," check.",[304,548,550],{"id":549},"custom-exception-handling","Custom Exception Handling",[279,552,553,554,557,558,560],{},"In your AdonisJS global exception handler (",[283,555,556],{},"app\u002Fexceptions\u002Fhandler.ts","), you can customize the JSON response for ",[283,559,355],{}," exceptions:",[562,563,568],"pre",{"className":564,"code":565,"filename":556,"language":566,"meta":567,"style":567},"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 {\n  InvalidFilterQuery,\n  InvalidIncludeQuery,\n  InvalidQuery,\n  InvalidSortQuery,\n} from '@eienjs\u002Fadonisjs-api-query';\n\nexport default class HttpExceptionHandler extends ExceptionHandler {\n  public async handle(error: unknown, ctx: HttpContext) {\n    if (error instanceof InvalidFilterQuery) {\n      return ctx.response.badRequest({\n        code: 'E_INVALID_FILTER',\n        message: error.message,\n        unknownFilters: error.unknownFilters,\n        allowedFilters: error.allowedFilters,\n      });\n    }\n\n    if (error instanceof InvalidSortQuery) {\n      return ctx.response.badRequest({\n        code: 'E_INVALID_SORT',\n        message: error.message,\n        unknownSorts: error.unknownSorts,\n        allowedSorts: error.allowedSorts,\n      });\n    }\n\n    if (error instanceof InvalidIncludeQuery) {\n      return ctx.response.badRequest({\n        code: 'E_INVALID_INCLUDE',\n        message: error.message,\n        unknownIncludes: error.unknownIncludes,\n        allowedIncludes: error.allowedIncludes,\n      });\n    }\n\n    if (error instanceof InvalidQuery) {\n      return ctx.response.badRequest({\n        code: InvalidQuery.code,\n        message: error.message,\n      });\n    }\n\n    return super.handle(error, ctx);\n  }\n}\n","ts","",[283,569,570,609,631,639,648,656,664,672,688,695,719,759,781,804,821,839,855,871,881,887,892,910,929,945,960,976,992,1001,1006,1011,1029,1048,1064,1079,1095,1111,1120,1125,1130,1148,1167,1182,1197,1206,1211,1216,1242,1248],{"__ignoreMap":567},[571,572,575,579,582,586,590,593,596,599,603,606],"span",{"class":573,"line":574},"line",1,[571,576,578],{"class":577},"s7zQu","import",[571,580,581],{"class":577}," type",[571,583,585],{"class":584},"sMK4o"," {",[571,587,589],{"class":588},"sTEyZ"," HttpContext",[571,591,592],{"class":584}," }",[571,594,595],{"class":577}," from",[571,597,598],{"class":584}," '",[571,600,602],{"class":601},"sfazB","@adonisjs\u002Fcore\u002Fhttp",[571,604,605],{"class":584},"'",[571,607,608],{"class":584},";\n",[571,610,612,614,616,619,621,623,625,627,629],{"class":573,"line":611},2,[571,613,578],{"class":577},[571,615,585],{"class":584},[571,617,618],{"class":588}," ExceptionHandler",[571,620,592],{"class":584},[571,622,595],{"class":577},[571,624,598],{"class":584},[571,626,602],{"class":601},[571,628,605],{"class":584},[571,630,608],{"class":584},[571,632,634,636],{"class":573,"line":633},3,[571,635,578],{"class":577},[571,637,638],{"class":584}," {\n",[571,640,642,645],{"class":573,"line":641},4,[571,643,644],{"class":588},"  InvalidFilterQuery",[571,646,647],{"class":584},",\n",[571,649,651,654],{"class":573,"line":650},5,[571,652,653],{"class":588},"  InvalidIncludeQuery",[571,655,647],{"class":584},[571,657,659,662],{"class":573,"line":658},6,[571,660,661],{"class":588},"  InvalidQuery",[571,663,647],{"class":584},[571,665,667,670],{"class":573,"line":666},7,[571,668,669],{"class":588},"  InvalidSortQuery",[571,671,647],{"class":584},[571,673,675,678,680,682,684,686],{"class":573,"line":674},8,[571,676,677],{"class":584},"}",[571,679,595],{"class":577},[571,681,598],{"class":584},[571,683,285],{"class":601},[571,685,605],{"class":584},[571,687,608],{"class":584},[571,689,691],{"class":573,"line":690},9,[571,692,694],{"emptyLinePlaceholder":693},true,"\n",[571,696,698,701,704,708,712,715,717],{"class":573,"line":697},10,[571,699,700],{"class":577},"export",[571,702,703],{"class":577}," default",[571,705,707],{"class":706},"spNyl"," class",[571,709,711],{"class":710},"sBMFI"," HttpExceptionHandler",[571,713,714],{"class":706}," extends",[571,716,618],{"class":710},[571,718,638],{"class":584},[571,720,722,725,728,732,735,739,742,745,748,751,753,755,757],{"class":573,"line":721},11,[571,723,724],{"class":706},"  public",[571,726,727],{"class":706}," async",[571,729,731],{"class":730},"swJcz"," handle",[571,733,734],{"class":584},"(",[571,736,738],{"class":737},"sHdIc","error",[571,740,741],{"class":584},":",[571,743,744],{"class":710}," unknown",[571,746,747],{"class":584},",",[571,749,750],{"class":737}," ctx",[571,752,741],{"class":584},[571,754,589],{"class":710},[571,756,356],{"class":584},[571,758,638],{"class":584},[571,760,762,765,767,769,772,775,778],{"class":573,"line":761},12,[571,763,764],{"class":577},"    if",[571,766,352],{"class":730},[571,768,738],{"class":588},[571,770,771],{"class":584}," instanceof",[571,773,774],{"class":710}," InvalidFilterQuery",[571,776,777],{"class":730},") ",[571,779,780],{"class":584},"{\n",[571,782,784,787,789,791,794,796,800,802],{"class":573,"line":783},13,[571,785,786],{"class":577},"      return",[571,788,750],{"class":588},[571,790,375],{"class":584},[571,792,793],{"class":588},"response",[571,795,375],{"class":584},[571,797,799],{"class":798},"s2Zo4","badRequest",[571,801,734],{"class":730},[571,803,780],{"class":584},[571,805,807,810,812,814,817,819],{"class":573,"line":806},14,[571,808,809],{"class":730},"        code",[571,811,741],{"class":584},[571,813,598],{"class":584},[571,815,816],{"class":601},"E_INVALID_FILTER",[571,818,605],{"class":584},[571,820,647],{"class":584},[571,822,824,827,829,832,834,837],{"class":573,"line":823},15,[571,825,826],{"class":730},"        message",[571,828,741],{"class":584},[571,830,831],{"class":588}," error",[571,833,375],{"class":584},[571,835,836],{"class":588},"message",[571,838,647],{"class":584},[571,840,842,845,847,849,851,853],{"class":573,"line":841},16,[571,843,844],{"class":730},"        unknownFilters",[571,846,741],{"class":584},[571,848,831],{"class":588},[571,850,375],{"class":584},[571,852,370],{"class":588},[571,854,647],{"class":584},[571,856,858,861,863,865,867,869],{"class":573,"line":857},17,[571,859,860],{"class":730},"        allowedFilters",[571,862,741],{"class":584},[571,864,831],{"class":588},[571,866,375],{"class":584},[571,868,374],{"class":588},[571,870,647],{"class":584},[571,872,874,877,879],{"class":573,"line":873},18,[571,875,876],{"class":584},"      }",[571,878,356],{"class":730},[571,880,608],{"class":584},[571,882,884],{"class":573,"line":883},19,[571,885,886],{"class":584},"    }\n",[571,888,890],{"class":573,"line":889},20,[571,891,694],{"emptyLinePlaceholder":693},[571,893,895,897,899,901,903,906,908],{"class":573,"line":894},21,[571,896,764],{"class":577},[571,898,352],{"class":730},[571,900,738],{"class":588},[571,902,771],{"class":584},[571,904,905],{"class":710}," InvalidSortQuery",[571,907,777],{"class":730},[571,909,780],{"class":584},[571,911,913,915,917,919,921,923,925,927],{"class":573,"line":912},22,[571,914,786],{"class":577},[571,916,750],{"class":588},[571,918,375],{"class":584},[571,920,793],{"class":588},[571,922,375],{"class":584},[571,924,799],{"class":798},[571,926,734],{"class":730},[571,928,780],{"class":584},[571,930,932,934,936,938,941,943],{"class":573,"line":931},23,[571,933,809],{"class":730},[571,935,741],{"class":584},[571,937,598],{"class":584},[571,939,940],{"class":601},"E_INVALID_SORT",[571,942,605],{"class":584},[571,944,647],{"class":584},[571,946,948,950,952,954,956,958],{"class":573,"line":947},24,[571,949,826],{"class":730},[571,951,741],{"class":584},[571,953,831],{"class":588},[571,955,375],{"class":584},[571,957,836],{"class":588},[571,959,647],{"class":584},[571,961,963,966,968,970,972,974],{"class":573,"line":962},25,[571,964,965],{"class":730},"        unknownSorts",[571,967,741],{"class":584},[571,969,831],{"class":588},[571,971,375],{"class":584},[571,973,402],{"class":588},[571,975,647],{"class":584},[571,977,979,982,984,986,988,990],{"class":573,"line":978},26,[571,980,981],{"class":730},"        allowedSorts",[571,983,741],{"class":584},[571,985,831],{"class":588},[571,987,375],{"class":584},[571,989,405],{"class":588},[571,991,647],{"class":584},[571,993,995,997,999],{"class":573,"line":994},27,[571,996,876],{"class":584},[571,998,356],{"class":730},[571,1000,608],{"class":584},[571,1002,1004],{"class":573,"line":1003},28,[571,1005,886],{"class":584},[571,1007,1009],{"class":573,"line":1008},29,[571,1010,694],{"emptyLinePlaceholder":693},[571,1012,1014,1016,1018,1020,1022,1025,1027],{"class":573,"line":1013},30,[571,1015,764],{"class":577},[571,1017,352],{"class":730},[571,1019,738],{"class":588},[571,1021,771],{"class":584},[571,1023,1024],{"class":710}," InvalidIncludeQuery",[571,1026,777],{"class":730},[571,1028,780],{"class":584},[571,1030,1032,1034,1036,1038,1040,1042,1044,1046],{"class":573,"line":1031},31,[571,1033,786],{"class":577},[571,1035,750],{"class":588},[571,1037,375],{"class":584},[571,1039,793],{"class":588},[571,1041,375],{"class":584},[571,1043,799],{"class":798},[571,1045,734],{"class":730},[571,1047,780],{"class":584},[571,1049,1051,1053,1055,1057,1060,1062],{"class":573,"line":1050},32,[571,1052,809],{"class":730},[571,1054,741],{"class":584},[571,1056,598],{"class":584},[571,1058,1059],{"class":601},"E_INVALID_INCLUDE",[571,1061,605],{"class":584},[571,1063,647],{"class":584},[571,1065,1067,1069,1071,1073,1075,1077],{"class":573,"line":1066},33,[571,1068,826],{"class":730},[571,1070,741],{"class":584},[571,1072,831],{"class":588},[571,1074,375],{"class":584},[571,1076,836],{"class":588},[571,1078,647],{"class":584},[571,1080,1082,1085,1087,1089,1091,1093],{"class":573,"line":1081},34,[571,1083,1084],{"class":730},"        unknownIncludes",[571,1086,741],{"class":584},[571,1088,831],{"class":588},[571,1090,375],{"class":584},[571,1092,432],{"class":588},[571,1094,647],{"class":584},[571,1096,1098,1101,1103,1105,1107,1109],{"class":573,"line":1097},35,[571,1099,1100],{"class":730},"        allowedIncludes",[571,1102,741],{"class":584},[571,1104,831],{"class":588},[571,1106,375],{"class":584},[571,1108,435],{"class":588},[571,1110,647],{"class":584},[571,1112,1114,1116,1118],{"class":573,"line":1113},36,[571,1115,876],{"class":584},[571,1117,356],{"class":730},[571,1119,608],{"class":584},[571,1121,1123],{"class":573,"line":1122},37,[571,1124,886],{"class":584},[571,1126,1128],{"class":573,"line":1127},38,[571,1129,694],{"emptyLinePlaceholder":693},[571,1131,1133,1135,1137,1139,1141,1144,1146],{"class":573,"line":1132},39,[571,1134,764],{"class":577},[571,1136,352],{"class":730},[571,1138,738],{"class":588},[571,1140,771],{"class":584},[571,1142,1143],{"class":710}," InvalidQuery",[571,1145,777],{"class":730},[571,1147,780],{"class":584},[571,1149,1151,1153,1155,1157,1159,1161,1163,1165],{"class":573,"line":1150},40,[571,1152,786],{"class":577},[571,1154,750],{"class":588},[571,1156,375],{"class":584},[571,1158,793],{"class":588},[571,1160,375],{"class":584},[571,1162,799],{"class":798},[571,1164,734],{"class":730},[571,1166,780],{"class":584},[571,1168,1170,1172,1174,1176,1178,1180],{"class":573,"line":1169},41,[571,1171,809],{"class":730},[571,1173,741],{"class":584},[571,1175,1143],{"class":588},[571,1177,375],{"class":584},[571,1179,283],{"class":588},[571,1181,647],{"class":584},[571,1183,1185,1187,1189,1191,1193,1195],{"class":573,"line":1184},42,[571,1186,826],{"class":730},[571,1188,741],{"class":584},[571,1190,831],{"class":588},[571,1192,375],{"class":584},[571,1194,836],{"class":588},[571,1196,647],{"class":584},[571,1198,1200,1202,1204],{"class":573,"line":1199},43,[571,1201,876],{"class":584},[571,1203,356],{"class":730},[571,1205,608],{"class":584},[571,1207,1209],{"class":573,"line":1208},44,[571,1210,886],{"class":584},[571,1212,1214],{"class":573,"line":1213},45,[571,1215,694],{"emptyLinePlaceholder":693},[571,1217,1219,1222,1225,1227,1230,1232,1234,1236,1238,1240],{"class":573,"line":1218},46,[571,1220,1221],{"class":577},"    return",[571,1223,1224],{"class":588}," super",[571,1226,375],{"class":584},[571,1228,1229],{"class":798},"handle",[571,1231,734],{"class":730},[571,1233,738],{"class":588},[571,1235,747],{"class":584},[571,1237,750],{"class":588},[571,1239,356],{"class":730},[571,1241,608],{"class":584},[571,1243,1245],{"class":573,"line":1244},47,[571,1246,1247],{"class":584},"  }\n",[571,1249,1251],{"class":573,"line":1250},48,[571,1252,1253],{"class":584},"}\n",[304,1255,1257],{"id":1256},"disabling-invalid-query-exceptions","Disabling Invalid Query Exceptions",[279,1259,1260,1261,1263,1264,1267,1268,741],{},"If you prefer to silently ignore disallowed filters, sorts, or includes instead of throwing ",[283,1262,346],{}," exceptions, update your ",[1265,1266,52],"a",{"href":53}," in ",[283,1269,1270],{},"config\u002Fapiquery.ts",[562,1272,1274],{"className":564,"code":1273,"filename":1270,"language":566,"meta":567,"style":567},"import { defineConfig } from '@eienjs\u002Fadonisjs-api-query';\n\nexport default defineConfig({\n  disableInvalidFilterQueryException: true,\n  disableInvalidSortQueryException: true,\n  disableInvalidIncludesQueryException: true,\n});\n",[283,1275,1276,1297,1301,1313,1326,1337,1348],{"__ignoreMap":567},[571,1277,1278,1280,1282,1285,1287,1289,1291,1293,1295],{"class":573,"line":574},[571,1279,578],{"class":577},[571,1281,585],{"class":584},[571,1283,1284],{"class":588}," defineConfig",[571,1286,592],{"class":584},[571,1288,595],{"class":577},[571,1290,598],{"class":584},[571,1292,285],{"class":601},[571,1294,605],{"class":584},[571,1296,608],{"class":584},[571,1298,1299],{"class":573,"line":611},[571,1300,694],{"emptyLinePlaceholder":693},[571,1302,1303,1305,1307,1309,1311],{"class":573,"line":633},[571,1304,700],{"class":577},[571,1306,703],{"class":577},[571,1308,1284],{"class":798},[571,1310,734],{"class":588},[571,1312,780],{"class":584},[571,1314,1315,1318,1320,1324],{"class":573,"line":641},[571,1316,1317],{"class":730},"  disableInvalidFilterQueryException",[571,1319,741],{"class":584},[571,1321,1323],{"class":1322},"sfNiH"," true",[571,1325,647],{"class":584},[571,1327,1328,1331,1333,1335],{"class":573,"line":650},[571,1329,1330],{"class":730},"  disableInvalidSortQueryException",[571,1332,741],{"class":584},[571,1334,1323],{"class":1322},[571,1336,647],{"class":584},[571,1338,1339,1342,1344,1346],{"class":573,"line":658},[571,1340,1341],{"class":730},"  disableInvalidIncludesQueryException",[571,1343,741],{"class":584},[571,1345,1323],{"class":1322},[571,1347,647],{"class":584},[571,1349,1350,1352,1354],{"class":573,"line":666},[571,1351,677],{"class":584},[571,1353,356],{"class":588},[571,1355,608],{"class":584},[1357,1358,1359],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":567,"searchDepth":574,"depth":611,"links":1361},[1362,1363,1364],{"id":306,"depth":611,"text":307},{"id":549,"depth":611,"text":550},{"id":1256,"depth":611,"text":1257},"Handle exceptions thrown by @eienjs\u002Fadonisjs-api-query when invalid query parameters are requested.","md",{},{"icon":107},{"title":104,"description":1365},"f3JmuqVmc-SukD6RxJv56KZZTt3ToZpDP3UZZGLKuMo",[1372,1374],{"title":99,"path":100,"stem":101,"description":1373,"icon":102,"children":-1},"Inspect parsed query parameters and customize array value delimiters with ApiQueryBuilderRequest.",{"title":10,"path":119,"stem":120,"description":1375,"icon":45,"children":-1},"Associate Lucid models with roles and permissions in AdonisJS v7.",{"id":1377,"extension":1378,"meta":1379,"packages":1380,"stem":1423,"__hash__":1424},"packages\u002Fdata\u002Fpackages.json","json",{},[1381,1388,1394,1400,1405,1411,1417],{"name":1382,"title":1383,"description":1384,"icon":86,"category":1385,"repo":1386,"version":1387,"docs":693},"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":1389,"title":1390,"description":1391,"icon":33,"category":1385,"repo":1392,"version":1393,"docs":693},"adonisjs-api-query","API Query","Easily build Lucid queries from API requests","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-api-query","3.0.1",{"name":1395,"title":1396,"description":1397,"icon":249,"category":1385,"repo":1398,"version":1399,"docs":693},"adonisjs-soft-deletes","Soft Deletes","Provider-based Soft deletes for AdonisJS","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-soft-deletes","1.0.2",{"name":1401,"title":195,"description":1402,"icon":196,"category":1385,"repo":1403,"version":1404,"docs":693},"adonisjs-simple-auth","Single API key authentication for AdonisJS v7 applications","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-simple-auth","2.1.0",{"name":1406,"title":1407,"description":1408,"icon":1409,"category":1385,"repo":1410,"docs":22},"adonisjs-sentry","Sentry","Sentry service provider for AdonisJS v7.","i-tabler-bug","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-sentry",{"name":1412,"title":1413,"description":1414,"icon":141,"category":1415,"repo":1416,"docs":22},"eslint-config","ESLint Config","The EienJS ESLint config preset.","tooling","https:\u002F\u002Fgithub.com\u002Feienjs\u002Feslint-config",{"name":1418,"title":1419,"description":1420,"icon":1421,"category":1415,"repo":1422,"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",1793868427612]