Chained time management

At the beginning was the Promise...

deepjs uses and abuses of Chaining Pattern. Before all for time management, as all deepjs chained and asynchrone management is based on Promises :

deep.when("hello world")
.done(function(success){ /*...*/ })
.fail(function(error){ /*...*/ })
.log();

But deepjs uses chained syntax also for ergonomy and readability, and provides, by example, chained API for deepjs specific manipulation :

deep.nodes({ a:"hello" })
.up({ b:"world" })
.bottom({ c:function(){ return this.a + " " + this.b; } })
.run("c")
.log();

As deepjs API and scope is really large, and could be used to implement lot of things, we have split APIs in differents chains dedicated to specific tasks :

promise chain
Base API for all chains. Base of time management.
deepjs chain
Collects all the deepjs specific API (up/bottom, queries, run, deepLoad,...).
restful chain
Acts as mediator for restful stores.
fs chain
Manages async file system calls (nodejs).
shell chain
Manages shell sessions and async commands.
ssh chain
Manages SSH sessions and async commands.
...
...

Each chain is based on Promise and so could be seen as a "super-promise" with an extended API.