@discomedia/utils
v1.0.80
Published
TypeScript utilities for LLMs, email, Alpaca trading and market data, market time, and performance measurement
Maintainers
Readme
Disco Media Utils
Last updated: 20 Jul 2026
A comprehensive utility library for Disco Media apps, providing both backend-complete and frontend-optimized builds.
NPM repo: https://www.npmjs.com/package/@discomedia/utils
Documentation
The package includes these guides in node_modules/@discomedia/utils/docs/ and in this repository. Use the linked source when you want the newest documentation; use the installed copy when documentation must match your installed package version.
- Documentation index — choose the guide for your use case.
- Disco LLM API — OpenAI, DeepSeek, OpenRouter, image generation, structured output, and usage tracking.
- Disco Mail API — server-side transactional email and domain management.
- Alpaca trading API — accounts, orders, positions, options, and trade updates.
- Alpaca market-data API — historical and live equity, option, and crypto market data.
- Market Time API — US market calendars, hours, holidays, and trading-day utilities.
- Performance Timer API — checkpoint-based performance measurement.
- Alpaca crypto market-data reference — upstream endpoint reference used by the market-data client.
Installation
npm install @discomedia/utilsUpdating
When updating this repo, it auto-publishes to NPM via a workflow in the gh_workflows repository.
For it to publish, you have to make sure this repo has the NPM_TOKEN environment variable.
Usage
This package provides two different entry points depending on your environment:
🖥️ Backend/Node.js Usage (Full Package)
For backend applications, use the main entry point which includes all utilities:
import { disco, AlpacaTradingAPI, AlpacaMarketDataAPI } from '@discomedia/utils';
// Available modules:
disco.llm.call() // OpenAI LLM calls
disco.llm.seek() // DeepSeek LLM calls
disco.llm.images() // AI image generation
disco.alpaca // Alpaca trading and market data APIs
disco.indices // Market indices data
disco.time // Market timing utilities
disco.format // Formatting utilities
disco.ta // Technical analysis functions
disco.utils // Miscellaneous utilities
disco.types // TypeScript type definitions🌐 Frontend/Browser Usage (Lightweight Package)
For frontend applications, use the lightweight entry point that excludes Node.js-specific dependencies:
import { disco, AlpacaTradingAPI, AlpacaMarketDataAPI } from '@discomedia/utils/frontend';
// Available modules (frontend-compatible only):
disco.llm.call() // OpenAI LLM calls
disco.llm.seek() // DeepSeek LLM calls
disco.llm.images() // AI image generation
disco.types // TypeScript type definitions
// Direct class imports:
const tradingAPI = new AlpacaTradingAPI(apiKey, secretKey);
const marketDataAPI = new AlpacaMarketDataAPI(apiKey, secretKey);CommonJS Usage
Both entry points support CommonJS imports:
// Full package
const { disco } = require('@discomedia/utils');
// Frontend package
const { disco } = require('@discomedia/utils/frontend');Key Differences
| Feature | Main Package | Frontend Package | |---------|-------------|------------------| | Size | Full (~651KB) | Lightweight (~570KB) | | Dependencies | All (including dotenv, Node.js APIs) | Frontend-safe only | | LLM Functions | ✅ | ✅ | | Alpaca APIs | ✅ | ✅ | | Market Timing | ✅ | ❌ | | Technical Analysis | ✅ | ❌ | | Formatting Utils | ✅ | ❌ | | Environment | Node.js/Backend | Browser/Frontend |
Quick Examples
LLM Functions
// OpenAI calls
const response = await disco.llm.call("Your prompt here", options);
// DeepSeek calls
const response = await disco.llm.seek("Your prompt here", responseFormat, options);
// Image generation
const imageUrl = await disco.llm.images("Image description", options);Alpaca APIs
// Trading API
const tradingAPI = new AlpacaTradingAPI(apiKey, secretKey);
const account = await tradingAPI.getAccount();
// Market Data API
const marketDataAPI = new AlpacaMarketDataAPI(apiKey, secretKey);
const bars = await marketDataAPI.getBars(symbol, timeframe);Contributing to the Repository
Contributions are welcome! Please submit a pull request or open an issue for any enhancements or bug fixes.
Author
This project is a product of Disco Media.
