[{"data":1,"prerenderedAt":1345},["ShallowReactive",2],{"navigation":3,"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fgetting-started\u002Finstallation":273,"\u002Fpackages\u002Fadonisjs-simple-auth\u002Fgetting-started\u002Finstallation-surround":1291,"packages-data":1296},[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":47,"body":275,"description":1285,"extension":1286,"meta":1287,"navigation":1288,"path":209,"seo":1289,"stem":210,"__hash__":1290},"docs\u002F2.packages\u002Fadonisjs-simple-auth\u002F1.getting-started\u002F2.installation.md",{"type":276,"value":277,"toc":1279},"minimark",[278,287,292,299,327,337,341,344,425,429,439,1078,1082,1269,1275],[279,280,281,282,286],"p",{},"You can install and configure ",[283,284,285],"code",{},"@eienjs\u002Fadonisjs-simple-auth"," with a single Ace command, or set it up manually.",[288,289,291],"h2",{"id":290},"quick-installation","Quick Installation",[279,293,294,295,298],{},"Run the ",[283,296,297],{},"ace add"," command to install the package and automatically execute its configuration codemods:",[300,301,306],"pre",{"className":302,"code":303,"language":304,"meta":305,"style":305},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","node ace add @eienjs\u002Fadonisjs-simple-auth\n","sh","",[283,307,308],{"__ignoreMap":305},[309,310,313,317,321,324],"span",{"class":311,"line":312},"line",1,[309,314,316],{"class":315},"sBMFI","node",[309,318,320],{"class":319},"sfazB"," ace",[309,322,323],{"class":319}," add",[309,325,326],{"class":319}," @eienjs\u002Fadonisjs-simple-auth\n",[328,329,330],"note",{},[279,331,332,333,336],{},"The ",[283,334,335],{},"node ace add"," command automatically registers the provider, commands, and middleware, and publishes the configuration and middleware files.",[288,338,340],{"id":339},"manual-installation","Manual Installation",[279,342,343],{},"If you prefer to install the package first and run the configuration step separately:",[345,346,347,352,398,402,409],"steps",{},[348,349,351],"h3",{"id":350},"install-the-package-from-npm","Install the package from npm",[353,354,355,369,384],"code-group",{},[300,356,359],{"className":302,"code":357,"filename":358,"language":304,"meta":305,"style":305},"pnpm add @eienjs\u002Fadonisjs-simple-auth\n","pnpm",[283,360,361],{"__ignoreMap":305},[309,362,363,365,367],{"class":311,"line":312},[309,364,358],{"class":315},[309,366,323],{"class":319},[309,368,326],{"class":319},[300,370,373],{"className":302,"code":371,"filename":372,"language":304,"meta":305,"style":305},"npm install @eienjs\u002Fadonisjs-simple-auth\n","npm",[283,374,375],{"__ignoreMap":305},[309,376,377,379,382],{"class":311,"line":312},[309,378,372],{"class":315},[309,380,381],{"class":319}," install",[309,383,326],{"class":319},[300,385,388],{"className":302,"code":386,"filename":387,"language":304,"meta":305,"style":305},"yarn add @eienjs\u002Fadonisjs-simple-auth\n","yarn",[283,389,390],{"__ignoreMap":305},[309,391,392,394,396],{"class":311,"line":312},[309,393,387],{"class":315},[309,395,323],{"class":319},[309,397,326],{"class":319},[348,399,401],{"id":400},"run-the-configure-command","Run the configure command",[279,403,404,405,408],{},"Execute the AdonisJS ",[283,406,407],{},"configure"," command to publish the required files and update your project setup:",[300,410,412],{"className":302,"code":411,"language":304,"meta":305,"style":305},"node ace configure @eienjs\u002Fadonisjs-simple-auth\n",[283,413,414],{"__ignoreMap":305},[309,415,416,418,420,423],{"class":311,"line":312},[309,417,316],{"class":315},[309,419,320],{"class":319},[309,421,422],{"class":319}," configure",[309,424,326],{"class":319},[288,426,428],{"id":427},"what-the-configure-command-does","What the Configure Command Does",[279,430,431,432,434,435,438],{},"Running ",[283,433,335],{}," or ",[283,436,437],{},"node ace configure"," performs the following changes in your project:",[440,441,442,628,770,928],"ol",{},[443,444,445,449,450,453,454],"li",{},[446,447,448],"strong",{},"Registers Commands & Provider"," in ",[283,451,452],{},"adonisrc.ts",":",[300,455,459],{"className":456,"code":457,"filename":452,"language":458,"meta":305,"style":305},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineConfig } from '@adonisjs\u002Fcore\u002Fapp';\n\nexport default defineConfig({\n  commands: [\n    \u002F\u002F ...other commands\n    () => import('@eienjs\u002Fadonisjs-simple-auth\u002Fcommands'),\n  ],\n  providers: [\n    \u002F\u002F ...other providers\n    () => import('@eienjs\u002Fadonisjs-simple-auth\u002Fproviders\u002Fsimple_auth_provider'),\n  ],\n});\n","ts",[283,460,461,493,500,518,530,537,565,573,583,589,611,618],{"__ignoreMap":305},[309,462,463,467,471,475,478,481,484,487,490],{"class":311,"line":312},[309,464,466],{"class":465},"s7zQu","import",[309,468,470],{"class":469},"sMK4o"," {",[309,472,474],{"class":473},"sTEyZ"," defineConfig",[309,476,477],{"class":469}," }",[309,479,480],{"class":465}," from",[309,482,483],{"class":469}," '",[309,485,486],{"class":319},"@adonisjs\u002Fcore\u002Fapp",[309,488,489],{"class":469},"'",[309,491,492],{"class":469},";\n",[309,494,496],{"class":311,"line":495},2,[309,497,499],{"emptyLinePlaceholder":498},true,"\n",[309,501,503,506,509,512,515],{"class":311,"line":502},3,[309,504,505],{"class":465},"export",[309,507,508],{"class":465}," default",[309,510,474],{"class":511},"s2Zo4",[309,513,514],{"class":473},"(",[309,516,517],{"class":469},"{\n",[309,519,521,525,527],{"class":311,"line":520},4,[309,522,524],{"class":523},"swJcz","  commands",[309,526,453],{"class":469},[309,528,529],{"class":473}," [\n",[309,531,533],{"class":311,"line":532},5,[309,534,536],{"class":535},"sHwdD","    \u002F\u002F ...other commands\n",[309,538,540,543,547,550,552,554,557,559,562],{"class":311,"line":539},6,[309,541,542],{"class":469},"    ()",[309,544,546],{"class":545},"spNyl"," =>",[309,548,549],{"class":469}," import",[309,551,514],{"class":473},[309,553,489],{"class":469},[309,555,556],{"class":319},"@eienjs\u002Fadonisjs-simple-auth\u002Fcommands",[309,558,489],{"class":469},[309,560,561],{"class":473},")",[309,563,564],{"class":469},",\n",[309,566,568,571],{"class":311,"line":567},7,[309,569,570],{"class":473},"  ]",[309,572,564],{"class":469},[309,574,576,579,581],{"class":311,"line":575},8,[309,577,578],{"class":523},"  providers",[309,580,453],{"class":469},[309,582,529],{"class":473},[309,584,586],{"class":311,"line":585},9,[309,587,588],{"class":535},"    \u002F\u002F ...other providers\n",[309,590,592,594,596,598,600,602,605,607,609],{"class":311,"line":591},10,[309,593,542],{"class":469},[309,595,546],{"class":545},[309,597,549],{"class":469},[309,599,514],{"class":473},[309,601,489],{"class":469},[309,603,604],{"class":319},"@eienjs\u002Fadonisjs-simple-auth\u002Fproviders\u002Fsimple_auth_provider",[309,606,489],{"class":469},[309,608,561],{"class":473},[309,610,564],{"class":469},[309,612,614,616],{"class":311,"line":613},11,[309,615,570],{"class":473},[309,617,564],{"class":469},[309,619,621,624,626],{"class":311,"line":620},12,[309,622,623],{"class":469},"}",[309,625,561],{"class":473},[309,627,492],{"class":469},[443,629,630,633,634,453,637],{},[446,631,632],{},"Publishes the Configuration File"," at ",[283,635,636],{},"config\u002Fsimpleauth.ts",[300,638,640],{"className":456,"code":639,"filename":636,"language":458,"meta":305,"style":305},"import { defineConfig } from '@eienjs\u002Fadonisjs-simple-auth';\nimport env from '#start\u002Fenv';\n\nconst simpleAuthConfig = defineConfig({\n  apiKeyHeader: 'x-api-key',\n  apiKeyValue: env.get('API_KEY'),\n});\n\nexport default simpleAuthConfig;\n",[283,641,642,662,681,685,702,718,747,755,759],{"__ignoreMap":305},[309,643,644,646,648,650,652,654,656,658,660],{"class":311,"line":312},[309,645,466],{"class":465},[309,647,470],{"class":469},[309,649,474],{"class":473},[309,651,477],{"class":469},[309,653,480],{"class":465},[309,655,483],{"class":469},[309,657,285],{"class":319},[309,659,489],{"class":469},[309,661,492],{"class":469},[309,663,664,666,669,672,674,677,679],{"class":311,"line":495},[309,665,466],{"class":465},[309,667,668],{"class":473}," env ",[309,670,671],{"class":465},"from",[309,673,483],{"class":469},[309,675,676],{"class":319},"#start\u002Fenv",[309,678,489],{"class":469},[309,680,492],{"class":469},[309,682,683],{"class":311,"line":502},[309,684,499],{"emptyLinePlaceholder":498},[309,686,687,690,693,696,698,700],{"class":311,"line":520},[309,688,689],{"class":545},"const",[309,691,692],{"class":473}," simpleAuthConfig ",[309,694,695],{"class":469},"=",[309,697,474],{"class":511},[309,699,514],{"class":473},[309,701,517],{"class":469},[309,703,704,707,709,711,714,716],{"class":311,"line":532},[309,705,706],{"class":523},"  apiKeyHeader",[309,708,453],{"class":469},[309,710,483],{"class":469},[309,712,713],{"class":319},"x-api-key",[309,715,489],{"class":469},[309,717,564],{"class":469},[309,719,720,723,725,728,731,734,736,738,741,743,745],{"class":311,"line":539},[309,721,722],{"class":523},"  apiKeyValue",[309,724,453],{"class":469},[309,726,727],{"class":473}," env",[309,729,730],{"class":469},".",[309,732,733],{"class":511},"get",[309,735,514],{"class":473},[309,737,489],{"class":469},[309,739,740],{"class":319},"API_KEY",[309,742,489],{"class":469},[309,744,561],{"class":473},[309,746,564],{"class":469},[309,748,749,751,753],{"class":311,"line":567},[309,750,623],{"class":469},[309,752,561],{"class":473},[309,754,492],{"class":469},[309,756,757],{"class":311,"line":575},[309,758,499],{"emptyLinePlaceholder":498},[309,760,761,763,765,768],{"class":311,"line":585},[309,762,505],{"class":465},[309,764,508],{"class":465},[309,766,767],{"class":473}," simpleAuthConfig",[309,769,492],{"class":469},[443,771,772,633,775,453,778],{},[446,773,774],{},"Publishes the Route Middleware",[283,776,777],{},"app\u002Fmiddleware\u002Fapi_key_middleware.ts",[300,779,781],{"className":456,"code":780,"filename":777,"language":458,"meta":305,"style":305},"import type { HttpContext } from '@adonisjs\u002Fcore\u002Fhttp';\nimport type { NextFn } from '@adonisjs\u002Fcore\u002Ftypes\u002Fhttp';\n\nexport default class ApiKeyMiddleware {\n  async handle(ctx: HttpContext, next: NextFn) {\n    ctx.simpleAuth.authenticate();\n\n    return next();\n  }\n}\n",[283,782,783,808,832,836,851,883,903,907,918,923],{"__ignoreMap":305},[309,784,785,787,790,792,795,797,799,801,804,806],{"class":311,"line":312},[309,786,466],{"class":465},[309,788,789],{"class":465}," type",[309,791,470],{"class":469},[309,793,794],{"class":473}," HttpContext",[309,796,477],{"class":469},[309,798,480],{"class":465},[309,800,483],{"class":469},[309,802,803],{"class":319},"@adonisjs\u002Fcore\u002Fhttp",[309,805,489],{"class":469},[309,807,492],{"class":469},[309,809,810,812,814,816,819,821,823,825,828,830],{"class":311,"line":495},[309,811,466],{"class":465},[309,813,789],{"class":465},[309,815,470],{"class":469},[309,817,818],{"class":473}," NextFn",[309,820,477],{"class":469},[309,822,480],{"class":465},[309,824,483],{"class":469},[309,826,827],{"class":319},"@adonisjs\u002Fcore\u002Ftypes\u002Fhttp",[309,829,489],{"class":469},[309,831,492],{"class":469},[309,833,834],{"class":311,"line":502},[309,835,499],{"emptyLinePlaceholder":498},[309,837,838,840,842,845,848],{"class":311,"line":520},[309,839,505],{"class":465},[309,841,508],{"class":465},[309,843,844],{"class":545}," class",[309,846,847],{"class":315}," ApiKeyMiddleware",[309,849,850],{"class":469}," {\n",[309,852,853,856,859,861,865,867,869,872,875,877,879,881],{"class":311,"line":532},[309,854,855],{"class":545},"  async",[309,857,858],{"class":523}," handle",[309,860,514],{"class":469},[309,862,864],{"class":863},"sHdIc","ctx",[309,866,453],{"class":469},[309,868,794],{"class":315},[309,870,871],{"class":469},",",[309,873,874],{"class":863}," next",[309,876,453],{"class":469},[309,878,818],{"class":315},[309,880,561],{"class":469},[309,882,850],{"class":469},[309,884,885,888,890,893,895,898,901],{"class":311,"line":539},[309,886,887],{"class":473},"    ctx",[309,889,730],{"class":469},[309,891,892],{"class":473},"simpleAuth",[309,894,730],{"class":469},[309,896,897],{"class":511},"authenticate",[309,899,900],{"class":523},"()",[309,902,492],{"class":469},[309,904,905],{"class":311,"line":567},[309,906,499],{"emptyLinePlaceholder":498},[309,908,909,912,914,916],{"class":311,"line":575},[309,910,911],{"class":465},"    return",[309,913,874],{"class":511},[309,915,900],{"class":523},[309,917,492],{"class":469},[309,919,920],{"class":311,"line":585},[309,921,922],{"class":469},"  }\n",[309,924,925],{"class":311,"line":591},[309,926,927],{"class":469},"}\n",[443,929,930,449,933,453,936],{},[446,931,932],{},"Registers Router and Named Middleware",[283,934,935],{},"start\u002Fkernel.ts",[300,937,939],{"className":456,"code":938,"filename":935,"language":458,"meta":305,"style":305},"import router from '@adonisjs\u002Fcore\u002Fservices\u002Frouter';\n\nrouter.use([\n  \u002F\u002F ...other router middleware\n  () => import('@eienjs\u002Fadonisjs-simple-auth\u002Fmiddleware\u002Fsimple_auth_middleware'),\n]);\n\nexport const middleware = router.named({\n  \u002F\u002F ...other named middleware\n  apiKey: () => import('#middleware\u002Fapi_key_middleware'),\n});\n",[283,940,941,959,963,976,981,1003,1010,1014,1038,1043,1070],{"__ignoreMap":305},[309,942,943,945,948,950,952,955,957],{"class":311,"line":312},[309,944,466],{"class":465},[309,946,947],{"class":473}," router ",[309,949,671],{"class":465},[309,951,483],{"class":469},[309,953,954],{"class":319},"@adonisjs\u002Fcore\u002Fservices\u002Frouter",[309,956,489],{"class":469},[309,958,492],{"class":469},[309,960,961],{"class":311,"line":495},[309,962,499],{"emptyLinePlaceholder":498},[309,964,965,968,970,973],{"class":311,"line":502},[309,966,967],{"class":473},"router",[309,969,730],{"class":469},[309,971,972],{"class":511},"use",[309,974,975],{"class":473},"([\n",[309,977,978],{"class":311,"line":520},[309,979,980],{"class":535},"  \u002F\u002F ...other router middleware\n",[309,982,983,986,988,990,992,994,997,999,1001],{"class":311,"line":532},[309,984,985],{"class":469},"  ()",[309,987,546],{"class":545},[309,989,549],{"class":469},[309,991,514],{"class":473},[309,993,489],{"class":469},[309,995,996],{"class":319},"@eienjs\u002Fadonisjs-simple-auth\u002Fmiddleware\u002Fsimple_auth_middleware",[309,998,489],{"class":469},[309,1000,561],{"class":473},[309,1002,564],{"class":469},[309,1004,1005,1008],{"class":311,"line":539},[309,1006,1007],{"class":473},"])",[309,1009,492],{"class":469},[309,1011,1012],{"class":311,"line":567},[309,1013,499],{"emptyLinePlaceholder":498},[309,1015,1016,1018,1021,1024,1026,1029,1031,1034,1036],{"class":311,"line":575},[309,1017,505],{"class":465},[309,1019,1020],{"class":545}," const",[309,1022,1023],{"class":473}," middleware ",[309,1025,695],{"class":469},[309,1027,1028],{"class":473}," router",[309,1030,730],{"class":469},[309,1032,1033],{"class":511},"named",[309,1035,514],{"class":473},[309,1037,517],{"class":469},[309,1039,1040],{"class":311,"line":585},[309,1041,1042],{"class":535},"  \u002F\u002F ...other named middleware\n",[309,1044,1045,1048,1050,1053,1055,1057,1059,1061,1064,1066,1068],{"class":311,"line":591},[309,1046,1047],{"class":511},"  apiKey",[309,1049,453],{"class":469},[309,1051,1052],{"class":469}," ()",[309,1054,546],{"class":545},[309,1056,549],{"class":469},[309,1058,514],{"class":473},[309,1060,489],{"class":469},[309,1062,1063],{"class":319},"#middleware\u002Fapi_key_middleware",[309,1065,489],{"class":469},[309,1067,561],{"class":473},[309,1069,564],{"class":469},[309,1071,1072,1074,1076],{"class":311,"line":613},[309,1073,623],{"class":469},[309,1075,561],{"class":473},[309,1077,492],{"class":469},[288,1079,1081],{"id":1080},"environment-validation-verification","Environment Validation & Verification",[345,1083,1084,1091,1101,1219,1223,1233,1247,1251],{},[348,1085,1087,1088,1090],{"id":1086},"add-api_key-to-your-environment-validation","Add ",[283,1089,740],{}," to your environment validation",[279,1092,1093,1094,1097,1098,1100],{},"Open ",[283,1095,1096],{},"start\u002Fenv.ts"," and add validation rules for the ",[283,1099,740],{}," environment variable:",[300,1102,1104],{"className":456,"code":1103,"filename":1096,"language":458,"meta":305,"style":305},"import { Env } from '@adonisjs\u002Fcore\u002Fenv';\n\nexport default await Env.create(new URL('..\u002F', import.meta.url), {\n  \u002F\u002F ...other variables\n  API_KEY: Env.schema.secret(),\n});\n",[283,1105,1106,1128,1132,1183,1188,1211],{"__ignoreMap":305},[309,1107,1108,1110,1112,1115,1117,1119,1121,1124,1126],{"class":311,"line":312},[309,1109,466],{"class":465},[309,1111,470],{"class":469},[309,1113,1114],{"class":473}," Env",[309,1116,477],{"class":469},[309,1118,480],{"class":465},[309,1120,483],{"class":469},[309,1122,1123],{"class":319},"@adonisjs\u002Fcore\u002Fenv",[309,1125,489],{"class":469},[309,1127,492],{"class":469},[309,1129,1130],{"class":311,"line":495},[309,1131,499],{"emptyLinePlaceholder":498},[309,1133,1134,1136,1138,1141,1143,1145,1148,1150,1153,1156,1158,1160,1163,1165,1167,1169,1171,1174,1176,1179,1181],{"class":311,"line":502},[309,1135,505],{"class":465},[309,1137,508],{"class":465},[309,1139,1140],{"class":465}," await",[309,1142,1114],{"class":473},[309,1144,730],{"class":469},[309,1146,1147],{"class":511},"create",[309,1149,514],{"class":473},[309,1151,1152],{"class":469},"new",[309,1154,1155],{"class":511}," URL",[309,1157,514],{"class":473},[309,1159,489],{"class":469},[309,1161,1162],{"class":319},"..\u002F",[309,1164,489],{"class":469},[309,1166,871],{"class":469},[309,1168,549],{"class":465},[309,1170,730],{"class":469},[309,1172,1173],{"class":473},"meta",[309,1175,730],{"class":469},[309,1177,1178],{"class":473},"url)",[309,1180,871],{"class":469},[309,1182,850],{"class":469},[309,1184,1185],{"class":311,"line":520},[309,1186,1187],{"class":535},"  \u002F\u002F ...other variables\n",[309,1189,1190,1193,1195,1197,1199,1202,1204,1207,1209],{"class":311,"line":532},[309,1191,1192],{"class":523},"  API_KEY",[309,1194,453],{"class":469},[309,1196,1114],{"class":473},[309,1198,730],{"class":469},[309,1200,1201],{"class":473},"schema",[309,1203,730],{"class":469},[309,1205,1206],{"class":511},"secret",[309,1208,900],{"class":473},[309,1210,564],{"class":469},[309,1212,1213,1215,1217],{"class":311,"line":539},[309,1214,623],{"class":469},[309,1216,561],{"class":473},[309,1218,492],{"class":469},[348,1220,1222],{"id":1221},"generate-your-api-key","Generate your API key",[279,1224,1225,1226,1228,1229,1232],{},"Run the built-in Ace command to generate a secure token and write ",[283,1227,740],{}," to your ",[283,1230,1231],{},".env"," file:",[300,1234,1236],{"className":302,"code":1235,"language":304,"meta":305,"style":305},"node ace generate:api-key\n",[283,1237,1238],{"__ignoreMap":305},[309,1239,1240,1242,1244],{"class":311,"line":312},[309,1241,316],{"class":315},[309,1243,320],{"class":319},[309,1245,1246],{"class":319}," generate:api-key\n",[348,1248,1250],{"id":1249},"verify-the-setup","Verify the setup",[279,1252,1253,1254,1257,1258,1261,1262,1264,1265,1268],{},"Protect a test route in ",[283,1255,1256],{},"start\u002Froutes.ts"," using ",[283,1259,1260],{},"middleware.apiKey()"," and send a request with the ",[283,1263,713],{}," header. See ",[1266,1267,225],"a",{"href":226}," for complete examples.",[279,1270,1271,1272,1274],{},"Learn how to customize the header name and secret value in the ",[1266,1273,52],{"href":212}," guide.",[1276,1277,1278],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .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}",{"title":305,"searchDepth":312,"depth":495,"links":1280},[1281,1282,1283,1284],{"id":290,"depth":495,"text":291},{"id":339,"depth":495,"text":340},{"id":427,"depth":495,"text":428},{"id":1080,"depth":495,"text":1081},"Install and configure @eienjs\u002Fadonisjs-simple-auth in your AdonisJS v7 project.","md",{},{"icon":50},{"title":47,"description":1285},"K-vvgZbTHWpOUSD67Po3yaUu_81VwK1QTEPKwtksqDM",[1292,1294],{"title":10,"path":205,"stem":206,"description":1293,"icon":207,"children":-1},"Lightweight single API key authentication for AdonisJS v7 applications.",{"title":52,"path":212,"stem":213,"description":1295,"icon":55,"children":-1},"Configure the HTTP header name and API key value in config\u002Fsimpleauth.ts.",{"id":1297,"extension":1298,"meta":1299,"packages":1300,"stem":1343,"__hash__":1344},"packages\u002Fdata\u002Fpackages.json","json",{},[1301,1308,1314,1320,1325,1331,1337],{"name":1302,"title":1303,"description":1304,"icon":86,"category":1305,"repo":1306,"version":1307,"docs":498},"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":1309,"title":1310,"description":1311,"icon":33,"category":1305,"repo":1312,"version":1313,"docs":498},"adonisjs-api-query","API Query","Easily build Lucid queries from API requests","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-api-query","3.0.1",{"name":1315,"title":1316,"description":1317,"icon":249,"category":1305,"repo":1318,"version":1319,"docs":498},"adonisjs-soft-deletes","Soft Deletes","Provider-based Soft deletes for AdonisJS","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-soft-deletes","1.0.2",{"name":1321,"title":195,"description":1322,"icon":196,"category":1305,"repo":1323,"version":1324,"docs":498},"adonisjs-simple-auth","Single API key authentication for AdonisJS v7 applications","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-simple-auth","2.1.0",{"name":1326,"title":1327,"description":1328,"icon":1329,"category":1305,"repo":1330,"docs":22},"adonisjs-sentry","Sentry","Sentry service provider for AdonisJS v7.","i-tabler-bug","https:\u002F\u002Fgithub.com\u002Feienjs\u002Fadonisjs-sentry",{"name":1332,"title":1333,"description":1334,"icon":141,"category":1335,"repo":1336,"docs":22},"eslint-config","ESLint Config","The EienJS ESLint config preset.","tooling","https:\u002F\u002Fgithub.com\u002Feienjs\u002Feslint-config",{"name":1338,"title":1339,"description":1340,"icon":1341,"category":1335,"repo":1342,"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",1793868428371]