* chore(refactor): protocol bindings use interfaces
This change modifies the protocol binding interfaces such as `Binding`,
`Serializer` and the like to use the `CloudEventV1` interface instead of the
implementation class `CloudEvent`. This should make extending the interfaces
simpler as this work has grown out of efforts around the implementation of
a second transport interface, Kafka.
See: https://github.com/cloudevents/sdk-javascript/pull/455/
This commit also includes the addition of a generic type to the `Message`
interface, defaulting to `string`.
There is also some minor clean up involving what is exported from the
`message/http` modules. Now, instead of exporting the entire implementation,
only the `HTTP` binding implementation is exported, and it is then reexported
by `message`.
Also, a static `CloudEvent.cloneWith()` method has been added which the
instance methods now use.
Signed-off-by: Lance Ball <lball@redhat.com>
* fixup: make the `cloneWith()` method is dependent on interfaces
Signed-off-by: Lance Ball <lball@redhat.com>
* fixup: remove unnecessary cast
Signed-off-by: Lance Ball <lball@redhat.com>