dependabot-composer 0.112.6 → 0.112.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 29f8a35782f66dd5206d0492b1a0f8ad3034f2bd9c8f09e847fc43239ed406a7
4
- data.tar.gz: eff6e2f0bf9546ab25ff6110c6fda08139fb162d0901f742aea26bb28155186b
3
+ metadata.gz: 9d2ce55c91b22fc62fa96505ae1e60d4b8beb59ed865c53d3284865b50bb2e4d
4
+ data.tar.gz: f4d65654f703d1fa626c829965259409b7b93f17868d028c07544f79ec52ebe2
5
5
  SHA512:
6
- metadata.gz: a8acaa9c400c643346b1ef8912e2365fb48ebb154c78e29d98d1df611a7ad05c3045e2124e5e2cc4a4c9ef87a43c377ef19e51a8b124fb9a7ca219691e30f8ad
7
- data.tar.gz: 63ebbf013a5384c9431744e4250e03566e7221bbf85883b4f3c688068279c52a7f4aeaef07475cf6bcca30ce7c58d265491c40126fd1e340140fdb8c56a41b40
6
+ metadata.gz: a9bd15ff5149cad2be1e1bbbb61c08c1675f4d7741bada18cad2a3d6314044b4154cfe05f49e61ac5f56de3b9379d4973ed414401827f0f001333fe4fe824264
7
+ data.tar.gz: 9798ec06cbcf1b3a274a02eab2c1f02afbc7693a69af811d722aba8d800c2cc10eaefc8dd6cc3159a79b38079c2e75ee483ff6ad67e824eb9af71f73513490ec
@@ -14,3 +14,4 @@ cd "$helpers_dir"
14
14
  composer validate --no-check-publish
15
15
  composer install
16
16
  composer run lint -- --dry-run
17
+ composer run stan
@@ -5,7 +5,8 @@
5
5
  "composer/composer": "^1.8"
6
6
  },
7
7
  "require-dev": {
8
- "friendsofphp/php-cs-fixer": "^2.9"
8
+ "friendsofphp/php-cs-fixer": "^2.9",
9
+ "phpstan/phpstan": "~0.11.15"
9
10
  },
10
11
  "autoload": {
11
12
  "psr-4": {
@@ -15,7 +16,8 @@
15
16
  "scripts": {
16
17
  "lint": [
17
18
  "php-cs-fixer fix --diff --verbose"
18
- ]
19
+ ],
20
+ "stan": "phpstan analyse"
19
21
  },
20
22
  "config": {
21
23
  "sort-packages": true
@@ -4,7 +4,7 @@
4
4
  "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5
5
  "This file is @generated automatically"
6
6
  ],
7
- "content-hash": "9334db84b58cb747a3d462d165a75240",
7
+ "content-hash": "248b713ebbb38284784387540a494556",
8
8
  "packages": [
9
9
  {
10
10
  "name": "composer/ca-bundle",
@@ -1231,6 +1231,681 @@
1231
1231
  "description": "A tool to automatically fix PHP code style",
1232
1232
  "time": "2019-06-01T10:32:12+00:00"
1233
1233
  },
1234
+ {
1235
+ "name": "jean85/pretty-package-versions",
1236
+ "version": "1.2",
1237
+ "source": {
1238
+ "type": "git",
1239
+ "url": "https://github.com/Jean85/pretty-package-versions.git",
1240
+ "reference": "75c7effcf3f77501d0e0caa75111aff4daa0dd48"
1241
+ },
1242
+ "dist": {
1243
+ "type": "zip",
1244
+ "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/75c7effcf3f77501d0e0caa75111aff4daa0dd48",
1245
+ "reference": "75c7effcf3f77501d0e0caa75111aff4daa0dd48",
1246
+ "shasum": ""
1247
+ },
1248
+ "require": {
1249
+ "ocramius/package-versions": "^1.2.0",
1250
+ "php": "^7.0"
1251
+ },
1252
+ "require-dev": {
1253
+ "phpunit/phpunit": "^6.0"
1254
+ },
1255
+ "type": "library",
1256
+ "extra": {
1257
+ "branch-alias": {
1258
+ "dev-master": "1.x-dev"
1259
+ }
1260
+ },
1261
+ "autoload": {
1262
+ "psr-4": {
1263
+ "Jean85\\": "src/"
1264
+ }
1265
+ },
1266
+ "notification-url": "https://packagist.org/downloads/",
1267
+ "license": [
1268
+ "MIT"
1269
+ ],
1270
+ "authors": [
1271
+ {
1272
+ "name": "Alessandro Lai",
1273
+ "email": "alessandro.lai85@gmail.com"
1274
+ }
1275
+ ],
1276
+ "description": "A wrapper for ocramius/package-versions to get pretty versions strings",
1277
+ "keywords": [
1278
+ "composer",
1279
+ "package",
1280
+ "release",
1281
+ "versions"
1282
+ ],
1283
+ "time": "2018-06-13T13:22:40+00:00"
1284
+ },
1285
+ {
1286
+ "name": "nette/bootstrap",
1287
+ "version": "v3.0.0",
1288
+ "source": {
1289
+ "type": "git",
1290
+ "url": "https://github.com/nette/bootstrap.git",
1291
+ "reference": "e1075af05c211915e03e0c86542f3ba5433df4a3"
1292
+ },
1293
+ "dist": {
1294
+ "type": "zip",
1295
+ "url": "https://api.github.com/repos/nette/bootstrap/zipball/e1075af05c211915e03e0c86542f3ba5433df4a3",
1296
+ "reference": "e1075af05c211915e03e0c86542f3ba5433df4a3",
1297
+ "shasum": ""
1298
+ },
1299
+ "require": {
1300
+ "nette/di": "^3.0",
1301
+ "nette/utils": "^3.0",
1302
+ "php": ">=7.1"
1303
+ },
1304
+ "require-dev": {
1305
+ "latte/latte": "^2.2",
1306
+ "nette/application": "^3.0",
1307
+ "nette/caching": "^3.0",
1308
+ "nette/database": "^3.0",
1309
+ "nette/forms": "^3.0",
1310
+ "nette/http": "^3.0",
1311
+ "nette/mail": "^3.0",
1312
+ "nette/robot-loader": "^3.0",
1313
+ "nette/safe-stream": "^2.2",
1314
+ "nette/security": "^3.0",
1315
+ "nette/tester": "^2.0",
1316
+ "tracy/tracy": "^2.6"
1317
+ },
1318
+ "suggest": {
1319
+ "nette/robot-loader": "to use Configurator::createRobotLoader()",
1320
+ "tracy/tracy": "to use Configurator::enableTracy()"
1321
+ },
1322
+ "type": "library",
1323
+ "extra": {
1324
+ "branch-alias": {
1325
+ "dev-master": "3.0-dev"
1326
+ }
1327
+ },
1328
+ "autoload": {
1329
+ "classmap": [
1330
+ "src/"
1331
+ ]
1332
+ },
1333
+ "notification-url": "https://packagist.org/downloads/",
1334
+ "license": [
1335
+ "BSD-3-Clause",
1336
+ "GPL-2.0",
1337
+ "GPL-3.0"
1338
+ ],
1339
+ "authors": [
1340
+ {
1341
+ "name": "David Grudl",
1342
+ "homepage": "https://davidgrudl.com"
1343
+ },
1344
+ {
1345
+ "name": "Nette Community",
1346
+ "homepage": "https://nette.org/contributors"
1347
+ }
1348
+ ],
1349
+ "description": "🅱 Nette Bootstrap: the simple way to configure and bootstrap your Nette application.",
1350
+ "homepage": "https://nette.org",
1351
+ "keywords": [
1352
+ "bootstrapping",
1353
+ "configurator",
1354
+ "nette"
1355
+ ],
1356
+ "time": "2019-03-26T12:59:07+00:00"
1357
+ },
1358
+ {
1359
+ "name": "nette/di",
1360
+ "version": "v3.0.1",
1361
+ "source": {
1362
+ "type": "git",
1363
+ "url": "https://github.com/nette/di.git",
1364
+ "reference": "4aff517a1c6bb5c36fa09733d4cea089f529de6d"
1365
+ },
1366
+ "dist": {
1367
+ "type": "zip",
1368
+ "url": "https://api.github.com/repos/nette/di/zipball/4aff517a1c6bb5c36fa09733d4cea089f529de6d",
1369
+ "reference": "4aff517a1c6bb5c36fa09733d4cea089f529de6d",
1370
+ "shasum": ""
1371
+ },
1372
+ "require": {
1373
+ "ext-tokenizer": "*",
1374
+ "nette/neon": "^3.0",
1375
+ "nette/php-generator": "^3.2.2",
1376
+ "nette/robot-loader": "^3.2",
1377
+ "nette/schema": "^1.0",
1378
+ "nette/utils": "^3.0",
1379
+ "php": ">=7.1"
1380
+ },
1381
+ "conflict": {
1382
+ "nette/bootstrap": "<3.0"
1383
+ },
1384
+ "require-dev": {
1385
+ "nette/tester": "^2.2",
1386
+ "tracy/tracy": "^2.3"
1387
+ },
1388
+ "type": "library",
1389
+ "extra": {
1390
+ "branch-alias": {
1391
+ "dev-master": "3.0-dev"
1392
+ }
1393
+ },
1394
+ "autoload": {
1395
+ "classmap": [
1396
+ "src/"
1397
+ ],
1398
+ "files": [
1399
+ "src/compatibility.php"
1400
+ ]
1401
+ },
1402
+ "notification-url": "https://packagist.org/downloads/",
1403
+ "license": [
1404
+ "BSD-3-Clause",
1405
+ "GPL-2.0",
1406
+ "GPL-3.0"
1407
+ ],
1408
+ "authors": [
1409
+ {
1410
+ "name": "David Grudl",
1411
+ "homepage": "https://davidgrudl.com"
1412
+ },
1413
+ {
1414
+ "name": "Nette Community",
1415
+ "homepage": "https://nette.org/contributors"
1416
+ }
1417
+ ],
1418
+ "description": "💎 Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PHP 7.1 features.",
1419
+ "homepage": "https://nette.org",
1420
+ "keywords": [
1421
+ "compiled",
1422
+ "di",
1423
+ "dic",
1424
+ "factory",
1425
+ "ioc",
1426
+ "nette",
1427
+ "static"
1428
+ ],
1429
+ "time": "2019-08-07T12:11:33+00:00"
1430
+ },
1431
+ {
1432
+ "name": "nette/finder",
1433
+ "version": "v2.5.0",
1434
+ "source": {
1435
+ "type": "git",
1436
+ "url": "https://github.com/nette/finder.git",
1437
+ "reference": "6be1b83ea68ac558aff189d640abe242e0306fe2"
1438
+ },
1439
+ "dist": {
1440
+ "type": "zip",
1441
+ "url": "https://api.github.com/repos/nette/finder/zipball/6be1b83ea68ac558aff189d640abe242e0306fe2",
1442
+ "reference": "6be1b83ea68ac558aff189d640abe242e0306fe2",
1443
+ "shasum": ""
1444
+ },
1445
+ "require": {
1446
+ "nette/utils": "^2.4 || ~3.0.0",
1447
+ "php": ">=7.1"
1448
+ },
1449
+ "conflict": {
1450
+ "nette/nette": "<2.2"
1451
+ },
1452
+ "require-dev": {
1453
+ "nette/tester": "^2.0",
1454
+ "tracy/tracy": "^2.3"
1455
+ },
1456
+ "type": "library",
1457
+ "extra": {
1458
+ "branch-alias": {
1459
+ "dev-master": "2.5-dev"
1460
+ }
1461
+ },
1462
+ "autoload": {
1463
+ "classmap": [
1464
+ "src/"
1465
+ ]
1466
+ },
1467
+ "notification-url": "https://packagist.org/downloads/",
1468
+ "license": [
1469
+ "BSD-3-Clause",
1470
+ "GPL-2.0",
1471
+ "GPL-3.0"
1472
+ ],
1473
+ "authors": [
1474
+ {
1475
+ "name": "David Grudl",
1476
+ "homepage": "https://davidgrudl.com"
1477
+ },
1478
+ {
1479
+ "name": "Nette Community",
1480
+ "homepage": "https://nette.org/contributors"
1481
+ }
1482
+ ],
1483
+ "description": "? Nette Finder: find files and directories with an intuitive API.",
1484
+ "homepage": "https://nette.org",
1485
+ "keywords": [
1486
+ "filesystem",
1487
+ "glob",
1488
+ "iterator",
1489
+ "nette"
1490
+ ],
1491
+ "time": "2019-02-28T18:13:25+00:00"
1492
+ },
1493
+ {
1494
+ "name": "nette/neon",
1495
+ "version": "v3.0.0",
1496
+ "source": {
1497
+ "type": "git",
1498
+ "url": "https://github.com/nette/neon.git",
1499
+ "reference": "cbff32059cbdd8720deccf9e9eace6ee516f02eb"
1500
+ },
1501
+ "dist": {
1502
+ "type": "zip",
1503
+ "url": "https://api.github.com/repos/nette/neon/zipball/cbff32059cbdd8720deccf9e9eace6ee516f02eb",
1504
+ "reference": "cbff32059cbdd8720deccf9e9eace6ee516f02eb",
1505
+ "shasum": ""
1506
+ },
1507
+ "require": {
1508
+ "ext-iconv": "*",
1509
+ "ext-json": "*",
1510
+ "php": ">=7.0"
1511
+ },
1512
+ "require-dev": {
1513
+ "nette/tester": "^2.0",
1514
+ "tracy/tracy": "^2.3"
1515
+ },
1516
+ "type": "library",
1517
+ "extra": {
1518
+ "branch-alias": {
1519
+ "dev-master": "3.0-dev"
1520
+ }
1521
+ },
1522
+ "autoload": {
1523
+ "classmap": [
1524
+ "src/"
1525
+ ]
1526
+ },
1527
+ "notification-url": "https://packagist.org/downloads/",
1528
+ "license": [
1529
+ "BSD-3-Clause",
1530
+ "GPL-2.0",
1531
+ "GPL-3.0"
1532
+ ],
1533
+ "authors": [
1534
+ {
1535
+ "name": "David Grudl",
1536
+ "homepage": "https://davidgrudl.com"
1537
+ },
1538
+ {
1539
+ "name": "Nette Community",
1540
+ "homepage": "https://nette.org/contributors"
1541
+ }
1542
+ ],
1543
+ "description": "? Nette NEON: encodes and decodes NEON file format.",
1544
+ "homepage": "http://ne-on.org",
1545
+ "keywords": [
1546
+ "export",
1547
+ "import",
1548
+ "neon",
1549
+ "nette",
1550
+ "yaml"
1551
+ ],
1552
+ "time": "2019-02-05T21:30:40+00:00"
1553
+ },
1554
+ {
1555
+ "name": "nette/php-generator",
1556
+ "version": "v3.2.3",
1557
+ "source": {
1558
+ "type": "git",
1559
+ "url": "https://github.com/nette/php-generator.git",
1560
+ "reference": "aea6e81437bb238e5f0e5b5ce06337433908e63b"
1561
+ },
1562
+ "dist": {
1563
+ "type": "zip",
1564
+ "url": "https://api.github.com/repos/nette/php-generator/zipball/aea6e81437bb238e5f0e5b5ce06337433908e63b",
1565
+ "reference": "aea6e81437bb238e5f0e5b5ce06337433908e63b",
1566
+ "shasum": ""
1567
+ },
1568
+ "require": {
1569
+ "nette/utils": "^2.4.2 || ~3.0.0",
1570
+ "php": ">=7.1"
1571
+ },
1572
+ "require-dev": {
1573
+ "nette/tester": "^2.0",
1574
+ "tracy/tracy": "^2.3"
1575
+ },
1576
+ "type": "library",
1577
+ "extra": {
1578
+ "branch-alias": {
1579
+ "dev-master": "3.2-dev"
1580
+ }
1581
+ },
1582
+ "autoload": {
1583
+ "classmap": [
1584
+ "src/"
1585
+ ]
1586
+ },
1587
+ "notification-url": "https://packagist.org/downloads/",
1588
+ "license": [
1589
+ "BSD-3-Clause",
1590
+ "GPL-2.0",
1591
+ "GPL-3.0"
1592
+ ],
1593
+ "authors": [
1594
+ {
1595
+ "name": "David Grudl",
1596
+ "homepage": "https://davidgrudl.com"
1597
+ },
1598
+ {
1599
+ "name": "Nette Community",
1600
+ "homepage": "https://nette.org/contributors"
1601
+ }
1602
+ ],
1603
+ "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.3 features.",
1604
+ "homepage": "https://nette.org",
1605
+ "keywords": [
1606
+ "code",
1607
+ "nette",
1608
+ "php",
1609
+ "scaffolding"
1610
+ ],
1611
+ "time": "2019-07-05T13:01:56+00:00"
1612
+ },
1613
+ {
1614
+ "name": "nette/robot-loader",
1615
+ "version": "v3.2.0",
1616
+ "source": {
1617
+ "type": "git",
1618
+ "url": "https://github.com/nette/robot-loader.git",
1619
+ "reference": "0712a0e39ae7956d6a94c0ab6ad41aa842544b5c"
1620
+ },
1621
+ "dist": {
1622
+ "type": "zip",
1623
+ "url": "https://api.github.com/repos/nette/robot-loader/zipball/0712a0e39ae7956d6a94c0ab6ad41aa842544b5c",
1624
+ "reference": "0712a0e39ae7956d6a94c0ab6ad41aa842544b5c",
1625
+ "shasum": ""
1626
+ },
1627
+ "require": {
1628
+ "ext-tokenizer": "*",
1629
+ "nette/finder": "^2.5",
1630
+ "nette/utils": "^3.0",
1631
+ "php": ">=7.1"
1632
+ },
1633
+ "require-dev": {
1634
+ "nette/tester": "^2.0",
1635
+ "tracy/tracy": "^2.3"
1636
+ },
1637
+ "type": "library",
1638
+ "extra": {
1639
+ "branch-alias": {
1640
+ "dev-master": "3.2-dev"
1641
+ }
1642
+ },
1643
+ "autoload": {
1644
+ "classmap": [
1645
+ "src/"
1646
+ ]
1647
+ },
1648
+ "notification-url": "https://packagist.org/downloads/",
1649
+ "license": [
1650
+ "BSD-3-Clause",
1651
+ "GPL-2.0",
1652
+ "GPL-3.0"
1653
+ ],
1654
+ "authors": [
1655
+ {
1656
+ "name": "David Grudl",
1657
+ "homepage": "https://davidgrudl.com"
1658
+ },
1659
+ {
1660
+ "name": "Nette Community",
1661
+ "homepage": "https://nette.org/contributors"
1662
+ }
1663
+ ],
1664
+ "description": "? Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.",
1665
+ "homepage": "https://nette.org",
1666
+ "keywords": [
1667
+ "autoload",
1668
+ "class",
1669
+ "interface",
1670
+ "nette",
1671
+ "trait"
1672
+ ],
1673
+ "time": "2019-03-08T21:57:24+00:00"
1674
+ },
1675
+ {
1676
+ "name": "nette/schema",
1677
+ "version": "v1.0.0",
1678
+ "source": {
1679
+ "type": "git",
1680
+ "url": "https://github.com/nette/schema.git",
1681
+ "reference": "6241d8d4da39e825dd6cb5bfbe4242912f4d7e4d"
1682
+ },
1683
+ "dist": {
1684
+ "type": "zip",
1685
+ "url": "https://api.github.com/repos/nette/schema/zipball/6241d8d4da39e825dd6cb5bfbe4242912f4d7e4d",
1686
+ "reference": "6241d8d4da39e825dd6cb5bfbe4242912f4d7e4d",
1687
+ "shasum": ""
1688
+ },
1689
+ "require": {
1690
+ "nette/utils": "^3.0.1",
1691
+ "php": ">=7.1"
1692
+ },
1693
+ "require-dev": {
1694
+ "nette/tester": "^2.2",
1695
+ "tracy/tracy": "^2.3"
1696
+ },
1697
+ "type": "library",
1698
+ "extra": {
1699
+ "branch-alias": {
1700
+ "dev-master": "1.0-dev"
1701
+ }
1702
+ },
1703
+ "autoload": {
1704
+ "classmap": [
1705
+ "src/"
1706
+ ]
1707
+ },
1708
+ "notification-url": "https://packagist.org/downloads/",
1709
+ "license": [
1710
+ "BSD-3-Clause",
1711
+ "GPL-2.0",
1712
+ "GPL-3.0"
1713
+ ],
1714
+ "authors": [
1715
+ {
1716
+ "name": "David Grudl",
1717
+ "homepage": "https://davidgrudl.com"
1718
+ },
1719
+ {
1720
+ "name": "Nette Community",
1721
+ "homepage": "https://nette.org/contributors"
1722
+ }
1723
+ ],
1724
+ "description": "📐 Nette Schema: validating data structures against a given Schema.",
1725
+ "homepage": "https://nette.org",
1726
+ "keywords": [
1727
+ "config",
1728
+ "nette"
1729
+ ],
1730
+ "time": "2019-04-03T15:53:25+00:00"
1731
+ },
1732
+ {
1733
+ "name": "nette/utils",
1734
+ "version": "v3.0.1",
1735
+ "source": {
1736
+ "type": "git",
1737
+ "url": "https://github.com/nette/utils.git",
1738
+ "reference": "bd961f49b211997202bda1d0fbc410905be370d4"
1739
+ },
1740
+ "dist": {
1741
+ "type": "zip",
1742
+ "url": "https://api.github.com/repos/nette/utils/zipball/bd961f49b211997202bda1d0fbc410905be370d4",
1743
+ "reference": "bd961f49b211997202bda1d0fbc410905be370d4",
1744
+ "shasum": ""
1745
+ },
1746
+ "require": {
1747
+ "php": ">=7.1"
1748
+ },
1749
+ "require-dev": {
1750
+ "nette/tester": "~2.0",
1751
+ "tracy/tracy": "^2.3"
1752
+ },
1753
+ "suggest": {
1754
+ "ext-gd": "to use Image",
1755
+ "ext-iconv": "to use Strings::webalize() and toAscii()",
1756
+ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
1757
+ "ext-json": "to use Nette\\Utils\\Json",
1758
+ "ext-mbstring": "to use Strings::lower() etc...",
1759
+ "ext-xml": "to use Strings::length() etc. when mbstring is not available"
1760
+ },
1761
+ "type": "library",
1762
+ "extra": {
1763
+ "branch-alias": {
1764
+ "dev-master": "3.0-dev"
1765
+ }
1766
+ },
1767
+ "autoload": {
1768
+ "classmap": [
1769
+ "src/"
1770
+ ]
1771
+ },
1772
+ "notification-url": "https://packagist.org/downloads/",
1773
+ "license": [
1774
+ "BSD-3-Clause",
1775
+ "GPL-2.0",
1776
+ "GPL-3.0"
1777
+ ],
1778
+ "authors": [
1779
+ {
1780
+ "name": "David Grudl",
1781
+ "homepage": "https://davidgrudl.com"
1782
+ },
1783
+ {
1784
+ "name": "Nette Community",
1785
+ "homepage": "https://nette.org/contributors"
1786
+ }
1787
+ ],
1788
+ "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
1789
+ "homepage": "https://nette.org",
1790
+ "keywords": [
1791
+ "array",
1792
+ "core",
1793
+ "datetime",
1794
+ "images",
1795
+ "json",
1796
+ "nette",
1797
+ "paginator",
1798
+ "password",
1799
+ "slugify",
1800
+ "string",
1801
+ "unicode",
1802
+ "utf-8",
1803
+ "utility",
1804
+ "validation"
1805
+ ],
1806
+ "time": "2019-03-22T01:00:30+00:00"
1807
+ },
1808
+ {
1809
+ "name": "nikic/php-parser",
1810
+ "version": "v4.2.3",
1811
+ "source": {
1812
+ "type": "git",
1813
+ "url": "https://github.com/nikic/PHP-Parser.git",
1814
+ "reference": "e612609022e935f3d0337c1295176505b41188c8"
1815
+ },
1816
+ "dist": {
1817
+ "type": "zip",
1818
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/e612609022e935f3d0337c1295176505b41188c8",
1819
+ "reference": "e612609022e935f3d0337c1295176505b41188c8",
1820
+ "shasum": ""
1821
+ },
1822
+ "require": {
1823
+ "ext-tokenizer": "*",
1824
+ "php": ">=7.0"
1825
+ },
1826
+ "require-dev": {
1827
+ "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0"
1828
+ },
1829
+ "bin": [
1830
+ "bin/php-parse"
1831
+ ],
1832
+ "type": "library",
1833
+ "extra": {
1834
+ "branch-alias": {
1835
+ "dev-master": "4.2-dev"
1836
+ }
1837
+ },
1838
+ "autoload": {
1839
+ "psr-4": {
1840
+ "PhpParser\\": "lib/PhpParser"
1841
+ }
1842
+ },
1843
+ "notification-url": "https://packagist.org/downloads/",
1844
+ "license": [
1845
+ "BSD-3-Clause"
1846
+ ],
1847
+ "authors": [
1848
+ {
1849
+ "name": "Nikita Popov"
1850
+ }
1851
+ ],
1852
+ "description": "A PHP parser written in PHP",
1853
+ "keywords": [
1854
+ "parser",
1855
+ "php"
1856
+ ],
1857
+ "time": "2019-08-12T20:17:41+00:00"
1858
+ },
1859
+ {
1860
+ "name": "ocramius/package-versions",
1861
+ "version": "1.4.0",
1862
+ "source": {
1863
+ "type": "git",
1864
+ "url": "https://github.com/Ocramius/PackageVersions.git",
1865
+ "reference": "a4d4b60d0e60da2487bd21a2c6ac089f85570dbb"
1866
+ },
1867
+ "dist": {
1868
+ "type": "zip",
1869
+ "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/a4d4b60d0e60da2487bd21a2c6ac089f85570dbb",
1870
+ "reference": "a4d4b60d0e60da2487bd21a2c6ac089f85570dbb",
1871
+ "shasum": ""
1872
+ },
1873
+ "require": {
1874
+ "composer-plugin-api": "^1.0.0",
1875
+ "php": "^7.1.0"
1876
+ },
1877
+ "require-dev": {
1878
+ "composer/composer": "^1.6.3",
1879
+ "doctrine/coding-standard": "^5.0.1",
1880
+ "ext-zip": "*",
1881
+ "infection/infection": "^0.7.1",
1882
+ "phpunit/phpunit": "^7.0.0"
1883
+ },
1884
+ "type": "composer-plugin",
1885
+ "extra": {
1886
+ "class": "PackageVersions\\Installer",
1887
+ "branch-alias": {
1888
+ "dev-master": "2.0.x-dev"
1889
+ }
1890
+ },
1891
+ "autoload": {
1892
+ "psr-4": {
1893
+ "PackageVersions\\": "src/PackageVersions"
1894
+ }
1895
+ },
1896
+ "notification-url": "https://packagist.org/downloads/",
1897
+ "license": [
1898
+ "MIT"
1899
+ ],
1900
+ "authors": [
1901
+ {
1902
+ "name": "Marco Pivetta",
1903
+ "email": "ocramius@gmail.com"
1904
+ }
1905
+ ],
1906
+ "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
1907
+ "time": "2019-02-21T12:16:21+00:00"
1908
+ },
1234
1909
  {
1235
1910
  "name": "paragonie/random_compat",
1236
1911
  "version": "v9.99.99",
@@ -1327,6 +2002,128 @@
1327
2002
  ],
1328
2003
  "time": "2018-02-15T16:58:55+00:00"
1329
2004
  },
2005
+ {
2006
+ "name": "phpstan/phpdoc-parser",
2007
+ "version": "0.3.5",
2008
+ "source": {
2009
+ "type": "git",
2010
+ "url": "https://github.com/phpstan/phpdoc-parser.git",
2011
+ "reference": "8c4ef2aefd9788238897b678a985e1d5c8df6db4"
2012
+ },
2013
+ "dist": {
2014
+ "type": "zip",
2015
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/8c4ef2aefd9788238897b678a985e1d5c8df6db4",
2016
+ "reference": "8c4ef2aefd9788238897b678a985e1d5c8df6db4",
2017
+ "shasum": ""
2018
+ },
2019
+ "require": {
2020
+ "php": "~7.1"
2021
+ },
2022
+ "require-dev": {
2023
+ "consistence/coding-standard": "^3.5",
2024
+ "jakub-onderka/php-parallel-lint": "^0.9.2",
2025
+ "phing/phing": "^2.16.0",
2026
+ "phpstan/phpstan": "^0.10",
2027
+ "phpunit/phpunit": "^6.3",
2028
+ "slevomat/coding-standard": "^4.7.2",
2029
+ "squizlabs/php_codesniffer": "^3.3.2",
2030
+ "symfony/process": "^3.4 || ^4.0"
2031
+ },
2032
+ "type": "library",
2033
+ "extra": {
2034
+ "branch-alias": {
2035
+ "dev-master": "0.3-dev"
2036
+ }
2037
+ },
2038
+ "autoload": {
2039
+ "psr-4": {
2040
+ "PHPStan\\PhpDocParser\\": [
2041
+ "src/"
2042
+ ]
2043
+ }
2044
+ },
2045
+ "notification-url": "https://packagist.org/downloads/",
2046
+ "license": [
2047
+ "MIT"
2048
+ ],
2049
+ "description": "PHPDoc parser with support for nullable, intersection and generic types",
2050
+ "time": "2019-06-07T19:13:52+00:00"
2051
+ },
2052
+ {
2053
+ "name": "phpstan/phpstan",
2054
+ "version": "0.11.15",
2055
+ "source": {
2056
+ "type": "git",
2057
+ "url": "https://github.com/phpstan/phpstan.git",
2058
+ "reference": "1be5b3a706db16ac472a4c40ec03cf4c810b118d"
2059
+ },
2060
+ "dist": {
2061
+ "type": "zip",
2062
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/1be5b3a706db16ac472a4c40ec03cf4c810b118d",
2063
+ "reference": "1be5b3a706db16ac472a4c40ec03cf4c810b118d",
2064
+ "shasum": ""
2065
+ },
2066
+ "require": {
2067
+ "composer/xdebug-handler": "^1.3.0",
2068
+ "jean85/pretty-package-versions": "^1.0.3",
2069
+ "nette/bootstrap": "^2.4 || ^3.0",
2070
+ "nette/di": "^2.4.7 || ^3.0",
2071
+ "nette/robot-loader": "^3.0.1",
2072
+ "nette/schema": "^1.0",
2073
+ "nette/utils": "^2.4.5 || ^3.0",
2074
+ "nikic/php-parser": "^4.2.3",
2075
+ "php": "~7.1",
2076
+ "phpstan/phpdoc-parser": "^0.3.5",
2077
+ "symfony/console": "~3.2 || ~4.0",
2078
+ "symfony/finder": "~3.2 || ~4.0"
2079
+ },
2080
+ "conflict": {
2081
+ "symfony/console": "3.4.16 || 4.1.5"
2082
+ },
2083
+ "require-dev": {
2084
+ "brianium/paratest": "^2.0 || ^3.0",
2085
+ "consistence/coding-standard": "^3.5",
2086
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4",
2087
+ "ext-intl": "*",
2088
+ "ext-mysqli": "*",
2089
+ "ext-simplexml": "*",
2090
+ "ext-soap": "*",
2091
+ "ext-zip": "*",
2092
+ "jakub-onderka/php-parallel-lint": "^1.0",
2093
+ "localheinz/composer-normalize": "^1.1.0",
2094
+ "phing/phing": "^2.16.0",
2095
+ "phpstan/phpstan-deprecation-rules": "^0.11",
2096
+ "phpstan/phpstan-php-parser": "^0.11",
2097
+ "phpstan/phpstan-phpunit": "^0.11",
2098
+ "phpstan/phpstan-strict-rules": "^0.11",
2099
+ "phpunit/phpunit": "^7.5.14 || ^8.0",
2100
+ "slevomat/coding-standard": "^4.7.2",
2101
+ "squizlabs/php_codesniffer": "^3.3.2"
2102
+ },
2103
+ "bin": [
2104
+ "bin/phpstan"
2105
+ ],
2106
+ "type": "library",
2107
+ "extra": {
2108
+ "branch-alias": {
2109
+ "dev-master": "0.11-dev"
2110
+ }
2111
+ },
2112
+ "autoload": {
2113
+ "psr-4": {
2114
+ "PHPStan\\": [
2115
+ "src/",
2116
+ "build/PHPStan"
2117
+ ]
2118
+ }
2119
+ },
2120
+ "notification-url": "https://packagist.org/downloads/",
2121
+ "license": [
2122
+ "MIT"
2123
+ ],
2124
+ "description": "PHPStan - PHP Static Analysis Tool",
2125
+ "time": "2019-08-18T20:51:53+00:00"
2126
+ },
1330
2127
  {
1331
2128
  "name": "symfony/event-dispatcher",
1332
2129
  "version": "v4.3.0",
@@ -0,0 +1,7 @@
1
+ includes:
2
+ - vendor/phpstan/phpstan/conf/config.level5.neon
3
+
4
+ parameters:
5
+ inferPrivatePropertyTypeFromConstructor: true
6
+ paths:
7
+ - src
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "dependabot/shared_helpers"
4
4
  require "dependabot/errors"
5
+ require "dependabot/composer/file_parser"
5
6
  require "dependabot/composer/file_updater"
6
7
  require "dependabot/composer/version"
7
8
  require "dependabot/composer/requirement"
@@ -69,6 +70,11 @@ module Dependabot
69
70
  retry_count ||= 0
70
71
  retry_count += 1
71
72
  retry if transitory_failure?(e) && retry_count <= 1
73
+ if locked_git_dep_error?(e) && retry_count <= 1
74
+ @lock_git_deps = false
75
+ retry
76
+ end
77
+
72
78
  handle_composer_errors(e)
73
79
  end
74
80
 
@@ -110,6 +116,10 @@ module Dependabot
110
116
  error.message.include?("Content-Length mismatch")
111
117
  end
112
118
 
119
+ def locked_git_dep_error?(error)
120
+ error.message.start_with?("Could not authenticate against")
121
+ end
122
+
113
123
  # rubocop:disable Metrics/AbcSize
114
124
  # rubocop:disable Metrics/CyclomaticComplexity
115
125
  # rubocop:disable Metrics/MethodLength
@@ -197,30 +207,15 @@ module Dependabot
197
207
  end
198
208
 
199
209
  def locked_composer_json_content
200
- tmp_content =
201
- dependencies.reduce(updated_composer_json_content) do |content, dep|
202
- updated_req = dep.version
203
- next content unless Composer::Version.correct?(updated_req)
204
-
205
- old_req =
206
- dep.requirements.find { |r| r[:file] == "composer.json" }&.
207
- fetch(:requirement)
208
-
209
- # When updating a subdep there won't be an old requirement
210
- next content unless old_req
211
-
212
- regex =
213
- /
214
- "#{Regexp.escape(dep.name)}"\s*:\s*
215
- "#{Regexp.escape(old_req)}"
216
- /x
217
-
218
- content.gsub(regex) do |declaration|
219
- declaration.gsub(%("#{old_req}"), %("#{updated_req}"))
220
- end
221
- end
210
+ content = updated_composer_json_content
211
+ content = lock_dependencies_being_updated(content)
212
+ content = lock_git_dependencies(content) if @lock_git_deps != false
213
+ content = add_temporary_platform_extensions(content)
214
+ content
215
+ end
222
216
 
223
- json = JSON.parse(tmp_content)
217
+ def add_temporary_platform_extensions(content)
218
+ json = JSON.parse(content)
224
219
 
225
220
  composer_platform_extensions.each do |extension, requirements|
226
221
  json["config"] ||= {}
@@ -232,6 +227,51 @@ module Dependabot
232
227
  JSON.dump(json)
233
228
  end
234
229
 
230
+ def lock_dependencies_being_updated(original_content)
231
+ dependencies.reduce(original_content) do |content, dep|
232
+ updated_req = dep.version
233
+ next content unless Composer::Version.correct?(updated_req)
234
+
235
+ old_req =
236
+ dep.requirements.find { |r| r[:file] == "composer.json" }&.
237
+ fetch(:requirement)
238
+
239
+ # When updating a subdep there won't be an old requirement
240
+ next content unless old_req
241
+
242
+ regex =
243
+ /
244
+ "#{Regexp.escape(dep.name)}"\s*:\s*
245
+ "#{Regexp.escape(old_req)}"
246
+ /x
247
+
248
+ content.gsub(regex) do |declaration|
249
+ declaration.gsub(%("#{old_req}"), %("#{updated_req}"))
250
+ end
251
+ end
252
+ end
253
+
254
+ def lock_git_dependencies(content)
255
+ json = JSON.parse(content)
256
+
257
+ FileParser::DEPENDENCY_GROUP_KEYS.each do |keys|
258
+ next unless json[keys[:manifest]]
259
+
260
+ json[keys[:manifest]].each do |name, req|
261
+ next unless req.start_with?("dev-")
262
+ next if req.include?("#")
263
+
264
+ commit_sha = parsed_lockfile.
265
+ fetch(keys[:lockfile], []).
266
+ find { |d| d["name"] == name }&.
267
+ dig("source", "reference")
268
+ json[keys[:manifest]][name] = req + "##{commit_sha}"
269
+ end
270
+ end
271
+
272
+ JSON.dump(json)
273
+ end
274
+
235
275
  def git_dependency_reference_error(error)
236
276
  ref = error.message.match(/checkout '(?<ref>.*?)'/).
237
277
  named_captures.fetch("ref")
@@ -383,7 +423,11 @@ module Dependabot
383
423
  end
384
424
 
385
425
  def parsed_composer_json
386
- JSON.parse(composer_json.content)
426
+ @parsed_composer_json ||= JSON.parse(composer_json.content)
427
+ end
428
+
429
+ def parsed_lockfile
430
+ @parsed_lockfile ||= JSON.parse(lockfile.content)
387
431
  end
388
432
 
389
433
  def composer_json
@@ -7,6 +7,7 @@ require "dependabot/composer/update_checker"
7
7
  require "dependabot/composer/version"
8
8
  require "dependabot/composer/requirement"
9
9
  require "dependabot/composer/native_helpers"
10
+ require "dependabot/composer/file_parser"
10
11
 
11
12
  # rubocop:disable Metrics/ClassLength
12
13
  module Dependabot
@@ -107,14 +108,20 @@ module Dependabot
107
108
 
108
109
  def prepared_composer_json_content(unlock_requirement: true)
109
110
  content = composer_file.content
111
+ content = unlock_dep_being_updated(content) if unlock_requirement
112
+ content = lock_git_dependencies(content) if lockfile
113
+ content = add_temporary_platform_extensions(content)
114
+ content
115
+ end
110
116
 
111
- if unlock_requirement
112
- content = content.gsub(
113
- /"#{Regexp.escape(dependency.name)}"\s*:\s*".*"/,
114
- %("#{dependency.name}": "#{updated_version_requirement_string}")
115
- )
116
- end
117
+ def unlock_dep_being_updated(content)
118
+ content.gsub(
119
+ /"#{Regexp.escape(dependency.name)}"\s*:\s*".*"/,
120
+ %("#{dependency.name}": "#{updated_version_requirement_string}")
121
+ )
122
+ end
117
123
 
124
+ def add_temporary_platform_extensions(content)
118
125
  json = JSON.parse(content)
119
126
 
120
127
  composer_platform_extensions.each do |extension, requirements|
@@ -127,6 +134,27 @@ module Dependabot
127
134
  JSON.dump(json)
128
135
  end
129
136
 
137
+ def lock_git_dependencies(content)
138
+ json = JSON.parse(content)
139
+
140
+ FileParser::DEPENDENCY_GROUP_KEYS.each do |keys|
141
+ next unless json[keys[:manifest]]
142
+
143
+ json[keys[:manifest]].each do |name, req|
144
+ next unless req.start_with?("dev-")
145
+ next if req.include?("#")
146
+
147
+ commit_sha = parsed_lockfile.
148
+ fetch(keys[:lockfile], []).
149
+ find { |d| d["name"] == name }&.
150
+ dig("source", "reference")
151
+ json[keys[:manifest]][name] = req + "##{commit_sha}"
152
+ end
153
+ end
154
+
155
+ JSON.dump(json)
156
+ end
157
+
130
158
  # rubocop:disable Metrics/AbcSize
131
159
  # rubocop:disable Metrics/PerceivedComplexity
132
160
  def updated_version_requirement_string
@@ -335,7 +363,11 @@ module Dependabot
335
363
  end
336
364
 
337
365
  def parsed_composer_file
338
- JSON.parse(composer_file.content)
366
+ @parsed_composer_file ||= JSON.parse(composer_file.content)
367
+ end
368
+
369
+ def parsed_lockfile
370
+ @parsed_lockfile ||= JSON.parse(lockfile.content)
339
371
  end
340
372
 
341
373
  def composer_file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-composer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.112.6
4
+ version: 0.112.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-20 00:00:00.000000000 Z
11
+ date: 2019-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dependabot-common
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.112.6
19
+ version: 0.112.7
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.112.6
26
+ version: 0.112.7
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -148,6 +148,7 @@ files:
148
148
  - helpers/build
149
149
  - helpers/composer.json
150
150
  - helpers/composer.lock
151
+ - helpers/phpstan.neon
151
152
  - helpers/setup.sh
152
153
  - helpers/src/DependabotInstallationManager.php
153
154
  - helpers/src/DependabotPluginManager.php