# AME APP TOOLS

CLI para desenvolver mini apps, sucinto e clean como um haikai.

## Integração Contínua - CI

Para utilizar a cli configure as seguintes variáveis de ambiente:  
 - AME_CLI_CLIENT_ID=&lt;clientId>
 - AME_CLI_CLIENT_SECRET=&lt;clientSecret>

# Comandos disponíveis

## ame-app-tools
```js
ame-app-tools
```
Mostra a lista de comandos disponíveis.

---------------------------------------------------
## signup

Faz o seu cadastro como desenvolvedor de mini apps

---------------------------------------------------
## create

Cria um projeto com um mini app totalmente funcional

---------------------------------------------------
## start

Inicia o seu mini app em um workspace online

---------------------------------------------------
## publish

Cria e envia um build do mini app para ser avaliado por um revisor antes de ser publicado

---------------------------------------------------
## build

Cria e envia um build do mini app para ser avaliado por um revisor antes de ser publicado

---------------------------------------------------
## self-update

Desinstala a versao antiga e instala a mais nova


# Comandos para testes

## open-share 

Abre um compartilhamento do share-api

## test-initialization-params

Inicia o seu mini app passando parâmetros em formato compatível com querystring*. Os dados passados serão convertidos em um objeto **plano** onde a chave e o valor serão do tipo **string**

```
ame-app-tools test-initialization-params 'batata=frita&cachorro=quente'
```
Estes parâmetros podem ser acessados em seu mini app invocando o método [**Ame.getInitializationInfos()**](https://super-app-client.calindra.com.br/docs/ame-super-app-client/#getinitializationinfos)

```
Ame.getInitializationInfos().then(infos => {
      console.log("infos: ", infos);
    }
);
```

As informações de retorno estão dentro do atributo **data** do objeto de retorno.

```
infos:  [
    {
        "type": "NAVIGATION",
        "data": {
            "batata": "frita",
            "cachorro": "quente"
        }
    }
]
``` 

## order-details
Inicia o seu mini app passando o id de um pedido.

```
ame-app-tools order-details 1b8bb06b-b217-460a-9a41-72279a0f8123
```

Esse id pode ser acessado através do método [**Ame.getOrderDetails()**](https://super-app-client.calindra.com.br/docs/ame-super-app-client/#getorderdetails) no mini app

```js
Ame.getOrderDetails()
    .then(orderDetails => {
		console.log(orderDetails)
		/* Exemplo de saída desse console.log:
		{
			orderId: "1b8bb06b-b217-460a-9a41-72279a0f8123"
		} */
	})
	.catch(response => {
	    console.log("Erro ao recuperar detalhes do pedido: ", response)
	})
```
---------------------------------------------------

# Changelog
<details>
    <summary><b>v1.4.0</b></summary>  
    <p>Registrando o mini app na plataforma ao chamar o comando create, antes era somente no publish</p>
    <p>O log por padrão não exibe mais o userAgent</p>
    <p>Novo formato de qrcode (beta)</p>
    <p>Novo comando open-share</p>
    <p>O comando signup abre sem warning</p>
    <p>Abrindo a documentação no site definitivo</p>
    <p>Verificando a versão mínima do node antes de usar a cli</p>
    <p>Abrindo o qrcode fora do terminal para evitar que o log esconda o mesmo</p>
</details>

## Documentação dos Componentes 

Acesso a Documentação dos Componentes em: 

[Click aqui!](https://developer.ame.calindra.com.br/)


# Variaveis de ambiente

## SERVERLESS_CODE_COMPRESSION
Determina o tipo de compressao a ser usada nos codigos de serverless que serão transmitidos ao compilador: 
- shrink: o codigo fonte será enviado compactado
- base64: o codigo fonte será enviado codificado em base64 sem compactacao
- none: nenhuma compactacao será aplicada ao codigo fonte
