20 Commits

Author SHA1 Message Date
Pavel
de0516f305
fixes (#38)
* Fix error message when an incorrect service has been called.

* Fix return type of the handler in registerServiceFunction
2021-04-13 17:04:36 +03:00
folex
480c8aa850
Allow ws transport (#37) 2021-04-13 15:11:52 +03:00
Pavel
5355eeb152
Extract defaults (#34)
* Extracted default request flow builder behavior out of the constructor

* Remove init_peer_id variable, which stands in the way when building apps with aquamarine
2021-03-29 23:52:46 +03:00
Pavel
0ff10a25de
update aqua version (#33)
* Bump aquamarine version

* Add connection options
2021-03-25 21:33:27 +03:00
Pavel
f732a30eb8
Swapped secio with noise (#32)
Update libp2p-related packages and switch from secio to noise
2021-03-10 15:56:12 +03:00
Pavel
6013f623d4
Tidy up api (#31)
Tidy up api
2021-03-05 17:50:52 +03:00
Pavel
b0ed007399
Particle lifecycle (#21)
Complete rethinking and refactoring of the codebase.

The codebase basically consists these 5 moving parts now: 

1. Fluence client (and the Particle processor which might be merged with the client) - This part is responsible for initiating Request flows, managing existing requests flows (it keeps the queue of received particles), pulling right strings on request flows to update their state etc
2. Fluence connection - This part is responsible for connecting to network, sending\receiving particles
3. RequestFlow - This is where the state of particle execution process is kept. It is basically a state storage with some control levers to update the state. Each request flow contains some particle lifecycle methods and the AquaCallHandler where all callback logic is kept
4. RequestFlowBuilder - This is where requests are prepared by the user (the developer of the client application) before they are ready to be sent into the network.
5. AquaCallHandler - This is how interpreter callbacks are handled. It is very similar to express.js app and is made of middlewares. Aqua handler is the unified api for both callbacks for our Request flows and non-ours (i.e services that are expected to be called be other peers). See `AquaHandler.ts` for details
2021-03-03 22:01:05 +03:00
folex
77ca5502b2 set ttl to 0 2021-03-03 17:31:41 +03:00
folex
052a8a7f24
Do not use DataView (#28) 2021-03-03 17:27:00 +03:00
Pavel
c65c0afbee
Xor (#24)
* Wrapping scripts with xor

* Add function subscribeForErrors to handle errors
2021-02-25 18:36:10 +03:00
Pavel
619c8a6d6a
Update builtins to new version (#27)
* Update builtins to new version

* Running integration tests in docker container
2021-02-25 15:33:37 +03:00
Pavel
d65153e6de
Update interpreter (#26)
* Update interpreter version
2021-02-24 14:51:24 +03:00
Dima
3eacf708e6
handle errors on local particle call (#25) 2021-02-24 14:43:21 +03:00
Dima
c10cd1942a
Check if connection is available on creating a client (#23)
Check if connection is available on creating a client
2021-02-19 16:32:02 +03:00
Dima
78ed8ab46c
delete trust-graph (#22) 2021-02-19 12:21:13 +03:00
Pavel
416221ea17
Improve tests (#18)
Replaced mocha with jest. 
Test are split into unit and integration categories.
Dropped ESM dependency. Code is now being compiled into CJS
2021-02-14 00:35:02 +03:00
DieMyst
2fb5ffeb06 improve test 2021-02-04 18:59:38 +03:00
Dima
481a44b819
Add remove scripts, fix builtins (#15) 2021-02-03 21:18:27 +03:00
Dima
92980379bd
Returned built-in Aquamarine calls, updated docs (#11) 2021-01-29 16:48:27 +03:00
Pavel
ba537c79b3
Big refactoring (#8)
Big codebase refactoring. 

* Multiple clients are allowed on the same browser instance
* Particle queue processing is split from particle handling logic
* Public AIP is completely rethought
* Updated project file structure. Clean exports for public api methods
* Additional unit tests
2021-01-19 15:47:49 +03:00