diff --git a/.gitignore b/.gitignore
index b68d156..531265b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,4 @@ travis/
.php_cs
.php_cs.cache
+.idea
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index a289aeb..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-language: php
-
-php:
- - 7.2
-
-dist: xenial
-sudo: required
-
-cache:
- directories:
- - $HOME/.composer/cache
-
-install:
- - composer update -n --prefer-dist $COMPOSER_FLAGS
- - wget https://github.com/satooshi/php-coveralls/releases/download/v1.0.0/coveralls.phar
-
-before_script:
- - sudo apt-get update -y
- - sudo apt-get install -y libzip4
- - mkdir -p build/logs
- - .travis/setup.sh
- - composer validate
-
-script:
- - vendor/bin/phpunit --coverage-clover build/logs/clover.xml
- - vendor/bin/phpcs --standard=ruleset.xml ./src
- - vendor/bin/phan -m checkstyle -o build/logs/checkstyle.cs
-
-after_script:
- - php coveralls.phar -v --exclude-no-stmt
diff --git a/composer.json b/composer.json
index 78947fe..e550aca 100644
--- a/composer.json
+++ b/composer.json
@@ -5,23 +5,26 @@
{
"name": "Nicklas Wallgren",
"email": "nicklas.wallgren@gmail.com"
+ },
+ {
+ "name": "Alijvhr",
+ "email": "eng.alijvhr@gmail.com"
}
],
"description": "Instagram private API SDK",
"require": {
- "guzzlehttp/guzzle": "^6.2",
- "psr/http-message": "^1.0",
- "php": ">=7.2",
- "webmozart/assert": "^1.0",
+ "guzzlehttp/guzzle": "*",
+ "psr/http-message": "*",
+ "php": "^7.4|^8",
+ "webmozart/assert": "*",
"tebru/gson-php": "^0.7",
"ext-curl": "*",
"ext-json": "*"
},
"require-dev": {
- "phpunit/phpunit": "~6.0",
- "squizlabs/php_codesniffer": "^3.0",
- "phan/phan": "^3.0",
- "drenso/phan-extensions": "^3.2"
+ "phan/phan": "*",
+ "drenso/phan-extensions": "*",
+ "larapack/dd": "*"
},
"autoload": {
"psr-4": {
@@ -32,12 +35,5 @@
"src/Support/definitions.php",
"src/Support/Promises/functions.php"
]
- },
- "scripts": {
- "test": "/vendor/bin/phpunit",
- "lint": "vendor/bin/phpcs --standard=ruleset.xml ./src",
- "lint-fix": "vendor/bin/phpcbf --standard=ruleset.xml ./src",
- "code-analyze": "vendor/bin/phan --color",
- "code-analyze-report": "vendor/bin/phan -m build/logs/checkstyle.cs"
}
}
diff --git a/composer.lock b/composer.lock
new file mode 100644
index 0000000..5227053
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,2702 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "9ed85816fbb2b82addd55745455db55a",
+ "packages": [
+ {
+ "name": "doctrine/annotations",
+ "version": "1.12.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/annotations.git",
+ "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/b17c5014ef81d212ac539f07a1001832df1b6d3b",
+ "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/lexer": "1.*",
+ "ext-tokenizer": "*",
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/cache": "1.*",
+ "doctrine/coding-standard": "^6.0 || ^8.1",
+ "phpstan/phpstan": "^0.12.20",
+ "phpunit/phpunit": "^7.5 || ^9.1.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "Docblock Annotations Parser",
+ "homepage": "https://www.doctrine-project.org/projects/annotations.html",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "parser"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/annotations/issues",
+ "source": "https://github.com/doctrine/annotations/tree/1.12.1"
+ },
+ "time": "2021-02-21T21:00:45+00:00"
+ },
+ {
+ "name": "doctrine/lexer",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/lexer.git",
+ "reference": "e864bbf5904cb8f5bb334f99209b48018522f042"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042",
+ "reference": "e864bbf5904cb8f5bb334f99209b48018522f042",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^6.0",
+ "phpstan/phpstan": "^0.11.8",
+ "phpunit/phpunit": "^8.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
+ "homepage": "https://www.doctrine-project.org/projects/lexer.html",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "lexer",
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/lexer/issues",
+ "source": "https://github.com/doctrine/lexer/tree/1.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-25T17:44:05+00:00"
+ },
+ {
+ "name": "guzzlehttp/guzzle",
+ "version": "7.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/guzzle.git",
+ "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0aa74dfb41ae110835923ef10a9d803a22d50e79",
+ "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "guzzlehttp/promises": "^1.4",
+ "guzzlehttp/psr7": "^1.7",
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-client": "^1.0"
+ },
+ "provide": {
+ "psr/http-client-implementation": "1.0"
+ },
+ "require-dev": {
+ "ext-curl": "*",
+ "php-http/client-integration-tests": "^3.0",
+ "phpunit/phpunit": "^8.5.5 || ^9.3.5",
+ "psr/log": "^1.1"
+ },
+ "suggest": {
+ "ext-curl": "Required for CURL handler support",
+ "ext-intl": "Required for Internationalized Domain Name (IDN) support",
+ "psr/log": "Required for using the Log middleware"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://sagikazarmark.hu"
+ }
+ ],
+ "description": "Guzzle is a PHP HTTP client library",
+ "homepage": "http://guzzlephp.org/",
+ "keywords": [
+ "client",
+ "curl",
+ "framework",
+ "http",
+ "http client",
+ "psr-18",
+ "psr-7",
+ "rest",
+ "web service"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/guzzle/issues",
+ "source": "https://github.com/guzzle/guzzle/tree/7.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/alexeyshockov",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/gmponos",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-10T11:47:56+00:00"
+ },
+ {
+ "name": "guzzlehttp/promises",
+ "version": "1.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/promises.git",
+ "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d",
+ "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.5"
+ },
+ "require-dev": {
+ "symfony/phpunit-bridge": "^4.4 || ^5.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Promise\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ }
+ ],
+ "description": "Guzzle promises library",
+ "keywords": [
+ "promise"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/promises/issues",
+ "source": "https://github.com/guzzle/promises/tree/1.4.1"
+ },
+ "time": "2021-03-07T09:25:29+00:00"
+ },
+ {
+ "name": "guzzlehttp/psr7",
+ "version": "1.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/psr7.git",
+ "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3",
+ "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4.0",
+ "psr/http-message": "~1.0",
+ "ralouphie/getallheaders": "^2.0.5 || ^3.0.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "ext-zlib": "*",
+ "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10"
+ },
+ "suggest": {
+ "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Psr7\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Tobias Schultze",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "PSR-7 message implementation that also provides common utility methods",
+ "keywords": [
+ "http",
+ "message",
+ "psr-7",
+ "request",
+ "response",
+ "stream",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/psr7/issues",
+ "source": "https://github.com/guzzle/psr7/tree/1.7.0"
+ },
+ "time": "2020-09-30T07:37:11+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-2.x": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
+ },
+ "time": "2020-06-27T09:03:43+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "5.2.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556",
+ "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556",
+ "shasum": ""
+ },
+ "require": {
+ "ext-filter": "*",
+ "php": "^7.2 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.2",
+ "phpdocumentor/type-resolver": "^1.3",
+ "webmozart/assert": "^1.9.1"
+ },
+ "require-dev": {
+ "mockery/mockery": "~1.3.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ },
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "account@ijaap.nl"
+ }
+ ],
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master"
+ },
+ "time": "2020-09-03T19:13:55+00:00"
+ },
+ {
+ "name": "phpdocumentor/type-resolver",
+ "version": "1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
+ "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
+ "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.0"
+ },
+ "require-dev": {
+ "ext-tokenizer": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-1.x": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ }
+ ],
+ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0"
+ },
+ "time": "2020-09-17T18:55:26+00:00"
+ },
+ {
+ "name": "psr/cache",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/cache.git",
+ "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
+ "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Cache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for caching libraries",
+ "keywords": [
+ "cache",
+ "psr",
+ "psr-6"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/cache/tree/master"
+ },
+ "time": "2016-08-06T20:24:11+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/1.1.1"
+ },
+ "time": "2021-03-05T17:36:06+00:00"
+ },
+ {
+ "name": "psr/http-client",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-client.git",
+ "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
+ "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0",
+ "psr/http-message": "^1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Client\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP clients",
+ "homepage": "https://github.com/php-fig/http-client",
+ "keywords": [
+ "http",
+ "http-client",
+ "psr",
+ "psr-18"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-client/tree/master"
+ },
+ "time": "2020-06-29T06:28:15+00:00"
+ },
+ {
+ "name": "psr/http-message",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-message.git",
+ "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
+ "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP messages",
+ "homepage": "https://github.com/php-fig/http-message",
+ "keywords": [
+ "http",
+ "http-message",
+ "psr",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-message/tree/master"
+ },
+ "time": "2016-08-06T14:39:51+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
+ "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "Psr/Log/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/1.1.3"
+ },
+ "time": "2020-03-23T09:12:05+00:00"
+ },
+ {
+ "name": "psr/simple-cache",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/simple-cache.git",
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\SimpleCache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for simple caching",
+ "keywords": [
+ "cache",
+ "caching",
+ "psr",
+ "psr-16",
+ "simple-cache"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/simple-cache/tree/master"
+ },
+ "time": "2017-10-23T01:57:42+00:00"
+ },
+ {
+ "name": "ralouphie/getallheaders",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ralouphie/getallheaders.git",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.1",
+ "phpunit/phpunit": "^5 || ^6.5"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/getallheaders.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ralph Khattar",
+ "email": "ralph.khattar@gmail.com"
+ }
+ ],
+ "description": "A polyfill for getallheaders.",
+ "support": {
+ "issues": "https://github.com/ralouphie/getallheaders/issues",
+ "source": "https://github.com/ralouphie/getallheaders/tree/develop"
+ },
+ "time": "2019-03-08T08:55:37+00:00"
+ },
+ {
+ "name": "symfony/cache",
+ "version": "v5.2.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/cache.git",
+ "reference": "d15fb2576cdbe2c40d7c851e62f85b0faff3dd3d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/d15fb2576cdbe2c40d7c851e62f85b0faff3dd3d",
+ "reference": "d15fb2576cdbe2c40d7c851e62f85b0faff3dd3d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/cache": "^1.0|^2.0",
+ "psr/log": "^1.1",
+ "symfony/cache-contracts": "^1.1.7|^2",
+ "symfony/polyfill-php80": "^1.15",
+ "symfony/service-contracts": "^1.1|^2",
+ "symfony/var-exporter": "^4.4|^5.0"
+ },
+ "conflict": {
+ "doctrine/dbal": "<2.10",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/http-kernel": "<4.4",
+ "symfony/var-dumper": "<4.4"
+ },
+ "provide": {
+ "psr/cache-implementation": "1.0|2.0",
+ "psr/simple-cache-implementation": "1.0",
+ "symfony/cache-implementation": "1.0|2.0"
+ },
+ "require-dev": {
+ "cache/integration-tests": "dev-master",
+ "doctrine/cache": "^1.6",
+ "doctrine/dbal": "^2.10|^3.0",
+ "predis/predis": "^1.1",
+ "psr/simple-cache": "^1.0",
+ "symfony/config": "^4.4|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/filesystem": "^4.4|^5.0",
+ "symfony/http-kernel": "^4.4|^5.0",
+ "symfony/messenger": "^4.4|^5.0",
+ "symfony/var-dumper": "^4.4|^5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Cache\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an extended PSR-6, PSR-16 (and tags) implementation",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "caching",
+ "psr6"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/cache/tree/v5.2.4"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-02-25T23:54:56+00:00"
+ },
+ {
+ "name": "symfony/cache-contracts",
+ "version": "v2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/cache-contracts.git",
+ "reference": "8034ca0b61d4dd967f3698aaa1da2507b631d0cb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/8034ca0b61d4dd967f3698aaa1da2507b631d0cb",
+ "reference": "8034ca0b61d4dd967f3698aaa1da2507b631d0cb",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/cache": "^1.0"
+ },
+ "suggest": {
+ "symfony/cache-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.2-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Cache\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to caching",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/cache-contracts/tree/v2.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-09-07T11:33:47+00:00"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "c6c942b1ac76c82448322025e084cadc56048b4e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e",
+ "reference": "c6c942b1ac76c82448322025e084cadc56048b4e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-07T16:49:33+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php80",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91",
+ "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-07T16:49:33+00:00"
+ },
+ {
+ "name": "symfony/service-contracts",
+ "version": "v2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1",
+ "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/container": "^1.0"
+ },
+ "suggest": {
+ "symfony/service-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.2-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/service-contracts/tree/master"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-09-07T11:33:47+00:00"
+ },
+ {
+ "name": "symfony/var-exporter",
+ "version": "v5.2.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-exporter.git",
+ "reference": "5aed4875ab514c8cb9b6ff4772baa25fa4c10307"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/5aed4875ab514c8cb9b6ff4772baa25fa4c10307",
+ "reference": "5aed4875ab514c8cb9b6ff4772baa25fa4c10307",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "require-dev": {
+ "symfony/var-dumper": "^4.4.9|^5.0.9"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\VarExporter\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows exporting any serializable PHP data structure to plain PHP code",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "clone",
+ "construct",
+ "export",
+ "hydrate",
+ "instantiate",
+ "serialize"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/var-exporter/tree/v5.2.4"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-27T10:01:46+00:00"
+ },
+ {
+ "name": "tebru/doctrine-annotation-reader",
+ "version": "v0.3.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/tebru/doctrine-annotation-reader.git",
+ "reference": "b75518495da2d57736911049900bc44a910ebaf2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/tebru/doctrine-annotation-reader/zipball/b75518495da2d57736911049900bc44a910ebaf2",
+ "reference": "b75518495da2d57736911049900bc44a910ebaf2",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/annotations": "^1.2",
+ "php": ">=7.1",
+ "psr/simple-cache": "^1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0",
+ "symfony/cache": "^4.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Tebru\\AnnotationReader\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nate Brunette",
+ "email": "n@tebru.net"
+ }
+ ],
+ "description": "Provides a cleaner API for reading Doctrine annotations",
+ "support": {
+ "issues": "https://github.com/tebru/doctrine-annotation-reader/issues",
+ "source": "https://github.com/tebru/doctrine-annotation-reader/tree/v0.3.7"
+ },
+ "time": "2020-01-02T18:37:00+00:00"
+ },
+ {
+ "name": "tebru/gson-php",
+ "version": "v0.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/tebru/gson-php.git",
+ "reference": "1e0aa5e3e02196c1d57d5efe207b08119aae87eb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/tebru/gson-php/zipball/1e0aa5e3e02196c1d57d5efe207b08119aae87eb",
+ "reference": "1e0aa5e3e02196c1d57d5efe207b08119aae87eb",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1",
+ "phpdocumentor/reflection-docblock": "^3.2.3|^4.0.1|^5",
+ "psr/simple-cache": "^1.0",
+ "symfony/cache": "^3.3|^4.0|^5.0",
+ "tebru/doctrine-annotation-reader": "^0.3.7",
+ "tebru/php-type": "^0.1.7"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0|^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Tebru\\Gson\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nate Brunette",
+ "email": "n@tebru.net"
+ }
+ ],
+ "description": "Gson for PHP: Convert PHP objects to and from json",
+ "support": {
+ "issues": "https://github.com/tebru/gson-php/issues",
+ "source": "https://github.com/tebru/gson-php/tree/v0.7.4"
+ },
+ "time": "2021-03-12T19:32:37+00:00"
+ },
+ {
+ "name": "tebru/php-type",
+ "version": "v0.1.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/tebru/php-type.git",
+ "reference": "e54fe230b124a4460b3c39acb68b589943c6c08c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/tebru/php-type/zipball/e54fe230b124a4460b3c39acb68b589943c6c08c",
+ "reference": "e54fe230b124a4460b3c39acb68b589943c6c08c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">= 7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Tebru\\PhpType\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nate Brunette",
+ "email": "n@tebru.net"
+ }
+ ],
+ "description": "A type wrapper for PHP that support generic syntax",
+ "support": {
+ "issues": "https://github.com/tebru/php-type/issues",
+ "source": "https://github.com/tebru/php-type/tree/master"
+ },
+ "time": "2019-10-17T17:58:32+00:00"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.10.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25",
+ "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<0.12.20",
+ "vimeo/psalm": "<4.6.1 || 4.6.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.13"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.10-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
+ "support": {
+ "issues": "https://github.com/webmozarts/assert/issues",
+ "source": "https://github.com/webmozarts/assert/tree/1.10.0"
+ },
+ "time": "2021-03-09T10:59:23+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "composer/semver",
+ "version": "3.2.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/semver.git",
+ "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/semver/zipball/a02fdf930a3c1c3ed3a49b5f63859c0c20e10464",
+ "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^0.12.54",
+ "symfony/phpunit-bridge": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Semver\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "http://www.naderman.de"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ },
+ {
+ "name": "Rob Bast",
+ "email": "rob.bast@gmail.com",
+ "homepage": "http://robbast.nl"
+ }
+ ],
+ "description": "Semver library that offers utilities, version constraint parsing and validation.",
+ "keywords": [
+ "semantic",
+ "semver",
+ "validation",
+ "versioning"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/semver/issues",
+ "source": "https://github.com/composer/semver/tree/3.2.4"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-11-13T08:59:24+00:00"
+ },
+ {
+ "name": "composer/xdebug-handler",
+ "version": "1.4.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/xdebug-handler.git",
+ "reference": "f28d44c286812c714741478d968104c5e604a1d4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4",
+ "reference": "f28d44c286812c714741478d968104c5e604a1d4",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0",
+ "psr/log": "^1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Composer\\XdebugHandler\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "John Stevenson",
+ "email": "john-stevenson@blueyonder.co.uk"
+ }
+ ],
+ "description": "Restarts a process without Xdebug.",
+ "keywords": [
+ "Xdebug",
+ "performance"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/xdebug-handler/issues",
+ "source": "https://github.com/composer/xdebug-handler/tree/1.4.5"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-11-13T08:04:11+00:00"
+ },
+ {
+ "name": "drenso/phan-extensions",
+ "version": "v3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Drenso/PhanExtensions.git",
+ "reference": "ac15701a0d8cb283f6e542a25e7175f2ca3a717f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Drenso/PhanExtensions/zipball/ac15701a0d8cb283f6e542a25e7175f2ca3a717f",
+ "reference": "ac15701a0d8cb283f6e542a25e7175f2ca3a717f",
+ "shasum": ""
+ },
+ "require-dev": {
+ "phan/phan": "~2|~3"
+ },
+ "type": "project",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bob van de Vijver",
+ "email": "bob@drenso.nl"
+ },
+ {
+ "name": "Tobias Feijten",
+ "email": "tobias@drenso.nl"
+ }
+ ],
+ "description": "This project contains several extensions (stubs/plugins) to be used with Phan for static PHP analysis",
+ "homepage": "https://github.com/Drenso/PhanExtensions",
+ "keywords": [
+ "phan",
+ "plugin",
+ "plugins",
+ "stub",
+ "stubs",
+ "symfony"
+ ],
+ "support": {
+ "issues": "https://github.com/Drenso/PhanExtensions/issues",
+ "source": "https://github.com/Drenso/PhanExtensions/tree/master"
+ },
+ "time": "2020-07-03T11:47:46+00:00"
+ },
+ {
+ "name": "felixfbecker/advanced-json-rpc",
+ "version": "v3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git",
+ "reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/06f0b06043c7438959dbdeed8bb3f699a19be22e",
+ "reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e",
+ "shasum": ""
+ },
+ "require": {
+ "netresearch/jsonmapper": "^1.0 || ^2.0",
+ "php": "^7.1 || ^8.0",
+ "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "AdvancedJsonRpc\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "ISC"
+ ],
+ "authors": [
+ {
+ "name": "Felix Becker",
+ "email": "felix.b@outlook.com"
+ }
+ ],
+ "description": "A more advanced JSONRPC implementation",
+ "support": {
+ "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues",
+ "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.0"
+ },
+ "time": "2021-01-10T17:48:47+00:00"
+ },
+ {
+ "name": "larapack/dd",
+ "version": "1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/larapack/dd.git",
+ "reference": "561b5111a13d0094b59b5c81b1572489485fb948"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/larapack/dd/zipball/561b5111a13d0094b59b5c81b1572489485fb948",
+ "reference": "561b5111a13d0094b59b5c81b1572489485fb948",
+ "shasum": ""
+ },
+ "require": {
+ "symfony/var-dumper": "*"
+ },
+ "type": "package",
+ "autoload": {
+ "files": [
+ "src/helper.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mark Topper",
+ "email": "hi@webman.io"
+ }
+ ],
+ "description": "`dd` is a helper method in Laravel. This package will add the `dd` to your application.",
+ "support": {
+ "issues": "https://github.com/larapack/dd/issues",
+ "source": "https://github.com/larapack/dd/tree/master"
+ },
+ "time": "2016-12-15T09:34:34+00:00"
+ },
+ {
+ "name": "microsoft/tolerant-php-parser",
+ "version": "v0.0.23",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/microsoft/tolerant-php-parser.git",
+ "reference": "1d76657e3271754515ace52501d3e427eca42ad0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/microsoft/tolerant-php-parser/zipball/1d76657e3271754515ace52501d3e427eca42ad0",
+ "reference": "1d76657e3271754515ace52501d3e427eca42ad0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Microsoft\\PhpParser\\": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Rob Lourens",
+ "email": "roblou@microsoft.com"
+ }
+ ],
+ "description": "Tolerant PHP-to-AST parser designed for IDE usage scenarios",
+ "support": {
+ "issues": "https://github.com/microsoft/tolerant-php-parser/issues",
+ "source": "https://github.com/microsoft/tolerant-php-parser/tree/v0.0.23"
+ },
+ "time": "2020-09-13T17:29:12+00:00"
+ },
+ {
+ "name": "netresearch/jsonmapper",
+ "version": "v2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cweiske/jsonmapper.git",
+ "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e0f1e33a71587aca81be5cffbb9746510e1fe04e",
+ "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-pcre": "*",
+ "ext-reflection": "*",
+ "ext-spl": "*",
+ "php": ">=5.6"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4 || ~7.0",
+ "squizlabs/php_codesniffer": "~3.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "JsonMapper": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "OSL-3.0"
+ ],
+ "authors": [
+ {
+ "name": "Christian Weiske",
+ "email": "cweiske@cweiske.de",
+ "homepage": "http://github.com/cweiske/jsonmapper/",
+ "role": "Developer"
+ }
+ ],
+ "description": "Map nested JSON structures onto PHP classes",
+ "support": {
+ "email": "cweiske@cweiske.de",
+ "issues": "https://github.com/cweiske/jsonmapper/issues",
+ "source": "https://github.com/cweiske/jsonmapper/tree/master"
+ },
+ "time": "2020-04-16T18:48:43+00:00"
+ },
+ {
+ "name": "phan/phan",
+ "version": "4.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phan/phan.git",
+ "reference": "95171b8a89ff2433e7ebc27d8a133743f7d78d3b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phan/phan/zipball/95171b8a89ff2433e7ebc27d8a133743f7d78d3b",
+ "reference": "95171b8a89ff2433e7ebc27d8a133743f7d78d3b",
+ "shasum": ""
+ },
+ "require": {
+ "composer/semver": "^1.4|^2.0|^3.0",
+ "composer/xdebug-handler": "^1.3.2",
+ "ext-filter": "*",
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "felixfbecker/advanced-json-rpc": "^3.0.4",
+ "microsoft/tolerant-php-parser": "0.0.23",
+ "netresearch/jsonmapper": "^1.6.0|^2.0|^3.0",
+ "php": "^7.2.0|^8.0.0",
+ "sabre/event": "^5.0.3",
+ "symfony/console": "^3.2|^4.0|^5.0",
+ "symfony/polyfill-mbstring": "^1.11.0",
+ "symfony/polyfill-php80": "^1.20.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.0"
+ },
+ "suggest": {
+ "ext-ast": "Needed for parsing ASTs (unless --use-fallback-parser is used). 1.0.1+ is needed, 1.0.10+ is recommended.",
+ "ext-iconv": "Either iconv or mbstring is needed to ensure issue messages are valid utf-8",
+ "ext-igbinary": "Improves performance of polyfill when ext-ast is unavailable",
+ "ext-mbstring": "Either iconv or mbstring is needed to ensure issue messages are valid utf-8",
+ "ext-tokenizer": "Needed for fallback/polyfill parser support and file/line-based suppressions."
+ },
+ "bin": [
+ "phan",
+ "phan_client",
+ "tocheckstyle"
+ ],
+ "type": "project",
+ "autoload": {
+ "psr-4": {
+ "Phan\\": "src/Phan"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Tyson Andre"
+ },
+ {
+ "name": "Rasmus Lerdorf"
+ },
+ {
+ "name": "Andrew S. Morrison"
+ }
+ ],
+ "description": "A static analyzer for PHP",
+ "keywords": [
+ "analyzer",
+ "php",
+ "static"
+ ],
+ "support": {
+ "issues": "https://github.com/phan/phan/issues",
+ "source": "https://github.com/phan/phan/tree/4.0.3"
+ },
+ "time": "2021-01-30T00:08:54+00:00"
+ },
+ {
+ "name": "sabre/event",
+ "version": "5.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sabre-io/event.git",
+ "reference": "c120bec57c17b6251a496efc82b732418b49d50a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sabre-io/event/zipball/c120bec57c17b6251a496efc82b732418b49d50a",
+ "reference": "c120bec57c17b6251a496efc82b732418b49d50a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "~2.16.1",
+ "phpstan/phpstan": "^0.12",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Sabre\\Event\\": "lib/"
+ },
+ "files": [
+ "lib/coroutine.php",
+ "lib/Loop/functions.php",
+ "lib/Promise/functions.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Evert Pot",
+ "email": "me@evertpot.com",
+ "homepage": "http://evertpot.com/",
+ "role": "Developer"
+ }
+ ],
+ "description": "sabre/event is a library for lightweight event-based programming",
+ "homepage": "http://sabre.io/event/",
+ "keywords": [
+ "EventEmitter",
+ "async",
+ "coroutine",
+ "eventloop",
+ "events",
+ "hooks",
+ "plugin",
+ "promise",
+ "reactor",
+ "signal"
+ ],
+ "support": {
+ "forum": "https://groups.google.com/group/sabredav-discuss",
+ "issues": "https://github.com/sabre-io/event/issues",
+ "source": "https://github.com/fruux/sabre-event"
+ },
+ "time": "2020-10-03T11:02:22+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v5.2.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "938ebbadae1b0a9c9d1ec313f87f9708609f1b79"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/938ebbadae1b0a9c9d1ec313f87f9708609f1b79",
+ "reference": "938ebbadae1b0a9c9d1ec313f87f9708609f1b79",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php73": "^1.8",
+ "symfony/polyfill-php80": "^1.15",
+ "symfony/service-contracts": "^1.1|^2",
+ "symfony/string": "^5.1"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<4.4",
+ "symfony/dotenv": "<5.1",
+ "symfony/event-dispatcher": "<4.4",
+ "symfony/lock": "<4.4",
+ "symfony/process": "<4.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/config": "^4.4|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/event-dispatcher": "^4.4|^5.0",
+ "symfony/lock": "^4.4|^5.0",
+ "symfony/process": "^4.4|^5.0",
+ "symfony/var-dumper": "^4.4|^5.0"
+ },
+ "suggest": {
+ "psr/log": "For using the console logger",
+ "symfony/event-dispatcher": "",
+ "symfony/lock": "",
+ "symfony/process": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Console\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases the creation of beautiful and testable command line interfaces",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "cli",
+ "command line",
+ "console",
+ "terminal"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v5.2.5"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-03-06T13:42:15+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-grapheme",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170",
+ "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's grapheme_* functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "grapheme",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-22T09:19:47+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-normalizer",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+ "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248",
+ "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's Normalizer class and related functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "intl",
+ "normalizer",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-22T09:19:47+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "5232de97ee3b75b0360528dae24e73db49566ab1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1",
+ "reference": "5232de97ee3b75b0360528dae24e73db49566ab1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-22T09:19:47+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php73",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php73.git",
+ "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2",
+ "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Php73\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-07T16:49:33+00:00"
+ },
+ {
+ "name": "symfony/string",
+ "version": "v5.2.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/string.git",
+ "reference": "4e78d7d47061fa183639927ec40d607973699609"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/string/zipball/4e78d7d47061fa183639927ec40d607973699609",
+ "reference": "4e78d7d47061fa183639927ec40d607973699609",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-normalizer": "~1.0",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "~1.15"
+ },
+ "require-dev": {
+ "symfony/error-handler": "^4.4|^5.0",
+ "symfony/http-client": "^4.4|^5.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "symfony/var-exporter": "^4.4|^5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\String\\": ""
+ },
+ "files": [
+ "Resources/functions.php"
+ ],
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "grapheme",
+ "i18n",
+ "string",
+ "unicode",
+ "utf-8",
+ "utf8"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/string/tree/v5.2.4"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-02-16T10:20:28+00:00"
+ },
+ {
+ "name": "symfony/var-dumper",
+ "version": "v5.2.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "002ab5a36702adf0c9a11e6d8836623253e9045e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/002ab5a36702adf0c9a11e6d8836623253e9045e",
+ "reference": "002ab5a36702adf0c9a11e6d8836623253e9045e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<5.4.3",
+ "symfony/console": "<4.4"
+ },
+ "require-dev": {
+ "ext-iconv": "*",
+ "symfony/console": "^4.4|^5.0",
+ "symfony/process": "^4.4|^5.0",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "suggest": {
+ "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
+ "ext-intl": "To show region name in time zone dump",
+ "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
+ },
+ "bin": [
+ "Resources/bin/var-dump-server"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions/dump.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\VarDumper\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides mechanisms for walking through any arbitrary PHP variable",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "debug",
+ "dump"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/var-dumper/tree/v5.2.5"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-03-06T07:59:01+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": false,
+ "prefer-lowest": false,
+ "platform": {
+ "php": "^7|^8",
+ "ext-curl": "*",
+ "ext-json": "*"
+ },
+ "platform-dev": [],
+ "plugin-api-version": "2.0.0"
+}
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
deleted file mode 100644
index 7b93ea8..0000000
--- a/phpunit.xml.dist
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- ./tests
-
-
-
-
- src
-
- ./build
- ./tests
- ./vendor
-
-
-
-
\ No newline at end of file
diff --git a/ruleset.xml b/ruleset.xml
deleted file mode 100644
index e70cd25..0000000
--- a/ruleset.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
- src/Support/Promise.php
-
\ No newline at end of file
diff --git a/src/Client/Features/DirectFeaturesTrait.php b/src/Client/Features/DirectFeaturesTrait.php
index b56ab5e..94accbb 100644
--- a/src/Client/Features/DirectFeaturesTrait.php
+++ b/src/Client/Features/DirectFeaturesTrait.php
@@ -54,7 +54,7 @@ public function inbox()
/**
* Retrieves a thread.
*
- * @param string $id The thread id
+ * @param string $id The thread id
* @param string|null $cursor The cursor id
* @return ThreadMessage|Promise
*/
@@ -100,6 +100,39 @@ public function sendThreadMessage(string $text, string $threadId)
})($this->getMode());
}
+ /**
+ * Sends a direct message.
+ *
+ * @param string $text
+ * @param string $userId
+ * @return DirectSendItemMessage|Promise
+ */
+ public function sendDirectMessage(string $text, string $UserId)
+ {
+ return task(function () use ($text, $UserId): Promise {
+ // @phan-suppress-next-line PhanThrowTypeAbsentForCall
+ $this->checkPrerequisites();
+
+ /** @var GenericRequest $request */
+ $request = request(self::$URI_BROADCAST_MESSAGE, new DirectSendItemMessage())(
+ $this,
+ $this->session,
+ $this->client
+ );
+
+ // Prepare the request payload
+ $request->addPayloadParam('text', $text)
+ ->addPayloadParam('thread_ids', "[0]")
+ ->addPayloadParam('recipient_users', "[[$UserId]]")
+// ->addPayloadParam('action', 'send_item')
+ ->addUniqueContext()
+ ->addCSRFTokenAndUserId();
+
+ // Invoke the request
+ return $request->fire();
+ })($this->getMode());
+ }
+
/**
* Set thread id as seen.
*
diff --git a/src/Client/Features/FeedFeaturesTrait.php b/src/Client/Features/FeedFeaturesTrait.php
index a30de33..33373a7 100644
--- a/src/Client/Features/FeedFeaturesTrait.php
+++ b/src/Client/Features/FeedFeaturesTrait.php
@@ -15,6 +15,7 @@
use function Instagram\SDK\Support\Promises\task;
use function Instagram\SDK\Support\request;
use const Instagram\SDK\TYPE_HASHTAG;
+use const Instagram\SDK\TYPE_SINGLE;
use const Instagram\SDK\TYPE_USER;
/**
@@ -37,6 +38,16 @@ trait FeedFeaturesTrait
*/
private static $URI_USER_FEED = 'feed/user/%s/';
+ /**
+ * @var string The single feed uri
+ */
+ private static $URI_SINGLE_FEED = 'media/%s/info/';
+
+ /**
+ * @var string The user reels uri
+ */
+ private static $URI_USER_REELS = 'feed/user/%s/reel_media/';
+
/**
* @var string The timeline uri
*/
@@ -66,11 +77,23 @@ public function feedByUser(string $user)
return $this->feed(TYPE_USER, $user);
}
+ /**
+ * Retrieves story by user.
+ *
+ * @param string $user
+ * @return FeedMessage|Promise
+ * @throws Exception
+ */
+ public function storyByUser(string $user)
+ {
+ return $this->story(TYPE_USER, $user);
+ }
+
/**
* Retrieves the feed for a specified hashtag.
*
- * @param int $type
- * @param string $query
+ * @param int $type
+ * @param string $query
* @param string|null $maxId
* @return FeedMessage|Promise
* @throws Exception
@@ -85,6 +108,10 @@ public function feed(int $type, string $query, ?string $maxId = null)
case TYPE_USER:
$result = $this->queryFeed($type, self::$URI_USER_FEED, $query, FeedMessage::class, $maxId);
+ break;
+ case TYPE_SINGLE:
+ $result = $this->queryFeed($type, self::$URI_SINGLE_FEED, $query, FeedMessage::class, $maxId);
+
break;
default:
@@ -96,6 +123,22 @@ public function feed(int $type, string $query, ?string $maxId = null)
return $result;
}
+ /**
+ * Retrieves the story for a specified hashtag.
+ *
+ * @param int $type
+ * @param string $query
+ * @param string|null $maxId
+ * @return FeedMessage|Promise
+ * @throws Exception
+ */
+ public function story(string $query, ?string $maxId = null)
+ {
+ $result = $this->queryFeed(TYPE_USER, self::$URI_USER_REELS, $query, FeedMessage::class, $maxId);
+
+ return $result;
+ }
+
/**
* Retrieves the timeline feed for the current user.
*
@@ -133,10 +176,10 @@ public function timeline(TimelineOptions $options)
/**
* Queries for the feed result.
*
- * @param int $type
- * @param string $uri
- * @param string $query
- * @param string $result
+ * @param int $type
+ * @param string $uri
+ * @param string $query
+ * @param string $result
* @param string|null $maxId
* @return FeedMessage|Promise
*/
@@ -152,7 +195,7 @@ protected function queryFeed(int $type, string $uri, string $query, string $resu
/** @var GenericRequest $request */
// @phan-suppress-next-line PhanPluginPrintfVariableFormatString
- $request = request(sprintf($uri, $tag), $message)(
+ $request = request(sprintf($uri, $tag), $message, 'GET')(
$this,
$this->session,
$this->client
@@ -169,7 +212,7 @@ protected function queryFeed(int $type, string $uri, string $query, string $resu
/**
* Creates a generic request.
*
- * @param string $uri
+ * @param string $uri
* @param Envelope $message
* @return GenericRequest
*/
diff --git a/src/Client/Features/FriendshipsFeaturesTrait.php b/src/Client/Features/FriendshipsFeaturesTrait.php
index ac5f469..bce19a2 100644
--- a/src/Client/Features/FriendshipsFeaturesTrait.php
+++ b/src/Client/Features/FriendshipsFeaturesTrait.php
@@ -122,7 +122,7 @@ public function followers(string $userId, ?string $maxId = null)
* @var GenericRequest $request
*/
// @phan-suppress-next-line PhanPluginPrintfVariableFormatString
- $request = request(sprintf(self::$URI_FOLLOWERS, $userId), (new FollowersMessage())->setUserId($userId))(
+ $request = request(sprintf(self::$URI_FOLLOWERS, $userId), (new FollowersMessage())->setUserId($userId), 'GET')(
$this,
$this->session,
$this->client
@@ -145,14 +145,14 @@ public function followers(string $userId, ?string $maxId = null)
* @param null|string $maxId
* @return FollowingMessage|Promise
*/
- public function following(string $userId, ?string $maxId)
+ public function following(string $userId, ?string $maxId = null)
{
return task(function () use ($userId, $maxId): Promise {
/**
* @var GenericRequest $request
*/
// @phan-suppress-next-line PhanPluginPrintfVariableFormatString
- $request = request(sprintf(self::$URI_FOLLOWING, $userId), (new FollowingMessage())->setUserId($userId))(
+ $request = request(sprintf(self::$URI_FOLLOWING, $userId), (new FollowingMessage())->setUserId($userId), 'GET')(
$this,
$this->session,
$this->client
diff --git a/src/Client/Features/UserFeaturesTrait.php b/src/Client/Features/UserFeaturesTrait.php
index 732b242..9014079 100644
--- a/src/Client/Features/UserFeaturesTrait.php
+++ b/src/Client/Features/UserFeaturesTrait.php
@@ -4,6 +4,8 @@
use Exception;
use GuzzleHttp\Promise\PromiseInterface;
+use Instagram\SDK\DTO\General\User;
+use Instagram\SDK\DTO\Messages\User\UserMessage;
use Instagram\SDK\DTO\Messages\User\LogoutMessage;
use Instagram\SDK\DTO\Messages\User\SessionMessage;
use Instagram\SDK\Instagram;
@@ -37,6 +39,11 @@ trait UserFeaturesTrait
*/
private static $URI_LOGOUT = 'accounts/logout/';
+ /**
+ * @var string The username info uri
+ */
+ private static $URI_GET_USERNAME = 'users/%s/usernameinfo/';
+
/**
* Authenticates a user.
*
@@ -80,10 +87,10 @@ public function loginUsingNonce(string $nonce)
// Prepare the payload
$body = [
- 'device_id' => $this->session->getDevice()->deviceId(),
- 'user_id' => $this->session->getUser()->getId(),
+ 'device_id' => $this->session->getDevice()->deviceId(),
+ 'user_id' => $this->session->getUser()->getId(),
'login_nonce' => $nonce,
- 'adid' => SignatureSupport::uuid(),
+ 'adid' => SignatureSupport::uuid(),
];
$request->setPayload($body)
@@ -121,6 +128,29 @@ public function logout()
})($this->getMode());
}
+ /**
+ * Logout the authenticated user.
+ *
+ * @return UserMessage|Promise
+ */
+ public function getByUsername($uname)
+ {
+ return task(function () use ($uname): Promise {
+ // @phan-suppress-next-line PhanThrowTypeAbsentForCall
+ $this->checkPrerequisites();
+
+ /** @var GenericRequest $request */
+ $request = request(sprintf(self::$URI_GET_USERNAME, $uname), new UserMessage(), 'GET')(
+ $this,
+ $this->session,
+ $this->client
+ );
+
+ // Invoke the request
+ return $request->fire();
+ })($this->getMode());
+ }
+
/**
* Chain multiple requests.
*
diff --git a/src/DTO/General/ItemType.php b/src/DTO/General/ItemType.php
index 5c65fb3..fb5b530 100644
--- a/src/DTO/General/ItemType.php
+++ b/src/DTO/General/ItemType.php
@@ -70,6 +70,11 @@ class ItemType
*/
const REEL_SHARE = 'reel_share';
+ /**
+ * @var string
+ */
+ const REELS_MEDIA = 'reels_media';
+
/**
* @var string
*/
diff --git a/src/DTO/General/User.php b/src/DTO/General/User.php
index 7e86e47..0b4b4ce 100644
--- a/src/DTO/General/User.php
+++ b/src/DTO/General/User.php
@@ -7,6 +7,7 @@
use Instagram\SDK\DTO\Interfaces\UserInterface;
use Instagram\SDK\DTO\Messages\Feed\FeedMessage;
use Instagram\SDK\DTO\Messages\Friendships\FollowersMessage;
+use Instagram\SDK\DTO\Messages\Friendships\FollowingMessage;
use Instagram\SDK\DTO\Messages\Friendships\FollowMessage;
use Instagram\SDK\Responses\Serializers\Interfaces\OnItemDecodeInterface;
use Instagram\SDK\Responses\Serializers\Traits\OnPropagateDecodeEventTrait;
@@ -39,6 +40,11 @@ class User implements UserInterface, OnItemDecodeInterface
*/
protected $fullName;
+ /**
+ * @var string
+ */
+ protected $biography;
+
/**
* @var bool
*/
@@ -60,6 +66,32 @@ class User implements UserInterface, OnItemDecodeInterface
*/
protected $isVerified;
+ /**
+ * @var bool
+ */
+ protected $isBusiness;
+
+ /**
+ * @var int
+ */
+ protected $followerCount;
+
+ /**
+ * @var int
+ */
+ protected $FollowingCount;
+
+ /**
+ * @var int
+ */
+ protected $mediaCount;
+
+ /**
+ * @var int
+ * @SerializedName("total_igtv_videos")
+ */
+ protected $igtvCount;
+
/**
* @var bool
*/
@@ -94,6 +126,15 @@ public function getFullName(): ?string
return $this->fullName;
}
+
+ /**
+ * @return string|null
+ */
+ public function getBiography(): ?string
+ {
+ return $this->biography;
+ }
+
/**
* @return bool
*/
@@ -110,6 +151,7 @@ public function getProfilePictureUrl(): string
return $this->profilePictureUrl;
}
+
/**
* @return FriendshipStatus
*/
@@ -118,6 +160,46 @@ public function getFriendshipStatus()
return $this->friendshipStatus;
}
+ /**
+ * @return int
+ */
+ public function getFollowerCount(): int
+ {
+ return $this->followerCount;
+ }
+
+ /**
+ * @return int
+ */
+ public function getFollowingCount(): int
+ {
+ return $this->FollowingCount;
+ }
+
+ /**
+ * @return int
+ */
+ public function getMediaCount(): int
+ {
+ return $this->mediaCount;
+ }
+
+ /**
+ * @return int
+ */
+ public function getIgtvCount(): int
+ {
+ return $this->igtvCount;
+ }
+
+ /**
+ * @return bool
+ */
+ public function isBusiness(): bool
+ {
+ return $this->isBusiness;
+ }
+
/**
* @return bool
*/
@@ -159,6 +241,17 @@ public function feed()
return $this->client->feedByUser($this->id);
}
+ /**
+ * Returns the user story.
+ *
+ * @return FeedMessage|Promise
+ * @throws Exception
+ */
+ public function story()
+ {
+ return $this->client->storyByUser($this->id);
+ }
+
/**
* Follow the user.
*
@@ -182,10 +275,22 @@ public function unfollow()
/**
* Returns a list of followers.
*
+ * @param int|null $max
* @return FollowersMessage|Promise
*/
- public function followers()
+ public function followers(?int $max = null)
+ {
+ return $this->client->followers($this->id, $max);
+ }
+
+ /**
+ * Returns a list of followings.
+ *
+ * @param int|null $max
+ * @return FollowingMessage|Promise
+ */
+ public function following(?int $max = null)
{
- return $this->client->followers($this->id);
+ return $this->client->following($this->id, $max);
}
}
diff --git a/src/DTO/Hashtag/Item.php b/src/DTO/Hashtag/Item.php
index e19199e..ea89d25 100644
--- a/src/DTO/Hashtag/Item.php
+++ b/src/DTO/Hashtag/Item.php
@@ -3,6 +3,7 @@
namespace Instagram\SDK\DTO\Hashtag;
use Instagram\SDK\Client\Client;
+use Instagram\SDK\DTO\Traits\PropertiesTrait;
use Instagram\SDK\Responses\Serializers\Interfaces\OnItemDecodeInterface;
use Instagram\SDK\Responses\Serializers\Traits\OnPropagateDecodeEventTrait;
@@ -14,6 +15,7 @@
class Item implements OnItemDecodeInterface
{
+ use PropertiesTrait;
use OnPropagateDecodeEventTrait;
/**
@@ -62,10 +64,20 @@ class Item implements OnItemDecodeInterface
protected $filterType;
/**
- * @var \Instagram\SDK\DTO\General\Media\ImageVersions2[]
+ * @var object
*/
protected $imageVersions2;
+ /**
+ * @var int
+ */
+ protected $carouselMediaCount;
+
+ /**
+ * @var item[]
+ */
+ protected $carouselMedia;
+
/**
* @var float
*/
diff --git a/src/DTO/Messages/User/UserMessage.php b/src/DTO/Messages/User/UserMessage.php
new file mode 100644
index 0000000..c9831bc
--- /dev/null
+++ b/src/DTO/Messages/User/UserMessage.php
@@ -0,0 +1,28 @@
+user;
+ }
+}
diff --git a/src/Http/Guzzle/Handlers/HandlerStack.php b/src/Http/Guzzle/Handlers/HandlerStack.php
index 7f59fe7..2c4c907 100644
--- a/src/Http/Guzzle/Handlers/HandlerStack.php
+++ b/src/Http/Guzzle/Handlers/HandlerStack.php
@@ -25,7 +25,7 @@ class HandlerStack extends \GuzzleHttp\HandlerStack
* system will be utilized.
* @return HandlerStack
*/
- public static function create(callable $handler = null)
+ public static function create(callable $handler = null): self
{
$stack = new self(static::createHandler());
$stack->push(Middleware::httpErrors(), 'http_errors');
@@ -41,8 +41,8 @@ public static function create(callable $handler = null)
*
* The returned handler is not wrapped by any default middlewares.
*
- * @throws RuntimeException if no viable Handler is available.
* @return callable Returns the best handler for the given system.
+ * @throws RuntimeException if no viable Handler is available.
*/
protected static function createHandler()
{
diff --git a/src/Requests/Http/Utils/RequestUtils.php b/src/Requests/Http/Utils/RequestUtils.php
index 562f68a..ccc3711 100644
--- a/src/Requests/Http/Utils/RequestUtils.php
+++ b/src/Requests/Http/Utils/RequestUtils.php
@@ -26,7 +26,7 @@ public static function createUri(string $host, string $path, array $queryParamet
$uri = new Uri();
return $uri->withHost($host)
- ->withPath('api/v1/' . $path)
+ ->withPath('/api/v1/' . $path)
->withScheme('https')
->withQuery(self::createQuery($queryParameters));
}
diff --git a/src/Requests/Traits/MakeDirectRequestAccessible.php b/src/Requests/Traits/MakeDirectRequestAccessible.php
index 4225c40..f1b52d8 100644
--- a/src/Requests/Traits/MakeDirectRequestAccessible.php
+++ b/src/Requests/Traits/MakeDirectRequestAccessible.php
@@ -52,6 +52,18 @@ public function sendThreadMessage(string $text, string $threadId)
return $this->getClient()->sendThreadMessage($text, $threadId);
}
+ /**
+ * Sends a message to a user.
+ *
+ * @param string $text
+ * @param string $userId
+ * @return DirectSendItemMessage|Promise
+ */
+ public function sendDirectMessage(string $text, string $userId)
+ {
+ return $this->getClient()->sendDirectMessage($text, $userId);
+ }
+
/**
* Sets thread item as seen.
*
diff --git a/src/Requests/Traits/MakeFeedRequestsAccessible.php b/src/Requests/Traits/MakeFeedRequestsAccessible.php
index 836eed9..335e932 100644
--- a/src/Requests/Traits/MakeFeedRequestsAccessible.php
+++ b/src/Requests/Traits/MakeFeedRequestsAccessible.php
@@ -26,10 +26,16 @@ trait MakeFeedRequestsAccessible
*/
public static $TYPE_FEED_USER = 2;
+ /**
+ * @var int The single feed type
+ */
+ public static $TYPE_FEED_SINGLE = 3;
+
/**
* Retrieves feed by hashtag.
*
- * @param string $tag
+ * @param string $tag
+ *
* @return FeedMessage|Promise
* @throws \Exception
*/
@@ -41,7 +47,8 @@ public function feedByHashtag(string $tag)
/**
* Retrieves feed by user.
*
- * @param string $userId
+ * @param string $userId
+ *
* @return FeedMessage|Promise
* @throws \Exception
*/
@@ -50,12 +57,39 @@ public function feedByUser(string $userId)
return $this->feed(self::$TYPE_FEED_USER, $userId);
}
+ /**
+ * Retrieves story by user.
+ *
+ * @param string $userId
+ *
+ * @return FeedMessage|Promise
+ * @throws \Exception
+ */
+ public function storyByUser(string $userId)
+ {
+ return $this->story($userId);
+ }
+
+ /**
+ * Retrieves feed by ID.
+ *
+ * @param string $feedId
+ *
+ * @return FeedMessage|Promise
+ * @throws \Exception
+ */
+ public function feedByID(string $feedId)
+ {
+ return $this->feed(self::$TYPE_FEED_SINGLE, $feedId);
+ }
+
/**
* Retrieves feed by type.
*
- * @param int $type
- * @param string $query
- * @param string|null $maxId
+ * @param int $type
+ * @param string $query
+ * @param string|null $maxId
+ *
* @return FeedMessage|Promise
* @throws \Exception
*/
@@ -64,10 +98,25 @@ public function feed(int $type, string $query, ?string $maxId = null)
return $this->getClient()->feed($type, $query, $maxId);
}
+ /**
+ * Retrieves story by type.
+ *
+ * @param string $query
+ * @param string|null $maxId
+ *
+ * @return FeedMessage|Promise
+ * @throws \Exception
+ */
+ public function story(string $query, ?string $maxId = null)
+ {
+ return $this->getClient()->story($query, $maxId);
+ }
+
/**
* Retrieves the timeline feed for the current user.
*
- * @param TimelineOptions|null $options
+ * @param TimelineOptions|null $options
+ *
* @return Timeline|Promise
*/
public function timeline(?TimelineOptions $options = null)
diff --git a/src/Requests/Traits/MakeUserRequestAccessible.php b/src/Requests/Traits/MakeUserRequestAccessible.php
index 27d2f12..307e7d7 100644
--- a/src/Requests/Traits/MakeUserRequestAccessible.php
+++ b/src/Requests/Traits/MakeUserRequestAccessible.php
@@ -4,6 +4,8 @@
use GuzzleHttp\Promise\Promise;
use Instagram\SDK\Client\Client;
+use Instagram\SDK\DTO\General\User;
+use Instagram\SDK\DTO\Messages\User\UserMessage;
use Instagram\SDK\DTO\Messages\User\LogoutMessage;
use Instagram\SDK\DTO\Messages\User\SessionMessage;
@@ -49,6 +51,17 @@ public function logout()
return $this->getClient()->logout();
}
+ /**
+ * Logout the authenticated user.
+ *
+ * @param string $uname
+ * @return UserMessage|Promise
+ */
+ public function getByUsername(string $uname)
+ {
+ return $this->getClient()->getByUsername($uname);
+ }
+
/**
* Returns the client.
*
diff --git a/src/Responses/Serializers/AbstractSerializer.php b/src/Responses/Serializers/AbstractSerializer.php
index 754b7a9..46da649 100644
--- a/src/Responses/Serializers/AbstractSerializer.php
+++ b/src/Responses/Serializers/AbstractSerializer.php
@@ -5,6 +5,7 @@
use Exception;
use Instagram\SDK\DTO\Envelope;
use Instagram\SDK\DTO\Interfaces\ResponseMessageInterface;
+use Instagram\SDK\DTO\Messages\User\UserMessage;
use Instagram\SDK\Responses\Exceptions\ApiResponseException;
use Instagram\SDK\Responses\Exceptions\InvalidRequestException;
use Instagram\SDK\Responses\Interfaces\SerializerInterface;
diff --git a/src/Support/definitions.php b/src/Support/definitions.php
index 8c39e39..83b8593 100644
--- a/src/Support/definitions.php
+++ b/src/Support/definitions.php
@@ -11,3 +11,7 @@
* @var int The user feed type
*/
const TYPE_USER = 2;
+/**
+ * @var int The single feed type
+ */
+const TYPE_SINGLE = 3;