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 🙏

© 2025 – Pkg Stats / Ryan Hefner

iamatjs

v0.3.0

Published

Client library to interact with Iamat's web services

Downloads

14

Readme

#IamatJS

###Install dependencies npm install

###Build client: browserify src/iamat.js --s IamatJS > dist/iamat.js

###Test for errors (open in browser): test/iamat.html

###Build app + client: browserify src/main.js -o dist/main.js

###Test app (open in browser): test/main.html

###Build client & app + client: browserify src/main.js -o dist/main.js && browserify src/iamat.js --s IamatJS > dist/iamat.js

###Build client & app + client (the 'cool' way) npm run Build


##Shorthand Usage

IamatJS.connect({atcodeName: 'test'})
        .then(function (status) {
            // 0: disconnected, 1: connected, 2: reconnecting, 3:connection lost
           console.log('connection status: ', status);
        });

##Basic Usage

// listen to connection updates
IamatJS.getConnection()
    .on('update', function (connectionModel, status) {
        // 0: disconnected, 1: connected, 2: reconnecting, 3:connection lost
        console.log('connection status: ', status);
        //console.log('connection status: ', connectionModel.getStatus());
    });
// load metadata, then load atcode information and then connect
IamatJS.getMetadata().load('test')
                        .then(function () {
                            IamatJS.getAtcode().load('test')
                                                    .then(function () {
                                                        IamatJS.getConnection().connect();
                                                    });
                        });

#API

  • set(opts): sets IamatJS parameters
    • baseUrl (optional): set base url to connect to (procotol + '://' + host + ':' + port)
  • connect(opts): sets IamatJS parameters and returns a Promise that resolves to socket connection status update
    • baseUrl (optional): set base url to connect to (procotol + '://' + host + ':' + port)
    • atcodeName (required): set atcodeName to connect to

###Metadata

IamatJS.getMetadata()
  • loadAtcodes(atcodes: Array[: String]): returns a promise that resolves to load
    • user data
    • atcodes list with respective atcode data
  • load(tag: String): (alias to loadTag)
  • loadTag(tag: String): returns a promise that resolves to load
    • user data
    • atcodes list with respective atcode data
  • get(atcodeName: String): returns a metadata atcode item that corresponds to the specified atcodeName or null
  • getAll(): returns the list of metadada atcodes or an empty array
  • getRaw(): returns original json data or null
  • getStatus(): returns a reference to the status of the last load call
    • 0: no data has been requested
    • 200: data requested success
    • 400: data requested error
  • getTag(): returns the specified tag (only gets set when the load call was successful)
  • getUser(): returns the metadata user item

###Metadata User Item

IamatJS.getMetadata().getUser()
  • createUser(data: Object): returns a promise that resolves to creating a new user (our backend handles merging sessions and not duplicating users) with the data (required - only one: facebook, twitter, linkedin or google data objects)
  • getAnonymous(): returns bool to reference if user is anonymous
  • getFacebook(): returns bool to reference if user is logged into facebook
  • getGoogle(): returns bool to reference if user is logged into google
  • getId(): return metadata user item unique identifier
  • getName(): return metadata user item name
  • getPhotoUrl(): return metadata user item photo url
  • getLinkedIn(): returns bool to reference if user is logged into linkedin
  • getTwitter(): returns bool to reference if user is logged into twitter
  • getRaw(): returns original json data
  • logout(): returns a promise that resolves to the user loggin out (will disconnect from atcode if connection had been established)

####Publisher methods The Metadata User Item object inherits from Observable, so it exposes a method on. It notifies the following events through such interface:

  • update: metadata user item information data changed

###Metadata Atcode Item

IamatJS.getMetadata().get('some-atcodeName');
IamatJS.getMetadata().getAll(); // Array of Atcode Items
  • getAtcodeName(): returns the atcode atcodeName
  • getBanner(): returns a metadata atcode banner item
  • getContext(): returns a metadata atcode context item
  • getLogo(): returns the atcode logo (media item image) or nullObject
  • getRaw(): returns original json data
  • getRequiredSocialLogins(): returns a metadata required social logins item
  • getVersion(): returns the atcode version

###Metadata Atcode Banner Item

aMetadataAtcodeItem.getBanner()
  • getBackgroundColor(): returns string to reference a hex color
  • getBannerFull(): returns the banner image (media item image) or nullObject
  • getBannerTile(): returns the banner image tile (media item image) or nullObject
  • getTextColor(): returns string to reference a hex color or null
  • getRaw(): returns original json data

###Metadata Atcode Context Item

aMetadataAtcodeItem.getContext()
  • getRaw(): returns original json data

####Publisher methods The Metadata Atcode Context Item object inherits from Observable, so it exposes a method on. It notifies the following events through such interface:

  • update: context information data changed

###Metadata Atcode Required Social Logins Item

aMetadataAtcodeItem.getRequiredSocialLogins()
  • getFacebook(): returns bool to reference if facebook login is accepted
  • getGoogle(): returns bool to reference if google login is accepted
  • getLinkedIn(): returns bool to reference if linkedin login is accepted
  • getRaw(): returns original json data
  • getTwitter(): returns bool to reference if twitter login is accepted
  • getSkip(): returns bool to reference if login can be skipped
  • isLoginRequired(): returns bool to reference if login is mandatory

###Atcode

IamatJS.getAtcode()
  • load(atcode: String): returns a promise that resolves to atcode information data
  • getConfig(): returns config json data or empty json object
  • getAbout(): returns about string or empty string
  • getAgenda(): returns agenda json data or empty agenda json object
  • getAtcodeName(): returns atcodeName string
  • getLogo(): returns atcode logo (media item image) or nullObject
  • getMap(): returns map json data or empty map json object
  • getMedia(): returns media json data or empty array
  • getMenu(): returns menu json data or empty array
  • getPlan(): returns map json data or empty plan json object
  • getPeople(): returns people json data or empty array
  • getRaw(): returns original json data
  • getStyles(): returns style json data or empty json object
  • getTOS(): returns tos json data or empty string

####Publisher methods The media object inherits from Observable, so it exposes a method on. It notifies the following events through such interface:

  • update: atcode information data changed (it is advisable to listen to specific models to subscribe to atomic/modular updates)

###Connection

IamatJS.getConnection()
  • connect(): executes a sockect connection (listen to event update to receive status)
  • disconnect(): destroys the sockect connection (if any) (listen to event update to receive status)
  • getOffset(): returns offset time with server clock
  • getStatus(): returns connection status
    • 0: disconnected
    • 1: connected
    • 2: reconnecting
    • 3:connection lost

####Publisher methods The media object inherits from Observable, so it exposes a method on. It notifies the following events through such interface:

  • update: connection status changed

###Shout

IamatJS.getShout()
  • shout(event: String, data: Object): sends a shout event via sockect connection (different events will require different data)
    • sh_text_command
      • text: String

###Sections

IamatJS.getSections()
  • get(id: String): return a section item with unique identifier id or section item null if none was found with such identifier
  • getAll(): returns the array of section items sorted by items order
  • getAllInclude(included: Bool (default true)): returns the array of section items sorted by items order filtered to included or not included sections in menu
  • getLandingSection(): returns the section item set as the landing section

###Section Item

IamatJS.getSections().get('some-id');
IamatJS.getSections().getAll(); // Array of Section Items
IamatJS.getSections().getAllIncluded(true or false); // Array of filtered Section Items
  • getId(): returns the item's unique identifier
  • getImage(): returns the item's image (media item image) or nullObject
  • getInclude(): returns the item's include in menu property
  • getRaw(): returns original json data
  • getSlug(): returns the item's unique identifier in slug case
  • getStart(): returns the item's property that defines it as landing section
  • getTitle(): returns the item's title
  • getType(): returns the item's type
    • static
    • HTML
    • HTMLList
    • youtube
    • favoriteRecipes
    • feed
    • fixture
    • iframe
    • recipes
    • separator
    • Videos
  • getOrder(): returns the item's order

###History

IamatJS.getHistory()
  • get(id: String): returns the history item that corresponds to the specified unique identifier or null
  • getAll(): returns an array of history items
  • initialFetch(howMany: int (optional), room: String (optional)): returns a Promise that resolves to the initial load of history items
  • load(howMany: int (optional), room: String (optional)): returns a Promise that resolves to the load of history items
  • setRoom(): sets the room filter

####Publisher methods The media object inherits from Observable, so it exposes a method on. It notifies the following events through such interface:

  • update: new items have been added to the list of history items (occurs both via socket or via load)
  • event: new items have arrived via socket

###History Item

IamatJS.getHistory().get('some-id');
IamatJS.getHistory().getAll(); // Array of Section Items
  • getContent(): returns a promise that resolves once the item's content has been loaded. Items that need to load content:
    • sh_html
  • getData(): returns the item's data
  • getEvent(): returns the item's event
  • getId(): returns the item's unique identifier
  • getRaw(): returns original json data
  • getTime(): returns the item's time

###History Item Poll

  • getEvent(): returns the item's event
    • sh_poll2
    • poll_answered_response2
    • poll_final_response2
  • setAnswer(responseIndex: int): send an answer to the poll
  • update(data: Object): update the item's data

###History Item Featured Item

  • getEvent(): returns the item's event
    • sh_featured_item

###History Item Tweet Action

  • getEvent(): returns the item's event
    • sh_tweet_action

###History Item Text

  • getEvent(): returns the item's event
    • sh_text_command

###History Item Image

  • getEvent(): returns the item's event
    • sh_img

###History Item Ad Image with link

  • getEvent(): returns the item's event
    • sh_ad_img_link

###History Item Html

  • getEvent(): returns the item's event
    • sh_html

###History Item Media

  • getEvent(): returns the item's event
    • sh_media

###History Item Post

  • getEvent(): returns the item's event
    • sh_post

####How to:

var receivedEvent = function (historyModel, historyItem) {
    console.log('Received event');
    // all 3 access the item
    console.log('Item:', historyItem, historyModel.get(historyItem.getId()), IamatJS.getHistory().get(historyItem.getId()));
    console.log('Item id:', historyItem.getId());
    console.log('Item event:', historyItem.getEvent());
    console.log('Item data:', historyItem.getRaw());
    historyItem.getContent().then(function (content) {
        console.log('Item content:', content);
    });
};
IamatJS.getHistory().on('event', receivedEvent);

###Ranking

IamatJS.getRanking()
  • getAll(): returns the array of ranking items
  • getRaw(): returns the original json of ranking items
  • load(): returns a promise that resolves once the ranking data has been loaded. Returns an array of ranking items.

###Ranking Item

IamatJS.getRanking().load().then(function (rankingItems) {
    rankingItems; // Array of Ranking Items
    IamatJS.getRanking().getAll() // Array of Ranking Items
});
  • getId(): returns the item's unique identifier
  • getName(): returns the item's name
  • getPhoto(): returns the item's image (media item image)
  • getPoints(): returns the item's points
  • getPosition(): returns the item's position
  • getRaw(): returns original json data

###Markers

IamatJS.getMarkers()
  • get(id: String): returns a marker item with the unique identifier if it exists || null
  • getAll(): returns the array of marker items
  • getRaw(): returns the original json of marker items
  • load(): returns a promise that resolves once the markers data has been loaded. Returns an array of marker items.

###Marker Item

IamatJS.getMarkers().load().then(function (markerItems) {
    markerItems; // Array of Marker Items
    IamatJS.getMarkers().getAll() // Array of Marker Items
});
  • getFilter(): returns the item's filter value
  • getFrom(): returns the item's from value
  • getHistory(): returns the item's history (make sure to call this after using the load method)
  • getId(): returns the item's unique identifier
  • getName(): returns the item's name value
  • getRoom(): returns the item's room value
  • getTill(): returns the item's till value
  • getRaw(): returns original json data
  • getRawHistory(): returns original json data for the item's history
  • load(): returns a promise that resolves one the item's history data has been loaded. Returns an array of history items.
// assuming markerItem
markerItem.load().then(function (history)  {
    console.log('MarkerItem History data raw: ', markerItem.getRawHistory());
    console.log('MarkerItem History data: ', markerItem.getHistory());
    console.log('MarkerItem History data: ', history);
});

###People

IamatJS.getPeople()
  • get(id: String): return the people item that refers to the unique id
  • getAll(): returns the array of people items
  • getRaw(): returns the original json of people items

####Publisher methods The people object inherits from Observable, so it exposes a method on. It notifies the following events through such interface:

  • update: data has changed

###People Item

IamatJS.getPeople().get('some-id');
IamatJS.getPeople().getAll(); // Array of People Items
  • getBio(): returns the item's bio
  • getCompany(): returns the item's company
  • getId(): returns the item's unique identifier
  • getName(): returns the item's name
  • getPhot(): return the item's image (media item image)
  • getPosition(): returns the item's position
  • getRaw(): returns original json data
  • getTwitter(): returns the item's twitter

###VOD

IamatJS.getVOD()
  • get(id: String): return a promise that resolves to null if there is no marker referenced by the provided id or an array (could be empty) of history items