Skip to content

About

Abstract Visuals

Resources

Stars

7 stars

Watchers

1 watching

Forks

Repository files navigation

abstract-visuals

CI Coverage Status code style: oxfmt types MIT license

This is a monorepo managed using pnpm workspaces and lerna.

For more information see the readme for each package:

Package Version README CHANGELOG
abstract-image npm version README CHANGELOG
abstract-chart npm version README CHANGELOG
abstract-document npm version README CHANGELOG
abstract-3d npm version README CHANGELOG
abstract-sheet npm version README CHANGELOG

There is also a package with examples:

How to develop

Tools

We use the tool manager mise to install some tools (node, pnpm — see .tool-versions).

You will need to do a one-time installation of mise itself if you do not already have it installed:

# Install mise
$ curl https://mise.run | sh
$ echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc

(use mise activate zsh instead if you use zsh)

Then run this inside the project folder to install the pinned tools (restart your shell first if you just installed mise):

mise install

For development of the react components, use pnpm storybook to start storybook in development mode.

For the other packages, use pnpm test to test them.

Linting uses oxlint with type-aware rules (pnpm lint). The oxc VS Code extension needs "oxc.typeAware": true and "oxc.configPath": "./oxlint.config.js" (set in .vscode/settings.json) to surface the same type-aware errors live in the editor — nested config auto-discovery doesn't reliably load the JS config file, so the path must be given explicitly.

How to publish

First update changelog.

The packages are published on npmjs.org. To publish run this command:

pnpm publish-npm

It will build the packages and call lerna publish which will figure out which packages has changed, ask for new versions of them, and then publish them. Needs an npm auth token in ~/.npmrc and, if 2FA is enabled, an OTP, which it will prompt you for — if you enter a wrong or expired one, it re-prompts instead of aborting (rerunning the publish step is safe, it skips packages already on the registry).

If your npm 2FA uses a passkey/security key (e.g. fingerprint) instead of an authenticator app, run pnpm publish-npm --web instead. It publishes each not-yet-published package with npm publish (packed with pnpm pack first, so workspace:^ dependencies become real versions), and npm asks you to authenticate each publish in the browser. If a publish fails, just rerun: already published versions are skipped.

pnpm 11+ reads auth tokens from ~/.config/pnpm/auth.ini (Linux) ~/Library/Preferences/pnpm/auth.ini (macOS) before ~/.npmrc, so a stale //registry.npmjs.org/:_authToken there makes pnpm whoami/publish fail with 401 even right after npm login (which only updates ~/.npmrc). Remove that line from auth.ini so pnpm falls back to ~/.npmrc.

If you are not logged in to npm, pnpm publish-npm runs npm login for you first. npm login prints a URL and waits for you to press Enter before opening it in your browser — on WSL, npm doesn't know how to launch a Windows browser by default, so configure it once:

npm config set browser "cmd.exe /c start"

After that, pressing Enter at the npm login prompt opens the login page in your Windows default browser.

About

Abstract Visuals

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages