A biblioteca define uma série de
módulos
para buscar dentro da variável window['webpackJsonp'],
que é o output do Webpack.
A cada 100ms o código
wapi.js
verifica se existe e insere o "parasite" no window['webpackJsonp'].
Esse "parasite" é uma
função
que é chamada com a lista de módulos como parâmetro.
A função então percorre os módulos procurando por objetos, carregando os módulos identificados pelas keys desses objetos, e verifcando se os módulos são os que estão sendo procurados.
Cada um desses módulos são adicionados à variável window.Store, exceto o módulo chamado Store,
que é um objeto que inclui outros módulos (provavelmente esse módulo é a store do Redux que o WhatsApp utiliza).
Então a função faz um merge do módulo Store no objeto window.Store.
Após a execução do "parasite", a variável window.Store possui os módulos que o WhatsApp utiliza para se comunicar com
o servidor do WhatsApp.
Exemplo de
função
da biblioteca WAPI usando os módulos em window.Store:
O código em
browser.ts
utiliza o Puppeteer
para iniciar um browser, abrir a página do WhatsApp Web e injetar a biblioteca wapi.js.
Após isso, toda a interação é executada dentro da página desse browser, utilizando as funções exportas pelo WAPI.





