diff --git a/lib/config/definitions.js b/lib/config/definitions.js index 31777d1944fa0574f7ef969a05427c5c1448bcb9..631e9902b09c1e9d2f3a2ee4560b65cb9f0fff2f 100644 --- a/lib/config/definitions.js +++ b/lib/config/definitions.js @@ -342,7 +342,7 @@ const options = [ 'List of URLs to try for dependency lookup. Package manager-specific', type: 'list', default: null, - stage: 'package', + stage: 'branch', cli: false, env: false, }, diff --git a/lib/datasource/packagist.js b/lib/datasource/packagist.js index 08ad8dfa81d56edeca750d008bedf293adef2fa7..5855c20d8f906fd3d4a38deaff7a497fe3c1e038 100644 --- a/lib/datasource/packagist.js +++ b/lib/datasource/packagist.js @@ -1,52 +1,172 @@ +const is = require('@sindresorhus/is'); const URL = require('url'); const got = require('got'); const parse = require('github-url-from-git'); const { isVersion, sortVersions } = require('../versioning')('semverComposer'); +const hostRules = require('../util/host-rules'); module.exports = { getPkgReleases, }; -async function getPkgReleases(purl) { - const { fullname: name } = purl; - logger.trace(`getPkgReleases(${name})`); +function authGot(url) { + const { host } = URL.parse(url); + const opts = hostRules.find({ platform: 'packagist', host }, { json: true }); + if (opts && opts.username && opts.password) { + const auth = Buffer.from(`${opts.username}:${opts.password}`).toString( + 'base64' + ); + opts.headers = { Authorization: `Basic ${auth}` }; + } + return got(url, opts); +} - const regUrl = 'https://packagist.org'; +async function getRegistryMeta(regUrl) { + try { + const res = (await authGot(regUrl + '/packages.json')).body; + const meta = {}; + meta.packages = res.packages; + if (res.includes) { + meta.includesFiles = []; + for (const [name, val] of Object.entries(res.includes)) { + const file = { + key: name.replace(val.sha256, '%hash%'), + sha256: val.sha256, + }; + meta.includesFiles.push(file); + } + } + if (res['providers-url'] && res['provider-includes']) { + meta.providersUrl = res['providers-url']; + meta.files = []; + for (const [key, val] of Object.entries(res['provider-includes'])) { + const file = { + key, + sha256: val.sha256, + }; + meta.files.push(file); + } + } + return meta; + } catch (err) { + if (err.statusCode === 401) { + logger.info({ regUrl }, 'Unauthorized Packagist repository'); + return null; + } + logger.warn({ err }, 'Packagist download error'); + return null; + } +} - const pkgUrl = URL.resolve(regUrl, `/packages/${name}.json`); +async function getPackagistFile(regUrl, file) { + const { key, sha256 } = file; + // Check the persistent cache + const cacheNamespace = 'datasource-packagist-files'; + const cachedResult = await renovateCache.get(cacheNamespace, key); + // istanbul ignore if + if (cachedResult && cachedResult.sha256 === sha256) { + return cachedResult.res; + } + const fileName = key.replace('%hash%', sha256); + const res = (await authGot(regUrl + '/' + fileName)).body; + const cacheMinutes = 1440; // 1 day + await renovateCache.set( + cacheNamespace, + file.key, + { res, sha256 }, + cacheMinutes + ); + return res; +} - try { - const res = (await got(pkgUrl, { - json: true, - retries: 5, - })).body.package; - - // Simplify response before caching and returning - const dep = { - name: res.name, - versions: {}, - }; - - if (res.repository) { - dep.repositoryUrl = parse(res.repository); - } - const versions = Object.keys(res.versions) - .filter(isVersion) - .sort(sortVersions); - - dep.releases = versions.map(version => { - const release = res.versions[version]; - dep.homepage = dep.homepage || release.homepage; +function extractDepReleases(versions) { + const dep = {}; + dep.releases = Object.keys(versions) + .filter(isVersion) + .sort(sortVersions) + .map(version => { + const release = versions[version]; + dep.homepage = release.homepage || dep.homepage; + if (release.source && release.source.url) { + dep.repositoryUrl = parse(release.source.url) || release.source.url; + } return { version: version.replace(/^v/, ''), gitRef: version, releaseTimestamp: release.time, }; }); - dep.homepage = dep.homepage || res.repository; + return dep; +} + +async function getAllPackages(regUrl) { + // TODO: Cache this in memory per-run as it's likely to be reused + const registryMeta = await getRegistryMeta(regUrl); + if (!registryMeta) { + return null; + } + const { packages, providersUrl, files, includesFiles } = registryMeta; + const providerPackages = {}; + // TODO: refactor the following to be in parallel + if (files) { + for (const file of files) { + const res = await getPackagistFile(regUrl, file); + for (const [name, val] of Object.entries(res.providers)) { + providerPackages[name] = val.sha256; + } + } + } + const includesPackages = {}; + if (includesFiles) { + for (const file of includesFiles) { + const res = await getPackagistFile(regUrl, file); + if (res.packages) { + for (const [key, val] of Object.entries(res.packages)) { + const dep = extractDepReleases(val); + dep.name = key; + includesPackages[key] = dep; + } + } + } + } + return { packages, providersUrl, providerPackages, includesPackages }; +} + +async function packageLookup(regUrl, name) { + try { + const allPackages = await getAllPackages(regUrl); + if (!allPackages) { + return null; + } + const { + packages, + providersUrl, + providerPackages, + includesPackages, + } = allPackages; + if (packages && packages[name]) { + const dep = extractDepReleases(packages[name]); + dep.name = name; + return dep; + } + if (includesPackages && includesPackages[name]) { + return includesPackages[name]; + } + if (!(providerPackages && providerPackages[name])) { + return null; + } + const pkgUrl = URL.resolve( + regUrl, + providersUrl + .replace('%package%', name) + .replace('%hash%', providerPackages[name]) + ); + const versions = (await authGot(pkgUrl)).body.packages[name]; + const dep = extractDepReleases(versions); + dep.name = name; logger.trace({ dep }, 'dep'); return dep; - } catch (err) { + } catch (err) /* istanbul ignore next */ { if (err.statusCode === 404 || err.code === 'ENOTFOUND') { logger.info({ dependency: name }, `Dependency lookup failure: not found`); logger.debug({ @@ -58,3 +178,39 @@ async function getPkgReleases(purl) { return null; } } + +async function getPkgReleases(purl, config = {}) { + const { fullname: name } = purl; + logger.trace(`getPkgReleases(${name})`); + const regUrls = []; + if (config.registryUrls) { + for (const regUrl of config.registryUrls) { + if (regUrl.type === 'composer') { + regUrls.push(regUrl.url); + } else if (regUrl['packagist.org'] !== false) { + logger.info({ regUrl }, 'Unsupported Packagist registry URL'); + } + } + } + if (regUrls.length > 0) { + logger.debug({ regUrls }, 'Packagist custom registry URLs'); + } + if ( + !is.nonEmptyArray(config.registryUrls) || + config.registryUrls[config.registryUrls.length - 1]['packagist.org'] !== + false + ) { + regUrls.push('https://packagist.org'); + } else { + logger.debug('Disabling packagist.org'); + } + + let res; + for (const regUrl of regUrls) { + res = await packageLookup(regUrl, name); + if (res) { + break; + } + } + return res; +} diff --git a/lib/manager/composer/artifacts.js b/lib/manager/composer/artifacts.js index b781ba79f738bc6e2fee57dfdf400d25eb53f2a6..98dd4366e8c711efad03ae4c325e90e264b4c978 100644 --- a/lib/manager/composer/artifacts.js +++ b/lib/manager/composer/artifacts.js @@ -1,3 +1,4 @@ +const URL = require('url'); const { exec } = require('child-process-promise'); const fs = require('fs-extra'); const upath = require('upath'); @@ -37,17 +38,46 @@ async function getArtifacts( if (!config.gitFs) { await fs.outputFile(localLockFileName, existingLockFileContent); } + let authJson; const credentials = hostRules.find({ platform: 'github', host: 'api.github.com', }); // istanbul ignore if if (credentials && credentials.token) { - const authJson = { + authJson = { 'github-oauth': { 'github.com': credentials.token, }, }; + } + try { + for (const regUrl of config.registryUrls) { + if (regUrl.url) { + const { host } = URL.parse(regUrl.url); + const hostRule = hostRules.find({ + platform: 'packagist', + host, + }); + if (hostRule) { + // istanbul ignore else + if (hostRule.username && hostRule.password) { + authJson = authJson || {}; + authJson['http-basic'] = authJson['http-basic'] || {}; + authJson['http-basic'][host] = { + username: hostRule.username, + password: hostRule.password, + }; + } else { + logger.info('Warning: unknown composer host rule type'); + } + } + } + } + } catch (err) { + logger.warn({ err }, 'Error setting registryUrls auth for composer'); + } + if (authJson) { const localAuthFileName = upath.join(cwd, 'auth.json'); await fs.outputFile(localAuthFileName, JSON.stringify(authJson)); } diff --git a/test/_fixtures/packagist/1beyt.json b/test/_fixtures/packagist/1beyt.json new file mode 100644 index 0000000000000000000000000000000000000000..005cd5f3dc45d4f922bd3c29726b1a37bb142319 --- /dev/null +++ b/test/_fixtures/packagist/1beyt.json @@ -0,0 +1,127 @@ +{ + "packages": { + "wpackagist-plugin/1beyt": { + "1.0": { + "name": "wpackagist-plugin/1beyt", + "version": "1.0", + "version_normalized": "1.0.0.0", + "uid": 590, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/1beyt.1.0.zip" + }, + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/1beyt/", + "reference": "tags/1.0" + }, + "homepage": "https://wordpress.org/plugins/1beyt/", + "require": { + "composer/installers": "~1.0" + }, + "type": "wordpress-plugin" + }, + "1.1": { + "name": "wpackagist-plugin/1beyt", + "version": "1.1", + "version_normalized": "1.1.0.0", + "uid": 591, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/1beyt.1.1.zip" + }, + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/1beyt/", + "reference": "tags/1.1" + }, + "homepage": "https://wordpress.org/plugins/1beyt/", + "require": { + "composer/installers": "~1.0" + }, + "type": "wordpress-plugin" + }, + "1.4": { + "name": "wpackagist-plugin/1beyt", + "version": "1.4", + "version_normalized": "1.4.0.0", + "uid": 592, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/1beyt.1.4.zip" + }, + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/1beyt/", + "reference": "tags/1.4" + }, + "homepage": "https://wordpress.org/plugins/1beyt/", + "require": { + "composer/installers": "~1.0" + }, + "type": "wordpress-plugin" + }, + "1.5": { + "name": "wpackagist-plugin/1beyt", + "version": "1.5", + "version_normalized": "1.5.0.0", + "uid": 593, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/1beyt.1.5.zip" + }, + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/1beyt/", + "reference": "tags/1.5" + }, + "homepage": "https://wordpress.org/plugins/1beyt/", + "require": { + "composer/installers": "~1.0" + }, + "type": "wordpress-plugin" + }, + "1.5.1": { + "name": "wpackagist-plugin/1beyt", + "version": "1.5.1", + "version_normalized": "1.5.1.0", + "uid": 594, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/1beyt.1.5.1.zip" + }, + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/1beyt/", + "reference": "tags/1.5.1" + }, + "homepage": "https://wordpress.org/plugins/1beyt/", + "require": { + "composer/installers": "~1.0" + }, + "type": "wordpress-plugin" + }, + "dev-trunk": { + "name": "wpackagist-plugin/1beyt", + "version": "dev-trunk", + "version_normalized": "9999999-dev", + "uid": 595, + "time": "2018-09-03 21:31:30", + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/1beyt.zip?timestamp=1536010290" + }, + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/1beyt/", + "reference": "trunk" + }, + "homepage": "https://wordpress.org/plugins/1beyt/", + "require": { + "composer/installers": "~1.0" + }, + "type": "wordpress-plugin" + } + } + } +} \ No newline at end of file diff --git a/test/_fixtures/packagist/includes.json b/test/_fixtures/packagist/includes.json new file mode 100644 index 0000000000000000000000000000000000000000..3ca261918d14e97201dc4ae28a08c8eb3cef356b --- /dev/null +++ b/test/_fixtures/packagist/includes.json @@ -0,0 +1,2575 @@ +{ + "packages": { + "guzzlehttp/guzzle": { + "v3.0.0": { + "name": "guzzlehttp/guzzle", + "version": "v3.0.0", + "version_normalized": "3.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "d0fc839abd2e411df908c6fd0ed1379db691b1b0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d0fc839abd2e411df908c6fd0ed1379db691b1b0", + "reference": "d0fc839abd2e411df908c6fd0ed1379db691b1b0", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": "2.1.*" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/common": "*", + "monolog/monolog": "1.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2012-10-16T04:57:15+00:00", + "type": "library", + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.0.0", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.0.1": { + "name": "guzzlehttp/guzzle", + "version": "v3.0.1", + "version_normalized": "3.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "993e8eb4905026bd79821d1faafca1798f7a78f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/993e8eb4905026bd79821d1faafca1798f7a78f3", + "reference": "993e8eb4905026bd79821d1faafca1798f7a78f3", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": "2.1.*" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/common": "*", + "monolog/monolog": "1.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2012-10-22T20:20:55+00:00", + "type": "library", + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.0.1", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.0.2": { + "name": "guzzlehttp/guzzle", + "version": "v3.0.2", + "version_normalized": "3.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "2fdcd68fce2f3fd7cebb0d61739a41483ad557e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/2fdcd68fce2f3fd7cebb0d61739a41483ad557e2", + "reference": "2fdcd68fce2f3fd7cebb0d61739a41483ad557e2", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": "2.1.*" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/common": "*", + "monolog/monolog": "1.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2012-10-25T04:55:19+00:00", + "type": "library", + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.0.2", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.0.3": { + "name": "guzzlehttp/guzzle", + "version": "v3.0.3", + "version_normalized": "3.0.3.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "20190c51e7eaec7d061afa59fb9605c02dc8bb24" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/20190c51e7eaec7d061afa59fb9605c02dc8bb24", + "reference": "20190c51e7eaec7d061afa59fb9605c02dc8bb24", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": "2.1.*" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/common": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2012-11-04T20:31:03+00:00", + "type": "library", + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.0.3", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.0.4": { + "name": "guzzlehttp/guzzle", + "version": "v3.0.4", + "version_normalized": "3.0.4.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "d54dce1c53219c1bf17c0095e1cac04a28e3a2a6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d54dce1c53219c1bf17c0095e1cac04a28e3a2a6", + "reference": "d54dce1c53219c1bf17c0095e1cac04a28e3a2a6", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": "2.1.*" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/common": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2012-11-12T00:00:24+00:00", + "type": "library", + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.0.4", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.0.5": { + "name": "guzzlehttp/guzzle", + "version": "v3.0.5", + "version_normalized": "3.0.5.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "184407e254ec806d632416a264a7d6bf5b417f4b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/184407e254ec806d632416a264a7d6bf5b417f4b", + "reference": "184407e254ec806d632416a264a7d6bf5b417f4b", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": "2.1.*" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/common": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2012-11-19T00:15:33+00:00", + "type": "library", + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.0.5", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.0.6": { + "name": "guzzlehttp/guzzle", + "version": "v3.0.6", + "version_normalized": "3.0.6.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "09c2a09584c455a3e049210ee7dc92f7b65f6210" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/09c2a09584c455a3e049210ee7dc92f7b65f6210", + "reference": "09c2a09584c455a3e049210ee7dc92f7b65f6210", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/common": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2012-12-10T05:25:04+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.0.6", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.0.7": { + "name": "guzzlehttp/guzzle", + "version": "v3.0.7", + "version_normalized": "3.0.7.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "f31f35d1669382936861533bd0217fcf830dc9a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f31f35d1669382936861533bd0217fcf830dc9a9", + "reference": "f31f35d1669382936861533bd0217fcf830dc9a9", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/common": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2012-12-19T23:06:35+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.0.7", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.1.0": { + "name": "guzzlehttp/guzzle", + "version": "v3.1.0", + "version_normalized": "3.1.0.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "5baae799e136d399246cbf14055deed2a55d687f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/5baae799e136d399246cbf14055deed2a55d687f", + "reference": "5baae799e136d399246cbf14055deed2a55d687f", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/common": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-01-14T05:09:07+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.1.0", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.1.1": { + "name": "guzzlehttp/guzzle", + "version": "v3.1.1", + "version_normalized": "3.1.1.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "d295578db8e580ce9f7d0734535406d95123f3d6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d295578db8e580ce9f7d0734535406d95123f3d6", + "reference": "d295578db8e580ce9f7d0734535406d95123f3d6", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/common": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-01-21T05:46:09+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.1.1", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.1.2": { + "name": "guzzlehttp/guzzle", + "version": "v3.1.2", + "version_normalized": "3.1.2.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "7901ea7d27373d0cc85eac6f6694e4c2ced90a26" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7901ea7d27373d0cc85eac6f6694e4c2ced90a26", + "reference": "7901ea7d27373d0cc85eac6f6694e4c2ced90a26", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/common": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-01-28T00:07:40+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.1.2", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.2.0": { + "name": "guzzlehttp/guzzle", + "version": "v3.2.0", + "version_normalized": "3.2.0.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "3a3fa1c5af3ac29b5dcb216b708ee3c48b52325e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/3a3fa1c5af3ac29b5dcb216b708ee3c48b52325e", + "reference": "3a3fa1c5af3ac29b5dcb216b708ee3c48b52325e", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/common": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-02-15T01:33:10+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.2.0", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.3.0": { + "name": "guzzlehttp/guzzle", + "version": "v3.3.0", + "version_normalized": "3.3.0.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "d8f28e9f48d2566e28c80ce9be67cb9c3e1449a6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d8f28e9f48d2566e28c80ce9be67cb9c3e1449a6", + "reference": "d8f28e9f48d2566e28c80ce9be67cb9c3e1449a6", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-03-04T00:41:45+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.3.0", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.3.1": { + "name": "guzzlehttp/guzzle", + "version": "v3.3.1", + "version_normalized": "3.3.1.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "0657f36c7780fb0f95cf117da3aab15cb580fb66" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0657f36c7780fb0f95cf117da3aab15cb580fb66", + "reference": "0657f36c7780fb0f95cf117da3aab15cb580fb66", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-03-10T23:05:38+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.3.1", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.4.0": { + "name": "guzzlehttp/guzzle", + "version": "v3.4.0", + "version_normalized": "3.4.0.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "76f16a154659afae37a411a868e6aafc19133466" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/76f16a154659afae37a411a868e6aafc19133466", + "reference": "76f16a154659afae37a411a868e6aafc19133466", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "psr/log": "1.0.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-04-12T05:58:15+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.4.0", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.4.1": { + "name": "guzzlehttp/guzzle", + "version": "v3.4.1", + "version_normalized": "3.4.1.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "938e2075f4870857f24dc3b206235dd3e0f969ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/938e2075f4870857f24dc3b206235dd3e0f969ae", + "reference": "938e2075f4870857f24dc3b206235dd3e0f969ae", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "psr/log": "1.0.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-04-16T20:56:26+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.4.1", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.4.2": { + "name": "guzzlehttp/guzzle", + "version": "v3.4.2", + "version_normalized": "3.4.2.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "bee77d3bfdf7fa73b465a77beadde9b919f79782" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/bee77d3bfdf7fa73b465a77beadde9b919f79782", + "reference": "bee77d3bfdf7fa73b465a77beadde9b919f79782", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "psr/log": "1.0.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-04-29T23:55:30+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.4.2", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.4.3": { + "name": "guzzlehttp/guzzle", + "version": "v3.4.3", + "version_normalized": "3.4.3.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "5896a1475d245993b693434bc77a33e92c7feaf5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/5896a1475d245993b693434bc77a33e92c7feaf5", + "reference": "5896a1475d245993b693434bc77a33e92c7feaf5", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "psr/log": "1.0.*", + "symfony/class-loader": "*", + "zend/zend-cache1": "1.12", + "zend/zend-log1": "1.12", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-04-30T20:31:38+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.4.3", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.5.0": { + "name": "guzzlehttp/guzzle", + "version": "v3.5.0", + "version_normalized": "3.5.0.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "e97207d07d0385eac269a976628b7a5f9eeb4e07" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/e97207d07d0385eac269a976628b7a5f9eeb4e07", + "reference": "e97207d07d0385eac269a976628b7a5f9eeb4e07", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "psr/log": "1.0.*", + "symfony/class-loader": "*", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-05-13T20:17:47+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.5-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.5.0", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.6.0": { + "name": "guzzlehttp/guzzle", + "version": "v3.6.0", + "version_normalized": "3.6.0.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "b550d534c9b668c767b6a532bd686d0942505f7a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b550d534c9b668c767b6a532bd686d0942505f7a", + "reference": "b550d534c9b668c767b6a532bd686d0942505f7a", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "psr/log": "1.0.*", + "symfony/class-loader": "*", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-05-30T07:01:25+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.6-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.6.0", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.7.0": { + "name": "guzzlehttp/guzzle", + "version": "v3.7.0", + "version_normalized": "3.7.0.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "0f2aad252b9c9120743dd475b383b1b6fb54c2f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0f2aad252b9c9120743dd475b383b1b6fb54c2f3", + "reference": "0f2aad252b9c9120743dd475b383b1b6fb54c2f3", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "psr/log": "1.0.*", + "symfony/class-loader": "*", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-06-11T00:24:07+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.7-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.7.0", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.7.1": { + "name": "guzzlehttp/guzzle", + "version": "v3.7.1", + "version_normalized": "3.7.1.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "aa68be2fa33896c0a0a7638d5b8e3f9e1a41bfab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/aa68be2fa33896c0a0a7638d5b8e3f9e1a41bfab", + "reference": "aa68be2fa33896c0a0a7638d5b8e3f9e1a41bfab", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "psr/log": "1.0.*", + "symfony/class-loader": "*", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-07-05T20:17:54+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.7-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.7.1", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.7.2": { + "name": "guzzlehttp/guzzle", + "version": "v3.7.2", + "version_normalized": "3.7.2.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "eaef90d27bb1d682e1f6ab2d77606dc0159049e6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/eaef90d27bb1d682e1f6ab2d77606dc0159049e6", + "reference": "eaef90d27bb1d682e1f6ab2d77606dc0159049e6", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "psr/log": "1.0.*", + "symfony/class-loader": "*", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-08-02T18:31:05+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.7-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.7.2", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.7.3": { + "name": "guzzlehttp/guzzle", + "version": "v3.7.3", + "version_normalized": "3.7.3.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "0f16aad385528b5cf790392cb4a4d16cf600e944" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0f16aad385528b5cf790392cb4a4d16cf600e944", + "reference": "0f16aad385528b5cf790392cb4a4d16cf600e944", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "psr/log": "1.0.*", + "symfony/class-loader": "*", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-09-08T21:09:18+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.7-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.7.3", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.7.4": { + "name": "guzzlehttp/guzzle", + "version": "v3.7.4", + "version_normalized": "3.7.4.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "b170b028c6bb5799640e46c8803015b0f9a45ed9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b170b028c6bb5799640e46c8803015b0f9a45ed9", + "reference": "b170b028c6bb5799640e46c8803015b0f9a45ed9", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.3", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "psr/log": "1.0.*", + "symfony/class-loader": "*", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-10-02T20:47:00+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.7-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.7.4", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.8.0": { + "name": "guzzlehttp/guzzle", + "version": "v3.8.0", + "version_normalized": "3.8.0.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "b4a3ce8c05e777fa18b802956d5d0e38ad338a69" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b4a3ce8c05e777fa18b802956d5d0e38ad338a69", + "reference": "b4a3ce8c05e777fa18b802956d5d0e38ad338a69", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.3", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "psr/log": "1.0.*", + "symfony/class-loader": "*", + "zendframework/zend-cache": "2.0.*", + "zendframework/zend-log": "2.0.*" + }, + "time": "2013-12-05T23:39:20+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.8-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle\\Tests": "tests/", + "Guzzle": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.8.0", + "issues": "https://github.com/guzzle/guzzle/issues" + } + }, + "v3.8.1": { + "name": "guzzlehttp/guzzle", + "version": "v3.8.1", + "version_normalized": "3.8.1.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "4de0618a01b34aa1c8c33a3f13f396dcd3882eba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/4de0618a01b34aa1c8c33a3f13f396dcd3882eba", + "reference": "4de0618a01b34aa1c8c33a3f13f396dcd3882eba", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.3", + "symfony/event-dispatcher": ">=2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "*", + "monolog/monolog": "1.*", + "phpunit/phpunit": "3.7.*", + "psr/log": "1.0.*", + "symfony/class-loader": "*", + "zendframework/zend-cache": "<2.3", + "zendframework/zend-log": "<2.3" + }, + "time": "2014-01-28T22:29:15+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.8-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle": "src/", + "Guzzle\\Tests": "tests/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "HTTP client", + "client", + "curl", + "framework", + "http", + "rest", + "web service" + ], + "support": { + "source": "https://github.com/guzzle/guzzle/tree/v3.8.1", + "issues": "https://github.com/guzzle/guzzle/issues" + } + } + } + } +} \ No newline at end of file diff --git a/test/_fixtures/packagist/mailchimp-api.json b/test/_fixtures/packagist/mailchimp-api.json deleted file mode 100644 index 3c6c2c43beb54e67104327efcca85f8f69496f73..0000000000000000000000000000000000000000 --- a/test/_fixtures/packagist/mailchimp-api.json +++ /dev/null @@ -1 +0,0 @@ -{"package":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v3 wrapper","time":"2013-12-18T14:08:09+00:00","maintainers":[{"name":"drewm","avatar_url":"https:\/\/www.gravatar.com\/avatar\/74c8cca18339c66ca10979569f1bb206?d=identicon"}],"versions":{"dev-master":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v3 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"dev-master","version_normalized":"9999999-dev","license":["MIT"],"authors":[{"name":"Drew McLellan","email":"drew.mclellan@gmail.com","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"e3febc93dbe8047f0a14fea19c1efe79cecc7e98"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/e3febc93dbe8047f0a14fea19c1efe79cecc7e98","reference":"e3febc93dbe8047f0a14fea19c1efe79cecc7e98","shasum":""},"type":"library","time":"2018-02-23T09:45:38+00:00","autoload":{"psr-4":{"DrewM\\MailChimp\\":"src"}},"require":{"php":"\u003E=5.3","ext-curl":"*"},"require-dev":{"vlucas\/phpdotenv":"^2.0","phpunit\/phpunit":"7.0.*"}},"dev-api-v3":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v3 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"dev-api-v3","version_normalized":"dev-api-v3","license":["MIT"],"authors":[{"name":"Drew McLellan","email":"drew.mclellan@gmail.com","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"268dca3f0e35bdc263ceb8114b24c7496c3b46f5"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/268dca3f0e35bdc263ceb8114b24c7496c3b46f5","reference":"268dca3f0e35bdc263ceb8114b24c7496c3b46f5","shasum":""},"type":"library","time":"2016-01-17T15:59:26+00:00","autoload":{"psr-4":{"DrewM\\MailChimp\\":"src"}},"require":{"php":"\u003E=5.3"},"require-dev":{"phpunit\/phpunit":"4.0.*","vlucas\/phpdotenv":"^2.0"}},"dev-api-v2":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v2 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"dev-api-v2","version_normalized":"dev-api-v2","license":["MIT"],"authors":[{"name":"Drew McLellan","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"2ace9cf087bea43d0bf9c7207d94ce93642e6262"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/2ace9cf087bea43d0bf9c7207d94ce93642e6262","reference":"2ace9cf087bea43d0bf9c7207d94ce93642e6262","shasum":""},"type":"library","time":"2016-01-17T15:57:27+00:00","autoload":{"psr-0":{"Drewm":"src\/"}},"require":{"php":"\u003E=5.3"}},"v2.5":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v3 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"v2.5","version_normalized":"2.5.0.0","license":["MIT"],"authors":[{"name":"Drew McLellan","email":"drew.mclellan@gmail.com","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"f532fa26cd6e7d17c9ba40a757d8c6bfee47dace"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/f532fa26cd6e7d17c9ba40a757d8c6bfee47dace","reference":"f532fa26cd6e7d17c9ba40a757d8c6bfee47dace","shasum":""},"type":"library","time":"2018-02-16T15:31:05+00:00","autoload":{"psr-4":{"DrewM\\MailChimp\\":"src"}},"require":{"php":"\u003E=5.3","ext-curl":"*"},"require-dev":{"phpunit\/phpunit":"7.0.*","vlucas\/phpdotenv":"^2.0"}},"v2.4":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v3 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"v2.4","version_normalized":"2.4.0.0","license":["MIT"],"authors":[{"name":"Drew McLellan","email":"drew.mclellan@gmail.com","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"fe480bb652f85270227bf6d639b0026a531f21fc"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/fe480bb652f85270227bf6d639b0026a531f21fc","reference":"fe480bb652f85270227bf6d639b0026a531f21fc","shasum":""},"type":"library","time":"2017-02-16T13:24:20+00:00","autoload":{"psr-4":{"DrewM\\MailChimp\\":"src"}},"require":{"php":"\u003E=5.3","ext-curl":"*"},"require-dev":{"phpunit\/phpunit":"4.0.*","vlucas\/phpdotenv":"^2.0"}},"v2.3":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v3 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"v2.3","version_normalized":"2.3.0.0","license":["MIT"],"authors":[{"name":"Drew McLellan","email":"drew.mclellan@gmail.com","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"6a5373378f8e61284be81d6424d22fb2a3a1ff9e"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/6a5373378f8e61284be81d6424d22fb2a3a1ff9e","reference":"6a5373378f8e61284be81d6424d22fb2a3a1ff9e","shasum":""},"type":"library","time":"2016-12-21T14:50:24+00:00","autoload":{"psr-4":{"DrewM\\MailChimp\\":"src"}},"require":{"php":"\u003E=5.3","ext-curl":"*"},"require-dev":{"phpunit\/phpunit":"4.0.*","vlucas\/phpdotenv":"^2.0"}},"v2.2.3":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v3 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"v2.2.3","version_normalized":"2.2.3.0","license":["MIT"],"authors":[{"name":"Drew McLellan","email":"drew.mclellan@gmail.com","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"89b7dbc54b7ba8c2e249d6e63f66d22ecb8070f8"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/89b7dbc54b7ba8c2e249d6e63f66d22ecb8070f8","reference":"89b7dbc54b7ba8c2e249d6e63f66d22ecb8070f8","shasum":""},"type":"library","time":"2016-07-01T15:53:33+00:00","autoload":{"psr-4":{"DrewM\\MailChimp\\":"src"}},"require":{"php":"\u003E=5.3","ext-curl":"*"},"require-dev":{"phpunit\/phpunit":"4.0.*","vlucas\/phpdotenv":"^2.0"}},"v2.2.4":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v3 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"v2.2.4","version_normalized":"2.2.4.0","license":["MIT"],"authors":[{"name":"Drew McLellan","email":"drew.mclellan@gmail.com","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"89b7dbc54b7ba8c2e249d6e63f66d22ecb8070f8"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/89b7dbc54b7ba8c2e249d6e63f66d22ecb8070f8","reference":"89b7dbc54b7ba8c2e249d6e63f66d22ecb8070f8","shasum":""},"type":"library","time":"2016-07-01T15:53:33+00:00","autoload":{"psr-4":{"DrewM\\MailChimp\\":"src"}},"require":{"php":"\u003E=5.3","ext-curl":"*"},"require-dev":{"phpunit\/phpunit":"4.0.*","vlucas\/phpdotenv":"^2.0"}},"v2.2.2":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v3 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"v2.2.2","version_normalized":"2.2.2.0","license":["MIT"],"authors":[{"name":"Drew McLellan","email":"drew.mclellan@gmail.com","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"6ebcfd131fd6f3cac69be9fccb6c3f8102736952"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/6ebcfd131fd6f3cac69be9fccb6c3f8102736952","reference":"6ebcfd131fd6f3cac69be9fccb6c3f8102736952","shasum":""},"type":"library","time":"2016-07-01T09:58:24+00:00","autoload":{"psr-4":{"DrewM\\MailChimp\\":"src"}},"require":{"php":"\u003E=5.3","ext-curl":"*"},"require-dev":{"phpunit\/phpunit":"4.0.*","vlucas\/phpdotenv":"^2.0"}},"v2.2.1":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v3 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"v2.2.1","version_normalized":"2.2.1.0","license":["MIT"],"authors":[{"name":"Drew McLellan","email":"drew.mclellan@gmail.com","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"a2bf78208c49b205482c5ca884cb45a8cd266d5c"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/a2bf78208c49b205482c5ca884cb45a8cd266d5c","reference":"a2bf78208c49b205482c5ca884cb45a8cd266d5c","shasum":""},"type":"library","time":"2016-04-23T18:00:21+00:00","autoload":{"psr-4":{"DrewM\\MailChimp\\":"src"}},"require":{"php":"\u003E=5.3","ext-curl":"*"},"require-dev":{"phpunit\/phpunit":"4.0.*","vlucas\/phpdotenv":"^2.0"}},"v2.2":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v3 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"v2.2","version_normalized":"2.2.0.0","license":["MIT"],"authors":[{"name":"Drew McLellan","email":"drew.mclellan@gmail.com","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"590fb71e3493b5daba382c44f714f2e25d785814"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/590fb71e3493b5daba382c44f714f2e25d785814","reference":"590fb71e3493b5daba382c44f714f2e25d785814","shasum":""},"type":"library","time":"2016-04-23T12:43:28+00:00","autoload":{"psr-4":{"DrewM\\MailChimp\\":"src"}},"require":{"php":"\u003E=5.3","ext-curl":"*"},"require-dev":{"phpunit\/phpunit":"4.0.*","vlucas\/phpdotenv":"^2.0"}},"v2.1.3":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v3 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"v2.1.3","version_normalized":"2.1.3.0","license":["MIT"],"authors":[{"name":"Drew McLellan","email":"drew.mclellan@gmail.com","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"6188e2be5827efb6595f63ad6f01a26e84bd39f7"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/6188e2be5827efb6595f63ad6f01a26e84bd39f7","reference":"6188e2be5827efb6595f63ad6f01a26e84bd39f7","shasum":""},"type":"library","time":"2016-04-12T09:09:47+00:00","autoload":{"psr-4":{"DrewM\\MailChimp\\":"src"}},"require":{"php":"\u003E=5.3"},"require-dev":{"phpunit\/phpunit":"4.0.*","vlucas\/phpdotenv":"^2.0"}},"v2.1.2":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v3 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"v2.1.2","version_normalized":"2.1.2.0","license":["MIT"],"authors":[{"name":"Drew McLellan","email":"drew.mclellan@gmail.com","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"f4539014e9cc96eab0f187f52eb60499518a31bb"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/f4539014e9cc96eab0f187f52eb60499518a31bb","reference":"f4539014e9cc96eab0f187f52eb60499518a31bb","shasum":""},"type":"library","time":"2016-04-06T12:41:37+00:00","autoload":{"psr-4":{"DrewM\\MailChimp\\":"src"}},"require":{"php":"\u003E=5.3"},"require-dev":{"phpunit\/phpunit":"4.0.*","vlucas\/phpdotenv":"^2.0"}},"v2.1.1":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v3 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"v2.1.1","version_normalized":"2.1.1.0","license":["MIT"],"authors":[{"name":"Drew McLellan","email":"drew.mclellan@gmail.com","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"86f529eba05a7e4c3a3e091aed8ff056137e6251"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/86f529eba05a7e4c3a3e091aed8ff056137e6251","reference":"86f529eba05a7e4c3a3e091aed8ff056137e6251","shasum":""},"type":"library","time":"2016-04-06T08:37:20+00:00","autoload":{"psr-4":{"DrewM\\MailChimp\\":"src"}},"require":{"php":"\u003E=5.3"},"require-dev":{"phpunit\/phpunit":"4.0.*","vlucas\/phpdotenv":"^2.0"}},"v2.1":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v3 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"v2.1","version_normalized":"2.1.0.0","license":["MIT"],"authors":[{"name":"Drew McLellan","email":"drew.mclellan@gmail.com","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"a9bf617afb5a9bcb2601f5cc23b01a7b581d5659"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/a9bf617afb5a9bcb2601f5cc23b01a7b581d5659","reference":"a9bf617afb5a9bcb2601f5cc23b01a7b581d5659","shasum":""},"type":"library","time":"2016-01-30T16:12:54+00:00","autoload":{"psr-4":{"DrewM\\MailChimp\\":"src"}},"require":{"php":"\u003E=5.3"},"require-dev":{"phpunit\/phpunit":"4.0.*","vlucas\/phpdotenv":"^2.0"}},"v2.0":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v3 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"v2.0","version_normalized":"2.0.0.0","license":["MIT"],"authors":[{"name":"Drew McLellan","email":"drew.mclellan@gmail.com","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"a2eb58b615aff713fcb1714e33f321712c5be3c8"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/a2eb58b615aff713fcb1714e33f321712c5be3c8","reference":"a2eb58b615aff713fcb1714e33f321712c5be3c8","shasum":""},"type":"library","time":"2016-01-17T13:08:01+00:00","autoload":{"psr-4":{"DrewM\\MailChimp\\":"src"}},"require":{"php":"\u003E=5.3"},"require-dev":{"phpunit\/phpunit":"4.0.*","vlucas\/phpdotenv":"^2.0"}},"v1.1":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v2 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"v1.1","version_normalized":"1.1.0.0","license":["MIT"],"authors":[{"name":"Drew McLellan","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"707d555962442b21a75683a56bdb7cebd0a19f72"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/707d555962442b21a75683a56bdb7cebd0a19f72","reference":"707d555962442b21a75683a56bdb7cebd0a19f72","shasum":""},"type":"library","time":"2015-07-07T15:38:25+00:00","autoload":{"psr-0":{"Drewm":"src\/"}},"require":{"php":"\u003E=5.3"}},"v1.0":{"name":"drewm\/mailchimp-api","description":"Super-simple, minimum abstraction MailChimp API v2 wrapper","keywords":[],"homepage":"https:\/\/github.com\/drewm\/mailchimp-api","version":"v1.0","version_normalized":"1.0.0.0","license":["MIT"],"authors":[{"name":"Drew McLellan","homepage":"http:\/\/allinthehead.com\/"}],"source":{"type":"git","url":"https:\/\/github.com\/drewm\/mailchimp-api.git","reference":"0b763f05fe18610061b8289a399a9d0569036a50"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/drewm\/mailchimp-api\/zipball\/0b763f05fe18610061b8289a399a9d0569036a50","reference":"0b763f05fe18610061b8289a399a9d0569036a50","shasum":""},"type":"library","time":"2014-05-30T16:51:39+00:00","autoload":{"psr-0":{"Drewm":"src\/"}},"require":{"php":"\u003E=5.3"}}},"type":"library","repository":"https:\/\/github.com\/drewm\/mailchimp-api","github_stars":1426,"github_watchers":90,"github_forks":380,"github_open_issues":28,"language":"PHP","dependents":52,"suggesters":3,"downloads":{"total":1879647,"monthly":105651,"daily":467},"favers":1438}} \ No newline at end of file diff --git a/test/_fixtures/packagist/uploader.json b/test/_fixtures/packagist/uploader.json deleted file mode 100644 index 2334744c0b893c01e106362b753cea44b063cb1c..0000000000000000000000000000000000000000 --- a/test/_fixtures/packagist/uploader.json +++ /dev/null @@ -1 +0,0 @@ -{"package":{"name":"cristianvuolo\/uploader","description":"Addon Uploader","time":"2016-10-19T22:49:42+00:00","maintainers":[{"name":"cristianvuolo","avatar_url":"https:\/\/www.gravatar.com\/avatar\/ed04ec5b11a6c9b660018342d6fcdc1a?d=identicon"}],"versions":{"dev-master":{"name":"cristianvuolo\/uploader","description":"Addon Uploader","keywords":[],"homepage":"","version":"dev-master","version_normalized":"9999999-dev","license":["MIT"],"authors":[],"source":{"type":"git","url":"https:\/\/github.com\/cristianvuolo\/uploader.git","reference":"fa3a834d521326794b920a6f983979d3a8c635f2"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/cristianvuolo\/uploader\/zipball\/fa3a834d521326794b920a6f983979d3a8c635f2","reference":"fa3a834d521326794b920a6f983979d3a8c635f2","shasum":""},"type":"library","time":"2018-03-14T17:40:06+00:00","autoload":{"psr-4":{"CristianVuolo\\Uploader\\":"src\/"}},"require":{"php":"\u003E=5.6.4","intervention\/image":"^2.3","laravel\/framework":"5.*"}},"1.0.8":{"name":"cristianvuolo\/uploader","description":"Addon Uploader","keywords":[],"homepage":"","version":"1.0.8","version_normalized":"1.0.8.0","license":["MIT"],"authors":[],"source":{"type":"git","url":"https:\/\/github.com\/cristianvuolo\/uploader.git","reference":"fa3a834d521326794b920a6f983979d3a8c635f2"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/cristianvuolo\/uploader\/zipball\/fa3a834d521326794b920a6f983979d3a8c635f2","reference":"fa3a834d521326794b920a6f983979d3a8c635f2","shasum":""},"type":"library","time":"2018-03-14T17:40:06+00:00","autoload":{"psr-4":{"CristianVuolo\\Uploader\\":"src\/"}},"require":{"php":"\u003E=5.6.4","intervention\/image":"^2.3","laravel\/framework":"5.*"}},"1.0.7":{"name":"cristianvuolo\/uploader","description":"Addon Uploader","keywords":[],"homepage":"","version":"1.0.7","version_normalized":"1.0.7.0","license":["MIT"],"authors":[],"source":{"type":"git","url":"https:\/\/github.com\/cristianvuolo\/uploader.git","reference":"d71a2e83673151f1de632ca656541c063da9b9f6"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/cristianvuolo\/uploader\/zipball\/d71a2e83673151f1de632ca656541c063da9b9f6","reference":"d71a2e83673151f1de632ca656541c063da9b9f6","shasum":""},"type":"library","time":"2018-02-19T12:22:34+00:00","autoload":{"psr-4":{"CristianVuolo\\Uploader\\":"src\/"}},"require":{"php":"\u003E=5.6.4","intervention\/image":"^2.3","laravel\/framework":"5.*"}},"1.0.6":{"name":"cristianvuolo\/uploader","description":"","keywords":[],"homepage":"","version":"1.0.6","version_normalized":"1.0.6.0","license":["MIT"],"authors":[],"source":{"type":"git","url":"https:\/\/github.com\/cristianvuolo\/uploader.git","reference":"b9b4b7049976525018a45ef6b18c1575b56ddd10"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/cristianvuolo\/uploader\/zipball\/b9b4b7049976525018a45ef6b18c1575b56ddd10","reference":"b9b4b7049976525018a45ef6b18c1575b56ddd10","shasum":""},"type":"library","time":"2018-01-25T18:57:17+00:00","autoload":{"psr-4":{"CristianVuolo\\Uploader\\":"src\/"}},"require":{"php":"\u003E=5.6.4","intervention\/image":"^2.3","laravel\/framework":"5.*"}},"1.0.5":{"name":"cristianvuolo\/uploader","description":"","keywords":[],"homepage":"","version":"1.0.5","version_normalized":"1.0.5.0","license":["MIT"],"authors":[],"source":{"type":"git","url":"https:\/\/github.com\/cristianvuolo\/uploader.git","reference":"5c346fc2e8bdae20522cb880b64112e2b380e064"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/cristianvuolo\/uploader\/zipball\/5c346fc2e8bdae20522cb880b64112e2b380e064","reference":"5c346fc2e8bdae20522cb880b64112e2b380e064","shasum":""},"type":"library","time":"2017-08-02T13:23:33+00:00","autoload":{"psr-4":{"CristianVuolo\\Uploader\\":"src\/"}},"require":{"php":"\u003E=5.6.4","intervention\/image":"^2.3","laravel\/framework":"5.*"}},"1.0.4":{"name":"cristianvuolo\/uploader","description":"","keywords":[],"homepage":"","version":"1.0.4","version_normalized":"1.0.4.0","license":["MIT"],"authors":[],"source":{"type":"git","url":"https:\/\/github.com\/cristianvuolo\/uploader.git","reference":"7cbe0c930997743ba4d86147526358784575b79e"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/cristianvuolo\/uploader\/zipball\/7cbe0c930997743ba4d86147526358784575b79e","reference":"7cbe0c930997743ba4d86147526358784575b79e","shasum":""},"type":"library","time":"2017-08-02T13:08:31+00:00","autoload":{"psr-4":{"CristianVuolo\\Uploader\\":"src\/"}},"require":{"php":"\u003E=5.6.4","intervention\/image":"^2.3","laravel\/framework":"5.*"}},"1.0.3":{"name":"cristianvuolo\/uploader","description":"","keywords":[],"homepage":"","version":"1.0.3","version_normalized":"1.0.3.0","license":["MIT"],"authors":[],"source":{"type":"git","url":"https:\/\/github.com\/cristianvuolo\/uploader.git","reference":"77b94732179a4821063fb4dc6a68b5af6e67a94a"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/cristianvuolo\/uploader\/zipball\/77b94732179a4821063fb4dc6a68b5af6e67a94a","reference":"77b94732179a4821063fb4dc6a68b5af6e67a94a","shasum":""},"type":"library","time":"2017-07-11T16:52:54+00:00","autoload":{"psr-4":{"CristianVuolo\\Uploader\\":"src\/"}},"require":{"php":"\u003E=5.6.4","intervention\/image":"^2.3","laravel\/framework":"5.*"}},"1.0.1":{"name":"cristianvuolo\/uploader","description":"","keywords":[],"homepage":"","version":"1.0.1","version_normalized":"1.0.1.0","license":["MIT"],"authors":[],"source":{"type":"git","url":"https:\/\/github.com\/cristianvuolo\/uploader.git","reference":"6834ca1220f9cbc1f0c0a570483dc164ea193788"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/cristianvuolo\/uploader\/zipball\/6834ca1220f9cbc1f0c0a570483dc164ea193788","reference":"6834ca1220f9cbc1f0c0a570483dc164ea193788","shasum":""},"type":"library","time":"2017-02-07T20:10:08+00:00","autoload":{"psr-4":{"CristianVuolo\\Uploader\\":"src\/"}},"require":{"php":"\u003E=5.6.4","intervention\/image":"^2.3","laravel\/framework":"5.*"}},"1.0.0":{"name":"cristianvuolo\/uploader","description":"","keywords":[],"homepage":"","version":"1.0.0","version_normalized":"1.0.0.0","license":["MIT"],"authors":[],"source":{"type":"git","url":"https:\/\/github.com\/cristianvuolo\/uploader.git","reference":"37c03e90f2b52a5681453a7f7b0870c359eec649"},"dist":{"type":"zip","url":"https:\/\/api.github.com\/repos\/cristianvuolo\/uploader\/zipball\/37c03e90f2b52a5681453a7f7b0870c359eec649","reference":"37c03e90f2b52a5681453a7f7b0870c359eec649","shasum":""},"type":"library","time":"2017-02-07T20:01:41+00:00","autoload":{"psr-4":{"CristianVuolo\\Uploader\\":"src\/"}},"require":{"php":"\u003E=5.6.4","intervention\/image":"^2.3","laravel\/framework":"5.*"}}},"type":"library","repository":"https:\/\/github.com\/cristianvuolo\/uploader","github_stars":0,"github_watchers":1,"github_forks":0,"github_open_issues":1,"language":"PHP","dependents":0,"suggesters":0,"downloads":{"total":94,"monthly":5,"daily":0},"favers":0}} \ No newline at end of file diff --git a/test/datasource/__snapshots__/packagist.spec.js.snap b/test/datasource/__snapshots__/packagist.spec.js.snap index c6b97b0caf2f461dee20a245e5d6c8c217675a4f..526e732619d736d0a65a5c99cb809b8fcc0630b1 100644 --- a/test/datasource/__snapshots__/packagist.spec.js.snap +++ b/test/datasource/__snapshots__/packagist.spec.js.snap @@ -1,138 +1,200 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`datasource/packagist getPkgReleases processes real data 1`] = ` +exports[`datasource/packagist getPkgReleases supports includes packages 1`] = ` Object { - "homepage": "https://github.com/cristianvuolo/uploader", - "name": "cristianvuolo/uploader", + "homepage": "http://guzzlephp.org/", + "name": "guzzlehttp/guzzle", "releases": Array [ Object { - "gitRef": "1.0.0", - "releaseTimestamp": "2017-02-07T20:01:41+00:00", - "version": "1.0.0", + "gitRef": "v3.0.0", + "releaseTimestamp": "2012-10-16T04:57:15+00:00", + "version": "3.0.0", }, Object { - "gitRef": "1.0.1", - "releaseTimestamp": "2017-02-07T20:10:08+00:00", - "version": "1.0.1", + "gitRef": "v3.0.1", + "releaseTimestamp": "2012-10-22T20:20:55+00:00", + "version": "3.0.1", }, Object { - "gitRef": "1.0.3", - "releaseTimestamp": "2017-07-11T16:52:54+00:00", - "version": "1.0.3", + "gitRef": "v3.0.2", + "releaseTimestamp": "2012-10-25T04:55:19+00:00", + "version": "3.0.2", }, Object { - "gitRef": "1.0.4", - "releaseTimestamp": "2017-08-02T13:08:31+00:00", - "version": "1.0.4", + "gitRef": "v3.0.3", + "releaseTimestamp": "2012-11-04T20:31:03+00:00", + "version": "3.0.3", }, Object { - "gitRef": "1.0.5", - "releaseTimestamp": "2017-08-02T13:23:33+00:00", - "version": "1.0.5", + "gitRef": "v3.0.4", + "releaseTimestamp": "2012-11-12T00:00:24+00:00", + "version": "3.0.4", }, Object { - "gitRef": "1.0.6", - "releaseTimestamp": "2018-01-25T18:57:17+00:00", - "version": "1.0.6", + "gitRef": "v3.0.5", + "releaseTimestamp": "2012-11-19T00:15:33+00:00", + "version": "3.0.5", }, Object { - "gitRef": "1.0.7", - "releaseTimestamp": "2018-02-19T12:22:34+00:00", - "version": "1.0.7", + "gitRef": "v3.0.6", + "releaseTimestamp": "2012-12-10T05:25:04+00:00", + "version": "3.0.6", }, Object { - "gitRef": "1.0.8", - "releaseTimestamp": "2018-03-14T17:40:06+00:00", - "version": "1.0.8", + "gitRef": "v3.0.7", + "releaseTimestamp": "2012-12-19T23:06:35+00:00", + "version": "3.0.7", }, - ], - "repositoryUrl": "https://github.com/cristianvuolo/uploader", - "versions": Object {}, -} -`; - -exports[`datasource/packagist getPkgReleases processes real versioned data 1`] = ` -Object { - "homepage": "https://github.com/drewm/mailchimp-api", - "name": "drewm/mailchimp-api", - "releases": Array [ Object { - "gitRef": "v1.0", - "releaseTimestamp": "2014-05-30T16:51:39+00:00", - "version": "1.0", + "gitRef": "v3.1.0", + "releaseTimestamp": "2013-01-14T05:09:07+00:00", + "version": "3.1.0", }, Object { - "gitRef": "v1.1", - "releaseTimestamp": "2015-07-07T15:38:25+00:00", - "version": "1.1", + "gitRef": "v3.1.1", + "releaseTimestamp": "2013-01-21T05:46:09+00:00", + "version": "3.1.1", + }, + Object { + "gitRef": "v3.1.2", + "releaseTimestamp": "2013-01-28T00:07:40+00:00", + "version": "3.1.2", + }, + Object { + "gitRef": "v3.2.0", + "releaseTimestamp": "2013-02-15T01:33:10+00:00", + "version": "3.2.0", + }, + Object { + "gitRef": "v3.3.0", + "releaseTimestamp": "2013-03-04T00:41:45+00:00", + "version": "3.3.0", + }, + Object { + "gitRef": "v3.3.1", + "releaseTimestamp": "2013-03-10T23:05:38+00:00", + "version": "3.3.1", + }, + Object { + "gitRef": "v3.4.0", + "releaseTimestamp": "2013-04-12T05:58:15+00:00", + "version": "3.4.0", + }, + Object { + "gitRef": "v3.4.1", + "releaseTimestamp": "2013-04-16T20:56:26+00:00", + "version": "3.4.1", + }, + Object { + "gitRef": "v3.4.2", + "releaseTimestamp": "2013-04-29T23:55:30+00:00", + "version": "3.4.2", }, Object { - "gitRef": "v2.0", - "releaseTimestamp": "2016-01-17T13:08:01+00:00", - "version": "2.0", + "gitRef": "v3.4.3", + "releaseTimestamp": "2013-04-30T20:31:38+00:00", + "version": "3.4.3", }, Object { - "gitRef": "v2.1", - "releaseTimestamp": "2016-01-30T16:12:54+00:00", - "version": "2.1", + "gitRef": "v3.5.0", + "releaseTimestamp": "2013-05-13T20:17:47+00:00", + "version": "3.5.0", }, Object { - "gitRef": "v2.1.1", - "releaseTimestamp": "2016-04-06T08:37:20+00:00", - "version": "2.1.1", + "gitRef": "v3.6.0", + "releaseTimestamp": "2013-05-30T07:01:25+00:00", + "version": "3.6.0", }, Object { - "gitRef": "v2.1.2", - "releaseTimestamp": "2016-04-06T12:41:37+00:00", - "version": "2.1.2", + "gitRef": "v3.7.0", + "releaseTimestamp": "2013-06-11T00:24:07+00:00", + "version": "3.7.0", }, Object { - "gitRef": "v2.1.3", - "releaseTimestamp": "2016-04-12T09:09:47+00:00", - "version": "2.1.3", + "gitRef": "v3.7.1", + "releaseTimestamp": "2013-07-05T20:17:54+00:00", + "version": "3.7.1", }, Object { - "gitRef": "v2.2", - "releaseTimestamp": "2016-04-23T12:43:28+00:00", - "version": "2.2", + "gitRef": "v3.7.2", + "releaseTimestamp": "2013-08-02T18:31:05+00:00", + "version": "3.7.2", }, Object { - "gitRef": "v2.2.1", - "releaseTimestamp": "2016-04-23T18:00:21+00:00", - "version": "2.2.1", + "gitRef": "v3.7.3", + "releaseTimestamp": "2013-09-08T21:09:18+00:00", + "version": "3.7.3", }, Object { - "gitRef": "v2.2.2", - "releaseTimestamp": "2016-07-01T09:58:24+00:00", - "version": "2.2.2", + "gitRef": "v3.7.4", + "releaseTimestamp": "2013-10-02T20:47:00+00:00", + "version": "3.7.4", }, Object { - "gitRef": "v2.2.3", - "releaseTimestamp": "2016-07-01T15:53:33+00:00", - "version": "2.2.3", + "gitRef": "v3.8.0", + "releaseTimestamp": "2013-12-05T23:39:20+00:00", + "version": "3.8.0", }, Object { - "gitRef": "v2.2.4", - "releaseTimestamp": "2016-07-01T15:53:33+00:00", - "version": "2.2.4", + "gitRef": "v3.8.1", + "releaseTimestamp": "2014-01-28T22:29:15+00:00", + "version": "3.8.1", + }, + ], + "repositoryUrl": "https://github.com/guzzle/guzzle", +} +`; + +exports[`datasource/packagist getPkgReleases supports plain packages 1`] = ` +Object { + "homepage": undefined, + "name": "vendor/package-name", + "releases": Array [ + Object { + "gitRef": "0.0.1", + "releaseTimestamp": undefined, + "version": "0.0.1", + }, + Object { + "gitRef": "1.0.0", + "releaseTimestamp": undefined, + "version": "1.0.0", + }, + ], +} +`; + +exports[`datasource/packagist getPkgReleases supports providers packages 1`] = ` +Object { + "homepage": "https://wordpress.org/plugins/1beyt/", + "name": "wpackagist-plugin/1beyt", + "releases": Array [ + Object { + "gitRef": "1.0", + "releaseTimestamp": undefined, + "version": "1.0", + }, + Object { + "gitRef": "1.1", + "releaseTimestamp": undefined, + "version": "1.1", }, Object { - "gitRef": "v2.3", - "releaseTimestamp": "2016-12-21T14:50:24+00:00", - "version": "2.3", + "gitRef": "1.4", + "releaseTimestamp": undefined, + "version": "1.4", }, Object { - "gitRef": "v2.4", - "releaseTimestamp": "2017-02-16T13:24:20+00:00", - "version": "2.4", + "gitRef": "1.5", + "releaseTimestamp": undefined, + "version": "1.5", }, Object { - "gitRef": "v2.5", - "releaseTimestamp": "2018-02-16T15:31:05+00:00", - "version": "2.5", + "gitRef": "1.5.1", + "releaseTimestamp": undefined, + "version": "1.5.1", }, ], - "repositoryUrl": "https://github.com/drewm/mailchimp-api", - "versions": Object {}, + "repositoryUrl": "https://plugins.svn.wordpress.org/1beyt/", } `; diff --git a/test/datasource/packagist.spec.js b/test/datasource/packagist.spec.js index 695b55db7fe8bf329a75dac707ab0eedbfc564b3..ed3f5b22cf7ccc050bdedf3feb0d25ee200ca769 100644 --- a/test/datasource/packagist.spec.js +++ b/test/datasource/packagist.spec.js @@ -1,53 +1,175 @@ const fs = require('fs'); const got = require('got'); const datasource = require('../../lib/datasource'); +const hostRules = require('../../lib/util/host-rules'); jest.mock('got'); +jest.mock('../../lib/util/host-rules'); -const res1 = fs.readFileSync('test/_fixtures/packagist/uploader.json'); -const res2 = fs.readFileSync('test/_fixtures/packagist/mailchimp-api.json'); +const includesJson = fs.readFileSync('test/_fixtures/packagist/includes.json'); +const beytJson = fs.readFileSync('test/_fixtures/packagist/1beyt.json'); describe('datasource/packagist', () => { describe('getPkgReleases', () => { - it('returns null for empty result', async () => { - got.mockReturnValueOnce({}); - expect( - await datasource.getPkgReleases('pkg:packagist/something') - ).toBeNull(); + beforeEach(() => { + jest.resetAllMocks(); + hostRules.find.mockReturnValue({ + username: 'some-username', + password: 'some-password', + }); + return global.renovateCache.rmAll(); + }); + it('supports custom registries', async () => { + const config = { + registryUrls: [ + { + type: 'composer', + url: 'https://composer.renovatebot.com', + }, + { + type: 'unknown', + }, + { + 'packagist.org': false, + }, + ], + }; + const res = await datasource.getPkgReleases( + 'pkg:packagist/something/one', + config + ); + expect(res).toBeNull(); }); - it('returns null for 404', async () => { + it('supports plain packages', async () => { + const packagesOnly = { + packages: { + 'vendor/package-name': { + 'dev-master': {}, + '1.0.x-dev': {}, + '0.0.1': {}, + '1.0.0': {}, + }, + }, + }; + got.mockReturnValueOnce({ + body: packagesOnly, + }); + const res = await datasource.getPkgReleases( + 'pkg:packagist/vendor/package-name', + {} + ); + expect(res).toMatchSnapshot(); + }); + it('handles auth rejections', async () => { got.mockImplementationOnce(() => Promise.reject({ - statusCode: 404, + statusCode: 401, }) ); - expect( - await datasource.getPkgReleases('pkg:packagist/something') - ).toBeNull(); + const res = await datasource.getPkgReleases( + 'pkg:packagist/vendor/package-name', + {} + ); + expect(res).toBeNull(); }); - it('returns null for unknown error', async () => { - got.mockImplementationOnce(() => { - throw new Error(); + it('supports includes packages', async () => { + const packagesJson = { + packages: [], + includes: { + 'include/all$afbf74d51f31c7cbb5ff10304f9290bfb4f4e68b.json': { + sha1: 'afbf74d51f31c7cbb5ff10304f9290bfb4f4e68b', + }, + }, + }; + got.mockReturnValueOnce({ + body: packagesJson, + }); + got.mockReturnValueOnce({ + body: JSON.parse(includesJson), }); - expect( - await datasource.getPkgReleases('pkg:packagist/something') - ).toBeNull(); + const res = await datasource.getPkgReleases( + 'pkg:packagist/guzzlehttp/guzzle', + {} + ); + expect(res).toMatchSnapshot(); + expect(res).not.toBeNull(); }); - it('processes real data', async () => { + it('supports providers packages', async () => { + const packagesJson = { + packages: [], + 'providers-url': '/p/%package%$%hash%.json', + 'provider-includes': { + 'p/providers-2018-09$%hash%.json': { + sha256: + '14346045d7a7261cb3a12a6b7a1a7c4151982530347b115e5e277d879cad1942', + }, + }, + }; + got.mockReturnValueOnce({ + body: packagesJson, + }); + const fileJson = { + providers: { + 'wpackagist-plugin/1337-rss-feed-made-for-sharing': { + sha256: + 'e9b6c98c63f99e59440863a044cc80dd9cddbf5c426b05003dba98983b5757de', + }, + 'wpackagist-plugin/1beyt': { + sha256: + 'b574a802b5bf20a58c0f027e73aea2a75d23a6f654afc298a8dc467331be316a', + }, + }, + }; got.mockReturnValueOnce({ - body: JSON.parse(res1), + body: fileJson, }); - expect( - await datasource.getPkgReleases('pkg:packagist/cristianvuolo/uploader') - ).toMatchSnapshot(); + got.mockReturnValueOnce({ + body: JSON.parse(beytJson), + }); + const res = await datasource.getPkgReleases( + 'pkg:packagist/wpackagist-plugin/1beyt', + {} + ); + expect(res).toMatchSnapshot(); + expect(res).not.toBeNull(); }); - it('processes real versioned data', async () => { + it('handles providers packages miss', async () => { + const packagesJson = { + packages: [], + 'providers-url': '/p/%package%$%hash%.json', + 'provider-includes': { + 'p/providers-2018-09$%hash%.json': { + sha256: + '14346045d7a7261cb3a12a6b7a1a7c4151982530347b115e5e277d879cad1942', + }, + }, + }; got.mockReturnValueOnce({ - body: JSON.parse(res2), + body: packagesJson, }); - expect( - await datasource.getPkgReleases('pkg:packagist/drewm/mailchimp-api') - ).toMatchSnapshot(); + const fileJson = { + providers: { + 'wpackagist-plugin/1337-rss-feed-made-for-sharing': { + sha256: + 'e9b6c98c63f99e59440863a044cc80dd9cddbf5c426b05003dba98983b5757de', + }, + 'wpackagist-plugin/1beyt': { + sha256: + 'b574a802b5bf20a58c0f027e73aea2a75d23a6f654afc298a8dc467331be316a', + }, + }, + }; + got.mockReturnValueOnce({ + body: fileJson, + }); + got.mockReturnValueOnce({ + body: JSON.parse(beytJson), + }); + const res = await datasource.getPkgReleases( + 'pkg:packagist/some/other', + {} + ); + expect(res).toBeNull(); }); }); }); diff --git a/test/manager/composer/artifacts.spec.js b/test/manager/composer/artifacts.spec.js index 19ebd45ac99b255bb12eb3aa47005df78f24703c..2080fdf5922d5e33d7dae4486df85d1e4b4ec5e8 100644 --- a/test/manager/composer/artifacts.spec.js +++ b/test/manager/composer/artifacts.spec.js @@ -1,9 +1,11 @@ jest.mock('fs-extra'); jest.mock('child-process-promise'); +jest.mock('../../../lib/util/host-rules'); const fs = require('fs-extra'); const { exec } = require('child-process-promise'); const composer = require('../../../lib/manager/composer/artifacts'); +const hostRules = require('../../../lib/util/host-rules'); const config = { localDir: '/tmp/github/some/repo', @@ -29,6 +31,29 @@ describe('.getArtifacts()', () => { await composer.getArtifacts('composer.json', [], '{}', config) ).toBeNull(); }); + it('uses hostRules to write auth.json', async () => { + platform.getFile.mockReturnValueOnce('Current composer.lock'); + exec.mockReturnValueOnce({ + stdout: '', + stderror: '', + }); + fs.readFile = jest.fn(() => 'Current composer.lock'); + const authConfig = { + localDir: '/tmp/github/some/repo', + registryUrls: [ + { + url: 'https://packagist.renovatebot.com', + }, + ], + }; + hostRules.find.mockReturnValue({ + username: 'some-username', + password: 'some-password', + }); + expect( + await composer.getArtifacts('composer.json', [], '{}', authConfig) + ).toBeNull(); + }); it('returns updated composer.lock', async () => { platform.getFile.mockReturnValueOnce('Current composer.lock'); exec.mockReturnValueOnce({ diff --git a/test/workers/repository/process/lookup/index.spec.js b/test/workers/repository/process/lookup/index.spec.js index 6e78b359aaf25e40908c84f77c2eb63f7ae6a682..0ba2db6684e861f2a45be863379d13f7675f83d5 100644 --- a/test/workers/repository/process/lookup/index.spec.js +++ b/test/workers/repository/process/lookup/index.spec.js @@ -941,7 +941,7 @@ describe('manager/npm/lookup', () => { config.packageFile = 'composer.json'; config.currentValue = '1.0.0'; nock('https://packagist.org') - .get('/packages/foo/bar.json') + .get('/packages.json') .reply(404); expect((await lookup.lookupUpdates(config)).updates).toMatchSnapshot(); }); diff --git a/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap b/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap index 629cef0242ff9c5de21352ee17369e57606c3b8d..c6fa3104854d1950675bab3f1f14ff540d46d7c7 100644 --- a/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap +++ b/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap @@ -68,6 +68,7 @@ Array [ "rebaseLabel": "rebase", "rebaseStalePrs": null, "recreateClosed": false, + "registryUrls": null, "requiredStatusChecks": Array [], "reviewers": Array [], "rollbackPrs": true, @@ -159,6 +160,7 @@ Array [ "rebaseLabel": "rebase", "rebaseStalePrs": null, "recreateClosed": false, + "registryUrls": null, "requiredStatusChecks": Array [], "reviewers": Array [], "rollbackPrs": true, @@ -247,6 +249,7 @@ Array [ "rebaseLabel": "rebase", "rebaseStalePrs": true, "recreateClosed": true, + "registryUrls": null, "requiredStatusChecks": Array [], "reviewers": Array [], "rollbackPrs": true, @@ -341,6 +344,7 @@ Array [ "rebaseLabel": "rebase", "rebaseStalePrs": null, "recreateClosed": false, + "registryUrls": null, "requiredStatusChecks": Array [], "reviewers": Array [], "rollbackPrs": true, @@ -429,6 +433,7 @@ Array [ "rebaseLabel": "rebase", "rebaseStalePrs": true, "recreateClosed": true, + "registryUrls": null, "requiredStatusChecks": Array [], "reviewers": Array [], "rollbackPrs": true, @@ -523,6 +528,7 @@ Array [ "rebaseLabel": "rebase", "rebaseStalePrs": null, "recreateClosed": false, + "registryUrls": null, "requiredStatusChecks": Array [], "reviewers": Array [], "rollbackPrs": true, @@ -614,6 +620,7 @@ Array [ "rebaseLabel": "rebase", "rebaseStalePrs": null, "recreateClosed": false, + "registryUrls": null, "requiredStatusChecks": Array [], "reviewers": Array [], "rollbackPrs": false, @@ -705,6 +712,7 @@ Array [ "rebaseLabel": "rebase", "rebaseStalePrs": null, "recreateClosed": false, + "registryUrls": null, "requiredStatusChecks": Array [], "reviewers": Array [], "rollbackPrs": false,