Skip to content

Latest commit

 

History

History
225 lines (181 loc) · 7.14 KB

File metadata and controls

225 lines (181 loc) · 7.14 KB

@xnetjs packages

Core xNet packages for decentralized data, sync, UI, and tooling.

Storybook Workbenches

The monorepo now includes a root Storybook runtime for isolated package development:

pnpm dev:stories
pnpm build:stories
pnpm test:stories

Current package workbench coverage includes:

  • @xnetjs/ui catalogs for primitives, composed components, comments, settings, and devtools surfaces
  • @xnetjs/editor rich collaborative editor workbench with embeds, comments, and awareness states
  • @xnetjs/views database surface workbench
  • @xnetjs/canvas canvas workbench

Packages

Foundation

Package Description Tests Status
@xnetjs/core Types, content addressing (CIDs), permissions, RBAC 5 Stable
@xnetjs/crypto BLAKE3 hashing, Ed25519 signing, XChaCha20 encryption 4 Stable
@xnetjs/identity DID:key generation, UCAN tokens, passkey storage 4 Mixed

Infrastructure

Package Description Tests Status
@xnetjs/storage SQLite/memory adapters and blob storage 4 Stable
@xnetjs/sync Change<T>, Lamport clocks, hash chains, Yjs security 10 Stable
@xnetjs/data Schema system, NodeStore, 16 property helpers, Yjs CRDT 10 Mixed
@xnetjs/network libp2p node, y-webrtc provider, security suite 1 Stable
@xnetjs/query Local query engine, MiniSearch FTS, federation 2 Stable
@xnetjs/hub Signaling, sync relay, backup, FTS5, sharding 0 Stable

Application

Package Description Tests Status
@xnetjs/react useQuery, useMutate, useNode, hub/plugin hooks 2 Mixed
@xnetjs/sdk Unified SDK re-exports and client bootstrap 1 Stable
@xnetjs/editor TipTap editor, slash commands, wikilinks, drag-drop 23 Stable
@xnetjs/ui Base UI primitives, composed components, theme 0 Stable
@xnetjs/views Table, Board, Gallery, Timeline, Calendar 7 Stable
@xnetjs/canvas Infinite canvas, R-tree, ELK.js layout 4 Stable
@xnetjs/devtools 15-panel debug suite 2 Stable
@xnetjs/history Time machine, undo/redo, audit, blame, diff 3 Stable
@xnetjs/plugins Plugin registry, sandbox, AI generation, MCP 8 Stable
@xnetjs/telemetry Privacy-preserving telemetry, tiered consent 0 Stable
@xnetjs/formula Expression parser, evaluator, built-in functions 4 Stable
@xnetjs/vectors HNSW vector index, semantic + hybrid search 4 Stable

Tooling

Package Description Tests Status
@xnetjs/cli CLI commands for schema diff/migration and diagnostics - Stable
@xnetjs/data-bridge Bridge abstraction for off-main-thread data access - Experimental

Lifecycle Notes

  • Mixed means the package keeps a backward-compatible root barrel, but only part of that root surface is the recommended stable contract for new code.
  • Experimental means the package or entrypoint is shipped but still actively converging.
  • The current entrypoint matrix lives in docs/reference/api-lifecycle-matrix.md.

Dependency Graph

flowchart TD
    core["@xnetjs/core"]
    crypto["@xnetjs/crypto"]
    identity["@xnetjs/identity"]
    storage["@xnetjs/storage"]
    sync["@xnetjs/sync"]
    data["@xnetjs/data"]
    network["@xnetjs/network"]
    query["@xnetjs/query"]
    react["@xnetjs/react"]
    sdk["@xnetjs/sdk"]
    editor["@xnetjs/editor"]
    ui["@xnetjs/ui"]
    views["@xnetjs/views"]
    canvas["@xnetjs/canvas"]
    devtools["@xnetjs/devtools"]
    history["@xnetjs/history"]
    plugins["@xnetjs/plugins"]
    telemetry["@xnetjs/telemetry"]
    formula["@xnetjs/formula"]
    vectors["@xnetjs/vectors"]
    hub["@xnetjs/hub"]

    core --> crypto --> identity
    core --> storage
    crypto --> storage
    core --> sync
    crypto --> sync
    identity --> sync

    identity --> data
    storage --> data
    sync --> data

    core --> network
    crypto --> network
    identity --> network
    data --> network

    core --> query
    data --> query
    identity --> query
    network --> query
    storage --> query

    core --> hub
    crypto --> hub
    identity --> hub
    data --> hub
    sync --> hub

    core --> history
    data --> history
    sync --> history

    core --> plugins
    data --> plugins

    core --> telemetry
    data --> telemetry

    core --> react
    crypto --> react
    data --> react
    identity --> react
    history --> react
    plugins --> react

    core --> sdk
    crypto --> sdk
    identity --> sdk
    storage --> sdk
    data --> sdk
    network --> sdk
    query --> sdk

    data --> editor
    ui --> editor

    core --> views
    data --> views
    react --> views
    ui --> views

    core --> canvas
    data --> canvas
    react --> canvas
    ui --> canvas
    vectors --> canvas

    history --> devtools
    ui --> devtools
    views --> devtools

    core --> vectors
    storage --> vectors
Loading

Build Order

flowchart LR
    core --> crypto --> identity --> sync
    core --> storage
    sync --> data
    storage --> data
    identity --> data
    data --> network --> query --> sdk
    data --> react --> sdk
    data --> hub
    data --> history --> react
    data --> plugins --> react
    data --> telemetry
    ui --> editor
    data --> editor
    ui --> views
    react --> views
    ui --> canvas
    react --> canvas
    storage --> vectors --> canvas
    history --> devtools
    ui --> devtools
    views --> devtools
    formula
Loading

Development

# Build all packages
pnpm build

# Test all packages
pnpm test

# Test single package
pnpm --filter @xnetjs/data test

# Run a single test file
pnpm --filter @xnetjs/sync vitest run src/clock.test.ts

# Test with pattern matching
pnpm --filter @xnetjs/data vitest run -t "NodeStore"

# Watch mode
pnpm --filter @xnetjs/sync test:watch

# Type check
pnpm typecheck