# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased] 

## [1.0.0+]
- Modalidade monorepo

## [0.7.0-beta] - unreleased
### Added

- O bundle do webpack adiciona um comentário no topo do arquivo com informações do pacote.

- Criada uma biblioteca para gerenciamento do `package.json` (lib/tools/pkgjson)

  Atualmente, lida com:
  - Adicionar dependencias ao `package.json` (e ordenar)
  - Remover dependencias do `package.json`
  - Ler o conteúdo do `package.json`

- Nova maneira de interpretar TEXT_NODE (#71)

  A partir de agora, o que **antes** era migrado para
  ```html
  <Label>
    nossa que</Label><br>
    <Label>dahora</Label>
    <Label href="...">link para algum lugar</Label><Label>.</Label>
  ```

  **agora resulta em** (sem indentação):
  ```html
  <Label>
    <FormattedString>
      <Span text="nossa que" />
      <!-- <br> -->
      <Span text="dahora" />
      <Span text="link para algum lugar" href="..." />
      <Span text="." />
    </FormattedString>
  </Label>
  ```

- Adicionada a opção para selecionar em `r/bi/questions`: 
"Just manage package.json" (`add`, `addDev`, `remove`, `run`)

### Changed

- O módulo `textnode-to-span` foi movido para `lib/tools/dom`.

- Reverted: webpack compila para somente `build/bundle.js`.

- Removido o espaco entre as tags `Page` em `r/m/uf/vp/add-page`.


## [0.6.0] - 2019-11-04
### Added
- As tags a serem convertidas possuirão uma classe que indicará o nome antigo ao seu elemento (h1 -> Label.h1).

- As definições de tags `li` e `select` serão commentadas. Por exemplo:
  ```html
  <li><Label>oi</Label></li>
  <select>...</select>
  ```
  Será convertdo para:
  ```html
  <!--<li>--><Label>oi</Label><!--</li>-->
  <!--<select>...</select>-->
  ```

- Ao final da execução, o usuário será informado para definir o gerenciador de pacotes no `nativescript-cli` com ` $ tns package-manager set ...`

### Changed
- **A PARTIR DE AGORA, O PROJETO ESTARÁ LICENCIADO SOB A LICENÇA GPL V3.0 <https://www.gnu.org/licenses/>**

- As tags relacionadas a texto serão renomeadas para o elemento `Label` (#59).

- Antes de executar os comando `git init` e `git checkout ...`, é verificado se está registrado algum executavel `git` no PATH.

- Os pacotes relacionados ao gulp e o arquivo `Gulpfile.js` foram removidos,
em função do novo script `yarn dev`.

- `convert-to-lstyle` -> Se algum `display` for definido como `^inline-*`, será ignorado.

- Refatoração em `renameTags`
  O rename_tag que estava em `r/m/uf/v/ut` foi refatorado
  e transferido a `lib/tools/dom/rename-tags`

  Agora o módulo `lib/tools/dom/rename-tags` possui duas exportações:
  `renameByDom` e `renameByHtml`

- README melhorado

### Fixed
- #53 -> As tags a serem renomeadas em semantic-tags_cs e que não possuem
fechamento (</...>) será adicionado o auto fechamento da tag (<.../>)

- Os links relacionados às versões lançadas no `CHANGELOG.md` estavam direcionando à outro repositório.

## [0.5.0] - 2019-10-13
### Added
- Criado o template para issues do tipo `bug report` e `feature request`

- Robots (#1)
  - migrate 
    - update-router -> Instalar o nativescript-vue-navigator se o usuário quiser

- webpack
  Agora há duas versões compiladas disponíveis: `build/bundle.js` e `build/src-build`.

  A primeira é uma versão minificada. A segunda é a versão transpilada, mas em seus respectivos arquivos. A performance pode ser maior no primeiro caso.

### Changed
- Robots (#1)
  - before-migrate
    As dependências a serem instaladas agora possuem um delimitador da versão,
    que ajuda na prevenção de incompatibilidade de APIS entre pacotes e o template.

### Fixed
- #44 -> Adicionado uma condição para executar o `babel.config.js` está rondando sobre `TNS_ENV`.

- #40 -> Utilizar o parametro `VNode` como sendo uma array no r/uep .

## [0.4.0] - 2019-09-20
### Added
- #36 Template generico e template do App_Resources
- Add migrate-uf-vue-pages
- Add migrate-uf-vue-st_cs

### Fixed
- #32 -> O comando `spawnlog` deve ser chamado de `logspawn`. A versão v0.2 da cli foi lançada.

- #33 -> No comando (script) `build`, a remoção da pasta build vem antes dos outros comandos.

- #34 -> Utilizar o componente `p` ao invés de `span`.

## [0.3.1] - 2019-08-25
### Fixed
- #22 -> O código do update-files caiu na pegadinha do async/await em loops. Só atualizava os aquivos ao final da execução do processo de migração (depois de robots/finish).

- #24 -> O correto é substituir `$mount('...')` por `$start()` e não `start()`.

- #25 -> O update-template-tags estava substituindo alguns conteúdos que não remetem a definição de tags (como atributos e textos).

- #26 -> O update-template-tags estava procurando por `div` em `<div>` mas somente `router` em `<router-view>`.

- #27 -> Self-closing tag não é um recurso disponível para todas as marcações, ou seja, componentes como `<MyComponent />` não estavam seguindo à árvore original.

## [0.3.0] - 2019-08-22
### Added
- Robots (#1)
  - migrate 
    - update-files
      - js -> Atualizar a importação de `vue` para `nativescript-vue`.
      - vue
        - ne -> Converter TEXT_NODE para span
        - st -> Converter tags semanticas para div, p, span
        - ls -> Procurar por certas definições de estilo no css e adiciona-las como propriedade `lStyle`
        - tt -> O "parse" do dom deixa as tags minusculas, fazendo com que alguns componentes não sejam encontrados.

    - update-entry-point
      - Importar o ftns/vue e utiliza-lo com `Vue.use`
      - Substituir `.$mount("#app")` por `.start()`
      - Substituir `h(App)` por `h('Frame', h(App))`

### Fixed
- Corrigido: agora a formatação do prettier também captura os arquivos da pasta src.

## [0.2.0] - 2019-08-16
### Added
- Robots (#1)
  - finish 
    - update-paths -> Atualizar os nomes dos arquivos seguindo algumas convenções.

    - template -> Copiar arquivos genéricos e talvez necessários para projetos nativescript-vue

    - clear-residual-files -> Remover `temp-migration-tool.json`

    - help-and-run -> Mostrar informações adicionais (run, ajuda).
### Fixed
- Corrigido o erro na execução de `toolbox.remove(filePath)` ao invés de `toolbox.filesystem.remove`.

## [0.1.0] - 2019-08-13
### Added
- Robots (#1)
  - before-init -> Rodar comandos para conhecer mais o workspace, como, repositório git e algumas perguntas sobre o projeto vue.

  - before-migrate -> Instalar as dependências necessárias, e, se existir, rodar o script `lint`. 

## [0.0.1] - 2019-08-13
- "Olá, mundo! Meu nome é Raimundo"

[Unreleased]: https://github.com/friendly-tnsvue/migration-service/compare/v0.6.0...HEAD

[0.6.0]: https://github.com/friendly-tnsvue/migration-service/releases/tag/v0.6.0
[0.5.0]: https://github.com/friendly-tnsvue/migration-service/releases/tag/v0.5.0
[0.4.0]: https://github.com/friendly-tnsvue/migration-service/releases/tag/v0.4.0
[0.3.1]: https://github.com/friendly-tnsvue/migration-service/releases/tag/v0.3.1
[0.3.0]: https://github.com/friendly-tnsvue/migration-service/releases/tag/v0.3.0
[0.2.0]: https://github.com/friendly-tnsvue/migration-service/releases/tag/v0.2.0
[0.1.0]: https://github.com/friendly-tnsvue/migration-service/releases/tag/v0.1.0
[0.0.1]: https://github.com/friendly-tnsvue/migration-service/releases/tag/v0.0.1