Add serialization for json and json flattened
closes #242
Since the general serialization function allows to add multiple signature, we need a new internal structure to store the information in an sd-jwt instance (right now it is managed as compact json).
This PR should introduce the serialization of compact, json or flattened json. compact is the default value to not break existing implementations.
It should be the goal to issue and present an sd-jwt as one of the three formats and all three formats should be used as an input.
I also added some tests to validate the encoding, decoding, but the expected value was generated based on the own function so it would help if someone could challenge the algorithms with the current spec.
@lukasjhan I would suggest to store the elements as an object inside the sd-jwt like the json presentation (so signatures are managed in an array)
@lukasjhan in case of signature validation, we need to update the internal storage of signature in the JWT object: https://github.com/openwallet-foundation-labs/sd-jwt-js/blob/main/packages/core/src/jwt.ts#L117 Because for the json approach there could be multiple signatures.
I think it's better to update the signature from a string to an array instead of building multiple JWT instances and manage them somewhere else
Closing this in favor of #253