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

@hailer-oy/hailer-cli

v1.1.6

Published

Hailer API CLI tool

Downloads

277

Readme

Hailer CLI

A Command Line interface to Hailer. It can also be used to programmatically access Hailer.

Usage as Cli

All backend Socket API commands are available in the CLI.

Tab completion is available.

The result of each command is stored in the result variable.

Install

npm install -g https://bitbucket.org/hailer/hailer-cli.git

Run on Linux or OSX

[email protected] CORE=https://api.hailer.biz hailer-cli

Run on Windows

set [email protected]
set CORE=https://api.hailer.biz
hailer-cli

Example usage

Example usage:

wall2.new_post({ subject: 'This is a wall post.', text: 'Look, this is a cool wallpost made from the Cli.' })
wall2.remove_post(result._id)

Programmatic Usage

Login with username and password

This example creates a wall post in Hailer, and then removes it after five seconds, and exits.

Create a new nodejs project (npm init) or use an existing. Add hailer-cli as a dependency, using npm install https://bitbucket.org/hailer/hailer-cli.git

mkdir my-hailer-app
cd my-hailer-app
npm init
npm install https://bitbucket.org/hailer/hailer-cli.git

Create a new file run.js and paste the following code:

const { Cli } = require('hailer-cli');

const cli = new Cli('https://api.hailer.biz', username, password);

cli.on('ready', () => {
    cli.request('wall2.new_post', [{ subject: 'This is a wall post.', text: 'The content of my post' }], (err, data) => {
        if (err) { return console.log('Failed posting to wall', err, data); }

        console.log('wall2.new_post response:', data);

        setTimeout(() => {
            cli.request('wall2.remove_post', [data._id], (err, data) => {
                cli.disconnect();
            }); 
        }, 5000);
    })
});

cli.on('error', (err) => {
    console.log('Cli error:', err);
});

Set the username and password parameters to a valid Hailer account.

Log in to Hailer using the browser and go to the Feed to see the script in action.

Start the program:

node run.js

Have fun!

Login using existing Hailer session key

Re-using a Hailer sessionKey instead of logging in using username and password.

const { Cli } = require('hailer-cli');

const cli = new Cli('https://api.hailer.biz');

cli.once('connect', () => {
    cli.request('resume', [sessionKey], (err, data) => {
        cli.request('wall2.new_post', [{ subject: 'This is a wall post.', text: 'The content of my post' }], (err, data) => {
            if (err) { return console.log('Failed posting to wall', err, data); }

            console.log('wall2.new_post response:', data);

            setTimeout(() => {
                cli.request('wall2.remove_post', [data._id], (err, data) => {
                    cli.disconnect();
                }); 
            }, 5000);
        })
    })
});

cli.connect();

Set the sessionKey parameter which you have acquired by some other means.

Export process

Log in and run

networks()

to get a list of netowrks you have permission to. Then switch to the desired network unsing

core.switch_ecosystem('5579d000a9bbb6895dbcc74e')

Then list processes with the process convenience function (uses process.list)

processes()

Then export the process you wish by:

templateFromProcess('6779d000a9bbb6895dbcc777')

This can then be stored in a json file using:

fs.writeFileSync('./process.json', JSON.stringify(result, null, 2))