* Improve Foxx cluster resilience
Fixes#2083Fixes#2384Fixes#2408
Addresses #1892
* Port old Foxx API
* Implement single-file services
* Add console.errorStack/warnStack/infoStack helpers
* Simplify serviceInfo validation
* Extract github/upload logic into Aardvark and old FM API
* Move generator logic into Aardvark
* Move zip/js buffer logic into FM core
* Add Foxxmanager tests
* Send empty response when no README
* Disambiguate script arg format
Historically we allow passing an array of positional arguments or an arbitrary first argument.
This is surprising behaviour, so we should just always treat the value as a first argument.
* Rebuild bundle in development mode
* Nicer HTTP docs formatting
* Create Foxx HTTP docs
* Simplify service upload handling
* Remove inline swagger docs
* Implement public download route
* Consistency
* Rebuild aardvark
* Move bundle route into /_api/foxx/_local
* Rebuild Swagger API docs
* Add changes to CHANGELOG
* More docs
The require function should now behave as expected and treat ArangoDB's module paths as sources for "external" modules.
The "assert", "buffer" and "path" modules have been moved out of ./js/node into the bootstrap modules.
The module "org/arangodb/foxx/arangoApp" (as well as any modules depending on it) is incompatible with the new module loading behaviour and will be have to be rewritten from scratch.
The "Package" class has been removed entirely and is no longer needed.
Support for the database-stored modules is currently missing and needs to be re-implemented within the module loader.