npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

titaniumlib

v3.0.1

Published

Titanium SDK Library

Downloads

16

Readme

Titanium SDK Library

A library of Titanium SDK platform APIs.

Features

  • Detects installed Titanium SDKs and modules
  • Install or uninstall a Titanium SDKs

Roadmap

  • Create, build, and clean projects
  • tiapp.xml reader/writer
  • Build pipeline
  • Asset management

Options

titaniumlib's options are set via the options export.

import { options } from 'titaniumlib';

options.searchPaths = '/some/path';

| Name | Description | Type | Default | | ------------------------------ | -------------------------------------------------------------------------------------- | ----------------------- | ------- | | options.searchPaths | Additional path or list of Titanium locations to search for Titanium SDKs and modules. | String or Array[String] | [] | | options.network.agentOptions | Specific agent options like the SSL protocol. See the agentOptions for more info. | Object | | | options.network.caFile | Local path to a certificate authority file. | String | | | options.network.certFile | Local path to a PEM formatted certificate. | String | | | options.network.httpProxy | The URL for proxying http requests. | String | | | options.network.httpsProxy | The URL for proxying https requests. | String | | | options.network.keyFile | Local path to a PEM formatted private key. | String | | | options.network.passphrase | The passphrase for the key file. | String | | | options.network.strictSSL | When true, requires SSL certificates be valid. | Boolean | true | | options.sdk.searchPaths | Additional path or list of paths to search for Titanium SDKs. | String or Array[String] | [] | | options.sdk.urls.branches | The URL for the list of branches. | String | | | options.sdk.urls.build | The URL for downloading a CI build .zip file. | String | | | options.sdk.urls.builds | The URL for the list of CI builds. | String | | | options.sdk.urls.releases | The URL for the list of GA releases. | String | | | options.module.searchPaths | Additional path or list of paths to search for Titanium modules. | String or Array[String] | [] |

Search Paths

There are different kinds of search paths. options.searchPaths is used to find Titanium installation directories. These paths would contain the "mobilesdk" and "modules" directory. Generally speaking, you probably should use options.sdk.searchPaths instead.

options.sdk.searchPaths are paths that contain actual SDK directories such as "7.5.1.GA". These paths should not point to the actual SDK directory, but rather its parent directory. titaniumlib will only scan the search paths and does not recursively descend directories.

SDK

import { sdk } from 'titaniumlib';

sdk.getBranches()

Retrieves the list of CI branches.

Returns Promise<Object>.

const branches = await sdk.getBranches();
console.log(branches);
{
  defaultBranch: 'master',
  branches: [
      '3_5_X',
     '4_0_X',
     ...
     '8_0_X',
     'master',
     'next'
  ]
}

sdk.getBuilds([branch])

Retreives a list of Titanium SDK continuous integration builds.

| Argument | Description | Type | Default | | | -------- | ----------------------- | ------ | ---------- | ---------- | | branch | The branch to retreive. | String | "master" | optional |

Returns Promise<Object>.

const builds = await sdk.getBuilds('8_0_X');
console.log(builds);
{
  ...
  '8.1.0.v20190307130759': {
    version: '8.1.0',
    ts: '20190307130759',
    githash: '60e97ceeb124a20fb374c8a4ed4c2b2b6983831c',
    date: 2019-03-07T13:07:59.000Z,
    url: 'http://builds.appcelerator.com/mobile/master/mobilesdk-8.1.0.v20190307130759-osx.zip'
  },
  ...
}

sdk.getInstalledSDKs([force])

Detects installed Titanium SDKs.

| Argument | Description | Type | Default | | | -------- | ------------------------------------------------------- | ------- | ------- | ---------- | | force | When true, bypasses the cache and redetects the SDKs. | Boolean | false | optional |

Returns Array.<TitaniumSDK>.

const sdks = await sdk.getInstalledSDKs();
console.log(sdks);
[
  TitaniumSDK {
    name: '8.0.0',
    manifest: {}
      name: '8.0.0',
        version: '8.0.0',
        moduleAPIVersion: {
          android: '4',
          iphone: '2',
          windows: '6'
       },
       githash: '9bcd36593d',
       platforms: [ 'android', 'iphone' ]
    },
    path: '/Users/USER/Library/Application Support/Titanium/mobilesdk/osx/8.0.0'
  }
]

sdk.getPaths()

Returns a list of possible SDK install paths.

Returns Array.<String>.

const paths = sdk.getPaths();
console.log(paths);
[
  '/Users/USER/Library/Application Support/Titanium/mobilesdk/osx',
  '/Library/Application Support/Titanium/mobilesdk/osx'
]

sdk.getReleases([noLatest])

Retreives a map of Titanium SDK versions to release info including the download URL. By default, the latest version is added to the map of releases.

| Argument | Description | Type | Default | | | ---------- | -------------------------------------------------------- | ------- | ------- | ---------- | | noLatest | When true, it does not determine the 'latest' release. | Boolean | false | optional |

Returns Promise<Object>.

const releases = await sdk.getReleases();
console.log(releases);
{
  '7.5.1.GA': {
    version: '7.5.1',
    url: 'https://builds.appcelerator.com/mobile-releases/7.5.1/mobilesdk-7.5.1.GA-osx.zip'
  },
  latest: {
    version: '7.5.1',
    url: 'https://builds.appcelerator.com/mobile-releases/7.5.1/mobilesdk-7.5.1.GA-osx.zip'
  }
}

sdk.install(params)

Install a Titanium SDK from either a URI or version. A URI may be either a local file, a URL, an SDK version, a CI branch, or a CI branch and build hash.

| Argument | Description | Type | Default | | | -------- | ------------------- | ------ | ------- | ---------- | | params | Various parameters. | Object | {} | optional |

Note: All parameters are optional.

| Property | Description | Type | Default | | ------------- | --------------------------------------------------------------------------- | ------ | ----------------- | | downloadDir | When uri is a URL, release, or build, download the SDK to this directory. | String | A temp directory. | | installDir | The path to install the SDK. | String | The first path in the list of Titanium install locations. | | keep | When true and uri is a URL, release, or build, and downloadDir is specified, then the downloaded SDK .zip file is not deleted after install. | Boolean | false | | overwrite | When true, overwrites an existing Titanium SDK installation, otherwise an error is thrown. Note that if overwrite=false, it will not throw an error if a module is already installed. | Boolean | false | | uri | A URI to a local file or remote URL to download. | String | "latest" |

Returns Promise<String>.

Install from local file

await sdk.install({
    uri: 'file:///path/to/sdk.zip'
});
await sdk.install({
    uri: '/path/to/sdk.zip'
});

Install from URL

await sdk.install({
    uri: 'https://builds.appcelerator.com/mobile/master/mobilesdk-8.1.0.v20190307130759-osx.zip'
});

Install release

await sdk.install({
    uri: '7.5.0.GA'
});
await sdk.install({
    uri: '7.5.0'
});
await sdk.install({
    uri: 'latest'
});

Install latest CI build by branch

await sdk.install({
    uri: 'master'
});

Install specific CI build by branch and git hash

await sdk.install({
    uri: 'master:60e97ceeb124a20fb374c8a4ed4c2b2b6983831c'
});

Install specific CI build by git hash

Note: This is horribly inefficient. It checks every single branch for a match. You should probably never do this.

await sdk.install({
    uri: '60e97ceeb124a20fb374c8a4ed4c2b2b6983831c'
});

sdk.uninstall(nameOrPath)

Deletes an installed Titanium SDK by name or path.

| Argument | Description | Type | | -------- | -------------------------------------- | ------ | | nameOrPath | The SDK name or path to uninstall. | String |

Returns Promise<Array<TitaniumSDK>>. If SDK is not found, an error is thrown with a err.code of ENOTFOUND.

const sdk = await sdk.uninstall('7.5.1.GA');
console.log(sdk);
[
  TitaniumSDK {
    name: '7.5.1.GA',
    manifest: {}
      name: '7.5.1.GA',
        version: '7.5.1',
        moduleAPIVersion: {
          android: '4',
          iphone: '2',
          windows: '6'
       },
       githash: '4b82d9d6b2',
       platforms: [ 'android', 'iphone' ]
    },
    path: '/Users/USER/Library/Application Support/Titanium/mobilesdk/osx/7.5.1.GA'
  }
]

Modules

import { modules } from 'titaniumlib';

modules.getInstalledModules([force])

Detects installed Titanium modules.

| Argument | Description | Type | Default | | | -------- | ---------------------------------------------------------- | ------- | ------- | ---------- | | force | When true, bypasses the cache and redetects the modules. | Boolean | false | optional |

Returns Object where platform > module name > version > module info.

const mods = await modules.getInstalledModules();
console.log(mods);
{
  "android": {
    "facebook": {
      "7.3.1": {
        "path": "/Users/USER/Library/Application Support/Titanium/modules/android/facebook/7.3.1",
        "platform": "android",
        "version": "7.3.1",
        "apiversion": 4,
        "architectures": "arm64-v8a armeabi-v7a x86",
        "description": "facebook",
        "author": "Mark Mokryn and Ashraf A. S. (Appcelerator)",
        "license": "Apache License Version 2.0",
        "copyright": "Copyright (c) 2014 by Mark Mokryn, Copyright (c) 2009-present by Appcelerator",
        "name": "Facebook",
        "moduleid": "facebook",
        "guid": "e4f7ac61-1ee7-44c5-bc27-fa6876e2dce9",
        "minsdk": "7.0.0"
      }
    }
  },
  "commonjs": {
    ...
  },
  "iphone": {
   ...
  },
  "windows": {
    ...
  }
}

modules.getPaths()

Returns a list of possible Titanium module install paths.

Returns Array.<String>.

const paths = modules.getPaths();
console.log(paths);
[
  '/Users/USER/Library/Application Support/Titanium/modules',
  '/Library/Application Support/Titanium/modules'
]

Project

Not available yet.

License

This project is open source under the Apache Public License v2 and is developed by Axway, Inc and the community. Please read the LICENSE file included in this distribution for more information.