create-prisma-php-app 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +9 -0
- package/README.md +158 -0
- package/composer.json +23 -0
- package/composer.lock +812 -0
- package/dist/bootstrap.php +4 -0
- package/dist/index.js +2 -0
- package/dist/node_modules/prisma-client-php/index.enc +1 -0
- package/dist/node_modules/prisma-client-php/index.js +2 -0
- package/dist/node_modules/prisma-client-php/key.enc +1 -0
- package/dist/node_modules/prisma-client-php/package.json +7 -0
- package/dist/prisma/schema.prisma +32 -0
- package/dist/prisma/seed.js +68 -0
- package/dist/public/assets/images/prisma-php.png +0 -0
- package/dist/public/css/styles.css +0 -0
- package/dist/public/css/tailwind.css +3 -0
- package/dist/public/favicon.ico +0 -0
- package/dist/public/index.php +64 -0
- package/dist/settings/paths.php +10 -0
- package/dist/settings/project-settings.js +6 -0
- package/dist/src/app/api/api.php +39 -0
- package/dist/src/app/classes/Validator.php +77 -0
- package/dist/src/app/model/IModel.php +22 -0
- package/package.json +35 -0
- package/tsconfig.json +110 -0
- package/vendor/autoload.php +25 -0
- package/vendor/brick/math/.editorconfig +15 -0
- package/vendor/brick/math/.gitattributes +11 -0
- package/vendor/brick/math/.github/FUNDING.yml +1 -0
- package/vendor/brick/math/.github/workflows/ci.yml +80 -0
- package/vendor/brick/math/CHANGELOG.md +445 -0
- package/vendor/brick/math/LICENSE +20 -0
- package/vendor/brick/math/README.md +247 -0
- package/vendor/brick/math/composer.json +34 -0
- package/vendor/brick/math/phpunit.php +51 -0
- package/vendor/brick/math/phpunit.xml +13 -0
- package/vendor/brick/math/psalm.xml +28 -0
- package/vendor/brick/math/random-tests.php +162 -0
- package/vendor/brick/math/src/BigDecimal.php +786 -0
- package/vendor/brick/math/src/BigInteger.php +1079 -0
- package/vendor/brick/math/src/BigNumber.php +512 -0
- package/vendor/brick/math/src/BigRational.php +445 -0
- package/vendor/brick/math/src/Exception/DivisionByZeroException.php +35 -0
- package/vendor/brick/math/src/Exception/IntegerOverflowException.php +23 -0
- package/vendor/brick/math/src/Exception/MathException.php +12 -0
- package/vendor/brick/math/src/Exception/NegativeNumberException.php +12 -0
- package/vendor/brick/math/src/Exception/NumberFormatException.php +33 -0
- package/vendor/brick/math/src/Exception/RoundingNecessaryException.php +19 -0
- package/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php +75 -0
- package/vendor/brick/math/src/Internal/Calculator/GmpCalculator.php +108 -0
- package/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php +581 -0
- package/vendor/brick/math/src/Internal/Calculator.php +676 -0
- package/vendor/brick/math/src/RoundingMode.php +107 -0
- package/vendor/brick/math/tests/AbstractTestCase.php +86 -0
- package/vendor/brick/math/tests/BigDecimalTest.php +2596 -0
- package/vendor/brick/math/tests/BigIntegerTest.php +3782 -0
- package/vendor/brick/math/tests/BigNumberTest.php +53 -0
- package/vendor/brick/math/tests/BigRationalTest.php +993 -0
- package/vendor/brick/math/tests/CalculatorDetectTest.php +25 -0
- package/vendor/brick/math/tests/Internal/Calculator/NativeCalculatorTest.php +87 -0
- package/vendor/composer/ClassLoader.php +579 -0
- package/vendor/composer/InstalledVersions.php +359 -0
- package/vendor/composer/LICENSE +21 -0
- package/vendor/composer/autoload_classmap.php +15 -0
- package/vendor/composer/autoload_files.php +13 -0
- package/vendor/composer/autoload_namespaces.php +9 -0
- package/vendor/composer/autoload_psr4.php +20 -0
- package/vendor/composer/autoload_real.php +50 -0
- package/vendor/composer/autoload_static.php +122 -0
- package/vendor/composer/installed.json +825 -0
- package/vendor/composer/installed.php +132 -0
- package/vendor/composer/platform_check.php +26 -0
- package/vendor/firebase/php-jwt/.gitattributes +9 -0
- package/vendor/firebase/php-jwt/.github/release-please.yml +3 -0
- package/vendor/firebase/php-jwt/.github/workflows/tests.yml +57 -0
- package/vendor/firebase/php-jwt/.php-cs-fixer.dist.php +24 -0
- package/vendor/firebase/php-jwt/CHANGELOG.md +170 -0
- package/vendor/firebase/php-jwt/LICENSE +30 -0
- package/vendor/firebase/php-jwt/README.md +424 -0
- package/vendor/firebase/php-jwt/composer.json +42 -0
- package/vendor/firebase/php-jwt/phpstan.neon.dist +5 -0
- package/vendor/firebase/php-jwt/phpunit.xml.dist +18 -0
- package/vendor/firebase/php-jwt/src/BeforeValidException.php +18 -0
- package/vendor/firebase/php-jwt/src/CachedKeySet.php +268 -0
- package/vendor/firebase/php-jwt/src/ExpiredException.php +18 -0
- package/vendor/firebase/php-jwt/src/JWK.php +349 -0
- package/vendor/firebase/php-jwt/src/JWT.php +669 -0
- package/vendor/firebase/php-jwt/src/JWTExceptionWithPayloadInterface.php +20 -0
- package/vendor/firebase/php-jwt/src/Key.php +64 -0
- package/vendor/firebase/php-jwt/src/SignatureInvalidException.php +7 -0
- package/vendor/firebase/php-jwt/tests/CachedKeySetTest.php +598 -0
- package/vendor/firebase/php-jwt/tests/JWKTest.php +172 -0
- package/vendor/firebase/php-jwt/tests/JWTTest.php +543 -0
- package/vendor/firebase/php-jwt/tests/data/ec-jwkset.json +40 -0
- package/vendor/firebase/php-jwt/tests/data/ecdsa-private.pem +18 -0
- package/vendor/firebase/php-jwt/tests/data/ecdsa-public.pem +9 -0
- package/vendor/firebase/php-jwt/tests/data/ecdsa256-private.pem +4 -0
- package/vendor/firebase/php-jwt/tests/data/ecdsa384-private.pem +6 -0
- package/vendor/firebase/php-jwt/tests/data/ecdsa384-public.pem +5 -0
- package/vendor/firebase/php-jwt/tests/data/ed25519-1.pub +1 -0
- package/vendor/firebase/php-jwt/tests/data/ed25519-1.sec +1 -0
- package/vendor/firebase/php-jwt/tests/data/ed25519-jwkset.json +11 -0
- package/vendor/firebase/php-jwt/tests/data/rsa-jwkset.json +18 -0
- package/vendor/firebase/php-jwt/tests/data/rsa-with-passphrase.pem +42 -0
- package/vendor/firebase/php-jwt/tests/data/rsa1-private.pem +27 -0
- package/vendor/firebase/php-jwt/tests/data/rsa1-public.pub +9 -0
- package/vendor/firebase/php-jwt/tests/data/rsa2-private.pem +27 -0
- package/vendor/firebase/php-jwt/tests/data/secp256k1-private.pem +5 -0
- package/vendor/firebase/php-jwt/tests/data/secp256k1-public.pem +4 -0
- package/vendor/graham-campbell/result-type/.gitattributes +9 -0
- package/vendor/graham-campbell/result-type/.github/CODE_OF_CONDUCT.md +132 -0
- package/vendor/graham-campbell/result-type/.github/CONTRIBUTING.md +31 -0
- package/vendor/graham-campbell/result-type/.github/FUNDING.yml +2 -0
- package/vendor/graham-campbell/result-type/.github/SECURITY.md +14 -0
- package/vendor/graham-campbell/result-type/.github/workflows/tests.yml +40 -0
- package/vendor/graham-campbell/result-type/CHANGELOG.md +43 -0
- package/vendor/graham-campbell/result-type/LICENSE +21 -0
- package/vendor/graham-campbell/result-type/README.md +42 -0
- package/vendor/graham-campbell/result-type/composer.json +33 -0
- package/vendor/graham-campbell/result-type/phpunit.xml.dist +13 -0
- package/vendor/graham-campbell/result-type/src/Error.php +121 -0
- package/vendor/graham-campbell/result-type/src/Result.php +69 -0
- package/vendor/graham-campbell/result-type/src/Success.php +120 -0
- package/vendor/graham-campbell/result-type/tests/ResultTest.php +95 -0
- package/vendor/hidehalo/nanoid-php/.editorconfig +15 -0
- package/vendor/hidehalo/nanoid-php/.gitattributes +8 -0
- package/vendor/hidehalo/nanoid-php/.github/workflows/php.yml +49 -0
- package/vendor/hidehalo/nanoid-php/.styleci.yml +1 -0
- package/vendor/hidehalo/nanoid-php/CHANGELOG.md +36 -0
- package/vendor/hidehalo/nanoid-php/CODE_OF_CONDUCT.md +74 -0
- package/vendor/hidehalo/nanoid-php/CONTRIBUTING.md +32 -0
- package/vendor/hidehalo/nanoid-php/ISSUE_TEMPLATE.md +27 -0
- package/vendor/hidehalo/nanoid-php/LICENSE.md +21 -0
- package/vendor/hidehalo/nanoid-php/PULL_REQUEST_TEMPLATE.md +43 -0
- package/vendor/hidehalo/nanoid-php/README.md +108 -0
- package/vendor/hidehalo/nanoid-php/benchmark/benchmark.php +24 -0
- package/vendor/hidehalo/nanoid-php/composer.json +62 -0
- package/vendor/hidehalo/nanoid-php/examples/basic_usage.php +24 -0
- package/vendor/hidehalo/nanoid-php/examples/custom_formated.php +29 -0
- package/vendor/hidehalo/nanoid-php/phpunit.xml +31 -0
- package/vendor/hidehalo/nanoid-php/src/Client.php +120 -0
- package/vendor/hidehalo/nanoid-php/src/Core.php +31 -0
- package/vendor/hidehalo/nanoid-php/src/CoreInterface.php +19 -0
- package/vendor/hidehalo/nanoid-php/src/Generator.php +13 -0
- package/vendor/hidehalo/nanoid-php/src/GeneratorInterface.php +13 -0
- package/vendor/hidehalo/nanoid-php/tests/ClientTest.php +76 -0
- package/vendor/hidehalo/nanoid-php/tests/CoreTest.php +37 -0
- package/vendor/hidehalo/nanoid-php/tests/GeneratorTest.php +34 -0
- package/vendor/hidehalo/nanoid-php/tests/Support/DummyGenerator.php +20 -0
- package/vendor/paragonie/random_compat/.gitattributes +14 -0
- package/vendor/paragonie/random_compat/.scrutinizer.yml +4 -0
- package/vendor/paragonie/random_compat/.travis.yml +59 -0
- package/vendor/paragonie/random_compat/CHANGELOG.md +3 -0
- package/vendor/paragonie/random_compat/LICENSE +22 -0
- package/vendor/paragonie/random_compat/RATIONALE.md +36 -0
- package/vendor/paragonie/random_compat/README.md +232 -0
- package/vendor/paragonie/random_compat/SECURITY.md +108 -0
- package/vendor/paragonie/random_compat/build-phar.sh +5 -0
- package/vendor/paragonie/random_compat/composer.json +34 -0
- package/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey +5 -0
- package/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc +11 -0
- package/vendor/paragonie/random_compat/lib/random.php +32 -0
- package/vendor/paragonie/random_compat/other/build_phar.php +57 -0
- package/vendor/paragonie/random_compat/other/ide_stubs/COM.php +20 -0
- package/vendor/paragonie/random_compat/other/ide_stubs/README.md +7 -0
- package/vendor/paragonie/random_compat/other/ide_stubs/com_exception.php +11 -0
- package/vendor/paragonie/random_compat/other/ide_stubs/libsodium.php +90 -0
- package/vendor/paragonie/random_compat/phpunit.sh +60 -0
- package/vendor/paragonie/random_compat/phpunit.xml.dist +31 -0
- package/vendor/paragonie/random_compat/psalm-autoload.php +9 -0
- package/vendor/paragonie/random_compat/psalm.xml +19 -0
- package/vendor/paragonie/random_compat/tests/full/DieHardTest.php +61 -0
- package/vendor/paragonie/random_compat/tests/full/StatTest.php +52 -0
- package/vendor/paragonie/random_compat/tests/specific/capicom.php +7 -0
- package/vendor/paragonie/random_compat/tests/specific/dev_urandom.php +7 -0
- package/vendor/paragonie/random_compat/tests/specific/libsodium.php +7 -0
- package/vendor/paragonie/random_compat/tests/specific/libsodium_legacy.php +7 -0
- package/vendor/paragonie/random_compat/tests/specific/mcrypt.php +7 -0
- package/vendor/paragonie/random_compat/tests/unit/RandomBytesTest.php +80 -0
- package/vendor/paragonie/random_compat/tests/unit/RandomIntTest.php +63 -0
- package/vendor/paragonie/random_compat/tests/unit/UtilityTest.php +95 -0
- package/vendor/paragonie/random_compat/tests/unit_with_basedir/RandomBytesTest.php +100 -0
- package/vendor/paragonie/random_compat/tests/unit_with_basedir/RandomIntTest.php +82 -0
- package/vendor/paragonie/random_compat/tests/unit_with_basedir/UtilityTest.php +95 -0
- package/vendor/phpoption/phpoption/.gitattributes +14 -0
- package/vendor/phpoption/phpoption/.github/CODE_OF_CONDUCT.md +132 -0
- package/vendor/phpoption/phpoption/.github/CONTRIBUTING.md +30 -0
- package/vendor/phpoption/phpoption/.github/FUNDING.yml +2 -0
- package/vendor/phpoption/phpoption/.github/SECURITY.md +14 -0
- package/vendor/phpoption/phpoption/.github/workflows/static.yml +74 -0
- package/vendor/phpoption/phpoption/.github/workflows/tests.yml +40 -0
- package/vendor/phpoption/phpoption/LICENSE +201 -0
- package/vendor/phpoption/phpoption/Makefile +26 -0
- package/vendor/phpoption/phpoption/README.md +194 -0
- package/vendor/phpoption/phpoption/composer.json +52 -0
- package/vendor/phpoption/phpoption/phpstan-baseline.neon +32 -0
- package/vendor/phpoption/phpoption/phpstan.neon.dist +8 -0
- package/vendor/phpoption/phpoption/phpunit.xml.dist +13 -0
- package/vendor/phpoption/phpoption/psalm.xml +12 -0
- package/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php +175 -0
- package/vendor/phpoption/phpoption/src/PhpOption/None.php +136 -0
- package/vendor/phpoption/phpoption/src/PhpOption/Option.php +434 -0
- package/vendor/phpoption/phpoption/src/PhpOption/Some.php +169 -0
- package/vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php +77 -0
- package/vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php +200 -0
- package/vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php +153 -0
- package/vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php +160 -0
- package/vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php +194 -0
- package/vendor/phpoption/phpoption/tests/bootstrap.php +8 -0
- package/vendor/phpoption/phpoption/vendor-bin/phpstan/composer.json +8 -0
- package/vendor/phpoption/phpoption/vendor-bin/psalm/composer.json +8 -0
- package/vendor/ramsey/uuid/.editorconfig +16 -0
- package/vendor/ramsey/uuid/.gitattributes +26 -0
- package/vendor/ramsey/uuid/.github/CODEOWNERS +1 -0
- package/vendor/ramsey/uuid/.github/FUNDING.yml +2 -0
- package/vendor/ramsey/uuid/.github/ISSUE_TEMPLATE/Bug_Report.md +35 -0
- package/vendor/ramsey/uuid/.github/ISSUE_TEMPLATE/Feature_Request.md +31 -0
- package/vendor/ramsey/uuid/.github/ISSUE_TEMPLATE/Question.md +19 -0
- package/vendor/ramsey/uuid/.github/ISSUE_TEMPLATE/config.yml +1 -0
- package/vendor/ramsey/uuid/.github/dependabot.yml +15 -0
- package/vendor/ramsey/uuid/.github/pull_request_template.md +27 -0
- package/vendor/ramsey/uuid/.github/workflows/continuous-integration.yml +181 -0
- package/vendor/ramsey/uuid/.github/workflows/merge-dependabot-upgrades.yml +24 -0
- package/vendor/ramsey/uuid/.readthedocs.yml +11 -0
- package/vendor/ramsey/uuid/CHANGELOG.md +1511 -0
- package/vendor/ramsey/uuid/CODE_OF_CONDUCT.md +73 -0
- package/vendor/ramsey/uuid/CONTRIBUTING.md +171 -0
- package/vendor/ramsey/uuid/LICENSE +19 -0
- package/vendor/ramsey/uuid/README.md +83 -0
- package/vendor/ramsey/uuid/SECURITY.md +170 -0
- package/vendor/ramsey/uuid/build/.gitignore +6 -0
- package/vendor/ramsey/uuid/build/cache/.gitkeep +0 -0
- package/vendor/ramsey/uuid/build/logs/.gitkeep +0 -0
- package/vendor/ramsey/uuid/captainhook.json +105 -0
- package/vendor/ramsey/uuid/codecov.yml +29 -0
- package/vendor/ramsey/uuid/composer.json +106 -0
- package/vendor/ramsey/uuid/composer.lock +7208 -0
- package/vendor/ramsey/uuid/docs/Makefile +20 -0
- package/vendor/ramsey/uuid/docs/README.md +36 -0
- package/vendor/ramsey/uuid/docs/_static/.gitkeep +0 -0
- package/vendor/ramsey/uuid/docs/conf.py +103 -0
- package/vendor/ramsey/uuid/docs/copyright.rst +18 -0
- package/vendor/ramsey/uuid/docs/customize/calculators.rst +75 -0
- package/vendor/ramsey/uuid/docs/customize/factory.rst +93 -0
- package/vendor/ramsey/uuid/docs/customize/ordered-time-codec.rst +86 -0
- package/vendor/ramsey/uuid/docs/customize/timestamp-first-comb-codec.rst +72 -0
- package/vendor/ramsey/uuid/docs/customize/validators.rst +39 -0
- package/vendor/ramsey/uuid/docs/customize.rst +56 -0
- package/vendor/ramsey/uuid/docs/database.rst +260 -0
- package/vendor/ramsey/uuid/docs/faq.rst +132 -0
- package/vendor/ramsey/uuid/docs/index.rst +51 -0
- package/vendor/ramsey/uuid/docs/introduction.rst +31 -0
- package/vendor/ramsey/uuid/docs/nonstandard/guid.rst +152 -0
- package/vendor/ramsey/uuid/docs/nonstandard/other.rst +49 -0
- package/vendor/ramsey/uuid/docs/nonstandard/version6.rst +17 -0
- package/vendor/ramsey/uuid/docs/nonstandard.rst +40 -0
- package/vendor/ramsey/uuid/docs/quickstart.rst +112 -0
- package/vendor/ramsey/uuid/docs/reference/calculators.rst +168 -0
- package/vendor/ramsey/uuid/docs/reference/exceptions.rst +92 -0
- package/vendor/ramsey/uuid/docs/reference/fields-fieldsinterface.rst +16 -0
- package/vendor/ramsey/uuid/docs/reference/guid-fields.rst +13 -0
- package/vendor/ramsey/uuid/docs/reference/guid-guid.rst +20 -0
- package/vendor/ramsey/uuid/docs/reference/helper.rst +62 -0
- package/vendor/ramsey/uuid/docs/reference/name-based-namespaces.rst +31 -0
- package/vendor/ramsey/uuid/docs/reference/nonstandard-fields.rst +13 -0
- package/vendor/ramsey/uuid/docs/reference/nonstandard-uuid.rst +20 -0
- package/vendor/ramsey/uuid/docs/reference/nonstandard-uuidv6.rst +34 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-fieldsinterface.rst +78 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidinterface.rst +20 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidv1.rst +21 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidv2.rst +47 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidv3.rst +13 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidv4.rst +13 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidv5.rst +13 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidv6.rst +31 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidv7.rst +20 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidv8.rst +13 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-version.rst +87 -0
- package/vendor/ramsey/uuid/docs/reference/timebaseduuidinterface.rst +16 -0
- package/vendor/ramsey/uuid/docs/reference/types.rst +79 -0
- package/vendor/ramsey/uuid/docs/reference/uuid.rst +161 -0
- package/vendor/ramsey/uuid/docs/reference/uuidfactoryinterface.rst +102 -0
- package/vendor/ramsey/uuid/docs/reference/uuidinterface.rst +60 -0
- package/vendor/ramsey/uuid/docs/reference/validators.rst +34 -0
- package/vendor/ramsey/uuid/docs/reference/variant.rst +32 -0
- package/vendor/ramsey/uuid/docs/reference.rst +37 -0
- package/vendor/ramsey/uuid/docs/requirements.txt +3 -0
- package/vendor/ramsey/uuid/docs/rfc4122/version1.rst +192 -0
- package/vendor/ramsey/uuid/docs/rfc4122/version2.rst +273 -0
- package/vendor/ramsey/uuid/docs/rfc4122/version3.rst +68 -0
- package/vendor/ramsey/uuid/docs/rfc4122/version4.rst +39 -0
- package/vendor/ramsey/uuid/docs/rfc4122/version5.rst +108 -0
- package/vendor/ramsey/uuid/docs/rfc4122/version6.rst +213 -0
- package/vendor/ramsey/uuid/docs/rfc4122/version7.rst +173 -0
- package/vendor/ramsey/uuid/docs/rfc4122/version8.rst +51 -0
- package/vendor/ramsey/uuid/docs/rfc4122.rst +67 -0
- package/vendor/ramsey/uuid/docs/testing.rst +199 -0
- package/vendor/ramsey/uuid/docs/tidelift.rst +74 -0
- package/vendor/ramsey/uuid/docs/upgrading/2-to-3.rst +31 -0
- package/vendor/ramsey/uuid/docs/upgrading/3-to-4.rst +512 -0
- package/vendor/ramsey/uuid/docs/upgrading.rst +11 -0
- package/vendor/ramsey/uuid/phpbench.json +10 -0
- package/vendor/ramsey/uuid/phpcs.xml.dist +476 -0
- package/vendor/ramsey/uuid/phpstan-tests.neon +32 -0
- package/vendor/ramsey/uuid/phpstan.neon.dist +25 -0
- package/vendor/ramsey/uuid/phpunit.xml.dist +26 -0
- package/vendor/ramsey/uuid/psalm-baseline.xml +133 -0
- package/vendor/ramsey/uuid/psalm.xml +25 -0
- package/vendor/ramsey/uuid/resources/vagrant/README.md +10 -0
- package/vendor/ramsey/uuid/resources/vagrant/freebsd/README.md +15 -0
- package/vendor/ramsey/uuid/resources/vagrant/freebsd/Vagrantfile +35 -0
- package/vendor/ramsey/uuid/resources/vagrant/linux/README.md +15 -0
- package/vendor/ramsey/uuid/resources/vagrant/linux/Vagrantfile +27 -0
- package/vendor/ramsey/uuid/resources/vagrant/windows/README.md +16 -0
- package/vendor/ramsey/uuid/resources/vagrant/windows/Vagrantfile +22 -0
- package/vendor/ramsey/uuid/src/BinaryUtils.php +106 -0
- package/vendor/ramsey/uuid/src/Builder/FallbackBuilder.php +68 -0
- package/vendor/ramsey/uuid/src/Builder/UuidBuilderInterface.php +39 -0
- package/vendor/ramsey/uuid/src/Codec/CodecInterface.php +67 -0
- package/vendor/ramsey/uuid/src/Codec/GuidStringCodec.php +82 -0
- package/vendor/ramsey/uuid/src/Codec/OrderedTimeCodec.php +114 -0
- package/vendor/ramsey/uuid/src/Codec/StringCodec.php +128 -0
- package/vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php +105 -0
- package/vendor/ramsey/uuid/src/Codec/TimestampLastCombCodec.php +51 -0
- package/vendor/ramsey/uuid/src/Converter/Number/GenericNumberConverter.php +48 -0
- package/vendor/ramsey/uuid/src/Converter/NumberConverterInterface.php +53 -0
- package/vendor/ramsey/uuid/src/Converter/Time/GenericTimeConverter.php +118 -0
- package/vendor/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php +163 -0
- package/vendor/ramsey/uuid/src/Converter/Time/UnixTimeConverter.php +90 -0
- package/vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php +58 -0
- package/vendor/ramsey/uuid/src/Exception/BuilderNotFoundException.php +24 -0
- package/vendor/ramsey/uuid/src/Exception/DateTimeException.php +24 -0
- package/vendor/ramsey/uuid/src/Exception/DceSecurityException.php +25 -0
- package/vendor/ramsey/uuid/src/Exception/InvalidArgumentException.php +24 -0
- package/vendor/ramsey/uuid/src/Exception/InvalidBytesException.php +24 -0
- package/vendor/ramsey/uuid/src/Exception/InvalidUuidStringException.php +25 -0
- package/vendor/ramsey/uuid/src/Exception/NameException.php +25 -0
- package/vendor/ramsey/uuid/src/Exception/NodeException.php +24 -0
- package/vendor/ramsey/uuid/src/Exception/RandomSourceException.php +27 -0
- package/vendor/ramsey/uuid/src/Exception/TimeSourceException.php +24 -0
- package/vendor/ramsey/uuid/src/Exception/UnableToBuildUuidException.php +24 -0
- package/vendor/ramsey/uuid/src/Exception/UnsupportedOperationException.php +24 -0
- package/vendor/ramsey/uuid/src/Exception/UuidExceptionInterface.php +21 -0
- package/vendor/ramsey/uuid/src/FeatureSet.php +395 -0
- package/vendor/ramsey/uuid/src/Fields/FieldsInterface.php +42 -0
- package/vendor/ramsey/uuid/src/Fields/SerializableFieldsTrait.php +70 -0
- package/vendor/ramsey/uuid/src/Generator/CombGenerator.php +124 -0
- package/vendor/ramsey/uuid/src/Generator/DceSecurityGenerator.php +139 -0
- package/vendor/ramsey/uuid/src/Generator/DceSecurityGeneratorInterface.php +53 -0
- package/vendor/ramsey/uuid/src/Generator/DefaultNameGenerator.php +51 -0
- package/vendor/ramsey/uuid/src/Generator/DefaultTimeGenerator.php +131 -0
- package/vendor/ramsey/uuid/src/Generator/NameGeneratorFactory.php +30 -0
- package/vendor/ramsey/uuid/src/Generator/NameGeneratorInterface.php +38 -0
- package/vendor/ramsey/uuid/src/Generator/PeclUuidNameGenerator.php +52 -0
- package/vendor/ramsey/uuid/src/Generator/PeclUuidRandomGenerator.php +37 -0
- package/vendor/ramsey/uuid/src/Generator/PeclUuidTimeGenerator.php +39 -0
- package/vendor/ramsey/uuid/src/Generator/RandomBytesGenerator.php +45 -0
- package/vendor/ramsey/uuid/src/Generator/RandomGeneratorFactory.php +30 -0
- package/vendor/ramsey/uuid/src/Generator/RandomGeneratorInterface.php +31 -0
- package/vendor/ramsey/uuid/src/Generator/TimeGeneratorFactory.php +45 -0
- package/vendor/ramsey/uuid/src/Generator/TimeGeneratorInterface.php +38 -0
- package/vendor/ramsey/uuid/src/Generator/UnixTimeGenerator.php +170 -0
- package/vendor/ramsey/uuid/src/Guid/Fields.php +208 -0
- package/vendor/ramsey/uuid/src/Guid/Guid.php +61 -0
- package/vendor/ramsey/uuid/src/Guid/GuidBuilder.php +79 -0
- package/vendor/ramsey/uuid/src/Lazy/LazyUuidFromString.php +226 -0
- package/vendor/ramsey/uuid/src/Math/BrickMathCalculator.php +145 -0
- package/vendor/ramsey/uuid/src/Math/CalculatorInterface.php +106 -0
- package/vendor/ramsey/uuid/src/Math/RoundingMode.php +146 -0
- package/vendor/ramsey/uuid/src/Nonstandard/Fields.php +154 -0
- package/vendor/ramsey/uuid/src/Nonstandard/Uuid.php +37 -0
- package/vendor/ramsey/uuid/src/Nonstandard/UuidBuilder.php +78 -0
- package/vendor/ramsey/uuid/src/Nonstandard/UuidV6.php +113 -0
- package/vendor/ramsey/uuid/src/Provider/Dce/SystemDceSecurityProvider.php +236 -0
- package/vendor/ramsey/uuid/src/Provider/DceSecurityProviderInterface.php +41 -0
- package/vendor/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php +54 -0
- package/vendor/ramsey/uuid/src/Provider/Node/RandomNodeProvider.php +69 -0
- package/vendor/ramsey/uuid/src/Provider/Node/StaticNodeProvider.php +74 -0
- package/vendor/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php +190 -0
- package/vendor/ramsey/uuid/src/Provider/NodeProviderInterface.php +30 -0
- package/vendor/ramsey/uuid/src/Provider/Time/FixedTimeProvider.php +57 -0
- package/vendor/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php +33 -0
- package/vendor/ramsey/uuid/src/Provider/TimeProviderInterface.php +28 -0
- package/vendor/ramsey/uuid/src/Rfc4122/Fields.php +214 -0
- package/vendor/ramsey/uuid/src/Rfc4122/FieldsInterface.php +129 -0
- package/vendor/ramsey/uuid/src/Rfc4122/MaxTrait.php +41 -0
- package/vendor/ramsey/uuid/src/Rfc4122/MaxUuid.php +27 -0
- package/vendor/ramsey/uuid/src/Rfc4122/NilTrait.php +41 -0
- package/vendor/ramsey/uuid/src/Rfc4122/NilUuid.php +27 -0
- package/vendor/ramsey/uuid/src/Rfc4122/TimeTrait.php +55 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidBuilder.php +116 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidInterface.php +30 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidV1.php +61 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidV2.php +119 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidV3.php +58 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidV4.php +58 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidV5.php +58 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidV6.php +30 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidV7.php +63 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidV8.php +65 -0
- package/vendor/ramsey/uuid/src/Rfc4122/Validator.php +45 -0
- package/vendor/ramsey/uuid/src/Rfc4122/VariantTrait.php +87 -0
- package/vendor/ramsey/uuid/src/Rfc4122/Version.php +139 -0
- package/vendor/ramsey/uuid/src/Rfc4122/VersionTrait.php +57 -0
- package/vendor/ramsey/uuid/src/TimeBasedUuidFactoryInterface.php +48 -0
- package/vendor/ramsey/uuid/src/TimeBasedUuidInterface.php +30 -0
- package/vendor/ramsey/uuid/src/Type/Decimal.php +135 -0
- package/vendor/ramsey/uuid/src/Type/Hexadecimal.php +109 -0
- package/vendor/ramsey/uuid/src/Type/Integer.php +145 -0
- package/vendor/ramsey/uuid/src/Type/NumberInterface.php +28 -0
- package/vendor/ramsey/uuid/src/Type/Time.php +108 -0
- package/vendor/ramsey/uuid/src/Type/TypeInterface.php +45 -0
- package/vendor/ramsey/uuid/src/Uuid.php +645 -0
- package/vendor/ramsey/uuid/src/UuidFactory.php +503 -0
- package/vendor/ramsey/uuid/src/UuidFactoryInterface.php +184 -0
- package/vendor/ramsey/uuid/src/UuidInterface.php +114 -0
- package/vendor/ramsey/uuid/src/Validator/GenericValidator.php +45 -0
- package/vendor/ramsey/uuid/src/Validator/ValidatorInterface.php +39 -0
- package/vendor/ramsey/uuid/src/Variant.php +60 -0
- package/vendor/ramsey/uuid/src/functions.php +160 -0
- package/vendor/ramsey/uuid/tests/BinaryUtilsTest.php +381 -0
- package/vendor/ramsey/uuid/tests/Builder/FallbackBuilderTest.php +198 -0
- package/vendor/ramsey/uuid/tests/Codec/GuidStringCodecTest.php +118 -0
- package/vendor/ramsey/uuid/tests/Codec/OrderedTimeCodecTest.php +258 -0
- package/vendor/ramsey/uuid/tests/Codec/StringCodecTest.php +149 -0
- package/vendor/ramsey/uuid/tests/Converter/Number/GenericNumberConverterTest.php +28 -0
- package/vendor/ramsey/uuid/tests/Converter/Time/GenericTimeConverterTest.php +147 -0
- package/vendor/ramsey/uuid/tests/Converter/Time/PhpTimeConverterTest.php +199 -0
- package/vendor/ramsey/uuid/tests/Converter/Time/UnixTimeConverterTest.php +202 -0
- package/vendor/ramsey/uuid/tests/Encoder/TimestampFirstCombCodecTest.php +105 -0
- package/vendor/ramsey/uuid/tests/Encoder/TimestampLastCombCodecTest.php +106 -0
- package/vendor/ramsey/uuid/tests/ExpectedBehaviorTest.php +573 -0
- package/vendor/ramsey/uuid/tests/FeatureSetTest.php +88 -0
- package/vendor/ramsey/uuid/tests/FunctionsTest.php +151 -0
- package/vendor/ramsey/uuid/tests/Generator/CombGeneratorTest.php +134 -0
- package/vendor/ramsey/uuid/tests/Generator/DceSecurityGeneratorTest.php +282 -0
- package/vendor/ramsey/uuid/tests/Generator/DefaultNameGeneratorTest.php +83 -0
- package/vendor/ramsey/uuid/tests/Generator/DefaultTimeGeneratorTest.php +202 -0
- package/vendor/ramsey/uuid/tests/Generator/NameGeneratorFactoryTest.php +19 -0
- package/vendor/ramsey/uuid/tests/Generator/PeclUuidNameGeneratorTest.php +107 -0
- package/vendor/ramsey/uuid/tests/Generator/PeclUuidRandomGeneratorTest.php +30 -0
- package/vendor/ramsey/uuid/tests/Generator/PeclUuidTimeGeneratorTest.php +30 -0
- package/vendor/ramsey/uuid/tests/Generator/RandomBytesGeneratorTest.php +70 -0
- package/vendor/ramsey/uuid/tests/Generator/RandomGeneratorFactoryTest.php +19 -0
- package/vendor/ramsey/uuid/tests/Generator/TimeGeneratorFactoryTest.php +33 -0
- package/vendor/ramsey/uuid/tests/Generator/UnixTimeGeneratorTest.php +204 -0
- package/vendor/ramsey/uuid/tests/Guid/FieldsTest.php +235 -0
- package/vendor/ramsey/uuid/tests/Guid/GuidBuilderTest.php +33 -0
- package/vendor/ramsey/uuid/tests/Math/BrickMathCalculatorTest.php +116 -0
- package/vendor/ramsey/uuid/tests/Nonstandard/FieldsTest.php +84 -0
- package/vendor/ramsey/uuid/tests/Nonstandard/UuidBuilderTest.php +33 -0
- package/vendor/ramsey/uuid/tests/Nonstandard/UuidV6Test.php +192 -0
- package/vendor/ramsey/uuid/tests/Provider/Dce/SystemDceSecurityProviderTest.php +505 -0
- package/vendor/ramsey/uuid/tests/Provider/Node/FallbackNodeProviderTest.php +87 -0
- package/vendor/ramsey/uuid/tests/Provider/Node/RandomNodeProviderTest.php +124 -0
- package/vendor/ramsey/uuid/tests/Provider/Node/StaticNodeProviderTest.php +58 -0
- package/vendor/ramsey/uuid/tests/Provider/Node/SystemNodeProviderTest.php +950 -0
- package/vendor/ramsey/uuid/tests/Provider/Time/FixedTimeProviderTest.php +41 -0
- package/vendor/ramsey/uuid/tests/Provider/Time/SystemTimeProviderTest.php +20 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/FieldsTest.php +260 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidBuilderTest.php +145 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidV1Test.php +123 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidV2Test.php +214 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidV3Test.php +56 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidV4Test.php +56 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidV5Test.php +56 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidV6Test.php +221 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidV7Test.php +131 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidV8Test.php +56 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/ValidatorTest.php +122 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/VariantTraitTest.php +109 -0
- package/vendor/ramsey/uuid/tests/TestCase.php +29 -0
- package/vendor/ramsey/uuid/tests/Type/DecimalTest.php +305 -0
- package/vendor/ramsey/uuid/tests/Type/HexadecimalTest.php +112 -0
- package/vendor/ramsey/uuid/tests/Type/IntegerTest.php +235 -0
- package/vendor/ramsey/uuid/tests/Type/TimeTest.php +120 -0
- package/vendor/ramsey/uuid/tests/UuidFactoryTest.php +233 -0
- package/vendor/ramsey/uuid/tests/UuidTest.php +1910 -0
- package/vendor/ramsey/uuid/tests/Validator/GenericValidatorTest.php +98 -0
- package/vendor/ramsey/uuid/tests/benchmark/GuidConversionBench.php +43 -0
- package/vendor/ramsey/uuid/tests/benchmark/NonLazyUuidConversionBench.php +39 -0
- package/vendor/ramsey/uuid/tests/benchmark/UuidFieldExtractionBench.php +86 -0
- package/vendor/ramsey/uuid/tests/benchmark/UuidGenerationBench.php +113 -0
- package/vendor/ramsey/uuid/tests/benchmark/UuidSerializationBench.php +206 -0
- package/vendor/ramsey/uuid/tests/benchmark/UuidStringConversionBench.php +257 -0
- package/vendor/ramsey/uuid/tests/bootstrap.php +12 -0
- package/vendor/ramsey/uuid/tests/static-analysis/UuidIsImmutable.php +96 -0
- package/vendor/ramsey/uuid/tests/static-analysis/UuidIsNeverEmpty.php +36 -0
- package/vendor/ramsey/uuid/tests/static-analysis/ValidUuidIsNonEmpty.php +44 -0
- package/vendor/ramsey/uuid/tests/static-analysis/stubs.php +33 -0
- package/vendor/symfony/polyfill-ctype/Ctype.php +232 -0
- package/vendor/symfony/polyfill-ctype/LICENSE +19 -0
- package/vendor/symfony/polyfill-ctype/README.md +12 -0
- package/vendor/symfony/polyfill-ctype/bootstrap.php +50 -0
- package/vendor/symfony/polyfill-ctype/bootstrap80.php +46 -0
- package/vendor/symfony/polyfill-ctype/composer.json +41 -0
- package/vendor/symfony/polyfill-mbstring/LICENSE +19 -0
- package/vendor/symfony/polyfill-mbstring/Mbstring.php +947 -0
- package/vendor/symfony/polyfill-mbstring/README.md +13 -0
- package/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +119 -0
- package/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1397 -0
- package/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +5 -0
- package/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +1489 -0
- package/vendor/symfony/polyfill-mbstring/bootstrap.php +151 -0
- package/vendor/symfony/polyfill-mbstring/bootstrap80.php +147 -0
- package/vendor/symfony/polyfill-mbstring/composer.json +41 -0
- package/vendor/symfony/polyfill-php80/LICENSE +19 -0
- package/vendor/symfony/polyfill-php80/Php80.php +115 -0
- package/vendor/symfony/polyfill-php80/PhpToken.php +103 -0
- package/vendor/symfony/polyfill-php80/README.md +25 -0
- package/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +31 -0
- package/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php +16 -0
- package/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +20 -0
- package/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +16 -0
- package/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +16 -0
- package/vendor/symfony/polyfill-php80/bootstrap.php +42 -0
- package/vendor/symfony/polyfill-php80/composer.json +40 -0
- package/vendor/vlucas/phpdotenv/.editorconfig +15 -0
- package/vendor/vlucas/phpdotenv/.gitattributes +17 -0
- package/vendor/vlucas/phpdotenv/.github/CODE_OF_CONDUCT.md +132 -0
- package/vendor/vlucas/phpdotenv/.github/CONTRIBUTING.md +30 -0
- package/vendor/vlucas/phpdotenv/.github/FUNDING.yml +2 -0
- package/vendor/vlucas/phpdotenv/.github/SECURITY.md +14 -0
- package/vendor/vlucas/phpdotenv/.github/workflows/static.yml +74 -0
- package/vendor/vlucas/phpdotenv/.github/workflows/tests.yml +70 -0
- package/vendor/vlucas/phpdotenv/LICENSE +30 -0
- package/vendor/vlucas/phpdotenv/Makefile +26 -0
- package/vendor/vlucas/phpdotenv/README.md +363 -0
- package/vendor/vlucas/phpdotenv/UPGRADING.md +196 -0
- package/vendor/vlucas/phpdotenv/composer.json +60 -0
- package/vendor/vlucas/phpdotenv/phpstan-baseline.neon +21 -0
- package/vendor/vlucas/phpdotenv/phpstan.neon.dist +7 -0
- package/vendor/vlucas/phpdotenv/phpunit.xml.dist +13 -0
- package/vendor/vlucas/phpdotenv/psalm-baseline.xml +28 -0
- package/vendor/vlucas/phpdotenv/psalm.xml +13 -0
- package/vendor/vlucas/phpdotenv/src/Dotenv.php +267 -0
- package/vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php +12 -0
- package/vendor/vlucas/phpdotenv/src/Exception/InvalidEncodingException.php +12 -0
- package/vendor/vlucas/phpdotenv/src/Exception/InvalidFileException.php +12 -0
- package/vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php +12 -0
- package/vendor/vlucas/phpdotenv/src/Exception/ValidationException.php +12 -0
- package/vendor/vlucas/phpdotenv/src/Loader/Loader.php +47 -0
- package/vendor/vlucas/phpdotenv/src/Loader/LoaderInterface.php +20 -0
- package/vendor/vlucas/phpdotenv/src/Loader/Resolver.php +65 -0
- package/vendor/vlucas/phpdotenv/src/Parser/Entry.php +59 -0
- package/vendor/vlucas/phpdotenv/src/Parser/EntryParser.php +300 -0
- package/vendor/vlucas/phpdotenv/src/Parser/Lexer.php +58 -0
- package/vendor/vlucas/phpdotenv/src/Parser/Lines.php +127 -0
- package/vendor/vlucas/phpdotenv/src/Parser/Parser.php +53 -0
- package/vendor/vlucas/phpdotenv/src/Parser/ParserInterface.php +19 -0
- package/vendor/vlucas/phpdotenv/src/Parser/Value.php +88 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/AdapterInterface.php +15 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php +89 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php +80 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php +89 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/GuardedWriter.php +85 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/ImmutableWriter.php +110 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiReader.php +48 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiWriter.php +64 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php +91 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php +17 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReplacingWriter.php +104 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php +89 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php +27 -0
- package/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php +107 -0
- package/vendor/vlucas/phpdotenv/src/Repository/RepositoryBuilder.php +272 -0
- package/vendor/vlucas/phpdotenv/src/Repository/RepositoryInterface.php +51 -0
- package/vendor/vlucas/phpdotenv/src/Store/File/Paths.php +44 -0
- package/vendor/vlucas/phpdotenv/src/Store/File/Reader.php +81 -0
- package/vendor/vlucas/phpdotenv/src/Store/FileStore.php +72 -0
- package/vendor/vlucas/phpdotenv/src/Store/StoreBuilder.php +141 -0
- package/vendor/vlucas/phpdotenv/src/Store/StoreInterface.php +17 -0
- package/vendor/vlucas/phpdotenv/src/Store/StringStore.php +37 -0
- package/vendor/vlucas/phpdotenv/src/Util/Regex.php +112 -0
- package/vendor/vlucas/phpdotenv/src/Util/Str.php +98 -0
- package/vendor/vlucas/phpdotenv/src/Validator.php +209 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/DotenvTest.php +387 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Loader/LoaderTest.php +86 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/EntryParserTest.php +234 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LexerTest.php +40 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LinesTest.php +53 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/ParserTest.php +98 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ArrayAdapterTest.php +57 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/EnvConstAdapterTest.php +75 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/PutenvAdapterTest.php +52 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ServerConstAdapterTest.php +75 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/RepositoryTest.php +305 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Store/StoreTest.php +141 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/ValidatorTest.php +479 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/.env +5 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/assertions.env +18 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/booleans.env +33 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/commented.env +15 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/empty.env +1 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/example.env +1 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/exported.env +7 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/immutable.env +1 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/integers.env +17 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/large.env +2 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/multibyte.env +3 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/multiline.env +14 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/multiple.env +4 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/mutable.env +1 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/nested.env +15 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/quoted.env +11 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/specialchars.env +8 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/unicodevarnames.env +2 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/utf8-with-bom-encoding.env +3 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/windows.env +1 -0
- package/vendor/vlucas/phpdotenv/vendor-bin/phpstan/composer.json +16 -0
- package/vendor/vlucas/phpdotenv/vendor-bin/psalm/composer.json +9 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This file is part of the ramsey/uuid library
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*
|
|
9
|
+
* @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
|
|
10
|
+
* @license http://opensource.org/licenses/MIT MIT
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
declare(strict_types=1);
|
|
14
|
+
|
|
15
|
+
namespace Ramsey\Uuid\Codec;
|
|
16
|
+
|
|
17
|
+
use Ramsey\Uuid\Exception\InvalidArgumentException;
|
|
18
|
+
use Ramsey\Uuid\Exception\UnsupportedOperationException;
|
|
19
|
+
use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface;
|
|
20
|
+
use Ramsey\Uuid\Rfc4122\Version;
|
|
21
|
+
use Ramsey\Uuid\UuidInterface;
|
|
22
|
+
|
|
23
|
+
use function strlen;
|
|
24
|
+
use function substr;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* OrderedTimeCodec encodes and decodes a UUID, optimizing the byte order for
|
|
28
|
+
* more efficient storage
|
|
29
|
+
*
|
|
30
|
+
* For binary representations of version 1 UUID, this codec may be used to
|
|
31
|
+
* reorganize the time fields, making the UUID closer to sequential when storing
|
|
32
|
+
* the bytes. According to Percona, this optimization can improve database
|
|
33
|
+
* INSERTs and SELECTs using the UUID column as a key.
|
|
34
|
+
*
|
|
35
|
+
* The string representation of the UUID will remain unchanged. Only the binary
|
|
36
|
+
* representation is reordered.
|
|
37
|
+
*
|
|
38
|
+
* **PLEASE NOTE:** Binary representations of UUIDs encoded with this codec must
|
|
39
|
+
* be decoded with this codec. Decoding using another codec can result in
|
|
40
|
+
* malformed UUIDs.
|
|
41
|
+
*
|
|
42
|
+
* @link https://www.percona.com/blog/2014/12/19/store-uuid-optimized-way/ Storing UUID Values in MySQL
|
|
43
|
+
*
|
|
44
|
+
* @psalm-immutable
|
|
45
|
+
*/
|
|
46
|
+
class OrderedTimeCodec extends StringCodec
|
|
47
|
+
{
|
|
48
|
+
/**
|
|
49
|
+
* Returns a binary string representation of a UUID, with the timestamp
|
|
50
|
+
* fields rearranged for optimized storage
|
|
51
|
+
*
|
|
52
|
+
* @inheritDoc
|
|
53
|
+
*/
|
|
54
|
+
public function encodeBinary(UuidInterface $uuid): string
|
|
55
|
+
{
|
|
56
|
+
if (
|
|
57
|
+
!($uuid->getFields() instanceof Rfc4122FieldsInterface)
|
|
58
|
+
|| $uuid->getFields()->getVersion() !== Version::Time
|
|
59
|
+
) {
|
|
60
|
+
throw new InvalidArgumentException(
|
|
61
|
+
'Expected RFC 4122 version 1 (time-based) UUID'
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
$bytes = $uuid->getFields()->getBytes();
|
|
66
|
+
|
|
67
|
+
return $bytes[6] . $bytes[7]
|
|
68
|
+
. $bytes[4] . $bytes[5]
|
|
69
|
+
. $bytes[0] . $bytes[1] . $bytes[2] . $bytes[3]
|
|
70
|
+
. substr($bytes, 8);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Returns a UuidInterface derived from an ordered-time binary string
|
|
75
|
+
* representation
|
|
76
|
+
*
|
|
77
|
+
* @throws InvalidArgumentException if $bytes is an invalid length
|
|
78
|
+
*
|
|
79
|
+
* @inheritDoc
|
|
80
|
+
*/
|
|
81
|
+
public function decodeBytes(string $bytes): UuidInterface
|
|
82
|
+
{
|
|
83
|
+
if (strlen($bytes) !== 16) {
|
|
84
|
+
throw new InvalidArgumentException(
|
|
85
|
+
'$bytes string should contain 16 characters.'
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Rearrange the bytes to their original order.
|
|
91
|
+
*
|
|
92
|
+
* @psalm-suppress UnnecessaryVarAnnotation
|
|
93
|
+
* @phpstan-var non-empty-string $rearrangedBytes
|
|
94
|
+
*/
|
|
95
|
+
$rearrangedBytes = $bytes[4] . $bytes[5] . $bytes[6] . $bytes[7]
|
|
96
|
+
. $bytes[2] . $bytes[3]
|
|
97
|
+
. $bytes[0] . $bytes[1]
|
|
98
|
+
. substr($bytes, 8);
|
|
99
|
+
|
|
100
|
+
$uuid = parent::decodeBytes($rearrangedBytes);
|
|
101
|
+
|
|
102
|
+
if (
|
|
103
|
+
!($uuid->getFields() instanceof Rfc4122FieldsInterface)
|
|
104
|
+
|| $uuid->getFields()->getVersion() !== Version::Time
|
|
105
|
+
) {
|
|
106
|
+
throw new UnsupportedOperationException(
|
|
107
|
+
'Attempting to decode a non-time-based UUID using '
|
|
108
|
+
. 'OrderedTimeCodec'
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return $uuid;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This file is part of the ramsey/uuid library
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*
|
|
9
|
+
* @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
|
|
10
|
+
* @license http://opensource.org/licenses/MIT MIT
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
declare(strict_types=1);
|
|
14
|
+
|
|
15
|
+
namespace Ramsey\Uuid\Codec;
|
|
16
|
+
|
|
17
|
+
use Ramsey\Uuid\Builder\UuidBuilderInterface;
|
|
18
|
+
use Ramsey\Uuid\Exception\InvalidArgumentException;
|
|
19
|
+
use Ramsey\Uuid\Exception\InvalidUuidStringException;
|
|
20
|
+
use Ramsey\Uuid\Uuid;
|
|
21
|
+
use Ramsey\Uuid\UuidInterface;
|
|
22
|
+
|
|
23
|
+
use function bin2hex;
|
|
24
|
+
use function hex2bin;
|
|
25
|
+
use function implode;
|
|
26
|
+
use function sprintf;
|
|
27
|
+
use function str_replace;
|
|
28
|
+
use function strlen;
|
|
29
|
+
use function substr;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* StringCodec encodes and decodes RFC 4122 UUIDs
|
|
33
|
+
*
|
|
34
|
+
* @link http://tools.ietf.org/html/rfc4122
|
|
35
|
+
*
|
|
36
|
+
* @psalm-immutable
|
|
37
|
+
*/
|
|
38
|
+
class StringCodec implements CodecInterface
|
|
39
|
+
{
|
|
40
|
+
/**
|
|
41
|
+
* Constructs a StringCodec
|
|
42
|
+
*
|
|
43
|
+
* @param UuidBuilderInterface $builder The builder to use when encoding UUIDs
|
|
44
|
+
*/
|
|
45
|
+
public function __construct(private UuidBuilderInterface $builder)
|
|
46
|
+
{
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public function encode(UuidInterface $uuid): string
|
|
50
|
+
{
|
|
51
|
+
$hex = bin2hex($uuid->getFields()->getBytes());
|
|
52
|
+
|
|
53
|
+
/** @var non-empty-string */
|
|
54
|
+
return sprintf(
|
|
55
|
+
'%08s-%04s-%04s-%04s-%012s',
|
|
56
|
+
substr($hex, 0, 8),
|
|
57
|
+
substr($hex, 8, 4),
|
|
58
|
+
substr($hex, 12, 4),
|
|
59
|
+
substr($hex, 16, 4),
|
|
60
|
+
substr($hex, 20),
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public function encodeBinary(UuidInterface $uuid): string
|
|
65
|
+
{
|
|
66
|
+
return $uuid->getFields()->getBytes();
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @throws InvalidUuidStringException
|
|
71
|
+
*
|
|
72
|
+
* @inheritDoc
|
|
73
|
+
*/
|
|
74
|
+
public function decode(string $encodedUuid): UuidInterface
|
|
75
|
+
{
|
|
76
|
+
return $this->builder->build($this, $this->getBytes($encodedUuid));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
public function decodeBytes(string $bytes): UuidInterface
|
|
80
|
+
{
|
|
81
|
+
if (strlen($bytes) !== 16) {
|
|
82
|
+
throw new InvalidArgumentException(
|
|
83
|
+
'$bytes string should contain 16 characters.'
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return $this->builder->build($this, $bytes);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Returns the UUID builder
|
|
92
|
+
*/
|
|
93
|
+
protected function getBuilder(): UuidBuilderInterface
|
|
94
|
+
{
|
|
95
|
+
return $this->builder;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Returns a byte string of the UUID
|
|
100
|
+
*
|
|
101
|
+
* @return non-empty-string
|
|
102
|
+
*/
|
|
103
|
+
protected function getBytes(string $encodedUuid): string
|
|
104
|
+
{
|
|
105
|
+
$parsedUuid = str_replace(
|
|
106
|
+
['urn:', 'uuid:', 'URN:', 'UUID:', '{', '}', '-'],
|
|
107
|
+
'',
|
|
108
|
+
$encodedUuid
|
|
109
|
+
);
|
|
110
|
+
|
|
111
|
+
$components = [
|
|
112
|
+
substr($parsedUuid, 0, 8),
|
|
113
|
+
substr($parsedUuid, 8, 4),
|
|
114
|
+
substr($parsedUuid, 12, 4),
|
|
115
|
+
substr($parsedUuid, 16, 4),
|
|
116
|
+
substr($parsedUuid, 20),
|
|
117
|
+
];
|
|
118
|
+
|
|
119
|
+
if (!Uuid::isValid(implode('-', $components))) {
|
|
120
|
+
throw new InvalidUuidStringException(
|
|
121
|
+
'Invalid UUID string: ' . $encodedUuid
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/** @var non-empty-string */
|
|
126
|
+
return (string) hex2bin($parsedUuid);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This file is part of the ramsey/uuid library
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*
|
|
9
|
+
* @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
|
|
10
|
+
* @license http://opensource.org/licenses/MIT MIT
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
declare(strict_types=1);
|
|
14
|
+
|
|
15
|
+
namespace Ramsey\Uuid\Codec;
|
|
16
|
+
|
|
17
|
+
use Ramsey\Uuid\Exception\InvalidUuidStringException;
|
|
18
|
+
use Ramsey\Uuid\UuidInterface;
|
|
19
|
+
|
|
20
|
+
use function bin2hex;
|
|
21
|
+
use function sprintf;
|
|
22
|
+
use function substr;
|
|
23
|
+
use function substr_replace;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* TimestampFirstCombCodec encodes and decodes COMBs, with the timestamp as the
|
|
27
|
+
* first 48 bits
|
|
28
|
+
*
|
|
29
|
+
* In contrast with the TimestampLastCombCodec, the TimestampFirstCombCodec
|
|
30
|
+
* adds the timestamp to the first 48 bits of the COMB. To generate a
|
|
31
|
+
* timestamp-first COMB, set the TimestampFirstCombCodec as the codec, along
|
|
32
|
+
* with the CombGenerator as the random generator.
|
|
33
|
+
*
|
|
34
|
+
* ``` php
|
|
35
|
+
* $factory = new UuidFactory();
|
|
36
|
+
*
|
|
37
|
+
* $factory->setCodec(new TimestampFirstCombCodec($factory->getUuidBuilder()));
|
|
38
|
+
*
|
|
39
|
+
* $factory->setRandomGenerator(new CombGenerator(
|
|
40
|
+
* $factory->getRandomGenerator(),
|
|
41
|
+
* $factory->getNumberConverter()
|
|
42
|
+
* ));
|
|
43
|
+
*
|
|
44
|
+
* $timestampFirstComb = $factory->uuid4();
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* @link https://www.informit.com/articles/printerfriendly/25862 The Cost of GUIDs as Primary Keys
|
|
48
|
+
*
|
|
49
|
+
* @psalm-immutable
|
|
50
|
+
*/
|
|
51
|
+
class TimestampFirstCombCodec extends StringCodec
|
|
52
|
+
{
|
|
53
|
+
public function encode(UuidInterface $uuid): string
|
|
54
|
+
{
|
|
55
|
+
$bytes = $this->swapBytes($uuid->getFields()->getBytes());
|
|
56
|
+
|
|
57
|
+
/** @var non-empty-string */
|
|
58
|
+
return sprintf(
|
|
59
|
+
'%08s-%04s-%04s-%04s-%012s',
|
|
60
|
+
bin2hex(substr($bytes, 0, 4)),
|
|
61
|
+
bin2hex(substr($bytes, 4, 2)),
|
|
62
|
+
bin2hex(substr($bytes, 6, 2)),
|
|
63
|
+
bin2hex(substr($bytes, 8, 2)),
|
|
64
|
+
bin2hex(substr($bytes, 10))
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
public function encodeBinary(UuidInterface $uuid): string
|
|
69
|
+
{
|
|
70
|
+
return $this->swapBytes($uuid->getFields()->getBytes());
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* @throws InvalidUuidStringException
|
|
75
|
+
*
|
|
76
|
+
* @inheritDoc
|
|
77
|
+
*/
|
|
78
|
+
public function decode(string $encodedUuid): UuidInterface
|
|
79
|
+
{
|
|
80
|
+
$bytes = $this->getBytes($encodedUuid);
|
|
81
|
+
|
|
82
|
+
return $this->getBuilder()->build($this, $this->swapBytes($bytes));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
public function decodeBytes(string $bytes): UuidInterface
|
|
86
|
+
{
|
|
87
|
+
return $this->getBuilder()->build($this, $this->swapBytes($bytes));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Swaps bytes according to the timestamp-first COMB rules
|
|
92
|
+
*
|
|
93
|
+
* @return non-empty-string
|
|
94
|
+
*/
|
|
95
|
+
private function swapBytes(string $bytes): string
|
|
96
|
+
{
|
|
97
|
+
$first48Bits = substr($bytes, 0, 6);
|
|
98
|
+
$last48Bits = substr($bytes, -6);
|
|
99
|
+
|
|
100
|
+
$bytes = substr_replace($bytes, $last48Bits, 0, 6);
|
|
101
|
+
|
|
102
|
+
/** @var non-empty-string */
|
|
103
|
+
return substr_replace($bytes, $first48Bits, -6);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This file is part of the ramsey/uuid library
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*
|
|
9
|
+
* @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
|
|
10
|
+
* @license http://opensource.org/licenses/MIT MIT
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
declare(strict_types=1);
|
|
14
|
+
|
|
15
|
+
namespace Ramsey\Uuid\Codec;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* TimestampLastCombCodec encodes and decodes COMBs, with the timestamp as the
|
|
19
|
+
* last 48 bits
|
|
20
|
+
*
|
|
21
|
+
* The CombGenerator when used with the StringCodec (and, by proxy, the
|
|
22
|
+
* TimestampLastCombCodec) adds the timestamp to the last 48 bits of the COMB.
|
|
23
|
+
* The TimestampLastCombCodec is provided for the sake of consistency. In
|
|
24
|
+
* practice, it is identical to the standard StringCodec but, it may be used
|
|
25
|
+
* with the CombGenerator for additional context when reading code.
|
|
26
|
+
*
|
|
27
|
+
* Consider the following code. By default, the codec used by UuidFactory is the
|
|
28
|
+
* StringCodec, but here, we explicitly set the TimestampLastCombCodec. It is
|
|
29
|
+
* redundant, but it is clear that we intend this COMB to be generated with the
|
|
30
|
+
* timestamp appearing at the end.
|
|
31
|
+
*
|
|
32
|
+
* ``` php
|
|
33
|
+
* $factory = new UuidFactory();
|
|
34
|
+
*
|
|
35
|
+
* $factory->setCodec(new TimestampLastCombCodec($factory->getUuidBuilder()));
|
|
36
|
+
*
|
|
37
|
+
* $factory->setRandomGenerator(new CombGenerator(
|
|
38
|
+
* $factory->getRandomGenerator(),
|
|
39
|
+
* $factory->getNumberConverter()
|
|
40
|
+
* ));
|
|
41
|
+
*
|
|
42
|
+
* $timestampLastComb = $factory->uuid4();
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @link https://www.informit.com/articles/printerfriendly/25862 The Cost of GUIDs as Primary Keys
|
|
46
|
+
*
|
|
47
|
+
* @psalm-immutable
|
|
48
|
+
*/
|
|
49
|
+
class TimestampLastCombCodec extends StringCodec
|
|
50
|
+
{
|
|
51
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This file is part of the ramsey/uuid library
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*
|
|
9
|
+
* @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
|
|
10
|
+
* @license http://opensource.org/licenses/MIT MIT
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
declare(strict_types=1);
|
|
14
|
+
|
|
15
|
+
namespace Ramsey\Uuid\Converter\Number;
|
|
16
|
+
|
|
17
|
+
use Ramsey\Uuid\Converter\NumberConverterInterface;
|
|
18
|
+
use Ramsey\Uuid\Math\CalculatorInterface;
|
|
19
|
+
use Ramsey\Uuid\Type\Integer as IntegerObject;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* GenericNumberConverter uses the provided calculator to convert decimal
|
|
23
|
+
* numbers to and from hexadecimal values
|
|
24
|
+
*
|
|
25
|
+
* @psalm-immutable
|
|
26
|
+
*/
|
|
27
|
+
class GenericNumberConverter implements NumberConverterInterface
|
|
28
|
+
{
|
|
29
|
+
public function __construct(private CalculatorInterface $calculator)
|
|
30
|
+
{
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @psalm-pure
|
|
35
|
+
*/
|
|
36
|
+
public function fromHex(string $hex): string
|
|
37
|
+
{
|
|
38
|
+
return $this->calculator->fromBase($hex, 16)->toString();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @psalm-pure
|
|
43
|
+
*/
|
|
44
|
+
public function toHex(string $number): string
|
|
45
|
+
{
|
|
46
|
+
return $this->calculator->toBase(new IntegerObject($number), 16);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This file is part of the ramsey/uuid library
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*
|
|
9
|
+
* @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
|
|
10
|
+
* @license http://opensource.org/licenses/MIT MIT
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
declare(strict_types=1);
|
|
14
|
+
|
|
15
|
+
namespace Ramsey\Uuid\Converter;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* A number converter converts UUIDs from hexadecimal characters into
|
|
19
|
+
* representations of integers and vice versa
|
|
20
|
+
*
|
|
21
|
+
* @psalm-immutable
|
|
22
|
+
*/
|
|
23
|
+
interface NumberConverterInterface
|
|
24
|
+
{
|
|
25
|
+
/**
|
|
26
|
+
* Converts a hexadecimal number into a string integer representation of
|
|
27
|
+
* the number
|
|
28
|
+
*
|
|
29
|
+
* The integer representation returned is a string representation of the
|
|
30
|
+
* integer, to accommodate unsigned integers greater than PHP_INT_MAX.
|
|
31
|
+
*
|
|
32
|
+
* @param non-empty-string $hex The hexadecimal string representation to convert
|
|
33
|
+
*
|
|
34
|
+
* @return numeric-string String representation of an integer
|
|
35
|
+
*
|
|
36
|
+
* @psalm-pure
|
|
37
|
+
*/
|
|
38
|
+
public function fromHex(string $hex): string;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Converts a string integer representation into a hexadecimal string
|
|
42
|
+
* representation of the number
|
|
43
|
+
*
|
|
44
|
+
* @param numeric-string $number A string integer representation to convert;
|
|
45
|
+
* this must be a numeric string to accommodate unsigned integers
|
|
46
|
+
* greater than PHP_INT_MAX.
|
|
47
|
+
*
|
|
48
|
+
* @return non-empty-string Hexadecimal string
|
|
49
|
+
*
|
|
50
|
+
* @psalm-pure
|
|
51
|
+
*/
|
|
52
|
+
public function toHex(string $number): string;
|
|
53
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This file is part of the ramsey/uuid library
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*
|
|
9
|
+
* @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
|
|
10
|
+
* @license http://opensource.org/licenses/MIT MIT
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
declare(strict_types=1);
|
|
14
|
+
|
|
15
|
+
namespace Ramsey\Uuid\Converter\Time;
|
|
16
|
+
|
|
17
|
+
use Ramsey\Uuid\Converter\TimeConverterInterface;
|
|
18
|
+
use Ramsey\Uuid\Math\CalculatorInterface;
|
|
19
|
+
use Ramsey\Uuid\Math\RoundingMode;
|
|
20
|
+
use Ramsey\Uuid\Type\Hexadecimal;
|
|
21
|
+
use Ramsey\Uuid\Type\Integer as IntegerObject;
|
|
22
|
+
use Ramsey\Uuid\Type\Time;
|
|
23
|
+
|
|
24
|
+
use function explode;
|
|
25
|
+
use function str_pad;
|
|
26
|
+
|
|
27
|
+
use const STR_PAD_LEFT;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* GenericTimeConverter uses the provided calculator to calculate and convert
|
|
31
|
+
* time values
|
|
32
|
+
*
|
|
33
|
+
* @psalm-immutable
|
|
34
|
+
*/
|
|
35
|
+
class GenericTimeConverter implements TimeConverterInterface
|
|
36
|
+
{
|
|
37
|
+
/**
|
|
38
|
+
* The number of 100-nanosecond intervals from the Gregorian calendar epoch
|
|
39
|
+
* to the Unix epoch.
|
|
40
|
+
*/
|
|
41
|
+
private const GREGORIAN_TO_UNIX_INTERVALS = '122192928000000000';
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* The number of 100-nanosecond intervals in one second.
|
|
45
|
+
*/
|
|
46
|
+
private const SECOND_INTERVALS = '10000000';
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* The number of 100-nanosecond intervals in one microsecond.
|
|
50
|
+
*/
|
|
51
|
+
private const MICROSECOND_INTERVALS = '10';
|
|
52
|
+
|
|
53
|
+
public function __construct(private readonly CalculatorInterface $calculator)
|
|
54
|
+
{
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
public function calculateTime(string $seconds, string $microseconds): Hexadecimal
|
|
58
|
+
{
|
|
59
|
+
$timestamp = new Time($seconds, $microseconds);
|
|
60
|
+
|
|
61
|
+
// Convert the seconds into a count of 100-nanosecond intervals.
|
|
62
|
+
$sec = $this->calculator->multiply(
|
|
63
|
+
$timestamp->getSeconds(),
|
|
64
|
+
new IntegerObject(self::SECOND_INTERVALS)
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
// Convert the microseconds into a count of 100-nanosecond intervals.
|
|
68
|
+
$usec = $this->calculator->multiply(
|
|
69
|
+
$timestamp->getMicroseconds(),
|
|
70
|
+
new IntegerObject(self::MICROSECOND_INTERVALS)
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
// Combine the seconds and microseconds intervals and add the count of
|
|
74
|
+
// 100-nanosecond intervals from the Gregorian calendar epoch to the
|
|
75
|
+
// Unix epoch. This gives us the correct count of 100-nanosecond
|
|
76
|
+
// intervals since the Gregorian calendar epoch for the given seconds
|
|
77
|
+
// and microseconds.
|
|
78
|
+
/** @var IntegerObject $uuidTime */
|
|
79
|
+
$uuidTime = $this->calculator->add(
|
|
80
|
+
$sec,
|
|
81
|
+
$usec,
|
|
82
|
+
new IntegerObject(self::GREGORIAN_TO_UNIX_INTERVALS)
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
$uuidTimeHex = str_pad(
|
|
86
|
+
$this->calculator->toHexadecimal($uuidTime)->toString(),
|
|
87
|
+
16,
|
|
88
|
+
'0',
|
|
89
|
+
STR_PAD_LEFT
|
|
90
|
+
);
|
|
91
|
+
|
|
92
|
+
return new Hexadecimal($uuidTimeHex);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
public function convertTime(Hexadecimal $uuidTimestamp): Time
|
|
96
|
+
{
|
|
97
|
+
// From the total, subtract the number of 100-nanosecond intervals from
|
|
98
|
+
// the Gregorian calendar epoch to the Unix epoch. This gives us the
|
|
99
|
+
// number of 100-nanosecond intervals from the Unix epoch, which also
|
|
100
|
+
// includes the micro-time.
|
|
101
|
+
$epochNanoseconds = $this->calculator->subtract(
|
|
102
|
+
$this->calculator->toInteger($uuidTimestamp),
|
|
103
|
+
new IntegerObject(self::GREGORIAN_TO_UNIX_INTERVALS)
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
// Convert the 100-nanosecond intervals into seconds and microseconds.
|
|
107
|
+
$unixTimestamp = $this->calculator->divide(
|
|
108
|
+
RoundingMode::HALF_UP,
|
|
109
|
+
6,
|
|
110
|
+
$epochNanoseconds,
|
|
111
|
+
new IntegerObject(self::SECOND_INTERVALS)
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
$split = explode('.', (string) $unixTimestamp, 2);
|
|
115
|
+
|
|
116
|
+
return new Time($split[0], $split[1] ?? 0);
|
|
117
|
+
}
|
|
118
|
+
}
|