Boot and check diagnostics

What does not hold is named, with a code, the file to look at, and one sentence. A blocking one stops the boot; a warning is printed and the app starts. 62 codes, read off the code that raises them.

codewhat it saysraised by
aggregate-storage-reachedblocking… asks for …, but … belongs to …. Ask for that instead: constructor(private …: …) {}.@fougere/core
collector-in-another-frondwarning….… takes … from the request, but the frond '…' has a … collector that '…' cannot see. - To use that collector: move it into '…'. - To keep the request: declare it in …/frond.config.ts: operations: { '….…': { binding: [{@fougere/core
collector-unavailableblocking….… takes …: …, and no collector in the frond '…' provides one. Add a class extending Collect<…> in ….@fougere/core
constructor-arityblocking…'s constructor takes … parameter(s), but only … … typed (…). Type each parameter, or the others receive undefined.@fougere/core
cross-frond-dependencywarning… asks for …, which belongs to the frond '…', so '…' cannot see it. Move … into '…', or call '…' through its handler's facade.@fougere/core
crud-on-owned-entityblocking… extends Repository<…>, but … belongs to …. Drop it and ask for the owner: constructor(private …: …) {}.@fougere/core
dependency-cycleblocking…@fougere/core
dependency-unregisteredblocking… asks for …, and nothing in the frond '…' provides it. Add a class named … in …, or check the spelling.@fougere/core
directory-unreadableblockingThis directory could not be read, so what it declares is missing from the app.@fougere/compiler
door-link-unknown-opblocking….… names no operation of …, which serves …. Name the method after the operation it stands around.@fougere/core
emit-await-with-carrierblockingEmit<…, …> waits for answers, but this app sends facts through a carrier (onEmit), which brings no answer back. Give the subscribers' fronds an address in fronds:, or use Emit<…> without the second type.@fougere/core
entity-owned-twiceblocking… is in both … and …. Keep it in one.@fougere/core
facade-stalewarning@fronds/facade is older than the handlers, so pages are checked against old operations. Run fougere build.@fougere/cli
fact-contract-ambiguousblocking….… listens to …, and a parameter takes one fact. Write one method per fact.@fougere/compiler
frond-extends-chainblockingThe frond '…' extends '…', which extends '…'. A frond can extend only one level. Move what they share into the frond they both extend.@fougere/core
frond-family-splitblockingThe frond '…' extends '…', which this process leaves out. Run the two in the same process, or remove extends: '…'.@fougere/core
frond-holds-several-domainswarningThe frond '…' has … groups of entities with no relation between them (…). A ref() is missing, or they are separate fronds — see fougere graph.@fougere/cli
frond-key-takenblockingThe fronds '…' and '…' both have a … answering …, the other in …. Rename one, or leave one frond out of this process (only:).@fougere/core
frond-parent-entitiesblockingThe frond '…' is extended by …, so it cannot have entities (…). Move them into one of them, and import them from there: import X from '…/…/X.js'.@fougere/core
frond-parent-remoteblockingThe frond '…' is extended by …, so it cannot have an address (…). Give the address to one of them instead.@fougere/core
frond-parent-servesblockingThe frond '…' is extended by …, so it cannot have handlers (…). Move its handlers into one of them.@fougere/core
frond-unknownblockingNo frond is named '…'. This project has: ….@fougere/core
handler-of-another-frondblocking… asks for …, a handler of the frond '…'. A handler is handed only inside its own frond: from another one, ask for its facade — Facade<…> — which validates, runs the middlewares and crosses a process when the frond moves@fougere/core
handler-parse-failedblockingThis handler could not be parsed, so its operations are served without checking their input.@fougere/compiler
handler-unstatedwarning… is in the code of the frond '…' but not in fronds.ts, so the app starts without it.@fougere/cli
heritage-unresolvedwarningCannot read the class … this handler extends, so its operations are missing. List them in frond.config.ts under operations:.@fougere/compiler
input-contract-ambiguousblockingFougere cannot tell which parameter of … is its input: …. Declare it in frond.config.ts: operations: { '…': { input } }.@fougere/compiler
many-without-referenceblocking….… is many(…), but no field of … points back to …. Add one on …: ref(…).@fougere/core
on-delete-null-refusedblocking….… has onDelete: 'set null', but it cannot be null. Wrap it in optional(), or use onDelete: 'cascade'.@fougere/core
operation-binding-invalidblockingThe binding of ….… must name each parameter once. ……@fougere/core
operation-method-unresolvedblocking….… points to ….…, which does not exist.@fougere/core
operation-output-not-datablocking…() returns …, which has methods, and an operation returns plain data. Return an entity, or the plain values you need.@fougere/core
operation-override-unaddressedblocking—@fougere/core
operation-unboundblocking….… takes … parameter(s), and nothing says where each comes from. Give it a binding.@fougere/core
operation-unstatedwarning….… is public but not in fronds.ts, so the app starts without it. Add it: operations: { …: { params: { … }, output: … } }, or make the method private.@fougere/cli
operation-without-methodblocking….… is listed as an operation, but … has no method ….@fougere/core
output-contract-ambiguousblockingFougere cannot tell which view … answers through: …. Write one operation per type, or declare it in frond.config.ts: operations: { '…': { output } }.@fougere/compiler
parameter-binding-ambiguousblockingSeveral parameters of ….… could take the request body: …. Give it a binding that says which.@fougere/core
parameter-binding-unknownblockingFougere cannot tell where …: … of ….… comes from. Type it as an entity or a view of one, a primitive, a Fact<…>, or a type a collector of this frond provides.@fougere/core
pipes-not-ownedblockingThe frond '…' gives an order for …, but … is declared in another frond. Move pipes: to the frond.config.ts of that frond.@fougere/core
pipes-unlistedblocking… … …, but pipes: for … lists only …. Add … to pipes:, or make it take Fact<…> if it only reads.@fougere/core
pipes-unorderedblocking… … change …, in no set order. Give the order in frond.config.ts of the frond that owns …: pipes: { …: … }. Or, if only one of them changes it, make the others take Fact<…> instead.@fougere/core
port-implemented-not-extendedwarning…@fougere/compiler
port-implemented-twiceblocking… both extend …. Pick one in fougere.config.ts: ports: { …: '…' }.@fougere/core
port-key-takenblocking… answers … in every frond, so no class of the frond may be called that. Rename the class.@fougere/core
port-not-extendedblockingNo class … extends or implements …. These do: ….@fougere/core
port-wrapped-twiceblocking… both wrap …. Give the order in fougere.config.ts, outermost first: ports: { …: … }.@fougere/core
presenter-field-not-pageblocking…(…) is a computed field: it receives all the rows of a page and returns one value per row. Declare …(…: …) and return an array of the same length.@fougere/compiler
presenter-field-twiceblocking… and … both compute … for …. Keep it in one of them.@fougere/core
provider-name-takenblockingTwo classes are named …, here and in …. Rename one.@fougere/core
repository-twiceblocking… both extend the repository … answers, and one key has one answer. Keep one; the other may ask for it.@fougere/core
rows-as-valueblocking… asks for … as one value, and … is held as rows. Ask for its repository, or list '…' in the values: of a source.@fougere/core
seam-not-wrappedblocking… extends … but takes no …. To wrap it, take it: constructor(private inner: …). To keep rows somewhere new, register a source type instead (Sources.register).@fougere/core
source-missingblocking… lives in no source: every entry of sources: lists its rows, so none holds the rest. Add '…' to the rows: of one, or give one source no rows: list.@fougere/core
state-without-async-contextwarningstate: keeps what callers write, and this Worker has no nodejs_compat, so every state.set is refused. Add "nodejs_compat" to compatibility_flags.@fougere/cli
stated-binding-driftedwarningfrond.config.ts binds … on ….…, which has no such parameter (it has …). Fix the names in frond.config.ts.@fougere/core
storage-outside-repositoryblocking… asks for …. Ask for the repository instead: constructor(private …: Repository<…>) {}.@fougere/core
super-linear-patternwarninghas pattern: …, a nested repetition that can take seconds to check on some inputs and block the server. Rewrite the repeated group, or limit the field with max.@fougere/cli
table-contradictedblockingThe fronds '…' and '…' both declare ….…, differently. They are two views of one table, and one column has one shape: declare … the same way in both, or leave it out of one.@fougere/core
term-missingblocking….… uses the … '…', which is not defined. Export it from ….@fougere/core
unknown-adapterwarninghas adapters: { … }, but no installed adapter is named … (installed: …). Check the spelling, or add the dependency.@fougere/cli
value-as-rowsblocking… reaches … as rows, and … is held as one value. Ask for the value itself: constructor(private …: …) {}.@fougere/core
Built with Fougere and Nuxt, hosted on GitHub Pages.