npm.io
3.0.2 • Published 1 month ago

@x12i/memorix-data

Licence
exellix-license
Version
3.0.2
Deps
4
Size
306 kB
Vulns
0
Weekly
0

@x12i/memorix-data

Memorix data plane: scoped routing, record directory, V2 content writer / reader, sibling compose, abstract reverse-write, and relationship reads (expansion).

All subject mutations go through this plane (or Memory / relationship engines that call it). Never write domain documents with raw Mongo drivers.

Install

npm install @x12i/memorix-data@3.0.2
Audience Use this package?
Remote app No — call memorix-service /api/data
Platform / service composition Yes

Write ops

add · upsert · patch · replace · remove

Each requires MemorixScope (orgId + agentIds[]) and a precondition (absent or exact revision). Stale revision → conflict.

Read ops

getContent · listContent · composeSubject · getAbstract · listAbstract

Default reads return one logical V2 record (_id stripped). Pass relationship include options for virtual { source, relationships } expansion. Link mutation is not here — use @x12i/memorix-relationships.

Abstract reverse-write

patchAbstract → reverse mappings → one concrete writer patch. No abstract collections / abstract recordId.

Quick example

import { createMongoContentWriter, createMongoContentReader } from "@x12i/memorix-data";

const writer = createMongoContentWriter({ client, /* routing */ });
const reader = createMongoContentReader({ client, /* routing */ });

await writer.add(scope, {
  draft: { /* MemorixRecordDraft V2 */ },
  precondition: { kind: "absent" },
});

const record = await reader.getContent(scope, {
  objectType: "work-items",
  contentType: "snapshots",
  recordId: "WI-100",
});

const composed = await reader.composeSubject(scope, { recordId: "WI-100" });
// composed.contents → { raw: [...], snapshots: [...], ... }
Need Package / API
Envelope validate @x12i/memorix-format
Four-field links @x12i/memorix-relationships
HTTP /api/data, /api/data/compose, /api/data/abstract

Docs

npm test