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 🙏

© 2026 – Pkg Stats / Ryan Hefner

tabnews.js

v1.1.0

Published

Uma biblioteca javascript para interagir com a API do tabnews

Downloads

0

Readme

Uma biblioteca javascript feita para interagir com a API do Tabnews

Instalação

npm install tabnews.js
yarn add tabnews.js

Exemplo de uso

import { Client } from "tabnews.js"
const client = new Client()

client.login({
    email: "[email protected]",
    password: "examplePassword",
    //ou então você pode logar direto pelo token, porém o token fica inválido depois de algum tempo.
    token: "token"
}).then((user) => {
    console.log(`Logado na conta ${user.username} com o token ${user.token}`)
}).catch(console.error)

Documentação(Não está pronta.)

Alerta: recomendo expandir tudo caso for ler as docs!

Eventos: ready, destroyed

Construtor

O constructor da classe Client aceita 1 parâmetro opcional, que é um objeto de configuração O objeto de configuração se parece com isso: |Nome|Descrição|tipo |--|--|--| |tabnewsUrl|uma url customizada do tabnews.|string, opcional |log|se o client deve usar o logger ou não|boolean, opcional |customAgentUser|um agent user customizado pro client, use o nome do seu projeto aqui!|string, opcional |debug|se o client deve usar o modo debug ou não(não é recomendado usar)|boolean, opcional


Métodos do client

Método login

O metódo login aceita 1 parâmetro obrigatório, que é um objeto de login. O objeto de login se parece com isso: |Nome|Descrição|tipo |--|--|--| |email|o email da conta|string, opcional |password|a senha da conta|string, opcional |token|o token da conta|string, opcional

Caso você use um token, você não precisa usar um email e password, caso você não use um token, você precisa usar o email e o password

esse método retorna uma Promise contendo um ClientUserData, ele também emite o evento ready

Método destroy

Este método destroi a conexão do client com a api. Para você se conectar novamente você tera que usar o método login ele também emite o evento destroyed


Propriedades do client

Nome|Descrição|tipo |--|--|--| |connected|se o client está conectado|boolean |token|o token do client|string |contents|um gerenciador de contéudos|ContentManager |status|um gerenciador do status do tabnews|StatusManager |users|um gerenciador de usuários|UsersManager |user|um gerenciador do usuário do client|UserManager

Vale lembrar que as propriedades contents, status, users, user só estão disponiveis após o login do bot!


ContentManager

Um content manager, como o nome já diz é responsavel por gerenciar os conteudos. Através dele você vai consegur publicar, deletar, editar, dar upvote/downvote em conteúdos, obter os conteúdos relevantes, etc... A seguir estão os metodos de um ContentManager

Método get

O método get obtém um conteudo com base em 2 parâmetros obrigatórios, sendo eles author e slug. Exemplo: se o author for igual a Gustavo33 e o slug for tabnews-js-uma-biblioteca-javascript-para-interagir-com-a-api-do-tabnews o contéudo que ele vai obter vai ser: https://www.tabnews.com.br/Gustavo33/tabnews-js-uma-biblioteca-javascript-para-interagir-com-a-api-do-tabnews Esse método retorna uma Promise contendo um Content

Método getContents

Este método obtém os contéudos mais novos, mais antigos, e mais relevantes com base no primeiro parâmetro. o segundo parâmetro é a página que ele vai obter os conteúdos(Cada página tem 30 conteúdos) Pârametros: |Nome|Valores|obrigatório| |--|--|--| |strategy|"new" - "old" - "relevant"|Não, o default é "new". |page|Qualquer número|Não, o default é 1.

Esse método retorna uma Promise contendo um Array de Contents.

Método post

Este método posta um contéudo, ele aceita 1 pârametro obrigatório, que o objeto listado abaixo: |Nome|Descrição|obrigatório|Efeito |--|--|--|--| |parentId|o id de um conteúdo|não obrigatório|faz o conteúdo ser uma resposta ao conteúdo com id igual ao parentId| |customSlug|um slug customizado|não obrigatório|adiciona um slug customizado| |title|o título do conteúdo|não obrigatório caso seja uma resposta|adiciona um título ao conteúdo| |body|o corpo do conteúdo, você pode usar markdown aqui nesse campo|obrigatório|adiciona texto ao conteúdo| |sourceUrl|a url da fonte|não obrigatório|adiciona uma fonte ao conteúdo|

Esse método retorna uma Promise contendo um Content

Método edit

Este método edita um conteúdo, ele aceita 3 pârametros obrigatórios, sendo eles: |Nome|Descrição| |--|--| |author|o autor do conteúdo| |slug|o slug do conteúdo| |content|o que vai ser alterado|

o pârametro content é um objeto, as propriedades desse objeto estão listadas abaixo: |Nome|Descrição|obrigatório|Efeito |--|--|--|--| |title|o título do conteúdo|não obrigatório|adiciona um título ao conteúdo| |body|o corpo do conteúdo, você pode usar markdown aqui nesse campo|não obrigatório|adiciona texto ao conteúdo| |sourceUrl|a url da fonte|não obrigatório|adiciona uma fonte ao conteúdo|

Esse método retorna uma Promise contendo um Content

Método delete

O método delete deleta um conteudo com base em 2 parâmetros obrigatórios, sendo eles author e slug. Exemplo: se o author for igual a Gustavo33 e o slug for tabnews-js-uma-biblioteca-javascript-para-interagir-com-a-api-do-tabnews o contéudo que ele vai deletar vai ser: https://www.tabnews.com.br/Gustavo33/tabnews-js-uma-biblioteca-javascript-para-interagir-com-a-api-do-tabnews Esse método retorna uma Promise contendo um Content

Método upvote e downvote

os Métodos upvote e downvote funcionam com base em 2 parâmetros obrigatórios, sendo eles author e slug. E com base nesses pârametros ele da um upvote/downvote Esse método retorna uma Promise contendo um objeto parecido com isso: |Nome|Descrição| |--|--| |tabcoins|O numero de tabcoins que o contéudo ficou depois do upvote/downvote|

Método watch

o método watch começa a assistir um contéudo, retornando um Watcher. Pârametros: |Nome|Descrição|obrigatório |--|--|--| |author|o autor do conteúdo que ele vai assistir.|sim |slug|o slug do conteúdo que ele vai assistir.|sim |observeWhat|em que o watcher deve assistir por mudanças|não, o padrão é ele assistir por todos. |ms|o tempo que o watcher vai procurar por mudanças(em milisegundos)|não, o padrão é 2 minutos e 5 segundos


UsersManager

Um UsersManager, como o nome já diz é responsavel por gerenciar os usuários. Através dele você vai consegur obter um usuário, obter os conteúdos relevantes de um usuário, etc... A seguir estão os metodos de um UsersManager

Método get

O método get obtém um usuário com base em 1 parâmetro obrigatório, sendo ele username. Exemplo: se o username for Gustavo33, o usuário que ele vai obter vai ser: https://www.tabnews.com.br/Gustavo33 Esse método retorna uma Promise contendo um UserData

Método getContentsOfUser

Este método obtém os contéudos mais novos, mais antigos, e mais relevantes de um usuário com base no primeiro e segundo parâmetro. o terceiro parâmetro é a página que ele vai obter os conteúdos(Cada página tem 30 conteúdos) Pârametros: |Nome|Valores|obrigatório| |--|--|--| |username|Nome do usuário que você quer obter|Sim |strategy|"new" - "old" - "relevant"|Não, o default é "new". |page|Qualquer número|Não, o default é 1.

Esse método retorna uma Promise contendo um Array de Contents.

Método watch

o método watch começa a assistir um usuário, retornando um Watcher. Pârametros: |Nome|Descrição|obrigatório |--|--|--| |username|o username do usuário que ele vai assistir.|sim |observeWhat|em que o watcher deve assistir por mudanças|não, o padrão é ele assistir por todos. |ms|o tempo que o watcher vai procurar por mudanças(em milisegundos)|não, o padrão é 2 minutos e 5 segundos

UserManager

Um UserManager, é responsavel por gerenciar o usuário do client. Através dele você vai consegur obter o usuário do client, editar o usuário do client, etc... A seguir estão os metodos e propriedades de um UserManager

Método get

O método get atualiza o usuário do Client. Esse método retorna uma Promise contendo um ClientUserData

Método edit

Este método edita o usuário do client, ele aceita 1 pârametro que é um objeto, o objeto se parece com isso: |Nome|Descrição| |--|--| |username|o username do usuário|

Esse método retorna uma Promise contendo um ClientUserData

Método watch

o método watch começa a assistir o usuário do client, retornando um Watcher. Pârametros: |Nome|Descrição|obrigatório |--|--|--| |observeWhat|em que o watcher deve assistir por mudanças|não, o padrão é ele assistir por todos. |ms|o tempo que o watcher vai procurar por mudanças(em milisegundos)|não, o padrão é 2 minutos e 5 segundos

Propriedades de um UserManager

|Nome|Descrição|tipo |--|--|--| |email|o email do client|string |token|o token do client|string |id|o id do client|string |username|o username do client|string |features|as features do client|array |tabcoins|a quantidade de tabcoins do client|number |tabcash|a quantidade de tabcash do client|number |created_at|quando que o client foi criado|Date |updated_at|ultima vez que o client foi modificado|Date


StatusManager

Um StatusManager, é responsavel por gerenciar o status do tabnews Através dele você vai obter o status do tabnews.

Método get

o método get obtém o status do tabnews. Esse método retorna uma Promise contendo um Status

Um Watcher, é uma classe que assiste por mudanças um Conteúdo/Usuário. Todos os Watchers são iguais, a única coisa que muda é o que ele assiste. Eventos do watcher: watcherUpdate

Métodos de um watcher

Método start

o método start inicia o watcher, e faz ele começar a assistir o Conteúdo/usuário.

Método destroy

o método destroy destrói o Watcher, ou seja, para de assistir ao Conteúdo/usuário. Você pode iniciar novamente o watcher pelo método start.

Tipos de informação

UserData

Propriedades

|Nome|Descrição|tipo |--|--|--| |id|o id de um usuário|string |username|o username de um usuário|string |features|as features de um usuário|array |tabcoins|a quantidade de tabcoins de um usuário|number |tabcash|a quantidade de tabcash de um usuário|number |created_at|quando que o usuário foi criado|Date |updated_at|ultima vez que o usuário foi modificado|Date

ClientUserData

Propriedades

|Nome|Descrição|tipo |--|--|--| |email|o email do client|string |token|o token do client|string |id|o id do client|string |username|o username do client|string |features|as features do client|array |tabcoins|a quantidade de tabcoins do client|number |tabcash|a quantidade de tabcash do client|number |created_at|quando que o client foi criado|Date |updated_at|ultima vez que o client foi modificado|Date

Content

Propriedades

|Nome|Descrição|tipo |--|--|--| |id|o id do conteúdo|string| |parent_id|o id do conteúdo root|string| |slug|o slug do conteúdo|string |title|o título do conteúdo|string |body|o texto do conteúdo|string |status|o status do conteúdo|string |source_url|a fonte do conteúdo|string |thumbnail|a thumbnail do conteúdo|string |tabcoins|o número de tabcoins do conteúdo|number |created_at|data da criação do conteúdo|Date |published_at|data da postagem do conteúdo|Date |updated_at|data de quando o conteúdo foi editado|Date |deleted_at|data de quando o conteúdo foi deletado|Date |is_children|se o conteúdo é uma resposta|boolean |is_root|se o conteúdo é root|boolean |has_children|se o conteúdo tem respostas|boolean |owner|o criador do contéudo| Nome Descrição Tipo id O id do criador string username O username do criador string

Métodos

Método fetchOwner

O método fetchOwner obtém o usuário criador do conteúdo. Retorna uma Promise contendo um UserData

Método fetchParent

O método fetchParent obtém o conteúdo root do conteúdo atual. Retorna uma Promise contendo um Content

Método fetchChildren

O método fetchChildren obtém as respostas do conteúdo atual. Retorna uma Promise contendo um Array de Content

Método edit

Este método edita o conteúdo, ele aceita 1 parâmetro obrigatório, sendo ele: |content|o que vai ser alterado| |--|--|

o pârametro content é um objeto, as propriedades desse objeto estão listadas abaixo: |Nome|Descrição|obrigatório|Efeito |--|--|--|--| |title|o título do conteúdo|não obrigatório|adiciona um título ao conteúdo| |body|o corpo do conteúdo, você pode usar markdown aqui nesse campo|não obrigatório|adiciona texto ao conteúdo| |sourceUrl|a url da fonte|não obrigatório|adiciona uma fonte ao conteúdo|

Esse método retorna uma Promise contendo um Content

Método delete

O método delete deleta o conteúdo. Esse método retorna uma Promise contendo um Content

Método upvote e downvote

os Métodos upvote e downvote não tem nenhum parâmetro. Esse método retorna uma Promise contendo um objeto parecido com isso: |Nome|Descrição| |--|--| |tabcoins|O numero de tabcoins que o contéudo ficou depois do upvote/downvote|

Aqui estão os eventos do tabnews.js, você pode escutar eles com:

<client ou watcher>.on("Nome do evento", (data) => {})

Ready

O evento ready é disparado quando o client faz login no tabnews, ele traz consigo um ClientUserData

<client>.on("ready", (clientUserData) => { console.log(clientUserData) })

Destroyed

O evento destroyed é disparado quando o client é destruído, ele traz consigo um ClientUserData

<client>.on("destroyed", (clientUserData) => { console.log(clientUserData) })

WatcherUpdate

o evento watcherUpdate é disparado quando um Watcher faz um update, ele traz consigo uma informação variada dependendo de o que você está assistindo.

<watcher>.on("watcherUpdate", (data) => { console.log(data) })

Problemas?

Caso você tenha um problema ou não entenda algo da documentação, não hesite em abrir uma issue ou entrar no discord do TabNews