Currently, all interfaces and common classes live in the main AtleX.HaveIBeenPwned library. Anyone wishing to, for example, create custom IHaveIBeenPwnedClient implementations has to take a hard dependency on it and that's not an ideal situation. It should be possible to move the interfaces and common classes (must be stable in a major version of AtleX.HaveIBeenPwned) to a separate library which is versioned with major versions only.
Any custom IHaveIBeenPwnedClient takes a dependency on for example v3.0.0 of the common library, and any v3.* version of AtleX.HaveIBeenPwned should be able to work with those custom implementations.
We must move the following classes and interfaces to a new AtleX.HaveIBeenPwned.Common library:
IHaveIBeenPwnedClient
HaveIBeenPwnedClientException
BreachMode
Breach
Paste
Also, remember to update the namespaces of those classes.
This library must be distributed as NuGet package. Remember to use SourceLink and a .snupkg (see #8) too.
Closing this as wont fix. It's too much work for the rare cases that anyone wants to create a 'real' implementation of IHaveIBeenPwnedClient and not just a mock one for testing.
Currently, all interfaces and common classes live in the main AtleX.HaveIBeenPwned library. Anyone wishing to, for example, create custom
IHaveIBeenPwnedClient
implementations has to take a hard dependency on it and that's not an ideal situation. It should be possible to move the interfaces and common classes (must be stable in a major version of AtleX.HaveIBeenPwned) to a separate library which is versioned with major versions only.Any custom
IHaveIBeenPwnedClient
takes a dependency on for example v3.0.0 of the common library, and any v3.* version of AtleX.HaveIBeenPwned should be able to work with those custom implementations.We must move the following classes and interfaces to a new AtleX.HaveIBeenPwned.Common library:
Also, remember to update the namespaces of those classes.
This library must be distributed as NuGet package. Remember to use SourceLink and a .snupkg (see #8) too.