737729c9ce
Le nom @ng-eventually/sdk entrait en collision avec le SDK de NextGraph, dont ce paquet est justement un polyfill. Impossible d'écrire « le SDK » sans lever l'ambiguïté à chaque phrase — et le contrat publié, lu par une application, était le pire endroit pour laisser traîner ça. packages/sdk → packages/polyfill, @ng-eventually/sdk → @ng-eventually/polyfill, contract_sdk-surface → contract_polyfill-surface, e2e/sdk-entry.ts → e2e/polyfill-entry.ts, docs/sdk-reference.md → docs/polyfill-reference.md. Les occurrences de « SDK » qui désignent celui de NextGraph restent intactes, y compris les chemins dans nextgraph-rs (sdk/js/orm, sdk/js/web). Le tri s'est fait occurrence par occurrence, pas par substitution. Le contrat énonce désormais son identité en une phrase : « This package is a polyfill of NextGraph's SDK. »
18 lines
818 B
TypeScript
18 lines
818 B
TypeScript
/**
|
|
* Wrapped `useShape`: same signature as `@ng-org/orm`. Once the cap emulation is
|
|
* in force, the returned set is a read-filtered VIEW (only items in documents the
|
|
* current holder has the ReadCap of); before the first cap is issued it passes the
|
|
* real set through unchanged. At migration the filtering disappears — the broker
|
|
* only delivers documents whose cap the wallet holds.
|
|
*/
|
|
|
|
import { getConfig, getCaps } from "../shared-wallet/bootstrap";
|
|
import { makeReadFilteredView } from "../emulated-verifier/read-filter";
|
|
|
|
export function useShape(shapeType: unknown, scope: unknown): unknown {
|
|
const set = getConfig().useShape(shapeType, scope) as object;
|
|
const caps = getCaps();
|
|
if (!caps.isEnforcing()) return set; // no cap issued yet → passthrough
|
|
return makeReadFilteredView(set, caps);
|
|
}
|