- fix: Load iOS hooks from
iphone
directory in the SDK
- fix: Invalid
--platform
would cause crash because the platform validation was being bypassed
- fix: Force
--platform
toios
; the SDK convertsios
toiphone
, but the CLI needs to reverse this to be able to look up the platform config
- fix: Rename platform config
iphone
toios
to align withti.targetPlatforms
- feat: Support async hook
init()
functions - fix: Surface sdk install errors
- fix:
ti sdk rm <ver>
treats confirm prompt as false - fix: Assert required Node.js version
- fix: Clear out undefined command args which fixes
ti project
- fix:
ti sdk install
no longer silently fails when installing new modules - fix: When reinstalling an SDK, choosing "Overwrite" will force modules to also be reinstalled
- fix: Properly handle result from
ti sdk install
overwrite prompt,ti sdk uninstall
version prompt, andti setup user
name prompt
- Require Node.js 18 or newer
- Refactored entire codebase using ESM
- Removed
login
,logout
,plugin
, andstatus
commands - Removed all analytics/telemetry code
- Removed i18n logic; all output rendered in English
- Removed incomplete tab completion code
--sdk <ver>
is now a global option- It assumes the latest installed SDK version...
- If executing the
create
command without any options, it will prompt for the SDK version to use
- 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
-d
,--project-dir
is now a global option- Used to be
build
,clean
, andproject
commands only, but needed so the CLI can read thetiapp.xml
and determine the<sdk-version>
; defaults to the current working directory - Since this conflicts with the
create
command's-d
,--workspace-dir
option, special handling treats these two options the same
- Used to be
- Added a new
--debug
global flag to output CLI debug logging ti config
changes:- Added
--json
flag - Replaced
--output json
with--output json-object
output
- Added
ti info
changes:- Added
--json
flag - Removed
haxm
info - Removed
genymotion
and VirtualBox info - Removed macOS info including Xcode CLI Tools
- Removed
jarsigner
from JDK detection; no longer used thanks to Gradle - Removed
nodeAppcVer
from Titanium CLI and Titanium SDKs in info
- Added
ti module
changes:- Removed global
iphone
modules as it was just a copy ofios
modules - Modules with
platform
other thanandroid
,commonjs
,ios
, andiphone
will be ignored - Modules with invalid semantic version will be ignored
- Removed global
ti sdk
changes:- Added
--json
flag - Removed
activeSDK
from JSON result select
subcommand is a no-opinstall
subcommand--default
flag is a no-op
- Added
ti setup
changes:- Removed Windows Store publishing info
- Removed
haxm
info - Removed
sdk
setup - Removed user locale setup
- Removed Xcode CLI tools detection
- Removed Titanium CLI Dependencies section from check
- Removed Java-based connection test from check
- Logger changes:
- Replaced "winston" based logger with lighter weight logger
- Trace and debug log messages written to
stderr
instead ofstdout
- Added total run time trace message at end
--timestamp
option enabled only when command has--log-level
option
- Performance improvements:
- Lazy load modules as much as possible, within reason
- Removed tons of old dead code
- Use smaller alternative dependencies
- Updated dependencies, replaced deprecated dependencies
- Replaced
colors
withchalk
- Replaced
fields
withprompts
- Replaced
humanize
withpretty-bytes
- Replaced
request
withundici
- Replaced
- Allow SDK directories to contain any version suffix
- Re-enabled installing CI builds
- Updated minor/patch dependencies
- Disabled retrieving CI build branches and builds since it didn't work anyways
- Updated banner copyright and links
- BREAKING CHANGE: Dropped support for Node 12 and older
- feat(sdk): handle an sdk zip downloaded as an artifact from github
- feat(sdk): add timestamp flag
- fix: optimize error for unknown deviceid
- Fix selection of SDK when it is already installed [TIMOB-25179]
- Update dependencies
- Fix failure due to bad URL on
ti setup check
[TIMOB-26206] - Fix incorrect dependencies being reported when running
appc ti setup check
[TIMOB-24892] - Update dependencies
- Added flag to disable analytics [TIMOB-26083]
- Removed email from analytics payloads [TIMOB-26083]
- Fix typo in Android NDK path prompt
- Support detection of JDK 9 [TIMOB-25429]
- Fix forking of correct SDK during
ti build
[TIMOB-24690]
- Error thrown in CLI command plugin errors on load [TIMOB-24546]
- Removed hook that fixed some Titanium SDK 3.x versions (which are no longer supported)
- Avoid re-install of SDK from zipfile if already installed
- Fix NDK validation, fix google.com network test #185
- Fixed bug when running
ti setup sdk
and entering "latest" when the selected SDK no longer exists [TIMOB-23941]
- Added actual SDK version to
ti sdk list
output as well as SDK details toti sdk list -o json
[TIMOB-19541] - Updated NPM dependencies
- No longer display latest Node.js and NPM version as it confusing may imply the Titanium CLI supports them [TIMOB-19470]
- Updated NPM dependencies
- Fixed bug where 'ti setup check' was reporting the latest NPM version, not the latest stable version [TIMOB-19470]
- Updated to node-appc 0.2.31 which fixes a bug with the JDK detection
- Updated to node-appc 0.2.30
- Fixed console colors when running in PowerShell [TIMOB-19126]
- Fixed bug where the command line args weren't being parsed again after handling a branching option [TIMOB-19281]
- Fixed bug with building an app that had a different Titanium SDK version than the selected SDK and abbreviated option names were being used [TIMOB-18826]
- Added support for generic Titanium SDK-level info [TIMOB-17836]
- Allow the colors to be controlled explicitly regardless if attached or detached from a TTY
- Fixed bug where abbreviated options without values passed in before the last argument being treated as a boolean [TIMOB-18067]
- Ripped out all authentication requirements. Analytics are now anonymous. Login and logout are no ops. [TIMOB-18711]
- Capped SDK version monkey patch for which --password is converted to --store-password for Android [TIMOB-18783]
- Fixed compatibility issues with Node 0.12 [TIMOB-18538]
- Added Node.js version check when using a Titanium SDK [TIMOB-18629]
- Drop support for Node.js 0.8 [TIMOB-18414]
- Fixed bug in Titanium SDK 3 bug fix hook where Xcode should only be removed when running on OS X [TIMOB-17808]
- Added support for selecting latest stable SDK [TIMOB-17378]
- Fixed issues with config.json being overwritten at the same time [TIMOB-17346]
- Improved handling of corrupt a config.json file [TIMOB-17346]
- Fixed backwards compatibility with Titanium SDK 3.3.0 and older when building an iOS app and Xcode 6 or newer is installed
- Added support for a "helpNoPrompt()" callback when a missing option is encountered
- Fixed bug with abbreviated options that don't have a value being set to true
- Fixed bug where Xcode 6 was not being removed from Titanium SDK 3.3.0 and older from the "ti info" results [TIMOB-17649]
- Fixed bug where "ti info" failed when an invalid Titanium SDK is selected [TIMOB-17666]
- Added support for paths.xcode in "ti config" [TIMOB-17696]
- Fixed bug with 'ti setup' when the selected Titanium SDK does not exist [TIMOB-12268]
- Added Genymotion environment information to 'ti info' command [TIMOB-16349]
- Fixed bug where OS and Node.js info was always being returned in 'ti info'
- Added wp8 publisher guid to 'ti setup' [TIMOB-16748]
- Added conflicting hook detection and improved hook error reporting [TIMOB-13847]
- Added support for an array of hook events to emit; needed for [TIMOB-10752]
- Updated Appcelerator API URLs to api.appcelerator.com [TIMOB-16282]
- Added support for Titanium SDKs that can be named anything [TIMOB-16052]
- Improved error handling when sdk command requests list of releases [TIMOB-16917]
- Fixed bug with prompting for missing or invalid options that use generic prompting
- Fixed sorting of Titanium SDKs in the 'sdk select' command to only list valid SDKs and order by their actual version number [TIMOB-16974]
- Fixed bug where integer config values were being saved as strings instead of numbers [TIMOB-17000]
- Fixed 'setup check' command when fetching available Node.js and NPM releases [TIMOB-16996]
- Fixed bug with boolean config setting values being saved as integers [TIMOB-17087]
- Moved the sending of analytics from the 'exit' event to the command finished callback [TIMOB-17046]
- Fixed bug where the CLI would wait for analytics to send [TIMOB-17206]
- Fixed formatting of multiline issues in 'ti info' [TIMOB-17221]
- Fixed display of Android tools that are newer than the maximum supported version [TIMOB-17221]
- When installing a Titanium SDK using the CI version name, but omitting the branch, it now automatically scans all branches [TIMOB-15899]
- Fixed 'sdk' command to display custom Titanium SDK paths in SDK Install Locations [TIMOB-16141]
- Fixed bug where the password was not being discarded after logging in and ends up confusing the Android build [TIMOB-16422]
- Fixed list of options being displayed in help screen when colors are enabled on Windows [TIMOB-12759]
- Added temp directory checking to the 'setup check' command [TIMOB-16671]
- Fixed disabling of colors for 'setup' command. Also fixed --no-color flag [TIMOB-16853]
- Version skipped, no changes
- Fixed bug where npm version was not being displayed due to race condition [TIMOB-15962]
- Fixed bug where if the node executable is not called "node", the CLI would error because argv[0] != process.execPath [TIMOB-15804]
- Fixed bug when running "ti help" for a command that doesn't have 'platforms' [TIMOB-16233]
- Fixed bug where CLI commands that require a minimum version of the Titanium CLI were not being checked properly [TIMOB-16361]
- Fixed command and hook loading when comparing the minimum required CLI version in which the version has a -beta suffix [TIMOB-16365]
- Fixed bug when a SDK >=3.2.0 build is run with --password instead of --store-password [TIMOB-16354]
- Completely overhauled entire CLI architecture
- Brand new setup command with 'check environment' and 'quick setup' sections
- Added better error handling with logging in and out of the Appc network; saving cli config [TIMOB-13908]
- Added ID for each installed Android SDK and add-on to info command output [TIMOB-13797]
- Fixed bug with CLI argument parser not properly removing the node process from the arguments [TIMOB-14074]
- Added CLI hook to fix deploy type bug in Titanium SDK 3.0.0-3.1.X where deploy type not correctly set for iOS dist builds [TIMOB-14961]
- Updated all afs.exists() calls to fs.existsSync() calls since we no longer support Node.js 0.6
- Fixed bug when running quick setup when no SDKs installed [TIMOB-14965]
- Adjusted placement of post-valdiate event hook
- Fixed bug with option callbacks not being called for prompted options
- Updated info command to use latest platform-specific detect() signature
- Fixed minor bug with multiple options with same name not being converted to an array
- Fixed all places where broken symlinks would cause errors
- Fixed bug with detecting if CLI is being invoked by node.exe instead of titanium.cmd on Windows [TIMOB-14933]
- Removed node-appc version check
- Improved invalid and missing option handling
- Refactored info command to call platform specific environment detection and info rendering
- When a Titanium SDK 3.2 or newer is selected, info command displays much more info such as cert validity, installation issues, etc
- Fixed bug in logger where errors were not honoring the --no-colors flag
- Fixed escaping of default global ignoreDirs/ignoreFiles
- Added ability to hide flag default values
- Added --no-progress-bars flag to control display of progress bars and busy indicators which are enabled by default
- Fixed a few places where --no-prompt was not being honored
- Fixed sdk install command would fail when --no-prompt is set [TIMOB-15431]
- Fixed bug when installing a Titanium SDK and the temp directory does not exist
- Fixed bug when selected SDK is pre-3.0 or does not exist [TIMOB-15507]
- Added CLI tools information to info and setup check commands on Mac OS X
- Fixed command line argument parser to accept empty option values [TIMOB-15608]
- Added ampersand checks to the setup command's Android SDK path prompt on Windows
- Fixed bug where --quiet, --no-prompt, and --no-progress-bars when setting a value on via ti config or running ti setup would save those flags to the cli config
- Added alias --no-color for --no-colors because I can never remember which one it is
- Updated third party Node.js module dependency version where safe to do so
- Updated the 'setup check' command to work offline and display connection diagnostics
- Fixed bug when --username and --password are supplied at the command line
- Fixed bug with the paths.sdks config setting continuously appending the default Titanium SDK install location [TIMOB-15813]
- Fixed bug with 'npm outdated' returning a version of 'missing' [TIMOB-15842]
- Removed Java 1.7 warning from the 'setup check' command
- Fixed bug where options that have valid values but don't have a validate function never have their callbacks fired [TIMOB-15935]
- Fixed bug with detecting if CLI is being invoked by node.exe instead of titanium.cmd on Windows [TIMOB-14933]
- Added support for config option cli.rejectUnauthorized to skip SSL cert validation [TIMOB-15783]
- Updated "request" module to 2.25.0 [TIMOB-11267]
- Added support for code processor plugin paths [TIMOB-13118]
- Fixed scoping in hooks system. Added better error handling for bad hooks [TIMOB-13040]
- Fixed bug with "titanium config cli.logLevel" outputting as a log message [TIMOB-13194]
- Changed default log level to "trace" [TIMOB-13194]
- Fixed bug where hooks could reverse --no-colors flag [TIMOB-13374]
- Enabled padding for non-log() messages such as info, debug, etc [TIMOB-12436]
- Fixed config saving to automatically create the ~/.titanium directory if it doesn't exist. [TIMOB-12437]
- Fixed bug with setup command where an error occurs when a previously saved active SDK version is invalid [TIMOB-12268]
- Updated info command to output iOS certs by keychain based on a fix in node-appc [TIMOB-12033]
- Added terminal character encoding detection [TIMOB-12347]
- Fixed bug with detecting if setup needs to be run
- Added the sdk select 'command' to the sdk's help screen [TIMOB-12113]
- Tiny i18n string update
- In the advanced setup wizard, fixed iOS developer cert name validation to allow names with and without an ID [TIMOB-12003]
- Updated i18n strings [TIMOB-11825]
- Fixed bug with --sdk not properly overriding the SDK from the config file [TIMOB-11883]
- Added support for searching for modules using both the module search path from the config file as well as the root of the selected Titanium SDK [TIMOB-11776]
- Added better support for config values that are lists. Now you can set entire lists, append items to lists, and remove items from lists [TIMOB-11753]
- Updated I18N strings
- Reduced "sdk" command's download progress bar width to reduce possibility of rendering artifacts [TIMOB-11470]
- Fixed bug with duplicate abbreviation aliases were conflicting
- Changed behavior to only list commands for the active Titanium SDK
- Added "select" subcommand to "sdk" command for selecting the active Titanium SDK
- Added better error message for invalid "sdk" command subcommands
- Fixed bugs with the "sdk" command download progress bar on Windows
- Added active Titanium SDK version to the banner
- Updated CLI to use new environ detect() method and pass in SDK paths from the config file
- Fixed bug when CLI config doesn't have any Titanium SDK home directories defined
- Added support for specifying additional Titanium SDK home directory paths in the CLI config
- Added "ti" alias