|
8 | 8 |
|
9 | 9 | ### Breaking
|
10 | 10 |
|
11 |
| -* Added new feature flag `client` that enables client specific functions. Without this feature, |
| 11 | +- Added new feature flag `client` that enables client specific functions. Without this feature, |
12 | 12 | `twitch_oauth2` will only provide non-async functions and
|
13 |
| - provide library users `http::Request`s and consume `http::Response`s. |
| 13 | + provide library users functions that returns `http::Request`s and consume `http::Response`s. |
| 14 | +- `ValidatedToken::expires_in` is now an `Option`. |
14 | 15 |
|
15 | 16 | ## [v0.8.0] - 2022-08-27
|
16 | 17 |
|
17 | 18 | [Commits](https://github.com/twitch-rs/twitch_oauth2/compare/v0.7.1...v0.8.0)
|
18 | 19 |
|
19 | 20 | ### Breaking
|
20 | 21 |
|
21 |
| -* Bumped `aliri_braid` to `0.2`, this change means that the `new` method on the types in `types` only take an owned string now |
22 |
| - * `AccessToken::new`, `ClientId::new`, `ClientSecret::new`, `CsrfToken::new` and `RefreshToken::new` now take a `String` instead of `impl Into<String>` |
| 22 | +- Bumped `aliri_braid` to `0.2`, this change means that the `new` method on the types in `types` only take an owned string now |
| 23 | + - `AccessToken::new`, `ClientId::new`, `ClientSecret::new`, `CsrfToken::new` and `RefreshToken::new` now take a `String` instead of `impl Into<String>` |
23 | 24 |
|
24 | 25 | ## [v0.7.1] - 2022-08-27
|
25 | 26 |
|
26 | 27 | [Commits](https://github.com/twitch-rs/twitch_oauth2/compare/v0.7.0...v0.7.1)
|
27 | 28 |
|
28 | 29 | ### Changed
|
29 | 30 |
|
30 |
| -* Organization moved to `twitch-rs` |
| 31 | +- Organization moved to `twitch-rs` |
31 | 32 |
|
32 | 33 | ### Added
|
33 | 34 |
|
34 |
| -* Added scopes `channel:manage:raids`, `channel:manage:moderators`, `channel:manage:vips`, `channel:read:charity`, |
| 35 | +- Added scopes `channel:manage:raids`, `channel:manage:moderators`, `channel:manage:vips`, `channel:read:charity`, |
35 | 36 | `channel:read:vips`, `moderator:manage:announcements`, `moderator:manage:chat_messages`, `user:manage:chat_color` and
|
36 | 37 | `user:manage:whispers`
|
37 | 38 |
|
|
41 | 42 |
|
42 | 43 | ### Breaking changes
|
43 | 44 |
|
44 |
| -* switch to [`twitch_types`](https://crates.io/crates/twitch_types) for `UserId` and `Nickname`/`UserName` |
45 |
| -* bump MSRV to 1.60, also changes the feature names for clients to their simpler variant `surf` and `client` |
| 45 | +- switch to [`twitch_types`](https://crates.io/crates/twitch_types) for `UserId` and `Nickname`/`UserName` |
| 46 | +- bump MSRV to 1.60, also changes the feature names for clients to their simpler variant `surf` and `client` |
46 | 47 |
|
47 | 48 | ## [v0.6.1] - 2021-11-23
|
48 | 49 |
|
49 | 50 | [Commits](https://github.com/twitch-rs/twitch_oauth2/compare/v0.6.0...v0.6.1)
|
50 | 51 |
|
51 | 52 | ### Added
|
52 | 53 |
|
53 |
| -* Added new scopes `moderator:manage:automod_settings`, `moderator:manage:banned_users`, |
| 54 | +- Added new scopes `moderator:manage:automod_settings`, `moderator:manage:banned_users`, |
54 | 55 | `moderator:manage:blocked_terms`, `moderator:manage:chat_settings`, `moderator:read:automod_settings`,
|
55 | 56 | `moderator:read:blocked_terms` and `moderator:read:chat_settings`
|
56 | 57 |
|
|
60 | 61 |
|
61 | 62 | ### Breaking changes
|
62 | 63 |
|
63 |
| -* All types associated with tokens are now defined in this crate. This is a consequence of the `oauth2` dependency being removed from tree. |
| 64 | +- All types associated with tokens are now defined in this crate. This is a consequence of the `oauth2` dependency being removed from tree. |
64 | 65 | Additionally, as another consequence, clients are now able to be specified as a `for<'a> &'a T where T: Client<'a>`, meaning `twitch_api` can use its clients as an interface to token requests,
|
65 | 66 | and clients can persist instead of being rebuilt every call. Care should be taken when making clients, as SSRF and similar attacks are possible with improper client configurations.
|
66 | 67 |
|
67 | 68 | ### Added
|
68 | 69 |
|
69 |
| -* Added types/braids `ClientId`, `ClientSecret`, `AccessToken`, `RefreshToken` and `CsrfToken`. |
70 |
| -* Added way to interact with the Twitch-CLI [mock API](https://github.com/twitchdev/twitch-cli/blob/main/docs/mock-api.md) using environment variables. |
| 70 | +- Added types/braids `ClientId`, `ClientSecret`, `AccessToken`, `RefreshToken` and `CsrfToken`. |
| 71 | +- Added way to interact with the Twitch-CLI [mock API](https://github.com/twitchdev/twitch-cli/blob/main/docs/mock-api.md) using environment variables. |
71 | 72 | See static variables `AUTH_URL`, `TOKEN_URL`, `VALIDATE_URL` and `REVOKE_URL` for more information.
|
72 |
| -* Added `impl Borrow<str> for Scope`, meaning it can be used in places it couldn't be used before. Primarily, it allows the following code to work: |
| 73 | +- Added `impl Borrow<str> for Scope`, meaning it can be used in places it couldn't be used before. Primarily, it allows the following code to work: |
73 | 74 | ```rust
|
74 | 75 | let scopes = vec![Scope::ChatEdit, Scope::ChatRead];
|
75 | 76 | let space_separated_scope: String = scopes.as_slice().join(" ");
|
76 | 77 | ```
|
77 |
| -* Added scope `channel:read:goals` |
| 78 | +- Added scope `channel:read:goals` |
78 | 79 |
|
79 | 80 | ### Changed
|
80 | 81 |
|
81 |
| -* Requests to `id.twitch.tv` now follow the documentation, instead of following a subset of the RFC for oauth2. |
82 |
| -* URLs are now initialized lazily and specified as `url::Url`s. |
| 82 | +- Requests to `id.twitch.tv` now follow the documentation, instead of following a subset of the RFC for oauth2. |
| 83 | +- URLs are now initialized lazily and specified as `url::Url`s. |
83 | 84 |
|
84 | 85 | ### Removed
|
85 | 86 |
|
86 |
| -* Removed `oauth2` dependency. |
| 87 | +- Removed `oauth2` dependency. |
87 | 88 |
|
88 | 89 | ## [v0.5.2] - 2021-06-18
|
89 | 90 |
|
90 | 91 | [Commits](https://github.com/twitch-rs/twitch_oauth2/compare/v0.5.1...v0.5.2)
|
91 | 92 |
|
92 | 93 | ### Added
|
93 | 94 |
|
94 |
| -* Added new scope `channel:manage:schedule` |
| 95 | +- Added new scope `channel:manage:schedule` |
95 | 96 |
|
96 | 97 | ## [v0.5.1] - 2021-05-16
|
97 | 98 |
|
98 | 99 | [Commits](https://github.com/twitch-rs/twitch_oauth2/compare/v0.5.0...v0.5.1)
|
99 | 100 |
|
100 | 101 | ### Added
|
101 | 102 |
|
102 |
| -* Added new scopes `channel:manage:polls`, `channel:manage:predictions`, `channel:read:polls`, `channel:read:predictions`, and `moderator:manage:automod`, |
103 |
| -* Added function `Scope::description` to get the description of the scope |
| 103 | +- Added new scopes `channel:manage:polls`, `channel:manage:predictions`, `channel:read:polls`, `channel:read:predictions`, and `moderator:manage:automod`, |
| 104 | +- Added function `Scope::description` to get the description of the scope |
104 | 105 |
|
105 | 106 | ## [v0.5.0] - 2021-05-08
|
106 | 107 |
|
107 | 108 | [Commits](https://github.com/twitch-rs/twitch_oauth2/compare/49a083ceda6768cc52a1f8f1714bb7f942f24c01...v0.5.0)
|
108 | 109 |
|
109 | 110 | ### Added
|
110 | 111 |
|
111 |
| -* Made crate runtime agnostic with custom clients. |
112 |
| -* Updated deps. |
113 |
| -* Add an extra (optional) client secret field to `UserToken::from_existing` (thanks [Dinnerbone](https://github.com/Dinnerbone)) |
114 |
| -* Added `channel:manage:redemptions`, `channel:read:editors`, `channel:manage:videos`, `user:read:blocked_users`, `user:manage:blocked_users`, `user:read:subscriptions` and `user:read:follows` |
115 |
| -* Implemented [OAuth Authorization Code Flow](https://dev.twitch.tv/docs/authentication/getting-tokens-oauth/#oauth-authorization-code-flow) with `UserTokenBuilder` |
116 |
| -* Added a way to suggest or infer that an user token is never expiring, making `is_elapsed` return false and `expires_in` a bogus (max) duration. |
| 112 | +- Made crate runtime agnostic with custom clients. |
| 113 | +- Updated deps. |
| 114 | +- Add an extra (optional) client secret field to `UserToken::from_existing` (thanks [Dinnerbone](https://github.com/Dinnerbone)) |
| 115 | +- Added `channel:manage:redemptions`, `channel:read:editors`, `channel:manage:videos`, `user:read:blocked_users`, `user:manage:blocked_users`, `user:read:subscriptions` and `user:read:follows` |
| 116 | +- Implemented [OAuth Authorization Code Flow](https://dev.twitch.tv/docs/authentication/getting-tokens-oauth/#oauth-authorization-code-flow) with `UserTokenBuilder` |
| 117 | +- Added a way to suggest or infer that an user token is never expiring, making `is_elapsed` return false and `expires_in` a bogus (max) duration. |
| 118 | + |
117 | 119 | ### Changed
|
118 | 120 |
|
119 |
| -* MSRV: 1.51 |
120 |
| -* Made scope take `Cow<&'static str>` |
121 |
| -* Made fields `access_token`, `refresh_token`, `user_id` and `login` `pub` on `UserToken` and `AppAccessToken` (where applicable) |
122 |
| -* Fixed wrong scope `user:read:stream_key` -> `channel:read:stream_key` |
123 |
| -* BREAKING: changed `TwitchToken::expires` -> `TwitchToken::expires_in` to calculate current lifetime of token |
| 121 | +- MSRV: 1.51 |
| 122 | +- Made scope take `Cow<&'static str>` |
| 123 | +- Made fields `access_token`, `refresh_token`, `user_id` and `login` `pub` on `UserToken` and `AppAccessToken` (where applicable) |
| 124 | +- Fixed wrong scope `user:read:stream_key` -> `channel:read:stream_key` |
| 125 | +- BREAKING: changed `TwitchToken::expires` -> `TwitchToken::expires_in` to calculate current lifetime of token |
124 | 126 |
|
125 | 127 | ## End of Changelog
|
126 | 128 |
|
127 |
| -Changelog starts on v0.5.0 |
| 129 | +Changelog starts on v0.5.0 |
0 commit comments