- (#134) Add
credential
system. - (#142) Add
ownership
APIs. - (#143) Add
service.Hash
andservice.Exists
APIs.
- (#132) Add support for constants for map.
- (#133) Add account api.
- (#135) New api namespace, prefix all the API with mesg to avoid conflicts.
- (#136) Normalize naming of the api (everything singular).
- (#130) Use MESG struct instead of proto.
- (#124) Switch from string to byte for hashes. You can use the function
decode
fromlib/util/base58
to convert the hashes from string.
- (#116) Fix missing support for big number with proto structs.
- (#114) Support of proto Structs type that replace JSON strings.
- (#112) Automatic type generation.
- (#113) Add workflow APIs.
- (#104) Resolve instance hash from Service SID.
- (#108) Move filter on Execution's status from
executeTaskAndWaitResult
tolistenResult
.
- (#102) Update internal logic to the new Engine's APIs of v0.11.0. The Service side stay the same (except a few types) but the application side have some modifications on the parameters of the functions. Check the release notes on the forum for more detail.
- (#81) Service: throw an error when task's output functions are called without any data.
- (#82) Service: show a warning instead of throwing an error when tasks are defined in
mesg.yml
but not implemented. - (#84) Service: throw an error when emit event functions are called without any data.
- (#86) Update proto files with latest version from MESG Core.
- Export more types and classes from service and application.
- High level application APIs has changed.
- Added/updated
listenEvent()
,listenResult()
,executeTask()
,executeTaskAndWaitResult()
. - Previous ones removed.
- Added/updated
application()
constructor accepts options to configure Core's endpoint.- TS types updated to be more precise.
- Possibility to associate tags for executions.
- Update client side filter to be more precise and support executionTags filter.
- Prevent the issue generated by core while starting the same service at the same time.
- Add
filter: (key: string, data: Object) => boolean
onwhenEvent
andwhenResult
. This way it's now possible to filter by event key, event data on events and output key, output data on results. - Normalize the api, use:
taskKey
instead oftask
.outputKey
instead ofoutput
.eventKey
instead ofevent
.
- Update documentation.
- Fix
whenResult
callback execution
- Update new API that normalize the inputs for tasks
- Update latest API changes that removes error field
- Export
api
for application to be able to access any api from the core
- Use better communication system between service and MESG Core
- Fix issue with input conversion for tasks
- Add library for applications accessible with
require('mesg-js').application()
- whenEvent(eventDetails, taskDetails) that triggers a task when an event occurs
- whenResult(resultDetails, taskDetails) that triggers a task when a result occurs
require('mesg-js')
.application()
.whenEvent({ serviceID: 'xxx', filter: 'request' }, {
serviceID: 'yyy',
task: 'taskX',
inputs: (x, event) => ({
...
})
})
- Add library for services accessible with
require('mesg-js').service()
- listenTask(map<task, function(inputs, outputs)>) that takes a map of task handlers that are functions with the following signature
taskX(inputs, outputs)
- listenTask(map<task, function(inputs, outputs)>) that takes a map of task handlers that are functions with the following signature
MESG.listenTask({
taskX: (inputs, outputs) => {
outputs.outputX({ foo: inputs.valueX })
}
})
- emitEvent(event, data) that takes the name of the event and the associated data
MESG.emitEvent('eventX', { foo: 'bar' })