JWT Authentication for WP REST API - Version 1.2.4

Version Description

  • Update firebase/php-jwt to v5.0.0 ( https://github.com/firebase/php-jwt )
  • Add Requires PHP Tag
Download this release

Release Info

Developer Tmeister
Plugin Icon JWT Authentication for WP REST API
Version 1.2.4
Comparing to
See all releases

Code changes from version 1.2.3 to 1.2.4

composer.json CHANGED
@@ -3,7 +3,7 @@
3
  "vendor-dir": "includes/vendor"
4
  },
5
  "require": {
6
- "firebase/php-jwt": "^3.0"
7
  },
8
  "require-dev": {
9
  "phpunit/phpunit": "^5.2",
3
  "vendor-dir": "includes/vendor"
4
  },
5
  "require": {
6
+ "firebase/php-jwt": "^5.0.0"
7
  },
8
  "require-dev": {
9
  "phpunit/phpunit": "^5.2",
composer.lock CHANGED
@@ -4,26 +4,28 @@
4
  "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5
  "This file is @generated automatically"
6
  ],
7
- "hash": "0dbb679a5ef11eca6594f732092699b6",
8
- "content-hash": "9e314d7aeab7190356aa57664f458cd4",
9
  "packages": [
10
  {
11
  "name": "firebase/php-jwt",
12
- "version": "v3.0.0",
13
  "source": {
14
  "type": "git",
15
  "url": "https://github.com/firebase/php-jwt.git",
16
- "reference": "fa8a06e96526eb7c0eeaa47e4f39be59d21f16e1"
17
  },
18
  "dist": {
19
  "type": "zip",
20
- "url": "https://api.github.com/repos/firebase/php-jwt/zipball/fa8a06e96526eb7c0eeaa47e4f39be59d21f16e1",
21
- "reference": "fa8a06e96526eb7c0eeaa47e4f39be59d21f16e1",
22
  "shasum": ""
23
  },
24
  "require": {
25
  "php": ">=5.3.0"
26
  },
 
 
 
27
  "type": "library",
28
  "autoload": {
29
  "psr-4": {
@@ -48,38 +50,38 @@
48
  ],
49
  "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
50
  "homepage": "https://github.com/firebase/php-jwt",
51
- "time": "2015-07-22 18:31:08"
52
  }
53
  ],
54
  "packages-dev": [
55
  {
56
  "name": "doctrine/instantiator",
57
- "version": "1.0.5",
58
  "source": {
59
  "type": "git",
60
  "url": "https://github.com/doctrine/instantiator.git",
61
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
62
  },
63
  "dist": {
64
  "type": "zip",
65
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
66
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
67
  "shasum": ""
68
  },
69
  "require": {
70
- "php": ">=5.3,<8.0-DEV"
71
  },
72
  "require-dev": {
73
  "athletic/athletic": "~0.1.8",
74
  "ext-pdo": "*",
75
  "ext-phar": "*",
76
- "phpunit/phpunit": "~4.0",
77
- "squizlabs/php_codesniffer": "~2.0"
78
  },
79
  "type": "library",
80
  "extra": {
81
  "branch-alias": {
82
- "dev-master": "1.0.x-dev"
83
  }
84
  },
85
  "autoload": {
@@ -104,36 +106,39 @@
104
  "constructor",
105
  "instantiate"
106
  ],
107
- "time": "2015-06-14 21:17:01"
108
  },
109
  {
110
  "name": "guzzlehttp/guzzle",
111
- "version": "6.1.1",
112
  "source": {
113
  "type": "git",
114
  "url": "https://github.com/guzzle/guzzle.git",
115
- "reference": "c6851d6e48f63b69357cbfa55bca116448140e0c"
116
  },
117
  "dist": {
118
  "type": "zip",
119
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/c6851d6e48f63b69357cbfa55bca116448140e0c",
120
- "reference": "c6851d6e48f63b69357cbfa55bca116448140e0c",
121
  "shasum": ""
122
  },
123
  "require": {
124
- "guzzlehttp/promises": "~1.0",
125
- "guzzlehttp/psr7": "~1.1",
126
- "php": ">=5.5.0"
127
  },
128
  "require-dev": {
129
  "ext-curl": "*",
130
- "phpunit/phpunit": "~4.0",
131
- "psr/log": "~1.0"
 
 
 
132
  },
133
  "type": "library",
134
  "extra": {
135
  "branch-alias": {
136
- "dev-master": "6.1-dev"
137
  }
138
  },
139
  "autoload": {
@@ -166,32 +171,32 @@
166
  "rest",
167
  "web service"
168
  ],
169
- "time": "2015-11-23 00:47:50"
170
  },
171
  {
172
  "name": "guzzlehttp/promises",
173
- "version": "1.0.3",
174
  "source": {
175
  "type": "git",
176
  "url": "https://github.com/guzzle/promises.git",
177
- "reference": "b1e1c0d55f8083c71eda2c28c12a228d708294ea"
178
  },
179
  "dist": {
180
  "type": "zip",
181
- "url": "https://api.github.com/repos/guzzle/promises/zipball/b1e1c0d55f8083c71eda2c28c12a228d708294ea",
182
- "reference": "b1e1c0d55f8083c71eda2c28c12a228d708294ea",
183
  "shasum": ""
184
  },
185
  "require": {
186
  "php": ">=5.5.0"
187
  },
188
  "require-dev": {
189
- "phpunit/phpunit": "~4.0"
190
  },
191
  "type": "library",
192
  "extra": {
193
  "branch-alias": {
194
- "dev-master": "1.0-dev"
195
  }
196
  },
197
  "autoload": {
@@ -217,20 +222,20 @@
217
  "keywords": [
218
  "promise"
219
  ],
220
- "time": "2015-10-15 22:28:00"
221
  },
222
  {
223
  "name": "guzzlehttp/psr7",
224
- "version": "1.2.3",
225
  "source": {
226
  "type": "git",
227
  "url": "https://github.com/guzzle/psr7.git",
228
- "reference": "2e89629ff057ebb49492ba08e6995d3a6a80021b"
229
  },
230
  "dist": {
231
  "type": "zip",
232
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/2e89629ff057ebb49492ba08e6995d3a6a80021b",
233
- "reference": "2e89629ff057ebb49492ba08e6995d3a6a80021b",
234
  "shasum": ""
235
  },
236
  "require": {
@@ -246,7 +251,7 @@
246
  "type": "library",
247
  "extra": {
248
  "branch-alias": {
249
- "dev-master": "1.0-dev"
250
  }
251
  },
252
  "autoload": {
@@ -266,29 +271,36 @@
266
  "name": "Michael Dowling",
267
  "email": "mtdowling@gmail.com",
268
  "homepage": "https://github.com/mtdowling"
 
 
 
 
269
  }
270
  ],
271
- "description": "PSR-7 message implementation",
272
  "keywords": [
273
  "http",
274
  "message",
 
 
275
  "stream",
276
- "uri"
 
277
  ],
278
- "time": "2016-02-18 21:54:00"
279
  },
280
  {
281
  "name": "myclabs/deep-copy",
282
- "version": "1.5.0",
283
  "source": {
284
  "type": "git",
285
  "url": "https://github.com/myclabs/DeepCopy.git",
286
- "reference": "e3abefcd7f106677fd352cd7c187d6c969aa9ddc"
287
  },
288
  "dist": {
289
  "type": "zip",
290
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/e3abefcd7f106677fd352cd7c187d6c969aa9ddc",
291
- "reference": "e3abefcd7f106677fd352cd7c187d6c969aa9ddc",
292
  "shasum": ""
293
  },
294
  "require": {
@@ -317,41 +329,138 @@
317
  "object",
318
  "object graph"
319
  ],
320
- "time": "2015-11-07 22:20:37"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
321
  },
322
  {
323
  "name": "phpdocumentor/reflection-docblock",
324
- "version": "2.0.4",
325
  "source": {
326
  "type": "git",
327
  "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
328
- "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
329
  },
330
  "dist": {
331
  "type": "zip",
332
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
333
- "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
334
  "shasum": ""
335
  },
336
  "require": {
337
- "php": ">=5.3.3"
 
 
 
338
  },
339
  "require-dev": {
340
- "phpunit/phpunit": "~4.0"
 
341
  },
342
- "suggest": {
343
- "dflydev/markdown": "~1.0",
344
- "erusev/parsedown": "~1.0"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
345
  },
346
  "type": "library",
347
  "extra": {
348
  "branch-alias": {
349
- "dev-master": "2.0.x-dev"
350
  }
351
  },
352
  "autoload": {
353
- "psr-0": {
354
- "phpDocumentor": [
355
  "src/"
356
  ]
357
  }
@@ -363,39 +472,40 @@
363
  "authors": [
364
  {
365
  "name": "Mike van Riel",
366
- "email": "mike.vanriel@naenius.com"
367
  }
368
  ],
369
- "time": "2015-02-03 12:10:50"
370
  },
371
  {
372
  "name": "phpspec/prophecy",
373
- "version": "v1.6.0",
374
  "source": {
375
  "type": "git",
376
  "url": "https://github.com/phpspec/prophecy.git",
377
- "reference": "3c91bdf81797d725b14cb62906f9a4ce44235972"
378
  },
379
  "dist": {
380
  "type": "zip",
381
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3c91bdf81797d725b14cb62906f9a4ce44235972",
382
- "reference": "3c91bdf81797d725b14cb62906f9a4ce44235972",
383
  "shasum": ""
384
  },
385
  "require": {
386
  "doctrine/instantiator": "^1.0.2",
387
  "php": "^5.3|^7.0",
388
- "phpdocumentor/reflection-docblock": "~2.0",
389
- "sebastian/comparator": "~1.1",
390
- "sebastian/recursion-context": "~1.0"
391
  },
392
  "require-dev": {
393
- "phpspec/phpspec": "~2.0"
 
394
  },
395
  "type": "library",
396
  "extra": {
397
  "branch-alias": {
398
- "dev-master": "1.5.x-dev"
399
  }
400
  },
401
  "autoload": {
@@ -428,44 +538,44 @@
428
  "spy",
429
  "stub"
430
  ],
431
- "time": "2016-02-15 07:46:21"
432
  },
433
  {
434
  "name": "phpunit/php-code-coverage",
435
- "version": "3.2.1",
436
  "source": {
437
  "type": "git",
438
  "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
439
- "reference": "a58f95ae76fe201b571fad3e8370a50c4368678c"
440
  },
441
  "dist": {
442
  "type": "zip",
443
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/a58f95ae76fe201b571fad3e8370a50c4368678c",
444
- "reference": "a58f95ae76fe201b571fad3e8370a50c4368678c",
445
  "shasum": ""
446
  },
447
  "require": {
 
 
448
  "php": "^5.6 || ^7.0",
449
- "phpunit/php-file-iterator": "~1.3",
450
- "phpunit/php-text-template": "~1.2",
451
- "phpunit/php-token-stream": "^1.4.2",
452
- "sebastian/code-unit-reverse-lookup": "~1.0",
453
- "sebastian/environment": "^1.3.2",
454
- "sebastian/version": "~1.0|~2.0"
455
  },
456
  "require-dev": {
457
- "ext-xdebug": ">=2.1.4",
458
- "phpunit/phpunit": "~5"
459
  },
460
  "suggest": {
461
- "ext-dom": "*",
462
- "ext-xdebug": ">=2.2.1",
463
- "ext-xmlwriter": "*"
464
  },
465
  "type": "library",
466
  "extra": {
467
  "branch-alias": {
468
- "dev-master": "3.2.x-dev"
469
  }
470
  },
471
  "autoload": {
@@ -491,20 +601,20 @@
491
  "testing",
492
  "xunit"
493
  ],
494
- "time": "2016-02-18 07:31:12"
495
  },
496
  {
497
  "name": "phpunit/php-file-iterator",
498
- "version": "1.4.1",
499
  "source": {
500
  "type": "git",
501
  "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
502
- "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0"
503
  },
504
  "dist": {
505
  "type": "zip",
506
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
507
- "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
508
  "shasum": ""
509
  },
510
  "require": {
@@ -538,7 +648,7 @@
538
  "filesystem",
539
  "iterator"
540
  ],
541
- "time": "2015-06-21 13:08:43"
542
  },
543
  {
544
  "name": "phpunit/php-text-template",
@@ -579,26 +689,34 @@
579
  "keywords": [
580
  "template"
581
  ],
582
- "time": "2015-06-21 13:50:34"
583
  },
584
  {
585
  "name": "phpunit/php-timer",
586
- "version": "1.0.7",
587
  "source": {
588
  "type": "git",
589
  "url": "https://github.com/sebastianbergmann/php-timer.git",
590
- "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b"
591
  },
592
  "dist": {
593
  "type": "zip",
594
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3e82f4e9fc92665fafd9157568e4dcb01d014e5b",
595
- "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b",
596
  "shasum": ""
597
  },
598
  "require": {
599
- "php": ">=5.3.3"
 
 
 
600
  },
601
  "type": "library",
 
 
 
 
 
602
  "autoload": {
603
  "classmap": [
604
  "src/"
@@ -620,33 +738,33 @@
620
  "keywords": [
621
  "timer"
622
  ],
623
- "time": "2015-06-21 08:01:12"
624
  },
625
  {
626
  "name": "phpunit/php-token-stream",
627
- "version": "1.4.8",
628
  "source": {
629
  "type": "git",
630
  "url": "https://github.com/sebastianbergmann/php-token-stream.git",
631
- "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da"
632
  },
633
  "dist": {
634
  "type": "zip",
635
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da",
636
- "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da",
637
  "shasum": ""
638
  },
639
  "require": {
640
  "ext-tokenizer": "*",
641
- "php": ">=5.3.3"
642
  },
643
  "require-dev": {
644
- "phpunit/phpunit": "~4.2"
645
  },
646
  "type": "library",
647
  "extra": {
648
  "branch-alias": {
649
- "dev-master": "1.4-dev"
650
  }
651
  },
652
  "autoload": {
@@ -669,46 +787,54 @@
669
  "keywords": [
670
  "tokenizer"
671
  ],
672
- "time": "2015-09-15 10:49:45"
673
  },
674
  {
675
  "name": "phpunit/phpunit",
676
- "version": "5.2.9",
677
  "source": {
678
  "type": "git",
679
  "url": "https://github.com/sebastianbergmann/phpunit.git",
680
- "reference": "b12b9c37e382c096b93c3f26e7395775f59a5eea"
681
  },
682
  "dist": {
683
  "type": "zip",
684
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b12b9c37e382c096b93c3f26e7395775f59a5eea",
685
- "reference": "b12b9c37e382c096b93c3f26e7395775f59a5eea",
686
  "shasum": ""
687
  },
688
  "require": {
689
  "ext-dom": "*",
690
  "ext-json": "*",
691
- "ext-pcre": "*",
692
- "ext-reflection": "*",
693
- "ext-spl": "*",
694
  "myclabs/deep-copy": "~1.3",
695
  "php": "^5.6 || ^7.0",
696
- "phpspec/prophecy": "^1.3.1",
697
- "phpunit/php-code-coverage": "^3.2.1",
698
  "phpunit/php-file-iterator": "~1.4",
699
  "phpunit/php-text-template": "~1.2",
700
- "phpunit/php-timer": ">=1.0.6",
701
- "phpunit/phpunit-mock-objects": ">=3.0.5",
702
- "sebastian/comparator": "~1.1",
703
- "sebastian/diff": "~1.2",
704
- "sebastian/environment": "~1.3",
705
- "sebastian/exporter": "~1.2",
706
- "sebastian/global-state": "~1.0",
 
707
  "sebastian/resource-operations": "~1.0",
708
- "sebastian/version": "~1.0|~2.0",
709
  "symfony/yaml": "~2.1|~3.0"
710
  },
 
 
 
 
 
 
711
  "suggest": {
 
712
  "phpunit/php-invoker": "~1.1"
713
  },
714
  "bin": [
@@ -717,7 +843,7 @@
717
  "type": "library",
718
  "extra": {
719
  "branch-alias": {
720
- "dev-master": "5.2.x-dev"
721
  }
722
  },
723
  "autoload": {
@@ -743,30 +869,33 @@
743
  "testing",
744
  "xunit"
745
  ],
746
- "time": "2016-02-19 11:43:07"
747
  },
748
  {
749
  "name": "phpunit/phpunit-mock-objects",
750
- "version": "3.0.6",
751
  "source": {
752
  "type": "git",
753
  "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
754
- "reference": "49bc700750196c04dd6bc2c4c99cb632b893836b"
755
  },
756
  "dist": {
757
  "type": "zip",
758
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/49bc700750196c04dd6bc2c4c99cb632b893836b",
759
- "reference": "49bc700750196c04dd6bc2c4c99cb632b893836b",
760
  "shasum": ""
761
  },
762
  "require": {
763
  "doctrine/instantiator": "^1.0.2",
764
- "php": ">=5.6",
765
- "phpunit/php-text-template": "~1.2",
766
- "sebastian/exporter": "~1.2"
 
 
 
767
  },
768
  "require-dev": {
769
- "phpunit/phpunit": "~5"
770
  },
771
  "suggest": {
772
  "ext-soap": "*"
@@ -774,7 +903,7 @@
774
  "type": "library",
775
  "extra": {
776
  "branch-alias": {
777
- "dev-master": "3.0.x-dev"
778
  }
779
  },
780
  "autoload": {
@@ -799,20 +928,20 @@
799
  "mock",
800
  "xunit"
801
  ],
802
- "time": "2015-12-08 08:47:06"
803
  },
804
  {
805
  "name": "psr/http-message",
806
- "version": "1.0",
807
  "source": {
808
  "type": "git",
809
  "url": "https://github.com/php-fig/http-message.git",
810
- "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298"
811
  },
812
  "dist": {
813
  "type": "zip",
814
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/85d63699f0dbedb190bbd4b0d2b9dc707ea4c298",
815
- "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298",
816
  "shasum": ""
817
  },
818
  "require": {
@@ -840,6 +969,7 @@
840
  }
841
  ],
842
  "description": "Common interface for HTTP messages",
 
843
  "keywords": [
844
  "http",
845
  "http-message",
@@ -848,27 +978,27 @@
848
  "request",
849
  "response"
850
  ],
851
- "time": "2015-05-04 20:22:00"
852
  },
853
  {
854
  "name": "sebastian/code-unit-reverse-lookup",
855
- "version": "1.0.0",
856
  "source": {
857
  "type": "git",
858
  "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
859
- "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe"
860
  },
861
  "dist": {
862
  "type": "zip",
863
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/c36f5e7cfce482fde5bf8d10d41a53591e0198fe",
864
- "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe",
865
  "shasum": ""
866
  },
867
  "require": {
868
- "php": ">=5.6"
869
  },
870
  "require-dev": {
871
- "phpunit/phpunit": "~5"
872
  },
873
  "type": "library",
874
  "extra": {
@@ -893,26 +1023,26 @@
893
  ],
894
  "description": "Looks up which function or method a line of code belongs to",
895
  "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
896
- "time": "2016-02-13 06:45:14"
897
  },
898
  {
899
  "name": "sebastian/comparator",
900
- "version": "1.2.0",
901
  "source": {
902
  "type": "git",
903
  "url": "https://github.com/sebastianbergmann/comparator.git",
904
- "reference": "937efb279bd37a375bcadf584dec0726f84dbf22"
905
  },
906
  "dist": {
907
  "type": "zip",
908
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22",
909
- "reference": "937efb279bd37a375bcadf584dec0726f84dbf22",
910
  "shasum": ""
911
  },
912
  "require": {
913
  "php": ">=5.3.3",
914
  "sebastian/diff": "~1.2",
915
- "sebastian/exporter": "~1.2"
916
  },
917
  "require-dev": {
918
  "phpunit/phpunit": "~4.4"
@@ -957,27 +1087,27 @@
957
  "compare",
958
  "equality"
959
  ],
960
- "time": "2015-07-26 15:48:44"
961
  },
962
  {
963
  "name": "sebastian/diff",
964
- "version": "1.4.1",
965
  "source": {
966
  "type": "git",
967
  "url": "https://github.com/sebastianbergmann/diff.git",
968
- "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e"
969
  },
970
  "dist": {
971
  "type": "zip",
972
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e",
973
- "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e",
974
  "shasum": ""
975
  },
976
  "require": {
977
- "php": ">=5.3.3"
978
  },
979
  "require-dev": {
980
- "phpunit/phpunit": "~4.8"
981
  },
982
  "type": "library",
983
  "extra": {
@@ -1009,32 +1139,32 @@
1009
  "keywords": [
1010
  "diff"
1011
  ],
1012
- "time": "2015-12-08 07:14:41"
1013
  },
1014
  {
1015
  "name": "sebastian/environment",
1016
- "version": "1.3.5",
1017
  "source": {
1018
  "type": "git",
1019
  "url": "https://github.com/sebastianbergmann/environment.git",
1020
- "reference": "dc7a29032cf72b54f36dac15a1ca5b3a1b6029bf"
1021
  },
1022
  "dist": {
1023
  "type": "zip",
1024
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/dc7a29032cf72b54f36dac15a1ca5b3a1b6029bf",
1025
- "reference": "dc7a29032cf72b54f36dac15a1ca5b3a1b6029bf",
1026
  "shasum": ""
1027
  },
1028
  "require": {
1029
- "php": ">=5.3.3"
1030
  },
1031
  "require-dev": {
1032
- "phpunit/phpunit": "~4.4"
1033
  },
1034
  "type": "library",
1035
  "extra": {
1036
  "branch-alias": {
1037
- "dev-master": "1.3.x-dev"
1038
  }
1039
  },
1040
  "autoload": {
@@ -1059,33 +1189,34 @@
1059
  "environment",
1060
  "hhvm"
1061
  ],
1062
- "time": "2016-02-26 18:40:46"
1063
  },
1064
  {
1065
  "name": "sebastian/exporter",
1066
- "version": "1.2.1",
1067
  "source": {
1068
  "type": "git",
1069
  "url": "https://github.com/sebastianbergmann/exporter.git",
1070
- "reference": "7ae5513327cb536431847bcc0c10edba2701064e"
1071
  },
1072
  "dist": {
1073
  "type": "zip",
1074
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e",
1075
- "reference": "7ae5513327cb536431847bcc0c10edba2701064e",
1076
  "shasum": ""
1077
  },
1078
  "require": {
1079
  "php": ">=5.3.3",
1080
- "sebastian/recursion-context": "~1.0"
1081
  },
1082
  "require-dev": {
 
1083
  "phpunit/phpunit": "~4.4"
1084
  },
1085
  "type": "library",
1086
  "extra": {
1087
  "branch-alias": {
1088
- "dev-master": "1.2.x-dev"
1089
  }
1090
  },
1091
  "autoload": {
@@ -1125,7 +1256,7 @@
1125
  "export",
1126
  "exporter"
1127
  ],
1128
- "time": "2015-06-21 07:55:53"
1129
  },
1130
  {
1131
  "name": "sebastian/global-state",
@@ -1176,20 +1307,66 @@
1176
  "keywords": [
1177
  "global state"
1178
  ],
1179
- "time": "2015-10-12 03:26:01"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1180
  },
1181
  {
1182
  "name": "sebastian/recursion-context",
1183
- "version": "1.0.2",
1184
  "source": {
1185
  "type": "git",
1186
  "url": "https://github.com/sebastianbergmann/recursion-context.git",
1187
- "reference": "913401df809e99e4f47b27cdd781f4a258d58791"
1188
  },
1189
  "dist": {
1190
  "type": "zip",
1191
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791",
1192
- "reference": "913401df809e99e4f47b27cdd781f4a258d58791",
1193
  "shasum": ""
1194
  },
1195
  "require": {
@@ -1201,7 +1378,7 @@
1201
  "type": "library",
1202
  "extra": {
1203
  "branch-alias": {
1204
- "dev-master": "1.0.x-dev"
1205
  }
1206
  },
1207
  "autoload": {
@@ -1229,7 +1406,7 @@
1229
  ],
1230
  "description": "Provides functionality to recursively process PHP variables",
1231
  "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
1232
- "time": "2015-11-11 19:50:13"
1233
  },
1234
  {
1235
  "name": "sebastian/resource-operations",
@@ -1271,20 +1448,20 @@
1271
  ],
1272
  "description": "Provides a list of PHP built-in functions that operate on resources",
1273
  "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
1274
- "time": "2015-07-28 20:34:47"
1275
  },
1276
  {
1277
  "name": "sebastian/version",
1278
- "version": "2.0.0",
1279
  "source": {
1280
  "type": "git",
1281
  "url": "https://github.com/sebastianbergmann/version.git",
1282
- "reference": "c829badbd8fdf16a0bad8aa7fa7971c029f1b9c5"
1283
  },
1284
  "dist": {
1285
  "type": "zip",
1286
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c829badbd8fdf16a0bad8aa7fa7971c029f1b9c5",
1287
- "reference": "c829badbd8fdf16a0bad8aa7fa7971c029f1b9c5",
1288
  "shasum": ""
1289
  },
1290
  "require": {
@@ -1314,29 +1491,35 @@
1314
  ],
1315
  "description": "Library that helps with managing the version number of Git-hosted PHP projects",
1316
  "homepage": "https://github.com/sebastianbergmann/version",
1317
- "time": "2016-02-04 12:56:52"
1318
  },
1319
  {
1320
  "name": "symfony/yaml",
1321
- "version": "v3.0.2",
1322
  "source": {
1323
  "type": "git",
1324
  "url": "https://github.com/symfony/yaml.git",
1325
- "reference": "3cf0709d7fe936e97bee9e954382e449003f1d9a"
1326
  },
1327
  "dist": {
1328
  "type": "zip",
1329
- "url": "https://api.github.com/repos/symfony/yaml/zipball/3cf0709d7fe936e97bee9e954382e449003f1d9a",
1330
- "reference": "3cf0709d7fe936e97bee9e954382e449003f1d9a",
1331
  "shasum": ""
1332
  },
1333
  "require": {
1334
- "php": ">=5.5.9"
 
 
 
 
 
 
1335
  },
1336
  "type": "library",
1337
  "extra": {
1338
  "branch-alias": {
1339
- "dev-master": "3.0-dev"
1340
  }
1341
  },
1342
  "autoload": {
@@ -1363,7 +1546,57 @@
1363
  ],
1364
  "description": "Symfony Yaml Component",
1365
  "homepage": "https://symfony.com",
1366
- "time": "2016-02-02 13:44:19"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1367
  }
1368
  ],
1369
  "aliases": [],
4
  "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5
  "This file is @generated automatically"
6
  ],
7
+ "content-hash": "975fa7e89f33924a53e61aef52eaa5e3",
 
8
  "packages": [
9
  {
10
  "name": "firebase/php-jwt",
11
+ "version": "v5.0.0",
12
  "source": {
13
  "type": "git",
14
  "url": "https://github.com/firebase/php-jwt.git",
15
+ "reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e"
16
  },
17
  "dist": {
18
  "type": "zip",
19
+ "url": "https://api.github.com/repos/firebase/php-jwt/zipball/9984a4d3a32ae7673d6971ea00bae9d0a1abba0e",
20
+ "reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e",
21
  "shasum": ""
22
  },
23
  "require": {
24
  "php": ">=5.3.0"
25
  },
26
+ "require-dev": {
27
+ "phpunit/phpunit": " 4.8.35"
28
+ },
29
  "type": "library",
30
  "autoload": {
31
  "psr-4": {
50
  ],
51
  "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
52
  "homepage": "https://github.com/firebase/php-jwt",
53
+ "time": "2017-06-27T22:17:23+00:00"
54
  }
55
  ],
56
  "packages-dev": [
57
  {
58
  "name": "doctrine/instantiator",
59
+ "version": "1.1.0",
60
  "source": {
61
  "type": "git",
62
  "url": "https://github.com/doctrine/instantiator.git",
63
+ "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"
64
  },
65
  "dist": {
66
  "type": "zip",
67
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
68
+ "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
69
  "shasum": ""
70
  },
71
  "require": {
72
+ "php": "^7.1"
73
  },
74
  "require-dev": {
75
  "athletic/athletic": "~0.1.8",
76
  "ext-pdo": "*",
77
  "ext-phar": "*",
78
+ "phpunit/phpunit": "^6.2.3",
79
+ "squizlabs/php_codesniffer": "^3.0.2"
80
  },
81
  "type": "library",
82
  "extra": {
83
  "branch-alias": {
84
+ "dev-master": "1.2.x-dev"
85
  }
86
  },
87
  "autoload": {
106
  "constructor",
107
  "instantiate"
108
  ],
109
+ "time": "2017-07-22T11:58:36+00:00"
110
  },
111
  {
112
  "name": "guzzlehttp/guzzle",
113
+ "version": "6.3.0",
114
  "source": {
115
  "type": "git",
116
  "url": "https://github.com/guzzle/guzzle.git",
117
+ "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699"
118
  },
119
  "dist": {
120
  "type": "zip",
121
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f4db5a78a5ea468d4831de7f0bf9d9415e348699",
122
+ "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699",
123
  "shasum": ""
124
  },
125
  "require": {
126
+ "guzzlehttp/promises": "^1.0",
127
+ "guzzlehttp/psr7": "^1.4",
128
+ "php": ">=5.5"
129
  },
130
  "require-dev": {
131
  "ext-curl": "*",
132
+ "phpunit/phpunit": "^4.0 || ^5.0",
133
+ "psr/log": "^1.0"
134
+ },
135
+ "suggest": {
136
+ "psr/log": "Required for using the Log middleware"
137
  },
138
  "type": "library",
139
  "extra": {
140
  "branch-alias": {
141
+ "dev-master": "6.2-dev"
142
  }
143
  },
144
  "autoload": {
171
  "rest",
172
  "web service"
173
  ],
174
+ "time": "2017-06-22T18:50:49+00:00"
175
  },
176
  {
177
  "name": "guzzlehttp/promises",
178
+ "version": "v1.3.1",
179
  "source": {
180
  "type": "git",
181
  "url": "https://github.com/guzzle/promises.git",
182
+ "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
183
  },
184
  "dist": {
185
  "type": "zip",
186
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
187
+ "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
188
  "shasum": ""
189
  },
190
  "require": {
191
  "php": ">=5.5.0"
192
  },
193
  "require-dev": {
194
+ "phpunit/phpunit": "^4.0"
195
  },
196
  "type": "library",
197
  "extra": {
198
  "branch-alias": {
199
+ "dev-master": "1.4-dev"
200
  }
201
  },
202
  "autoload": {
222
  "keywords": [
223
  "promise"
224
  ],
225
+ "time": "2016-12-20T10:07:11+00:00"
226
  },
227
  {
228
  "name": "guzzlehttp/psr7",
229
+ "version": "1.4.2",
230
  "source": {
231
  "type": "git",
232
  "url": "https://github.com/guzzle/psr7.git",
233
+ "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c"
234
  },
235
  "dist": {
236
  "type": "zip",
237
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
238
+ "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
239
  "shasum": ""
240
  },
241
  "require": {
251
  "type": "library",
252
  "extra": {
253
  "branch-alias": {
254
+ "dev-master": "1.4-dev"
255
  }
256
  },
257
  "autoload": {
271
  "name": "Michael Dowling",
272
  "email": "mtdowling@gmail.com",
273
  "homepage": "https://github.com/mtdowling"
274
+ },
275
+ {
276
+ "name": "Tobias Schultze",
277
+ "homepage": "https://github.com/Tobion"
278
  }
279
  ],
280
+ "description": "PSR-7 message implementation that also provides common utility methods",
281
  "keywords": [
282
  "http",
283
  "message",
284
+ "request",
285
+ "response",
286
  "stream",
287
+ "uri",
288
+ "url"
289
  ],
290
+ "time": "2017-03-20T17:10:46+00:00"
291
  },
292
  {
293
  "name": "myclabs/deep-copy",
294
+ "version": "1.6.1",
295
  "source": {
296
  "type": "git",
297
  "url": "https://github.com/myclabs/DeepCopy.git",
298
+ "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102"
299
  },
300
  "dist": {
301
  "type": "zip",
302
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8e6e04167378abf1ddb4d3522d8755c5fd90d102",
303
+ "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102",
304
  "shasum": ""
305
  },
306
  "require": {
329
  "object",
330
  "object graph"
331
  ],
332
+ "time": "2017-04-12T18:52:22+00:00"
333
+ },
334
+ {
335
+ "name": "phpdocumentor/reflection-common",
336
+ "version": "1.0",
337
+ "source": {
338
+ "type": "git",
339
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
340
+ "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c"
341
+ },
342
+ "dist": {
343
+ "type": "zip",
344
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
345
+ "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
346
+ "shasum": ""
347
+ },
348
+ "require": {
349
+ "php": ">=5.5"
350
+ },
351
+ "require-dev": {
352
+ "phpunit/phpunit": "^4.6"
353
+ },
354
+ "type": "library",
355
+ "extra": {
356
+ "branch-alias": {
357
+ "dev-master": "1.0.x-dev"
358
+ }
359
+ },
360
+ "autoload": {
361
+ "psr-4": {
362
+ "phpDocumentor\\Reflection\\": [
363
+ "src"
364
+ ]
365
+ }
366
+ },
367
+ "notification-url": "https://packagist.org/downloads/",
368
+ "license": [
369
+ "MIT"
370
+ ],
371
+ "authors": [
372
+ {
373
+ "name": "Jaap van Otterdijk",
374
+ "email": "opensource@ijaap.nl"
375
+ }
376
+ ],
377
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
378
+ "homepage": "http://www.phpdoc.org",
379
+ "keywords": [
380
+ "FQSEN",
381
+ "phpDocumentor",
382
+ "phpdoc",
383
+ "reflection",
384
+ "static analysis"
385
+ ],
386
+ "time": "2015-12-27T11:43:31+00:00"
387
  },
388
  {
389
  "name": "phpdocumentor/reflection-docblock",
390
+ "version": "4.1.1",
391
  "source": {
392
  "type": "git",
393
  "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
394
+ "reference": "2d3d238c433cf69caeb4842e97a3223a116f94b2"
395
  },
396
  "dist": {
397
  "type": "zip",
398
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/2d3d238c433cf69caeb4842e97a3223a116f94b2",
399
+ "reference": "2d3d238c433cf69caeb4842e97a3223a116f94b2",
400
  "shasum": ""
401
  },
402
  "require": {
403
+ "php": "^7.0",
404
+ "phpdocumentor/reflection-common": "^1.0@dev",
405
+ "phpdocumentor/type-resolver": "^0.4.0",
406
+ "webmozart/assert": "^1.0"
407
  },
408
  "require-dev": {
409
+ "mockery/mockery": "^0.9.4",
410
+ "phpunit/phpunit": "^4.4"
411
  },
412
+ "type": "library",
413
+ "autoload": {
414
+ "psr-4": {
415
+ "phpDocumentor\\Reflection\\": [
416
+ "src/"
417
+ ]
418
+ }
419
+ },
420
+ "notification-url": "https://packagist.org/downloads/",
421
+ "license": [
422
+ "MIT"
423
+ ],
424
+ "authors": [
425
+ {
426
+ "name": "Mike van Riel",
427
+ "email": "me@mikevanriel.com"
428
+ }
429
+ ],
430
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
431
+ "time": "2017-08-30T18:51:59+00:00"
432
+ },
433
+ {
434
+ "name": "phpdocumentor/type-resolver",
435
+ "version": "0.4.0",
436
+ "source": {
437
+ "type": "git",
438
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
439
+ "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7"
440
+ },
441
+ "dist": {
442
+ "type": "zip",
443
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7",
444
+ "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7",
445
+ "shasum": ""
446
+ },
447
+ "require": {
448
+ "php": "^5.5 || ^7.0",
449
+ "phpdocumentor/reflection-common": "^1.0"
450
+ },
451
+ "require-dev": {
452
+ "mockery/mockery": "^0.9.4",
453
+ "phpunit/phpunit": "^5.2||^4.8.24"
454
  },
455
  "type": "library",
456
  "extra": {
457
  "branch-alias": {
458
+ "dev-master": "1.0.x-dev"
459
  }
460
  },
461
  "autoload": {
462
+ "psr-4": {
463
+ "phpDocumentor\\Reflection\\": [
464
  "src/"
465
  ]
466
  }
472
  "authors": [
473
  {
474
  "name": "Mike van Riel",
475
+ "email": "me@mikevanriel.com"
476
  }
477
  ],
478
+ "time": "2017-07-14T14:27:02+00:00"
479
  },
480
  {
481
  "name": "phpspec/prophecy",
482
+ "version": "v1.7.2",
483
  "source": {
484
  "type": "git",
485
  "url": "https://github.com/phpspec/prophecy.git",
486
+ "reference": "c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6"
487
  },
488
  "dist": {
489
  "type": "zip",
490
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6",
491
+ "reference": "c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6",
492
  "shasum": ""
493
  },
494
  "require": {
495
  "doctrine/instantiator": "^1.0.2",
496
  "php": "^5.3|^7.0",
497
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
498
+ "sebastian/comparator": "^1.1|^2.0",
499
+ "sebastian/recursion-context": "^1.0|^2.0|^3.0"
500
  },
501
  "require-dev": {
502
+ "phpspec/phpspec": "^2.5|^3.2",
503
+ "phpunit/phpunit": "^4.8 || ^5.6.5"
504
  },
505
  "type": "library",
506
  "extra": {
507
  "branch-alias": {
508
+ "dev-master": "1.7.x-dev"
509
  }
510
  },
511
  "autoload": {
538
  "spy",
539
  "stub"
540
  ],
541
+ "time": "2017-09-04T11:05:03+00:00"
542
  },
543
  {
544
  "name": "phpunit/php-code-coverage",
545
+ "version": "4.0.8",
546
  "source": {
547
  "type": "git",
548
  "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
549
+ "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d"
550
  },
551
  "dist": {
552
  "type": "zip",
553
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d",
554
+ "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d",
555
  "shasum": ""
556
  },
557
  "require": {
558
+ "ext-dom": "*",
559
+ "ext-xmlwriter": "*",
560
  "php": "^5.6 || ^7.0",
561
+ "phpunit/php-file-iterator": "^1.3",
562
+ "phpunit/php-text-template": "^1.2",
563
+ "phpunit/php-token-stream": "^1.4.2 || ^2.0",
564
+ "sebastian/code-unit-reverse-lookup": "^1.0",
565
+ "sebastian/environment": "^1.3.2 || ^2.0",
566
+ "sebastian/version": "^1.0 || ^2.0"
567
  },
568
  "require-dev": {
569
+ "ext-xdebug": "^2.1.4",
570
+ "phpunit/phpunit": "^5.7"
571
  },
572
  "suggest": {
573
+ "ext-xdebug": "^2.5.1"
 
 
574
  },
575
  "type": "library",
576
  "extra": {
577
  "branch-alias": {
578
+ "dev-master": "4.0.x-dev"
579
  }
580
  },
581
  "autoload": {
601
  "testing",
602
  "xunit"
603
  ],
604
+ "time": "2017-04-02T07:44:40+00:00"
605
  },
606
  {
607
  "name": "phpunit/php-file-iterator",
608
+ "version": "1.4.2",
609
  "source": {
610
  "type": "git",
611
  "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
612
+ "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5"
613
  },
614
  "dist": {
615
  "type": "zip",
616
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
617
+ "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
618
  "shasum": ""
619
  },
620
  "require": {
648
  "filesystem",
649
  "iterator"
650
  ],
651
+ "time": "2016-10-03T07:40:28+00:00"
652
  },
653
  {
654
  "name": "phpunit/php-text-template",
689
  "keywords": [
690
  "template"
691
  ],
692
+ "time": "2015-06-21T13:50:34+00:00"
693
  },
694
  {
695
  "name": "phpunit/php-timer",
696
+ "version": "1.0.9",
697
  "source": {
698
  "type": "git",
699
  "url": "https://github.com/sebastianbergmann/php-timer.git",
700
+ "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
701
  },
702
  "dist": {
703
  "type": "zip",
704
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
705
+ "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
706
  "shasum": ""
707
  },
708
  "require": {
709
+ "php": "^5.3.3 || ^7.0"
710
+ },
711
+ "require-dev": {
712
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
713
  },
714
  "type": "library",
715
+ "extra": {
716
+ "branch-alias": {
717
+ "dev-master": "1.0-dev"
718
+ }
719
+ },
720
  "autoload": {
721
  "classmap": [
722
  "src/"
738
  "keywords": [
739
  "timer"
740
  ],
741
+ "time": "2017-02-26T11:10:40+00:00"
742
  },
743
  {
744
  "name": "phpunit/php-token-stream",
745
+ "version": "2.0.1",
746
  "source": {
747
  "type": "git",
748
  "url": "https://github.com/sebastianbergmann/php-token-stream.git",
749
+ "reference": "9a02332089ac48e704c70f6cefed30c224e3c0b0"
750
  },
751
  "dist": {
752
  "type": "zip",
753
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/9a02332089ac48e704c70f6cefed30c224e3c0b0",
754
+ "reference": "9a02332089ac48e704c70f6cefed30c224e3c0b0",
755
  "shasum": ""
756
  },
757
  "require": {
758
  "ext-tokenizer": "*",
759
+ "php": "^7.0"
760
  },
761
  "require-dev": {
762
+ "phpunit/phpunit": "^6.2.4"
763
  },
764
  "type": "library",
765
  "extra": {
766
  "branch-alias": {
767
+ "dev-master": "2.0-dev"
768
  }
769
  },
770
  "autoload": {
787
  "keywords": [
788
  "tokenizer"
789
  ],
790
+ "time": "2017-08-20T05:47:52+00:00"
791
  },
792
  {
793
  "name": "phpunit/phpunit",
794
+ "version": "5.7.21",
795
  "source": {
796
  "type": "git",
797
  "url": "https://github.com/sebastianbergmann/phpunit.git",
798
+ "reference": "3b91adfb64264ddec5a2dee9851f354aa66327db"
799
  },
800
  "dist": {
801
  "type": "zip",
802
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3b91adfb64264ddec5a2dee9851f354aa66327db",
803
+ "reference": "3b91adfb64264ddec5a2dee9851f354aa66327db",
804
  "shasum": ""
805
  },
806
  "require": {
807
  "ext-dom": "*",
808
  "ext-json": "*",
809
+ "ext-libxml": "*",
810
+ "ext-mbstring": "*",
811
+ "ext-xml": "*",
812
  "myclabs/deep-copy": "~1.3",
813
  "php": "^5.6 || ^7.0",
814
+ "phpspec/prophecy": "^1.6.2",
815
+ "phpunit/php-code-coverage": "^4.0.4",
816
  "phpunit/php-file-iterator": "~1.4",
817
  "phpunit/php-text-template": "~1.2",
818
+ "phpunit/php-timer": "^1.0.6",
819
+ "phpunit/phpunit-mock-objects": "^3.2",
820
+ "sebastian/comparator": "^1.2.4",
821
+ "sebastian/diff": "^1.4.3",
822
+ "sebastian/environment": "^1.3.4 || ^2.0",
823
+ "sebastian/exporter": "~2.0",
824
+ "sebastian/global-state": "^1.1",
825
+ "sebastian/object-enumerator": "~2.0",
826
  "sebastian/resource-operations": "~1.0",
827
+ "sebastian/version": "~1.0.3|~2.0",
828
  "symfony/yaml": "~2.1|~3.0"
829
  },
830
+ "conflict": {
831
+ "phpdocumentor/reflection-docblock": "3.0.2"
832
+ },
833
+ "require-dev": {
834
+ "ext-pdo": "*"
835
+ },
836
  "suggest": {
837
+ "ext-xdebug": "*",
838
  "phpunit/php-invoker": "~1.1"
839
  },
840
  "bin": [
843
  "type": "library",
844
  "extra": {
845
  "branch-alias": {
846
+ "dev-master": "5.7.x-dev"
847
  }
848
  },
849
  "autoload": {
869
  "testing",
870
  "xunit"
871
  ],
872
+ "time": "2017-06-21T08:11:54+00:00"
873
  },
874
  {
875
  "name": "phpunit/phpunit-mock-objects",
876
+ "version": "3.4.4",
877
  "source": {
878
  "type": "git",
879
  "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
880
+ "reference": "a23b761686d50a560cc56233b9ecf49597cc9118"
881
  },
882
  "dist": {
883
  "type": "zip",
884
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118",
885
+ "reference": "a23b761686d50a560cc56233b9ecf49597cc9118",
886
  "shasum": ""
887
  },
888
  "require": {
889
  "doctrine/instantiator": "^1.0.2",
890
+ "php": "^5.6 || ^7.0",
891
+ "phpunit/php-text-template": "^1.2",
892
+ "sebastian/exporter": "^1.2 || ^2.0"
893
+ },
894
+ "conflict": {
895
+ "phpunit/phpunit": "<5.4.0"
896
  },
897
  "require-dev": {
898
+ "phpunit/phpunit": "^5.4"
899
  },
900
  "suggest": {
901
  "ext-soap": "*"
903
  "type": "library",
904
  "extra": {
905
  "branch-alias": {
906
+ "dev-master": "3.2.x-dev"
907
  }
908
  },
909
  "autoload": {
928
  "mock",
929
  "xunit"
930
  ],
931
+ "time": "2017-06-30T09:13:00+00:00"
932
  },
933
  {
934
  "name": "psr/http-message",
935
+ "version": "1.0.1",
936
  "source": {
937
  "type": "git",
938
  "url": "https://github.com/php-fig/http-message.git",
939
+ "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
940
  },
941
  "dist": {
942
  "type": "zip",
943
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
944
+ "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
945
  "shasum": ""
946
  },
947
  "require": {
969
  }
970
  ],
971
  "description": "Common interface for HTTP messages",
972
+ "homepage": "https://github.com/php-fig/http-message",
973
  "keywords": [
974
  "http",
975
  "http-message",
978
  "request",
979
  "response"
980
  ],
981
+ "time": "2016-08-06T14:39:51+00:00"
982
  },
983
  {
984
  "name": "sebastian/code-unit-reverse-lookup",
985
+ "version": "1.0.1",
986
  "source": {
987
  "type": "git",
988
  "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
989
+ "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
990
  },
991
  "dist": {
992
  "type": "zip",
993
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
994
+ "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
995
  "shasum": ""
996
  },
997
  "require": {
998
+ "php": "^5.6 || ^7.0"
999
  },
1000
  "require-dev": {
1001
+ "phpunit/phpunit": "^5.7 || ^6.0"
1002
  },
1003
  "type": "library",
1004
  "extra": {
1023
  ],
1024
  "description": "Looks up which function or method a line of code belongs to",
1025
  "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
1026
+ "time": "2017-03-04T06:30:41+00:00"
1027
  },
1028
  {
1029
  "name": "sebastian/comparator",
1030
+ "version": "1.2.4",
1031
  "source": {
1032
  "type": "git",
1033
  "url": "https://github.com/sebastianbergmann/comparator.git",
1034
+ "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
1035
  },
1036
  "dist": {
1037
  "type": "zip",
1038
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
1039
+ "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
1040
  "shasum": ""
1041
  },
1042
  "require": {
1043
  "php": ">=5.3.3",
1044
  "sebastian/diff": "~1.2",
1045
+ "sebastian/exporter": "~1.2 || ~2.0"
1046
  },
1047
  "require-dev": {
1048
  "phpunit/phpunit": "~4.4"
1087
  "compare",
1088
  "equality"
1089
  ],
1090
+ "time": "2017-01-29T09:50:25+00:00"
1091
  },
1092
  {
1093
  "name": "sebastian/diff",
1094
+ "version": "1.4.3",
1095
  "source": {
1096
  "type": "git",
1097
  "url": "https://github.com/sebastianbergmann/diff.git",
1098
+ "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4"
1099
  },
1100
  "dist": {
1101
  "type": "zip",
1102
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4",
1103
+ "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4",
1104
  "shasum": ""
1105
  },
1106
  "require": {
1107
+ "php": "^5.3.3 || ^7.0"
1108
  },
1109
  "require-dev": {
1110
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
1111
  },
1112
  "type": "library",
1113
  "extra": {
1139
  "keywords": [
1140
  "diff"
1141
  ],
1142
+ "time": "2017-05-22T07:24:03+00:00"
1143
  },
1144
  {
1145
  "name": "sebastian/environment",
1146
+ "version": "2.0.0",
1147
  "source": {
1148
  "type": "git",
1149
  "url": "https://github.com/sebastianbergmann/environment.git",
1150
+ "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac"
1151
  },
1152
  "dist": {
1153
  "type": "zip",
1154
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
1155
+ "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
1156
  "shasum": ""
1157
  },
1158
  "require": {
1159
+ "php": "^5.6 || ^7.0"
1160
  },
1161
  "require-dev": {
1162
+ "phpunit/phpunit": "^5.0"
1163
  },
1164
  "type": "library",
1165
  "extra": {
1166
  "branch-alias": {
1167
+ "dev-master": "2.0.x-dev"
1168
  }
1169
  },
1170
  "autoload": {
1189
  "environment",
1190
  "hhvm"
1191
  ],
1192
+ "time": "2016-11-26T07:53:53+00:00"
1193
  },
1194
  {
1195
  "name": "sebastian/exporter",
1196
+ "version": "2.0.0",
1197
  "source": {
1198
  "type": "git",
1199
  "url": "https://github.com/sebastianbergmann/exporter.git",
1200
+ "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4"
1201
  },
1202
  "dist": {
1203
  "type": "zip",
1204
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
1205
+ "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
1206
  "shasum": ""
1207
  },
1208
  "require": {
1209
  "php": ">=5.3.3",
1210
+ "sebastian/recursion-context": "~2.0"
1211
  },
1212
  "require-dev": {
1213
+ "ext-mbstring": "*",
1214
  "phpunit/phpunit": "~4.4"
1215
  },
1216
  "type": "library",
1217
  "extra": {
1218
  "branch-alias": {
1219
+ "dev-master": "2.0.x-dev"
1220
  }
1221
  },
1222
  "autoload": {
1256
  "export",
1257
  "exporter"
1258
  ],
1259
+ "time": "2016-11-19T08:54:04+00:00"
1260
  },
1261
  {
1262
  "name": "sebastian/global-state",
1307
  "keywords": [
1308
  "global state"
1309
  ],
1310
+ "time": "2015-10-12T03:26:01+00:00"
1311
+ },
1312
+ {
1313
+ "name": "sebastian/object-enumerator",
1314
+ "version": "2.0.1",
1315
+ "source": {
1316
+ "type": "git",
1317
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
1318
+ "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7"
1319
+ },
1320
+ "dist": {
1321
+ "type": "zip",
1322
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7",
1323
+ "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7",
1324
+ "shasum": ""
1325
+ },
1326
+ "require": {
1327
+ "php": ">=5.6",
1328
+ "sebastian/recursion-context": "~2.0"
1329
+ },
1330
+ "require-dev": {
1331
+ "phpunit/phpunit": "~5"
1332
+ },
1333
+ "type": "library",
1334
+ "extra": {
1335
+ "branch-alias": {
1336
+ "dev-master": "2.0.x-dev"
1337
+ }
1338
+ },
1339
+ "autoload": {
1340
+ "classmap": [
1341
+ "src/"
1342
+ ]
1343
+ },
1344
+ "notification-url": "https://packagist.org/downloads/",
1345
+ "license": [
1346
+ "BSD-3-Clause"
1347
+ ],
1348
+ "authors": [
1349
+ {
1350
+ "name": "Sebastian Bergmann",
1351
+ "email": "sebastian@phpunit.de"
1352
+ }
1353
+ ],
1354
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
1355
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
1356
+ "time": "2017-02-18T15:18:39+00:00"
1357
  },
1358
  {
1359
  "name": "sebastian/recursion-context",
1360
+ "version": "2.0.0",
1361
  "source": {
1362
  "type": "git",
1363
  "url": "https://github.com/sebastianbergmann/recursion-context.git",
1364
+ "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a"
1365
  },
1366
  "dist": {
1367
  "type": "zip",
1368
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a",
1369
+ "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a",
1370
  "shasum": ""
1371
  },
1372
  "require": {
1378
  "type": "library",
1379
  "extra": {
1380
  "branch-alias": {
1381
+ "dev-master": "2.0.x-dev"
1382
  }
1383
  },
1384
  "autoload": {
1406
  ],
1407
  "description": "Provides functionality to recursively process PHP variables",
1408
  "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
1409
+ "time": "2016-11-19T07:33:16+00:00"
1410
  },
1411
  {
1412
  "name": "sebastian/resource-operations",
1448
  ],
1449
  "description": "Provides a list of PHP built-in functions that operate on resources",
1450
  "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
1451
+ "time": "2015-07-28T20:34:47+00:00"
1452
  },
1453
  {
1454
  "name": "sebastian/version",
1455
+ "version": "2.0.1",
1456
  "source": {
1457
  "type": "git",
1458
  "url": "https://github.com/sebastianbergmann/version.git",
1459
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
1460
  },
1461
  "dist": {
1462
  "type": "zip",
1463
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
1464
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
1465
  "shasum": ""
1466
  },
1467
  "require": {
1491
  ],
1492
  "description": "Library that helps with managing the version number of Git-hosted PHP projects",
1493
  "homepage": "https://github.com/sebastianbergmann/version",
1494
+ "time": "2016-10-03T07:35:21+00:00"
1495
  },
1496
  {
1497
  "name": "symfony/yaml",
1498
+ "version": "v3.3.8",
1499
  "source": {
1500
  "type": "git",
1501
  "url": "https://github.com/symfony/yaml.git",
1502
+ "reference": "1d8c2a99c80862bdc3af94c1781bf70f86bccac0"
1503
  },
1504
  "dist": {
1505
  "type": "zip",
1506
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/1d8c2a99c80862bdc3af94c1781bf70f86bccac0",
1507
+ "reference": "1d8c2a99c80862bdc3af94c1781bf70f86bccac0",
1508
  "shasum": ""
1509
  },
1510
  "require": {
1511
+ "php": "^5.5.9|>=7.0.8"
1512
+ },
1513
+ "require-dev": {
1514
+ "symfony/console": "~2.8|~3.0"
1515
+ },
1516
+ "suggest": {
1517
+ "symfony/console": "For validating YAML files using the lint command"
1518
  },
1519
  "type": "library",
1520
  "extra": {
1521
  "branch-alias": {
1522
+ "dev-master": "3.3-dev"
1523
  }
1524
  },
1525
  "autoload": {
1546
  ],
1547
  "description": "Symfony Yaml Component",
1548
  "homepage": "https://symfony.com",
1549
+ "time": "2017-07-29T21:54:42+00:00"
1550
+ },
1551
+ {
1552
+ "name": "webmozart/assert",
1553
+ "version": "1.2.0",
1554
+ "source": {
1555
+ "type": "git",
1556
+ "url": "https://github.com/webmozart/assert.git",
1557
+ "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f"
1558
+ },
1559
+ "dist": {
1560
+ "type": "zip",
1561
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f",
1562
+ "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f",
1563
+ "shasum": ""
1564
+ },
1565
+ "require": {
1566
+ "php": "^5.3.3 || ^7.0"
1567
+ },
1568
+ "require-dev": {
1569
+ "phpunit/phpunit": "^4.6",
1570
+ "sebastian/version": "^1.0.1"
1571
+ },
1572
+ "type": "library",
1573
+ "extra": {
1574
+ "branch-alias": {
1575
+ "dev-master": "1.3-dev"
1576
+ }
1577
+ },
1578
+ "autoload": {
1579
+ "psr-4": {
1580
+ "Webmozart\\Assert\\": "src/"
1581
+ }
1582
+ },
1583
+ "notification-url": "https://packagist.org/downloads/",
1584
+ "license": [
1585
+ "MIT"
1586
+ ],
1587
+ "authors": [
1588
+ {
1589
+ "name": "Bernhard Schussek",
1590
+ "email": "bschussek@gmail.com"
1591
+ }
1592
+ ],
1593
+ "description": "Assertions to validate method input/output with nice error messages.",
1594
+ "keywords": [
1595
+ "assert",
1596
+ "check",
1597
+ "validate"
1598
+ ],
1599
+ "time": "2016-11-23T20:04:58+00:00"
1600
  }
1601
  ],
1602
  "aliases": [],
includes/vendor/autoload.php CHANGED
@@ -2,6 +2,6 @@
2
 
3
  // autoload.php @generated by Composer
4
 
5
- require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
  return ComposerAutoloaderInit6ba6ee55693d165c056f65e51c5383a5::getLoader();
2
 
3
  // autoload.php @generated by Composer
4
 
5
+ require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
  return ComposerAutoloaderInit6ba6ee55693d165c056f65e51c5383a5::getLoader();
includes/vendor/composer/ClassLoader.php CHANGED
@@ -53,8 +53,9 @@ class ClassLoader
53
 
54
  private $useIncludePath = false;
55
  private $classMap = array();
56
-
57
  private $classMapAuthoritative = false;
 
 
58
 
59
  public function getPrefixes()
60
  {
@@ -271,6 +272,26 @@ class ClassLoader
271
  return $this->classMapAuthoritative;
272
  }
273
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
274
  /**
275
  * Registers this instance as an autoloader.
276
  *
@@ -313,29 +334,34 @@ class ClassLoader
313
  */
314
  public function findFile($class)
315
  {
316
- // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731
317
- if ('\\' == $class[0]) {
318
- $class = substr($class, 1);
319
- }
320
-
321
  // class map lookup
322
  if (isset($this->classMap[$class])) {
323
  return $this->classMap[$class];
324
  }
325
- if ($this->classMapAuthoritative) {
326
  return false;
327
  }
 
 
 
 
 
 
328
 
329
  $file = $this->findFileWithExtension($class, '.php');
330
 
331
  // Search for Hack files if we are running on HHVM
332
- if ($file === null && defined('HHVM_VERSION')) {
333
  $file = $this->findFileWithExtension($class, '.hh');
334
  }
335
 
336
- if ($file === null) {
 
 
 
 
337
  // Remember that this class does not exist.
338
- return $this->classMap[$class] = false;
339
  }
340
 
341
  return $file;
@@ -348,9 +374,13 @@ class ClassLoader
348
 
349
  $first = $class[0];
350
  if (isset($this->prefixLengthsPsr4[$first])) {
351
- foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
352
- if (0 === strpos($class, $prefix)) {
353
- foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
 
 
 
 
354
  if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
355
  return $file;
356
  }
@@ -399,6 +429,8 @@ class ClassLoader
399
  if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
400
  return $file;
401
  }
 
 
402
  }
403
  }
404
 
53
 
54
  private $useIncludePath = false;
55
  private $classMap = array();
 
56
  private $classMapAuthoritative = false;
57
+ private $missingClasses = array();
58
+ private $apcuPrefix;
59
 
60
  public function getPrefixes()
61
  {
272
  return $this->classMapAuthoritative;
273
  }
274
 
275
+ /**
276
+ * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
277
+ *
278
+ * @param string|null $apcuPrefix
279
+ */
280
+ public function setApcuPrefix($apcuPrefix)
281
+ {
282
+ $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
283
+ }
284
+
285
+ /**
286
+ * The APCu prefix in use, or null if APCu caching is not enabled.
287
+ *
288
+ * @return string|null
289
+ */
290
+ public function getApcuPrefix()
291
+ {
292
+ return $this->apcuPrefix;
293
+ }
294
+
295
  /**
296
  * Registers this instance as an autoloader.
297
  *
334
  */
335
  public function findFile($class)
336
  {
 
 
 
 
 
337
  // class map lookup
338
  if (isset($this->classMap[$class])) {
339
  return $this->classMap[$class];
340
  }
341
+ if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
342
  return false;
343
  }
344
+ if (null !== $this->apcuPrefix) {
345
+ $file = apcu_fetch($this->apcuPrefix.$class, $hit);
346
+ if ($hit) {
347
+ return $file;
348
+ }
349
+ }
350
 
351
  $file = $this->findFileWithExtension($class, '.php');
352
 
353
  // Search for Hack files if we are running on HHVM
354
+ if (false === $file && defined('HHVM_VERSION')) {
355
  $file = $this->findFileWithExtension($class, '.hh');
356
  }
357
 
358
+ if (null !== $this->apcuPrefix) {
359
+ apcu_add($this->apcuPrefix.$class, $file);
360
+ }
361
+
362
+ if (false === $file) {
363
  // Remember that this class does not exist.
364
+ $this->missingClasses[$class] = true;
365
  }
366
 
367
  return $file;
374
 
375
  $first = $class[0];
376
  if (isset($this->prefixLengthsPsr4[$first])) {
377
+ $subPath = $class;
378
+ while (false !== $lastPos = strrpos($subPath, '\\')) {
379
+ $subPath = substr($subPath, 0, $lastPos);
380
+ $search = $subPath.'\\';
381
+ if (isset($this->prefixDirsPsr4[$search])) {
382
+ foreach ($this->prefixDirsPsr4[$search] as $dir) {
383
+ $length = $this->prefixLengthsPsr4[$first][$search];
384
  if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
385
  return $file;
386
  }
429
  if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
430
  return $file;
431
  }
432
+
433
+ return false;
434
  }
435
  }
436
 
includes/vendor/composer/LICENSE CHANGED
@@ -1,5 +1,5 @@
1
 
2
- Copyright (c) 2016 Nils Adermann, Jordi Boggiano
3
 
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
5
  of this software and associated documentation files (the "Software"), to deal
1
 
2
+ Copyright (c) Nils Adermann, Jordi Boggiano
3
 
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
5
  of this software and associated documentation files (the "Software"), to deal
includes/vendor/composer/autoload_files.php DELETED
@@ -1,12 +0,0 @@
1
- <?php
2
-
3
- // autoload_files.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname(dirname($vendorDir));
7
-
8
- return array(
9
- 'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
10
- 'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
11
- '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
12
- );
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/autoload_real.php CHANGED
@@ -23,7 +23,7 @@ class ComposerAutoloaderInit6ba6ee55693d165c056f65e51c5383a5
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
  spl_autoload_unregister(array('ComposerAutoloaderInit6ba6ee55693d165c056f65e51c5383a5', 'loadClassLoader'));
25
 
26
- $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION');
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
  spl_autoload_unregister(array('ComposerAutoloaderInit6ba6ee55693d165c056f65e51c5383a5', 'loadClassLoader'));
25
 
26
+ $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
includes/vendor/composer/installed.json CHANGED
@@ -1,23 +1,26 @@
1
  [
2
  {
3
  "name": "firebase/php-jwt",
4
- "version": "v3.0.0",
5
- "version_normalized": "3.0.0.0",
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/firebase/php-jwt.git",
9
- "reference": "fa8a06e96526eb7c0eeaa47e4f39be59d21f16e1"
10
  },
11
  "dist": {
12
  "type": "zip",
13
- "url": "https://api.github.com/repos/firebase/php-jwt/zipball/fa8a06e96526eb7c0eeaa47e4f39be59d21f16e1",
14
- "reference": "fa8a06e96526eb7c0eeaa47e4f39be59d21f16e1",
15
  "shasum": ""
16
  },
17
  "require": {
18
  "php": ">=5.3.0"
19
  },
20
- "time": "2015-07-22 18:31:08",
 
 
 
21
  "type": "library",
22
  "installation-source": "dist",
23
  "autoload": {
1
  [
2
  {
3
  "name": "firebase/php-jwt",
4
+ "version": "v5.0.0",
5
+ "version_normalized": "5.0.0.0",
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/firebase/php-jwt.git",
9
+ "reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e"
10
  },
11
  "dist": {
12
  "type": "zip",
13
+ "url": "https://api.github.com/repos/firebase/php-jwt/zipball/9984a4d3a32ae7673d6971ea00bae9d0a1abba0e",
14
+ "reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e",
15
  "shasum": ""
16
  },
17
  "require": {
18
  "php": ">=5.3.0"
19
  },
20
+ "require-dev": {
21
+ "phpunit/phpunit": " 4.8.35"
22
+ },
23
+ "time": "2017-06-27T22:17:23+00:00",
24
  "type": "library",
25
  "installation-source": "dist",
26
  "autoload": {
includes/vendor/firebase/php-jwt/.travis.yml DELETED
@@ -1,13 +0,0 @@
1
- language: php
2
-
3
- php:
4
- - 5.3
5
- - 5.4
6
- - 5.5
7
- - hhvm
8
-
9
- before_script:
10
- - wget -nc http://getcomposer.org/composer.phar
11
- - php composer.phar install
12
-
13
- script: phpunit --configuration phpunit.xml.dist
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/firebase/php-jwt/README.md CHANGED
@@ -5,8 +5,7 @@
5
 
6
  PHP-JWT
7
  =======
8
- A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should
9
- conform to the [current spec](http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-06)
10
 
11
  Installation
12
  ------------
@@ -59,12 +58,93 @@ $decoded_array = (array) $decoded;
59
  JWT::$leeway = 60; // $leeway in seconds
60
  $decoded = JWT::decode($jwt, $key, array('HS256'));
61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
  ?>
63
  ```
64
 
65
  Changelog
66
  ---------
67
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  #### 3.0.0 / 2015-07-22
69
  - Minimum PHP version updated from `5.2.0` to `5.3.0`.
70
  - Add `\Firebase\JWT` namespace. See
@@ -109,6 +189,12 @@ Time: 0 seconds, Memory: 2.50Mb
109
  OK (5 tests, 5 assertions)
110
  ```
111
 
 
 
 
 
 
 
112
  License
113
  -------
114
  [3-Clause BSD](http://opensource.org/licenses/BSD-3-Clause).
5
 
6
  PHP-JWT
7
  =======
8
+ A simple library to encode and decode JSON Web Tokens (JWT) in PHP, conforming to [RFC 7519](https://tools.ietf.org/html/rfc7519).
 
9
 
10
  Installation
11
  ------------
58
  JWT::$leeway = 60; // $leeway in seconds
59
  $decoded = JWT::decode($jwt, $key, array('HS256'));
60
 
61
+ ?>
62
+ ```
63
+ Example with RS256 (openssl)
64
+ ----------------------------
65
+ ```php
66
+ <?php
67
+ use \Firebase\JWT\JWT;
68
+
69
+ $privateKey = <<<EOD
70
+ -----BEGIN RSA PRIVATE KEY-----
71
+ MIICXAIBAAKBgQC8kGa1pSjbSYZVebtTRBLxBz5H4i2p/llLCrEeQhta5kaQu/Rn
72
+ vuER4W8oDH3+3iuIYW4VQAzyqFpwuzjkDI+17t5t0tyazyZ8JXw+KgXTxldMPEL9
73
+ 5+qVhgXvwtihXC1c5oGbRlEDvDF6Sa53rcFVsYJ4ehde/zUxo6UvS7UrBQIDAQAB
74
+ AoGAb/MXV46XxCFRxNuB8LyAtmLDgi/xRnTAlMHjSACddwkyKem8//8eZtw9fzxz
75
+ bWZ/1/doQOuHBGYZU8aDzzj59FZ78dyzNFoF91hbvZKkg+6wGyd/LrGVEB+Xre0J
76
+ Nil0GReM2AHDNZUYRv+HYJPIOrB0CRczLQsgFJ8K6aAD6F0CQQDzbpjYdx10qgK1
77
+ cP59UHiHjPZYC0loEsk7s+hUmT3QHerAQJMZWC11Qrn2N+ybwwNblDKv+s5qgMQ5
78
+ 5tNoQ9IfAkEAxkyffU6ythpg/H0Ixe1I2rd0GbF05biIzO/i77Det3n4YsJVlDck
79
+ ZkcvY3SK2iRIL4c9yY6hlIhs+K9wXTtGWwJBAO9Dskl48mO7woPR9uD22jDpNSwe
80
+ k90OMepTjzSvlhjbfuPN1IdhqvSJTDychRwn1kIJ7LQZgQ8fVz9OCFZ/6qMCQGOb
81
+ qaGwHmUK6xzpUbbacnYrIM6nLSkXgOAwv7XXCojvY614ILTK3iXiLBOxPu5Eu13k
82
+ eUz9sHyD6vkgZzjtxXECQAkp4Xerf5TGfQXGXhxIX52yH+N2LtujCdkQZjXAsGdm
83
+ B2zNzvrlgRmgBrklMTrMYgm1NPcW+bRLGcwgW2PTvNM=
84
+ -----END RSA PRIVATE KEY-----
85
+ EOD;
86
+
87
+ $publicKey = <<<EOD
88
+ -----BEGIN PUBLIC KEY-----
89
+ MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8kGa1pSjbSYZVebtTRBLxBz5H
90
+ 4i2p/llLCrEeQhta5kaQu/RnvuER4W8oDH3+3iuIYW4VQAzyqFpwuzjkDI+17t5t
91
+ 0tyazyZ8JXw+KgXTxldMPEL95+qVhgXvwtihXC1c5oGbRlEDvDF6Sa53rcFVsYJ4
92
+ ehde/zUxo6UvS7UrBQIDAQAB
93
+ -----END PUBLIC KEY-----
94
+ EOD;
95
+
96
+ $token = array(
97
+ "iss" => "example.org",
98
+ "aud" => "example.com",
99
+ "iat" => 1356999524,
100
+ "nbf" => 1357000000
101
+ );
102
+
103
+ $jwt = JWT::encode($token, $privateKey, 'RS256');
104
+ echo "Encode:\n" . print_r($jwt, true) . "\n";
105
+
106
+ $decoded = JWT::decode($jwt, $publicKey, array('RS256'));
107
+
108
+ /*
109
+ NOTE: This will now be an object instead of an associative array. To get
110
+ an associative array, you will need to cast it as such:
111
+ */
112
+
113
+ $decoded_array = (array) $decoded;
114
+ echo "Decode:\n" . print_r($decoded_array, true) . "\n";
115
  ?>
116
  ```
117
 
118
  Changelog
119
  ---------
120
 
121
+ #### 5.0.0 / 2017-06-26
122
+ - Support RS384 and RS512.
123
+ See [#117](https://github.com/firebase/php-jwt/pull/117). Thanks [@joostfaassen](https://github.com/joostfaassen)!
124
+ - Add an example for RS256 openssl.
125
+ See [#125](https://github.com/firebase/php-jwt/pull/125). Thanks [@akeeman](https://github.com/akeeman)!
126
+ - Detect invalid Base64 encoding in signature.
127
+ See [#162](https://github.com/firebase/php-jwt/pull/162). Thanks [@psignoret](https://github.com/psignoret)!
128
+ - Update `JWT::verify` to handle OpenSSL errors.
129
+ See [#159](https://github.com/firebase/php-jwt/pull/159). Thanks [@bshaffer](https://github.com/bshaffer)!
130
+ - Add `array` type hinting to `decode` method
131
+ See [#101](https://github.com/firebase/php-jwt/pull/101). Thanks [@hywak](https://github.com/hywak)!
132
+ - Add all JSON error types.
133
+ See [#110](https://github.com/firebase/php-jwt/pull/110). Thanks [@gbalduzzi](https://github.com/gbalduzzi)!
134
+ - Bugfix 'kid' not in given key list.
135
+ See [#129](https://github.com/firebase/php-jwt/pull/129). Thanks [@stampycode](https://github.com/stampycode)!
136
+ - Miscellaneous cleanup, documentation and test fixes.
137
+ See [#107](https://github.com/firebase/php-jwt/pull/107), [#115](https://github.com/firebase/php-jwt/pull/115),
138
+ [#160](https://github.com/firebase/php-jwt/pull/160), [#161](https://github.com/firebase/php-jwt/pull/161), and
139
+ [#165](https://github.com/firebase/php-jwt/pull/165). Thanks [@akeeman](https://github.com/akeeman),
140
+ [@chinedufn](https://github.com/chinedufn), and [@bshaffer](https://github.com/bshaffer)!
141
+
142
+ #### 4.0.0 / 2016-07-17
143
+ - Add support for late static binding. See [#88](https://github.com/firebase/php-jwt/pull/88) for details. Thanks to [@chappy84](https://github.com/chappy84)!
144
+ - Use static `$timestamp` instead of `time()` to improve unit testing. See [#93](https://github.com/firebase/php-jwt/pull/93) for details. Thanks to [@josephmcdermott](https://github.com/josephmcdermott)!
145
+ - Fixes to exceptions classes. See [#81](https://github.com/firebase/php-jwt/pull/81) for details. Thanks to [@Maks3w](https://github.com/Maks3w)!
146
+ - Fixes to PHPDoc. See [#76](https://github.com/firebase/php-jwt/pull/76) for details. Thanks to [@akeeman](https://github.com/akeeman)!
147
+
148
  #### 3.0.0 / 2015-07-22
149
  - Minimum PHP version updated from `5.2.0` to `5.3.0`.
150
  - Add `\Firebase\JWT` namespace. See
189
  OK (5 tests, 5 assertions)
190
  ```
191
 
192
+ New Lines in private keys
193
+ -----
194
+
195
+ If your private key contains `\n` characters, be sure to wrap it in double quotes `""`
196
+ and not single quotes `''` in order to properly interpret the escaped characters.
197
+
198
  License
199
  -------
200
  [3-Clause BSD](http://opensource.org/licenses/BSD-3-Clause).
includes/vendor/firebase/php-jwt/composer.json CHANGED
@@ -23,5 +23,7 @@
23
  "Firebase\\JWT\\": "src"
24
  }
25
  },
26
- "minimum-stability": "dev"
 
 
27
  }
23
  "Firebase\\JWT\\": "src"
24
  }
25
  },
26
+ "require-dev": {
27
+ "phpunit/phpunit": " 4.8.35"
28
+ }
29
  }
includes/vendor/firebase/php-jwt/composer.lock DELETED
@@ -1,19 +0,0 @@
1
- {
2
- "_readme": [
3
- "This file locks the dependencies of your project to a known state",
4
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5
- "This file is @generated automatically"
6
- ],
7
- "hash": "60a5df5d283a7ae9000173248eba8909",
8
- "packages": [],
9
- "packages-dev": [],
10
- "aliases": [],
11
- "minimum-stability": "dev",
12
- "stability-flags": [],
13
- "prefer-stable": false,
14
- "prefer-lowest": false,
15
- "platform": {
16
- "php": ">=5.2.0"
17
- },
18
- "platform-dev": []
19
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/firebase/php-jwt/package.xml DELETED
@@ -1,77 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <package packagerversion="1.9.2" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
3
- http://pear.php.net/dtd/tasks-1.0.xsd
4
- http://pear.php.net/dtd/package-2.0
5
- http://pear.php.net/dtd/package-2.0.xsd">
6
- <name>JWT</name>
7
- <channel>pear.php.net</channel>
8
- <summary>A JWT encoder/decoder.</summary>
9
- <description>A JWT encoder/decoder library for PHP.</description>
10
- <lead>
11
- <name>Neuman Vong</name>
12
- <user>lcfrs</user>
13
- <email>neuman+pear@twilio.com</email>
14
- <active>yes</active>
15
- </lead>
16
- <lead>
17
- <name>Firebase Operations</name>
18
- <user>firebase</user>
19
- <email>operations@firebase.com</email>
20
- <active>yes</active>
21
- </lead>
22
- <date>2015-07-22</date>
23
- <version>
24
- <release>3.0.0</release>
25
- <api>3.0.0</api>
26
- </version>
27
- <stability>
28
- <release>beta</release>
29
- <api>beta</api>
30
- </stability>
31
- <license uri="http://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</license>
32
- <notes>
33
- Initial release with basic support for JWT encoding, decoding and signature verification.
34
- </notes>
35
- <contents>
36
- <dir baseinstalldir="/" name="/">
37
- <dir name="tests">
38
- <file name="JWTTest.php" role="test" />
39
- </dir>
40
- <file name="Authentication/JWT.php" role="php" />
41
- </dir>
42
- </contents>
43
- <dependencies>
44
- <required>
45
- <php>
46
- <min>5.1</min>
47
- </php>
48
- <pearinstaller>
49
- <min>1.7.0</min>
50
- </pearinstaller>
51
- <extension>
52
- <name>json</name>
53
- </extension>
54
- <extension>
55
- <name>hash</name>
56
- </extension>
57
- </required>
58
- </dependencies>
59
- <phprelease />
60
- <changelog>
61
- <release>
62
- <version>
63
- <release>0.1.0</release>
64
- <api>0.1.0</api>
65
- </version>
66
- <stability>
67
- <release>beta</release>
68
- <api>beta</api>
69
- </stability>
70
- <date>2015-04-01</date>
71
- <license uri="http://opensource.org/licenses/BSD-3-Clause">BSD 3-Clause License</license>
72
- <notes>
73
- Initial release with basic support for JWT encoding, decoding and signature verification.
74
- </notes>
75
- </release>
76
- </changelog>
77
- </package>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/firebase/php-jwt/phpunit.xml.dist DELETED
@@ -1,19 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
-
3
- <phpunit backupGlobals="false"
4
- backupStaticAttributes="false"
5
- colors="true"
6
- convertErrorsToExceptions="true"
7
- convertNoticesToExceptions="true"
8
- convertWarningsToExceptions="true"
9
- processIsolation="false"
10
- stopOnFailure="false"
11
- syntaxCheck="false"
12
- bootstrap="tests/bootstrap.php"
13
- >
14
- <testsuites>
15
- <testsuite name="PHP JSON Web Token Test Suite">
16
- <directory>./tests</directory>
17
- </testsuite>
18
- </testsuites>
19
- </phpunit>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/firebase/php-jwt/run-tests.sh DELETED
@@ -1,38 +0,0 @@
1
-
2
- #!/usr/bin/env bash
3
- gpg --fingerprint D8406D0D82947747293778314AA394086372C20A
4
- if [ $? -ne 0 ]; then
5
- echo -e "\033[33mDownloading PGP Public Key...\033[0m"
6
- gpg --recv-keys D8406D0D82947747293778314AA394086372C20A
7
- # Sebastian Bergmann <sb@sebastian-bergmann.de>
8
- gpg --fingerprint D8406D0D82947747293778314AA394086372C20A
9
- if [ $? -ne 0 ]; then
10
- echo -e "\033[31mCould not download PGP public key for verification\033[0m"
11
- exit
12
- fi
13
- fi
14
-
15
- # Let's grab the latest release and its signature
16
- if [ ! -f phpunit.phar ]; then
17
- wget https://phar.phpunit.de/phpunit.phar
18
- fi
19
- if [ ! -f phpunit.phar.asc ]; then
20
- wget https://phar.phpunit.de/phpunit.phar.asc
21
- fi
22
-
23
- # Verify before running
24
- gpg --verify phpunit.phar.asc phpunit.phar
25
- if [ $? -eq 0 ]; then
26
- echo
27
- echo -e "\033[33mBegin Unit Testing\033[0m"
28
- # Run the testing suite
29
- php --version
30
- php phpunit.phar --configuration phpunit.xml.dist
31
- else
32
- echo
33
- chmod -x phpunit.phar
34
- mv phpunit.phar /tmp/bad-phpunit.phar
35
- mv phpunit.phar.asc /tmp/bad-phpunit.phar.asc
36
- echo -e "\033[31mSignature did not match! PHPUnit has been moved to /tmp/bad-phpunit.phar\033[0m"
37
- exit 1
38
- fi
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/firebase/php-jwt/src/JWT.php CHANGED
@@ -8,7 +8,7 @@ use \DateTime;
8
 
9
  /**
10
  * JSON Web Token implementation, based on this spec:
11
- * http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-06
12
  *
13
  * PHP version 5
14
  *
@@ -29,25 +29,34 @@ class JWT
29
  */
30
  public static $leeway = 0;
31
 
 
 
 
 
 
 
 
 
32
  public static $supported_algs = array(
33
  'HS256' => array('hash_hmac', 'SHA256'),
34
  'HS512' => array('hash_hmac', 'SHA512'),
35
  'HS384' => array('hash_hmac', 'SHA384'),
36
  'RS256' => array('openssl', 'SHA256'),
 
 
37
  );
38
 
39
  /**
40
  * Decodes a JWT string into a PHP object.
41
  *
42
- * @param string $jwt The JWT
43
- * @param string|array|null $key The key, or map of keys.
44
- * If the algorithm used is asymmetric, this is the public key
45
- * @param array $allowed_algs List of supported verification algorithms
46
- * Supported algorithms are 'HS256', 'HS384', 'HS512' and 'RS256'
47
  *
48
  * @return object The JWT's payload as a PHP object
49
  *
50
- * @throws DomainException Algorithm was not provided
51
  * @throws UnexpectedValueException Provided JWT was invalid
52
  * @throws SignatureInvalidException Provided JWT was invalid because the signature verification failed
53
  * @throws BeforeValidException Provided JWT is trying to be used before it's eligible as defined by 'nbf'
@@ -57,8 +66,10 @@ class JWT
57
  * @uses jsonDecode
58
  * @uses urlsafeB64Decode
59
  */
60
- public static function decode($jwt, $key, $allowed_algs = array())
61
  {
 
 
62
  if (empty($key)) {
63
  throw new InvalidArgumentException('Key may not be empty');
64
  }
@@ -67,39 +78,43 @@ class JWT
67
  throw new UnexpectedValueException('Wrong number of segments');
68
  }
69
  list($headb64, $bodyb64, $cryptob64) = $tks;
70
- if (null === ($header = JWT::jsonDecode(JWT::urlsafeB64Decode($headb64)))) {
71
  throw new UnexpectedValueException('Invalid header encoding');
72
  }
73
- if (null === $payload = JWT::jsonDecode(JWT::urlsafeB64Decode($bodyb64))) {
74
  throw new UnexpectedValueException('Invalid claims encoding');
75
  }
76
- $sig = JWT::urlsafeB64Decode($cryptob64);
77
-
 
78
  if (empty($header->alg)) {
79
- throw new DomainException('Empty algorithm');
80
  }
81
- if (empty(self::$supported_algs[$header->alg])) {
82
- throw new DomainException('Algorithm not supported');
83
  }
84
- if (!is_array($allowed_algs) || !in_array($header->alg, $allowed_algs)) {
85
- throw new DomainException('Algorithm not allowed');
86
  }
87
  if (is_array($key) || $key instanceof \ArrayAccess) {
88
  if (isset($header->kid)) {
 
 
 
89
  $key = $key[$header->kid];
90
  } else {
91
- throw new DomainException('"kid" empty, unable to lookup correct key');
92
  }
93
  }
94
 
95
  // Check the signature
96
- if (!JWT::verify("$headb64.$bodyb64", $sig, $key, $header->alg)) {
97
  throw new SignatureInvalidException('Signature verification failed');
98
  }
99
 
100
  // Check if the nbf if it is defined. This is the time that the
101
  // token can actually be used. If it's not yet that time, abort.
102
- if (isset($payload->nbf) && $payload->nbf > (time() + self::$leeway)) {
103
  throw new BeforeValidException(
104
  'Cannot handle token prior to ' . date(DateTime::ISO8601, $payload->nbf)
105
  );
@@ -108,14 +123,14 @@ class JWT
108
  // Check that this token has been created before 'now'. This prevents
109
  // using tokens that have been created for later use (and haven't
110
  // correctly used the nbf claim).
111
- if (isset($payload->iat) && $payload->iat > (time() + self::$leeway)) {
112
  throw new BeforeValidException(
113
  'Cannot handle token prior to ' . date(DateTime::ISO8601, $payload->iat)
114
  );
115
  }
116
 
117
  // Check if this token has expired.
118
- if (isset($payload->exp) && (time() - self::$leeway) >= $payload->exp) {
119
  throw new ExpiredException('Expired token');
120
  }
121
 
@@ -130,6 +145,7 @@ class JWT
130
  * If the algorithm used is asymmetric, this is the private key
131
  * @param string $alg The signing algorithm.
132
  * Supported algorithms are 'HS256', 'HS384', 'HS512' and 'RS256'
 
133
  * @param array $head An array with header elements to attach
134
  *
135
  * @return string A signed JWT
@@ -147,12 +163,12 @@ class JWT
147
  $header = array_merge($head, $header);
148
  }
149
  $segments = array();
150
- $segments[] = JWT::urlsafeB64Encode(JWT::jsonEncode($header));
151
- $segments[] = JWT::urlsafeB64Encode(JWT::jsonEncode($payload));
152
  $signing_input = implode('.', $segments);
153
 
154
- $signature = JWT::sign($signing_input, $key, $alg);
155
- $segments[] = JWT::urlsafeB64Encode($signature);
156
 
157
  return implode('.', $segments);
158
  }
@@ -171,10 +187,10 @@ class JWT
171
  */
172
  public static function sign($msg, $key, $alg = 'HS256')
173
  {
174
- if (empty(self::$supported_algs[$alg])) {
175
  throw new DomainException('Algorithm not supported');
176
  }
177
- list($function, $algorithm) = self::$supported_algs[$alg];
178
  switch($function) {
179
  case 'hash_hmac':
180
  return hash_hmac($algorithm, $msg, $key, true);
@@ -204,32 +220,36 @@ class JWT
204
  */
205
  private static function verify($msg, $signature, $key, $alg)
206
  {
207
- if (empty(self::$supported_algs[$alg])) {
208
  throw new DomainException('Algorithm not supported');
209
  }
210
 
211
- list($function, $algorithm) = self::$supported_algs[$alg];
212
  switch($function) {
213
  case 'openssl':
214
  $success = openssl_verify($msg, $signature, $key, $algorithm);
215
- if (!$success) {
216
- throw new DomainException("OpenSSL unable to verify data: " . openssl_error_string());
217
- } else {
218
- return $signature;
219
  }
 
 
 
 
220
  case 'hash_hmac':
221
  default:
222
  $hash = hash_hmac($algorithm, $msg, $key, true);
223
  if (function_exists('hash_equals')) {
224
  return hash_equals($signature, $hash);
225
  }
226
- $len = min(self::safeStrlen($signature), self::safeStrlen($hash));
227
 
228
  $status = 0;
229
  for ($i = 0; $i < $len; $i++) {
230
  $status |= (ord($signature[$i]) ^ ord($hash[$i]));
231
  }
232
- $status |= (self::safeStrlen($signature) ^ self::safeStrlen($hash));
233
 
234
  return ($status === 0);
235
  }
@@ -263,7 +283,7 @@ class JWT
263
  }
264
 
265
  if (function_exists('json_last_error') && $errno = json_last_error()) {
266
- JWT::handleJsonError($errno);
267
  } elseif ($obj === null && $input !== 'null') {
268
  throw new DomainException('Null result with non-null input');
269
  }
@@ -283,7 +303,7 @@ class JWT
283
  {
284
  $json = json_encode($input);
285
  if (function_exists('json_last_error') && $errno = json_last_error()) {
286
- JWT::handleJsonError($errno);
287
  } elseif ($json === 'null' && $input !== null) {
288
  throw new DomainException('Null result with non-null input');
289
  }
@@ -330,8 +350,10 @@ class JWT
330
  {
331
  $messages = array(
332
  JSON_ERROR_DEPTH => 'Maximum stack depth exceeded',
 
333
  JSON_ERROR_CTRL_CHAR => 'Unexpected control character found',
334
- JSON_ERROR_SYNTAX => 'Syntax error, malformed JSON'
 
335
  );
336
  throw new DomainException(
337
  isset($messages[$errno])
8
 
9
  /**
10
  * JSON Web Token implementation, based on this spec:
11
+ * https://tools.ietf.org/html/rfc7519
12
  *
13
  * PHP version 5
14
  *
29
  */
30
  public static $leeway = 0;
31
 
32
+ /**
33
+ * Allow the current timestamp to be specified.
34
+ * Useful for fixing a value within unit testing.
35
+ *
36
+ * Will default to PHP time() value if null.
37
+ */
38
+ public static $timestamp = null;
39
+
40
  public static $supported_algs = array(
41
  'HS256' => array('hash_hmac', 'SHA256'),
42
  'HS512' => array('hash_hmac', 'SHA512'),
43
  'HS384' => array('hash_hmac', 'SHA384'),
44
  'RS256' => array('openssl', 'SHA256'),
45
+ 'RS384' => array('openssl', 'SHA384'),
46
+ 'RS512' => array('openssl', 'SHA512'),
47
  );
48
 
49
  /**
50
  * Decodes a JWT string into a PHP object.
51
  *
52
+ * @param string $jwt The JWT
53
+ * @param string|array $key The key, or map of keys.
54
+ * If the algorithm used is asymmetric, this is the public key
55
+ * @param array $allowed_algs List of supported verification algorithms
56
+ * Supported algorithms are 'HS256', 'HS384', 'HS512' and 'RS256'
57
  *
58
  * @return object The JWT's payload as a PHP object
59
  *
 
60
  * @throws UnexpectedValueException Provided JWT was invalid
61
  * @throws SignatureInvalidException Provided JWT was invalid because the signature verification failed
62
  * @throws BeforeValidException Provided JWT is trying to be used before it's eligible as defined by 'nbf'
66
  * @uses jsonDecode
67
  * @uses urlsafeB64Decode
68
  */
69
+ public static function decode($jwt, $key, array $allowed_algs = array())
70
  {
71
+ $timestamp = is_null(static::$timestamp) ? time() : static::$timestamp;
72
+
73
  if (empty($key)) {
74
  throw new InvalidArgumentException('Key may not be empty');
75
  }
78
  throw new UnexpectedValueException('Wrong number of segments');
79
  }
80
  list($headb64, $bodyb64, $cryptob64) = $tks;
81
+ if (null === ($header = static::jsonDecode(static::urlsafeB64Decode($headb64)))) {
82
  throw new UnexpectedValueException('Invalid header encoding');
83
  }
84
+ if (null === $payload = static::jsonDecode(static::urlsafeB64Decode($bodyb64))) {
85
  throw new UnexpectedValueException('Invalid claims encoding');
86
  }
87
+ if (false === ($sig = static::urlsafeB64Decode($cryptob64))) {
88
+ throw new UnexpectedValueException('Invalid signature encoding');
89
+ }
90
  if (empty($header->alg)) {
91
+ throw new UnexpectedValueException('Empty algorithm');
92
  }
93
+ if (empty(static::$supported_algs[$header->alg])) {
94
+ throw new UnexpectedValueException('Algorithm not supported');
95
  }
96
+ if (!in_array($header->alg, $allowed_algs)) {
97
+ throw new UnexpectedValueException('Algorithm not allowed');
98
  }
99
  if (is_array($key) || $key instanceof \ArrayAccess) {
100
  if (isset($header->kid)) {
101
+ if (!isset($key[$header->kid])) {
102
+ throw new UnexpectedValueException('"kid" invalid, unable to lookup correct key');
103
+ }
104
  $key = $key[$header->kid];
105
  } else {
106
+ throw new UnexpectedValueException('"kid" empty, unable to lookup correct key');
107
  }
108
  }
109
 
110
  // Check the signature
111
+ if (!static::verify("$headb64.$bodyb64", $sig, $key, $header->alg)) {
112
  throw new SignatureInvalidException('Signature verification failed');
113
  }
114
 
115
  // Check if the nbf if it is defined. This is the time that the
116
  // token can actually be used. If it's not yet that time, abort.
117
+ if (isset($payload->nbf) && $payload->nbf > ($timestamp + static::$leeway)) {
118
  throw new BeforeValidException(
119
  'Cannot handle token prior to ' . date(DateTime::ISO8601, $payload->nbf)
120
  );
123
  // Check that this token has been created before 'now'. This prevents
124
  // using tokens that have been created for later use (and haven't
125
  // correctly used the nbf claim).
126
+ if (isset($payload->iat) && $payload->iat > ($timestamp + static::$leeway)) {
127
  throw new BeforeValidException(
128
  'Cannot handle token prior to ' . date(DateTime::ISO8601, $payload->iat)
129
  );
130
  }
131
 
132
  // Check if this token has expired.
133
+ if (isset($payload->exp) && ($timestamp - static::$leeway) >= $payload->exp) {
134
  throw new ExpiredException('Expired token');
135
  }
136
 
145
  * If the algorithm used is asymmetric, this is the private key
146
  * @param string $alg The signing algorithm.
147
  * Supported algorithms are 'HS256', 'HS384', 'HS512' and 'RS256'
148
+ * @param mixed $keyId
149
  * @param array $head An array with header elements to attach
150
  *
151
  * @return string A signed JWT
163
  $header = array_merge($head, $header);
164
  }
165
  $segments = array();
166
+ $segments[] = static::urlsafeB64Encode(static::jsonEncode($header));
167
+ $segments[] = static::urlsafeB64Encode(static::jsonEncode($payload));
168
  $signing_input = implode('.', $segments);
169
 
170
+ $signature = static::sign($signing_input, $key, $alg);
171
+ $segments[] = static::urlsafeB64Encode($signature);
172
 
173
  return implode('.', $segments);
174
  }
187
  */
188
  public static function sign($msg, $key, $alg = 'HS256')
189
  {
190
+ if (empty(static::$supported_algs[$alg])) {
191
  throw new DomainException('Algorithm not supported');
192
  }
193
+ list($function, $algorithm) = static::$supported_algs[$alg];
194
  switch($function) {
195
  case 'hash_hmac':
196
  return hash_hmac($algorithm, $msg, $key, true);
220
  */
221
  private static function verify($msg, $signature, $key, $alg)
222
  {
223
+ if (empty(static::$supported_algs[$alg])) {
224
  throw new DomainException('Algorithm not supported');
225
  }
226
 
227
+ list($function, $algorithm) = static::$supported_algs[$alg];
228
  switch($function) {
229
  case 'openssl':
230
  $success = openssl_verify($msg, $signature, $key, $algorithm);
231
+ if ($success === 1) {
232
+ return true;
233
+ } elseif ($success === 0) {
234
+ return false;
235
  }
236
+ // returns 1 on success, 0 on failure, -1 on error.
237
+ throw new DomainException(
238
+ 'OpenSSL error: ' . openssl_error_string()
239
+ );
240
  case 'hash_hmac':
241
  default:
242
  $hash = hash_hmac($algorithm, $msg, $key, true);
243
  if (function_exists('hash_equals')) {
244
  return hash_equals($signature, $hash);
245
  }
246
+ $len = min(static::safeStrlen($signature), static::safeStrlen($hash));
247
 
248
  $status = 0;
249
  for ($i = 0; $i < $len; $i++) {
250
  $status |= (ord($signature[$i]) ^ ord($hash[$i]));
251
  }
252
+ $status |= (static::safeStrlen($signature) ^ static::safeStrlen($hash));
253
 
254
  return ($status === 0);
255
  }
283
  }
284
 
285
  if (function_exists('json_last_error') && $errno = json_last_error()) {
286
+ static::handleJsonError($errno);
287
  } elseif ($obj === null && $input !== 'null') {
288
  throw new DomainException('Null result with non-null input');
289
  }
303
  {
304
  $json = json_encode($input);
305
  if (function_exists('json_last_error') && $errno = json_last_error()) {
306
+ static::handleJsonError($errno);
307
  } elseif ($json === 'null' && $input !== null) {
308
  throw new DomainException('Null result with non-null input');
309
  }
350
  {
351
  $messages = array(
352
  JSON_ERROR_DEPTH => 'Maximum stack depth exceeded',
353
+ JSON_ERROR_STATE_MISMATCH => 'Invalid or malformed JSON',
354
  JSON_ERROR_CTRL_CHAR => 'Unexpected control character found',
355
+ JSON_ERROR_SYNTAX => 'Syntax error, malformed JSON',
356
+ JSON_ERROR_UTF8 => 'Malformed UTF-8 characters' //PHP >= 5.3.3
357
  );
358
  throw new DomainException(
359
  isset($messages[$errno])
includes/vendor/firebase/php-jwt/tests/JWTTest.php DELETED
@@ -1,264 +0,0 @@
1
- <?php
2
- use \Firebase\JWT\JWT;
3
-
4
- class JWTTest extends PHPUnit_Framework_TestCase
5
- {
6
- public function testEncodeDecode()
7
- {
8
- $msg = JWT::encode('abc', 'my_key');
9
- $this->assertEquals(JWT::decode($msg, 'my_key', array('HS256')), 'abc');
10
- }
11
-
12
- public function testDecodeFromPython()
13
- {
14
- $msg = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.Iio6aHR0cDovL2FwcGxpY2F0aW9uL2NsaWNreT9ibGFoPTEuMjMmZi5vbz00NTYgQUMwMDAgMTIzIg.E_U8X2YpMT5K1cEiT_3-IvBYfrdIFIeVYeOqre_Z5Cg';
15
- $this->assertEquals(
16
- JWT::decode($msg, 'my_key', array('HS256')),
17
- '*:http://application/clicky?blah=1.23&f.oo=456 AC000 123'
18
- );
19
- }
20
-
21
- public function testUrlSafeCharacters()
22
- {
23
- $encoded = JWT::encode('f?', 'a');
24
- $this->assertEquals('f?', JWT::decode($encoded, 'a', array('HS256')));
25
- }
26
-
27
- public function testMalformedUtf8StringsFail()
28
- {
29
- $this->setExpectedException('DomainException');
30
- JWT::encode(pack('c', 128), 'a');
31
- }
32
-
33
- public function testMalformedJsonThrowsException()
34
- {
35
- $this->setExpectedException('DomainException');
36
- JWT::jsonDecode('this is not valid JSON string');
37
- }
38
-
39
- public function testExpiredToken()
40
- {
41
- $this->setExpectedException('Firebase\JWT\ExpiredException');
42
- $payload = array(
43
- "message" => "abc",
44
- "exp" => time() - 20); // time in the past
45
- $encoded = JWT::encode($payload, 'my_key');
46
- JWT::decode($encoded, 'my_key', array('HS256'));
47
- }
48
-
49
- public function testBeforeValidTokenWithNbf()
50
- {
51
- $this->setExpectedException('Firebase\JWT\BeforeValidException');
52
- $payload = array(
53
- "message" => "abc",
54
- "nbf" => time() + 20); // time in the future
55
- $encoded = JWT::encode($payload, 'my_key');
56
- JWT::decode($encoded, 'my_key', array('HS256'));
57
- }
58
-
59
- public function testBeforeValidTokenWithIat()
60
- {
61
- $this->setExpectedException('Firebase\JWT\BeforeValidException');
62
- $payload = array(
63
- "message" => "abc",
64
- "iat" => time() + 20); // time in the future
65
- $encoded = JWT::encode($payload, 'my_key');
66
- JWT::decode($encoded, 'my_key', array('HS256'));
67
- }
68
-
69
- public function testValidToken()
70
- {
71
- $payload = array(
72
- "message" => "abc",
73
- "exp" => time() + JWT::$leeway + 20); // time in the future
74
- $encoded = JWT::encode($payload, 'my_key');
75
- $decoded = JWT::decode($encoded, 'my_key', array('HS256'));
76
- $this->assertEquals($decoded->message, 'abc');
77
- }
78
-
79
- public function testValidTokenWithLeeway()
80
- {
81
- JWT::$leeway = 60;
82
- $payload = array(
83
- "message" => "abc",
84
- "exp" => time() - 20); // time in the past
85
- $encoded = JWT::encode($payload, 'my_key');
86
- $decoded = JWT::decode($encoded, 'my_key', array('HS256'));
87
- $this->assertEquals($decoded->message, 'abc');
88
- JWT::$leeway = 0;
89
- }
90
-
91
- public function testExpiredTokenWithLeeway()
92
- {
93
- JWT::$leeway = 60;
94
- $payload = array(
95
- "message" => "abc",
96
- "exp" => time() - 70); // time far in the past
97
- $this->setExpectedException('Firebase\JWT\ExpiredException');
98
- $encoded = JWT::encode($payload, 'my_key');
99
- $decoded = JWT::decode($encoded, 'my_key', array('HS256'));
100
- $this->assertEquals($decoded->message, 'abc');
101
- JWT::$leeway = 0;
102
- }
103
-
104
- public function testValidTokenWithList()
105
- {
106
- $payload = array(
107
- "message" => "abc",
108
- "exp" => time() + 20); // time in the future
109
- $encoded = JWT::encode($payload, 'my_key');
110
- $decoded = JWT::decode($encoded, 'my_key', array('HS256', 'HS512'));
111
- $this->assertEquals($decoded->message, 'abc');
112
- }
113
-
114
- public function testValidTokenWithNbf()
115
- {
116
- $payload = array(
117
- "message" => "abc",
118
- "iat" => time(),
119
- "exp" => time() + 20, // time in the future
120
- "nbf" => time() - 20);
121
- $encoded = JWT::encode($payload, 'my_key');
122
- $decoded = JWT::decode($encoded, 'my_key', array('HS256'));
123
- $this->assertEquals($decoded->message, 'abc');
124
- }
125
-
126
- public function testValidTokenWithNbfLeeway()
127
- {
128
- JWT::$leeway = 60;
129
- $payload = array(
130
- "message" => "abc",
131
- "nbf" => time() + 20); // not before in near (leeway) future
132
- $encoded = JWT::encode($payload, 'my_key');
133
- $decoded = JWT::decode($encoded, 'my_key', array('HS256'));
134
- $this->assertEquals($decoded->message, 'abc');
135
- JWT::$leeway = 0;
136
- }
137
-
138
- public function testInvalidTokenWithNbfLeeway()
139
- {
140
- JWT::$leeway = 60;
141
- $payload = array(
142
- "message" => "abc",
143
- "nbf" => time() + 65); // not before too far in future
144
- $encoded = JWT::encode($payload, 'my_key');
145
- $this->setExpectedException('Firebase\JWT\BeforeValidException');
146
- $decoded = JWT::decode($encoded, 'my_key', array('HS256'));
147
- JWT::$leeway = 0;
148
- }
149
-
150
- public function testValidTokenWithIatLeeway()
151
- {
152
- JWT::$leeway = 60;
153
- $payload = array(
154
- "message" => "abc",
155
- "iat" => time() + 20); // issued in near (leeway) future
156
- $encoded = JWT::encode($payload, 'my_key');
157
- $decoded = JWT::decode($encoded, 'my_key', array('HS256'));
158
- $this->assertEquals($decoded->message, 'abc');
159
- JWT::$leeway = 0;
160
- }
161
-
162
- public function testInvalidTokenWithIatLeeway()
163
- {
164
- JWT::$leeway = 60;
165
- $payload = array(
166
- "message" => "abc",
167
- "iat" => time() + 65); // issued too far in future
168
- $encoded = JWT::encode($payload, 'my_key');
169
- $this->setExpectedException('Firebase\JWT\BeforeValidException');
170
- $decoded = JWT::decode($encoded, 'my_key', array('HS256'));
171
- JWT::$leeway = 0;
172
- }
173
-
174
- public function testInvalidToken()
175
- {
176
- $payload = array(
177
- "message" => "abc",
178
- "exp" => time() + 20); // time in the future
179
- $encoded = JWT::encode($payload, 'my_key');
180
- $this->setExpectedException('Firebase\JWT\SignatureInvalidException');
181
- $decoded = JWT::decode($encoded, 'my_key2', array('HS256'));
182
- }
183
-
184
- public function testNullKeyFails()
185
- {
186
- $payload = array(
187
- "message" => "abc",
188
- "exp" => time() + JWT::$leeway + 20); // time in the future
189
- $encoded = JWT::encode($payload, 'my_key');
190
- $this->setExpectedException('InvalidArgumentException');
191
- $decoded = JWT::decode($encoded, null, array('HS256'));
192
- }
193
-
194
- public function testEmptyKeyFails()
195
- {
196
- $payload = array(
197
- "message" => "abc",
198
- "exp" => time() + JWT::$leeway + 20); // time in the future
199
- $encoded = JWT::encode($payload, 'my_key');
200
- $this->setExpectedException('InvalidArgumentException');
201
- $decoded = JWT::decode($encoded, '', array('HS256'));
202
- }
203
-
204
- public function testRSEncodeDecode()
205
- {
206
- $privKey = openssl_pkey_new(array('digest_alg' => 'sha256',
207
- 'private_key_bits' => 1024,
208
- 'private_key_type' => OPENSSL_KEYTYPE_RSA));
209
- $msg = JWT::encode('abc', $privKey, 'RS256');
210
- $pubKey = openssl_pkey_get_details($privKey);
211
- $pubKey = $pubKey['key'];
212
- $decoded = JWT::decode($msg, $pubKey, array('RS256'));
213
- $this->assertEquals($decoded, 'abc');
214
- }
215
-
216
- public function testKIDChooser()
217
- {
218
- $keys = array('1' => 'my_key', '2' => 'my_key2');
219
- $msg = JWT::encode('abc', $keys['1'], 'HS256', '1');
220
- $decoded = JWT::decode($msg, $keys, array('HS256'));
221
- $this->assertEquals($decoded, 'abc');
222
- }
223
-
224
- public function testArrayAccessKIDChooser()
225
- {
226
- $keys = new ArrayObject(array('1' => 'my_key', '2' => 'my_key2'));
227
- $msg = JWT::encode('abc', $keys['1'], 'HS256', '1');
228
- $decoded = JWT::decode($msg, $keys, array('HS256'));
229
- $this->assertEquals($decoded, 'abc');
230
- }
231
-
232
- public function testNoneAlgorithm()
233
- {
234
- $msg = JWT::encode('abc', 'my_key');
235
- $this->setExpectedException('DomainException');
236
- JWT::decode($msg, 'my_key', array('none'));
237
- }
238
-
239
- public function testIncorrectAlgorithm()
240
- {
241
- $msg = JWT::encode('abc', 'my_key');
242
- $this->setExpectedException('DomainException');
243
- JWT::decode($msg, 'my_key', array('RS256'));
244
- }
245
-
246
- public function testMissingAlgorithm()
247
- {
248
- $msg = JWT::encode('abc', 'my_key');
249
- $this->setExpectedException('DomainException');
250
- JWT::decode($msg, 'my_key');
251
- }
252
-
253
- public function testAdditionalHeaders()
254
- {
255
- $msg = JWT::encode('abc', 'my_key', 'HS256', null, array('cty' => 'test-eit;v=1'));
256
- $this->assertEquals(JWT::decode($msg, 'my_key', array('HS256')), 'abc');
257
- }
258
-
259
- public function testInvalidSegmentCount()
260
- {
261
- $this->setExpectedException('UnexpectedValueException');
262
- JWT::decode('brokenheader.brokenbody', 'my_key', array('HS256'));
263
- }
264
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/firebase/php-jwt/tests/autoload.php.dist DELETED
@@ -1,17 +0,0 @@
1
- <?php
2
-
3
- // if the library is the project, try to use the composer's autoload for the tests
4
- $composerAutoload = __DIR__ . '/../vendor/autoload.php';
5
-
6
- if (is_file($composerAutoload)) {
7
- include $composerAutoload;
8
- } else {
9
- die('Unable to find autoload.php file, please use composer to load dependencies:
10
-
11
- wget http://getcomposer.org/composer.phar
12
- php composer.phar install
13
-
14
- Visit http://getcomposer.org/ for more information.
15
-
16
- ');
17
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/firebase/php-jwt/tests/bootstrap.php DELETED
@@ -1,7 +0,0 @@
1
- <?php
2
-
3
- if (file_exists($file = __DIR__ . '/autoload.php')) {
4
- require_once $file;
5
- } elseif (file_exists($file = __DIR__ . '/autoload.php.dist')) {
6
- require_once $file;
7
- }
 
 
 
 
 
 
 
jwt-auth.php CHANGED
@@ -15,7 +15,7 @@
15
  * Plugin Name: JWT Authentication for WP-API
16
  * Plugin URI: https://enriquechavez.co
17
  * Description: Extends the WP REST API using JSON Web Tokens Authentication as an authentication method.
18
- * Version: 1.2.3
19
  * Author: Enrique Chavez
20
  * Author URI: https://enriquechavez.co
21
  * License: GPL-2.0+
15
  * Plugin Name: JWT Authentication for WP-API
16
  * Plugin URI: https://enriquechavez.co
17
  * Description: Extends the WP REST API using JSON Web Tokens Authentication as an authentication method.
18
+ * Version: 1.2.4
19
  * Author: Enrique Chavez
20
  * Author URI: https://enriquechavez.co
21
  * License: GPL-2.0+
public/class-jwt-auth-public.php CHANGED
@@ -218,7 +218,7 @@ class Jwt_Auth_Public
218
  *
219
  * @param bool $output
220
  *
221
- * @return WP_Error | Object
222
  */
223
  public function validate_token($output = true)
224
  {
218
  *
219
  * @param bool $output
220
  *
221
+ * @return WP_Error | Object | Array
222
  */
223
  public function validate_token($output = true)
224
  {
readme.txt CHANGED
@@ -4,8 +4,9 @@ Contributors: tmeister
4
  Donate link: https://enriquechavez.co
5
  Tags: wp-json, jwt, json web authentication, wp-api
6
  Requires at least: 4.2
7
- Tested up to: 4.7
8
- Stable tag: 1.2.3
 
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -340,6 +341,10 @@ $data = array(
340
  ###Please read how to configured the plugin https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/
341
 
342
  == Changelog ==
 
 
 
 
343
  = 1.2.3 =
344
  * Fix Max recursion error in WordPress 4.7 #44
345
 
4
  Donate link: https://enriquechavez.co
5
  Tags: wp-json, jwt, json web authentication, wp-api
6
  Requires at least: 4.2
7
+ Tested up to: 4.8.1
8
+ Requires PHP: 5.3.0
9
+ Stable tag: 1.2.4
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
341
  ###Please read how to configured the plugin https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/
342
 
343
  == Changelog ==
344
+ = 1.2.4 =
345
+ * Update firebase/php-jwt to v5.0.0 ( https://github.com/firebase/php-jwt )
346
+ * Add Requires PHP Tag
347
+
348
  = 1.2.3 =
349
  * Fix Max recursion error in WordPress 4.7 #44
350