[{"data":1,"prerenderedAt":1175},["ShallowReactive",2],{"navigation":3,"\u002Fpackages\u002Fadonisjs-api-query\u002Fadvanced\u002Frequest-and-delimiters":273,"\u002Fpackages\u002Fadonisjs-api-query\u002Fadvanced\u002Frequest-and-delimiters-surround":1121,"packages-data":1126},[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":99,"body":275,"description":1115,"extension":1116,"meta":1117,"navigation":1118,"path":100,"seo":1119,"stem":101,"__hash__":1120},"docs\u002F2.packages\u002Fadonisjs-api-query\u002F3.advanced\u002F2.request-and-delimiters.md",{"type":276,"value":277,"toc":1103},"minimark",[278,313,320,337,618,626,635,695,699,723,726,730,766,891,897,907,1099],[279,280,281,282,286,287,290,291,294,295,298,299,298,302,298,305,308,309,312],"p",{},"Under the hood, ",[283,284,285],"code",{},"@eienjs\u002Fadonisjs-api-query"," wraps the AdonisJS ",[283,288,289],{},"HttpRequest"," in an ",[283,292,293],{},"ApiQueryBuilderRequest"," instance to parse ",[283,296,297],{},"filter",", ",[283,300,301],{},"sort",[283,303,304],{},"include",[283,306,307],{},"fields",", and ",[283,310,311],{},"append"," parameters consistently.",[314,315,317,318],"h2",{"id":316},"accessing-apiquerybuilderrequest","Accessing ",[283,319,293],{},[279,321,322,323,325,326,328,329,332,333,336],{},"You can create an ",[283,324,293],{}," directly from an ",[283,327,289],{}," or access it on any ",[283,330,331],{},"ModelQueryBuilder"," instance via the ",[283,334,335],{},"$apiQueryBuilderRequest"," getter:",[338,339,344],"pre",{"className":340,"code":341,"language":342,"meta":343,"style":343},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { ApiQueryBuilderRequest } from '@eienjs\u002Fadonisjs-api-query';\n\n\u002F\u002F Directly from HttpRequest:\nconst apiRequest = ApiQueryBuilderRequest.fromRequest(request);\n\u002F\u002F or: new ApiQueryBuilderRequest(request)\n\nconst filters = apiRequest.filters(); \u002F\u002F Record\u003Cstring, unknown>\nconst sorts = apiRequest.sorts(); \u002F\u002F string[]\nconst includes = apiRequest.includes(); \u002F\u002F string[]\nconst fields = apiRequest.fields(); \u002F\u002F Record\u003Cstring, string[]>\nconst appends = apiRequest.appends(); \u002F\u002F string[]\n\n\u002F\u002F Or from a ModelQueryBuilder:\nconst query = User.query().withRequest(request);\nconst parsedFilters = query.$apiQueryBuilderRequest.filters();\n","ts","",[283,345,346,381,388,395,422,428,433,460,484,507,530,553,558,564,593],{"__ignoreMap":343},[347,348,351,355,359,363,366,369,372,375,378],"span",{"class":349,"line":350},"line",1,[347,352,354],{"class":353},"s7zQu","import",[347,356,358],{"class":357},"sMK4o"," {",[347,360,362],{"class":361},"sTEyZ"," ApiQueryBuilderRequest",[347,364,365],{"class":357}," }",[347,367,368],{"class":353}," from",[347,370,371],{"class":357}," '",[347,373,285],{"class":374},"sfazB",[347,376,377],{"class":357},"'",[347,379,380],{"class":357},";\n",[347,382,384],{"class":349,"line":383},2,[347,385,387],{"emptyLinePlaceholder":386},true,"\n",[347,389,391],{"class":349,"line":390},3,[347,392,394],{"class":393},"sHwdD","\u002F\u002F Directly from HttpRequest:\n",[347,396,398,402,405,408,410,413,417,420],{"class":349,"line":397},4,[347,399,401],{"class":400},"spNyl","const",[347,403,404],{"class":361}," apiRequest ",[347,406,407],{"class":357},"=",[347,409,362],{"class":361},[347,411,412],{"class":357},".",[347,414,416],{"class":415},"s2Zo4","fromRequest",[347,418,419],{"class":361},"(request)",[347,421,380],{"class":357},[347,423,425],{"class":349,"line":424},5,[347,426,427],{"class":393},"\u002F\u002F or: new ApiQueryBuilderRequest(request)\n",[347,429,431],{"class":349,"line":430},6,[347,432,387],{"emptyLinePlaceholder":386},[347,434,436,438,441,443,446,448,451,454,457],{"class":349,"line":435},7,[347,437,401],{"class":400},[347,439,440],{"class":361}," filters ",[347,442,407],{"class":357},[347,444,445],{"class":361}," apiRequest",[347,447,412],{"class":357},[347,449,450],{"class":415},"filters",[347,452,453],{"class":361},"()",[347,455,456],{"class":357},";",[347,458,459],{"class":393}," \u002F\u002F Record\u003Cstring, unknown>\n",[347,461,463,465,468,470,472,474,477,479,481],{"class":349,"line":462},8,[347,464,401],{"class":400},[347,466,467],{"class":361}," sorts ",[347,469,407],{"class":357},[347,471,445],{"class":361},[347,473,412],{"class":357},[347,475,476],{"class":415},"sorts",[347,478,453],{"class":361},[347,480,456],{"class":357},[347,482,483],{"class":393}," \u002F\u002F string[]\n",[347,485,487,489,492,494,496,498,501,503,505],{"class":349,"line":486},9,[347,488,401],{"class":400},[347,490,491],{"class":361}," includes ",[347,493,407],{"class":357},[347,495,445],{"class":361},[347,497,412],{"class":357},[347,499,500],{"class":415},"includes",[347,502,453],{"class":361},[347,504,456],{"class":357},[347,506,483],{"class":393},[347,508,510,512,515,517,519,521,523,525,527],{"class":349,"line":509},10,[347,511,401],{"class":400},[347,513,514],{"class":361}," fields ",[347,516,407],{"class":357},[347,518,445],{"class":361},[347,520,412],{"class":357},[347,522,307],{"class":415},[347,524,453],{"class":361},[347,526,456],{"class":357},[347,528,529],{"class":393}," \u002F\u002F Record\u003Cstring, string[]>\n",[347,531,533,535,538,540,542,544,547,549,551],{"class":349,"line":532},11,[347,534,401],{"class":400},[347,536,537],{"class":361}," appends ",[347,539,407],{"class":357},[347,541,445],{"class":361},[347,543,412],{"class":357},[347,545,546],{"class":415},"appends",[347,548,453],{"class":361},[347,550,456],{"class":357},[347,552,483],{"class":393},[347,554,556],{"class":349,"line":555},12,[347,557,387],{"emptyLinePlaceholder":386},[347,559,561],{"class":349,"line":560},13,[347,562,563],{"class":393},"\u002F\u002F Or from a ModelQueryBuilder:\n",[347,565,567,569,572,574,577,579,582,584,586,589,591],{"class":349,"line":566},14,[347,568,401],{"class":400},[347,570,571],{"class":361}," query ",[347,573,407],{"class":357},[347,575,576],{"class":361}," User",[347,578,412],{"class":357},[347,580,581],{"class":415},"query",[347,583,453],{"class":361},[347,585,412],{"class":357},[347,587,588],{"class":415},"withRequest",[347,590,419],{"class":361},[347,592,380],{"class":357},[347,594,596,598,601,603,606,608,610,612,614,616],{"class":349,"line":595},15,[347,597,401],{"class":400},[347,599,600],{"class":361}," parsedFilters ",[347,602,407],{"class":357},[347,604,605],{"class":361}," query",[347,607,412],{"class":357},[347,609,335],{"class":361},[347,611,412],{"class":357},[347,613,450],{"class":415},[347,615,453],{"class":361},[347,617,380],{"class":357},[619,620,622,623],"h3",{"id":621},"automatic-value-parsing-in-filters","Automatic Value Parsing in ",[283,624,625],{},"filters()",[279,627,628,629,631,632,634],{},"When ",[283,630,293],{}," parses ",[283,633,297],{}," values from the query string:",[636,637,638,656,671,682],"ul",{},[639,640,641,642,645,646,649,650,645,653,412],"li",{},"String ",[283,643,644],{},"'true'"," and ",[283,647,648],{},"'false'"," are converted to boolean ",[283,651,652],{},"true",[283,654,655],{},"false",[639,657,658,659,662,663,666,667,670],{},"Strings containing the filter array delimiter (",[283,660,661],{},","," by default) are split into string arrays (e.g., ",[283,664,665],{},"?filter[status]=active,pending"," becomes ",[283,668,669],{},"['active', 'pending']",").",[639,672,673,645,676,679,680,412],{},[283,674,675],{},"undefined",[283,677,678],{},"null"," become ",[283,681,678],{},[639,683,684,685,298,688,298,691,694],{},"Unsafe object prototype keys (",[283,686,687],{},"__proto__",[283,689,690],{},"constructor",[283,692,693],{},"prototype",") are automatically stripped to prevent prototype pollution.",[314,696,698],{"id":697},"customizing-array-value-delimiters","Customizing Array Value Delimiters",[279,700,701,702,704,705,298,707,298,709,298,711,308,713,715,716,719,720,670],{},"By default, comma (",[283,703,661],{},") is used to split multiple values in ",[283,706,297],{},[283,708,301],{},[283,710,304],{},[283,712,307],{},[283,714,311],{}," parameters (for example, ",[283,717,718],{},"?filter[id]=1,2,3"," or ",[283,721,722],{},"?include=posts,profile",[279,724,725],{},"If your filter values naturally contain commas (such as addresses or titles), you can change the delimiter globally or for specific parameter types.",[619,727,729],{"id":728},"per-filter-array-delimiter","Per-Filter Array Delimiter",[279,731,732,733,736,737,298,740,298,743,298,746,298,749,298,752,298,755,298,758,761,762,765],{},"All ",[283,734,735],{},"AllowedFilter"," factory methods (",[283,738,739],{},"exact",[283,741,742],{},"partial",[283,744,745],{},"beginsWithStrict",[283,747,748],{},"endsWithStrict",[283,750,751],{},"callback",[283,753,754],{},"scope",[283,756,757],{},"custom",[283,759,760],{},"operator",") accept an optional ",[283,763,764],{},"arrayValueDelimiter"," parameter:",[338,767,769],{"className":340,"code":768,"language":342,"meta":343,"style":343},"import { AllowedFilter } from '@eienjs\u002Fadonisjs-api-query';\n\n\u002F\u002F GET \u002Fusers?filter[location]=New York, NY;Los Angeles, CA\nconst users = await User.query()\n  .withRequest(request)\n  .allowedFilters([\n    AllowedFilter.exact('location', undefined, true, ';'),\n  ]);\n",[283,770,771,792,796,801,822,832,842,884],{"__ignoreMap":343},[347,772,773,775,777,780,782,784,786,788,790],{"class":349,"line":350},[347,774,354],{"class":353},[347,776,358],{"class":357},[347,778,779],{"class":361}," AllowedFilter",[347,781,365],{"class":357},[347,783,368],{"class":353},[347,785,371],{"class":357},[347,787,285],{"class":374},[347,789,377],{"class":357},[347,791,380],{"class":357},[347,793,794],{"class":349,"line":383},[347,795,387],{"emptyLinePlaceholder":386},[347,797,798],{"class":349,"line":390},[347,799,800],{"class":393},"\u002F\u002F GET \u002Fusers?filter[location]=New York, NY;Los Angeles, CA\n",[347,802,803,805,808,810,813,815,817,819],{"class":349,"line":397},[347,804,401],{"class":400},[347,806,807],{"class":361}," users ",[347,809,407],{"class":357},[347,811,812],{"class":353}," await",[347,814,576],{"class":361},[347,816,412],{"class":357},[347,818,581],{"class":415},[347,820,821],{"class":361},"()\n",[347,823,824,827,829],{"class":349,"line":424},[347,825,826],{"class":357},"  .",[347,828,588],{"class":415},[347,830,831],{"class":361},"(request)\n",[347,833,834,836,839],{"class":349,"line":430},[347,835,826],{"class":357},[347,837,838],{"class":415},"allowedFilters",[347,840,841],{"class":361},"([\n",[347,843,844,847,849,851,854,856,859,861,863,866,870,872,874,876,878,881],{"class":349,"line":435},[347,845,846],{"class":361},"    AllowedFilter",[347,848,412],{"class":357},[347,850,739],{"class":415},[347,852,853],{"class":361},"(",[347,855,377],{"class":357},[347,857,858],{"class":374},"location",[347,860,377],{"class":357},[347,862,661],{"class":357},[347,864,865],{"class":357}," undefined,",[347,867,869],{"class":868},"sfNiH"," true",[347,871,661],{"class":357},[347,873,371],{"class":357},[347,875,456],{"class":374},[347,877,377],{"class":357},[347,879,880],{"class":361},")",[347,882,883],{"class":357},",\n",[347,885,886,889],{"class":349,"line":462},[347,887,888],{"class":361},"  ])",[347,890,380],{"class":357},[619,892,894,895],{"id":893},"global-delimiter-methods-on-apiquerybuilderrequest","Global Delimiter Methods on ",[283,896,293],{},[279,898,899,900,902,903,906],{},"You can also configure delimiters via static methods on ",[283,901,293],{}," (or ",[283,904,905],{},"AllowedFilter.setFilterArrayValueDelimiter()","):",[338,908,910],{"className":340,"code":909,"language":342,"meta":343,"style":343},"import { ApiQueryBuilderRequest } from '@eienjs\u002Fadonisjs-api-query';\n\n\u002F\u002F Set delimiter for all parameter types at once (includes, appends, fields, sorts, filters)\nApiQueryBuilderRequest.setArrayValueDelimiter(';');\n\n\u002F\u002F Or configure each parameter type individually:\nApiQueryBuilderRequest.setFilterArrayValueDelimiter('|');\nApiQueryBuilderRequest.setIncludesArrayValueDelimiter(',');\nApiQueryBuilderRequest.setSortsArrayValueDelimiter(',');\nApiQueryBuilderRequest.setFieldsArrayValueDelimiter(',');\nApiQueryBuilderRequest.setAppendsArrayValueDelimiter(',');\n\n\u002F\u002F Reset all delimiters back to ','\nApiQueryBuilderRequest.resetDelimiters();\n",[283,911,912,932,936,941,962,966,971,993,1014,1035,1056,1077,1081,1086],{"__ignoreMap":343},[347,913,914,916,918,920,922,924,926,928,930],{"class":349,"line":350},[347,915,354],{"class":353},[347,917,358],{"class":357},[347,919,362],{"class":361},[347,921,365],{"class":357},[347,923,368],{"class":353},[347,925,371],{"class":357},[347,927,285],{"class":374},[347,929,377],{"class":357},[347,931,380],{"class":357},[347,933,934],{"class":349,"line":383},[347,935,387],{"emptyLinePlaceholder":386},[347,937,938],{"class":349,"line":390},[347,939,940],{"class":393},"\u002F\u002F Set delimiter for all parameter types at once (includes, appends, fields, sorts, filters)\n",[347,942,943,945,947,950,952,954,956,958,960],{"class":349,"line":397},[347,944,293],{"class":361},[347,946,412],{"class":357},[347,948,949],{"class":415},"setArrayValueDelimiter",[347,951,853],{"class":361},[347,953,377],{"class":357},[347,955,456],{"class":374},[347,957,377],{"class":357},[347,959,880],{"class":361},[347,961,380],{"class":357},[347,963,964],{"class":349,"line":424},[347,965,387],{"emptyLinePlaceholder":386},[347,967,968],{"class":349,"line":430},[347,969,970],{"class":393},"\u002F\u002F Or configure each parameter type individually:\n",[347,972,973,975,977,980,982,984,987,989,991],{"class":349,"line":435},[347,974,293],{"class":361},[347,976,412],{"class":357},[347,978,979],{"class":415},"setFilterArrayValueDelimiter",[347,981,853],{"class":361},[347,983,377],{"class":357},[347,985,986],{"class":374},"|",[347,988,377],{"class":357},[347,990,880],{"class":361},[347,992,380],{"class":357},[347,994,995,997,999,1002,1004,1006,1008,1010,1012],{"class":349,"line":462},[347,996,293],{"class":361},[347,998,412],{"class":357},[347,1000,1001],{"class":415},"setIncludesArrayValueDelimiter",[347,1003,853],{"class":361},[347,1005,377],{"class":357},[347,1007,661],{"class":374},[347,1009,377],{"class":357},[347,1011,880],{"class":361},[347,1013,380],{"class":357},[347,1015,1016,1018,1020,1023,1025,1027,1029,1031,1033],{"class":349,"line":486},[347,1017,293],{"class":361},[347,1019,412],{"class":357},[347,1021,1022],{"class":415},"setSortsArrayValueDelimiter",[347,1024,853],{"class":361},[347,1026,377],{"class":357},[347,1028,661],{"class":374},[347,1030,377],{"class":357},[347,1032,880],{"class":361},[347,1034,380],{"class":357},[347,1036,1037,1039,1041,1044,1046,1048,1050,1052,1054],{"class":349,"line":509},[347,1038,293],{"class":361},[347,1040,412],{"class":357},[347,1042,1043],{"class":415},"setFieldsArrayValueDelimiter",[347,1045,853],{"class":361},[347,1047,377],{"class":357},[347,1049,661],{"class":374},[347,1051,377],{"class":357},[347,1053,880],{"class":361},[347,1055,380],{"class":357},[347,1057,1058,1060,1062,1065,1067,1069,1071,1073,1075],{"class":349,"line":532},[347,1059,293],{"class":361},[347,1061,412],{"class":357},[347,1063,1064],{"class":415},"setAppendsArrayValueDelimiter",[347,1066,853],{"class":361},[347,1068,377],{"class":357},[347,1070,661],{"class":374},[347,1072,377],{"class":357},[347,1074,880],{"class":361},[347,1076,380],{"class":357},[347,1078,1079],{"class":349,"line":555},[347,1080,387],{"emptyLinePlaceholder":386},[347,1082,1083],{"class":349,"line":560},[347,1084,1085],{"class":393},"\u002F\u002F Reset all delimiters back to ','\n",[347,1087,1088,1090,1092,1095,1097],{"class":349,"line":566},[347,1089,293],{"class":361},[347,1091,412],{"class":357},[347,1093,1094],{"class":415},"resetDelimiters",[347,1096,453],{"class":361},[347,1098,380],{"class":357},[1100,1101,1102],"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 .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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":343,"searchDepth":350,"depth":383,"links":1104},[1105,1110],{"id":316,"depth":383,"text":1106,"children":1107},"Accessing ApiQueryBuilderRequest",[1108],{"id":621,"depth":390,"text":1109},"Automatic Value Parsing in filters()",{"id":697,"depth":383,"text":698,"children":1111},[1112,1113],{"id":728,"depth":390,"text":729},{"id":893,"depth":390,"text":1114},"Global Delimiter Methods on ApiQueryBuilderRequest","Inspect parsed query parameters and customize array value delimiters with ApiQueryBuilderRequest.","md",{},{"icon":102},{"title":99,"description":1115},"v9JCoBER1cTKlGcW2D9OXoIGRjaRCRnwGgbE7AagwFY",[1122,1124],{"title":94,"path":95,"stem":96,"description":1123,"icon":97,"children":-1},"Build reusable filter, sort, and include classes implementing Filter, Sort, and Include interfaces.",{"title":104,"path":105,"stem":106,"description":1125,"icon":107,"children":-1},"Handle exceptions thrown by @eienjs\u002Fadonisjs-api-query when invalid query parameters are requested.",{"id":1127,"extension":1128,"meta":1129,"packages":1130,"stem":1173,"__hash__":1174},"packages\u002Fdata\u002Fpackages.json","json",{},[1131,1138,1144,1150,1155,1161,1167],{"name":1132,"title":1133,"description":1134,"icon":86,"category":1135,"repo":1136,"version":1137,"docs":386},"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":1139,"title":1140,"description":1141,"icon":33,"category":1135,"repo":1142,"version":1143,"docs":386},"adonisjs-api-query","API Query","Easily build Lucid queries from API requests","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-api-query","3.0.1",{"name":1145,"title":1146,"description":1147,"icon":249,"category":1135,"repo":1148,"version":1149,"docs":386},"adonisjs-soft-deletes","Soft Deletes","Provider-based Soft deletes for AdonisJS","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-soft-deletes","1.0.2",{"name":1151,"title":195,"description":1152,"icon":196,"category":1135,"repo":1153,"version":1154,"docs":386},"adonisjs-simple-auth","Single API key authentication for AdonisJS v7 applications","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-simple-auth","2.1.0",{"name":1156,"title":1157,"description":1158,"icon":1159,"category":1135,"repo":1160,"docs":22},"adonisjs-sentry","Sentry","Sentry service provider for AdonisJS v7.","i-tabler-bug","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-sentry",{"name":1162,"title":1163,"description":1164,"icon":141,"category":1165,"repo":1166,"docs":22},"eslint-config","ESLint Config","The EienJS ESLint config preset.","tooling","https:\u002F\u002Fgithub.com\u002Feienjs\u002Feslint-config",{"name":1168,"title":1169,"description":1170,"icon":1171,"category":1165,"repo":1172,"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",1793868429267]