[{"data":1,"prerenderedAt":2900},["ShallowReactive",2],{"fougere:post.list:{}":3,"reference:\u002Freference\u002Fpackages\u002Fcore":6,"reference-pages":2681},{"items":4,"hasMore":5},[],false,{"id":7,"title":8,"body":9,"description":19,"extension":2673,"file":2674,"meta":2675,"navigation":2676,"path":2677,"seo":2678,"stem":2679,"__hash__":2680},"reference\u002Freference\u002Fpackages\u002Fcore.md","@fougere\u002Fcore",{"type":10,"value":11,"toc":2667},"minimark",[12,16,20,39,44,1283,1287,1294],[13,14,8],"h1",{"id":15},"fougerecore",[17,18,19],"p",{},"The core — scan, call contract, façades, remote stand-ins.",[17,21,22,23,26,27,26,30,26,33,26,36],{},"Entries: ",[24,25,8],"code",{}," · ",[24,28,29],{},"@fougere\u002Fcore\u002Fnode",[24,31,32],{},"@fougere\u002Fcore\u002Fcontract",[24,34,35],{},"@fougere\u002Fcore\u002Fdescriptor",[24,37,38],{},"@fougere\u002Fcore\u002Ftsconfig",[40,41,43],"h2",{"id":42},"what-you-import","What you import",[45,46,47,59],"table",{},[48,49,50],"thead",{},[51,52,53,57],"tr",{},[54,55,56],"th",{},"name",[54,58],{},[60,61,62,73,87,97,107,117,127,137,151,160,174,184,194,204,213,223,236,246,264,277,291,312,342,352,362,372,382,399,409,423,432,442,452,470,479,488,498,508,518,532,542,552,562,586,595,605,619,628,642,663,672,681,690,700,714,731,740,749,758,768,778,788,798,808,817,826,843,856,870,880,890,899,909,918,928,938,948,958,967,976,985,994,1004,1017,1033,1043,1057,1066,1075,1084,1094,1104,1113,1131,1140,1153,1162,1172,1181,1191,1201,1211,1224,1233,1243,1253,1263,1273],"tbody",{},[51,63,64,70],{},[65,66,67],"td",{},[24,68,69],{},"createApp",[65,71,72],{},"Bootstrap a fougere application.",[51,74,75,80],{},[65,76,77],{},[24,78,79],{},"orderSeeds",[65,81,82,83,86],{},"Seeds in dependency order: a ",[24,84,85],{},"ref()"," target before its referrer.",[51,88,89,94],{},[65,90,91],{},[24,92,93],{},"runSeeds",[65,95,96],{},"Plants seeds in the order given, through the storage.",[51,98,99,104],{},[65,100,101],{},[24,102,103],{},"seeding",[65,105,106],{},"The boot's seeding step, named so a host can replace it.",[51,108,109,114],{},[65,110,111],{},[24,112,113],{},"AppLifecycle",[65,115,116],{},"Runs application extensions up in order and down in reverse order.",[51,118,119,124],{},[65,120,121],{},[24,122,123],{},"checking",[65,125,126],{},"The schema check every boot runs: the database is read against the entities, never written.",[51,128,129,134],{},[65,130,131],{},[24,132,133],{},"migrating",[65,135,136],{},"The schema slot filled by a process that writes its own schema — its database is born with it.",[51,138,139,144],{},[65,140,141],{},[24,142,143],{},"defineFougere",[65,145,146,147,150],{},"Types a ",[24,148,149],{},"fougere.config.ts"," while keeping its literals.",[51,152,153,158],{},[65,154,155],{},[24,156,157],{},"Protocols",[65,159],{},[51,161,162,167],{},[65,163,164],{},[24,165,166],{},"serves",[65,168,169,170,173],{},"Whether ",[24,171,172],{},"protocols:"," names this one — read by a host that imports no adapter, so by name.",[51,175,176,181],{},[65,177,178],{},[24,179,180],{},"statesModule",[65,182,183],{},"Whether a key names a module rather than a frond.",[51,185,186,191],{},[65,187,188],{},[24,189,190],{},"keyedFrondEntries",[65,192,193],{},"Every frond the config states, the ones inheriting from nothing first.",[51,195,196,201],{},[65,197,198],{},[24,199,200],{},"nested",[65,202,203],{},"The tree a boot stamps, for a reader that does not boot.",[51,205,206,211],{},[65,207,208],{},[24,209,210],{},"WITHOUT_GLOBAL_INSTALL",[65,212],{},[51,214,215,220],{},[65,216,217],{},[24,218,219],{},"buildGraph",[65,221,222],{},"Each entity of the fronds, with what it names and what names it.",[51,224,225,230],{},[65,226,227],{},[24,228,229],{},"clusterEntities",[65,231,232,233,235],{},"The entities a ",[24,234,85],{}," joins, whichever way it points, each group named by its most referenced.",[51,237,238,243],{},[65,239,240],{},[24,241,242],{},"suggestSplit",[65,244,245],{},"Splits one big cluster at the entity with the fewest cross-links.",[51,247,248,253],{},[65,249,250],{},[24,251,252],{},"Mirror",[65,254,255,256,259,260,263],{},"A repository that fills itself from a source it cannot query: its author writes ",[24,257,258],{},"pull",", ",[24,261,262],{},"refresh(since)"," writes every page.",[51,265,266,271],{},[65,267,268],{},[24,269,270],{},"Present",[65,272,273,276],{},[24,274,275],{},"Present\u003COrder>",": each method is a computed field, handed the page and answering one value per row.",[51,278,279,284],{},[65,280,281],{},[24,282,283],{},"presentedFields",[65,285,286,287,290],{},"The fields a ",[24,288,289],{},"Present\u003CPost>"," chain computes — what GraphQL types, beside the boot that runs them.",[51,292,293,298],{},[65,294,295],{},[24,296,297],{},"Collect",[65,299,300,303,304,307,308,311],{},[24,301,302],{},"Collect\u003CUser>",": ",[24,305,306],{},"collect"," fills a parameter of that type, ",[24,309,310],{},"missing"," refuses when a required one found nothing.",[51,313,314,319],{},[65,315,316],{},[24,317,318],{},"Repository",[65,320,321,322,259,325,259,328,259,331,259,334,337,338,341],{},"The rows of an entity; extended by a handler, it serves ",[24,323,324],{},"list",[24,326,327],{},"findById",[24,329,330],{},"create",[24,332,333],{},"update",[24,335,336],{},"delete",". Ex: ",[24,339,340],{},"Repository\u003CAccount, Ledger>"," owns both tables and forwards nothing.",[51,343,344,349],{},[65,345,346],{},[24,347,348],{},"Invocation",[65,350,351],{},"Canonical invocation shared by every entry and transport.",[51,353,354,359],{},[65,355,356],{},[24,357,358],{},"Call",[65,360,361],{},"One normalized request, frozen: where it goes and what the caller supplied.",[51,363,364,369],{},[65,365,366],{},[24,367,368],{},"RouteAddress",[65,370,371],{},"Canonical identity of one callable operation.",[51,373,374,379],{},[65,375,376],{},[24,377,378],{},"DispatchLifecycle",[65,380,381],{},"Publishes dispatch transitions without participating in dispatch decisions.",[51,383,384,389],{},[65,385,386],{},[24,387,388],{},"Dispatcher",[65,390,391,392,394,395,398],{},"Runs every call through the same lifecycle, and the port a link stands in front of. Ex: ",[24,393,388],{}," for its frond, ",[24,396,397],{},"Dispatcher\u003CPostHandler>"," for that handler.",[51,400,401,406],{},[65,402,403],{},[24,404,405],{},"release",[65,407,408],{},"The rows that name a key, every refusal asked first, then taken out or emptied deepest FIRST.",[51,410,411,416],{},[65,412,413],{},[24,414,415],{},"releasing",[65,417,418,419,422],{},"What a release asks the boot, built once per app — the same ",[24,420,421],{},"RowHosts"," the guard reads.",[51,424,425,430],{},[65,426,427],{},[24,428,429],{},"JOURNAL",[65,431],{},[51,433,434,439],{},[65,435,436],{},[24,437,438],{},"DispatchEvent",[65,440,441],{},"Immutable transition observed across one dispatch lifecycle.",[51,443,444,449],{},[65,445,446],{},[24,447,448],{},"DoorEvent",[65,450,451],{},"Immutable transition of one request at a door, observed beside the calls it makes.",[51,453,454,459],{},[65,455,456],{},[24,457,458],{},"State",[65,460,461,462,465,466,469],{},"The caller's state, read and written by the names ",[24,463,464],{},"state:"," declares; signed before it leaves. Ex: ",[24,467,468],{},"addToCart(id: Product['id'], state: State)",".",[51,471,472,477],{},[65,473,474],{},[24,475,476],{},"States",[65,478],{},[51,480,481,486],{},[65,482,483],{},[24,484,485],{},"ambient",[65,487],{},[51,489,490,495],{},[65,491,492],{},[24,493,494],{},"DoorRequest",[65,496,497],{},"One request a door received — a REST request, a GraphQL document, a command — and not a call: it may make several.",[51,499,500,505],{},[65,501,502],{},[24,503,504],{},"answerAt",[65,506,507],{},"The one cycle every door runs.",[51,509,510,515],{},[65,511,512],{},[24,513,514],{},"Page",[65,516,517],{},"What a paged operation answers: the rows, and what the storage said about the rest.",[51,519,520,525],{},[65,521,522],{},[24,523,524],{},"asPage",[65,526,527,528,531],{},"The value read as a page, or nothing; a row with a field named ",[24,529,530],{},"items"," stays a row.",[51,533,534,539],{},[65,535,536],{},[24,537,538],{},"driftOf",[65,540,541],{},"What a consumer's synced copy no longer matches in what the producer serves.",[51,543,544,549],{},[65,545,546],{},[24,547,548],{},"agrees",[65,550,551],{},"Whether anything at all separates the two cards.",[51,553,554,559],{},[65,555,556],{},[24,557,558],{},"explain",[65,560,561],{},"The drift, in the words a deploy needs.",[51,563,564,569],{},[65,565,566],{},[24,567,568],{},"wordsOf",[65,570,571,574,575,578,579,582,583,469],{},[24,572,573],{},"getOrCreatePost"," → ",[24,576,577],{},"['get', 'or', 'create', 'post']","; ",[24,580,581],{},"hash"," never becomes ",[24,584,585],{},"has",[51,587,588,593],{},[65,589,590],{},[24,591,592],{},"Verbs",[65,594],{},[51,596,597,602],{},[65,598,599],{},[24,600,601],{},"resolveEffectiveOperations",[65,603,604],{},"Resolve the complete operation model without starting the application.",[51,606,607,612],{},[65,608,609],{},[24,610,611],{},"FougereError",[65,613,614,615,618],{},"A refusal, and which one; ",[24,616,617],{},"Code"," narrows to what an operation can refuse.",[51,620,621,626],{},[65,622,623],{},[24,624,625],{},"ErrorCode",[65,627],{},[51,629,630,635],{},[65,631,632],{},[24,633,634],{},"validationErrorsOf",[65,636,637,638,641],{},"The refusals behind a ",[24,639,640],{},"VALIDATION_FAILED",", or nothing.",[51,643,644,649],{},[65,645,646],{},[24,647,648],{},"assertIdentityCard",[65,650,651,652,655,656,659,660,469],{},"The shape a card must have to be walked — ",[24,653,654],{},"fronds",", and each frond's ",[24,657,658],{},"entities"," and ",[24,661,662],{},"facades",[51,664,665,670],{},[65,666,667],{},[24,668,669],{},"RPC_ADDRESS",[65,671],{},[51,673,674,679],{},[65,675,676],{},[24,677,678],{},"ENVELOPE_BYTES",[65,680],{},[51,682,683,688],{},[65,684,685],{},[24,686,687],{},"maxBodyBytes",[65,689],{},[51,691,692,697],{},[65,693,694],{},[24,695,696],{},"maxFrameBytes",[65,698,699],{},"What a forwarding process may frame: the caller's limit, plus the envelope's room.",[51,701,702,707],{},[65,703,704],{},[24,705,706],{},"readWithin",[65,708,709,710,713],{},"A body as text, refused past ",[24,711,712],{},"max",": on its declared length first, then while counting.",[51,715,716,721],{},[65,717,718],{},[24,719,720],{},"setMaxBodyBytes",[65,722,723,724,727,728,469],{},"Set by ",[24,725,726],{},"applyConfig"," from ",[24,729,730],{},"maxBodyBytes:",[51,732,733,738],{},[65,734,735],{},[24,736,737],{},"OPERATION_KINDS",[65,739],{},[51,741,742,747],{},[65,743,744],{},[24,745,746],{},"CARDINALITIES",[65,748],{},[51,750,751,756],{},[65,752,753],{},[24,754,755],{},"PLACEMENTS",[65,757],{},[51,759,760,765],{},[65,761,762],{},[24,763,764],{},"createLocalRunner",[65,766,767],{},"Build the local runner — the reference realization of Transport.",[51,769,770,775],{},[65,771,772],{},[24,773,774],{},"createAppRunner",[65,776,777],{},"The app runner: a call follows the app's topology, local or remote.",[51,779,780,785],{},[65,781,782],{},[24,783,784],{},"frond",[65,786,787],{},"State a frond without reading a disk.",[51,789,790,795],{},[65,791,792],{},[24,793,794],{},"identityCardOf",[65,796,797],{},"Serialize what the app hosts, for one audience.",[51,799,800,805],{},[65,801,802],{},[24,803,804],{},"declaredTopologyOf",[65,806,807],{},"Read from the config and the scan, never from a call, so nothing has to answer for it.",[51,809,810,815],{},[65,811,812],{},[24,813,814],{},"refusalsOf",[65,816],{},[51,818,819,824],{},[65,820,821],{},[24,822,823],{},"addressOf",[65,825],{},[51,827,828,833],{},[65,829,830],{},[24,831,832],{},"listens",[65,834,835,836,839,840,469],{},"Whether an op is called by an announcement, through a ",[24,837,838],{},"Fact\u003CT>"," or a ",[24,841,842],{},"Pipe\u003CT>",[51,844,845,850],{},[65,846,847],{},[24,848,849],{},"callValueOf",[65,851,852,853,469],{},"The call value, from a class and a verb or from a raw address. Ex: ",[24,854,855],{},"callValueOf(Post, 'list', { query })",[51,857,858,863],{},[65,859,860],{},[24,861,862],{},"toHttpError",[65,864,865,866,869],{},"Map any thrown error to ",[24,867,868],{},"{ status, body }"," for HTTP bridges.",[51,871,872,877],{},[65,873,874],{},[24,875,876],{},"toPublicError",[65,878,879],{},"Serialize an application error for an untrusted caller.",[51,881,882,887],{},[65,883,884],{},[24,885,886],{},"LineBuffer",[65,888,889],{},"Where one boot's lines wait until a destination exists; bounded, dropping the oldest.",[51,891,892,897],{},[65,893,894],{},[24,895,896],{},"Logger",[65,898],{},[51,900,901,906],{},[65,902,903],{},[24,904,905],{},"envLevel",[65,907,908],{},"The level the PROCESS was started with.",[51,910,911,916],{},[65,912,913],{},[24,914,915],{},"formatted",[65,917],{},[51,919,920,925],{},[65,921,922],{},[24,923,924],{},"logLevel",[65,926,927],{},"What the level is now — the dual, so a reload can report what it changed.",[51,929,930,935],{},[65,931,932],{},[24,933,934],{},"setLogLevel",[65,936,937],{},"Set the level for every logger in this process, at once.",[51,939,940,945],{},[65,941,942],{},[24,943,944],{},"argumentText",[65,946,947],{},"An argument of a log line, as text.",[51,949,950,955],{},[65,951,952],{},[24,953,954],{},"LogLine",[65,956,957],{},"One log line, announced like any other fact.",[51,959,960,965],{},[65,961,962],{},[24,963,964],{},"CARRIES_LINE",[65,966],{},[51,968,969,974],{},[65,970,971],{},[24,972,973],{},"LOG_LINE",[65,975],{},[51,977,978,982],{},[65,979,980],{},[24,981,726],{},[65,983,984],{},"What a re-read config changes in a running process.",[51,986,987,992],{},[65,988,989],{},[24,990,991],{},"isChange",[65,993],{},[51,995,996,1001],{},[65,997,998],{},[24,999,1000],{},"Turns",[65,1002,1003],{},"Writes on one key, one after the other: a row lock for a store that has none.",[51,1005,1006,1011],{},[65,1007,1008],{},[24,1009,1010],{},"Storage",[65,1012,1013,1014,469],{},"A storage standing in front of another: the base a wrapper extends, forwarding what it does not override. Ex: ",[24,1015,1016],{},"class Audit extends Storage { constructor(private inner: Storage) { super(inner); } }",[51,1018,1019,1024],{},[65,1020,1021],{},[24,1022,1023],{},"togetherKeyOf",[65,1025,1026,1027,574,1030,469],{},"The container key of a frame, spelled as the type is written. Ex: ",[24,1028,1029],{},"[['Account', 'Ledger']]",[24,1031,1032],{},"Together\u003C[Account, Ledger]>",[51,1034,1035,1040],{},[65,1036,1037],{},[24,1038,1039],{},"hasForeignKey",[65,1041,1042],{},"Whether one source holds both rows and keeps the relation between them as a foreign key.",[51,1044,1045,1050],{},[65,1046,1047],{},[24,1048,1049],{},"sourceViewOf",[65,1051,1052,1053,1056],{},"What a source holds of these fronds — every entity, or the ones ",[24,1054,1055],{},"holds"," keeps and the rest named.",[51,1058,1059,1064],{},[65,1060,1061],{},[24,1062,1063],{},"Sources",[65,1065],{},[51,1067,1068,1073],{},[65,1069,1070],{},[24,1071,1072],{},"Transports",[65,1074],{},[51,1076,1077,1082],{},[65,1078,1079],{},[24,1080,1081],{},"storageOver",[65,1083],{},[51,1085,1086,1091],{},[65,1087,1088],{},[24,1089,1090],{},"BootRefusal",[65,1092,1093],{},"A boot stopped by what it was handed rather than by a bug; a host shows it without a stack.",[51,1095,1096,1101],{},[65,1097,1098],{},[24,1099,1100],{},"FougereValue",[65,1102,1103],{},"Where a source that holds rows keeps a value: one row per entity, keyed by its name.",[51,1105,1106,1111],{},[65,1107,1108],{},[24,1109,1110],{},"FOUGERE_VALUE",[65,1112],{},[51,1114,1115,1120],{},[65,1116,1117],{},[24,1118,1119],{},"FougereTarget",[65,1121,1122,1123,1126,1127,1130],{},"A row another source holds, as the source naming it marks it: ",[24,1124,1125],{},"live"," while writes name it, ",[24,1128,1129],{},"gone"," once its release began.",[51,1132,1133,1138],{},[65,1134,1135],{},[24,1136,1137],{},"FOUGERE_TARGET",[65,1139],{},[51,1141,1142,1147],{},[65,1143,1144],{},[24,1145,1146],{},"markOf",[65,1148,1149,1150,469],{},"The id a target's mark is kept under — ",[24,1151,1152],{},"user#ada",[51,1154,1155,1160],{},[65,1156,1157],{},[24,1158,1159],{},"Env",[65,1161],{},[51,1163,1164,1169],{},[65,1165,1166],{},[24,1167,1168],{},"valuing",[65,1170,1171],{},"Reads, completes, judges and registers each value in its frond's scope.",[51,1173,1174,1179],{},[65,1175,1176],{},[24,1177,1178],{},"DEFAULT_CONVENTIONS",[65,1180],{},[51,1182,1183,1188],{},[65,1184,1185],{},[24,1186,1187],{},"frondDirsOf",[65,1189,1190],{},"The frond vocabulary — every directory the scan reads.",[51,1192,1193,1198],{},[65,1194,1195],{},[24,1196,1197],{},"frondPackage",[65,1199,1200],{},"The package name a frond answers to.",[51,1202,1203,1208],{},[65,1204,1205],{},[24,1206,1207],{},"resolveConventions",[65,1209,1210],{},"The convention, with a project's exceptions folded in.",[51,1212,1213,1218],{},[65,1214,1215],{},[24,1216,1217],{},"isScanned",[65,1219,1220,1221,469],{},"Whether the frond was read from this project's sources, rather than written with ",[24,1222,1223],{},"frond()",[51,1225,1226,1231],{},[65,1227,1228],{},[24,1229,1230],{},"AUTH",[65,1232],{},[51,1234,1235,1240],{},[65,1236,1237],{},[24,1238,1239],{},"Fronds",[65,1241,1242],{},"What this app hosts, with the questions everyone was asking it by hand.",[51,1244,1245,1250],{},[65,1246,1247],{},[24,1248,1249],{},"verify",[65,1251,1252],{},"Whether this app survives being split into processes.",[51,1254,1255,1260],{},[65,1256,1257],{},[24,1258,1259],{},"signEnvelope",[65,1261,1262],{},"Sign one call, whole.",[51,1264,1265,1270],{},[65,1266,1267],{},[24,1268,1269],{},"verifyEnvelope",[65,1271,1272],{},"Establish the caller, or throw.",[51,1274,1275,1280],{},[65,1276,1277],{},[24,1278,1279],{},"identityFromEnv",[65,1281,1282],{},"What the deployment injected, read once at boot.",[40,1284,1286],{"id":1285},"types","Types",[17,1288,1289,1290,1293],{},"TypeScript types only — they do not run. Import them with ",[24,1291,1292],{},"import type"," to type your own code: a variable, a parameter, an option object.",[45,1295,1296,1304],{},[48,1297,1298],{},[51,1299,1300,1302],{},[54,1301,56],{},[54,1303],{},[60,1305,1306,1316,1326,1336,1345,1354,1363,1372,1386,1399,1409,1429,1439,1449,1459,1469,1483,1493,1502,1515,1525,1542,1552,1561,1570,1580,1596,1605,1614,1624,1637,1647,1656,1669,1682,1692,1702,1716,1725,1740,1750,1760,1777,1787,1797,1807,1817,1827,1837,1847,1857,1867,1877,1886,1896,1906,1916,1925,1934,1943,1952,1962,1972,1982,1992,2002,2012,2022,2032,2042,2052,2070,2080,2090,2100,2110,2120,2130,2140,2150,2163,2173,2183,2193,2203,2213,2227,2237,2247,2257,2275,2285,2294,2308,2318,2330,2340,2350,2360,2374,2384,2394,2411,2420,2430,2440,2450,2460,2470,2480,2493,2502,2515,2525,2534,2543,2553,2563,2573,2583,2597,2607,2617,2627,2637,2647,2657],{},[51,1307,1308,1313],{},[65,1309,1310],{},[24,1311,1312],{},"Extension",[65,1314,1315],{},"One process-level extension and its lifecycle.",[51,1317,1318,1323],{},[65,1319,1320],{},[24,1321,1322],{},"ProtocolConfig",[65,1324,1325],{},"The protocols this app serves — a key per protocol, its options as the adapter states them.",[51,1327,1328,1333],{},[65,1329,1330],{},[24,1331,1332],{},"ProtocolType",[65,1334,1335],{},"A protocol an adapter serves: what its entry admits. A host reads the rest by name.",[51,1337,1338,1343],{},[65,1339,1340],{},[24,1341,1342],{},"FougereProtocols",[65,1344],{},[51,1346,1347,1352],{},[65,1348,1349],{},[24,1350,1351],{},"FougereOperationProtocols",[65,1353],{},[51,1355,1356,1361],{},[65,1357,1358],{},[24,1359,1360],{},"FougereFrondProtocols",[65,1362],{},[51,1364,1365,1370],{},[65,1366,1367],{},[24,1368,1369],{},"FougereConfig",[65,1371],{},[51,1373,1374,1379],{},[65,1375,1376],{},[24,1377,1378],{},"ServerConfig",[65,1380,1381,1382,1385],{},"What stands around the requests ",[24,1383,1384],{},"fougere serve"," answers beside its envelope, outside in.",[51,1387,1388,1393],{},[65,1389,1390],{},[24,1391,1392],{},"ServerMiddleware",[65,1394,1395,1396,469],{},"A middleware in srvx's shape. Ex: ",[24,1397,1398],{},"cors()",[51,1400,1401,1406],{},[65,1402,1403],{},[24,1404,1405],{},"FrondEntries",[65,1407,1408],{},"What the config says about the fronds this app is made of.",[51,1410,1411,1416],{},[65,1412,1413],{},[24,1414,1415],{},"FrondEntry",[65,1417,1418,1419,259,1422,1425,1426,469],{},"An entry: ",[24,1420,1421],{},"{ remote }",[24,1423,1424],{},"{ options }",", or the frond itself. Ex: ",[24,1427,1428],{},"auth: betterAuth({ … })",[51,1430,1431,1436],{},[65,1432,1433],{},[24,1434,1435],{},"KeyedFrondEntry",[65,1437,1438],{},"One entry of the config, read whole.",[51,1440,1441,1446],{},[65,1442,1443],{},[24,1444,1445],{},"AnswerFor",[65,1447,1448],{},"What may answer a port — its own realizations, or any class name where nothing was generated.",[51,1450,1451,1456],{},[65,1452,1453],{},[24,1454,1455],{},"FougereNames",[65,1457,1458],{},"The names the scan found, per kind. Augmented from the generated file, empty otherwise.",[51,1460,1461,1466],{},[65,1462,1463],{},[24,1464,1465],{},"FougerePorts",[65,1467,1468],{},"Each port, and the classes that extend it.",[51,1470,1471,1476],{},[65,1472,1473],{},[24,1474,1475],{},"NameOf",[65,1477,1478,1479,1482],{},"One kind's union of names, or ",[24,1480,1481],{},"string"," where nothing was generated.",[51,1484,1485,1490],{},[65,1486,1487],{},[24,1488,1489],{},"PortChoice",[65,1491,1492],{},"The ports of this app, each mapped to what may answer it.",[51,1494,1495,1500],{},[65,1496,1497],{},[24,1498,1499],{},"FrondConfig",[65,1501],{},[51,1503,1504,1509],{},[65,1505,1506],{},[24,1507,1508],{},"DeclaredOperation",[65,1510,1511,1512,469],{},"An operation written by hand: what TypeScript erases of its method. Ex: ",[24,1513,1514],{},"publish: { params: { id: [Post, 'id'] }, output: Post }",[51,1516,1517,1522],{},[65,1518,1519],{},[24,1520,1521],{},"DeclaredParam",[65,1523,1524],{},"A parameter, required unless it says otherwise.",[51,1526,1527,1532],{},[65,1528,1529],{},[24,1530,1531],{},"DeclaredType",[65,1533,1534,1535,1538,1539,1541],{},"What a parameter is — a schema, a field of an entity (",[24,1536,1537],{},"[Post, 'id']","), a primitive, or ",[24,1540,458],{},", the caller's kept state.",[51,1543,1544,1549],{},[65,1545,1546],{},[24,1547,1548],{},"OperationOverride",[65,1550,1551],{},"Per-operation override.",[51,1553,1554,1559],{},[65,1555,1556],{},[24,1557,1558],{},"DomainCluster",[65,1560],{},[51,1562,1563,1568],{},[65,1564,1565],{},[24,1566,1567],{},"EntityNode",[65,1569],{},[51,1571,1572,1577],{},[65,1573,1574],{},[24,1575,1576],{},"Refreshed",[65,1578,1579],{},"What one refresh did — enough to log it, and to decide whether to run again.",[51,1581,1582,1587],{},[65,1583,1584],{},[24,1585,1586],{},"PresenterViews",[65,1588,1589,1590,259,1593,469],{},"The view a computed field emits, one or many. Ex: ",[24,1591,1592],{},"OrderItemView",[24,1594,1595],{},"[OrderItemView]",[51,1597,1598,1603],{},[65,1599,1600],{},[24,1601,1602],{},"InvocationContext",[65,1604],{},[51,1606,1607,1612],{},[65,1608,1609],{},[24,1610,1611],{},"PartialInvocation",[65,1613],{},[51,1615,1616,1621],{},[65,1617,1618],{},[24,1619,1620],{},"Releasing",[65,1622,1623],{},"What the guard hands a release: who depends on an entity, and how to reach their rows.",[51,1625,1626,1631],{},[65,1627,1628],{},[24,1629,1630],{},"Dependent",[65,1632,1633,1634,1636],{},"A ",[24,1635,85],{}," read from the TARGET's side: rows that name it, and what becomes of them.",[51,1638,1639,1644],{},[65,1640,1641],{},[24,1642,1643],{},"Journal",[65,1645,1646],{},"What writes a release down while it happens, so a sweep can finish what a stopped process began.",[51,1648,1649,1654],{},[65,1650,1651],{},[24,1652,1653],{},"DoorStage",[65,1655],{},[51,1657,1658,1663],{},[65,1659,1660],{},[24,1661,1662],{},"DeclaredState",[65,1664,1665,1666,1668],{},"One name of ",[24,1667,464],{},", its keeper resolved and what it is told judged.",[51,1670,1671,1676],{},[65,1672,1673],{},[24,1674,1675],{},"KeeperEntry",[65,1677,1678,1679,1681],{},"One name a keeper keeps, and what ",[24,1680,464],{}," told it.",[51,1683,1684,1689],{},[65,1685,1686],{},[24,1687,1688],{},"StateKeeper",[65,1690,1691],{},"A way to keep a caller's state between two requests, handed every name it keeps at once. Ex: a cookie, a session.",[51,1693,1694,1699],{},[65,1695,1696],{},[24,1697,1698],{},"StorageFor",[65,1700,1701],{},"Where a keeper reaches the rows of the fronds it brought.",[51,1703,1704,1709],{},[65,1705,1706],{},[24,1707,1708],{},"WrittenName",[65,1710,1711,1712,1715],{},"A name the request's calls wrote, signed — ",[24,1713,1714],{},"undefined"," forgets it.",[51,1717,1718,1723],{},[65,1719,1720],{},[24,1721,1722],{},"FougereStates",[65,1724],{},[51,1726,1727,1732],{},[65,1728,1729],{},[24,1730,1731],{},"StateEntry",[65,1733,1665,1734,1736,1737,469],{},[24,1735,464],{}," — kept one way, with what that way is told: ",[24,1738,1739],{},"{ cookie: { maxAge: '7d' } }",[51,1741,1742,1747],{},[65,1743,1744],{},[24,1745,1746],{},"Ambient",[65,1748,1749],{},"What runs now, carried without being handed along; each package keeps its own slot.",[51,1751,1752,1757],{},[65,1753,1754],{},[24,1755,1756],{},"Slot",[65,1758,1759],{},"One value carried across awaits — what the code running now is inside of.",[51,1761,1762,1767],{},[65,1763,1764],{},[24,1765,1766],{},"Answering",[65,1768,1769,1770,1773,1774,1776],{},"Running one request through a door — ",[24,1771,1772],{},"app.answer",", or ",[24,1775,504],{}," for a host holding no app.",[51,1778,1779,1784],{},[65,1780,1781],{},[24,1782,1783],{},"Door",[65,1785,1786],{},"A way in, as the package that brings it writes it.",[51,1788,1789,1794],{},[65,1790,1791],{},[24,1792,1793],{},"DoorCycle",[65,1795,1796],{},"What the cycle needs of the app: where a request is entered, who watches it, who stands around it.",[51,1798,1799,1804],{},[65,1800,1801],{},[24,1802,1803],{},"DoorOutcome",[65,1805,1806],{},"What a door's calls answered, or the refusal it is to say instead — already fit for its caller.",[51,1808,1809,1814],{},[65,1810,1811],{},[24,1812,1813],{},"CallPage",[65,1815,1816],{},"One page of the ring.",[51,1818,1819,1824],{},[65,1820,1821],{},[24,1822,1823],{},"CallRecord",[65,1825,1826],{},"What crosses the facade.",[51,1828,1829,1834],{},[65,1830,1831],{},[24,1832,1833],{},"CardDrift",[65,1835,1836],{},"What separates the copy a consumer holds from what the producer actually serves.",[51,1838,1839,1844],{},[65,1840,1841],{},[24,1842,1843],{},"OperationContract",[65,1845,1846],{},"The contract of one operation — everything the façade needs to serve a call.",[51,1848,1849,1854],{},[65,1850,1851],{},[24,1852,1853],{},"OperationsMap",[65,1855,1856],{},"Map of operation name → its contract.",[51,1858,1859,1864],{},[65,1860,1861],{},[24,1862,1863],{},"Param",[65,1865,1866],{},"One parameter of a signature.",[51,1868,1869,1874],{},[65,1870,1871],{},[24,1872,1873],{},"TypeRef",[65,1875,1876],{},"A type reference — primitives, entities, arrays, generics.",[51,1878,1879,1884],{},[65,1880,1881],{},[24,1882,1883],{},"EffectiveOperation",[65,1885],{},[51,1887,1888,1893],{},[65,1889,1890],{},[24,1891,1892],{},"ModuleLoader",[65,1894,1895],{},"Module loader — can be swapped (e.g.",[51,1897,1898,1903],{},[65,1899,1900],{},[24,1901,1902],{},"AppMiddleware",[65,1904,1905],{},"A middleware answers what the chain answered: the same type, whatever it does with the value.",[51,1907,1908,1913],{},[65,1909,1910],{},[24,1911,1912],{},"AppNext",[65,1914,1915],{},"What a middleware holds: the rest of the chain, and the answer it will hand back.",[51,1917,1918,1923],{},[65,1919,1920],{},[24,1921,1922],{},"OperationContext",[65,1924],{},[51,1926,1927,1932],{},[65,1928,1929],{},[24,1930,1931],{},"OperationKind",[65,1933],{},[51,1935,1936,1941],{},[65,1937,1938],{},[24,1939,1940],{},"Cardinality",[65,1942],{},[51,1944,1945,1950],{},[65,1946,1947],{},[24,1948,1949],{},"Placement",[65,1951],{},[51,1953,1954,1959],{},[65,1955,1956],{},[24,1957,1958],{},"Declared",[65,1960,1961],{},"A class on its own — a port, which is abstract, included — or a class with what it asks for.",[51,1963,1964,1969],{},[65,1965,1966],{},[24,1967,1968],{},"DeclaredSubject",[65,1970,1971],{},"What a subject needs beyond its class, when its constructor names a frame or a port.",[51,1973,1974,1979],{},[65,1975,1976],{},[24,1977,1978],{},"FrondDeclaration",[65,1980,1981],{},"What a declaration states about one frond. Everything else is derived from the classes.",[51,1983,1984,1989],{},[65,1985,1986],{},[24,1987,1988],{},"Refusable",[65,1990,1991],{},"The little of an operation this reads — so a card op and an effective one both fit.",[51,1993,1994,1999],{},[65,1995,1996],{},[24,1997,1998],{},"Binding",[65,2000,2001],{},"One argument's source, as the plan states it.",[51,2003,2004,2009],{},[65,2005,2006],{},[24,2007,2008],{},"Addresses",[65,2010,2011],{},"The addresses this app answers at, or any string until a scan has said otherwise.",[51,2013,2014,2019],{},[65,2015,2016],{},[24,2017,2018],{},"Answer",[65,2020,2021],{},"What one operation of a handler answers, unwrapped; a storage's list reads as a page.",[51,2023,2024,2029],{},[65,2025,2026],{},[24,2027,2028],{},"AnyHandler",[65,2030,2031],{},"A facade whose operations no type describes — an ungenerated project's, and a form's.",[51,2033,2034,2039],{},[65,2035,2036],{},[24,2037,2038],{},"FacadeName",[65,2040,2041],{},"One facade: its address, as a literal, and the handler that answers there.",[51,2043,2044,2049],{},[65,2045,2046],{},[24,2047,2048],{},"FougereHandlers",[65,2050,2051],{},"The handler behind each address, as the scan writes it.",[51,2053,2054,2059],{},[65,2055,2056],{},[24,2057,2058],{},"FougereOperations",[65,2060,2061,2062,2065,2066,2069],{},"What one facade answers for, keyed ",[24,2063,2064],{},"address.op"," — ",[24,2067,2068],{},"surface:address.op"," for a named surface.",[51,2071,2072,2077],{},[65,2073,2074],{},[24,2075,2076],{},"HandlerOf",[65,2078,2079],{},"The handler that answers at one address, or any facade when nothing was generated.",[51,2081,2082,2087],{},[65,2083,2084],{},[24,2085,2086],{},"Refused",[65,2088,2089],{},"What one call can come back refusing, the frond's codes and the framework's.",[51,2091,2092,2097],{},[65,2093,2094],{},[24,2095,2096],{},"Rows",[65,2098,2099],{},"The row inside what an operation answers: a list, a page or a single row.",[51,2101,2102,2107],{},[65,2103,2104],{},[24,2105,2106],{},"Facade",[65,2108,2109],{},"The facade in front of a handler: it takes what the handler takes, and always answers a promise.",[51,2111,2112,2117],{},[65,2113,2114],{},[24,2115,2116],{},"FrondCall",[65,2118,2119],{},"Target of a call — which façade operation, wherever it lives.",[51,2121,2122,2127],{},[65,2123,2124],{},[24,2125,2126],{},"Transport",[65,2128,2129],{},"A transport executes a call somewhere else. Failures surface as thrown FougereError.",[51,2131,2132,2137],{},[65,2133,2134],{},[24,2135,2136],{},"IdentityCard",[65,2138,2139],{},"What an app hosts — the wire projection of its scanned fronds.",[51,2141,2142,2147],{},[65,2143,2144],{},[24,2145,2146],{},"CardOp",[65,2148,2149],{},"One operation, as a caller from another process meets it.",[51,2151,2152,2157],{},[65,2153,2154],{},[24,2155,2156],{},"TopologyReport",[65,2158,2159,2160,469],{},"The shape of the system as ONE process discovered it — the answer to ",[24,2161,2162],{},"rpc.topology",[51,2164,2165,2170],{},[65,2166,2167],{},[24,2168,2169],{},"FrondPlacement",[65,2171,2172],{},"A frond this process knows about, and whether it runs here.",[51,2174,2175,2180],{},[65,2176,2177],{},[24,2178,2179],{},"Edge",[65,2181,2182],{},"One frond calling another — an edge of the graph, counted where the call was made.",[51,2184,2185,2190],{},[65,2186,2187],{},[24,2188,2189],{},"DeclaredTopology",[65,2191,2192],{},"What the config says, beside what the runtime saw.",[51,2194,2195,2200],{},[65,2196,2197],{},[24,2198,2199],{},"DeclaredFrond",[65,2201,2202],{},"A frond the config knows of, and where it says to reach it.",[51,2204,2205,2210],{},[65,2206,2207],{},[24,2208,2209],{},"DeclaredEdge",[65,2211,2212],{},"One frond reaching another, read from a handler's dependencies rather than from a call.",[51,2214,2215,2220],{},[65,2216,2217],{},[24,2218,2219],{},"Emit",[65,2221,2222,2223,2226],{},"What an emitter injects; partial, because announcing fills the fact's ",[24,2224,2225],{},"created()"," fields.",[51,2228,2229,2234],{},[65,2230,2231],{},[24,2232,2233],{},"Fact",[65,2235,2236],{},"What a subscriber accepts; what it answers reaches only an announcer that waits.",[51,2238,2239,2244],{},[65,2240,2241],{},[24,2242,2243],{},"Pipe",[65,2245,2246],{},"The same fact before it is final: an op taking one answers what every subscriber then receives.",[51,2248,2249,2254],{},[65,2250,2251],{},[24,2252,2253],{},"LogRecord",[65,2255,2256],{},"One line, before it was formatted for a terminal.",[51,2258,2259,2264],{},[65,2260,2261],{},[24,2262,2263],{},"LogSink",[65,2265,2266,2267,2270,2271,2274],{},"Where a line goes once it is written — ",[24,2268,2269],{},"@fougere\u002Flog"," ships one, ",[24,2272,2273],{},"observability"," another.",[51,2276,2277,2282],{},[65,2278,2279],{},[24,2280,2281],{},"Rendered",[65,2283,2284],{},"One line, ready for a terminal: the console arguments and the method that takes them.",[51,2286,2287,2292],{},[65,2288,2289],{},[24,2290,2291],{},"ListOptions",[65,2293],{},[51,2295,2296,2301],{},[65,2297,2298],{},[24,2299,2300],{},"ListResult",[65,2302,2303,2304,2307],{},"What ",[24,2305,2306],{},"list()"," answers: an array carrying what the storage said about the rest of the rows.",[51,2309,2310,2315],{},[65,2311,2312],{},[24,2313,2314],{},"StorageFactory",[65,2316,2317],{},"Builds the storage of one entity; called by the boot for each.",[51,2319,2320,2325],{},[65,2321,2322],{},[24,2323,2324],{},"Together",[65,2326,2327,2329],{},[24,2328,1032],{}," — writes that stand or fall as one.",[51,2331,2332,2337],{},[65,2333,2334],{},[24,2335,2336],{},"Change",[65,2338,2339],{},"A row computed from the one it replaces, while no other write reaches that row.",[51,2341,2342,2347],{},[65,2343,2344],{},[24,2345,2346],{},"Constraint",[65,2348,2349],{},"A promise the judge at the facade cannot keep, because it is about rows it never sees.",[51,2351,2352,2357],{},[65,2353,2354],{},[24,2355,2356],{},"Source",[65,2358,2359],{},"A place rows live, whatever realizes it.",[51,2361,2362,2367],{},[65,2363,2364],{},[24,2365,2366],{},"SourceConfig",[65,2368,2369,2370,2373],{},"One entry of ",[24,2371,2372],{},"sources:"," — what its type admits, and the entities it holds.",[51,2375,2376,2381],{},[65,2377,2378],{},[24,2379,2380],{},"SourceView",[65,2382,2383],{},"The app as ONE source sees it: the entities it holds, by the name the scan wrote down.",[51,2385,2386,2391],{},[65,2387,2388],{},[24,2389,2390],{},"SourceType",[65,2392,2393],{},"A source type: what its entry admits, and how a place is opened from one.",[51,2395,2396,2401],{},[65,2397,2398],{},[24,2399,2400],{},"TransportType",[65,2402,2403,2404,2407,2408,469],{},"What carries a call to an address whose scheme names it. Ex: ",[24,2405,2406],{},"http"," for ",[24,2409,2410],{},"remote: 'http:\u002F\u002F…'",[51,2412,2413,2418],{},[65,2414,2415],{},[24,2416,2417],{},"FougereSources",[65,2419],{},[51,2421,2422,2427],{},[65,2423,2424],{},[24,2425,2426],{},"Store",[65,2428,2429],{},"Instances addressed by key — what an adapter supplies, and all of it.",[51,2431,2432,2437],{},[65,2433,2434],{},[24,2435,2436],{},"Values",[65,2438,2439],{},"One instance, as every realization hands it over.",[51,2441,2442,2447],{},[65,2443,2444],{},[24,2445,2446],{},"App",[65,2448,2449],{},"The App object returned by createApp().",[51,2451,2452,2457],{},[65,2453,2454],{},[24,2455,2456],{},"CreateAppOptions",[65,2458,2459],{},"Options for createApp().",[51,2461,2462,2467],{},[65,2463,2464],{},[24,2465,2466],{},"ScanResult",[65,2468,2469],{},"Result of scanning a project directory.",[51,2471,2472,2477],{},[65,2473,2474],{},[24,2475,2476],{},"Diagnostic",[65,2478,2479],{},"One thing that does not hold, in the terms of whoever has to fix it.",[51,2481,2482,2487],{},[65,2483,2484],{},[24,2485,2486],{},"ValueSources",[65,2488,2489,2490,2492],{},"The entities ",[24,2491,2372],{}," holds as one value each.",[51,2494,2495,2500],{},[65,2496,2497],{},[24,2498,2499],{},"Conventions",[65,2501],{},[51,2503,2504,2509],{},[65,2505,2506],{},[24,2507,2508],{},"ConventionsInput",[65,2510,2511,2512,2514],{},"What a ",[24,2513,149],{}," may state: only the names that differ.",[51,2516,2517,2522],{},[65,2518,2519],{},[24,2520,2521],{},"CollectorEntry",[65,2523,2524],{},"A discovered collector (resolves handler input params from invocation context).",[51,2526,2527,2532],{},[65,2528,2529],{},[24,2530,2531],{},"EntityEntry",[65,2533],{},[51,2535,2536,2541],{},[65,2537,2538],{},[24,2539,2540],{},"FrondDescriptor",[65,2542],{},[51,2544,2545,2550],{},[65,2546,2547],{},[24,2548,2549],{},"FrondSource",[65,2551,2552],{},"Where a frond lives on disk.",[51,2554,2555,2560],{},[65,2556,2557],{},[24,2558,2559],{},"HandlerEntry",[65,2561,2562],{},"A discovered handler (controls what a service exposes).",[51,2564,2565,2570],{},[65,2566,2567],{},[24,2568,2569],{},"PresenterEntry",[65,2571,2572],{},"A discovered presenter (computed fields for an entity's output).",[51,2574,2575,2580],{},[65,2576,2577],{},[24,2578,2579],{},"PresenterFieldMeta",[65,2581,2582],{},"Return type metadata for a presenter computed field.",[51,2584,2585,2590],{},[65,2586,2587],{},[24,2588,2589],{},"ProviderEntry",[65,2591,2592,2593,2596],{},"A class of ",[24,2594,2595],{},"services\u002F",", injected by type.",[51,2598,2599,2604],{},[65,2600,2601],{},[24,2602,2603],{},"SeedEntry",[65,2605,2606],{},"A discovered seed file (array of records or async factory).",[51,2608,2609,2614],{},[65,2610,2611],{},[24,2612,2613],{},"AuthRuntime",[65,2615,2616],{},"What an auth extension registers under {@link AUTH} once it has risen.",[51,2618,2619,2624],{},[65,2620,2621],{},[24,2622,2623],{},"Misplaced",[65,2625,2626],{},"A subject declared in one frond and reached from another — the rules below find no other kind.",[51,2628,2629,2634],{},[65,2630,2631],{},[24,2632,2633],{},"CallIdentity",[65,2635,2636],{},"The two halves a boot needs, and the environment they come from.",[51,2638,2639,2644],{},[65,2640,2641],{},[24,2642,2643],{},"FrondIdentity",[65,2645,2646],{},"What a deployment hands a frond that CALLS: its own key, and the root's word for it.",[51,2648,2649,2654],{},[65,2650,2651],{},[24,2652,2653],{},"SignedCall",[65,2655,2656],{},"Everything a caller's envelope covers — the call as the sender meant it.",[51,2658,2659,2664],{},[65,2660,2661],{},[24,2662,2663],{},"Plugged",[65,2665,2666],{},"What answers one extension point in this app, as a report.",{"title":2668,"searchDepth":2669,"depth":2669,"links":2670},"",2,[2671,2672],{"id":42,"depth":2669,"text":43},{"id":1285,"depth":2669,"text":1286},"md",null,{},true,"\u002Freference\u002Fpackages\u002Fcore",{"title":8,"description":19},"reference\u002Fpackages\u002Fcore","K9dcP8Hgd546ioIzGfBhCiRFcE99worso6bD1Ri_F0o",[2682,2687,2692,2696,2701,2706,2710,2715,2720,2725,2730,2735,2740,2745,2750,2755,2760,2765,2770,2775,2780,2785,2790,2795,2800,2805,2806,2811,2816,2821,2826,2830,2835,2840,2845,2850,2855,2860,2865,2870,2875,2880,2885,2890,2895],{"path":2683,"title":2684,"description":2685,"stem":2686},"\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":2688,"title":2689,"description":2690,"stem":2691},"\u002Freference\u002Ferrors","Error codes","Every code an operation can refuse with, and its HTTP status.","reference\u002F02.errors",{"path":2693,"title":149,"description":2694,"stem":2695},"\u002Freference\u002Fconfig","Every key the app config admits, and which package answers each one.","reference\u002F03.config",{"path":2697,"title":2698,"description":2699,"stem":2700},"\u002Freference\u002Ffrond-config","frond.config.ts","Every key a frond's own config admits.","reference\u002F04.frond-config",{"path":2702,"title":2703,"description":2704,"stem":2705},"\u002Freference\u002Fsources","Source types","Every type an entry of sources: may name, and the keys it admits.","reference\u002F05.sources",{"path":2707,"title":157,"description":2708,"stem":2709},"\u002Freference\u002Fprotocols","What protocols: may serve, and what each admits.","reference\u002F06.protocols",{"path":2711,"title":2712,"description":2713,"stem":2714},"\u002Freference\u002Fstates","State keepers","How state: may keep a caller's values.","reference\u002F07.states",{"path":2716,"title":2717,"description":2718,"stem":2719},"\u002Freference\u002Fforms","Forms","The types a frond is written with — each one read by the scan.","reference\u002F08.forms",{"path":2721,"title":2722,"description":2723,"stem":2724},"\u002Freference\u002Fports","Ports Fougere opens","The classes you stand in front of, or extend, to change what the framework does.","reference\u002F09.ports",{"path":2726,"title":2727,"description":2728,"stem":2729},"\u002Freference\u002Finterfaces","Interfaces to extend","The empty interfaces a package augments with declare module, and who augments each.","reference\u002F10.interfaces",{"path":2731,"title":2732,"description":2733,"stem":2734},"\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":2736,"title":2737,"description":2738,"stem":2739},"\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":2741,"title":2742,"description":2743,"stem":2744},"\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":2746,"title":2747,"description":2748,"stem":2749},"\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":2751,"title":2752,"description":2753,"stem":2754},"\u002Freference\u002Fpackages\u002Fadapter-graphql","@fougere\u002Fadapter-graphql","Entity → GraphQL types, inputs and CRUD, through Pothos.","reference\u002Fpackages\u002Fadapter-graphql",{"path":2756,"title":2757,"description":2758,"stem":2759},"\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":2761,"title":2762,"description":2763,"stem":2764},"\u002Freference\u002Fpackages\u002Fadapter-rest","@fougere\u002Fadapter-rest","Entity → REST routes.","reference\u002Fpackages\u002Fadapter-rest",{"path":2766,"title":2767,"description":2768,"stem":2769},"\u002Freference\u002Fpackages\u002Fadapter-sql","@fougere\u002Fadapter-sql","Entity → SQL tables through Kysely (SQLite, PostgreSQL, MySQL, SQL Server).","reference\u002Fpackages\u002Fadapter-sql",{"path":2771,"title":2772,"description":2773,"stem":2774},"\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":2776,"title":2777,"description":2778,"stem":2779},"\u002Freference\u002Fpackages\u002Fapp","@fougere\u002Fapp","The host-independent half of a Fougere app: boot, call envelope, REST table, form contract.","reference\u002Fpackages\u002Fapp",{"path":2781,"title":2782,"description":2783,"stem":2784},"\u002Freference\u002Fpackages\u002Fauth-better","@fougere\u002Fauth-better","Fougere's auth — a translation layer onto better-auth.","reference\u002Fpackages\u002Fauth-better",{"path":2786,"title":2787,"description":2788,"stem":2789},"\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":2791,"title":2792,"description":2793,"stem":2794},"\u002Freference\u002Fpackages\u002Fcli","@fougere\u002Fcli","The Fougere CLI — compose a workspace, serve a frond, call an operation.","reference\u002Fpackages\u002Fcli",{"path":2796,"title":2797,"description":2798,"stem":2799},"\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":2801,"title":2802,"description":2803,"stem":2804},"\u002Freference\u002Fpackages\u002Fcontainer","@fougere\u002Fcontainer","Fougere's DI container: resolution by type, wired from the AST scan. Zero dependencies.","reference\u002Fpackages\u002Fcontainer",{"path":2677,"title":8,"description":19,"stem":2679},{"path":2807,"title":2808,"description":2809,"stem":2810},"\u002Freference\u002Fpackages\u002Fdecorators","@fougere\u002Fdecorators","Configuration sugar (@config) — declarative, never hidden runtime.","reference\u002Fpackages\u002Fdecorators",{"path":2812,"title":2813,"description":2814,"stem":2815},"\u002Freference\u002Fpackages\u002Fdefaults","@fougere\u002Fdefaults","The conventional boot of a Fougere app — the one place storage is wired.","reference\u002Fpackages\u002Fdefaults",{"path":2817,"title":2818,"description":2819,"stem":2820},"\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":2822,"title":2823,"description":2824,"stem":2825},"\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":2827,"title":2269,"description":2828,"stem":2829},"\u002Freference\u002Fpackages\u002Flog","Logging for Fougere: two lines for every call, in every process, and a file destination for the lines.","reference\u002Fpackages\u002Flog",{"path":2831,"title":2832,"description":2833,"stem":2834},"\u002Freference\u002Fpackages\u002Fnext","@fougere\u002Fnext","The Next.js adapter: mounting, and the one import that is genuinely Next.","reference\u002Fpackages\u002Fnext",{"path":2836,"title":2837,"description":2838,"stem":2839},"\u002Freference\u002Fpackages\u002Fnuxt","@fougere\u002Fnuxt","The Nuxt module: Fougere's client primitives and server surface.","reference\u002Fpackages\u002Fnuxt",{"path":2841,"title":2842,"description":2843,"stem":2844},"\u002Freference\u002Fpackages\u002Fobservability","@fougere\u002Fobservability","Optional observability for Fougere: one span per operation, W3C Trace Context across any transport.","reference\u002Fpackages\u002Fobservability",{"path":2846,"title":2847,"description":2848,"stem":2849},"\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":2851,"title":2852,"description":2853,"stem":2854},"\u002Freference\u002Fpackages\u002Freact","@fougere\u002Freact","Fougere's four primitives as React hooks — host-independent.","reference\u002Fpackages\u002Freact",{"path":2856,"title":2857,"description":2858,"stem":2859},"\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":2861,"title":2862,"description":2863,"stem":2864},"\u002Freference\u002Fpackages\u002Fschema","@fougere\u002Fschema","The entity and its 4 axes — shape, role, lifecycle, boundary. Subject-owned judgments, edge-safe.","reference\u002Fpackages\u002Fschema",{"path":2866,"title":2867,"description":2868,"stem":2869},"\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":2871,"title":2872,"description":2873,"stem":2874},"\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":2876,"title":2877,"description":2878,"stem":2879},"\u002Freference\u002Fpackages\u002Fsvelte","@fougere\u002Fsvelte","Fougere's four primitives as Svelte stores — host-independent.","reference\u002Fpackages\u002Fsvelte",{"path":2881,"title":2882,"description":2883,"stem":2884},"\u002Freference\u002Fpackages\u002Ftesting","@fougere\u002Ftesting","Tests derived from the declaration — cases, stubs and a gradient of realities.","reference\u002Fpackages\u002Ftesting",{"path":2886,"title":2887,"description":2888,"stem":2889},"\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":2891,"title":2892,"description":2893,"stem":2894},"\u002Freference\u002Fpackages\u002Fvite","@fougere\u002Fvite","The Vite plugin: what any Vite-built host must know to run a Fougere app.","reference\u002Fpackages\u002Fvite",{"path":2896,"title":2897,"description":2898,"stem":2899},"\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",1794396612936]