[{"data":1,"prerenderedAt":345},["ShallowReactive",2],{"fougere:post.list:{}":3,"reference:\u002Freference\u002Fprotocols":6,"reference-pages":125},{"items":4,"hasMore":5},[],false,{"id":7,"title":8,"body":9,"description":116,"extension":117,"file":118,"meta":119,"navigation":120,"path":121,"seo":122,"stem":123,"__hash__":124},"reference\u002Freference\u002F06.protocols.md","Protocols",{"type":10,"value":11,"toc":109},"minimark",[12,16,29,35,42,57,62,67],[13,14,8],"h1",{"id":15},"protocols",[17,18,19,20,24,25,28],"p",{},"Each type is a word an entry of ",[21,22,23],"code",{},"protocols:"," may name, answered by the package that augments ",[21,26,27],{},"FougereProtocols"," — import it and the word exists.",[30,31,33],"h3",{"id":32},"graphql",[21,34,32],{},[17,36,37,38,41],{},"From ",[21,39,40],{},"@fougere\u002Fadapter-graphql",".",[43,44,45],"table",{},[46,47,48],"thead",{},[49,50,51,55],"tr",{},[52,53,54],"th",{},"key",[52,56],{},[30,58,60],{"id":59},"rest",[21,61,59],{},[17,63,37,64,41],{},[21,65,66],{},"@fougere\u002Fadapter-rest",[43,68,69,77],{},[46,70,71],{},[49,72,73,75],{},[52,74,54],{},[52,76],{},[78,79,80,91,100],"tbody",{},[49,81,82,88],{},[83,84,85],"td",{},[21,86,87],{},"prefix",[83,89,90],{},"optional",[49,92,93,98],{},[83,94,95],{},[21,96,97],{},"openapi",[83,99,90],{},[49,101,102,107],{},[83,103,104],{},[21,105,106],{},"overrides",[83,108,90],{},{"title":110,"searchDepth":111,"depth":111,"links":112},"",2,[113,115],{"id":32,"depth":114,"text":32},3,{"id":59,"depth":114,"text":59},"What protocols: may serve, and what each admits.","md",null,{},true,"\u002Freference\u002Fprotocols",{"title":8,"description":116},"reference\u002F06.protocols","Mp7AdKkbBvbPR2rQ8FfDzX7-Qq517O1j3sg80AYQCeg",[126,131,136,141,146,151,152,157,162,167,172,177,182,187,192,196,201,205,210,215,220,225,230,235,240,245,250,255,260,265,270,275,280,285,290,295,300,305,310,315,320,325,330,335,340],{"path":127,"title":128,"description":129,"stem":130},"\u002Freference\u002Fcli","CLI","fougere new, serve, call, sync, graph — composing a workspace, hosting one frond, invoking an operation from a shell.","reference\u002F01.cli",{"path":132,"title":133,"description":134,"stem":135},"\u002Freference\u002Ferrors","Error codes","Every code an operation can refuse with, and its HTTP status.","reference\u002F02.errors",{"path":137,"title":138,"description":139,"stem":140},"\u002Freference\u002Fconfig","fougere.config.ts","Every key the app config admits, and which package answers each one.","reference\u002F03.config",{"path":142,"title":143,"description":144,"stem":145},"\u002Freference\u002Ffrond-config","frond.config.ts","Every key a frond's own config admits.","reference\u002F04.frond-config",{"path":147,"title":148,"description":149,"stem":150},"\u002Freference\u002Fsources","Source types","Every type an entry of sources: may name, and the keys it admits.","reference\u002F05.sources",{"path":121,"title":8,"description":116,"stem":123},{"path":153,"title":154,"description":155,"stem":156},"\u002Freference\u002Fstates","State keepers","How state: may keep a caller's values.","reference\u002F07.states",{"path":158,"title":159,"description":160,"stem":161},"\u002Freference\u002Fforms","Forms","The types a frond is written with — each one read by the scan.","reference\u002F08.forms",{"path":163,"title":164,"description":165,"stem":166},"\u002Freference\u002Fports","Ports Fougere opens","The classes you stand in front of, or extend, to change what the framework does.","reference\u002F09.ports",{"path":168,"title":169,"description":170,"stem":171},"\u002Freference\u002Finterfaces","Interfaces to extend","The empty interfaces a package augments with declare module, and who augments each.","reference\u002F10.interfaces",{"path":173,"title":174,"description":175,"stem":176},"\u002Freference\u002Fdiagnostics","Boot and check diagnostics","Every code a boot, the scan or fougere check can raise, and what it says.","reference\u002F11.diagnostics",{"path":178,"title":179,"description":180,"stem":181},"\u002Freference\u002Fpackages\u002Fadapter-duckdb","@fougere\u002Fadapter-duckdb","Read across an app's sources — one SQL query over what DuckDB can attach.","reference\u002Fpackages\u002Fadapter-duckdb",{"path":183,"title":184,"description":185,"stem":186},"\u002Freference\u002Fpackages\u002Fadapter-env","@fougere\u002Fadapter-env","The process environment as a source — MEILI_URL read as Meili's url, judged at boot.","reference\u002Fpackages\u002Fadapter-env",{"path":188,"title":189,"description":190,"stem":191},"\u002Freference\u002Fpackages\u002Fadapter-file","@fougere\u002Fadapter-file","Rows as files — one JSON or YAML file per row, in a directory per entity.","reference\u002Fpackages\u002Fadapter-file",{"path":193,"title":40,"description":194,"stem":195},"\u002Freference\u002Fpackages\u002Fadapter-graphql","Entity → GraphQL types, inputs and CRUD, through Pothos.","reference\u002Fpackages\u002Fadapter-graphql",{"path":197,"title":198,"description":199,"stem":200},"\u002Freference\u002Fpackages\u002Fadapter-memory","@fougere\u002Fadapter-memory","Rows in a Map — the source a first run meets, and the one that ships no driver.","reference\u002Fpackages\u002Fadapter-memory",{"path":202,"title":66,"description":203,"stem":204},"\u002Freference\u002Fpackages\u002Fadapter-rest","Entity → REST routes.","reference\u002Fpackages\u002Fadapter-rest",{"path":206,"title":207,"description":208,"stem":209},"\u002Freference\u002Fpackages\u002Fadapter-sql","@fougere\u002Fadapter-sql","Entity → SQL tables through Kysely (SQLite, PostgreSQL, MySQL, SQL Server).","reference\u002Fpackages\u002Fadapter-sql",{"path":211,"title":212,"description":213,"stem":214},"\u002Freference\u002Fpackages\u002Fadmin","@fougere\u002Fadmin","A back-office derived from what the app already says it hosts — a react-admin DataProvider over the Fougere wire.","reference\u002Fpackages\u002Fadmin",{"path":216,"title":217,"description":218,"stem":219},"\u002Freference\u002Fpackages\u002Fapp","@fougere\u002Fapp","The host-independent half of a Fougere app: boot, call envelope, REST table, form contract.","reference\u002Fpackages\u002Fapp",{"path":221,"title":222,"description":223,"stem":224},"\u002Freference\u002Fpackages\u002Fauth-better","@fougere\u002Fauth-better","Fougere's auth — a translation layer onto better-auth.","reference\u002Fpackages\u002Fauth-better",{"path":226,"title":227,"description":228,"stem":229},"\u002Freference\u002Fpackages\u002Fcalls","@fougere\u002Fcalls","Optional call log for Fougere: a bounded ring of every dispatch, served as an rpc operation. Read it with `fougere devtools`.","reference\u002Fpackages\u002Fcalls",{"path":231,"title":232,"description":233,"stem":234},"\u002Freference\u002Fpackages\u002Fcli","@fougere\u002Fcli","The Fougere CLI — compose a workspace, serve a frond, call an operation.","reference\u002Fpackages\u002Fcli",{"path":236,"title":237,"description":238,"stem":239},"\u002Freference\u002Fpackages\u002Fcompiler","@fougere\u002Fcompiler","The scan: Fougere reading a project's source to produce the descriptors core boots from. Needs a filesystem and a TypeScript program.","reference\u002Fpackages\u002Fcompiler",{"path":241,"title":242,"description":243,"stem":244},"\u002Freference\u002Fpackages\u002Fcontainer","@fougere\u002Fcontainer","Fougere's DI container: resolution by type, wired from the AST scan. Zero dependencies.","reference\u002Fpackages\u002Fcontainer",{"path":246,"title":247,"description":248,"stem":249},"\u002Freference\u002Fpackages\u002Fcore","@fougere\u002Fcore","The core — scan, call contract, façades, remote stand-ins.","reference\u002Fpackages\u002Fcore",{"path":251,"title":252,"description":253,"stem":254},"\u002Freference\u002Fpackages\u002Fdecorators","@fougere\u002Fdecorators","Configuration sugar (@config) — declarative, never hidden runtime.","reference\u002Fpackages\u002Fdecorators",{"path":256,"title":257,"description":258,"stem":259},"\u002Freference\u002Fpackages\u002Fdefaults","@fougere\u002Fdefaults","The conventional boot of a Fougere app — the one place storage is wired.","reference\u002Fpackages\u002Fdefaults",{"path":261,"title":262,"description":263,"stem":264},"\u002Freference\u002Fpackages\u002Fgraph","@fougere\u002Fgraph","Fougere's graph: a labelled directed multigraph, and the four questions asked of it — order, cycles, components, reach. Zero dependencies.","reference\u002Fpackages\u002Fgraph",{"path":266,"title":267,"description":268,"stem":269},"\u002Freference\u002Fpackages\u002Fhttp","@fougere\u002Fhttp","The words every HTTP door speaks — a method, an answer, the headers a state travels in.","reference\u002Fpackages\u002Fhttp",{"path":271,"title":272,"description":273,"stem":274},"\u002Freference\u002Fpackages\u002Flog","@fougere\u002Flog","Logging for Fougere: two lines for every call, in every process, and a file destination for the lines.","reference\u002Fpackages\u002Flog",{"path":276,"title":277,"description":278,"stem":279},"\u002Freference\u002Fpackages\u002Fnext","@fougere\u002Fnext","The Next.js adapter: mounting, and the one import that is genuinely Next.","reference\u002Fpackages\u002Fnext",{"path":281,"title":282,"description":283,"stem":284},"\u002Freference\u002Fpackages\u002Fnuxt","@fougere\u002Fnuxt","The Nuxt module: Fougere's client primitives and server surface.","reference\u002Fpackages\u002Fnuxt",{"path":286,"title":287,"description":288,"stem":289},"\u002Freference\u002Fpackages\u002Fobservability","@fougere\u002Fobservability","Optional observability for Fougere: one span per operation, W3C Trace Context across any transport.","reference\u002Fpackages\u002Fobservability",{"path":291,"title":292,"description":293,"stem":294},"\u002Freference\u002Fpackages\u002Foclif","@fougere\u002Foclif","A frond's operations, as a terminal: topics, flags and help derived from what it declares.","reference\u002Fpackages\u002Foclif",{"path":296,"title":297,"description":298,"stem":299},"\u002Freference\u002Fpackages\u002Freact","@fougere\u002Freact","Fougere's four primitives as React hooks — host-independent.","reference\u002Fpackages\u002Freact",{"path":301,"title":302,"description":303,"stem":304},"\u002Freference\u002Fpackages\u002Fregistry","@fougere\u002Fregistry","Fougere's registry: one answer per name, refused when a second one arrives, and a reload that says it replaces. Zero dependencies.","reference\u002Fpackages\u002Fregistry",{"path":306,"title":307,"description":308,"stem":309},"\u002Freference\u002Fpackages\u002Fschema","@fougere\u002Fschema","The entity and its 4 axes — shape, role, lifecycle, boundary. Subject-owned judgments, edge-safe.","reference\u002Fpackages\u002Fschema",{"path":311,"title":312,"description":313,"stem":314},"\u002Freference\u002Fpackages\u002Fstate-cookie","@fougere\u002Fstate-cookie","A caller's state kept in a cookie — what `state: { cart: { cookie: {} } }` names, signed by core, carried by every HTTP door.","reference\u002Fpackages\u002Fstate-cookie",{"path":316,"title":317,"description":318,"stem":319},"\u002Freference\u002Fpackages\u002Fstate-session","@fougere\u002Fstate-session","A caller's state kept in a session — what `state: { cart: { session: {} } }` names: one cookie holds a reference, the values a row in a source.","reference\u002Fpackages\u002Fstate-session",{"path":321,"title":322,"description":323,"stem":324},"\u002Freference\u002Fpackages\u002Fsvelte","@fougere\u002Fsvelte","Fougere's four primitives as Svelte stores — host-independent.","reference\u002Fpackages\u002Fsvelte",{"path":326,"title":327,"description":328,"stem":329},"\u002Freference\u002Fpackages\u002Ftesting","@fougere\u002Ftesting","Tests derived from the declaration — cases, stubs and a gradient of realities.","reference\u002Fpackages\u002Ftesting",{"path":331,"title":332,"description":333,"stem":334},"\u002Freference\u002Fpackages\u002Ftransport-http","@fougere\u002Ftransport-http","The call contract on the wire, in JSON-RPC 2.0 (server + client).","reference\u002Fpackages\u002Ftransport-http",{"path":336,"title":337,"description":338,"stem":339},"\u002Freference\u002Fpackages\u002Fvite","@fougere\u002Fvite","The Vite plugin: what any Vite-built host must know to run a Fougere app.","reference\u002Fpackages\u002Fvite",{"path":341,"title":342,"description":343,"stem":344},"\u002Freference\u002Fpackages\u002Fworkflow","@fougere\u002Fworkflow","A release that goes to the end: the journal is three entities, the sweep is an operation, and a shared journal is one line of remotes:.","reference\u002Fpackages\u002Fworkflow",1794396612306]