diff options
Diffstat (limited to 'vendor/ramsey/uuid/CHANGELOG.md')
-rw-r--r-- | vendor/ramsey/uuid/CHANGELOG.md | 1262 |
1 files changed, 0 insertions, 1262 deletions
diff --git a/vendor/ramsey/uuid/CHANGELOG.md b/vendor/ramsey/uuid/CHANGELOG.md deleted file mode 100644 index e65960558..000000000 --- a/vendor/ramsey/uuid/CHANGELOG.md +++ /dev/null @@ -1,1262 +0,0 @@ -# ramsey/uuid Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). - - -## [Unreleased] - -### Added - -### Changed - -### Deprecated - -### Removed - -### Fixed - -### Security - - -## [4.1.1] - 2020-08-18 - -### Fixed - -* Allow use of brick/math version 0.9 - - -## [4.1.0] - 2020-07-28 - -### Changed - -* Improve performance of `Uuid::fromString()`, `Uuid::fromBytes()`, - `UuidInterface#toString()`, and `UuidInterface#getBytes()`. See PR - [#324](https://github.com/ramsey/uuid/pull/324) for more information. - - -## [4.0.1] - 2020-03-29 - -### Fixed - -* Fix collection deserialization errors due to upstream `allowed_classes` being - set to `false`. For details, see [ramsey/uuid#303](https://github.com/ramsey/uuid/issues/303) - and [ramsey/collection#47](https://github.com/ramsey/collection/issues/47). - - -## [4.0.0] - 2020-03-22 - -### Added - -* Add support for version 6 UUIDs, as defined by <http://gh.peabody.io/uuidv6/>, - including the static method `Uuid::uuid6()`, which returns a - `Nonstandard\UuidV6` instance. -* Add ability to generate version 2 (DCE Security) UUIDs, including the static - method `Uuid::uuid2()`, which returns an `Rfc4122\UuidV2` instance. -* Add classes to represent each version of RFC 4122 UUID. When generating new - UUIDs or creating UUIDs from existing strings, bytes, or integers, if the UUID - is an RFC 4122 variant, one of these instances will be returned: - * `Rfc4122\UuidV1` - * `Rfc4122\UuidV2` - * `Rfc4122\UuidV3` - * `Rfc4122\UuidV4` - * `Rfc4122\UuidV5` - * `Rfc4122\NilUuid` -* Add classes to represent version 6 UUIDs, GUIDs, and nonstandard - (non-RFC 4122 variant) UUIDs: - * `Nonstandard\UuidV6` - * `Guid\Guid` - * `Nonstandard\Uuid` -* Add `Uuid::fromDateTime()` to create version 1 UUIDs from instances of - `\DateTimeInterface`. -* The `\DateTimeInterface` instance returned by `UuidInterface::getDateTime()` - (and now `Rfc4122\UuidV1::getDateTime()`) now includes microseconds, as - specified by the version 1 UUID. -* Add `Validator\ValidatorInterface` and `Validator\GenericValidator` to allow - flexibility in validating UUIDs/GUIDs. - * The default validator continues to validate UUID strings using the same - relaxed validation pattern found in the 3.x series of ramsey/uuid. - * Introduce `Rfc4122\Validator` that may be used for strict validation of - RFC 4122 UUID strings. - * Add ability to change the default validator used by `Uuid` through - `FeatureSet::setValidator()`. - * Add `getValidator()` and `setValidator()` to `UuidFactory`. -* Add `Provider\Node\StaticNodeProvider` to assist in setting a custom static - node value with the multicast bit set for version 1 UUIDs. -* Add the following new exceptions: - * `Exception\BuilderNotFoundException` - - Thrown to indicate that no suitable UUID builder could be found. - * `Exception\DateTimeException` - - Thrown to indicate that the PHP DateTime extension encountered an - exception/error. - * `Exception\DceSecurityException` - - Thrown to indicate an exception occurred while dealing with DCE Security - (version 2) UUIDs. - * `Exception\InvalidArgumentException` - - Thrown to indicate that the argument received is not valid. This extends the - built-in PHP `\InvalidArgumentException`, so there should be no BC breaks - with ramsey/uuid throwing this exception, if you are catching the PHP - exception. - * `Exception\InvalidBytesException` - - Thrown to indicate that the bytes being operated on are invalid in some way. - * `Exception\NameException` - - Thrown to indicate that an error occurred while attempting to hash a - namespace and name. - * `Exception\NodeException` - - Throw to indicate that attempting to fetch or create a node ID encountered - an error. - * `Exception\RandomSourceException` - - Thrown to indicate that the source of random data encountered an error. - * `Exception\TimeSourceException` - - Thrown to indicate that the source of time encountered an error. - * `Exception\UnableToBuildUuidException` - - Thrown to indicate a builder is unable to build a UUID. -* Introduce a `Builder\FallbackBuilder`, used by `FeatureSet` to help decide - whether to return a `Uuid` or `Nonstandard\Uuid` when decoding a - UUID string or bytes. -* Add `Rfc4122\UuidInterface` to specifically represent RFC 4122 variant UUIDs. -* Add `Rfc4122\UuidBuilder` to build RFC 4122 variant UUIDs. This replaces the - existing `Builder\DefaultUuidBuilder`, which is now deprecated. -* Introduce `Math\CalculatorInterface` for representing calculators to perform - arithmetic operations on integers. -* Depend on [brick/math](https://github.com/brick/math) for the - `Math\BrickMathCalculator`, which is the default calculator used by this - library when math cannot be performed in native PHP due to integer size - limitations. The calculator is configurable and may be changed, if desired. -* Add `Converter\Number\GenericNumberConverter` and - `Converter\Time\GenericTimeConverter` which will use the calculator provided - to convert numbers and time to values for UUIDs. -* Introduce `Type\Hexadecimal`, `Type\Integer`, `Type\Decimal`, and `Type\Time` - for improved type-safety when dealing with arbitrary string values. -* Add a `Type\TypeInterface` that each of the ramsey/uuid types implements. -* Add `Fields\FieldsInterface` and `Rfc4122\FieldsInterface` to define - field layouts for UUID variants. The implementations `Rfc4122\Fields`, - `Guid\Fields`, and `Nonstandard\Fields` store the 16-byte, - binary string representation of the UUID internally, and these manage - conversion of the binary string into the hexadecimal field values. -* Introduce `Builder\BuilderCollection` and `Provider\Node\NodeProviderCollection`. - These are typed collections for providing builders and node providers to - `Builder\FallbackBuilder` and `Provider\Node\FallbackNodeProvider`, respectively. -* Add `Generator\NameGeneratorInterface` to support alternate methods of - generating bytes for version 3 and version 5 name-based UUID. By default, - ramsey/uuid uses the `Generator\DefaultNameGenerator`, which uses the standard - algorithm this library has used since the beginning. You may choose to use the - new `Generator\PeclUuidNameGenerator` to make use of the new - `uuid_generate_md5()` and `uuid_generate_sha1()` functions in - [ext-uuid version 1.1.0](https://pecl.php.net/package/uuid). - -### Changed - -* Set minimum required PHP version to 7.2. -* This library now works on 32-bit and 64-bit systems, with no degradation in - functionality. -* By default, the following static methods will now return specific instance - types. This should not cause any BC breaks if typehints target `UuidInterface`: - * `Uuid::uuid1` returns `Rfc4122\UuidV1` - * `Uuid::uuid3` returns `Rfc4122\UuidV3` - * `Uuid::uuid4` returns `Rfc4122\UuidV4` - * `Uuid::uuid5` returns `Rfc4122\UuidV5` -* Accept `Type\Hexadecimal` for the `$node` parameter for - `UuidFactoryInterface::uuid1()`. This is in addition to the `int|string` types - already accepted, so there are no BC breaks. `Type\Hexadecimal` is now the - recommended type to pass for `$node`. -* Out of the box, `Uuid::fromString()`, `Uuid::fromBytes()`, and - `Uuid::fromInteger()` will now return either an `Rfc4122\UuidInterface` - instance or an instance of `Nonstandard\Uuid`, depending on whether the input - contains an RFC 4122 variant UUID with a valid version identifier. Both - implement `UuidInterface`, so BC breaks should not occur if typehints use the - interface. -* Change `Uuid::getFields()` to return an instance of `Fields\FieldsInterface`. - Previously, it returned an array of integer values (on 64-bit systems only). -* `Uuid::getDateTime()` now returns an instance of `\DateTimeImmutable` instead - of `\DateTime`. -* Make the following changes to `UuidInterface`: - * `getHex()` now returns a `Type\Hexadecimal` instance. - * `getInteger()` now returns a `Type\Integer` instance. The `Type\Integer` - instance holds a string representation of a 128-bit integer. You may then - use a math library of your choice (bcmath, gmp, etc.) to operate on the - string integer. - * `getDateTime()` now returns `\DateTimeInterface` instead of `\DateTime`. - * Add `__toString()` method. - * Add `getFields()` method. It returns an instance of `Fields\FieldsInterface`. -* Add the following new methods to `UuidFactoryInterface`: - * `uuid2()` - * `uuid6()` - * `fromDateTime()` - * `fromInteger()` - * `getValidator()` -* This library no longer throws generic exceptions. However, this should not - result in BC breaks, since the new exceptions extend from built-in PHP - exceptions that this library previously threw. - * `Exception\UnsupportedOperationException` is now descended from - `\LogicException`. Previously, it descended from `\RuntimeException`. -* Change required constructor parameters for `Uuid`: - * Change the first required constructor parameter for `Uuid` from - `array $fields` to `Rfc4122\FieldsInterface $fields`. - * Add `Converter\TimeConverterInterface $timeConverter` as the fourth - required constructor parameter for `Uuid`. -* Change the second required parameter of `Builder\UuidBuilderInterface::build()` - from `array $fields` to `string $bytes`. Rather than accepting an array of - hexadecimal strings as UUID fields, the `build()` method now expects a byte - string. -* Add `Converter\TimeConverterInterface $timeConverter` as the second required - constructor parameter for `Rfc4122\UuidBuilder`. This also affects the - now-deprecated `Builder\DefaultUuidBuilder`, since this class now inherits - from `Rfc4122\UuidBuilder`. -* Add `convertTime()` method to `Converter\TimeConverterInterface`. -* Add `getTime()` method to `Provider\TimeProviderInterface`. It replaces the - `currentTime()` method. -* `Provider\Node\FallbackNodeProvider` now accepts only a - `Provider\Node\NodeProviderCollection` as its constructor parameter. -* `Provider\Time\FixedTimeProvider` no longer accepts an array but accepts only - `Type\Time` instances. -* `Provider\NodeProviderInterface::getNode()` now returns `Type\Hexadecimal` - instead of `string|false|null`. -* `Converter/TimeConverterInterface::calculateTime()` now returns - `Type\Hexadecimal` instead of `array`. The value is the full UUID timestamp - value (count of 100-nanosecond intervals since the Gregorian calendar epoch) - in hexadecimal format. -* Change methods in `NumberConverterInterface` to accept and return string values - instead of `mixed`; this simplifies the interface and makes it consistent. -* `Generator\DefaultTimeGenerator` no longer adds the variant and version bits - to the bytes it returns. These must be applied to the bytes afterwards. -* When encoding to bytes or decoding from bytes, `OrderedTimeCodec` now checks - whether the UUID is an RFC 4122 variant, version 1 UUID. If not, it will throw - an exception—`InvalidArgumentException` when using - `OrderedTimeCodec::encodeBinary()` and `UnsupportedOperationException` when - using `OrderedTimeCodec::decodeBytes()`. - -### Deprecated - -The following functionality is deprecated and will be removed in ramsey/uuid -5.0.0. - -* The following methods from `UuidInterface` and `Uuid` are deprecated. Use their - counterparts on the `Rfc4122\FieldsInterface` returned by `Uuid::getFields()`. - * `getClockSeqHiAndReservedHex()` - * `getClockSeqLowHex()` - * `getClockSequenceHex()` - * `getFieldsHex()` - * `getNodeHex()` - * `getTimeHiAndVersionHex()` - * `getTimeLowHex()` - * `getTimeMidHex()` - * `getTimestampHex()` - * `getVariant()` - * `getVersion()` -* The following methods from `Uuid` are deprecated. Use the `Rfc4122\FieldsInterface` - instance returned by `Uuid::getFields()` to get the `Type\Hexadecimal` value - for these fields. You may use the new `Math\CalculatorInterface::toIntegerValue()` - method to convert the `Type\Hexadecimal` instances to instances of - `Type\Integer`. This library provides `Math\BrickMathCalculator`, which may be - used for this purpose, or you may use the arbitrary-precision arithemetic - library of your choice. - * `getClockSeqHiAndReserved()` - * `getClockSeqLow()` - * `getClockSequence()` - * `getNode()` - * `getTimeHiAndVersion()` - * `getTimeLow()` - * `getTimeMid()` - * `getTimestamp()` -* `getDateTime()` on `UuidInterface` and `Uuid` is deprecated. Use this method - only on instances of `Rfc4122\UuidV1` or `Nonstandard\UuidV6`. -* `getUrn()` on `UuidInterface` and `Uuid` is deprecated. It is available on - `Rfc4122\UuidInterface` and classes that implement it. -* The following methods are deprecated and have no direct replacements. However, - you may obtain the same information by calling `UuidInterface::getHex()` and - splitting the return value in half. - * `UuidInterface::getLeastSignificantBitsHex()` - * `UuidInterface::getMostSignificantBitsHex()` - * `Uuid::getLeastSignificantBitsHex()` - * `Uuid::getMostSignificantBitsHex()` - * `Uuid::getLeastSignificantBits()` - * `Uuid::getMostSignificantBits()` -* `UuidInterface::getNumberConverter()` and `Uuid::getNumberConverter()` are - deprecated. There is no alternative recommendation, so plan accordingly. -* `Builder\DefaultUuidBuilder` is deprecated; transition to `Rfc4122\UuidBuilder`. -* `Converter\Number\BigNumberConverter` is deprecated; transition to - `Converter\Number\GenericNumberConverter`. -* `Converter\Time\BigNumberTimeConverter` is deprecated; transition to - `Converter\Time\GenericTimeConverter`. -* The classes for representing and generating *degraded* UUIDs are deprecated. - These are no longer necessary; this library now behaves the same on 32-bit and - 64-bit systems. - * `Builder\DegradedUuidBuilder` - * `Converter\Number\DegradedNumberConverter` - * `Converter\Time\DegradedTimeConverter` - * `DegradedUuid` -* The `Uuid::UUID_TYPE_IDENTIFIER` constant is deprecated. Use - `Uuid::UUID_TYPE_DCE_SECURITY` instead. -* The `Uuid::VALID_PATTERN` constant is deprecated. Use - `Validator\GenericValidator::getPattern()` or `Rfc4122\Validator::getPattern()` - instead. - -### Removed - -* Remove the following bytes generators and recommend - `Generator\RandomBytesGenerator` as a suitable replacement: - * `Generator\MtRandGenerator` - * `Generator\OpenSslGenerator` - * `Generator\SodiumRandomGenerator` -* Remove `Exception\UnsatisfiedDependencyException`. This library no longer - throws this exception. -* Remove the method `Provider\TimeProviderInterface::currentTime()`. Use - `Provider\TimeProviderInterface::getTime()` instead. - - -## [4.0.0-beta2] - 2020-03-01 - -## Added - -* Add missing convenience methods for `Rfc4122\UuidV2`. -* Add `Provider\Node\StaticNodeProvider` to assist in setting a custom static - node value with the multicast bit set for version 1 UUIDs. - -## Changed - -* `Provider\NodeProviderInterface::getNode()` now returns `Type\Hexadecimal` - instead of `string|false|null`. - - -## [4.0.0-beta1] - 2020-02-27 - -### Added - -* Add `ValidatorInterface::getPattern()` to return the regular expression - pattern used by the validator. -* Add `v6()` helper function for version 6 UUIDs. - -### Changed - -* Set the pattern constants on validators as `private`. Use the `getPattern()` - method instead. -* Change the `$node` parameter for `UuidFactoryInterface::uuid6()` to accept - `null` or `Type\Hexadecimal`. -* Accept `Type\Hexadecimal` for the `$node` parameter for - `UuidFactoryInterface::uuid1()`. This is in addition to the `int|string` types - already accepted, so there are no BC breaks. `Type\Hexadecimal` is now the - recommended type to pass for `$node`. - -### Removed - -* Remove `currentTime()` method from `Provider\Time\FixedTimeProvider` and - `Provider\Time\SystemTimeProvider`; it had previously been removed from - `Provider\TimeProviderInterface`. - - -## [4.0.0-alpha5] - 2020-02-23 - -### Added - -* Introduce `Builder\BuilderCollection` and `Provider\Node\NodeProviderCollection`. - -### Changed - -* `Builder\FallbackBuilder` now accepts only a `Builder\BuilderCollection` as - its constructor parameter. -* `Provider\Node\FallbackNodeProvider` now accepts only a `Provider\Node\NodeProviderCollection` - as its constructor parameter. -* `Provider\Time\FixedTimeProvider` no longer accepts an array but accepts only - `Type\Time` instances. - - -## [4.0.0-alpha4] - 2020-02-23 - -### Added - -* Add a `Type\TypeInterface` that each of the ramsey/uuid types implements. -* Support version 6 UUIDs; see <http://gh.peabody.io/uuidv6/>. - -### Changed - -* Rename `Type\IntegerValue` to `Type\Integer`. It was originally named - `IntegerValue` because static analysis sees `Integer` in docblock annotations - and treats it as the native `int` type. `Integer` is not a reserved word in - PHP, so it should be named `Integer` for consistency with other types in this - library. When using it, a class alias prevents static analysis from - complaining. -* Mark `Guid\Guid` and `Nonstandard\Uuid` classes as `final`. -* Add `uuid6()` method to `UuidFactoryInterface`. - -### Deprecated - -* `Uuid::UUID_TYPE_IDENTIFIER` is deprecated. Use `Uuid::UUID_TYPE_DCE_SECURITY` - instead. -* `Uuid::VALID_PATTERN` is deprecated. Use `Validator\GenericValidator::VALID_PATTERN` - instead. - - -## [4.0.0-alpha3] - 2020-02-21 - -### Fixed - -* Fix microsecond rounding error on 32-bit systems. - - -## [4.0.0-alpha2] - 2020-02-21 - -### Added - -* Add `Uuid::fromDateTime()` to create version 1 UUIDs from instances of - `\DateTimeInterface`. -* Add `Generator\NameGeneratorInterface` to support alternate methods of - generating bytes for version 3 and version 5 name-based UUID. By default, - ramsey/uuid uses the `Generator\DefaultNameGenerator`, which uses the standard - algorithm this library has used since the beginning. You may choose to use the - new `Generator\PeclUuidNameGenerator` to make use of the new - `uuid_generate_md5()` and `uuid_generate_sha1()` functions in ext-uuid version - 1.1.0. - -### Changed - -* Add `fromDateTime()` method to `UuidFactoryInterface`. -* Change `UuidInterface::getHex()` to return a `Ramsey\Uuid\Type\Hexadecimal` instance. -* Change `UuidInterface::getInteger()` to return a `Ramsey\Uuid\Type\IntegerValue` instance. - -### Fixed - -* Round microseconds to six digits when getting DateTime from v1 UUIDs. This - circumvents a needless exception for an otherwise valid time-based UUID. - - -## [4.0.0-alpha1] - 2020-01-22 - -### Added - -* Add `Validator\ValidatorInterface` and `Validator\GenericValidator` to allow - flexibility in validating UUIDs/GUIDs. - * Add ability to change the default validator used by `Uuid` through - `FeatureSet::setValidator()`. - * Add `getValidator()` and `setValidator()` to `UuidFactory`. -* Add an internal `InvalidArgumentException` that descends from the built-in - PHP `\InvalidArgumentException`. All places that used to throw - `\InvalidArgumentException` now throw `Ramsey\Uuid\Exception\InvalidArgumentException`. - This should not cause any BC breaks, however. -* Add an internal `DateTimeException` that descends from the built-in PHP - `\RuntimeException`. `Uuid::getDateTime()` may throw this exception if - `\DateTimeImmutable` throws an error or exception. -* Add `RandomSourceException` that descends from the built-in PHP - `\RuntimeException`. `DefaultTimeGenerator`, `RandomBytesGenerator`, and - `RandomNodeProvider` may throw this exception if `random_bytes()` or - `random_int()` throw an error or exception. -* Add `Fields\FieldsInterface` and `Rfc4122\FieldsInterface` to define - field layouts for UUID variants. The implementations `Rfc4122\Fields`, - `Guid\Fields`, and `Nonstandard\Fields` store the 16-byte, - binary string representation of the UUID internally, and these manage - conversion of the binary string into the hexadecimal field values. -* Add `Rfc4122\UuidInterface` to specifically represent RFC 4122 variant UUIDs. -* Add classes to represent each version of RFC 4122 UUID. When generating new - UUIDs or creating UUIDs from existing strings, bytes, or integers, if the UUID - is an RFC 4122 variant, one of these instances will be returned: - * `Rfc4122\UuidV1` - * `Rfc4122\UuidV2` - * `Rfc4122\UuidV3` - * `Rfc4122\UuidV4` - * `Rfc4122\UuidV5` - * `Rfc4122\NilUuid` -* Add `Rfc4122\UuidBuilder` to build RFC 4122 variant UUIDs. This replaces the - existing `Builder\DefaultUuidBuilder`, which is now deprecated. -* Add ability to generate version 2 (DCE Security) UUIDs, including the static - method `Uuid::uuid2()`, which returns an `Rfc4122\UuidV2` instance. -* Add classes to represent GUIDs and nonstandard (non-RFC 4122 variant) UUIDs: - * `Guid\Guid` - * `Nonstandard\Uuid`. -* Introduce a `Builder\FallbackBuilder`, used by `FeatureSet` to help decide - whether to return a `Uuid` or `Nonstandard\Uuid` when decoding a - UUID string or bytes. -* Introduce `Type\Hexadecimal`, `Type\IntegerValue`, and `Type\Time` for - improved type-safety when dealing with arbitrary string values. -* Introduce `Math\CalculatorInterface` for representing calculators to perform - arithmetic operations on integers. -* Depend on [brick/math](https://github.com/brick/math) for the - `Math\BrickMathCalculator`, which is the default calculator used by this - library when math cannot be performed in native PHP due to integer size - limitations. The calculator is configurable and may be changed, if desired. -* Add `Converter\Number\GenericNumberConverter` and - `Converter\Time\GenericTimeConverter` which will use the calculator provided - to convert numbers and time to values for UUIDs. -* The `\DateTimeInterface` instance returned by `UuidInterface::getDateTime()` - (and now `Rfc4122\UuidV1::getDateTime()`) now includes microseconds, as - specified by the version 1 UUID. - -### Changed - -* Set minimum required PHP version to 7.2. -* Add `__toString()` method to `UuidInterface`. -* The `UuidInterface::getDateTime()` method now specifies `\DateTimeInterface` - as the return value, rather than `\DateTime`; `Uuid::getDateTime()` now - returns an instance of `\DateTimeImmutable` instead of `\DateTime`. -* Add `getFields()` method to `UuidInterface`. -* Add `getValidator()` method to `UuidFactoryInterface`. -* Add `uuid2()` method to `UuidFactoryInterface`. -* Add `convertTime()` method to `Converter\TimeConverterInterface`. -* Add `getTime()` method to `Provider\TimeProviderInterface`. -* Change `Uuid::getFields()` to return an instance of `Fields\FieldsInterface`. - Previously, it returned an array of integer values (on 64-bit systems only). -* Change the first required constructor parameter for `Uuid` from - `array $fields` to `Rfc4122\FieldsInterface $fields`. -* Introduce `Converter\TimeConverterInterface $timeConverter` as fourth required - constructor parameter for `Uuid` and second required constructor parameter for - `Builder\DefaultUuidBuilder`. -* Change `UuidInterface::getInteger()` to always return a `string` value instead - of `mixed`. This is a string representation of a 128-bit integer. You may then - use a math library of your choice (bcmath, gmp, etc.) to operate on the - string integer. -* Change the second required parameter of `Builder\UuidBuilderInterface::build()` - from `array $fields` to `string $bytes`. Rather than accepting an array of - hexadecimal strings as UUID fields, the `build()` method now expects a byte - string. -* `Generator\DefaultTimeGenerator` no longer adds the variant and version bits - to the bytes it returns. These must be applied to the bytes afterwards. -* `Converter/TimeConverterInterface::calculateTime()` now returns - `Type\Hexadecimal` instead of `array`. The value is the full UUID timestamp - value (count of 100-nanosecond intervals since the Gregorian calendar epoch) - in hexadecimal format. -* Change methods in converter interfaces to accept and return string values - instead of `mixed`; this simplifies the interface and makes it consistent: - * `NumberConverterInterface::fromHex(string $hex): string` - * `NumberConverterInterface::toHex(string $number): string` - * `TimeConverterInterface::calculateTime(string $seconds, string $microseconds): array` -* `UnsupportedOperationException` is now descended from `\LogicException`. - Previously, it descended from `\RuntimeException`. -* When encoding to bytes or decoding from bytes, `OrderedTimeCodec` now checks - whether the UUID is an RFC 4122 variant, version 1 UUID. If not, it will throw - an exception—`InvalidArgumentException` when using - `OrderedTimeCodec::encodeBinary()` and `UnsupportedOperationException` when - using `OrderedTimeCodec::decodeBytes()`. -* Out of the box, `Uuid::fromString()`, `Uuid::fromBytes()`, and - `Uuid::fromInteger()` will now return either an `Rfc4122\UuidInterface` - instance or an instance of `Nonstandard\Uuid`, depending on whether the input - contains an RFC 4122 variant UUID with a valid version identifier. Both - implement `UuidInterface`, so BC breaks should not occur if typehints use the - interface. -* By default, the following static methods will now return the specific instance - types. This should not cause any BC breaks if typehints target `UuidInterface`: - * `Uuid::uuid1` returns `Rfc4122\UuidV1` - * `Uuid::uuid3` returns `Rfc4122\UuidV3` - * `Uuid::uuid4` returns `Rfc4122\UuidV4` - * `Uuid::uuid5` returns `Rfc4122\UuidV5` - -### Deprecated - -The following functionality is deprecated and will be removed in ramsey/uuid -5.0.0. - -* The following methods from `UuidInterface` and `Uuid` are deprecated. Use their - counterparts on the `Rfc4122\FieldsInterface` returned by `Uuid::getFields()`. - * `getClockSeqHiAndReservedHex()` - * `getClockSeqLowHex()` - * `getClockSequenceHex()` - * `getFieldsHex()` - * `getNodeHex()` - * `getTimeHiAndVersionHex()` - * `getTimeLowHex()` - * `getTimeMidHex()` - * `getTimestampHex()` - * `getVariant()` - * `getVersion()` -* The following methods from `Uuid` are deprecated. Use the `Rfc4122\FieldsInterface` - instance returned by `Uuid::getFields()` to get the `Type\Hexadecimal` value - for these fields, and then use the arbitrary-precision arithmetic library of - your choice to convert them to string integers. - * `getClockSeqHiAndReserved()` - * `getClockSeqLow()` - * `getClockSequence()` - * `getNode()` - * `getTimeHiAndVersion()` - * `getTimeLow()` - * `getTimeMid()` - * `getTimestamp()` -* `getDateTime()` on `UuidInterface` and `Uuid` is deprecated. Use this method - only on instances of `Rfc4122\UuidV1`. -* `getUrn()` on `UuidInterface` and `Uuid` is deprecated. It is available on - `Rfc4122\UuidInterface` and classes that implement it. -* The following methods are deprecated and have no direct replacements. However, - you may obtain the same information by calling `UuidInterface::getHex()` and - splitting the return value in half. - * `UuidInterface::getLeastSignificantBitsHex()` - * `UuidInterface::getMostSignificantBitsHex()` - * `Uuid::getLeastSignificantBitsHex()` - * `Uuid::getMostSignificantBitsHex()` - * `Uuid::getLeastSignificantBits()` - * `Uuid::getMostSignificantBits()` -* `UuidInterface::getNumberConverter()` and `Uuid::getNumberConverter()` are - deprecated. There is no alternative recommendation, so plan accordingly. -* `Builder\DefaultUuidBuilder` is deprecated; transition to - `Rfc4122\UuidBuilder`. -* `Converter\Number\BigNumberConverter` is deprecated; transition to - `Converter\Number\GenericNumberConverter`. -* `Converter\Time\BigNumberTimeConverter` is deprecated; transition to - `Converter\Time\GenericTimeConverter`. -* `Provider\TimeProviderInterface::currentTime()` is deprecated; transition to - the `getTimestamp()` method on the same interface. -* The classes for representing and generating *degraded* UUIDs are deprecated. - These are no longer necessary; this library now behaves the same on 32-bit and - 64-bit PHP. - * `Builder\DegradedUuidBuilder` - * `Converter\Number\DegradedNumberConverter` - * `Converter\Time\DegradedTimeConverter` - * `DegradedUuid` - -### Removed - -* Remove the following bytes generators and recommend - `Generator\RandomBytesGenerator` as a suitable replacement: - * `Generator\MtRandGenerator` - * `Generator\OpenSslGenerator` - * `Generator\SodiumRandomGenerator` -* Remove `Exception\UnsatisfiedDependencyException`. This library no longer - throws this exception. - - -## [3.9.3] - 2020-02-20 - -### Fixed - -* For v1 UUIDs, round down for timestamps so that microseconds do not bump the - timestamp to the next second. - - As an example, consider the case of timestamp `1` with `600000` microseconds - (`1.600000`). This is the first second after midnight on January 1, 1970, UTC. - Previous versions of this library had a bug that would round this to `2`, so - the rendered time was `1970-01-01 00:00:02`. This was incorrect. Despite - having `600000` microseconds, the time should not round up to the next second. - Rather, the time should be `1970-01-01 00:00:01.600000`. Since this version of - ramsey/uuid does not support microseconds, the microseconds are dropped, and - the time is `1970-01-01 00:00:01`. No rounding should occur. - - -## [3.9.2] - 2019-12-17 - -### Fixed - -* Check whether files returned by `/sys/class/net/*/address` are readable - before attempting to read them. This avoids a PHP warning that was being - emitted on hosts that do not grant permission to read these files. - - -## [3.9.1] - 2019-12-01 - -### Fixed - -* Fix `RandomNodeProvider` behavior on 32-bit systems. The `RandomNodeProvider` - was converting a 6-byte string to a decimal number, which is a 48-bit, - unsigned integer. This caused problems on 32-bit systems and has now been - resolved. - - -## [3.9.0] - 2019-11-30 - -### Added - -* Add function API as convenience. The functions are available in the - `Ramsey\Uuid` namespace. - * `v1(int|string|null $node = null, int|null $clockSeq = null): string` - * `v3(string|UuidInterface $ns, string $name): string` - * `v4(): string` - * `v5(string|UuidInterface $ns, string $name): string` - -### Changed - -* Use paragonie/random-lib instead of ircmaxell/random-lib. This is a - non-breaking change. -* Use a high-strength generator by default, when using `RandomLibAdapter`. This - is a non-breaking change. - -### Deprecated - -These will be removed in ramsey/uuid version 4.0.0: - -* `MtRandGenerator`, `OpenSslGenerator`, and `SodiumRandomGenerator` are - deprecated in favor of using the default `RandomBytesGenerator`. - -### Fixed - -* Set `ext-json` as a required dependency in `composer.json`. -* Use `PHP_OS` instead of `php_uname()` when determining the system OS, for - cases when `php_uname()` is disabled for security reasons. - - -## [3.8.0] - 2018-07-19 - -### Added - -* Support discovery of MAC addresses on FreeBSD systems -* Use a polyfill to provide PHP ctype functions when running on systems where the - ctype functions are not part of the PHP build -* Disallow a trailing newline character when validating UUIDs -* Annotate thrown exceptions for improved IDE hinting - - -## [3.7.3] - 2018-01-19 - -### Fixed - -* Gracefully handle cases where `glob()` returns false when searching - `/sys/class/net/*/address` files on Linux -* Fix off-by-one error in `DefaultTimeGenerator` - -### Security - -* Switch to `random_int()` from `mt_rand()` for better random numbers - - -## [3.7.2] - 2018-01-13 - -### Fixed - -* Check sysfs on Linux to determine the node identifier; this provides a - reliable way to identify the node on Docker images, etc. - - -## [3.7.1] - 2017-09-22 - -### Fixed - -* Set the multicast bit for random nodes, according to RFC 4122, §4.5 - -### Security - -* Use `random_bytes()` when generating random nodes - - -## [3.7.0] - 2017-08-04 - -### Added - -* Add the following UUID version constants: - * `Uuid::UUID_TYPE_TIME` - * `Uuid::UUID_TYPE_IDENTIFIER` - * `Uuid::UUID_TYPE_HASH_MD5` - * `Uuid::UUID_TYPE_RANDOM` - * `Uuid::UUID_TYPE_HASH_SHA1` - - -## [3.6.1] - 2017-03-26 - -### Fixed - -* Optimize UUID string decoding by using `str_pad()` instead of `sprintf()` - - -## [3.6.0] - 2017-03-18 - -### Added - -* Add `InvalidUuidStringException`, which is thrown when attempting to decode an - invalid string UUID; this does not introduce any BC issues, since the new - exception inherits from the previously used `InvalidArgumentException` - -### Fixed - -* Improve memory usage when generating large quantities of UUIDs (use `str_pad()` - and `dechex()` instead of `sprintf()`) - - -## [3.5.2] - 2016-11-22 - -### Fixed - -* Improve test coverage - - -## [3.5.1] - 2016-10-02 - -### Fixed - -* Fix issue where the same UUIDs were not being treated as equal when using - mixed cases - - -## [3.5.0] - 2016-08-02 - -### Added - -* Add `OrderedTimeCodec` to store UUID in an optimized way for InnoDB - -### Fixed - -* Fix invalid node generation in `RandomNodeProvider` -* Avoid multiple unnecessary system calls by caching failed attempt to retrieve - system node - - -## [3.4.1] - 2016-04-23 - -### Fixed - -* Fix test that violated a PHP CodeSniffer rule, breaking the build - - -## [3.4.0] - 2016-04-23 - -### Added - -* Add `TimestampFirstCombCodec` and `TimestampLastCombCodec` codecs to provide - the ability to generate [COMB sequential UUIDs] with the timestamp encoded as - either the first 48 bits or the last 48 bits -* Improve logic of `CombGenerator` for COMB sequential UUIDs - - -## [3.3.0] - 2016-03-22 - -### Security - -* Drop the use of OpenSSL as a fallback and use [paragonie/random_compat] to - support `RandomBytesGenerator` in versions of PHP earlier than 7.0; - this addresses and fixes the [collision issue] - - -## [3.2.0] - 2016-02-17 - -### Added - -* Add `SodiumRandomGenerator` to allow use of the [PECL libsodium extension] as - a random bytes generator when creating UUIDs - - -## [3.1.0] - 2015-12-17 - -### Added - -* Implement the PHP `Serializable` interface to provide the ability to - serialize/unserialize UUID objects - - -## [3.0.1] - 2015-10-21 - -### Added - -* Adopt the [Contributor Code of Conduct] for this project - - -## [3.0.0] - 2015-09-28 - -The 3.0.0 release represents a significant step for the ramsey/uuid library. -While the simple and familiar API used in previous versions remains intact, this -release provides greater flexibility to integrators, including the ability to -inject your own number generators, UUID codecs, node and time providers, and -more. - -*Please note: The changelog for 3.0.0 includes all notes from the alpha and beta -versions leading up to this release.* - -### Added - -* Add a number of generators that may be used to override the library defaults - for generating random bytes (version 4) or time-based (version 1) UUIDs - * `CombGenerator` to allow generation of sequential UUIDs - * `OpenSslGenerator` to generate random bytes on systems where - `openssql_random_pseudo_bytes()` is present - * `MtRandGenerator` to provide a fallback in the event other random generators - are not present - * `RandomLibAdapter` to allow use of [ircmaxell/random-lib] - * `RandomBytesGenerator` for use with PHP 7; ramsey/uuid will default to use - this generator when running on PHP 7 - * Refactor time-based (version 1) UUIDs into a `TimeGeneratorInterface` to - allow for other sources to generate version 1 UUIDs in this library - * `PeclUuidTimeGenerator` and `PeclUuidRandomGenerator` for creating version - 1 or version 4 UUIDs using the pecl-uuid extension -* Add a `setTimeGenerator` method on `UuidFactory` to override the default time - generator -* Add option to enable `PeclUuidTimeGenerator` via `FeatureSet` -* Support GUID generation by configuring a `FeatureSet` to use GUIDs -* Allow UUIDs to be serialized as JSON through `JsonSerializable` - -### Changed - -* Change root namespace from "Rhumsaa" to "Ramsey;" in most cases, simply - making this change in your applications is the only upgrade path you will - need—everything else should work as expected -* No longer consider `Uuid` class as `final`; everything is now based around - interfaces and factories, allowing you to use this package as a base to - implement other kinds of UUIDs with different dependencies -* Return an object of type `DegradedUuid` on 32-bit systems to indicate that - certain features are not available -* Default `RandomLibAdapter` to a medium-strength generator with - [ircmaxell/random-lib]; this is configurable, so other generator strengths may - be used - -### Removed - -* Remove `PeclUuidFactory` in favor of using pecl-uuid with generators -* Remove `timeConverter` and `timeProvider` properties, setters, and getters in - both `FeatureSet` and `UuidFactory` as those are now exclusively used by the - default `TimeGenerator` -* Move UUID [Doctrine field type] to [ramsey/uuid-doctrine] -* Move `uuid` console application to [ramsey/uuid-console] -* Remove `Uuid::VERSION` package version constant - -### Fixed - -* Improve GUID support to ensure that: - * On little endian (LE) architectures, the byte order of the first three - fields is LE - * On big endian (BE) architectures, it is the same as a GUID - * String representation is always the same -* Fix exception message for `DegradedNumberConverter::fromHex()` - - -## [3.0.0-beta1] - 2015-08-31 - -### Fixed - -* Improve GUID support to ensure that: - * On little endian (LE) architectures, the byte order of the first three - fields is LE - * On big endian (BE) architectures, it is the same as a GUID - * String representation is always the same -* Fix exception message for `DegradedNumberConverter::fromHex()` - - -## [3.0.0-alpha3] - 2015-07-28 - -### Added - -* Enable use of custom `TimeGenerator` implementations -* Add a `setTimeGenerator` method on `UuidFactory` to override the default time - generator -* Add option to enable `PeclUuidTimeGenerator` via `FeatureSet` - -### Removed - -* Remove `timeConverter` and `timeProvider` properties, setters, and getters in - both `FeatureSet` and `UuidFactory` as those are now exclusively used by the - default `TimeGenerator` - - -## [3.0.0-alpha2] - 2015-07-28 - -### Added - -* Refactor time-based (version 1) UUIDs into a `TimeGeneratorInterface` to allow - for other sources to generate version 1 UUIDs in this library -* Add `PeclUuidTimeGenerator` and `PeclUuidRandomGenerator` for creating version - 1 or version 4 UUIDs using the pecl-uuid extension -* Add `RandomBytesGenerator` for use with PHP 7. ramsey/uuid will default to use - this generator when running on PHP 7 - -### Changed - -* Default `RandomLibAdapter` to a medium-strength generator with - [ircmaxell/random-lib]; this is configurable, so other generator strengths may - be used - -### Removed - -* Remove `PeclUuidFactory` in favor of using pecl-uuid with generators - - -## [3.0.0-alpha1] - 2015-07-16 - -### Added - -* Allow dependency injection through `UuidFactory` and/or extending `FeatureSet` - to override any package defaults -* Add a number of generators that may be used to override the library defaults: - * `CombGenerator` to allow generation of sequential UUIDs - * `OpenSslGenerator` to generate random bytes on systems where - `openssql_random_pseudo_bytes()` is present - * `MtRandGenerator` to provide a fallback in the event other random generators - are not present - * `RandomLibAdapter` to allow use of [ircmaxell/random-lib] -* Support GUID generation by configuring a `FeatureSet` to use GUIDs -* Allow UUIDs to be serialized as JSON through `JsonSerializable` - -### Changed - -* Change root namespace from "Rhumsaa" to "Ramsey;" in most cases, simply - making this change in your applications is the only upgrade path you will - need—everything else should work as expected -* No longer consider `Uuid` class as `final`; everything is now based around - interfaces and factories, allowing you to use this package as a base to - implement other kinds of UUIDs with different dependencies -* Return an object of type `DegradedUuid` on 32-bit systems to indicate that - certain features are not available - -### Removed - -* Move UUID [Doctrine field type] to [ramsey/uuid-doctrine] -* Move `uuid` console application to [ramsey/uuid-console] -* Remove `Uuid::VERSION` package version constant - - -## [2.9.0] - 2016-03-22 - -### Security - -* Drop the use of OpenSSL as a fallback and use [paragonie/random_compat] to - support `RandomBytesGenerator` in versions of PHP earlier than 7.0; - this addresses and fixes the [collision issue] - - -## [2.8.4] - 2015-12-17 - -### Added - -* Add support for symfony/console v3 in the `uuid` CLI application - - -## [2.8.3] - 2015-08-31 - -### Fixed - -* Fix exception message in `Uuid::calculateUuidTime()` - - -## [2.8.2] - 2015-07-23 - -### Fixed - -* Ensure the release tag makes it into the rhumsaa/uuid package - - -## [2.8.1] - 2015-06-16 - -### Fixed - -* Use `passthru()` and output buffering in `getIfconfig()` -* Cache the system node in a static variable so that we process it only once per - runtime - - -## [2.8.0] - 2014-11-09 - -### Added - -* Add static `fromInteger()` method to create UUIDs from string integer or - `Moontoast\Math\BigNumber` - -### Fixed - -* Improve Doctrine conversion to Uuid or string for the ramsey/uuid [Doctrine field type] - - -## [2.7.4] - 2014-10-29 - -### Fixed - -* Change loop in `generateBytes()` from `foreach` to `for` - - -## [2.7.3] - 2014-08-27 - -### Fixed - -* Fix upper range for `mt_rand` used in version 4 UUIDs - - -## [2.7.2] - 2014-07-28 - -### Changed - -* Upgrade to PSR-4 autoloading - - -## [2.7.1] - 2014-02-19 - -### Fixed - -* Move moontoast/math and symfony/console to require-dev -* Support symfony/console 2.3 (LTS version) - - -## [2.7.0] - 2014-01-31 - -### Added - -* Add `Uuid::VALID_PATTERN` constant containing a UUID validation regex pattern - - -## [2.6.1] - 2014-01-27 - -### Fixed - -* Fix bug where `uuid` console application could not find the Composer - autoloader when installed in another project - - -## [2.6.0] - 2014-01-17 - -### Added - -* Introduce `uuid` console application for generating and decoding UUIDs from - CLI (run `./bin/uuid` for details) -* Add `Uuid::getInteger()` to retrieve a `Moontoast\Math\BigNumber` - representation of the 128-bit integer representing the UUID -* Add `Uuid::getHex()` to retrieve the hexadecimal representation of the UUID -* Use `netstat` on Linux to capture the node for a version 1 UUID -* Require moontoast/math as part of the regular package requirements - - -## [2.5.0] - 2013-10-30 - -### Added - -* Use `openssl_random_pseudo_bytes()`, if available, to generate random bytes - - -## [2.4.0] - 2013-07-29 - -### Added - -* Return `null` from `Uuid::getVersion()` if the UUID isn't an RFC 4122 variant -* Support string UUIDs without dashes passed to `Uuid::fromString()` - - -## [2.3.0] - 2013-07-16 - -### Added - -* Support creation of UUIDs from bytes with `Uuid::fromBytes()` - - -## [2.2.0] - 2013-07-04 - -### Added - -* Add `Doctrine\UuidType::requiresSQLCommentHint()` method - - -## [2.1.2] - 2013-07-03 - -### Fixed - -* Fix cases where the system node was coming back with uppercase hexadecimal - digits; this ensures that case in the node is converted to lowercase - - -## [2.1.1] - 2013-04-29 - -### Fixed - -* Fix bug in `Uuid::isValid()` where the NIL UUID was not reported as valid - - -## [2.1.0] - 2013-04-15 - -### Added - -* Allow checking the validity of a UUID through the `Uuid::isValid()` method - - -## [2.0.0] - 2013-02-11 - -### Added - -* Support UUID generation on 32-bit platforms - -### Changed - -* Mark `Uuid` class `final` -* Require moontoast/math on 64-bit platforms for - `Uuid::getLeastSignificantBits()` and `Uuid::getMostSignificantBits()`; the - integers returned by these methods are *unsigned* 64-bit integers and - unsupported even on 64-bit builds of PHP -* Move `UnsupportedOperationException` to the `Exception` subnamespace - - -## [1.1.2] - 2012-11-29 - -### Fixed - -* Relax [Doctrine field type] conversion rules for UUIDs - - -## [1.1.1] - 2012-08-27 - -### Fixed - -* Remove `final` keyword from `Uuid` class - - -## [1.1.0] - 2012-08-06 - -### Added - -* Support ramsey/uuid UUIDs as a Doctrine Database Abstraction Layer (DBAL) - field mapping type - - -## [1.0.0] - 2012-07-19 - -### Added - -* Support generation of version 1, 3, 4, and 5 UUIDs - - -[comb sequential uuids]: http://www.informit.com/articles/article.aspx?p=25862&seqNum=7 -[paragonie/random_compat]: https://github.com/paragonie/random_compat -[collision issue]: https://github.com/ramsey/uuid/issues/80 -[contributor code of conduct]: https://github.com/ramsey/uuid/blob/master/.github/CODE_OF_CONDUCT.md -[pecl libsodium extension]: http://pecl.php.net/package/libsodium -[ircmaxell/random-lib]: https://github.com/ircmaxell/RandomLib -[doctrine field type]: http://doctrine-dbal.readthedocs.org/en/latest/reference/types.html -[ramsey/uuid-doctrine]: https://github.com/ramsey/uuid-doctrine -[ramsey/uuid-console]: https://github.com/ramsey/uuid-console - -[unreleased]: https://github.com/ramsey/uuid/compare/4.1.1...HEAD -[4.1.1]: https://github.com/ramsey/uuid/compare/4.1.0...4.1.1 -[4.1.0]: https://github.com/ramsey/uuid/compare/4.0.1...4.1.0 -[4.0.1]: https://github.com/ramsey/uuid/compare/4.0.0...4.0.1 -[4.0.0]: https://github.com/ramsey/uuid/compare/4.0.0-beta2...4.0.0 -[4.0.0-beta2]: https://github.com/ramsey/uuid/compare/4.0.0-beta1...4.0.0-beta2 -[4.0.0-beta1]: https://github.com/ramsey/uuid/compare/4.0.0-alpha5...4.0.0-beta1 -[4.0.0-alpha5]: https://github.com/ramsey/uuid/compare/4.0.0-alpha4...4.0.0-alpha5 -[4.0.0-alpha4]: https://github.com/ramsey/uuid/compare/4.0.0-alpha3...4.0.0-alpha4 -[4.0.0-alpha3]: https://github.com/ramsey/uuid/compare/4.0.0-alpha2...4.0.0-alpha3 -[4.0.0-alpha2]: https://github.com/ramsey/uuid/compare/4.0.0-alpha1...4.0.0-alpha2 -[4.0.0-alpha1]: https://github.com/ramsey/uuid/compare/3.9.3...4.0.0-alpha1 -[3.9.3]: https://github.com/ramsey/uuid/compare/3.9.2...3.9.3 -[3.9.2]: https://github.com/ramsey/uuid/compare/3.9.1...3.9.2 -[3.9.1]: https://github.com/ramsey/uuid/compare/3.9.0...3.9.1 -[3.9.0]: https://github.com/ramsey/uuid/compare/3.8.0...3.9.0 -[3.8.0]: https://github.com/ramsey/uuid/compare/3.7.3...3.8.0 -[3.7.3]: https://github.com/ramsey/uuid/compare/3.7.2...3.7.3 -[3.7.2]: https://github.com/ramsey/uuid/compare/3.7.1...3.7.2 -[3.7.1]: https://github.com/ramsey/uuid/compare/3.7.0...3.7.1 -[3.7.0]: https://github.com/ramsey/uuid/compare/3.6.1...3.7.0 -[3.6.1]: https://github.com/ramsey/uuid/compare/3.6.0...3.6.1 -[3.6.0]: https://github.com/ramsey/uuid/compare/3.5.2...3.6.0 -[3.5.2]: https://github.com/ramsey/uuid/compare/3.5.1...3.5.2 -[3.5.1]: https://github.com/ramsey/uuid/compare/3.5.0...3.5.1 -[3.5.0]: https://github.com/ramsey/uuid/compare/3.4.1...3.5.0 -[3.4.1]: https://github.com/ramsey/uuid/compare/3.4.0...3.4.1 -[3.4.0]: https://github.com/ramsey/uuid/compare/3.3.0...3.4.0 -[3.3.0]: https://github.com/ramsey/uuid/compare/3.2.0...3.3.0 -[3.2.0]: https://github.com/ramsey/uuid/compare/3.1.0...3.2.0 -[3.1.0]: https://github.com/ramsey/uuid/compare/3.0.1...3.1.0 -[3.0.1]: https://github.com/ramsey/uuid/compare/3.0.0...3.0.1 -[3.0.0]: https://github.com/ramsey/uuid/compare/3.0.0-beta1...3.0.0 -[3.0.0-beta1]: https://github.com/ramsey/uuid/compare/3.0.0-alpha3...3.0.0-beta1 -[3.0.0-alpha3]: https://github.com/ramsey/uuid/compare/3.0.0-alpha2...3.0.0-alpha3 -[3.0.0-alpha2]: https://github.com/ramsey/uuid/compare/3.0.0-alpha1...3.0.0-alpha2 -[3.0.0-alpha1]: https://github.com/ramsey/uuid/compare/2.9.0...3.0.0-alpha1 -[2.9.0]: https://github.com/ramsey/uuid/compare/2.8.4...2.9.0 -[2.8.4]: https://github.com/ramsey/uuid/compare/2.8.3...2.8.4 -[2.8.3]: https://github.com/ramsey/uuid/compare/2.8.2...2.8.3 -[2.8.2]: https://github.com/ramsey/uuid/compare/2.8.1...2.8.2 -[2.8.1]: https://github.com/ramsey/uuid/compare/2.8.0...2.8.1 -[2.8.0]: https://github.com/ramsey/uuid/compare/2.7.4...2.8.0 -[2.7.4]: https://github.com/ramsey/uuid/compare/2.7.3...2.7.4 -[2.7.3]: https://github.com/ramsey/uuid/compare/2.7.2...2.7.3 -[2.7.2]: https://github.com/ramsey/uuid/compare/2.7.1...2.7.2 -[2.7.1]: https://github.com/ramsey/uuid/compare/2.7.0...2.7.1 -[2.7.0]: https://github.com/ramsey/uuid/compare/2.6.1...2.7.0 -[2.6.1]: https://github.com/ramsey/uuid/compare/2.6.0...2.6.1 -[2.6.0]: https://github.com/ramsey/uuid/compare/2.5.0...2.6.0 -[2.5.0]: https://github.com/ramsey/uuid/compare/2.4.0...2.5.0 -[2.4.0]: https://github.com/ramsey/uuid/compare/2.3.0...2.4.0 -[2.3.0]: https://github.com/ramsey/uuid/compare/2.2.0...2.3.0 -[2.2.0]: https://github.com/ramsey/uuid/compare/2.1.2...2.2.0 -[2.1.2]: https://github.com/ramsey/uuid/compare/2.1.1...2.1.2 -[2.1.1]: https://github.com/ramsey/uuid/compare/2.1.0...2.1.1 -[2.1.0]: https://github.com/ramsey/uuid/compare/2.0.0...2.1.0 -[2.0.0]: https://github.com/ramsey/uuid/compare/1.1.2...2.0.0 -[1.1.2]: https://github.com/ramsey/uuid/compare/1.1.1...1.1.2 -[1.1.1]: https://github.com/ramsey/uuid/compare/1.1.0...1.1.1 -[1.1.0]: https://github.com/ramsey/uuid/compare/1.0.0...1.1.0 -[1.0.0]: https://github.com/ramsey/uuid/commits/1.0.0 |