* Add state and taskName in elastic page mappings
* Add state and taskName in elastic page interface
* Create page with PROCESSING state before scrapping
* Update createArticleRequest API
* Fix tests
* Add default state for pages
* Update createArticle API
* Update save page
* Update save file
* Update saving item description
* Show unable to parse content for failed page
* Fix date parsing
* Search for not failed pages
* Fix tests
* Add test for saveUrl
* Update get article saving request api
* Update get article test
* Add test for articleSavingRequest API
* Add test for failure
* Return new page id if clientRequestId empty
* Update clientRequestId in savePage
* Update clientRequestId in saveFile
* Replace article with slug in articleSavingRequest
* Add slug in articleSavingRequest response
* Depreciate article
* Use slug in web
* Remove article and highlight fragments
* Query article.slug on Prod
* Show unable to parse description for failed page
* Fix a bug having duplicate pages when saving the same url multiple times
* Add state in response
* Rename variables in removeArticle API
* Rename state
* Add state in response in web
* Make state an enum
* Open temporary page by link id
* Use an empty reader view as the background for loading pages
* Progressively load the article page as content is loaded
* Add includePending flag in getArticles API
* Set includePending = true in web
* Add elastic update mappings in migration script
* Add elastic mappings in docker image
* Move index_settings.json to migrate package
* Remove elastic index creation in api
* Move elastic migrations to a separate directory
* Remove index_settings from api docker image
Co-authored-by: Jackson Harper <jacksonh@gmail.com>
This adds the domain of the saved link to the search index in
two formats, the full domain like www.omnivore.app and just
the secondary domain like `omnivore`.
This also adds some ranking to search, making title, description,
and domain more highly ranked than the content but search results
wont change as we still order by saved_at.
Because this is just used to execute the migrations we can
use the non-locked versions here and don't need to pull in all
of the root workspace packages.