v7.0.0-beta9
Pre-release
Pre-release
npm i -g titanium@next
Titanium CLI v7 is a almost an entire rewrite. Old dead code has been removed, deprecated dependencies have been replaced, code completely refactored to ECMAScript modules and latest JavaScript features, and performance has been improved. This release has been tested to work on the latest Node.js releases and unlocks the Titanium SDK to begin dropping dead code, adopt ESM, and update dependencies.
BREAKING CHANGES:
- Require Node.js 18 or newer
- Refactored entire codebase using ESM
- Removed
login,logout,plugin, andstatuscommands ti config- Replaced
--output jsonwith--output json-objectoutput
- Replaced
ti info- Removed
haxminfo - Removed
genymotionand VirtualBox info - Removed macOS info including Xcode CLI Tools
- Removed
jarsignerfrom JDK detection; no longer used thanks to Gradle - Removed
nodeAppcVerfrom Titanium CLI and Titanium SDKs in info
- Removed
ti module- Removed global
iphonemodules as it was just a copy ofiosmodules - Modules with
platformother thanandroid,commonjs,ios, and
iphonewill be ignored - Modules with invalid semantic version will be ignored
- Removed global
ti sdk- Removed
activeSDKfrom JSON result
- Removed
ti setup- Removed Windows Store publishing info
- Removed
haxminfo - Removed
sdksetup - Removed user locale setup
- Removed Xcode CLI tools detection
- Removed Titanium CLI Dependencies section from check
- Removed Java-based connection test from check
- Trace and debug log messages written to
stderrinstead ofstdout
New Features
--sdk <ver>is now a global option- Defaults to latest installed SDK version
- If executing the
createcommand without any options, it will prompt for
the SDK version to use
-d,--project-diris now a global option- Used to be
build,clean, andprojectcommands only, but needed so
the CLI can read thetiapp.xmland determine the<sdk-version>;
defaults to the current working directory - Since this conflicts with the
createcommand's-d,--workspace-dir
option, special handling treats these two options the same
- Used to be
- Added a new
--debugglobal flag to output CLI debug logging - Added
--jsonflag toti config,ti info,ti sdk,ti sdk list - Logger changes:
- Replaced "winston" based logger with lighter weight logger
- Added total run time trace message at end
--timestampoption enabled only when command has--log-leveloption
- Performance improvements:
- Lazy load modules as much as possible, within reason
- Removed tons of old dead code
- Use smaller alternative dependencies
Improvements
- Removed all analytics/telemetry code
- Removed i18n logic; all output rendered in English
- Removed incomplete tab completion code
- Removed "default" SDK;
<sdk-version>in tiapp.xml is source of truth,
override with--sdk <ver>arg - Replaced custom CLI arg parser (based on
optimist) with Commander.js- Order of arguments matter; command options must come after command
ti sdk install--defaultflag has no effectti sdk selectcommand has no effect- Updated dependencies, replaced deprecated dependencies
- Replaced
colorswithchalk - Replaced
fieldswithprompts - Replaced
humanizewithpretty-bytes - Replaced
requestwithundici
- Replaced
Full Changelog: v6.1.1...v7.0.0-beta9