OfferRef
Interface: OfferRef
Defined in: src/atom/types.ts:1384
THE NAME OF ONE SERVED ROW — stamped on every edge available() hands over,
so a fire can say which row it was planned against.
A CITATION, NOT A SECRET AND NOT A CAPABILITY. offerId is a session-local
counter ('offer#7'), it is handed to the model on the row it names, and
holding one authorizes nothing: every gate this library has — guard, payload,
disabled, materialisation, human approval — runs exactly as it did whether a
fire cites an offer or not. What the citation buys is a JOIN: the library can
compare what was true when the row was served against what is true now, which
is a comparison nobody could make while expectedVersion was a number the
caller typed in by hand. Treat it the way FireOptions.askId is treated
— a pointer to a row this session wrote, worthless to guess.
The four version fields are the anchor that comparison is made from, and they are what makes two rows the same offer or different ones.
Extended by
Properties
actionId
actionId:
string
Defined in: src/atom/types.ts:1388
The action this row was for.
node
node:
string
Defined in: src/atom/types.ts:1390
The page the cursor was on when it was served.
offerId
offerId:
string
Defined in: src/atom/types.ts:1386
This offer's id, unique within the session. Cite it as FireOptions.offerId.
stateVersion
stateVersion:
number
Defined in: src/atom/types.ts:1392
The app's state version at serve time — the anchor "what has moved since?" is asked from.
structureVersion
structureVersion:
number
Defined in: src/atom/types.ts:1394
The served-surface version at serve time (mounts, frames, enablement flips).