<commit_before># Faro

## Version 2.0.5 & 2.0.6
* Array's or Set's of `RawRepresentable`'s can be parsed by create functions
* Array's or Set's of primitive types

## Version 2.0.4
* removed redundant prints for `DeprecatedService`

## Version 2.0.2 & 2.0.3
Minor fix to Readme file

## Version 2.0.1

* You can now do a multipart post
* Removed `Deserializable` in favor of `JSONDeserialisable`
  * it appeared to difficult ot maintain both as in version 2.0
* Removed `Updateable` in favor of `JSONUpdateable`
  * it was difficult to maintain both

How to migrate:
* Comming from 1.0.0
  * Change all instances that implement `Deserializable` to `JSONDeserialisable`
  * Rename `init?(from raw: Any)` to `init(_ raw: [String: Any]) throws`
  * Handle throws instead of nil where you used the previous init
    * hint: If you do not want to handle the throws in old code that react to nil you can `let model = try? Foo()`
  * Change all instances that implement `Updateable` to `JSONUpdateable`
* Comming from 2.0.0
  * remove all `init?(from raw: Any)` and `Deserializable`

## Version 2.0.0

* Attempt to make error more descriptive
* Removed confusing Perform functions and added 2 functions `single...` `collection`
* Made it more descriptive that a request does not expect a json response.
* Moved away from result Enmum in favor of throws

*! Warning this is a breaking change*

* Parse functions
  * `parse(.. rename` -> `create(...`
* Operator rename:
  * DeserializeOperators `<->` to `|<`
  * SerializeOperators `<->` to `<|`
* Operators on models require the model to adopt 'Updatable'
  * This is done so it is more clear we create a new instance or update an existing one.

### Service has been deprecated
How to migrate:
* Original `Service` class is renamed to `DeprecatedService` and tagged. Rename all instances you have of Service to `DeprecatedService`
* Use the new `Service` for any new request you make.

### Deserialisable and Serialisable
We favor the use of `JSONDeserialisable` and `JSONSerialisable`
How to migrate:

* For new requests that use the new `Service` use `JSONDeserialisable` and `JSONSerialisable`
* `Deserialisable and `Serialisable` will still be available in the future as we might implement a more parsing from XML

### Result to DeprecatedResult

`DeprecatedService` still uses DeprecatedResult.
How to migrate:

* New requests should use the new `Result`
* Old request should rename `Result` to `DeprecatedResult`

### FaroService renamed to FaroSingelton
You can still use a singleton but the confusing name FaroService is now gone
How to migrate:

* Rename FaroService to FaroDeprecatedSingleton
* For new projects use FaroSingelton

---

## Version 1.0.9
* Using URLRequest default timeout instead of 10 seconds

## Version 1.0.8
*  Array of primitive types Deserialisable

## Version 1.0.7
* using to swiftlint

## Version 1.0.6
* deprecating convinience functions on `Service`

## Version 1.0.5
Minor changes.
* Open up mockservice url
* better error logs

## Version 1.0.4
* `ServiceQueue` reports failures
* `Parameters` inserts `.urlComponents` sorted

## Version 1.0.3
* Disabled JSON mock data reading for watchOS

## Version 1.0.1
* Added a queue for basic queuing. You get to fire request and get a done when everything is done.
* Added example on how to use enums for parsing JSON
* Moving to buddybuild
* ... Feel free to comment or ad.
<commit_msg>Added missing version info<commit_after># Faro

## Version 2.0.5 & 2.0.6
* Array's or Set's of `RawRepresentable`'s can be parsed by create functions
* Array's or Set's of primitive types

## Version 2.0.4
* removed redundant prints for `DeprecatedService`

## Version 2.0.2 & 2.0.3
Minor fix to Readme file

## Version 2.0.1

* You can now do a multipart post
* Removed `Deserializable` in favor of `JSONDeserialisable`
  * it appeared to difficult ot maintain both as in version 2.0
* Removed `Updateable` in favor of `JSONUpdateable`
  * it was difficult to maintain both

How to migrate:
* Comming from 1.0.0
  * Change all instances that implement `Deserializable` to `JSONDeserialisable`
  * Rename `init?(from raw: Any)` to `init(_ raw: [String: Any]) throws`
  * Handle throws instead of nil where you used the previous init
    * hint: If you do not want to handle the throws in old code that react to nil you can `let model = try? Foo()`
  * Change all instances that implement `Updateable` to `JSONUpdateable`
* Comming from 2.0.0
  * remove all `init?(from raw: Any)` and `Deserializable`

## Version 2.0.0

* Attempt to make error more descriptive
* Removed confusing Perform functions and added 2 functions `single...` `collection`
* Made it more descriptive that a request does not expect a json response.
* Moved away from result Enmum in favor of throws

*! Warning this is a breaking change*

* Parse functions
  * `parse(.. rename` -> `create(...`
* Operator rename:
  * DeserializeOperators `<->` to `|<`
  * SerializeOperators `<->` to `<|`
* Operators on models require the model to adopt 'Updatable'
  * This is done so it is more clear we create a new instance or update an existing one.

### Service has been deprecated
How to migrate:
* Original `Service` class is renamed to `DeprecatedService` and tagged. Rename all instances you have of Service to `DeprecatedService`
* Use the new `Service` for any new request you make.

### Deserialisable and Serialisable
We favor the use of `JSONDeserialisable` and `JSONSerialisable`
How to migrate:

* For new requests that use the new `Service` use `JSONDeserialisable` and `JSONSerialisable`
* `Deserialisable and `Serialisable` will still be available in the future as we might implement a more parsing from XML

### Result to DeprecatedResult

`DeprecatedService` still uses DeprecatedResult.
How to migrate:

* New requests should use the new `Result`
* Old request should rename `Result` to `DeprecatedResult`

### FaroService renamed to FaroSingelton
You can still use a singleton but the confusing name FaroService is now gone
How to migrate:

* Rename FaroService to FaroDeprecatedSingleton
* For new projects use FaroSingelton

---

## Version 1.0.10
* Added way to Authenticate via `Authenticatable`
* Added Secure url session to centralize security
* Minor spelling fixes

## Version 1.0.9
* Using URLRequest default timeout instead of 10 seconds

## Version 1.0.8
*  Array of primitive types Deserialisable

## Version 1.0.7
* using to swiftlint

## Version 1.0.6
* deprecating convinience functions on `Service`

## Version 1.0.5
Minor changes.
* Open up mockservice url
* better error logs

## Version 1.0.4
* `ServiceQueue` reports failures
* `Parameters` inserts `.urlComponents` sorted

## Version 1.0.3
* Disabled JSON mock data reading for watchOS

## Version 1.0.1
* Added a queue for basic queuing. You get to fire request and get a done when everything is done.
* Added example on how to use enums for parsing JSON
* Moving to buddybuild
* ... Feel free to comment or ad.

{'fraction_non_alphanumeric': 0.08243727598566308, 'fraction_numerical': 0.016630824372759857, 'mean_word_length': 4.178916109873794, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 9, 'https://': 0, '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': '1940402', 'n_tokens_mistral': 2143, 'n_tokens_neox': 2017, 'n_words': 955}