[{"data":1,"prerenderedAt":589},["ShallowReactive",2],{"fougere:post.list:{}":3,"reference:\u002Freference\u002Fsources":6,"reference-pages":371},{"items":4,"hasMore":5},[],false,{"id":7,"title":8,"body":9,"description":362,"extension":363,"file":364,"meta":365,"navigation":366,"path":367,"seo":368,"stem":369,"__hash__":370},"reference\u002Freference\u002F05.sources.md","Source types",{"type":10,"value":11,"toc":349},"minimark",[12,16,40,46,53,82,87,92,131,136,141,161,166,171,199,204,208,237,242,246,274,279,283,311,316,320],[13,14,8],"h1",{"id":15},"source-types",[17,18,19,20,24,25,28,29,32,33,36,37,39],"p",{},"Each type is a word an entry of ",[21,22,23],"code",{},"sources:"," may name, answered by the package that augments ",[21,26,27],{},"FougereSources"," — import it and the word exists. Every entry also takes ",[21,30,31],{},"rows:"," — the entities it holds — and ",[21,34,35],{},"values:"," — the entities it holds as one value; the entry with no ",[21,38,31],{}," holds the rest.",[41,42,44],"h3",{"id":43},"env",[21,45,43],{},[17,47,48,49,52],{},"From ",[21,50,51],{},"@fougere\u002Fadapter-env",".",[54,55,56,68],"table",{},[57,58,59],"thead",{},[60,61,62,66],"tr",{},[63,64,65],"th",{},"key",[63,67],{},[69,70,71],"tbody",{},[60,72,73,79],{},[74,75,76],"td",{},[21,77,78],{},"type",[74,80,81],{},"required",[41,83,85],{"id":84},"file",[21,86,84],{},[17,88,48,89,52],{},[21,90,91],{},"@fougere\u002Fadapter-file",[54,93,94,102],{},[57,95,96],{},[60,97,98,100],{},[63,99,65],{},[63,101],{},[69,103,104,112,121],{},[60,105,106,110],{},[74,107,108],{},[21,109,78],{},[74,111,81],{},[60,113,114,119],{},[74,115,116],{},[21,117,118],{},"path",[74,120,81],{},[60,122,123,128],{},[74,124,125],{},[21,126,127],{},"format",[74,129,130],{},"optional",[41,132,134],{"id":133},"memory",[21,135,133],{},[17,137,48,138,52],{},[21,139,140],{},"@fougere\u002Fadapter-memory",[54,142,143,151],{},[57,144,145],{},[60,146,147,149],{},[63,148,65],{},[63,150],{},[69,152,153],{},[60,154,155,159],{},[74,156,157],{},[21,158,78],{},[74,160,81],{},[41,162,164],{"id":163},"sqlite",[21,165,163],{},[17,167,48,168,52],{},[21,169,170],{},"@fougere\u002Fadapter-sql",[54,172,173,181],{},[57,174,175],{},[60,176,177,179],{},[63,178,65],{},[63,180],{},[69,182,183,191],{},[60,184,185,189],{},[74,186,187],{},[21,188,78],{},[74,190,81],{},[60,192,193,197],{},[74,194,195],{},[21,196,118],{},[74,198,81],{},[41,200,202],{"id":201},"pg",[21,203,201],{},[17,205,48,206,52],{},[21,207,170],{},[54,209,210,218],{},[57,211,212],{},[60,213,214,216],{},[63,215,65],{},[63,217],{},[69,219,220,228],{},[60,221,222,226],{},[74,223,224],{},[21,225,78],{},[74,227,81],{},[60,229,230,235],{},[74,231,232],{},[21,233,234],{},"url",[74,236,81],{},[41,238,240],{"id":239},"mysql",[21,241,239],{},[17,243,48,244,52],{},[21,245,170],{},[54,247,248,256],{},[57,249,250],{},[60,251,252,254],{},[63,253,65],{},[63,255],{},[69,257,258,266],{},[60,259,260,264],{},[74,261,262],{},[21,263,78],{},[74,265,81],{},[60,267,268,272],{},[74,269,270],{},[21,271,234],{},[74,273,81],{},[41,275,277],{"id":276},"mssql",[21,278,276],{},[17,280,48,281,52],{},[21,282,170],{},[54,284,285,293],{},[57,286,287],{},[60,288,289,291],{},[63,290,65],{},[63,292],{},[69,294,295,303],{},[60,296,297,301],{},[74,298,299],{},[21,300,78],{},[74,302,81],{},[60,304,305,309],{},[74,306,307],{},[21,308,234],{},[74,310,81],{},[41,312,314],{"id":313},"d1",[21,315,313],{},[17,317,48,318,52],{},[21,319,170],{},[54,321,322,330],{},[57,323,324],{},[60,325,326,328],{},[63,327,65],{},[63,329],{},[69,331,332,340],{},[60,333,334,338],{},[74,335,336],{},[21,337,78],{},[74,339,81],{},[60,341,342,347],{},[74,343,344],{},[21,345,346],{},"binding",[74,348,81],{},{"title":350,"searchDepth":351,"depth":351,"links":352},"",2,[353,355,356,357,358,359,360,361],{"id":43,"depth":354,"text":43},3,{"id":84,"depth":354,"text":84},{"id":133,"depth":354,"text":133},{"id":163,"depth":354,"text":163},{"id":201,"depth":354,"text":201},{"id":239,"depth":354,"text":239},{"id":276,"depth":354,"text":276},{"id":313,"depth":354,"text":313},"Every type an entry of sources: may name, and the keys it admits.","md",null,{},true,"\u002Freference\u002Fsources",{"title":8,"description":362},"reference\u002F05.sources","170CEGz6XTXGJdnuo2D-wAHiSLBzbacJDg7tdE0xS6k",[372,377,382,387,392,393,398,403,408,413,418,423,428,432,436,441,445,450,454,459,464,469,474,479,484,489,494,499,504,509,514,519,524,529,534,539,544,549,554,559,564,569,574,579,584],{"path":373,"title":374,"description":375,"stem":376},"\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":378,"title":379,"description":380,"stem":381},"\u002Freference\u002Ferrors","Error codes","Every code an operation can refuse with, and its HTTP status.","reference\u002F02.errors",{"path":383,"title":384,"description":385,"stem":386},"\u002Freference\u002Fconfig","fougere.config.ts","Every key the app config admits, and which package answers each one.","reference\u002F03.config",{"path":388,"title":389,"description":390,"stem":391},"\u002Freference\u002Ffrond-config","frond.config.ts","Every key a frond's own config admits.","reference\u002F04.frond-config",{"path":367,"title":8,"description":362,"stem":369},{"path":394,"title":395,"description":396,"stem":397},"\u002Freference\u002Fprotocols","Protocols","What protocols: may serve, and what each admits.","reference\u002F06.protocols",{"path":399,"title":400,"description":401,"stem":402},"\u002Freference\u002Fstates","State keepers","How state: may keep a caller's values.","reference\u002F07.states",{"path":404,"title":405,"description":406,"stem":407},"\u002Freference\u002Fforms","Forms","The types a frond is written with — each one read by the scan.","reference\u002F08.forms",{"path":409,"title":410,"description":411,"stem":412},"\u002Freference\u002Fports","Ports Fougere opens","The classes you stand in front of, or extend, to change what the framework does.","reference\u002F09.ports",{"path":414,"title":415,"description":416,"stem":417},"\u002Freference\u002Finterfaces","Interfaces to extend","The empty interfaces a package augments with declare module, and who augments each.","reference\u002F10.interfaces",{"path":419,"title":420,"description":421,"stem":422},"\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":424,"title":425,"description":426,"stem":427},"\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":429,"title":51,"description":430,"stem":431},"\u002Freference\u002Fpackages\u002Fadapter-env","The process environment as a source — MEILI_URL read as Meili's url, judged at boot.","reference\u002Fpackages\u002Fadapter-env",{"path":433,"title":91,"description":434,"stem":435},"\u002Freference\u002Fpackages\u002Fadapter-file","Rows as files — one JSON or YAML file per row, in a directory per entity.","reference\u002Fpackages\u002Fadapter-file",{"path":437,"title":438,"description":439,"stem":440},"\u002Freference\u002Fpackages\u002Fadapter-graphql","@fougere\u002Fadapter-graphql","Entity → GraphQL types, inputs and CRUD, through Pothos.","reference\u002Fpackages\u002Fadapter-graphql",{"path":442,"title":140,"description":443,"stem":444},"\u002Freference\u002Fpackages\u002Fadapter-memory","Rows in a Map — the source a first run meets, and the one that ships no driver.","reference\u002Fpackages\u002Fadapter-memory",{"path":446,"title":447,"description":448,"stem":449},"\u002Freference\u002Fpackages\u002Fadapter-rest","@fougere\u002Fadapter-rest","Entity → REST routes.","reference\u002Fpackages\u002Fadapter-rest",{"path":451,"title":170,"description":452,"stem":453},"\u002Freference\u002Fpackages\u002Fadapter-sql","Entity → SQL tables through Kysely (SQLite, PostgreSQL, MySQL, SQL Server).","reference\u002Fpackages\u002Fadapter-sql",{"path":455,"title":456,"description":457,"stem":458},"\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":460,"title":461,"description":462,"stem":463},"\u002Freference\u002Fpackages\u002Fapp","@fougere\u002Fapp","The host-independent half of a Fougere app: boot, call envelope, REST table, form contract.","reference\u002Fpackages\u002Fapp",{"path":465,"title":466,"description":467,"stem":468},"\u002Freference\u002Fpackages\u002Fauth-better","@fougere\u002Fauth-better","Fougere's auth — a translation layer onto better-auth.","reference\u002Fpackages\u002Fauth-better",{"path":470,"title":471,"description":472,"stem":473},"\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":475,"title":476,"description":477,"stem":478},"\u002Freference\u002Fpackages\u002Fcli","@fougere\u002Fcli","The Fougere CLI — compose a workspace, serve a frond, call an operation.","reference\u002Fpackages\u002Fcli",{"path":480,"title":481,"description":482,"stem":483},"\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":485,"title":486,"description":487,"stem":488},"\u002Freference\u002Fpackages\u002Fcontainer","@fougere\u002Fcontainer","Fougere's DI container: resolution by type, wired from the AST scan. Zero dependencies.","reference\u002Fpackages\u002Fcontainer",{"path":490,"title":491,"description":492,"stem":493},"\u002Freference\u002Fpackages\u002Fcore","@fougere\u002Fcore","The core — scan, call contract, façades, remote stand-ins.","reference\u002Fpackages\u002Fcore",{"path":495,"title":496,"description":497,"stem":498},"\u002Freference\u002Fpackages\u002Fdecorators","@fougere\u002Fdecorators","Configuration sugar (@config) — declarative, never hidden runtime.","reference\u002Fpackages\u002Fdecorators",{"path":500,"title":501,"description":502,"stem":503},"\u002Freference\u002Fpackages\u002Fdefaults","@fougere\u002Fdefaults","The conventional boot of a Fougere app — the one place storage is wired.","reference\u002Fpackages\u002Fdefaults",{"path":505,"title":506,"description":507,"stem":508},"\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":510,"title":511,"description":512,"stem":513},"\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":515,"title":516,"description":517,"stem":518},"\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":520,"title":521,"description":522,"stem":523},"\u002Freference\u002Fpackages\u002Fnext","@fougere\u002Fnext","The Next.js adapter: mounting, and the one import that is genuinely Next.","reference\u002Fpackages\u002Fnext",{"path":525,"title":526,"description":527,"stem":528},"\u002Freference\u002Fpackages\u002Fnuxt","@fougere\u002Fnuxt","The Nuxt module: Fougere's client primitives and server surface.","reference\u002Fpackages\u002Fnuxt",{"path":530,"title":531,"description":532,"stem":533},"\u002Freference\u002Fpackages\u002Fobservability","@fougere\u002Fobservability","Optional observability for Fougere: one span per operation, W3C Trace Context across any transport.","reference\u002Fpackages\u002Fobservability",{"path":535,"title":536,"description":537,"stem":538},"\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":540,"title":541,"description":542,"stem":543},"\u002Freference\u002Fpackages\u002Freact","@fougere\u002Freact","Fougere's four primitives as React hooks — host-independent.","reference\u002Fpackages\u002Freact",{"path":545,"title":546,"description":547,"stem":548},"\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":550,"title":551,"description":552,"stem":553},"\u002Freference\u002Fpackages\u002Fschema","@fougere\u002Fschema","The entity and its 4 axes — shape, role, lifecycle, boundary. Subject-owned judgments, edge-safe.","reference\u002Fpackages\u002Fschema",{"path":555,"title":556,"description":557,"stem":558},"\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":560,"title":561,"description":562,"stem":563},"\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":565,"title":566,"description":567,"stem":568},"\u002Freference\u002Fpackages\u002Fsvelte","@fougere\u002Fsvelte","Fougere's four primitives as Svelte stores — host-independent.","reference\u002Fpackages\u002Fsvelte",{"path":570,"title":571,"description":572,"stem":573},"\u002Freference\u002Fpackages\u002Ftesting","@fougere\u002Ftesting","Tests derived from the declaration — cases, stubs and a gradient of realities.","reference\u002Fpackages\u002Ftesting",{"path":575,"title":576,"description":577,"stem":578},"\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":580,"title":581,"description":582,"stem":583},"\u002Freference\u002Fpackages\u002Fvite","@fougere\u002Fvite","The Vite plugin: what any Vite-built host must know to run a Fougere app.","reference\u002Fpackages\u002Fvite",{"path":585,"title":586,"description":587,"stem":588},"\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]