elaraai avatar

east-node-std

Node.js platform functions for the East language. Use when writing East programs that need Console I

作者 elaraai|オープンソース

East Node

Node platform functions for the East language

License Node Version

East Node provides Node.js platform integration for the East language. It enables East programs to interact with the Node.js runtime through platform functions for file system operations, console I/O, HTTP requests, cryptography, and more.

Features

  • 📁 File System - Read/write files, manage directories
  • 🖥️ Console I/O - stdout/stderr output, stdin input
  • 🌐 HTTP Client - Modern Fetch API for HTTP requests
  • 🔐 Cryptography - Random bytes, SHA-256, UUID generation
  • 🎲 Random - Random number generation with 14 statistical distributions
  • ⏱️ Time Operations - Timestamps and sleep
  • 🛤️ Path Utilities - Cross-platform path manipulation
  • 🧪 Test Framework - Built-in testing utilities
  • 🛡️ Type-Safe - Full TypeScript support with EastError handling

Installation

npm install @elaraai/east-node-std @elaraai/east

Quick Start

import { East, NullType, StringType } from "@elaraai/east";
import { NodePlatform, Console, FileSystem } from "@elaraai/east-node-std";

// Define an East function using platform functions
const processFile = East.function(
    [StringType],  // Input: file path
    NullType,      // Output: null
    ($, inputPath) => {
        const content = $.let(FileSystem.readFile(inputPath));
        $(Console.log(content));
        $(FileSystem.writeFile("output.txt", content));
    }
);

// Compile with Node.js platform and execute
const compiled = East.compile(processFile.toIR(), NodePlatform);
compiled("/path/to/input.txt");

Platform Functions

East Node provides seven platform modules:

ModuleFunctionsDescription
Consolelog, error, writeConsole I/O operations
FileSystemreadFile, writeFile, exists, createDirectory, etc.File system operations (11 functions)
Fetchget, post, requestHTTP client using Fetch API
CryptorandomBytes, hashSha256, uuidCryptographic operations
Timenow, sleepTime and delay operations
Pathjoin, resolve, dirname, basename, extnamePath manipulation
Randomuniform, normal, range, exponential, bernoulli, etc.Random number generation with 14 distributions

Complete platform:

import { NodePlatform } from "@elaraai/east-node-std";
const compiled = East.compile(myFunction.toIR(), NodePlatform);

Individual modules:

import { Console, FileSystem } from "@elaraai/east-node-std";
const compiled = East.compile(myFunction.toIR(), [...Console.Implementation, ...FileSystem.Implementation]);

Documentation

Testing

East Node includes a test framework for East code:

import { describeEast, Test } from "@elaraai/east-node-std";
import { East } from "@elaraai/east";

await describeEast("Math operations", (test) => {
    test("addition works", $ => {
        const result = $.let(East.value(1n).add(2n));
        $(Test.equal(result, 3n));
    });
});

Run tests:

npm test          # Run all tests
make test         # Alternative via Makefile

Development

npm run build     # Compile TypeScript
npm run test      # Run test suite (requires build)
npm run lint      # Check code quality

Security

Platform functions are intentionally limited for sandbox security:

  • ❌ No process access (exit, environment variables, command-line arguments)
  • ❌ No arbitrary command execution
  • ✅ Controlled I/O operations only
  • ✅ All operations are type-checked

License

Dual-licensed:

Ecosystem

  • East Node: Node.js platform functions for I/O, databases, and system operations. Connect East programs to filesystems, SQL/NoSQL databases, cloud storage, and network services.

  • East Python: Python runtime and platform functions for data science and machine learning. Execute East programs with access to optimization solvers, gradient boosting, neural networks, and model explainability.

  • East UI: East types and expressions for building dashboards and interactive layouts. Define UIs as data structures that render consistently across React, web, and other environments.

  • e3 - East Execution Engine: Durable execution engine for running East pipelines at scale. Features Git-like content-addressable storage, automatic memoization, task queuing, and real-time monitoring.

Links

About Elara

East is developed by Elara AI Pty Ltd, an AI-powered platform that creates economic digital twins of businesses that optimize performance. Elara combines business objectives, decisions and data to help organizations make data-driven decisions across operations, purchasing, sales and customer engagement, and project and investment planning. East powers the computational layer of Elara solutions, enabling the expression of complex business logic and data in a simple, type-safe and portable language.


Developed by Elara AI Pty Ltd