[{"data":1,"prerenderedAt":875},["ShallowReactive",2],{"docs-nav:fr":3,"docs:\u002Ffr\u002Fdocs\u002Fclient\u002Fsession":189},[4],{"title":5,"path":6,"stem":7,"children":8,"page":52},"Fr","\u002Ffr","fr",[9],{"title":10,"path":11,"stem":12,"children":13},"Qu'est-ce que Fougere","\u002Ffr\u002Fdocs","fr\u002Fdocs\u002Findex",[14,15,19,23,27,31,53,78,123,148],{"title":10,"path":11,"stem":12},{"title":16,"path":17,"stem":18},"Démarrer","\u002Ffr\u002Fdocs\u002Fgetting-started","fr\u002Fdocs\u002F01.getting-started",{"title":20,"path":21,"stem":22},"Une app que vous avez déjà","\u002Ffr\u002Fdocs\u002Fexisting-app","fr\u002Fdocs\u002F02.existing-app",{"title":24,"path":25,"stem":26},"Apportez votre schéma","\u002Ffr\u002Fdocs\u002Fbring-your-schema","fr\u002Fdocs\u002F03.bring-your-schema",{"title":28,"path":29,"stem":30},"La CLI","\u002Ffr\u002Fdocs\u002Fcli","fr\u002Fdocs\u002F04.cli",{"title":32,"path":33,"stem":34,"children":35,"page":52},"Concepts","\u002Ffr\u002Fdocs\u002Fconcepts","fr\u002Fdocs\u002F2.concepts",[36,40,44,48],{"title":37,"path":38,"stem":39},"Philosophie","\u002Ffr\u002Fdocs\u002Fconcepts\u002Fphilosophy","fr\u002Fdocs\u002F2.concepts\u002F1.philosophy",{"title":41,"path":42,"stem":43},"La Frond","\u002Ffr\u002Fdocs\u002Fconcepts\u002Ffrond","fr\u002Fdocs\u002F2.concepts\u002F2.frond",{"title":45,"path":46,"stem":47},"Le chemin le plus court","\u002Ffr\u002Fdocs\u002Fconcepts\u002Fshortest-path","fr\u002Fdocs\u002F2.concepts\u002F3.shortest-path",{"title":49,"path":50,"stem":51},"Le socle","\u002Ffr\u002Fdocs\u002Fconcepts\u002Fthe-base","fr\u002Fdocs\u002F2.concepts\u002F4.the-base",false,{"title":54,"path":55,"stem":56,"children":57,"page":52},"Schéma","\u002Ffr\u002Fdocs\u002Fschema","fr\u002Fdocs\u002F3.schema",[58,62,66,70,74],{"title":59,"path":60,"stem":61},"Entités","\u002Ffr\u002Fdocs\u002Fschema\u002Fentities","fr\u002Fdocs\u002F3.schema\u002F1.entities",{"title":63,"path":64,"stem":65},"Vues","\u002Ffr\u002Fdocs\u002Fschema\u002Fviews","fr\u002Fdocs\u002F3.schema\u002F2.views",{"title":67,"path":68,"stem":69},"La carte d'identité","\u002Ffr\u002Fdocs\u002Fschema\u002Fcard","fr\u002Fdocs\u002F3.schema\u002F3.card",{"title":71,"path":72,"stem":73},"Standard Schema","\u002Ffr\u002Fdocs\u002Fschema\u002Fstandard-schema","fr\u002Fdocs\u002F3.schema\u002F4.standard-schema",{"title":75,"path":76,"stem":77},"Comment un schéma bouge","\u002Ffr\u002Fdocs\u002Fschema\u002Fevolution","fr\u002Fdocs\u002F3.schema\u002F5.evolution",{"title":79,"path":80,"stem":81,"children":82,"page":52},"Métier","\u002Ffr\u002Fdocs\u002Fbusiness","fr\u002Fdocs\u002F4.business",[83,87,91,95,99,103,107,111,115,119],{"title":84,"path":85,"stem":86},"Handlers","\u002Ffr\u002Fdocs\u002Fbusiness\u002Fhandlers","fr\u002Fdocs\u002F4.business\u002F1.handlers",{"title":88,"path":89,"stem":90},"Les ports","\u002Ffr\u002Fdocs\u002Fbusiness\u002Fports","fr\u002Fdocs\u002F4.business\u002F10.ports",{"title":92,"path":93,"stem":94},"Presenters","\u002Ffr\u002Fdocs\u002Fbusiness\u002Fpresenters","fr\u002Fdocs\u002F4.business\u002F2.presenters",{"title":96,"path":97,"stem":98},"Collectors","\u002Ffr\u002Fdocs\u002Fbusiness\u002Fcollectors","fr\u002Fdocs\u002F4.business\u002F3.collectors",{"title":100,"path":101,"stem":102},"Erreurs","\u002Ffr\u002Fdocs\u002Fbusiness\u002Ferrors","fr\u002Fdocs\u002F4.business\u002F4.errors",{"title":104,"path":105,"stem":106},"Seeds","\u002Ffr\u002Fdocs\u002Fbusiness\u002Fseeds","fr\u002Fdocs\u002F4.business\u002F5.seeds",{"title":108,"path":109,"stem":110},"Les faits","\u002Ffr\u002Fdocs\u002Fbusiness\u002Ffacts","fr\u002Fdocs\u002F4.business\u002F6.facts",{"title":112,"path":113,"stem":114},"Le port Storage","\u002Ffr\u002Fdocs\u002Fbusiness\u002Fstorage","fr\u002Fdocs\u002F4.business\u002F7.storage",{"title":116,"path":117,"stem":118},"Des écritures qui tiennent ou tombent ensemble","\u002Ffr\u002Fdocs\u002Fbusiness\u002Ftogether","fr\u002Fdocs\u002F4.business\u002F8.together",{"title":120,"path":121,"stem":122},"Les repositories","\u002Ffr\u002Fdocs\u002Fbusiness\u002Frepositories","fr\u002Fdocs\u002F4.business\u002F9.repositories",{"title":124,"path":125,"stem":126,"children":127,"page":52},"Client","\u002Ffr\u002Fdocs\u002Fclient","fr\u002Fdocs\u002F5.client",[128,132,136,140,144],{"title":129,"path":130,"stem":131},"Queries & commands","\u002Ffr\u002Fdocs\u002Fclient\u002Fqueries-commands","fr\u002Fdocs\u002F5.client\u002F1.queries-commands",{"title":133,"path":134,"stem":135},"Formulaires","\u002Ffr\u002Fdocs\u002Fclient\u002Fforms","fr\u002Fdocs\u002F5.client\u002F2.forms",{"title":137,"path":138,"stem":139},"Session","\u002Ffr\u002Fdocs\u002Fclient\u002Fsession","fr\u002Fdocs\u002F5.client\u002F3.session",{"title":141,"path":142,"stem":143},"invoke","\u002Ffr\u002Fdocs\u002Fclient\u002Finvoke","fr\u002Fdocs\u002F5.client\u002F4.invoke",{"title":145,"path":146,"stem":147},"Back-office","\u002Ffr\u002Fdocs\u002Fclient\u002Fadmin","fr\u002Fdocs\u002F5.client\u002F5.admin",{"title":149,"path":150,"stem":151,"children":152,"page":52},"Infrastructure","\u002Ffr\u002Fdocs\u002Finfra","fr\u002Fdocs\u002F6.infra",[153,157,161,165,169,173,177,181,185],{"title":154,"path":155,"stem":156},"Le gradient","\u002Ffr\u002Fdocs\u002Finfra\u002Fgradient","fr\u002Fdocs\u002F6.infra\u002F1.gradient",{"title":158,"path":159,"stem":160},"Surfaces — REST & GraphQL","\u002Ffr\u002Fdocs\u002Finfra\u002Fsurfaces","fr\u002Fdocs\u002F6.infra\u002F2.surfaces",{"title":162,"path":163,"stem":164},"Déploiement","\u002Ffr\u002Fdocs\u002Finfra\u002Fdeployment","fr\u002Fdocs\u002F6.infra\u002F3.deployment",{"title":166,"path":167,"stem":168},"Hôtes","\u002Ffr\u002Fdocs\u002Finfra\u002Fhosts","fr\u002Fdocs\u002F6.infra\u002F4.hosts",{"title":170,"path":171,"stem":172},"Les sources","\u002Ffr\u002Fdocs\u002Finfra\u002Fsources","fr\u002Fdocs\u002F6.infra\u002F5.sources",{"title":174,"path":175,"stem":176},"Le cycle de vie","\u002Ffr\u002Fdocs\u002Finfra\u002Flifecycle","fr\u002Fdocs\u002F6.infra\u002F6.lifecycle",{"title":178,"path":179,"stem":180},"L'identité entre Fronds","\u002Ffr\u002Fdocs\u002Finfra\u002Fidentity","fr\u002Fdocs\u002F6.infra\u002F7.identity",{"title":182,"path":183,"stem":184},"Observabilité","\u002Ffr\u002Fdocs\u002Finfra\u002Fobservability","fr\u002Fdocs\u002F6.infra\u002F8.observability",{"title":186,"path":187,"stem":188},"Tests","\u002Ffr\u002Fdocs\u002Finfra\u002Ftesting","fr\u002Fdocs\u002F6.infra\u002F9.testing",{"id":190,"title":137,"body":191,"description":870,"extension":871,"meta":872,"navigation":660,"path":138,"seo":873,"stem":139,"__hash__":874},"docs_fr\u002Ffr\u002Fdocs\u002F5.client\u002F3.session.md",{"type":192,"value":193,"toc":865},"minimark",[194,198,202,207,271,385,388,392,412,589,600,759,769,790,794,848,855,861],[195,196,137],"h1",{"id":197},"session",[199,200,201],"p",{},"La session est résolue côté serveur. Elle est ensuite hydratée dans la page, injectée dans\nles handlers et transmise aux Fronds distantes.",[203,204,206],"h2",{"id":205},"usecurrentuser","useCurrentUser",[208,209,214],"pre",{"className":210,"code":211,"language":212,"meta":213,"style":213},"language-ts shiki shiki-themes material-theme-lighter github-light github-dark","const { user, refresh } = useCurrentUser();\n\u002F\u002F user:    Ref\u003CUser | null> — résolu en SSR, hydraté avec la page : zéro requête en plus\n\u002F\u002F refresh: () => Promise\u003Cvoid> — relire après sign-in\u002Fout\n","ts","",[215,216,217,258,265],"code",{"__ignoreMap":213},[218,219,222,226,230,234,237,240,243,247,251,255],"span",{"class":220,"line":221},"line",1,[218,223,225],{"class":224},"sbsja","const",[218,227,229],{"class":228},"sP7_E"," {",[218,231,233],{"class":232},"s_hVV"," user",[218,235,236],{"class":228},",",[218,238,239],{"class":232}," refresh",[218,241,242],{"class":228}," }",[218,244,246],{"class":245},"smGrS"," =",[218,248,250],{"class":249},"sGLFI"," useCurrentUser",[218,252,254],{"class":253},"su5hD","()",[218,256,257],{"class":228},";\n",[218,259,261],{"class":220,"line":260},2,[218,262,264],{"class":263},"sutJx","\u002F\u002F user:    Ref\u003CUser | null> — résolu en SSR, hydraté avec la page : zéro requête en plus\n",[218,266,268],{"class":220,"line":267},3,[218,269,270],{"class":263},"\u002F\u002F refresh: () => Promise\u003Cvoid> — relire après sign-in\u002Fout\n",[208,272,276],{"className":273,"code":274,"language":275,"meta":213,"style":213},"language-vue shiki shiki-themes material-theme-lighter github-light github-dark","\u003Ctemplate>\n  \u003CUButton v-if=\"user\" :to=\"localePath('\u002Fblog\u002Fnew')\" :label=\"$t('nav.write')\" \u002F>\n  \u003CUButton v-else :to=\"localePath('\u002Flogin')\" :label=\"$t('nav.signIn')\" \u002F>\n\u003C\u002Ftemplate>\n","vue",[215,277,278,290,342,375],{"__ignoreMap":213},[218,279,280,283,287],{"class":220,"line":221},[218,281,282],{"class":228},"\u003C",[218,284,286],{"class":285},"sQzsp","template",[218,288,289],{"class":228},">\n",[218,291,292,295,298,302,305,309,313,315,318,320,322,325,327,330,332,334,337,339],{"class":220,"line":260},[218,293,294],{"class":228},"  \u003C",[218,296,297],{"class":285},"UButton",[218,299,301],{"class":300},"s9AJx"," v-if",[218,303,304],{"class":228},"=",[218,306,308],{"class":307},"sjJ54","\"",[218,310,312],{"class":311},"s_sjI","user",[218,314,308],{"class":307},[218,316,317],{"class":300}," :to",[218,319,304],{"class":228},[218,321,308],{"class":307},[218,323,324],{"class":311},"localePath('\u002Fblog\u002Fnew')",[218,326,308],{"class":307},[218,328,329],{"class":300}," :label",[218,331,304],{"class":228},[218,333,308],{"class":307},[218,335,336],{"class":311},"$t('nav.write')",[218,338,308],{"class":307},[218,340,341],{"class":228}," \u002F>\n",[218,343,344,346,348,351,353,355,357,360,362,364,366,368,371,373],{"class":220,"line":267},[218,345,294],{"class":228},[218,347,297],{"class":285},[218,349,350],{"class":300}," v-else",[218,352,317],{"class":300},[218,354,304],{"class":228},[218,356,308],{"class":307},[218,358,359],{"class":311},"localePath('\u002Flogin')",[218,361,308],{"class":307},[218,363,329],{"class":300},[218,365,304],{"class":228},[218,367,308],{"class":307},[218,369,370],{"class":311},"$t('nav.signIn')",[218,372,308],{"class":307},[218,374,341],{"class":228},[218,376,378,381,383],{"class":220,"line":377},4,[218,379,380],{"class":228},"\u003C\u002F",[218,382,286],{"class":285},[218,384,289],{"class":228},[199,386,387],{},"La protection de route est un middleware Nuxt ordinaire qui lit la même session — Fougere\nn'ajoute pas de système de gardes parallèle.",[203,389,391],{"id":390},"la-surface-auth","La surface auth",[199,393,394,397,398,401,402,407,408,411],{},[215,395,396],{},"auth: betterAuth({ … })"," dans ",[215,399,400],{},"fougere.config.ts","\n(",[403,404,406],"a",{"href":405},"\u002Ffr\u002Fdocs\u002Fgetting-started#fougereconfigts--r%C3%A9f%C3%A9rence","référence",") monte better-auth sous\n",[215,409,410],{},"basePath"," — les endpoints que vos pages appellent directement :",[208,413,415],{"className":210,"code":414,"language":212,"meta":213,"style":213},"await $fetch('\u002Fauth\u002Fsign-up\u002Femail', { method: 'POST', body: { name, email, password } });\nawait $fetch('\u002Fauth\u002Fsign-in\u002Femail', { method: 'POST', body: { email, password } });\nawait $fetch('\u002Fauth\u002Fsign-out',      { method: 'POST', body: {} });\n\u002F\u002F puis : await refresh()\n",[215,416,417,488,539,584],{"__ignoreMap":213},[218,418,419,423,426,429,432,435,437,439,441,445,448,451,454,456,458,461,463,465,468,470,473,475,478,481,483,486],{"class":220,"line":221},[218,420,422],{"class":421},"sVHd0","await",[218,424,425],{"class":249}," $fetch",[218,427,428],{"class":253},"(",[218,430,431],{"class":307},"'",[218,433,434],{"class":311},"\u002Fauth\u002Fsign-up\u002Femail",[218,436,431],{"class":307},[218,438,236],{"class":228},[218,440,229],{"class":228},[218,442,444],{"class":443},"skxfh"," method",[218,446,447],{"class":228},":",[218,449,450],{"class":307}," '",[218,452,453],{"class":311},"POST",[218,455,431],{"class":307},[218,457,236],{"class":228},[218,459,460],{"class":443}," body",[218,462,447],{"class":228},[218,464,229],{"class":228},[218,466,467],{"class":253}," name",[218,469,236],{"class":228},[218,471,472],{"class":253}," email",[218,474,236],{"class":228},[218,476,477],{"class":253}," password ",[218,479,480],{"class":228},"}",[218,482,242],{"class":228},[218,484,485],{"class":253},")",[218,487,257],{"class":228},[218,489,490,492,494,496,498,501,503,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537],{"class":220,"line":260},[218,491,422],{"class":421},[218,493,425],{"class":249},[218,495,428],{"class":253},[218,497,431],{"class":307},[218,499,500],{"class":311},"\u002Fauth\u002Fsign-in\u002Femail",[218,502,431],{"class":307},[218,504,236],{"class":228},[218,506,229],{"class":228},[218,508,444],{"class":443},[218,510,447],{"class":228},[218,512,450],{"class":307},[218,514,453],{"class":311},[218,516,431],{"class":307},[218,518,236],{"class":228},[218,520,460],{"class":443},[218,522,447],{"class":228},[218,524,229],{"class":228},[218,526,472],{"class":253},[218,528,236],{"class":228},[218,530,477],{"class":253},[218,532,480],{"class":228},[218,534,242],{"class":228},[218,536,485],{"class":253},[218,538,257],{"class":228},[218,540,541,543,545,547,549,552,554,556,559,561,563,565,567,569,571,573,575,578,580,582],{"class":220,"line":267},[218,542,422],{"class":421},[218,544,425],{"class":249},[218,546,428],{"class":253},[218,548,431],{"class":307},[218,550,551],{"class":311},"\u002Fauth\u002Fsign-out",[218,553,431],{"class":307},[218,555,236],{"class":228},[218,557,558],{"class":228},"      {",[218,560,444],{"class":443},[218,562,447],{"class":228},[218,564,450],{"class":307},[218,566,453],{"class":311},[218,568,431],{"class":307},[218,570,236],{"class":228},[218,572,460],{"class":443},[218,574,447],{"class":228},[218,576,577],{"class":228}," {}",[218,579,242],{"class":228},[218,581,485],{"class":253},[218,583,257],{"class":228},[218,585,586],{"class":220,"line":377},[218,587,588],{"class":263},"\u002F\u002F puis : await refresh()\n",[199,590,591,592,595,596,599],{},"Votre entité ",[215,593,594],{},"User"," étend ",[215,597,598],{},"AuthUser"," — les champs better-auth plus les vôtres :",[208,601,603],{"className":210,"code":602,"language":212,"meta":213,"style":213},"import { AuthUser } from '@fougere\u002Fauth-better';\nimport { oneOf, optional } from '@fougere\u002Fschema';\n\nexport default class User extends AuthUser.extend({\n  role: optional(oneOf('admin', 'editor', 'reader')),\n}).anchor() {}\n",[215,604,605,629,656,662,693,741],{"__ignoreMap":213},[218,606,607,610,612,615,617,620,622,625,627],{"class":220,"line":221},[218,608,609],{"class":421},"import",[218,611,229],{"class":228},[218,613,614],{"class":253}," AuthUser",[218,616,242],{"class":228},[218,618,619],{"class":421}," from",[218,621,450],{"class":307},[218,623,624],{"class":311},"@fougere\u002Fauth-better",[218,626,431],{"class":307},[218,628,257],{"class":228},[218,630,631,633,635,638,640,643,645,647,649,652,654],{"class":220,"line":260},[218,632,609],{"class":421},[218,634,229],{"class":228},[218,636,637],{"class":253}," oneOf",[218,639,236],{"class":228},[218,641,642],{"class":253}," optional",[218,644,242],{"class":228},[218,646,619],{"class":421},[218,648,450],{"class":307},[218,650,651],{"class":311},"@fougere\u002Fschema",[218,653,431],{"class":307},[218,655,257],{"class":228},[218,657,658],{"class":220,"line":267},[218,659,661],{"emptyLinePlaceholder":660},true,"\n",[218,663,664,667,670,673,677,680,682,685,688,690],{"class":220,"line":377},[218,665,666],{"class":421},"export",[218,668,669],{"class":421}," default",[218,671,672],{"class":224}," class",[218,674,676],{"class":675},"sbgvK"," User",[218,678,679],{"class":224}," extends",[218,681,614],{"class":253},[218,683,684],{"class":228},".",[218,686,687],{"class":249},"extend",[218,689,428],{"class":253},[218,691,692],{"class":228},"{\n",[218,694,696,699,701,703,705,708,710,712,715,717,719,721,724,726,728,730,733,735,738],{"class":220,"line":695},5,[218,697,698],{"class":443},"  role",[218,700,447],{"class":228},[218,702,642],{"class":249},[218,704,428],{"class":253},[218,706,707],{"class":249},"oneOf",[218,709,428],{"class":253},[218,711,431],{"class":307},[218,713,714],{"class":311},"admin",[218,716,431],{"class":307},[218,718,236],{"class":228},[218,720,450],{"class":307},[218,722,723],{"class":311},"editor",[218,725,431],{"class":307},[218,727,236],{"class":228},[218,729,450],{"class":307},[218,731,732],{"class":311},"reader",[218,734,431],{"class":307},[218,736,737],{"class":253},"))",[218,739,740],{"class":228},",\n",[218,742,744,746,748,750,753,756],{"class":220,"line":743},6,[218,745,480],{"class":228},[218,747,485],{"class":253},[218,749,684],{"class":228},[218,751,752],{"class":249},"anchor",[218,754,755],{"class":253},"() ",[218,757,758],{"class":228},"{}\n",[199,760,761,762,764,765,768],{},"La sous-classe nommée compte : le scanner enregistre l'entité comme ",[215,763,594],{},", et la DI\nmatche ",[215,766,767],{},"user?: User"," par ce type résolu.",[770,771,772],"blockquote",{},[199,773,774,775,777,778,781,782,785,786,789],{},"Ne placez pas de pages sous le ",[215,776,410],{}," auth : le catch-all serveur utilise ",[215,779,780],{},"\u002Fauth\u002F**",".\nCe site sert ses formulaires à ",[215,783,784],{},"\u002Flogin"," et ",[215,787,788],{},"\u002Fregister"," pour cette raison.",[203,791,793],{"id":792},"une-résolution-trois-lecteurs","Une résolution, trois lecteurs",[795,796,797,810],"table",{},[798,799,800],"thead",{},[801,802,803,807],"tr",{},[804,805,806],"th",{},"Lecteur",[804,808,809],{},"Comment l'identité arrive",[811,812,813,826,840],"tbody",{},[801,814,815,819],{},[816,817,818],"td",{},"la page",[816,820,821,822,825],{},"hydratation — ",[215,823,824],{},"useCurrentUser()",", zéro requête",[801,827,828,831],{},[816,829,830],{},"un handler",[816,832,833,834,837,838],{},"state d'invocation → un ",[403,835,836],{"href":97},"Collector"," remplit ",[215,839,767],{},[801,841,842,845],{},[816,843,844],{},"une Frond distante",[816,846,847],{},"le state est transmis avec l'appel — ses collectors reçoivent le même user",[199,849,850,851,854],{},"Le navigateur ne peut pas écrire ce state : il est construit côté serveur depuis le\ncontexte de requête\n(",[403,852,129],{"href":853},"\u002Ffr\u002Fdocs\u002Fclient\u002Fqueries-commands#le-fil--et-le-ssr",").",[199,856,857,858,860],{},"Suite : ",[403,859,141],{"href":142}," — appeler une opération côté serveur.",[862,863,864],"style",{},"html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}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 .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}",{"title":213,"searchDepth":260,"depth":260,"links":866},[867,868,869],{"id":205,"depth":260,"text":206},{"id":390,"depth":260,"text":391},{"id":792,"depth":260,"text":793},"useCurrentUser, la surface auth, et comment l'identité atteint handlers et remotes.","md",{},{"title":137,"description":870},"U8QgpJ17Y39PeRoFw5NAQVBi8xKgyk4ApuJGWv2FFSM",1788598419481]