Stars Components is a monorepo containing 16 publishable TypeScript packages under the @wolfstar npm scope. These packages provide foundational utilities and frameworks for building HTTP-only Discord bots and related services within the Star Network ecosystem.
Technology Stack:
- Language: TypeScript (Node.js
^22.11 || ^24 || >=26) - Package Manager: pnpm with workspaces
- Monorepo Runner: Turbo
- Testing: Vitest
- Linting: oxlint with oxfmt
- Release: Changesets v3 (independent semver per package)
- Node.js
^22.11,^24, or>=26 - pnpm (automatically pinned via corepack)
# Clone the repository
git clone https://github.com/wolfstar-project/stars-components.git
cd stars-components
# Install dependencies (uses pnpm workspaces)
pnpm install
# Run quality gates in order
pnpm lint # oxlint + oxfmt check
pnpm typecheck # TypeScript check (requires pnpm build first)
pnpm test # vitest
pnpm build # tsdown for each packageImportant: Run pnpm build before pnpm typecheck, as typecheck resolves cross-package imports against built dist/*.d.ts files.
Each package is independently published to npm under @wolfstar/ scope. Install any package directly:
# Example: Install the HTTP framework and environment utilities
npm install @wolfstar/http-framework @wolfstar/env-utilities
# or with pnpm
pnpm add @wolfstar/http-framework @wolfstar/env-utilities| Package | Description | Version |
|---|---|---|
| Core Framework | ||
@wolfstar/http-framework |
The primary framework for Star Network's HTTP-only Discord bots | |
| Framework Extensions | ||
@wolfstar/http-framework-test-utils |
Test utilities and helpers for @wolfstar/http-framework | |
@wolfstar/http-framework-i18n |
DEPRECATED: Use @wolfstar/plugin-i18next instead. Legacy i18n layer for HTTP framework | |
| Shared HTTP Services | ||
@wolfstar/shared-http-pieces |
Common pieces and utilities for Star Network's HTTP-only bots | |
@wolfstar/shared-influx-pieces |
InfluxDB integration pieces for Star Network's HTTP bots | |
| Internationalization (i18n) | ||
@wolfstar/i18next-backend |
Fast filesystem-based i18next backend for Node.js | |
@wolfstar/i18next-type-generator |
CLI utility to generate TypeScript augmentations for i18next | |
| Utilities & Helpers | ||
@wolfstar/env-utilities |
Functional utilities for reading and parsing environment variables | |
@wolfstar/influx-utilities |
Opinionated abstraction layer for InfluxDB single-organization access | |
@wolfstar/logger |
Lightweight logger system with level-based filtering | |
@wolfstar/safe-fetch |
Fetch wrapper implementing Rust-style Result types for error handling | |
@wolfstar/start-banner |
CLI banner generator utility for startup messages | |
| Third-Party Integrations | ||
@wolfstar/reddit-helpers |
Reddit helper functions for Star Network bots | |
@wolfstar/twitch-helpers |
Twitch helper functions for Star Network bots | |
@wolfstar/weather-helpers |
Weather API helper functions for Star Network bots | |
| Project Scaffolding | ||
@wolfstar/cli |
The stars CLI: typed stars.config.ts, dev with TUI, build, info and codegen for http-framework projects |
|
@wolfstar/create-http-framework |
CLI scaffolding tool to create new HTTP Framework bot projects | |
| Tooling | ||
@wolfstar/oxlint-config |
Shareable oxlint base configuration | |
@wolfstar/oxfmt-config |
Shareable oxfmt base configuration | |
@wolfstar/eslint-config |
Shareable ESLint flat configuration, for consumers who use ESLint instead of oxlint | |
@wolfstar/prettier-config |
Shareable Prettier configuration, for consumers who use Prettier instead of oxfmt | |
@wolfstar/eslint-plugin-http-framework |
Custom lint rules for @wolfstar/http-framework and the @wolfstar/plugin-* ecosystem, for ESLint and oxlint |
The examples/ directory contains runnable bot samples using the HTTP Framework and related utilities. Examples are provided in both TypeScript and JavaScript (ESM).
# Install all dependencies
pnpm install
# Build all packages
pnpm build
# Setup environment for the basic example
cp examples/basic/.env.example examples/basic/src/.env
# Run a TypeScript example (with live reloading)
pnpm --filter basic dev
# Or run a plain JavaScript example (no build step)
pnpm --filter basic-js devFor a complete list of available examples, see examples/README.md.
Contributions are welcome! Please read our Contributing Guide before submitting a pull request.
Key Conventions:
- Commits: Conventional Commits using
cz(commitizen) - Changes: Use
pnpm changesetto add changesets; do not editpackage.json#versionorCHANGELOG.mddirectly (these are managed by Changesets) - Release Process: Changesets automatically publishes independent versions for affected packages
Thank you to all contributors who have helped make Stars Components better!
You can contribute without a local setup by using cloud-based development environments:
Stars Components is licensed under the Apache License 2.0. See the LICENSE file for details.
Copyright 2022 Wolfstar Project
- GitHub: https://github.com/wolfstar-project/stars-components
- npm Packages: https://www.npmjs.com/org/wolfstar
- Website: https://wolfstar.rocks
- Issues & Discussions: https://github.com/wolfstar-project/stars-components/issues