[{"data":1,"prerenderedAt":1800},["ShallowReactive",2],{"navigation":3,"\u002Fpackages\u002Fadonisjs-api-query\u002Fadvanced\u002Fcustom-clauses":273,"\u002Fpackages\u002Fadonisjs-api-query\u002Fadvanced\u002Fcustom-clauses-surround":1746,"packages-data":1751},[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":94,"body":275,"description":1740,"extension":1741,"meta":1742,"navigation":1743,"path":95,"seo":1744,"stem":96,"__hash__":1745},"docs\u002F2.packages\u002Fadonisjs-api-query\u002F3.advanced\u002F1.custom-clauses.md",{"type":276,"value":277,"toc":1735},"minimark",[278,309,314,329,901,905,916,1305,1309,1320,1731],[279,280,281,282,286,287,286,290,293,294,286,297,300,301,304,305,308],"p",{},"When callback functions (",[283,284,285],"code",{},"AllowedFilter.callback",", ",[283,288,289],{},"AllowedSort.callback",[283,291,292],{},"AllowedInclude.callback",") need to be reused across multiple models or endpoints, you can create dedicated classes implementing the ",[283,295,296],{},"Filter",[283,298,299],{},"Sort",", or ",[283,302,303],{},"Include"," interfaces from ",[283,306,307],{},"@eienjs\u002Fadonisjs-api-query\u002Ftypes",".",[310,311,313],"h2",{"id":312},"custom-filter-class","Custom Filter Class",[279,315,316,317,320,321,324,325,328],{},"Implement the ",[283,318,319],{},"Filter\u003CModel>"," interface with a ",[283,322,323],{},"handle(query, value, property)"," method and register it via ",[283,326,327],{},"AllowedFilter.custom()",":",[330,331,332,727],"code-group",{},[333,334,340],"pre",{"className":335,"code":336,"filename":337,"language":338,"meta":339,"style":339},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import type { LucidModel, ModelQueryBuilderContract } from '@adonisjs\u002Flucid\u002Ftypes\u002Fmodel';\nimport type { StrictValuesWithoutRaw } from '@adonisjs\u002Flucid\u002Ftypes\u002Fquerybuilder';\nimport type { Filter } from '@eienjs\u002Fadonisjs-api-query\u002Ftypes';\n\nexport class DateRangeFilter\u003CModel extends LucidModel> implements Filter\u003CModel> {\n  public handle(\n    query: ModelQueryBuilderContract\u003CModel, InstanceType\u003CModel>>,\n    value: StrictValuesWithoutRaw | null,\n    property: string,\n  ): void {\n    if (!Array.isArray(value) || value.length !== 2) {\n      return;\n    }\n\n    const [startDate, endDate] = value as [string, string];\n    void query.whereBetween(property, [startDate, endDate]);\n  }\n}\n","app\u002Ffilters\u002Fcustom\u002Fdate_range_filter.ts","ts","",[283,341,342,387,412,436,443,485,498,525,544,557,568,621,629,635,640,681,715,721],{"__ignoreMap":339},[343,344,347,351,354,358,362,365,368,371,374,377,381,384],"span",{"class":345,"line":346},"line",1,[343,348,350],{"class":349},"s7zQu","import",[343,352,353],{"class":349}," type",[343,355,357],{"class":356},"sMK4o"," {",[343,359,361],{"class":360},"sTEyZ"," LucidModel",[343,363,364],{"class":356},",",[343,366,367],{"class":360}," ModelQueryBuilderContract",[343,369,370],{"class":356}," }",[343,372,373],{"class":349}," from",[343,375,376],{"class":356}," '",[343,378,380],{"class":379},"sfazB","@adonisjs\u002Flucid\u002Ftypes\u002Fmodel",[343,382,383],{"class":356},"'",[343,385,386],{"class":356},";\n",[343,388,390,392,394,396,399,401,403,405,408,410],{"class":345,"line":389},2,[343,391,350],{"class":349},[343,393,353],{"class":349},[343,395,357],{"class":356},[343,397,398],{"class":360}," StrictValuesWithoutRaw",[343,400,370],{"class":356},[343,402,373],{"class":349},[343,404,376],{"class":356},[343,406,407],{"class":379},"@adonisjs\u002Flucid\u002Ftypes\u002Fquerybuilder",[343,409,383],{"class":356},[343,411,386],{"class":356},[343,413,415,417,419,421,424,426,428,430,432,434],{"class":345,"line":414},3,[343,416,350],{"class":349},[343,418,353],{"class":349},[343,420,357],{"class":356},[343,422,423],{"class":360}," Filter",[343,425,370],{"class":356},[343,427,373],{"class":349},[343,429,376],{"class":356},[343,431,307],{"class":379},[343,433,383],{"class":356},[343,435,386],{"class":356},[343,437,439],{"class":345,"line":438},4,[343,440,442],{"emptyLinePlaceholder":441},true,"\n",[343,444,446,449,453,457,460,463,466,468,471,474,476,478,480,482],{"class":345,"line":445},5,[343,447,448],{"class":349},"export",[343,450,452],{"class":451},"spNyl"," class",[343,454,456],{"class":455},"sBMFI"," DateRangeFilter",[343,458,459],{"class":356},"\u003C",[343,461,462],{"class":455},"Model",[343,464,465],{"class":451}," extends",[343,467,361],{"class":455},[343,469,470],{"class":356},">",[343,472,473],{"class":451}," implements",[343,475,423],{"class":455},[343,477,459],{"class":356},[343,479,462],{"class":455},[343,481,470],{"class":356},[343,483,484],{"class":356}," {\n",[343,486,488,491,495],{"class":345,"line":487},6,[343,489,490],{"class":451},"  public",[343,492,494],{"class":493},"swJcz"," handle",[343,496,497],{"class":356},"(\n",[343,499,501,505,507,509,511,513,515,518,520,522],{"class":345,"line":500},7,[343,502,504],{"class":503},"sHdIc","    query",[343,506,328],{"class":356},[343,508,367],{"class":455},[343,510,459],{"class":356},[343,512,462],{"class":455},[343,514,364],{"class":356},[343,516,517],{"class":455}," InstanceType",[343,519,459],{"class":356},[343,521,462],{"class":455},[343,523,524],{"class":356},">>,\n",[343,526,528,531,533,535,538,541],{"class":345,"line":527},8,[343,529,530],{"class":503},"    value",[343,532,328],{"class":356},[343,534,398],{"class":455},[343,536,537],{"class":356}," |",[343,539,540],{"class":455}," null",[343,542,543],{"class":356},",\n",[343,545,547,550,552,555],{"class":345,"line":546},9,[343,548,549],{"class":503},"    property",[343,551,328],{"class":356},[343,553,554],{"class":455}," string",[343,556,543],{"class":356},[343,558,560,563,566],{"class":345,"line":559},10,[343,561,562],{"class":356},"  ):",[343,564,565],{"class":455}," void",[343,567,484],{"class":356},[343,569,571,574,577,580,583,585,589,592,595,598,601,604,606,609,612,616,618],{"class":345,"line":570},11,[343,572,573],{"class":349},"    if",[343,575,576],{"class":493}," (",[343,578,579],{"class":356},"!",[343,581,582],{"class":360},"Array",[343,584,308],{"class":356},[343,586,588],{"class":587},"s2Zo4","isArray",[343,590,591],{"class":493},"(",[343,593,594],{"class":360},"value",[343,596,597],{"class":493},") ",[343,599,600],{"class":356},"||",[343,602,603],{"class":360}," value",[343,605,308],{"class":356},[343,607,608],{"class":360},"length",[343,610,611],{"class":356}," !==",[343,613,615],{"class":614},"sbssI"," 2",[343,617,597],{"class":493},[343,619,620],{"class":356},"{\n",[343,622,624,627],{"class":345,"line":623},12,[343,625,626],{"class":349},"      return",[343,628,386],{"class":356},[343,630,632],{"class":345,"line":631},13,[343,633,634],{"class":356},"    }\n",[343,636,638],{"class":345,"line":637},14,[343,639,442],{"emptyLinePlaceholder":441},[343,641,643,646,649,652,654,657,660,663,665,668,670,673,675,677,679],{"class":345,"line":642},15,[343,644,645],{"class":451},"    const",[343,647,648],{"class":356}," [",[343,650,651],{"class":360},"startDate",[343,653,364],{"class":356},[343,655,656],{"class":360}," endDate",[343,658,659],{"class":356},"]",[343,661,662],{"class":356}," =",[343,664,603],{"class":360},[343,666,667],{"class":349}," as",[343,669,648],{"class":493},[343,671,672],{"class":455},"string",[343,674,364],{"class":356},[343,676,554],{"class":455},[343,678,659],{"class":493},[343,680,386],{"class":356},[343,682,684,687,690,692,695,697,700,702,704,706,708,710,713],{"class":345,"line":683},16,[343,685,686],{"class":356},"    void",[343,688,689],{"class":360}," query",[343,691,308],{"class":356},[343,693,694],{"class":587},"whereBetween",[343,696,591],{"class":493},[343,698,699],{"class":360},"property",[343,701,364],{"class":356},[343,703,648],{"class":493},[343,705,651],{"class":360},[343,707,364],{"class":356},[343,709,656],{"class":360},[343,711,712],{"class":493},"])",[343,714,386],{"class":356},[343,716,718],{"class":345,"line":717},17,[343,719,720],{"class":356},"  }\n",[343,722,724],{"class":345,"line":723},18,[343,725,726],{"class":356},"}\n",[333,728,731],{"className":335,"code":729,"filename":730,"language":338,"meta":339,"style":339},"import { AllowedFilter } from '@eienjs\u002Fadonisjs-api-query';\nimport { DateRangeFilter } from '#filters\u002Fcustom\u002Fdate_range_filter';\nimport Order from '#models\u002Forder';\n\n\u002F\u002F GET \u002Forders?filter[created_between]=2026-01-01,2026-12-31\nconst orders = await Order.query()\n  .withRequest(request)\n  .allowedFilters([\n    AllowedFilter.custom('created_between', new DateRangeFilter(), 'createdAt'),\n  ]);\n","app\u002Fcontrollers\u002Forders_controller.ts",[283,732,733,755,776,795,799,805,830,841,851,894],{"__ignoreMap":339},[343,734,735,737,739,742,744,746,748,751,753],{"class":345,"line":346},[343,736,350],{"class":349},[343,738,357],{"class":356},[343,740,741],{"class":360}," AllowedFilter",[343,743,370],{"class":356},[343,745,373],{"class":349},[343,747,376],{"class":356},[343,749,750],{"class":379},"@eienjs\u002Fadonisjs-api-query",[343,752,383],{"class":356},[343,754,386],{"class":356},[343,756,757,759,761,763,765,767,769,772,774],{"class":345,"line":389},[343,758,350],{"class":349},[343,760,357],{"class":356},[343,762,456],{"class":360},[343,764,370],{"class":356},[343,766,373],{"class":349},[343,768,376],{"class":356},[343,770,771],{"class":379},"#filters\u002Fcustom\u002Fdate_range_filter",[343,773,383],{"class":356},[343,775,386],{"class":356},[343,777,778,780,783,786,788,791,793],{"class":345,"line":414},[343,779,350],{"class":349},[343,781,782],{"class":360}," Order ",[343,784,785],{"class":349},"from",[343,787,376],{"class":356},[343,789,790],{"class":379},"#models\u002Forder",[343,792,383],{"class":356},[343,794,386],{"class":356},[343,796,797],{"class":345,"line":438},[343,798,442],{"emptyLinePlaceholder":441},[343,800,801],{"class":345,"line":445},[343,802,804],{"class":803},"sHwdD","\u002F\u002F GET \u002Forders?filter[created_between]=2026-01-01,2026-12-31\n",[343,806,807,810,813,816,819,822,824,827],{"class":345,"line":487},[343,808,809],{"class":451},"const",[343,811,812],{"class":360}," orders ",[343,814,815],{"class":356},"=",[343,817,818],{"class":349}," await",[343,820,821],{"class":360}," Order",[343,823,308],{"class":356},[343,825,826],{"class":587},"query",[343,828,829],{"class":360},"()\n",[343,831,832,835,838],{"class":345,"line":500},[343,833,834],{"class":356},"  .",[343,836,837],{"class":587},"withRequest",[343,839,840],{"class":360},"(request)\n",[343,842,843,845,848],{"class":345,"line":527},[343,844,834],{"class":356},[343,846,847],{"class":587},"allowedFilters",[343,849,850],{"class":360},"([\n",[343,852,853,856,858,861,863,865,868,870,872,875,877,880,882,884,887,889,892],{"class":345,"line":546},[343,854,855],{"class":360},"    AllowedFilter",[343,857,308],{"class":356},[343,859,860],{"class":587},"custom",[343,862,591],{"class":360},[343,864,383],{"class":356},[343,866,867],{"class":379},"created_between",[343,869,383],{"class":356},[343,871,364],{"class":356},[343,873,874],{"class":356}," new",[343,876,456],{"class":587},[343,878,879],{"class":360},"()",[343,881,364],{"class":356},[343,883,376],{"class":356},[343,885,886],{"class":379},"createdAt",[343,888,383],{"class":356},[343,890,891],{"class":360},")",[343,893,543],{"class":356},[343,895,896,899],{"class":345,"line":559},[343,897,898],{"class":360},"  ])",[343,900,386],{"class":356},[310,902,904],{"id":903},"custom-sort-class","Custom Sort Class",[279,906,316,907,320,910,324,913,328],{},[283,908,909],{},"Sort\u003CModel>",[283,911,912],{},"handle(query, isDescending, property)",[283,914,915],{},"AllowedSort.custom()",[330,917,918,1148],{},[333,919,922],{"className":335,"code":920,"filename":921,"language":338,"meta":339,"style":339},"import type { LucidModel, ModelQueryBuilderContract } from '@adonisjs\u002Flucid\u002Ftypes\u002Fmodel';\nimport type { Sort } from '@eienjs\u002Fadonisjs-api-query\u002Ftypes';\n\nexport class StringLengthSort\u003CModel extends LucidModel> implements Sort\u003CModel> {\n  public handle(\n    query: ModelQueryBuilderContract\u003CModel, InstanceType\u003CModel>>,\n    isDescending: boolean,\n    property: string,\n  ): void {\n    const direction = isDescending ? 'DESC' : 'ASC';\n    void query.orderByRaw(`LENGTH(??) ${direction}`, [property]);\n  }\n}\n","app\u002Fsorts\u002Fcustom\u002Fstring_length_sort.ts",[283,923,924,950,973,977,1008,1016,1038,1050,1060,1068,1102,1140,1144],{"__ignoreMap":339},[343,925,926,928,930,932,934,936,938,940,942,944,946,948],{"class":345,"line":346},[343,927,350],{"class":349},[343,929,353],{"class":349},[343,931,357],{"class":356},[343,933,361],{"class":360},[343,935,364],{"class":356},[343,937,367],{"class":360},[343,939,370],{"class":356},[343,941,373],{"class":349},[343,943,376],{"class":356},[343,945,380],{"class":379},[343,947,383],{"class":356},[343,949,386],{"class":356},[343,951,952,954,956,958,961,963,965,967,969,971],{"class":345,"line":389},[343,953,350],{"class":349},[343,955,353],{"class":349},[343,957,357],{"class":356},[343,959,960],{"class":360}," Sort",[343,962,370],{"class":356},[343,964,373],{"class":349},[343,966,376],{"class":356},[343,968,307],{"class":379},[343,970,383],{"class":356},[343,972,386],{"class":356},[343,974,975],{"class":345,"line":414},[343,976,442],{"emptyLinePlaceholder":441},[343,978,979,981,983,986,988,990,992,994,996,998,1000,1002,1004,1006],{"class":345,"line":438},[343,980,448],{"class":349},[343,982,452],{"class":451},[343,984,985],{"class":455}," StringLengthSort",[343,987,459],{"class":356},[343,989,462],{"class":455},[343,991,465],{"class":451},[343,993,361],{"class":455},[343,995,470],{"class":356},[343,997,473],{"class":451},[343,999,960],{"class":455},[343,1001,459],{"class":356},[343,1003,462],{"class":455},[343,1005,470],{"class":356},[343,1007,484],{"class":356},[343,1009,1010,1012,1014],{"class":345,"line":445},[343,1011,490],{"class":451},[343,1013,494],{"class":493},[343,1015,497],{"class":356},[343,1017,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036],{"class":345,"line":487},[343,1019,504],{"class":503},[343,1021,328],{"class":356},[343,1023,367],{"class":455},[343,1025,459],{"class":356},[343,1027,462],{"class":455},[343,1029,364],{"class":356},[343,1031,517],{"class":455},[343,1033,459],{"class":356},[343,1035,462],{"class":455},[343,1037,524],{"class":356},[343,1039,1040,1043,1045,1048],{"class":345,"line":500},[343,1041,1042],{"class":503},"    isDescending",[343,1044,328],{"class":356},[343,1046,1047],{"class":455}," boolean",[343,1049,543],{"class":356},[343,1051,1052,1054,1056,1058],{"class":345,"line":527},[343,1053,549],{"class":503},[343,1055,328],{"class":356},[343,1057,554],{"class":455},[343,1059,543],{"class":356},[343,1061,1062,1064,1066],{"class":345,"line":546},[343,1063,562],{"class":356},[343,1065,565],{"class":455},[343,1067,484],{"class":356},[343,1069,1070,1072,1075,1077,1080,1083,1085,1088,1090,1093,1095,1098,1100],{"class":345,"line":559},[343,1071,645],{"class":451},[343,1073,1074],{"class":360}," direction",[343,1076,662],{"class":356},[343,1078,1079],{"class":360}," isDescending",[343,1081,1082],{"class":356}," ?",[343,1084,376],{"class":356},[343,1086,1087],{"class":379},"DESC",[343,1089,383],{"class":356},[343,1091,1092],{"class":356}," :",[343,1094,376],{"class":356},[343,1096,1097],{"class":379},"ASC",[343,1099,383],{"class":356},[343,1101,386],{"class":356},[343,1103,1104,1106,1108,1110,1113,1115,1118,1121,1124,1127,1130,1132,1134,1136,1138],{"class":345,"line":570},[343,1105,686],{"class":356},[343,1107,689],{"class":360},[343,1109,308],{"class":356},[343,1111,1112],{"class":587},"orderByRaw",[343,1114,591],{"class":493},[343,1116,1117],{"class":356},"`",[343,1119,1120],{"class":379},"LENGTH(??) ",[343,1122,1123],{"class":356},"${",[343,1125,1126],{"class":360},"direction",[343,1128,1129],{"class":356},"}`",[343,1131,364],{"class":356},[343,1133,648],{"class":493},[343,1135,699],{"class":360},[343,1137,712],{"class":493},[343,1139,386],{"class":356},[343,1141,1142],{"class":345,"line":623},[343,1143,720],{"class":356},[343,1145,1146],{"class":345,"line":631},[343,1147,726],{"class":356},[333,1149,1152],{"className":335,"code":1150,"filename":1151,"language":338,"meta":339,"style":339},"import { AllowedSort } from '@eienjs\u002Fadonisjs-api-query';\nimport User from '#models\u002Fuser';\nimport { StringLengthSort } from '#sorts\u002Fcustom\u002Fstring_length_sort';\n\n\u002F\u002F GET \u002Fusers?sort=-nameLength\nconst users = await User.query()\n  .withRequest(request)\n  .allowedSorts([\n    AllowedSort.custom('nameLength', new StringLengthSort(), 'name'),\n  ]);\n","app\u002Fcontrollers\u002Fusers_controller.ts",[283,1153,1154,1175,1193,1214,1218,1223,1243,1251,1260,1299],{"__ignoreMap":339},[343,1155,1156,1158,1160,1163,1165,1167,1169,1171,1173],{"class":345,"line":346},[343,1157,350],{"class":349},[343,1159,357],{"class":356},[343,1161,1162],{"class":360}," AllowedSort",[343,1164,370],{"class":356},[343,1166,373],{"class":349},[343,1168,376],{"class":356},[343,1170,750],{"class":379},[343,1172,383],{"class":356},[343,1174,386],{"class":356},[343,1176,1177,1179,1182,1184,1186,1189,1191],{"class":345,"line":389},[343,1178,350],{"class":349},[343,1180,1181],{"class":360}," User ",[343,1183,785],{"class":349},[343,1185,376],{"class":356},[343,1187,1188],{"class":379},"#models\u002Fuser",[343,1190,383],{"class":356},[343,1192,386],{"class":356},[343,1194,1195,1197,1199,1201,1203,1205,1207,1210,1212],{"class":345,"line":414},[343,1196,350],{"class":349},[343,1198,357],{"class":356},[343,1200,985],{"class":360},[343,1202,370],{"class":356},[343,1204,373],{"class":349},[343,1206,376],{"class":356},[343,1208,1209],{"class":379},"#sorts\u002Fcustom\u002Fstring_length_sort",[343,1211,383],{"class":356},[343,1213,386],{"class":356},[343,1215,1216],{"class":345,"line":438},[343,1217,442],{"emptyLinePlaceholder":441},[343,1219,1220],{"class":345,"line":445},[343,1221,1222],{"class":803},"\u002F\u002F GET \u002Fusers?sort=-nameLength\n",[343,1224,1225,1227,1230,1232,1234,1237,1239,1241],{"class":345,"line":487},[343,1226,809],{"class":451},[343,1228,1229],{"class":360}," users ",[343,1231,815],{"class":356},[343,1233,818],{"class":349},[343,1235,1236],{"class":360}," User",[343,1238,308],{"class":356},[343,1240,826],{"class":587},[343,1242,829],{"class":360},[343,1244,1245,1247,1249],{"class":345,"line":500},[343,1246,834],{"class":356},[343,1248,837],{"class":587},[343,1250,840],{"class":360},[343,1252,1253,1255,1258],{"class":345,"line":527},[343,1254,834],{"class":356},[343,1256,1257],{"class":587},"allowedSorts",[343,1259,850],{"class":360},[343,1261,1262,1265,1267,1269,1271,1273,1276,1278,1280,1282,1284,1286,1288,1290,1293,1295,1297],{"class":345,"line":546},[343,1263,1264],{"class":360},"    AllowedSort",[343,1266,308],{"class":356},[343,1268,860],{"class":587},[343,1270,591],{"class":360},[343,1272,383],{"class":356},[343,1274,1275],{"class":379},"nameLength",[343,1277,383],{"class":356},[343,1279,364],{"class":356},[343,1281,874],{"class":356},[343,1283,985],{"class":587},[343,1285,879],{"class":360},[343,1287,364],{"class":356},[343,1289,376],{"class":356},[343,1291,1292],{"class":379},"name",[343,1294,383],{"class":356},[343,1296,891],{"class":360},[343,1298,543],{"class":356},[343,1300,1301,1303],{"class":345,"line":559},[343,1302,898],{"class":360},[343,1304,386],{"class":356},[310,1306,1308],{"id":1307},"custom-include-class","Custom Include Class",[279,1310,316,1311,320,1314,324,1317,328],{},[283,1312,1313],{},"Include\u003CParentModel>",[283,1315,1316],{},"handle(query, include)",[283,1318,1319],{},"AllowedInclude.custom()",[330,1321,1322,1579],{},[333,1323,1326],{"className":335,"code":1324,"filename":1325,"language":338,"meta":339,"style":339},"import type { LucidModel, ModelQueryBuilderContract } from '@adonisjs\u002Flucid\u002Ftypes\u002Fmodel';\nimport type { ExtractModelRelations } from '@adonisjs\u002Flucid\u002Ftypes\u002Frelations';\nimport type { Include } from '@eienjs\u002Fadonisjs-api-query\u002Ftypes';\n\nexport class PublishedRelationInclude\u003CParentModel extends LucidModel> implements Include\u003CParentModel> {\n  public handle(\n    query: ModelQueryBuilderContract\u003CParentModel, InstanceType\u003CParentModel>>,\n    include: string,\n  ): void {\n    void query.preload(include as ExtractModelRelations\u003CInstanceType\u003CParentModel>>, (subQuery) => {\n      void subQuery.where('isPublished', true);\n    });\n  }\n}\n","app\u002Fincludes\u002Fcustom\u002Fpublished_relation_include.ts",[283,1327,1328,1354,1378,1401,1405,1437,1445,1467,1478,1486,1530,1562,1571,1575],{"__ignoreMap":339},[343,1329,1330,1332,1334,1336,1338,1340,1342,1344,1346,1348,1350,1352],{"class":345,"line":346},[343,1331,350],{"class":349},[343,1333,353],{"class":349},[343,1335,357],{"class":356},[343,1337,361],{"class":360},[343,1339,364],{"class":356},[343,1341,367],{"class":360},[343,1343,370],{"class":356},[343,1345,373],{"class":349},[343,1347,376],{"class":356},[343,1349,380],{"class":379},[343,1351,383],{"class":356},[343,1353,386],{"class":356},[343,1355,1356,1358,1360,1362,1365,1367,1369,1371,1374,1376],{"class":345,"line":389},[343,1357,350],{"class":349},[343,1359,353],{"class":349},[343,1361,357],{"class":356},[343,1363,1364],{"class":360}," ExtractModelRelations",[343,1366,370],{"class":356},[343,1368,373],{"class":349},[343,1370,376],{"class":356},[343,1372,1373],{"class":379},"@adonisjs\u002Flucid\u002Ftypes\u002Frelations",[343,1375,383],{"class":356},[343,1377,386],{"class":356},[343,1379,1380,1382,1384,1386,1389,1391,1393,1395,1397,1399],{"class":345,"line":414},[343,1381,350],{"class":349},[343,1383,353],{"class":349},[343,1385,357],{"class":356},[343,1387,1388],{"class":360}," Include",[343,1390,370],{"class":356},[343,1392,373],{"class":349},[343,1394,376],{"class":356},[343,1396,307],{"class":379},[343,1398,383],{"class":356},[343,1400,386],{"class":356},[343,1402,1403],{"class":345,"line":438},[343,1404,442],{"emptyLinePlaceholder":441},[343,1406,1407,1409,1411,1414,1416,1419,1421,1423,1425,1427,1429,1431,1433,1435],{"class":345,"line":445},[343,1408,448],{"class":349},[343,1410,452],{"class":451},[343,1412,1413],{"class":455}," PublishedRelationInclude",[343,1415,459],{"class":356},[343,1417,1418],{"class":455},"ParentModel",[343,1420,465],{"class":451},[343,1422,361],{"class":455},[343,1424,470],{"class":356},[343,1426,473],{"class":451},[343,1428,1388],{"class":455},[343,1430,459],{"class":356},[343,1432,1418],{"class":455},[343,1434,470],{"class":356},[343,1436,484],{"class":356},[343,1438,1439,1441,1443],{"class":345,"line":487},[343,1440,490],{"class":451},[343,1442,494],{"class":493},[343,1444,497],{"class":356},[343,1446,1447,1449,1451,1453,1455,1457,1459,1461,1463,1465],{"class":345,"line":500},[343,1448,504],{"class":503},[343,1450,328],{"class":356},[343,1452,367],{"class":455},[343,1454,459],{"class":356},[343,1456,1418],{"class":455},[343,1458,364],{"class":356},[343,1460,517],{"class":455},[343,1462,459],{"class":356},[343,1464,1418],{"class":455},[343,1466,524],{"class":356},[343,1468,1469,1472,1474,1476],{"class":345,"line":527},[343,1470,1471],{"class":503},"    include",[343,1473,328],{"class":356},[343,1475,554],{"class":455},[343,1477,543],{"class":356},[343,1479,1480,1482,1484],{"class":345,"line":546},[343,1481,562],{"class":356},[343,1483,565],{"class":455},[343,1485,484],{"class":356},[343,1487,1488,1490,1492,1494,1497,1499,1502,1504,1506,1508,1511,1513,1515,1518,1520,1523,1525,1528],{"class":345,"line":559},[343,1489,686],{"class":356},[343,1491,689],{"class":360},[343,1493,308],{"class":356},[343,1495,1496],{"class":587},"preload",[343,1498,591],{"class":493},[343,1500,1501],{"class":360},"include",[343,1503,667],{"class":349},[343,1505,1364],{"class":455},[343,1507,459],{"class":356},[343,1509,1510],{"class":455},"InstanceType",[343,1512,459],{"class":356},[343,1514,1418],{"class":455},[343,1516,1517],{"class":356},">>,",[343,1519,576],{"class":356},[343,1521,1522],{"class":503},"subQuery",[343,1524,891],{"class":356},[343,1526,1527],{"class":451}," =>",[343,1529,484],{"class":356},[343,1531,1532,1535,1538,1540,1543,1545,1547,1550,1552,1554,1558,1560],{"class":345,"line":570},[343,1533,1534],{"class":356},"      void",[343,1536,1537],{"class":360}," subQuery",[343,1539,308],{"class":356},[343,1541,1542],{"class":587},"where",[343,1544,591],{"class":493},[343,1546,383],{"class":356},[343,1548,1549],{"class":379},"isPublished",[343,1551,383],{"class":356},[343,1553,364],{"class":356},[343,1555,1557],{"class":1556},"sfNiH"," true",[343,1559,891],{"class":493},[343,1561,386],{"class":356},[343,1563,1564,1567,1569],{"class":345,"line":623},[343,1565,1566],{"class":356},"    }",[343,1568,891],{"class":493},[343,1570,386],{"class":356},[343,1572,1573],{"class":345,"line":631},[343,1574,720],{"class":356},[343,1576,1577],{"class":345,"line":637},[343,1578,726],{"class":356},[333,1580,1582],{"className":335,"code":1581,"filename":1151,"language":338,"meta":339,"style":339},"import { AllowedInclude } from '@eienjs\u002Fadonisjs-api-query';\nimport { PublishedRelationInclude } from '#includes\u002Fcustom\u002Fpublished_relation_include';\nimport User from '#models\u002Fuser';\n\n\u002F\u002F GET \u002Fusers?include=publishedPosts\nconst users = await User.query()\n  .withRequest(request)\n  .allowedIncludes([\n    AllowedInclude.custom('publishedPosts', new PublishedRelationInclude(), 'posts'),\n  ]);\n",[283,1583,1584,1605,1626,1642,1646,1651,1669,1677,1686,1725],{"__ignoreMap":339},[343,1585,1586,1588,1590,1593,1595,1597,1599,1601,1603],{"class":345,"line":346},[343,1587,350],{"class":349},[343,1589,357],{"class":356},[343,1591,1592],{"class":360}," AllowedInclude",[343,1594,370],{"class":356},[343,1596,373],{"class":349},[343,1598,376],{"class":356},[343,1600,750],{"class":379},[343,1602,383],{"class":356},[343,1604,386],{"class":356},[343,1606,1607,1609,1611,1613,1615,1617,1619,1622,1624],{"class":345,"line":389},[343,1608,350],{"class":349},[343,1610,357],{"class":356},[343,1612,1413],{"class":360},[343,1614,370],{"class":356},[343,1616,373],{"class":349},[343,1618,376],{"class":356},[343,1620,1621],{"class":379},"#includes\u002Fcustom\u002Fpublished_relation_include",[343,1623,383],{"class":356},[343,1625,386],{"class":356},[343,1627,1628,1630,1632,1634,1636,1638,1640],{"class":345,"line":414},[343,1629,350],{"class":349},[343,1631,1181],{"class":360},[343,1633,785],{"class":349},[343,1635,376],{"class":356},[343,1637,1188],{"class":379},[343,1639,383],{"class":356},[343,1641,386],{"class":356},[343,1643,1644],{"class":345,"line":438},[343,1645,442],{"emptyLinePlaceholder":441},[343,1647,1648],{"class":345,"line":445},[343,1649,1650],{"class":803},"\u002F\u002F GET \u002Fusers?include=publishedPosts\n",[343,1652,1653,1655,1657,1659,1661,1663,1665,1667],{"class":345,"line":487},[343,1654,809],{"class":451},[343,1656,1229],{"class":360},[343,1658,815],{"class":356},[343,1660,818],{"class":349},[343,1662,1236],{"class":360},[343,1664,308],{"class":356},[343,1666,826],{"class":587},[343,1668,829],{"class":360},[343,1670,1671,1673,1675],{"class":345,"line":500},[343,1672,834],{"class":356},[343,1674,837],{"class":587},[343,1676,840],{"class":360},[343,1678,1679,1681,1684],{"class":345,"line":527},[343,1680,834],{"class":356},[343,1682,1683],{"class":587},"allowedIncludes",[343,1685,850],{"class":360},[343,1687,1688,1691,1693,1695,1697,1699,1702,1704,1706,1708,1710,1712,1714,1716,1719,1721,1723],{"class":345,"line":546},[343,1689,1690],{"class":360},"    AllowedInclude",[343,1692,308],{"class":356},[343,1694,860],{"class":587},[343,1696,591],{"class":360},[343,1698,383],{"class":356},[343,1700,1701],{"class":379},"publishedPosts",[343,1703,383],{"class":356},[343,1705,364],{"class":356},[343,1707,874],{"class":356},[343,1709,1413],{"class":587},[343,1711,879],{"class":360},[343,1713,364],{"class":356},[343,1715,376],{"class":356},[343,1717,1718],{"class":379},"posts",[343,1720,383],{"class":356},[343,1722,891],{"class":360},[343,1724,543],{"class":356},[343,1726,1727,1729],{"class":345,"line":559},[343,1728,898],{"class":360},[343,1730,386],{"class":356},[1732,1733,1734],"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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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 .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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":339,"searchDepth":346,"depth":389,"links":1736},[1737,1738,1739],{"id":312,"depth":389,"text":313},{"id":903,"depth":389,"text":904},{"id":1307,"depth":389,"text":1308},"Build reusable filter, sort, and include classes implementing Filter, Sort, and Include interfaces.","md",{},{"icon":97},{"title":94,"description":1740},"hA49KNH3c_qUSUV_1SRcyVLgHa0AL7zbVTJ8DMxYK7A",[1747,1749],{"title":83,"path":84,"stem":85,"description":1748,"icon":86,"children":-1},"Validate API query parameters automatically or explicitly using VineJS.",{"title":99,"path":100,"stem":101,"description":1750,"icon":102,"children":-1},"Inspect parsed query parameters and customize array value delimiters with ApiQueryBuilderRequest.",{"id":1752,"extension":1753,"meta":1754,"packages":1755,"stem":1798,"__hash__":1799},"packages\u002Fdata\u002Fpackages.json","json",{},[1756,1763,1769,1775,1780,1786,1792],{"name":1757,"title":1758,"description":1759,"icon":86,"category":1760,"repo":1761,"version":1762,"docs":441},"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":1764,"title":1765,"description":1766,"icon":33,"category":1760,"repo":1767,"version":1768,"docs":441},"adonisjs-api-query","API Query","Easily build Lucid queries from API requests","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-api-query","3.0.1",{"name":1770,"title":1771,"description":1772,"icon":249,"category":1760,"repo":1773,"version":1774,"docs":441},"adonisjs-soft-deletes","Soft Deletes","Provider-based Soft deletes for AdonisJS","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-soft-deletes","1.0.2",{"name":1776,"title":195,"description":1777,"icon":196,"category":1760,"repo":1778,"version":1779,"docs":441},"adonisjs-simple-auth","Single API key authentication for AdonisJS v7 applications","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-simple-auth","2.1.0",{"name":1781,"title":1782,"description":1783,"icon":1784,"category":1760,"repo":1785,"docs":22},"adonisjs-sentry","Sentry","Sentry service provider for AdonisJS v7.","i-tabler-bug","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-sentry",{"name":1787,"title":1788,"description":1789,"icon":141,"category":1790,"repo":1791,"docs":22},"eslint-config","ESLint Config","The EienJS ESLint config preset.","tooling","https:\u002F\u002Fgithub.com\u002Feienjs\u002Feslint-config",{"name":1793,"title":1794,"description":1795,"icon":1796,"category":1790,"repo":1797,"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",1793868429118]