
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Official Node.js SDK for JStudio's API & WebSocket services - Fast, reliable API for real-time data from Various Games (Roblox)
Official Node.js SDK for JStudio's API & WebSocket services - Fast, reliable API for real-time data from Various Games (Roblox)
npm install jstudio
const jstudio = require('jstudio');
// Connect with your JStudio key
const client = jstudio.connect('Jstudio_key_here');
// Get all stock data
client.stocks.all().then(stock => {
console.log('Seed stock:', stock.seed_stock);
console.log('Gear stock:', stock.gear_stock);
});
// Or use the shorthand you requested
const jstudioClient = jstudio.connect('Jstudio_key_here');
jstudioClient.stocks; // Access stock data
// Get all stock data
const allStock = await client.stocks.all();
// Get specific stock types
const seeds = await client.stocks.seeds();
const gear = await client.stocks.gear();
const eggs = await client.stocks.eggs();
const cosmetics = await client.stocks.cosmetics();
const eventShop = await client.stocks.eventShop();
const travelingMerchant = await client.stocks.travelingMerchant();
// Get all weather data
const weather = await client.weather.all();
// Get only active weather events
const activeWeather = await client.weather.active();
// Get all items
const allItems = await client.items.all();
// Get items by type
const seeds = await client.items.seeds();
const gear = await client.items.gear();
const eggs = await client.items.eggs();
// Get specific item
const item = await client.items.get('apple');
// Calculate fruit value
const result = await client.calculator.calculate({
Name: 'Apple',
Weight: '5.2',
Variant: 'Golden',
Mutation: 'Shiny'
});
// Get all calculation data
const allCalculationData = await client.calculator.getAllData();
// Get image URL for an item
const imageUrl = client.images.getUrl('apple');
console.log(imageUrl); // https://api.joshlei.com/v2/growagarden/image/apple
// Health check
const health = await client.healthCheck();
// Cache status
const cacheStatus = await client.getCacheStatus();
// Current event
const currentEvent = await client.getCurrentEvent();
interface JStudioConfig {
apiKey: string; // Required: Your JStudio key
baseURL?: string; // Optional: API base URL (default: 'https://api.joshlei.com')
timeout?: number; // Optional: Request timeout in ms (default: 30000)
retries?: number; // Optional: Number of retries for failed requests (default: 3)
retryDelay?: number; // Optional: Delay between retries in ms (default: 1000)
}
client.stocks.all() - Get all stock dataclient.stocks.seeds() - Get seed stockclient.stocks.gear() - Get gear stockclient.stocks.eggs() - Get egg stockclient.stocks.cosmetics() - Get cosmetic stockclient.stocks.eventShop() - Get event shop stockclient.stocks.travelingMerchant() - Get traveling merchant stockclient.weather.all() - Get all weather dataclient.weather.active() - Get only active weather eventsclient.items.all(type?) - Get all items, optionally filtered by typeclient.items.get(itemId) - Get specific item by IDclient.items.seeds() - Get seed itemsclient.items.gear() - Get gear itemsclient.items.eggs() - Get egg itemsclient.items.cosmetics() - Get cosmetic itemsclient.items.events() - Get event itemsclient.items.pets() - Get pet itemsclient.items.seedpacks() - Get seed pack itemsclient.items.weather() - Get weather itemsclient.calculator.calculate(params) - Calculate fruit valueclient.calculator.getAllData() - Get all calculation dataclient.images.getUrl(itemId) - Get image URL for itemclient.healthCheck() - API health checkclient.getCacheStatus() - Get cache performance metricsclient.getCurrentEvent() - Get current event informationThe SDK includes comprehensive error handling:
try {
const stock = await client.stocks.all();
} catch (error) {
if (error instanceof jstudio.JStudioApiError) {
console.log('API Error:', error.message);
console.log('Status:', error.status);
console.log('Data:', error.data);
if (error.status === 429) {
console.log('Rate limited. Retry after:', error.retryAfter);
}
} else {
console.log('Other error:', error.message);
}
}
The API uses rate limiting based on your JStudio key's configuration. When you hit rate limits:
MIT License - see LICENSE file for details.
Contributions are welcome! Please read our contributing guidelines and submit pull requests to our GitHub repository.
Made with ❤️ by JStudio for the community.
FAQs
Official Node.js SDK for JStudio's API & WebSocket services - Fast, reliable API for real-time data from Various Games (Roblox)
We found that jstudio demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.