<commit_before>From here onwards I'll try to adhere to [Semantic Versioning](http://semver.org). I kinda messed up early, and so it ended up as 2.0 (lol). Sorry guys!

Treat my versioning as if it is 0.x.y.

**Upgrading versions should NEVER break your project, so update to the latest every now and then. :P**

[TODO](https://github.com/ChauTNguyen/kindred-api/blob/master/TODO.md) to view future changes.

## [2.0.67]() - Changed static data options to "tags"

All static data tag options (ex: runeListData, runeData) will all be renamed to `tags`. The old labels will become deprecated so I'm releasing this early.

[source](https://discussion.developer.riotgames.com/articles/1736/updates-to-lol-static-data-v3.html)
```
For each endpoint that provides tags on which the response can be filtered, we have renamed that parameter to 'tags', to be consistent and more clear. The old parameter names (e.g., champData, itemListData, etc.) will be supported for the V3 endpoints until the end of the deprecation period, to give those of you that have already swapped over time to update to the new 'tags' parameter name.
```

## [2.0.66](https://github.com/ChauTNguyen/kindred-api/commit/02fc262fd0f89e1253b501cc9199042af9c7f2f0) - Allow users to set timeout.

```javascript
const k = new KindredAPI.Kindred({
  key: 'fakeKey',
  defaultRegion: KindredAPI.REGIONS.NORTH_AMERICA,
  limits: KindredAPI.LIMITS.DEV,
  debug: true,
  // showKey: true,
  //showDebug: true,
  retryOptions: {
    auto: false, // true by default
    numberOfRetriesBeforeBreak: 3 // infinite by default
  },
  timeout: 1000,
  showHeaders: true,
  cache: new KindredAPI.InMemoryCache()
  // cacheTTL default if not passed in and cache is passed in
})
```

## [2.0.65](https://github.com/ChauTNguyen/kindred-api/commit/4f0203cc5b37c507158f5884a5790662cf8b7734) - Added configuration for number of retries.

```javascript
const k = new KindredAPI.Kindred({
  key: 'fakeKey',
  defaultRegion: KindredAPI.REGIONS.NORTH_AMERICA,
  limits: KindredAPI.LIMITS.DEV,
  debug: true,
  // showKey: true,
  //showDebug: true,
  retryOptions: {
    auto: false, // true by default
    numberOfRetriesBeforeBreak: 3 // infinite by default
  },
  showHeaders: true,
  cache: new KindredAPI.InMemoryCache()
  // cacheTTL default if not passed in and cache is passed in
})
```

## [2.0.64](https://github.com/ChauTNguyen/kindred-api/commit/fdda733bbb3c9c43e84006058def99e52af1d4f2) - Added defaults back for getMasters / getChallengers.

Last patch I hastily removed the queue defaults from getChallengers/getMasters.

Adding that back in because in hindsight the only default that should be removed is the queue default from getMatchlist.

## [2.0.63](https://github.com/ChauTNguyen/kindred-api/commit/90e2fb75b91da66b641cdc5313f96b25aff9c461) - Removed defaults for queue.

getMatchlist queue previously defaulted to `420 (TEAM_BUILDER_RANKED_SOLO)`.
getChallengers/getMasters queue previously defaulted to `RANKED_SOLO_5x5`.

## [2.0.62](https://github.com/ChauTNguyen/kindred-api/commit/61b77b91a0e89952e7d092fddf569242533c09a3) - Allow disabling of automatic retries.

```javascript
const k = new KindredAPI.Kindred({
  key: 'fakeKey',
  defaultRegion: KindredAPI.REGIONS.NORTH_AMERICA,
  limits: KindredAPI.LIMITS.DEV,
  debug: true,
  // showKey: true,
  //showDebug: true,
  retryOptions: {
    auto: false // NEW
  },
  showHeaders: true,
  cache: new KindredAPI.InMemoryCache()
  // cacheTTL default if not passed in and cache is passed in
})
```

## [2.0.61](https://github.com/ChauTNguyen/kindred-api/commit/00ba2892b8f737ba63fc8e4737dca33ccaf5fb49) - Cleanup cache initialization
The old way is ugly and not how libraries should do it.

Now, the library now exports the InMemoryCache and RedisCache classes so the user can now do something like this:

```javascript
const k = new KindredAPI.Kindred({
  key: 'fakeKey',
  defaultRegion: KindredAPI.REGIONS.NORTH_AMERICA,
  limits: KindredAPI.LIMITS.DEV,
  debug: true,
  // showKey: true,
  //showDebug: true,
  showHeaders: true,
  cache: new KindredAPI.InMemoryCache()
  // cacheTTL default if not passed in and cache is passed in
})
```

## [2.0.60](https://github.com/ChauTNguyen/kindred-api/commit/c547132784829de0af506ea7d5dd3fc2d6863ab0) Add showHeaders, add `api_key=` to URL for developer convenience

### showHeaders
*showHeaders on (old behavior) & showKey off & debug on*

![Imgur](http://i.imgur.com/JsamNSn.png)

```javascript
/*

200 https://na1.api.riotgames.com/lol/summoner/v3/summoners/by-name/contractz?api_key=
{ 'x-app-rate-limit-count': '1:10,1:600',
  'x-method-rate-limit-count': '1:10,2:600',
  'x-rate-limit-count': '1:10,1:600',
  'retry-after': undefined }

*/
```

*showHeaders off & showKey off & debug on*

![Imgur](http://i.imgur.com/w6BzkDz.png)

```javascript
/*
<commit_msg>Fix period inconsistencies<commit_after>From here onwards I'll try to adhere to [Semantic Versioning](http://semver.org). I kinda messed up early, and so it ended up as 2.0 (lol). Sorry guys!

Treat my versioning as if it is 0.x.y.

**Upgrading versions should NEVER break your project, so update to the latest every now and then. :P**

[TODO](https://github.com/ChauTNguyen/kindred-api/blob/master/TODO.md) to view future changes.

## [2.0.67]() - Changed static data options to "tags".

All static data tag options (ex: runeListData, runeData) will all be renamed to `tags`. The old labels will become deprecated so I'm releasing this early.

[source](https://discussion.developer.riotgames.com/articles/1736/updates-to-lol-static-data-v3.html)
```
For each endpoint that provides tags on which the response can be filtered, we have renamed that parameter to 'tags', to be consistent and more clear. The old parameter names (e.g., champData, itemListData, etc.) will be supported for the V3 endpoints until the end of the deprecation period, to give those of you that have already swapped over time to update to the new 'tags' parameter name.
```

## [2.0.66](https://github.com/ChauTNguyen/kindred-api/commit/02fc262fd0f89e1253b501cc9199042af9c7f2f0) - Allow users to set timeout.

```javascript
const k = new KindredAPI.Kindred({
  key: 'fakeKey',
  defaultRegion: KindredAPI.REGIONS.NORTH_AMERICA,
  limits: KindredAPI.LIMITS.DEV,
  debug: true,
  // showKey: true,
  //showDebug: true,
  retryOptions: {
    auto: false, // true by default
    numberOfRetriesBeforeBreak: 3 // infinite by default
  },
  timeout: 1000,
  showHeaders: true,
  cache: new KindredAPI.InMemoryCache()
  // cacheTTL default if not passed in and cache is passed in
})
```

## [2.0.65](https://github.com/ChauTNguyen/kindred-api/commit/4f0203cc5b37c507158f5884a5790662cf8b7734) - Added configuration for number of retries.

```javascript
const k = new KindredAPI.Kindred({
  key: 'fakeKey',
  defaultRegion: KindredAPI.REGIONS.NORTH_AMERICA,
  limits: KindredAPI.LIMITS.DEV,
  debug: true,
  // showKey: true,
  //showDebug: true,
  retryOptions: {
    auto: false, // true by default
    numberOfRetriesBeforeBreak: 3 // infinite by default
  },
  showHeaders: true,
  cache: new KindredAPI.InMemoryCache()
  // cacheTTL default if not passed in and cache is passed in
})
```

## [2.0.64](https://github.com/ChauTNguyen/kindred-api/commit/fdda733bbb3c9c43e84006058def99e52af1d4f2) - Added defaults back for getMasters / getChallengers.

Last patch I hastily removed the queue defaults from getChallengers/getMasters.

Adding that back in because in hindsight the only default that should be removed is the queue default from getMatchlist.

## [2.0.63](https://github.com/ChauTNguyen/kindred-api/commit/90e2fb75b91da66b641cdc5313f96b25aff9c461) - Removed defaults for queue.

getMatchlist queue previously defaulted to `420 (TEAM_BUILDER_RANKED_SOLO)`.
getChallengers/getMasters queue previously defaulted to `RANKED_SOLO_5x5`.

## [2.0.62](https://github.com/ChauTNguyen/kindred-api/commit/61b77b91a0e89952e7d092fddf569242533c09a3) - Allow disabling of automatic retries.

```javascript
const k = new KindredAPI.Kindred({
  key: 'fakeKey',
  defaultRegion: KindredAPI.REGIONS.NORTH_AMERICA,
  limits: KindredAPI.LIMITS.DEV,
  debug: true,
  // showKey: true,
  //showDebug: true,
  retryOptions: {
    auto: false // NEW
  },
  showHeaders: true,
  cache: new KindredAPI.InMemoryCache()
  // cacheTTL default if not passed in and cache is passed in
})
```

## [2.0.61](https://github.com/ChauTNguyen/kindred-api/commit/00ba2892b8f737ba63fc8e4737dca33ccaf5fb49) - Clean up cache initialization.
The old way is ugly and not how libraries should do it.

Now, the library now exports the InMemoryCache and RedisCache classes so the user can now do something like this:

```javascript
const k = new KindredAPI.Kindred({
  key: 'fakeKey',
  defaultRegion: KindredAPI.REGIONS.NORTH_AMERICA,
  limits: KindredAPI.LIMITS.DEV,
  debug: true,
  // showKey: true,
  //showDebug: true,
  showHeaders: true,
  cache: new KindredAPI.InMemoryCache()
  // cacheTTL default if not passed in and cache is passed in
})
```

## [2.0.60](https://github.com/ChauTNguyen/kindred-api/commit/c547132784829de0af506ea7d5dd3fc2d6863ab0) Add showHeaders, add `api_key=` to URL for developer convenience.

### showHeaders
*showHeaders on (old behavior) & showKey off & debug on*

![Imgur](http://i.imgur.com/JsamNSn.png)

```javascript
/*

200 https://na1.api.riotgames.com/lol/summoner/v3/summoners/by-name/contractz?api_key=
{ 'x-app-rate-limit-count': '1:10,1:600',
  'x-method-rate-limit-count': '1:10,2:600',
  'x-rate-limit-count': '1:10,1:600',
  'retry-after': undefined }

*/
```

*showHeaders off & showKey off & debug on*

![Imgur](http://i.imgur.com/w6BzkDz.png)

```javascript
/*

{'fraction_non_alphanumeric': 0.11754367827974775, 'fraction_numerical': 0.05293083841621007, 'mean_word_length': 4.383416805787424, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 20, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7336839', 'n_tokens_mistral': 3709, 'n_tokens_neox': 3350, 'n_words': 929}