diff options
Diffstat (limited to 'vendor/ramsey/uuid')
-rw-r--r-- | vendor/ramsey/uuid/CHANGELOG.md | 20 | ||||
-rw-r--r-- | vendor/ramsey/uuid/LICENSE | 2 | ||||
-rw-r--r-- | vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php | 2 | ||||
-rw-r--r-- | vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php | 2 | ||||
-rw-r--r-- | vendor/ramsey/uuid/src/DegradedUuid.php | 2 | ||||
-rw-r--r-- | vendor/ramsey/uuid/src/Uuid.php | 6 |
6 files changed, 26 insertions, 8 deletions
diff --git a/vendor/ramsey/uuid/CHANGELOG.md b/vendor/ramsey/uuid/CHANGELOG.md index f2f1548e2..57b7f5ea7 100644 --- a/vendor/ramsey/uuid/CHANGELOG.md +++ b/vendor/ramsey/uuid/CHANGELOG.md @@ -21,6 +21,23 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Security +## [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 @@ -591,7 +608,8 @@ versions leading up to this release.* [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/3.9.2...HEAD +[unreleased]: https://github.com/ramsey/uuid/compare/3.9.3...HEAD +[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 diff --git a/vendor/ramsey/uuid/LICENSE b/vendor/ramsey/uuid/LICENSE index f6f7e8043..b2aa4b587 100644 --- a/vendor/ramsey/uuid/LICENSE +++ b/vendor/ramsey/uuid/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2012-2019 Ben Ramsey <ben@benramsey.com> +Copyright (c) 2012-2020 Ben Ramsey <ben@benramsey.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php b/vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php index 270a1e75b..9d13af70c 100644 --- a/vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php +++ b/vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php @@ -17,7 +17,7 @@ use Ramsey\Uuid\Exception\InvalidUuidStringException; use Ramsey\Uuid\UuidInterface; /** - * TimestampLastCombCodec encodes and decodes COMB UUIDs which have the timestamp as the first 48 bits. + * TimestampFirstCombCodec encodes and decodes COMB UUIDs which have the timestamp as the first 48 bits. * To be used with MySQL, PostgreSQL, Oracle. */ class TimestampFirstCombCodec extends StringCodec diff --git a/vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php b/vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php index c851792f3..23cf1640b 100644 --- a/vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php +++ b/vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php @@ -28,7 +28,7 @@ interface TimeConverterInterface * * @param string $seconds * @param string $microSeconds - * @return string[] An array guaranteed to contain `low`, `mid`, and `high` keys + * @return string[] An array guaranteed to contain `low`, `mid`, and `hi` keys * @throws UnsatisfiedDependencyException if called on a 32-bit system and * `Moontoast\Math\BigNumber` is not present * @link http://tools.ietf.org/html/rfc4122#section-4.2.2 diff --git a/vendor/ramsey/uuid/src/DegradedUuid.php b/vendor/ramsey/uuid/src/DegradedUuid.php index 26697615c..4e11272d0 100644 --- a/vendor/ramsey/uuid/src/DegradedUuid.php +++ b/vendor/ramsey/uuid/src/DegradedUuid.php @@ -40,7 +40,7 @@ class DegradedUuid extends Uuid $ts = new BigNumber($time, 20); $ts->subtract('122192928000000000'); $ts->divide('10000000.0'); - $ts->round(); + $ts->floor(); $unixTime = $ts->getValue(); return new DateTime("@{$unixTime}"); diff --git a/vendor/ramsey/uuid/src/Uuid.php b/vendor/ramsey/uuid/src/Uuid.php index 38fbd5ed6..f2912b48a 100644 --- a/vendor/ramsey/uuid/src/Uuid.php +++ b/vendor/ramsey/uuid/src/Uuid.php @@ -350,8 +350,8 @@ class Uuid implements UuidInterface throw new UnsupportedOperationException('Not a time-based UUID'); } - $unixTime = ($this->getTimestamp() - 0x01b21dd213814000) / 1e7; - $unixTime = number_format($unixTime, 0, '', ''); + $unixTimeNanoseconds = $this->getTimestamp() - 0x01b21dd213814000; + $unixTime = ($unixTimeNanoseconds - $unixTimeNanoseconds % 1e7) / 1e7; return new DateTime("@{$unixTime}"); } @@ -676,7 +676,7 @@ class Uuid implements UuidInterface */ public static function isValid($uuid) { - $uuid = str_replace(['urn:', 'uuid:', '{', '}'], '', $uuid); + $uuid = str_replace(['urn:', 'uuid:', 'URN:', 'UUID:', '{', '}'], '', $uuid); if ($uuid == self::NIL) { return true; |