[{"data":1,"prerenderedAt":359},["ShallowReactive",2],{"fougere:post.list:{}":3,"reference:\u002Freference\u002Fpackages\u002Fadmin":6,"reference-pages":137},{"items":4,"hasMore":5},[],false,{"id":7,"title":8,"body":9,"description":19,"extension":129,"file":130,"meta":131,"navigation":132,"path":133,"seo":134,"stem":135,"__hash__":136},"reference\u002Freference\u002Fpackages\u002Fadmin.md","@fougere\u002Fadmin",{"type":10,"value":11,"toc":123},"minimark",[12,16,20,30,35,64,68,75],[13,14,8],"h1",{"id":15},"fougereadmin",[17,18,19],"p",{},"A back-office derived from what the app already says it hosts — a react-admin DataProvider over the Fougere wire.",[17,21,22,23,26,27],{},"Entries: ",[24,25,8],"code",{}," · ",[24,28,29],{},"@fougere\u002Fadmin\u002Freact",[31,32,34],"h2",{"id":33},"what-you-import","What you import",[36,37,38,50],"table",{},[39,40,41],"thead",{},[42,43,44,48],"tr",{},[45,46,47],"th",{},"name",[45,49],{},[51,52,53],"tbody",{},[42,54,55,61],{},[56,57,58],"td",{},[24,59,60],{},"defineAdminExtension",[56,62,63],{},"Typed identity helper for extensions kept in their own module.",[31,65,67],{"id":66},"types","Types",[17,69,70,71,74],{},"TypeScript types only — they do not run. Import them with ",[24,72,73],{},"import type"," to type your own code: a variable, a parameter, an option object.",[36,76,77,85],{},[39,78,79],{},[42,80,81,83],{},[45,82,47],{},[45,84],{},[51,86,87,96,105,114],{},[42,88,89,94],{},[56,90,91],{},[24,92,93],{},"AdminExtension",[56,95],{},[42,97,98,103],{},[56,99,100],{},[24,101,102],{},"FrondPlacement",[56,104],{},[42,106,107,112],{},[56,108,109],{},[24,110,111],{},"Edge",[56,113],{},[42,115,116,121],{},[56,117,118],{},[24,119,120],{},"TopologyReport",[56,122],{},{"title":124,"searchDepth":125,"depth":125,"links":126},"",2,[127,128],{"id":33,"depth":125,"text":34},{"id":66,"depth":125,"text":67},"md",null,{},true,"\u002Freference\u002Fpackages\u002Fadmin",{"title":8,"description":19},"reference\u002Fpackages\u002Fadmin","-T-Snn5oLyXVqXG0BYd00Cav6wsmD1WbPV5UddnZFek",[138,143,148,153,158,163,168,173,178,183,188,193,198,203,208,213,218,223,228,229,234,239,244,249,254,259,264,269,274,279,284,289,294,299,304,309,314,319,324,329,334,339,344,349,354],{"path":139,"title":140,"description":141,"stem":142},"\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":144,"title":145,"description":146,"stem":147},"\u002Freference\u002Ferrors","Error codes","Every code an operation can refuse with, and its HTTP status.","reference\u002F02.errors",{"path":149,"title":150,"description":151,"stem":152},"\u002Freference\u002Fconfig","fougere.config.ts","Every key the app config admits, and which package answers each one.","reference\u002F03.config",{"path":154,"title":155,"description":156,"stem":157},"\u002Freference\u002Ffrond-config","frond.config.ts","Every key a frond's own config admits.","reference\u002F04.frond-config",{"path":159,"title":160,"description":161,"stem":162},"\u002Freference\u002Fsources","Source types","Every type an entry of sources: may name, and the keys it admits.","reference\u002F05.sources",{"path":164,"title":165,"description":166,"stem":167},"\u002Freference\u002Fprotocols","Protocols","What protocols: may serve, and what each admits.","reference\u002F06.protocols",{"path":169,"title":170,"description":171,"stem":172},"\u002Freference\u002Fstates","State keepers","How state: may keep a caller's values.","reference\u002F07.states",{"path":174,"title":175,"description":176,"stem":177},"\u002Freference\u002Fforms","Forms","The types a frond is written with — each one read by the scan.","reference\u002F08.forms",{"path":179,"title":180,"description":181,"stem":182},"\u002Freference\u002Fports","Ports Fougere opens","The classes you stand in front of, or extend, to change what the framework does.","reference\u002F09.ports",{"path":184,"title":185,"description":186,"stem":187},"\u002Freference\u002Finterfaces","Interfaces to extend","The empty interfaces a package augments with declare module, and who augments each.","reference\u002F10.interfaces",{"path":189,"title":190,"description":191,"stem":192},"\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":194,"title":195,"description":196,"stem":197},"\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":199,"title":200,"description":201,"stem":202},"\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":204,"title":205,"description":206,"stem":207},"\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":209,"title":210,"description":211,"stem":212},"\u002Freference\u002Fpackages\u002Fadapter-graphql","@fougere\u002Fadapter-graphql","Entity → GraphQL types, inputs and CRUD, through Pothos.","reference\u002Fpackages\u002Fadapter-graphql",{"path":214,"title":215,"description":216,"stem":217},"\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":219,"title":220,"description":221,"stem":222},"\u002Freference\u002Fpackages\u002Fadapter-rest","@fougere\u002Fadapter-rest","Entity → REST routes.","reference\u002Fpackages\u002Fadapter-rest",{"path":224,"title":225,"description":226,"stem":227},"\u002Freference\u002Fpackages\u002Fadapter-sql","@fougere\u002Fadapter-sql","Entity → SQL tables through Kysely (SQLite, PostgreSQL, MySQL, SQL Server).","reference\u002Fpackages\u002Fadapter-sql",{"path":133,"title":8,"description":19,"stem":135},{"path":230,"title":231,"description":232,"stem":233},"\u002Freference\u002Fpackages\u002Fapp","@fougere\u002Fapp","The host-independent half of a Fougere app: boot, call envelope, REST table, form contract.","reference\u002Fpackages\u002Fapp",{"path":235,"title":236,"description":237,"stem":238},"\u002Freference\u002Fpackages\u002Fauth-better","@fougere\u002Fauth-better","Fougere's auth — a translation layer onto better-auth.","reference\u002Fpackages\u002Fauth-better",{"path":240,"title":241,"description":242,"stem":243},"\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":245,"title":246,"description":247,"stem":248},"\u002Freference\u002Fpackages\u002Fcli","@fougere\u002Fcli","The Fougere CLI — compose a workspace, serve a frond, call an operation.","reference\u002Fpackages\u002Fcli",{"path":250,"title":251,"description":252,"stem":253},"\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":255,"title":256,"description":257,"stem":258},"\u002Freference\u002Fpackages\u002Fcontainer","@fougere\u002Fcontainer","Fougere's DI container: resolution by type, wired from the AST scan. Zero dependencies.","reference\u002Fpackages\u002Fcontainer",{"path":260,"title":261,"description":262,"stem":263},"\u002Freference\u002Fpackages\u002Fcore","@fougere\u002Fcore","The core — scan, call contract, façades, remote stand-ins.","reference\u002Fpackages\u002Fcore",{"path":265,"title":266,"description":267,"stem":268},"\u002Freference\u002Fpackages\u002Fdecorators","@fougere\u002Fdecorators","Configuration sugar (@config) — declarative, never hidden runtime.","reference\u002Fpackages\u002Fdecorators",{"path":270,"title":271,"description":272,"stem":273},"\u002Freference\u002Fpackages\u002Fdefaults","@fougere\u002Fdefaults","The conventional boot of a Fougere app — the one place storage is wired.","reference\u002Fpackages\u002Fdefaults",{"path":275,"title":276,"description":277,"stem":278},"\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":280,"title":281,"description":282,"stem":283},"\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":285,"title":286,"description":287,"stem":288},"\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":290,"title":291,"description":292,"stem":293},"\u002Freference\u002Fpackages\u002Fnext","@fougere\u002Fnext","The Next.js adapter: mounting, and the one import that is genuinely Next.","reference\u002Fpackages\u002Fnext",{"path":295,"title":296,"description":297,"stem":298},"\u002Freference\u002Fpackages\u002Fnuxt","@fougere\u002Fnuxt","The Nuxt module: Fougere's client primitives and server surface.","reference\u002Fpackages\u002Fnuxt",{"path":300,"title":301,"description":302,"stem":303},"\u002Freference\u002Fpackages\u002Fobservability","@fougere\u002Fobservability","Optional observability for Fougere: one span per operation, W3C Trace Context across any transport.","reference\u002Fpackages\u002Fobservability",{"path":305,"title":306,"description":307,"stem":308},"\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":310,"title":311,"description":312,"stem":313},"\u002Freference\u002Fpackages\u002Freact","@fougere\u002Freact","Fougere's four primitives as React hooks — host-independent.","reference\u002Fpackages\u002Freact",{"path":315,"title":316,"description":317,"stem":318},"\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":320,"title":321,"description":322,"stem":323},"\u002Freference\u002Fpackages\u002Fschema","@fougere\u002Fschema","The entity and its 4 axes — shape, role, lifecycle, boundary. Subject-owned judgments, edge-safe.","reference\u002Fpackages\u002Fschema",{"path":325,"title":326,"description":327,"stem":328},"\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":330,"title":331,"description":332,"stem":333},"\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":335,"title":336,"description":337,"stem":338},"\u002Freference\u002Fpackages\u002Fsvelte","@fougere\u002Fsvelte","Fougere's four primitives as Svelte stores — host-independent.","reference\u002Fpackages\u002Fsvelte",{"path":340,"title":341,"description":342,"stem":343},"\u002Freference\u002Fpackages\u002Ftesting","@fougere\u002Ftesting","Tests derived from the declaration — cases, stubs and a gradient of realities.","reference\u002Fpackages\u002Ftesting",{"path":345,"title":346,"description":347,"stem":348},"\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":350,"title":351,"description":352,"stem":353},"\u002Freference\u002Fpackages\u002Fvite","@fougere\u002Fvite","The Vite plugin: what any Vite-built host must know to run a Fougere app.","reference\u002Fpackages\u002Fvite",{"path":355,"title":356,"description":357,"stem":358},"\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",1794396612877]