Types Reference
All shared TypeScript types are defined in @jetstart/shared. This page documents every exported interface, enum, and type alias.
Session Types
Session
interface Session {
id: string;
token: string;
projectName: string;
projectPath: string;
createdAt: number; // Unix ms
lastActivity: number;
}
ServerSession
Extends Session with internal server fields (exported from @jetstart/core):
interface ServerSession {
id: string;
token: string;
projectName: string;
projectPath: string;
createdAt: number;
lastActivity: number;
}
SessionStatus
enum SessionStatus {
CONNECTING = 'connecting',
CONNECTED = 'connected',
IDLE = 'idle',
DISCONNECTED = 'disconnected',
ERROR = 'error',
}
Build Types
BuildConfig
interface BuildConfig {
projectPath: string;
outputPath?: string;
buildType: 'debug' | 'release';
debuggable?: boolean;
minifyEnabled?: boolean;
versionCode?: number;
versionName?: string;
applicationId?: string;
}
BuildResult
interface BuildResult {
success: boolean;
buildTime: number; // ms
apkPath?: string;
apkSize?: number; // bytes
errors?: BuildError[];
}
BuildError
interface BuildError {
file: string;
line: number;
column: number;
message: string;
severity: 'error' | 'warning';
}
BuildStatus
type BuildStatus = string; // e.g. "compiling_kotlin", "packaging", "complete"
APKInfo
interface APKInfo {
path: string;
size: number; // bytes
hash: string;
versionCode: number;
versionName: string;
minSdkVersion: number; // minimum: 24
targetSdkVersion: number;
applicationId: string;
}
Device Types
DeviceInfo
interface DeviceInfo {
id: string;
model: string;
platform: Platform;
architecture: Architecture;
androidVersion?: string;
apiLevel?: number;
}
Platform
enum Platform {
ANDROID = 'android',
WEB = 'web',
}
Architecture
enum Architecture {
ARM64 = 'arm64',
X86_64 = 'x86_64',
X86 = 'x86',
}
Log Types
LogEntry
interface LogEntry {
id: string;
timestamp: number;
level: LogLevel;
tag: string;
message: string;
source: LogSource;
metadata?: Record<string, unknown>;
}
LogLevel
enum LogLevel {
VERBOSE = 'verbose',
DEBUG = 'debug',
INFO = 'info',
WARN = 'warn',
ERROR = 'error',
FATAL = 'fatal',
}
LogSource
enum LogSource {
CLI = 'cli',
CORE = 'core',
CLIENT = 'client',
BUILD = 'build',
NETWORK = 'network',
SYSTEM = 'system',
}
LogFilter
interface LogFilter {
levels?: LogLevel[];
sources?: LogSource[];
searchQuery?: string;
startTime?: number;
endTime?: number;
}
LogStats
interface LogStats {
total: number;
byLevel: Record<LogLevel, number>;
bySource: Record<LogSource, number>;
}
WebSocket Types
WSMessage
Union type of all possible WebSocket messages:
type WSMessage = ClientMessage | CoreMessage;
ClientMessage
type ClientMessage =
| ClientConnectMessage
| ClientStatusMessage
| ClientLogMessage
| ClientHeartbeatMessage
| ClientDisconnectMessage
| ClientClickEventMessage;
CoreMessage
type CoreMessage =
| CoreConnectedMessage
| CoreBuildStartMessage
| CoreBuildStatusMessage
| CoreBuildCompleteMessage
| CoreBuildErrorMessage
| CoreReloadMessage
| CoreUIUpdateMessage
| CoreDexReloadMessage
| CoreJsUpdateMessage
| CoreDisconnectMessage
| CoreLogMessage;
WSState
enum WSState {
CONNECTING = 'connecting',
CONNECTED = 'connected',
DISCONNECTING = 'disconnecting',
DISCONNECTED = 'disconnected',
ERROR = 'error',
}
WSErrorCode
enum WSErrorCode {
CONNECTION_FAILED = 'connection_failed',
AUTHENTICATION_FAILED = 'authentication_failed',
TIMEOUT = 'timeout',
INVALID_MESSAGE = 'invalid_message',
SESSION_EXPIRED = 'session_expired',
UNKNOWN = 'unknown',
}
Constants
// Ports
DEFAULT_CORE_PORT = 8765
DEFAULT_WS_PORT = 8766
DEFAULT_LOGS_PORT = 8767
// WebSocket
WS_HEARTBEAT_INTERVAL = 30_000 // ms
WS_RECONNECT_DELAY = 5_000 // ms
WS_MAX_RECONNECT_ATTEMPTS = 5
// Session
SESSION_TOKEN_EXPIRY = 3_600_000 // 1 hour
SESSION_CLEANUP_INTERVAL = 60_000 // 1 minute
SESSION_IDLE_TIMEOUT = 1_800_000 // 30 minutes
// Build
BUILD_CACHE_SIZE_LIMIT = 1_073_741_824 // 1 GB
BUILD_TIMEOUT = 300_000 // 5 minutes
MAX_CONCURRENT_BUILDS = 3
// Files
MAX_APK_SIZE = 104_857_600 // 100 MB
MAX_LOG_ENTRIES = 10_000
MAX_LOG_FILE_SIZE = 10_485_760 // 10 MB
// Android
MIN_ANDROID_API_LEVEL = 24 // Android 7.0
TARGET_ANDROID_API_LEVEL = 34 // Android 14
// Version
JETSTART_VERSION = '0.1.0'
Validation Functions
// Project name: letters, numbers, hyphens, underscores; starts with letter; 1-64 chars
isValidProjectName(name: string): boolean
// Package name: reverse-domain format, at least 2 segments
isValidPackageName(name: string): boolean
// Session ID format check
isValidSessionId(id: string): boolean