Initial scaffold: @ng-eventually/client — SDK-shaped polyfill over NextGraph
Generic polyfill layer that makes a single NextGraph broker behave like the not-yet-shipped multi-user NextGraph (emulated capabilities + inbox). Zero app domain. @ng-eventually/client exposes an SDK-identical surface (ng, useShape, inbox); the polyfill bootstrap (configure + capability helpers) is isolated under /polyfill, so the main entry stays a drop-in for @ng-org/web|orm. The real SDK is injected at configure() (no hard import → build-alias safe + testable). Scaffold: NextGraph wiring stubbed with TODO; capability helpers implemented and unit-tested (4 tests, typecheck clean). The global-index curator is deferred — in NextGraph apps/services are mono-user with no global data. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
/**
|
||||
* Inbox — client side (deposit only). The MATERIALIZATION of deposits is the
|
||||
* curator's job (a separate package, deferred — see repo README), never the client's.
|
||||
*/
|
||||
|
||||
import { getConfig, getCurrentUser } from "./polyfill";
|
||||
import type { Nuri } from "./types";
|
||||
|
||||
/**
|
||||
* Deposit a reference into a document's inbox (anticipated SDK shape). Target:
|
||||
* `ng.inbox_post_link(...)`, sealed to the inbox owner; `from` optional → the
|
||||
* sender is identified if known, anonymous otherwise. Polyfill: append a
|
||||
* deposit to the emulated inbox document.
|
||||
*/
|
||||
export async function post(
|
||||
targetInbox: Nuri,
|
||||
payload: unknown,
|
||||
opts?: { anonymous?: boolean },
|
||||
): Promise<void> {
|
||||
const { ng } = getConfig();
|
||||
const from = opts?.anonymous ? null : getCurrentUser();
|
||||
// TODO(polyfill): append { from, payload } to the emulated inbox document
|
||||
// (targetInbox) via ng.sparql_update.
|
||||
void ng;
|
||||
void from;
|
||||
void targetInbox;
|
||||
void payload;
|
||||
throw new Error("[ng-eventually] inbox.post: polyfill emulation not yet implemented");
|
||||
}
|
||||
Reference in New Issue
Block a user