[{"data":1,"prerenderedAt":502},["ShallowReactive",2],{"docs-nav:en":3,"docs:\u002Fdocs\u002Fclient\u002Finvoke":134},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","\u002Fdocs","docs",[9,12,16,20,24,42,63,92,113],{"title":10,"path":6,"stem":11},"What is Fougere","docs\u002Findex",{"title":13,"path":14,"stem":15},"Getting started","\u002Fdocs\u002Fgetting-started","docs\u002F01.getting-started",{"title":17,"path":18,"stem":19},"Existing Nuxt app","\u002Fdocs\u002Fexisting-app","docs\u002F02.existing-app",{"title":21,"path":22,"stem":23},"The CLI","\u002Fdocs\u002Fcli","docs\u002F03.cli",{"title":25,"path":26,"stem":27,"children":28,"page":41},"Concepts","\u002Fdocs\u002Fconcepts","docs\u002F2.concepts",[29,33,37],{"title":30,"path":31,"stem":32},"Philosophy","\u002Fdocs\u002Fconcepts\u002Fphilosophy","docs\u002F2.concepts\u002F1.philosophy",{"title":34,"path":35,"stem":36},"The Frond","\u002Fdocs\u002Fconcepts\u002Ffrond","docs\u002F2.concepts\u002F2.frond",{"title":38,"path":39,"stem":40},"The shortest path","\u002Fdocs\u002Fconcepts\u002Fshortest-path","docs\u002F2.concepts\u002F3.shortest-path",false,{"title":43,"path":44,"stem":45,"children":46,"page":41},"Schema","\u002Fdocs\u002Fschema","docs\u002F3.schema",[47,51,55,59],{"title":48,"path":49,"stem":50},"Entities","\u002Fdocs\u002Fschema\u002Fentities","docs\u002F3.schema\u002F1.entities",{"title":52,"path":53,"stem":54},"Views","\u002Fdocs\u002Fschema\u002Fviews","docs\u002F3.schema\u002F2.views",{"title":56,"path":57,"stem":58},"The identity card","\u002Fdocs\u002Fschema\u002Fcard","docs\u002F3.schema\u002F3.card",{"title":60,"path":61,"stem":62},"Standard Schema","\u002Fdocs\u002Fschema\u002Fstandard-schema","docs\u002F3.schema\u002F4.standard-schema",{"title":64,"path":65,"stem":66,"children":67,"page":41},"Business","\u002Fdocs\u002Fbusiness","docs\u002F4.business",[68,72,76,80,84,88],{"title":69,"path":70,"stem":71},"Handlers","\u002Fdocs\u002Fbusiness\u002Fhandlers","docs\u002F4.business\u002F1.handlers",{"title":73,"path":74,"stem":75},"Presenters","\u002Fdocs\u002Fbusiness\u002Fpresenters","docs\u002F4.business\u002F2.presenters",{"title":77,"path":78,"stem":79},"Collectors","\u002Fdocs\u002Fbusiness\u002Fcollectors","docs\u002F4.business\u002F3.collectors",{"title":81,"path":82,"stem":83},"Errors","\u002Fdocs\u002Fbusiness\u002Ferrors","docs\u002F4.business\u002F4.errors",{"title":85,"path":86,"stem":87},"Seeds","\u002Fdocs\u002Fbusiness\u002Fseeds","docs\u002F4.business\u002F5.seeds",{"title":89,"path":90,"stem":91},"Facts","\u002Fdocs\u002Fbusiness\u002Ffacts","docs\u002F4.business\u002F6.facts",{"title":93,"path":94,"stem":95,"children":96,"page":41},"Client","\u002Fdocs\u002Fclient","docs\u002F5.client",[97,101,105,109],{"title":98,"path":99,"stem":100},"Queries & commands","\u002Fdocs\u002Fclient\u002Fqueries-commands","docs\u002F5.client\u002F1.queries-commands",{"title":102,"path":103,"stem":104},"Forms","\u002Fdocs\u002Fclient\u002Fforms","docs\u002F5.client\u002F2.forms",{"title":106,"path":107,"stem":108},"Session","\u002Fdocs\u002Fclient\u002Fsession","docs\u002F5.client\u002F3.session",{"title":110,"path":111,"stem":112},"invoke","\u002Fdocs\u002Fclient\u002Finvoke","docs\u002F5.client\u002F4.invoke",{"title":114,"path":115,"stem":116,"children":117,"page":41},"Infrastructure","\u002Fdocs\u002Finfra","docs\u002F6.infra",[118,122,126,130],{"title":119,"path":120,"stem":121},"The gradient","\u002Fdocs\u002Finfra\u002Fgradient","docs\u002F6.infra\u002F1.gradient",{"title":123,"path":124,"stem":125},"Surfaces — REST & GraphQL","\u002Fdocs\u002Finfra\u002Fsurfaces","docs\u002F6.infra\u002F2.surfaces",{"title":127,"path":128,"stem":129},"Deployment","\u002Fdocs\u002Finfra\u002Fdeployment","docs\u002F6.infra\u002F3.deployment",{"title":131,"path":132,"stem":133},"Hosts","\u002Fdocs\u002Finfra\u002Fhosts","docs\u002F6.infra\u002F4.hosts",{"id":135,"title":110,"body":136,"description":497,"extension":498,"meta":499,"navigation":201,"path":111,"seo":500,"stem":112,"__hash__":501},"docs_en\u002Fdocs\u002F5.client\u002F4.invoke.md",{"type":137,"value":138,"toc":492},"minimark",[139,142,149,320,325,404,408,449,453,473,481,488],[140,141,110],"h1",{"id":110},[143,144,145,148],"p",{},[146,147,110],"code",{}," calls a Frond operation from the server without reactive state. It is used in\nserver routes, scheduled tasks, and protocol adapters.",[150,151,156],"pre",{"className":152,"code":153,"language":154,"meta":155,"style":155},"language-ts shiki shiki-themes material-theme-lighter github-light github-dark","\u002F\u002F server\u002Fapi\u002Ffeed.xml.get.ts — an RSS bridge in three moves: parse → invoke → format\nimport Post from '@frond\u002Fblog\u002Fentities\u002FPost';\n\nexport default defineEventHandler(async (event) => {\n  const posts = await invoke\u003CPostCard[]>(Post, 'list');\n  return renderRss(posts);\n});\n","ts","",[146,157,158,167,196,203,239,292,310],{"__ignoreMap":155},[159,160,163],"span",{"class":161,"line":162},"line",1,[159,164,166],{"class":165},"sutJx","\u002F\u002F server\u002Fapi\u002Ffeed.xml.get.ts — an RSS bridge in three moves: parse → invoke → format\n",[159,168,170,174,178,181,185,189,192],{"class":161,"line":169},2,[159,171,173],{"class":172},"sVHd0","import",[159,175,177],{"class":176},"su5hD"," Post ",[159,179,180],{"class":172},"from",[159,182,184],{"class":183},"sjJ54"," '",[159,186,188],{"class":187},"s_sjI","@frond\u002Fblog\u002Fentities\u002FPost",[159,190,191],{"class":183},"'",[159,193,195],{"class":194},"sP7_E",";\n",[159,197,199],{"class":161,"line":198},3,[159,200,202],{"emptyLinePlaceholder":201},true,"\n",[159,204,206,209,212,216,219,223,226,230,233,236],{"class":161,"line":205},4,[159,207,208],{"class":172},"export",[159,210,211],{"class":172}," default",[159,213,215],{"class":214},"sGLFI"," defineEventHandler",[159,217,218],{"class":176},"(",[159,220,222],{"class":221},"sbsja","async",[159,224,225],{"class":194}," (",[159,227,229],{"class":228},"s99_P","event",[159,231,232],{"class":194},")",[159,234,235],{"class":221}," =>",[159,237,238],{"class":194}," {\n",[159,240,242,245,249,253,256,259,262,266,270,273,275,278,281,283,286,288,290],{"class":161,"line":241},5,[159,243,244],{"class":221},"  const",[159,246,248],{"class":247},"s_hVV"," posts",[159,250,252],{"class":251},"smGrS"," =",[159,254,255],{"class":172}," await",[159,257,258],{"class":214}," invoke",[159,260,261],{"class":194},"\u003C",[159,263,265],{"class":264},"sbgvK","PostCard",[159,267,269],{"class":268},"skxfh","[]",[159,271,272],{"class":194},">",[159,274,218],{"class":268},[159,276,277],{"class":176},"Post",[159,279,280],{"class":194},",",[159,282,184],{"class":183},[159,284,285],{"class":187},"list",[159,287,191],{"class":183},[159,289,232],{"class":268},[159,291,195],{"class":194},[159,293,295,298,301,303,306,308],{"class":161,"line":294},6,[159,296,297],{"class":172},"  return",[159,299,300],{"class":214}," renderRss",[159,302,218],{"class":268},[159,304,305],{"class":176},"posts",[159,307,232],{"class":268},[159,309,195],{"class":194},[159,311,313,316,318],{"class":161,"line":312},7,[159,314,315],{"class":194},"}",[159,317,232],{"class":176},[159,319,195],{"class":194},[321,322,324],"h2",{"id":323},"signatures","Signatures",[150,326,328],{"className":152,"code":327,"language":154,"meta":155,"style":155},"invoke\u003CT>(Entity, op, input?)          \u002F\u002F designation by class\ninvoke\u003CT>({ entity, op }, input?)      \u002F\u002F raw form, for dynamic bridges\n\u002F\u002F input: { params?, query?, body? }\n",[146,329,330,363,399],{"__ignoreMap":155},[159,331,332,334,336,339,341,344,346,349,351,354,357,360],{"class":161,"line":162},[159,333,110],{"class":214},[159,335,261],{"class":194},[159,337,338],{"class":264},"T",[159,340,272],{"class":194},[159,342,343],{"class":176},"(Entity",[159,345,280],{"class":194},[159,347,348],{"class":176}," op",[159,350,280],{"class":194},[159,352,353],{"class":176}," input",[159,355,356],{"class":251},"?",[159,358,359],{"class":176},")          ",[159,361,362],{"class":165},"\u002F\u002F designation by class\n",[159,364,365,367,369,371,373,375,378,381,383,386,389,391,393,396],{"class":161,"line":169},[159,366,110],{"class":214},[159,368,261],{"class":194},[159,370,338],{"class":264},[159,372,272],{"class":194},[159,374,218],{"class":176},[159,376,377],{"class":194},"{",[159,379,380],{"class":176}," entity",[159,382,280],{"class":194},[159,384,385],{"class":176}," op ",[159,387,388],{"class":194},"},",[159,390,353],{"class":176},[159,392,356],{"class":251},[159,394,395],{"class":176},")      ",[159,397,398],{"class":165},"\u002F\u002F raw form, for dynamic bridges\n",[159,400,401],{"class":161,"line":198},[159,402,403],{"class":165},"\u002F\u002F input: { params?, query?, body? }\n",[321,405,407],{"id":406},"semantics","Semantics",[409,410,411,426,435],"ul",{},[412,413,414,418,419,421,422,425],"li",{},[415,416,417],"strong",{},"Local or remote routing."," ",[146,420,110],{}," passes the call to the runner. A local Frond runs\nin memory; a Frond declared in ",[146,423,424],{},"remotes"," uses JSON-RPC.",[412,427,428,431,432,434],{},[415,429,430],{},"State forwarding."," In a request, ",[146,433,110],{}," adds the current session to invocation\nstate. Outside a request, state is empty or provided explicitly.",[412,436,437,444,445,448],{},[415,438,439,440,443],{},"Errors are the same ",[146,441,442],{},"FougereError","s"," — a bridge maps them with ",[146,446,447],{},"toHttpError"," if it\nspeaks HTTP, or lets them propagate.",[321,450,452],{"id":451},"boundary","Boundary",[143,454,455,457,458,461,462,465,466,469,470,472],{},[146,456,110],{}," is for ",[415,459,460],{},"Frond operations only",". Services, ",[146,463,464],{},"Logger",", ",[146,467,468],{},"Config"," come from the\ncontainer (DI) — ",[146,471,110],{}," is not a service locator.",[143,474,475,476,480],{},"The provided REST and GraphQL adapters follow the same sequence:\n",[477,478,479],"em",{},"parse → invoke → format",". A custom adapter can use the same structure.",[143,482,483,484,487],{},"Next: ",[485,486,119],"a",{"href":120}," — moving a Frond out of process.",[489,490,491],"style",{},"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 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 .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}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 .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}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);}",{"title":155,"searchDepth":169,"depth":169,"links":493},[494,495,496],{"id":323,"depth":169,"text":324},{"id":406,"depth":169,"text":407},{"id":451,"depth":169,"text":452},"Call a Frond operation server-side without reactive state.","md",{},{"title":110,"description":497},"SBoovHZTLp65GKmzfMKZXpkW_ZiKPUxG-ziD0JIQqpo",1786637819510]