npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@lore-vcs/sdk

v0.8.3

Published

This repository contains the JavaScript/TypeScript SDK for integrating with Lore.

Downloads

127

Readme

Lore JavaScript SDK

About

This repository contains the JavaScript/TypeScript SDK for integrating with Lore.

Lore is an open source version control system that is designed for unprecedented scalability of both data and teams. It is optimized for projects that combine code with large binary assets, including games and entertainment, and caters to the needs of developers and artists alike.

For full Lore documentation, architecture details, and contribution guidelines, visit the main Lore repository.

Install

Stable Release

npm install @lore-vcs/sdk

Minimal example

The default entry point (@lore-vcs/sdk) exposes the high-level fluent API. A low-level, C-like wrapper around the underlying FFI is also available under @lore-vcs/sdk/native for advanced use cases.

import { lore } from "@lore-vcs/sdk";
import { LoreEventTag, LoreLogLevel } from "@lore-vcs/sdk/types/enums";
import type { LoreEventFFI } from "@lore-vcs/sdk/types/events";
import type {
  LoreGlobalArgs,
  LoreRepositoryStatusArgs,
} from "@lore-vcs/sdk/types/args";

lore.logConfigure({
  file: true,
  filePath: "/path/to/log/directory",
  level: LoreLogLevel.DEBUG,
});

const globals: LoreGlobalArgs = {
  repositoryPath: "/path/to/local/repository",
};
const args: LoreRepositoryStatusArgs = {
  staged: true,
  scan: true,
};
await lore
  .repositoryStatus(globals, args)
  .callback((event: LoreEventFFI) => {
    if (event.tag === LoreEventTag.REPOSITORY_STATUS_FILE) {
      console.log(event.data);
    }
  })
  .waitAsync();

For comprehensive examples, see examples/esm/example.ts (fluent) and examples/esm/example-native.ts (low-level).

Contributing

Set up your dev environment

  1. Clone the Lore JS SDK repository:
git clone https://github.com/EpicGames/lore-js
  1. (Optional) Create a Python virtual environment for the binding generator:
uv venv .venv
source .venv/bin/activate
  1. Install the Python modules used by the binding generator:
uv pip install jinja2 pycparser
  1. Install NPM dependencies:
pnpm install --frozen-lockfile

Get the Lore library

The SDK binds against the Lore C library. Pick one of the two options below depending on whether you're also modifying the Lore core.

Option A — build the library from Lore source

Use this when you're changing the Lore C/Rust core alongside the JS SDK.

  1. Clone Lore's repository and build it:
cargo build --release

Option B — fetch a pre-built Lore library

Use this when you only need to develop the JS SDK against an existing Lore version.

  1. Download the header and binaries from the Lore repository release page.

Generate the JS bindings

  1. Point LORE_BUILD_PATH at the library directory from the previous section:
export LORE_BUILD_PATH="<path-to>/lore/"
  1. Generate the bindings and build the SDK:
uv run python find_lorelib.py
uv run python generator/generate.py
pnpm run build
  1. Any edits you now make under lore_js/ are picked up by re-running pnpm run build. If you change anything under generator/templates/ or pull a new Lore pre-built binary, re-run step 2 to regenerate the bindings.

Run the examples

With the dev environment set up, a Lore library available, and the JS bindings generated, run an example from the repository root:

pnpm --filter examples run example:esm
pnpm --filter examples run example:esm:native

See examples/README.md for the full list (ESM and CommonJS, fluent and native).

Run the test suite

pnpm test