style: ASCII dans les lignes ecrites pour cette tache

This commit is contained in:
Sylvain Duchesne
2026-09-24 18:42:21 +02:00
parent b1b099b6c7
commit 71d94b2816
7 changed files with 10 additions and 10 deletions
+2 -2
View File
@@ -192,7 +192,7 @@ let sessionResolve!: (s: BrokerSession) => void;
const sessionReady = new Promise<BrokerSession>((r) => (sessionResolve = r));
// The injected `useShape`, so the lib's read-filtered view can be exercised WITHOUT a
// React tree. It is `test/use-shape-fake.ts` — the ONE fake in this repository that
// React tree. It is `test/use-shape-fake.ts` - the ONE fake in this repository that
// returns the shape `@ng-org/orm`'s hook really ships, read off the installed package's
// own `.d.ts`. This page used to carry a hand-written Set-like of its own, which is
// exactly why the capability filter could hand three members of that envelope back raw
@@ -1102,7 +1102,7 @@ const identity = new IdentityStore(
// the cap is proven on the read paths, not here.
setCurrentUser("stranger");
const strangerView = read();
// …and the SDK's own handle is refused outright, whoever asks: it reads and writes
// and the SDK's own handle is refused outright, whoever asks: it reads and writes
// with no capability filter at all.
let subscriptionRefused: string | null = null;
try {
+1 -1
View File
@@ -550,7 +550,7 @@ async function main(): Promise<void> {
);
// The three views above are read off `data`, one of the three members of the SDK's
// result envelope that carry the items. The fourth way in is the ORM's own handle,
// which reads and writes with no capability filter at all — so it is refused rather
// which reads and writes with no capability filter at all, so it is refused rather
// than handed on, and that refusal is checked here rather than assumed.
check(
"the read-filtered view refuses the ORM's own subscription handle",
@@ -188,13 +188,13 @@ function filteredDescriptor(
* Until 2026-09-24 that reasoning was applied to FUNCTION members alone: everything else
* was forwarded raw, on the recorded ground that "a plain property carries no items". That
* ground was never a property of the model, only of the object that happened to be wrapped
* — and the moment the wrapped object changed, three plain properties of it each carried
* and the moment the wrapped object changed, three plain properties of it each carried
* every identity's items ({@link makeReadFilteredShapeResult}). A boundary that is safe for
* the shape in front of it and unsafe for the next one is not a boundary either.
*
* So the default is {@link cannotReachAnItem}, which asks of the VALUE what no version
* number can change: a primitive cannot hold a reference to anything, so it cannot reach an
* item and passes untouched — `size`, `isLoading`, a count, a flag, a name. An object or a
* item and passes untouched - `size`, `isLoading`, a count, a flag, a name. An object or a
* function can, so it refuses unless this file has a filtered form of it. That is why
* nothing below names `isLoading`, and why a member nobody has seen yet is already decided:
* if it carries items it is an object or a function, and both refuse.
@@ -403,7 +403,7 @@ function filteredPromise(value: PromiseLike<unknown>, caps: CapRegistry): Promis
* and a wrapper of it would be a second published surface to keep honest. Refusing is
* loud, and what it refuses is the one member the contract already says is not published.
*/
// @provenance makeReadFilteredShapeResult kind=aligned level=3 ref=sdk/js/orm/src/frontendAdapters/react/useShape.ts:useShape — the same capability filter, over the result envelope that hook returns rather than over the collection inside it; removed at migration
// @provenance makeReadFilteredShapeResult kind=aligned level=3 ref=sdk/js/orm/src/frontendAdapters/react/useShape.ts:useShape - the same capability filter, over the result envelope that hook returns rather than over the collection inside it; removed at migration
export function makeReadFilteredShapeResult<R extends object>(result: R, caps: CapRegistry): R {
/** What the view answers for one member. The `get` trap and the descriptor trap BOTH
* call this, so neither can answer what the other refuses - `data` used to come back
+1 -1
View File
@@ -128,7 +128,7 @@ export interface ShapeResult {
* says it, and the real `reactUseShape` is assignable to it with no wrapper and no cast
* (pinned by `test/use-shape.test.ts`).
*/
// @provenance UseShapeLike kind=invention level=none ref=none — nothing upstream is injected; the type exists only to describe what `configure` receives, here for the ORM's React hook
// @provenance UseShapeLike kind=invention level=none ref=none - nothing upstream is injected; the type exists only to describe what `configure` receives, here for the ORM's React hook
export type UseShapeLike = <T extends BaseType>(
shapeType: ShapeType<T>,
conf: RdfOrmConfig<T> | string | undefined,
+1 -1
View File
@@ -25,7 +25,7 @@ import { getConfig, getCaps } from "../shared-wallet/bootstrap";
import { makeReadFilteredShapeResult } from "../emulated-verifier/read-filter";
import type { ShapeResult } from "../model/types";
// @provenance useShape kind=passthrough level=3 ref=sdk/js/orm/src/frontendAdapters/react/useShape.ts:useShape — forwards to the injected real hook, with its two arguments; the read-filtered view over the result envelope emulates cryptographic isolation
// @provenance useShape kind=passthrough level=3 ref=sdk/js/orm/src/frontendAdapters/react/useShape.ts:useShape - forwards to the injected real hook, with its two arguments; the read-filtered view over the result envelope emulates cryptographic isolation
export function useShape<T extends BaseType>(
shapeType: ShapeType<T>,
conf: RdfOrmConfig<T> | string | undefined,
+1 -1
View File
@@ -113,7 +113,7 @@ test("useShape: no member of the result reaches a document this identity holds n
// `subscription` - the SDK's own handle, which reads and writes with no filter at all.
expect(() => result.subscription).toThrow(/RdfOrmSubscription/);
// …and the collection underneath really does hold both, so it is the filter that
// and the collection underneath really does hold both, so it is the filter that
// removed one rather than the fake never having offered it.
expect([...(hook.raw() as Iterable<BaseType>)]).toHaveLength(2);
});