Spotlight Social Media Feeds - Version 0.5.4

Version Description

(2021-02-11) =

Changed - Now detecting a conflict with the official "Facebook for WordPress" plugin

Fixed - Fixed "Argument 1 passed" error when viewing/previewing a feed

Download this release

Release Info

Developer Mekku
Plugin Icon 128x128 Spotlight Social Media Feeds
Version 0.5.4
Comparing to
See all releases

Code changes from version 0.5.3 to 0.5.4

core/Engine/Stores/WpPostMediaStore.php CHANGED
@@ -280,6 +280,7 @@ class WpPostMediaStore implements ItemStore
280
  public static function wpPostToItem(WP_Post $post, Source $source) : Item
281
  {
282
  $children = $post->{MediaPostType::CHILDREN};
 
283
  $children = Arrays::map($children, function ($child) {
284
  return ($child instanceof IgMedia)
285
  ? [
@@ -291,12 +292,17 @@ class WpPostMediaStore implements ItemStore
291
  : (array) $child;
292
  });
293
 
294
- $thumbnails = Arrays::map($post->{MediaPostType::THUMBNAILS}, function ($url) {
 
 
295
  return is_ssl()
296
  ? preg_replace('#^http://#', 'https://', $url, 1)
297
  : $url;
298
  });
299
 
 
 
 
300
  $likesCount = intval($post->{MediaPostType::LIKES_COUNT});
301
  $commentsCount = intval($post->{MediaPostType::COMMENTS_COUNT});
302
  $size = is_array($post->{MediaPostType::SIZE})
@@ -316,7 +322,7 @@ class WpPostMediaStore implements ItemStore
316
  MediaItem::THUMBNAILS => $thumbnails,
317
  MediaItem::LIKES_COUNT => $likesCount,
318
  MediaItem::COMMENTS_COUNT => $commentsCount,
319
- MediaItem::COMMENTS => $post->{MediaPostType::COMMENTS},
320
  MediaItem::CHILDREN => $children,
321
  MediaItem::IS_STORY => boolval($post->{MediaPostType::IS_STORY}),
322
  MediaItem::LAST_REQUESTED => $post->{MediaPostType::LAST_REQUESTED},
280
  public static function wpPostToItem(WP_Post $post, Source $source) : Item
281
  {
282
  $children = $post->{MediaPostType::CHILDREN};
283
+ $children = is_array($children) ? $children : [];
284
  $children = Arrays::map($children, function ($child) {
285
  return ($child instanceof IgMedia)
286
  ? [
292
  : (array) $child;
293
  });
294
 
295
+ $thumbnails = $post->{MediaPostType::THUMBNAILS};
296
+ $thumbnails = is_array($thumbnails) ? $thumbnails : [];
297
+ $thumbnails = Arrays::map($thumbnails, function ($url) {
298
  return is_ssl()
299
  ? preg_replace('#^http://#', 'https://', $url, 1)
300
  : $url;
301
  });
302
 
303
+ $comments = $post->{MediaPostType::COMMENTS};
304
+ $comments = is_array($comments) ? $comments : [];
305
+
306
  $likesCount = intval($post->{MediaPostType::LIKES_COUNT});
307
  $commentsCount = intval($post->{MediaPostType::COMMENTS_COUNT});
308
  $size = is_array($post->{MediaPostType::SIZE})
322
  MediaItem::THUMBNAILS => $thumbnails,
323
  MediaItem::LIKES_COUNT => $likesCount,
324
  MediaItem::COMMENTS_COUNT => $commentsCount,
325
+ MediaItem::COMMENTS => $comments,
326
  MediaItem::CHILDREN => $children,
327
  MediaItem::IS_STORY => boolval($post->{MediaPostType::IS_STORY}),
328
  MediaItem::LAST_REQUESTED => $post->{MediaPostType::LAST_REQUESTED},
core/PostTypes/MediaPostType.php CHANGED
@@ -221,7 +221,7 @@ class MediaPostType extends PostType
221
  /**
222
  * Retrieves all used the sources from across all the media in the database.
223
  *
224
- * @since [*next-version*]
225
  *
226
  * @return Source[] An array of sources.
227
  */
221
  /**
222
  * Retrieves all used the sources from across all the media in the database.
223
  *
224
+ * @since 0.5.3
225
  *
226
  * @return Source[] An array of sources.
227
  */
core/RestApi/EndPoints/Feeds/GetSourcesEndpoint.php CHANGED
@@ -12,14 +12,14 @@ use WP_REST_Response;
12
  /**
13
  * Handler for the endpoint that provides the sources used across all feeds.
14
  *
15
- * @since [*next-version*]
16
  */
17
  class GetSourcesEndpoint extends AbstractEndpointHandler
18
  {
19
  /**
20
  * @inheritDoc
21
  *
22
- * @since [*next-version*]
23
  */
24
  protected function handle(WP_REST_Request $request)
25
  {
12
  /**
13
  * Handler for the endpoint that provides the sources used across all feeds.
14
  *
15
+ * @since 0.5.3
16
  */
17
  class GetSourcesEndpoint extends AbstractEndpointHandler
18
  {
19
  /**
20
  * @inheritDoc
21
  *
22
+ * @since 0.5.3
23
  */
24
  protected function handle(WP_REST_Request $request)
25
  {
core/RestApi/EndPoints/Tools/ClearCacheFeedEndpoint.php CHANGED
@@ -12,19 +12,19 @@ use WP_REST_Response;
12
  /**
13
  * Handler for the REST API endpoint that clears the cache for a specific feed.
14
  *
15
- * @since [*next-version*]
16
  */
17
  class ClearCacheFeedEndpoint extends AbstractEndpointHandler
18
  {
19
  /**
20
- * @since [*next-version*]
21
  *
22
  * @var Engine
23
  */
24
  protected $engine;
25
 
26
  /**
27
- * @since [*next-version*]
28
  *
29
  * @var FeedManager
30
  */
@@ -33,7 +33,7 @@ class ClearCacheFeedEndpoint extends AbstractEndpointHandler
33
  /**
34
  * Constructor.
35
  *
36
- * @since [*next-version*]
37
  *
38
  * @param Engine $engine
39
  * @param FeedManager $feedManager
@@ -47,7 +47,7 @@ class ClearCacheFeedEndpoint extends AbstractEndpointHandler
47
  /**
48
  * @inheritDoc
49
  *
50
- * @since [*next-version*]
51
  */
52
  protected function handle(WP_REST_Request $request)
53
  {
12
  /**
13
  * Handler for the REST API endpoint that clears the cache for a specific feed.
14
  *
15
+ * 0.5.3
16
  */
17
  class ClearCacheFeedEndpoint extends AbstractEndpointHandler
18
  {
19
  /**
20
+ * 0.5.3
21
  *
22
  * @var Engine
23
  */
24
  protected $engine;
25
 
26
  /**
27
+ * 0.5.3
28
  *
29
  * @var FeedManager
30
  */
33
  /**
34
  * Constructor.
35
  *
36
+ * 0.5.3
37
  *
38
  * @param Engine $engine
39
  * @param FeedManager $feedManager
47
  /**
48
  * @inheritDoc
49
  *
50
+ * 0.5.3
51
  */
52
  protected function handle(WP_REST_Request $request)
53
  {
includes/init.php CHANGED
@@ -523,7 +523,19 @@ if (!function_exists('slInstaCheckForConflicts')) {
523
  $conflicts = [];
524
  foreach (slInstaGetConflictingPlugins() as $plugin => $info) {
525
  if (is_plugin_active($plugin) && $plugin !== $ignore) {
526
- $conflicts[] = $info;
 
 
 
 
 
 
 
 
 
 
 
 
527
  }
528
  }
529
 
@@ -551,6 +563,7 @@ if (!function_exists('slInstaShowConflictsNotice')) {
551
  }
552
 
553
  add_action('admin_notices', function () use ($conflicts) {
 
554
  ?>
555
  <div class="notice notice-error">
556
  <p>
@@ -566,11 +579,19 @@ if (!function_exists('slInstaShowConflictsNotice')) {
566
  ?>
567
  </p>
568
  <ol>
569
- <?php foreach ($conflicts as $plugin => $info) : ?>
 
570
  <li><b><?= $info['name'] ?></b> &mdash; <i><?= $info['reason'] ?></i></li>
571
  <?php endforeach; ?>
572
  </ol>
573
- <p><?= __('You can choose to ignore these conflicts, but do so at your own risk', 'sl-insta') ?></p>
 
 
 
 
 
 
 
574
  <p>
575
  <a class="button button-secondary" href="<?= add_query_arg(['sli_ignore_conflicts' => '1']) ?>">
576
  <?= __('Ignore conflicts', 'sl-insta') ?>
@@ -595,6 +616,14 @@ if (!function_exists('slInstaGetConflictingPlugins')) {
595
  'sl-insta'
596
  ),
597
  ],
 
 
 
 
 
 
 
 
598
  ];
599
  }
600
  }
523
  $conflicts = [];
524
  foreach (slInstaGetConflictingPlugins() as $plugin => $info) {
525
  if (is_plugin_active($plugin) && $plugin !== $ignore) {
526
+ // If conflict has a version constraint ...
527
+ if (array_key_exists('version', $info)) {
528
+ $data = get_plugin_data(WP_CONTENT_DIR . '/plugins/' . $plugin);
529
+ $version1 = $data['Version'];
530
+ [$compare, $version2] = $info['version'];
531
+
532
+ // And version constraint is not satisfied, skip conflict
533
+ if (!version_compare($version1, $version2, $compare)) {
534
+ continue;
535
+ }
536
+ }
537
+
538
+ $conflicts[] = $plugin;
539
  }
540
  }
541
 
563
  }
564
 
565
  add_action('admin_notices', function () use ($conflicts) {
566
+ $conflictConfig = slInstaGetConflictingPlugins();
567
  ?>
568
  <div class="notice notice-error">
569
  <p>
579
  ?>
580
  </p>
581
  <ol>
582
+ <?php foreach ($conflicts as $plugin) : ?>
583
+ <?php $info = $conflictConfig[$plugin] ?>
584
  <li><b><?= $info['name'] ?></b> &mdash; <i><?= $info['reason'] ?></i></li>
585
  <?php endforeach; ?>
586
  </ol>
587
+ <p>
588
+ <?=
589
+ __(
590
+ 'You can choose to ignore these conflicts, but do so only if you know what you\'re doing.',
591
+ 'sl-insta'
592
+ )
593
+ ?>
594
+ </p>
595
  <p>
596
  <a class="button button-secondary" href="<?= add_query_arg(['sli_ignore_conflicts' => '1']) ?>">
597
  <?= __('Ignore conflicts', 'sl-insta') ?>
616
  'sl-insta'
617
  ),
618
  ],
619
+ 'official-facebook-pixel/facebook-for-wordpress.php' => [
620
+ 'name' => 'Facebook for WordPress',
621
+ 'reason' => __(
622
+ 'Both plugins use the Guzzle HTTP library but at different versions, causing a fatal error. Update the plugin to version 3.0.2 or later to resolve the conflict.',
623
+ 'sl-insta'
624
+ ),
625
+ 'version' => ['<', '3.0.2'],
626
+ ],
627
  ];
628
  }
629
  }
plugin.json CHANGED
@@ -1,7 +1,7 @@
1
  {
2
  "name": "Spotlight - Social Media Feeds",
3
  "description": "Easily embed beautiful Instagram feeds on your WordPress site.",
4
- "version": "0.5.3",
5
  "url": "https://spotlightwp.com",
6
  "author": "RebelCode",
7
  "authorUrl": "https://rebelcode.com",
1
  {
2
  "name": "Spotlight - Social Media Feeds",
3
  "description": "Easily embed beautiful Instagram feeds on your WordPress site.",
4
+ "version": "0.5.4",
5
  "url": "https://spotlightwp.com",
6
  "author": "RebelCode",
7
  "authorUrl": "https://rebelcode.com",
plugin.php CHANGED
@@ -5,7 +5,7 @@
5
  *
6
  * Plugin Name: Spotlight - Social Media Feeds
7
  * Description: Easily embed beautiful Instagram feeds on your WordPress site.
8
- * Version: 0.5.3
9
  * Author: RebelCode
10
  * Plugin URI: https://spotlightwp.com
11
  * Author URI: https://rebelcode.com
@@ -57,7 +57,7 @@ slInstaRunPlugin(__FILE__, function (SlInstaRuntime $sli) {
57
  // The plugin name
58
  define('SL_INSTA_NAME', 'Spotlight - Social Media Feeds');
59
  // The plugin version
60
- define('SL_INSTA_VERSION', '0.5.3');
61
  // The path to the plugin's main file
62
  define('SL_INSTA_FILE', __FILE__);
63
  // The dir to the plugin's directory
5
  *
6
  * Plugin Name: Spotlight - Social Media Feeds
7
  * Description: Easily embed beautiful Instagram feeds on your WordPress site.
8
+ * Version: 0.5.4
9
  * Author: RebelCode
10
  * Plugin URI: https://spotlightwp.com
11
  * Author URI: https://rebelcode.com
57
  // The plugin name
58
  define('SL_INSTA_NAME', 'Spotlight - Social Media Feeds');
59
  // The plugin version
60
+ define('SL_INSTA_VERSION', '0.5.4');
61
  // The path to the plugin's main file
62
  define('SL_INSTA_FILE', __FILE__);
63
  // The dir to the plugin's directory
readme.txt CHANGED
@@ -2,145 +2,142 @@
2
 
3
  Contributors: RebelCode, spotlightsocialfeeds, markzahra, Mekku, jeangalea
4
  Plugin URI: https://spotlightwp.com
5
- Tags: Instagram, Instagram feed, Instagram feeds, Instagram widget, social media, social media feed, social media feeds, Instagram posts, Instagram gallery, Instagram stories, hashtag
6
  Requires at least: 5.0
7
  Requires PHP: 7.1
8
  Tested up to: 5.6
9
- Stable tag: 0.5.3
10
  License: GPLv3
11
 
12
  == Description ==
13
 
14
- Create connections. Build credibility. Stay current. Add custom Instagram feeds to your site in seconds.
15
 
16
- [Live Demos](https://spotlightwp.com/demo/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_demo) | [Compare free vs PRO](https://spotlightwp.com/features/compare-free-vs-pro/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_topcomparecta) | [Free 14-day PRO trial](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_protrialtop)
17
 
18
- == The best no-code Instagram feed plugin for WordPress ==
19
 
20
- Spotlight makes your Instagram feed a breeze to set up:
21
 
22
- 1. Connect your Instagram account (or that of your client)
23
- 2. Design your Instagram feed's look and behaviour
24
- 3. Embed it anywhere on your site
25
 
26
- No coding or complex shortcodes required. Use the **live preview customiser** to get an instant look at your custom Instagram feed as you design it, then embed it using our block, shortcode, or widget.
27
 
28
- > Great product and amazing support. If you need a plugin to handle your Instagram feeds then look no further than this. - Nino
29
 
30
- == Highly-rated by beginners and experts alike ==
31
 
32
- Watch this walkthrough of Spotlight Instagram Feeds by WPCrafter:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
 
34
- https://www.youtube.com/watch?v=FaOoCzxHpgw
35
-
36
- > "If you're ready to **start nailing the BIG 3 C's of having a website**, that is building credibility, staying current, and having a better connection with your website visitors, check out Spotlight Instagram feeds today." - Adam, WP Crafter
37
-
38
- == Free features ==
39
-
40
- - Connect multiple Instagram accounts
41
- - Connect client's Instagram accounts*
42
- - Unlimited Instagram feeds
43
- - Interactive live preview
44
- - Point and click customiser
45
- - Instagram grid layout
46
- - Set number of posts and columns per device
47
- - Order by date, popularity, or at random
48
- - Popup lightbox to show full-size photos and playable videos
49
- - Feed header showing your avatar, Instagram bio, and counts
50
- - Add a custom bio text and profile photo per account or feed
51
- - “Follow” button
52
- - “Load More” button
53
- - Fully responsive
54
- - Embed using our Instagram block, Instagram widget, or shortcode
55
-
56
- *Spotlight provides its own [Access Token Generator](https://spotlightwp.com/access-token-generator/) so your clients won't need to share their personal login details.
57
-
58
- == Easily create custom Instagram feeds ==
59
- The live preview customizer includes a lot of design options that are point-and-click, no coding knowledge required. If you're a bit more adventurous, Spotlight's CSS is set up to be easily customizable for developers. Let your imagination run free.
60
-
61
- > Out of all of the Instagram integration plugins out there, this is one that I would by far recommend the most. The plugin itself is easy to use for anyone – especially a beginner. Their free option is also fairly comprehensive on it’s own! - Tim
62
-
63
- == Connect with your audience ==
64
- Boost your brand, drive conversions, and gain new followers by embedding your Instagram feed directly on your website. From baby boomers to millennials and Gen Z, Instagram gets people from all walks of life to engage with each other. Something as simple as adding a **Follow button** to an Instagram feed can have an instant impact.
65
 
66
- > Excellent, Powerful, Smooth - This is an incredible plugin and the support given is second to none – they will stop at nothing to help you solve your problems. Thank you! - Forson
67
 
68
- == Leverage social proof ==
69
- Instagram is a great platform to **build a strong reputation** and develop social proof. Spotlight is here to help you make the most of it by sharing your Instagram photos and videos on your website. It gets even more powerful when combined with WooCommerce sites!
70
 
71
- Set up an Instagram gallery for your shop or product pages to showcase your followers' likes and comments, or take it a step further by creating a shoppable Instagram feed using Spotlight PRO's **Promote** features.
 
72
 
73
- > PRO features for e-commerce are killer! The best Instagram feed solution on the market. Great UX and a speed & reliability focused team. Top marks. - Richard
 
74
 
75
- == Save time with an automatically updated image gallery ==
76
- When you're too busy to post new content across multiple channels, keep website visitors engaged with fresh photos and videos thanks to a constant flow of new Instagram posts. Keep your pages looking lively without having to do any extra work. Post once on Instagram and it's automatically shared to your website!
77
 
78
- == Enhance your "Coming soon" and "Maintenance" pages ==
79
- Designs for "Coming Soon" and "Maintenance" pages have become all too similar. Make yours stand out by embedding an Instagram feed and turn those site visitors into Instagram followers with Spotlight's "Follow" button. Don't let new leads get away so easily - make sure you can reach them on social media once your website has launched.
80
 
81
- == 100% responsive on all devices ==
82
- Aside from your feeds being automatically responsive by default, Spotlight allows you to switch between desktop, tablet, and phone views in the feed customiser. Use this to create custom Instagram feeds for each device. For example, use 4 columns on desktop devices but only 2 columns on phones, or hide the "Load more" button on phones only for a better mobile experience.
83
 
84
- > Spotlight is simply the best Instagram feed plug-in. I had a styling question and the support was perfect! - Tobias
 
85
 
86
- == Supports multiple accounts and feeds ==
87
- Spotlight supports Instagram Personal and Business (or Creator) accounts. Connect as many as you want, either directly or using our [Access Token Generator](https://spotlightwp.com/access-token-generator/). The latter is perfect when working with clients so they can keep their login details safe.
88
-
89
- Create and embed one or more feeds on a single page or use them across different sections of your website. Use the [Instagram block](https://docs.spotlightwp.com/article/581-block), [shortcode](https://docs.spotlightwp.com/article/579-shortcode) or [Instagram widget](https://docs.spotlightwp.com/article/580-widget) provided by Spotlight to add your Instagram feed anywhere across your theme.
90
-
91
- == Reliable and experienced customer support ==
92
- Aside from [Spotlight's helpful documentation](https://docs.spotlightwp.com/), you have the full backing of our experienced team of developers and support specialists. We provide support for both free and PRO users.
93
-
94
- Through [WP Mayor](https://wpmayor.com/), a trusted and long-standing WordPress resource site; and [WP RSS Aggregator](https://www.wprssaggregator.com/), the original and most popular RSS feed importer for WordPress, we have helped thousands of people over the years and continue to do so today.
95
 
96
  - [Documentation](https://docs.spotlightwp.com/)
97
  - [Free support (forum)](https://wordpress.org/support/plugin/spotlight-social-photo-feeds/)
98
  - [Premium support (email)](https://spotlightwp.com/support/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_support)
99
 
100
- > I got the free version to display a simple feed. I was surprised by the good usability that I encountered in the backend. Most importantly: **they provided me with amazing support and response times** which helped me properly implement the plugin in a single page application. - Fyn
101
-
102
- == Upgrade: Spotlight Instagram Feeds PRO ==
103
 
104
- Level up your Instagram feeds with **[Spotlight PRO](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_upgrade)** and do even more with your Instagram feed. More layout and customisation options, create hashtag feeds, filter out unwanted photos or videos, create shoppable Instagram feeds, and much more.
105
 
106
- > I’ve used other Instagram feed plugins before and this one is the best! Very happy with this PRO upgrade purchase. Keep up the great work!! - Rommel
107
 
108
- PRO features:
109
 
110
  - Hashtag feeds - most popular/recent from across Instagram
111
  - Tagged post feeds - show where your account is tagged
112
  - Caption filtering
113
  - Hashtag filtering
114
  - Visual moderation (hand-pick which posts to show/hide)
115
- - Promote: link posts to articles, pages, WooCommerce products, etc
116
- - Promote: automatically link posts based on hashtags
 
117
  - Highlight layout
118
  - Masonry layout
119
- - Slider layout [coming soon]
120
  - Hover styles
121
  - Header styles
122
- - Show captions, and like & comment counts in the feed
123
  - Embed Instagram stories in the profile photo (just like Instagram)
124
- - Elementor Instagram widget - ([Recommended by Elementor.com](https://elementor.com/features/integrations/))
125
 
126
- **[View Pricing](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_pricing)** | **[Free 14-day PRO trial](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_protrial)** | [Compare free vs PRO](https://spotlightwp.com/features/compare-free-vs-pro/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_upgradecompare)
 
 
 
 
 
 
127
 
128
- == Recommended by WordPress experts ==
129
- Hubspot: [Top 3 Free Instagram Plugins for WordPress](https://blog.hubspot.com/website/top-free-instagram-plugins-wordpress-site)
130
- Elementor: [Best Instagram Plugins for WordPress](https://elementor.com/blog/best-instagram-plugins-wordpress/)
131
- WP Mayor: [How to Import Instagram Photos to WordPress](https://wpmayor.com/import-instagram-photos-wordpress/)
132
- Kinsta: [WordPress Instagram Plugins for Displaying Interactive Feeds](https://kinsta.com/blog/wordpress-instagram-plugin/)
133
- BobWP: [How to Improve WooCommerce Sales Using Your Instagram Feed](https://bobwp.com/how-to-improve-woocommerce-sales-using-your-instagram-feed/)
134
- Theme Fusion: [How to Use Instagram Feeds to Boost Traffic and Conversions](https://theme-fusion.com/how-to-use-instagram-feeds-to-boost-traffic-and-conversions/)
135
- Elegant Themes: [7 Great Instagram Plugins for Sharing Your Feed](https://www.elegantthemes.com/blog/wordpress/instagram-plugins-for-sharing-your-feed)
136
- aThemes: [Best WordPress Instagram Plugins 2020](https://athemes.com/collections/best-wordpress-instagram-plugins/)
137
- WPExplorer: [How to Add Instagram Photos to WordPress](https://www.wpexplorer.com/add-instagram-wordpress/)
138
 
139
- [See all our recommendations.](https://spotlightwp.com/in-the-spotlight/)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
 
141
  == Installation ==
142
 
143
- = Method 1 =
144
 
145
  1. Go to the Plugins page in your WordPress site's dashboard.
146
  2. Click on the "Add New" button.
@@ -148,28 +145,36 @@ WPExplorer: [How to Add Instagram Photos to WordPress](https://www.wpexplorer.co
148
  4. Click on the "Install" button next to it, then hit "Activate".
149
  5. Go to the “Instagram Feeds” menu item to get started.
150
 
151
- = Method 2 =
152
 
153
  1. Click on the "Download" button above.
154
  2. Upload the zip file to your site from the Plugins page in your WordPress site's dashboard.
155
  3. Activate the plugin.
156
  4. Go to the “Instagram Feeds” menu item to get started.
157
 
158
- = Create your first feed =
 
 
 
 
159
 
160
- Follow the instructions to connect your first Instagram account and set up your feed. When you're happy with the design, save the feed.
161
 
162
- Use the provided Spotlight [block](https://docs.spotlightwp.com/article/581-block), [shortcode](https://docs.spotlightwp.com/article/579-shortcode), [instagram feed="123"], or the ["Spotlight Instagram Feed"](https://docs.spotlightwp.com/article/580-widget) widget to embed it anywhere on your site.= Create your first feed =
163
 
164
- Follow the instructions to connect your first Instagram account and set up your feed. When you're happy with the design, save the feed.
165
 
166
- Use the provided Spotlight [block](https://docs.spotlightwp.com/article/581-block), [shortcode](https://docs.spotlightwp.com/article/579-shortcode), [instagram feed="123"], or the ["Spotlight Instagram Feed"](https://docs.spotlightwp.com/article/580-widget) widget to embed it anywhere on your site.
 
 
 
 
167
 
168
  == Frequently Asked Questions ==
169
 
170
  = How do I connect my Instagram account? =
171
 
172
- Once you install Spotlight, a welcome screen appears that guides you on how to connect your first Instagram user account. Click on the connect button and it will show you two options, [Personal or Business](https://docs.spotlightwp.com/article/553-what-is-the-difference-between-instagram-personal-and-business-accounts). Pick the one that applies to you, authorize Spotlight through the popup that appears, and you’re all set.
173
 
174
  - - -
175
 
@@ -199,23 +204,31 @@ Yes. With Spotlight you can embed multiple Instagram feeds on a single page, a s
199
 
200
  = Can I show full-size photos and play Instagram videos directly on my website? =
201
 
202
- Yes, Spotlight's free version includes a lightbox (popup) option that will display your photos in their full size over your entire website. The lightbox can also play videos right on your site, no need to have the visitor leave your site at all! If you want to enhance the popup, [Spotlight PRO adds a sidebar](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_faq&utm_campaign=readme_faq_fullsizeandvideos) to the lightbox which will display your Instagram captions, comments, published date, and more.
 
 
203
 
204
  - - -
205
 
206
  = Where can I find my Instagram Access Token and User ID? =
207
 
208
- Go to Spotlight > Settings. From the first page, Accounts, click on the Instagram username or the "info" icon under Actions. A modal will appear with all the details relating to your Instagram account - Spotlight ID, Instagram User ID, Instagram account type, Instagram Access Token, as well as your Instagram bio and profile picture.
 
 
209
 
210
  - - -
211
 
212
  = How can I only display posts that use a particular Instagram hashtag? =
213
 
214
- With Spotlight PRO you can use either of two options. Firstly, you can choose to display posts that include a specific hashtag from all across Instagram ([learn more](https://docs.spotlightwp.com/article/622-how-to-display-hashtag-feeds)). Secondly, you can use Hashtag filtering to show or hide posts from your feed that use a specific hashtag. [Learn more.](https://spotlightwp.com/features/?utm_source=readme&utm_medium=readme_faq&utm_campaign=readme_faq_hashtagfeed)
 
 
 
 
215
 
216
  - - -
217
 
218
- = Can I hide specific posts from my Instagram feed? =
219
 
220
  Yes, we understand that you may have certain posts that you don't want to show on your website. By using the Moderation option in Spotlight PRO you can hand-pick the photos and videos that you either want to show or hide on your website. [Learn more.](https://spotlightwp.com/features/?utm_source=readme&utm_medium=readme_faq&utm_campaign=readme_faq_moderation)
221
 
@@ -223,19 +236,13 @@ Yes, we understand that you may have certain posts that you don't want to show o
223
 
224
  = Will the Instagram feed from Spotlight blend nicely into my website's theme? =
225
 
226
- Yes, aside from the customization options provided by Spotlight itself, the plugin is also set up to use your theme's fonts to completely match your brand's look and feel on your website.
227
 
228
  - - -
229
 
230
- = Why is my Instagram feed not showing? =
231
-
232
- There are a few reasons that your Instagram posts are not displayed on your site, either within Spotlight's editor or on the front-end. Here are the reasons and their potential fixes:
233
 
234
- - **Caching Issues:** At times, the cache from your browser, website, hosting, DNS, or otherwise may cause your feeds to not be displayed. To fix this problem, try clearing all the cache options mentioned earlier and then refresh your pages.
235
- - **Caching Plugin Conflicts:** Some plugins, such as W3 Total Cache, can conflict with Spotlight by minifying certain files that should not be minified. Taking W3 Total Cache as an example, simply disabling minification for just one of our JS files does the trick. By instructing W3 Total Cache to ignore the file, you should be able to get the feed working again on your site without sacrificing the performance of the rest of the page. The file in question is: wp-content/plugins/spotlight-social-photo-feeds/ui/dist/common.js
236
- - **WP REST API Disabled:** We've found that certain websites use plugins or otherwise to disabled the WordPress REST API. Since Spotlight uses the WP REST API, if disabled, the plugin will not function correctly. Re-enabling the WP REST API should fix this issue.
237
-
238
- If none of these solutions work for you, please do contact us through the [support forum](https://wordpress.org/support/plugin/spotlight-social-photo-feeds/) with a link to a page on your website where the Instagram feed is being displayed, details on how the above tests went, and if possible, a link to your Instagram account.
239
 
240
 
241
  == Screenshots ==
@@ -250,6 +257,14 @@ If none of these solutions work for you, please do contact us through the [suppo
250
 
251
  == Changelog ==
252
 
 
 
 
 
 
 
 
 
253
  = 0.5.3 (2021-02-04) =
254
 
255
  **Added**
2
 
3
  Contributors: RebelCode, spotlightsocialfeeds, markzahra, Mekku, jeangalea
4
  Plugin URI: https://spotlightwp.com
5
+ Tags: Instagram, Instagram feed, Instagram feeds, Instagram widget, Instagram embed, social media, social media feed, social media feeds, Instagram posts, Instagram gallery, Instagram stories, hashtag
6
  Requires at least: 5.0
7
  Requires PHP: 7.1
8
  Tested up to: 5.6
9
+ Stable tag: 0.5.4
10
  License: GPLv3
11
 
12
  == Description ==
13
 
14
+ **The best no-code Instagram feed solution for your website.** Connect multiple Instagram accounts and create unlimited Instagram feeds to embed across your website. A simple way to share your Instagram content with the world in a beautiful gallery.
15
 
16
+ [**Instagram Feed Demos**](https://spotlightwp.com/demo/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_topdemos) | [Compare Free vs PRO](https://spotlightwp.com/features/compare-free-vs-pro/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_topcomparecta) | [Buy Spotlight PRO](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_topbuypro)
17
 
18
+ == Embed any Instagram feed in under 2 minutes ==
19
 
20
+ Follow **3 simple steps** from start to finish:
21
 
22
+ 1. Connect an [Instagram](https://www.instagram.com/) account/s.
23
+ 2. Design your Instagram feed's look.
24
+ 3. Add it to any **page, sidebar, footer, post, etc**.
25
 
26
+ No coding or complex shortcodes required. Check out the 2-minute video below for a quick overview of how to embed Instagram feeds on any WordPress site.
27
 
28
+ https://www.youtube.com/watch?v=tpQFrU5w7G8&feature=emb_title
29
 
30
+ == Free Features ==
31
 
32
+ - Connect one or **multiple Instagram accounts**.
33
+ - Combine multiple Instagram accounts into a single gallery.
34
+ - Create **unlimited Instagram feeds** to use across your site.
35
+ - **Beautiful grid layout** instantly provided.
36
+ - **Customise the design**, including padding and font sizes.
37
+ - **Order posts** by date, popularity, or at random.
38
+ - Change the **number of columns** in the feed.
39
+ - Change the **number of posts** shown in the feed.
40
+ - Change the **size of the feed**'s photos or leave it to automatically take up the area it is added to.
41
+ - **Free popup lightbox** to show full-size photos and playable videos directly on your website. Keep everyone engaged.
42
+ - Add a **stylish feed header** with the Instagram account's profile bio and avatar.
43
+ - Add a **custom bio text and profile photo** per account or feed.
44
+ - Set custom text and colours for the **“Follow” button**.
45
+ - Set custom text and colours for the **“Load More” button**.
46
+ - Show or hide the feed header, "Follow" button", and "Load More" button.
47
+ - Uses your theme's fonts and styles to blend in automatically.
48
+ - The entire feed is **responsive** and customisable per device.
49
+ - **Embed on any page, post, footer or sidebar** using our block, widget and shortcode.
50
+ - **BONUS: Live interactive preview** to see exactly what you're designing before embedding it anywhere on your site.
51
 
52
+ **For Agencies and Developers**: Spotlight provides an [Access Token Generator](https://spotlightwp.com/access-token-generator/) so clients won't need to share personal login details with you.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
 
54
+ == Why Instagram Feeds? Top 3 Benefits: ==
55
 
56
+ **1. Create Connections and Increase Engagement**
57
+ Boost the social engagement on your website and increase your Instagram follower count. Add a "Follow" button to your Instagram gallery to turn site visitors into Instagram followers.
58
 
59
+ **2. Add Social Proof With Minimal Effort**
60
+ Instagram is a great platform for building relationships. Make the most of it by sharing your existing Instagram photos, videos, likes and comments with website visitors. Instant social proof to last a lifetime.
61
 
62
+ **3. Automatically Updated Fresh Content - A Time-Saver!**
63
+ As you post new photos and videos to Instagram, Spotlight adds them to your website. Keep your site looking fresh and current without having to create separate content for it.
64
 
65
+ **Bonus! Enhance your "Coming soon" and "Maintenance" Pages**
66
+ Make your "Coming Soon" and "Maintenance" pages stand out by embedding an Instagram feed. Turn those otherwise lost site visitors into Instagram followers to **generate new leads**.
67
 
68
+ == Why Choose Spotlight? ==
 
69
 
70
+ **1. Easy to Use**
71
+ From connecting your first Instagram account to having it embedded on your website in under 2 minutes. Even less if you use the default settings.
72
 
73
+ **2. Fun to Set Up**
74
+ Gone are the days of long settings pages, complex shortcodes and having to embed a feed first before seeing what it looks like. With Spotlight you do all that in a beautiful live preview editor with point-and-click options.
75
 
76
+ **3. Fast and Helpful Support**
77
+ Spotlight is designed, developed and supported by Mark, Miguel and Gaby. We provide support for both the free and PRO versions of Spotlight and develop new features on a monthly basis. Whenever you have a question, we're here for you.
 
 
 
 
 
 
 
78
 
79
  - [Documentation](https://docs.spotlightwp.com/)
80
  - [Free support (forum)](https://wordpress.org/support/plugin/spotlight-social-photo-feeds/)
81
  - [Premium support (email)](https://spotlightwp.com/support/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_support)
82
 
83
+ == PRO Features ==
 
 
84
 
85
+ Level up your Instagram feeds with **[Spotlight PRO](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_upgrade)**. More layouts, new customisation options, engaging **hashtag feeds**, **filtering** and **moderation**, **shoppable Instagram feeds**, and much more.
86
 
87
+ [**Buy Spotlight PRO**](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_upgradebuypro) | [Demos](https://spotlightwp.com/demo/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_upgradedemos) | [Compare Free vs PRO](https://spotlightwp.com/features/compare-free-vs-pro/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_upgradecomparecta)
88
 
89
+ Here's a look at some of the PRO features currently available:
90
 
91
  - Hashtag feeds - most popular/recent from across Instagram
92
  - Tagged post feeds - show where your account is tagged
93
  - Caption filtering
94
  - Hashtag filtering
95
  - Visual moderation (hand-pick which posts to show/hide)
96
+ - Promote: link to posts, pages, WooCommerce products and more
97
+ - Promote: add call-to-actions to your Instagram posts
98
+ - Promote: automatically link Instagram posts by hashtag
99
  - Highlight layout
100
  - Masonry layout
101
+ - Slider layout
102
  - Hover styles
103
  - Header styles
104
+ - Show captions and like & comment counts in the feed
105
  - Embed Instagram stories in the profile photo (just like Instagram)
 
106
 
107
+ **BONUS: Elementor Instagram Widget** - Officially Recommended
108
+
109
+ Watch a full [Spotlight PRO](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_desc&utm_campaign=readme_desc_upgradevideo) review by WP Crafter:
110
+
111
+ https://www.youtube.com/watch?v=FaOoCzxHpgw
112
+
113
+ == More Recommendations ==
114
 
115
+ **Real User Reviews**
 
 
 
 
 
 
 
 
 
116
 
117
+ - "If you're ready to **start nailing the BIG 3 C's of having a website**, that is building credibility, staying current, and having a better connection with your website visitors, check out Spotlight Instagram feeds today."
118
+ Adam, WP Crafter Youtube Channel
119
+ - "**Out of all of the Instagram integration plugins out there, this is one that I would by far recommend the most.** The plugin itself is easy to use for anyone – especially a beginner."
120
+ Tim, Spotlight Free User
121
+ - "Excellent, Powerful, Smooth - **This is an incredible plugin and the support given is second to none** – they will stop at nothing to help you solve your problems. Thank you!"
122
+ Forson, Spotlight Free User
123
+ - I’ve used other Instagram feed plugins before and this one is the best! **Very happy with this PRO upgrade purchase.** Keep up the great work!!
124
+ Rommel, Spotlight PRO customer
125
+
126
+ **Featured In Various Publications**:
127
+
128
+ - Hubspot: [Top 3 Free Instagram Plugins for WordPress](https://blog.hubspot.com/website/top-free-instagram-plugins-wordpress-site)
129
+ - Elementor: [Best Instagram Plugins for WordPress](https://elementor.com/blog/best-instagram-plugins-wordpress/)
130
+ - WP Mayor: [How to Import Instagram Photos to WordPress](https://wpmayor.com/import-instagram-photos-wordpress/)
131
+ - Kinsta: [WordPress Instagram Plugins](https://kinsta.com/blog/wordpress-instagram-plugin/)
132
+ - BobWP: [How to Improve WooCommerce Sales Using Instagram](https://bobwp.com/how-to-improve-woocommerce-sales-using-your-instagram-feed/)
133
+ - Avada: [Use Instagram Feeds to Boost Traffic and Conversions](https://theme-fusion.com/how-to-use-instagram-feeds-to-boost-traffic-and-conversions/)
134
+ - Elegant Themes: [7 Great Instagram Plugins for Sharing Your Feed](https://www.elegantthemes.com/blog/wordpress/instagram-plugins-for-sharing-your-feed)
135
+ - aThemes: [Best WordPress Instagram Plugins 2020](https://athemes.com/collections/best-wordpress-instagram-plugins/)
136
+ - WPExplorer: [How to Add Instagram Photos to WordPress](https://www.wpexplorer.com/add-instagram-wordpress/)
137
 
138
  == Installation ==
139
 
140
+ = Installation Method 1 =
141
 
142
  1. Go to the Plugins page in your WordPress site's dashboard.
143
  2. Click on the "Add New" button.
145
  4. Click on the "Install" button next to it, then hit "Activate".
146
  5. Go to the “Instagram Feeds” menu item to get started.
147
 
148
+ = Installation Method 2 =
149
 
150
  1. Click on the "Download" button above.
151
  2. Upload the zip file to your site from the Plugins page in your WordPress site's dashboard.
152
  3. Activate the plugin.
153
  4. Go to the “Instagram Feeds” menu item to get started.
154
 
155
+ = 1. Connect Your Instagram Account =
156
+
157
+ Follow the instructions on the screen to connect your, or your clients' Instagram account. You may connect multiple Instagram accounts and manage them all from the Instagram Feeds > Settings > Accounts page. More information on how to connect Instagram accounts in Spotlight is provided in our documentation [here](https://docs.spotlightwp.com/category/517-connecting-accounts).
158
+
159
+ = 2. Design Your Instagram Feed =
160
 
161
+ Once an Instagram account is connected, go to the Design step and start customising the feed. More information on each design option is provided in our documentation [here](https://docs.spotlightwp.com/category/509-the-editor).
162
 
163
+ **BONUS**: Spotlight's Instagram feeds are responsive by default, but you can also design your feed per device to make it look just the way you want! More information on Spotlight's responsiveness options are provided in our documentation [here](https://docs.spotlightwp.com/category/516-live-preview).
164
 
165
+ = 3. Embed Your Instagram Feed =
166
 
167
+ Spotlight provides three methods to embed your Instagram feed in its free version.
168
+
169
+ - [Block](https://docs.spotlightwp.com/article/581-block) - "Spotlight Instagram Feed"
170
+ - [Widget](https://docs.spotlightwp.com/article/580-widget) - "Spotlight Instagram Feed"
171
+ - [Shortcode](https://docs.spotlightwp.com/article/579-shortcode) - [instagram feed="456"]
172
 
173
  == Frequently Asked Questions ==
174
 
175
  = How do I connect my Instagram account? =
176
 
177
+ Once you install Spotlight, a welcome screen appears that guides you on how to connect your first Instagram user account. Click on the connect button and it will show you two options, [Personal or Business](https://docs.spotlightwp.com/article/553-what-is-the-difference-between-instagram-personal-and-business-accounts). Pick the one that applies to you, authorise Spotlight through the popup that appears and you’re all set.
178
 
179
  - - -
180
 
204
 
205
  = Can I show full-size photos and play Instagram videos directly on my website? =
206
 
207
+ Yes, Spotlight's free version includes a lightbox (popup) that will display your photos and playable videos in their full size over your entire website. Keep site visitors exactly where you want them - on your website!
208
+
209
+ If you want to enhance the popup, [Spotlight PRO adds a sidebar](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_faq&utm_campaign=readme_faq_fullsizeandvideos) to the lightbox which will display your Instagram captions, comments, published date, and more.
210
 
211
  - - -
212
 
213
  = Where can I find my Instagram Access Token and User ID? =
214
 
215
+ Option 1: Use Spotlight's [Access Token Generator](https://spotlightwp.com/access-token-generator/).
216
+
217
+ Option 2: If your Instagram account is already connected in Spotlight, go to Instagram Feeds > Settings. From the first page, Accounts, click on the Instagram username or the "info" option under Actions.
218
 
219
  - - -
220
 
221
  = How can I only display posts that use a particular Instagram hashtag? =
222
 
223
+ With [Spotlight PRO](https://spotlightwp.com/pricing/?utm_source=readme&utm_medium=readme_faq&utm_campaign=readme_faq_hashtag) you can use either of two options.
224
+
225
+ Firstly, you can choose to display posts that include a specific hashtag from all across Instagram. ([Learn more](https://docs.spotlightwp.com/article/622-how-to-display-hashtag-feeds)).
226
+
227
+ Secondly, you can use Hashtag filtering to show or hide posts from your connected Instagram account that use a specific hashtag. [Learn more.](https://spotlightwp.com/features/?utm_source=readme&utm_medium=readme_faq&utm_campaign=readme_faq_hashtagfeed)
228
 
229
  - - -
230
 
231
+ = Can I hand-pick specific posts to hide or show in my Instagram feed? =
232
 
233
  Yes, we understand that you may have certain posts that you don't want to show on your website. By using the Moderation option in Spotlight PRO you can hand-pick the photos and videos that you either want to show or hide on your website. [Learn more.](https://spotlightwp.com/features/?utm_source=readme&utm_medium=readme_faq&utm_campaign=readme_faq_moderation)
234
 
236
 
237
  = Will the Instagram feed from Spotlight blend nicely into my website's theme? =
238
 
239
+ Yes, aside from the customisation options provided by Spotlight itself, the plugin is also set up to use your theme's fonts to completely match your brand's look and feel on your website.
240
 
241
  - - -
242
 
243
+ = Why is my Instagram feed not showing correctly or at all? =
 
 
244
 
245
+ There are a few reasons that this may happen. We have documented the reasons and solutions [here](https://docs.spotlightwp.com/collection/524-troubleshooting).
 
 
 
 
246
 
247
 
248
  == Screenshots ==
257
 
258
  == Changelog ==
259
 
260
+ = 0.5.4 (2021-02-11) =
261
+
262
+ **Changed**
263
+ - Now detecting a conflict with the official "Facebook for WordPress" plugin
264
+
265
+ **Fixed**
266
+ - Fixed "Argument 1 passed" error when viewing/previewing a feed
267
+
268
  = 0.5.3 (2021-02-04) =
269
 
270
  **Added**
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInitae2eca6a7f4155ea7339a5ce743c8a08::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit3c37148f2a9d7f2cf3c8354f19e8d525::getLoader();
vendor/composer/ClassLoader.php CHANGED
@@ -42,6 +42,8 @@ namespace Composer\Autoload;
42
  */
43
  class ClassLoader
44
  {
 
 
45
  // PSR-4
46
  private $prefixLengthsPsr4 = array();
47
  private $prefixDirsPsr4 = array();
@@ -57,6 +59,13 @@ class ClassLoader
57
  private $missingClasses = array();
58
  private $apcuPrefix;
59
 
 
 
 
 
 
 
 
60
  public function getPrefixes()
61
  {
62
  if (!empty($this->prefixesPsr0)) {
@@ -300,6 +309,15 @@ class ClassLoader
300
  public function register($prepend = false)
301
  {
302
  spl_autoload_register(array($this, 'loadClass'), true, $prepend);
 
 
 
 
 
 
 
 
 
303
  }
304
 
305
  /**
@@ -308,6 +326,10 @@ class ClassLoader
308
  public function unregister()
309
  {
310
  spl_autoload_unregister(array($this, 'loadClass'));
 
 
 
 
311
  }
312
 
313
  /**
@@ -367,6 +389,16 @@ class ClassLoader
367
  return $file;
368
  }
369
 
 
 
 
 
 
 
 
 
 
 
370
  private function findFileWithExtension($class, $ext)
371
  {
372
  // PSR-4 lookup
42
  */
43
  class ClassLoader
44
  {
45
+ private $vendorDir;
46
+
47
  // PSR-4
48
  private $prefixLengthsPsr4 = array();
49
  private $prefixDirsPsr4 = array();
59
  private $missingClasses = array();
60
  private $apcuPrefix;
61
 
62
+ private static $registeredLoaders = array();
63
+
64
+ public function __construct($vendorDir = null)
65
+ {
66
+ $this->vendorDir = $vendorDir;
67
+ }
68
+
69
  public function getPrefixes()
70
  {
71
  if (!empty($this->prefixesPsr0)) {
309
  public function register($prepend = false)
310
  {
311
  spl_autoload_register(array($this, 'loadClass'), true, $prepend);
312
+
313
+ if (null === $this->vendorDir) {
314
+ //no-op
315
+ } elseif ($prepend) {
316
+ self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
317
+ } else {
318
+ unset(self::$registeredLoaders[$this->vendorDir]);
319
+ self::$registeredLoaders[$this->vendorDir] = $this;
320
+ }
321
  }
322
 
323
  /**
326
  public function unregister()
327
  {
328
  spl_autoload_unregister(array($this, 'loadClass'));
329
+
330
+ if (null !== $this->vendorDir) {
331
+ unset(self::$registeredLoaders[$this->vendorDir]);
332
+ }
333
  }
334
 
335
  /**
389
  return $file;
390
  }
391
 
392
+ /**
393
+ * Returns the currently registered loaders indexed by their corresponding vendor directories.
394
+ *
395
+ * @return self[]
396
+ */
397
+ public static function getRegisteredLoaders()
398
+ {
399
+ return self::$registeredLoaders;
400
+ }
401
+
402
  private function findFileWithExtension($class, $ext)
403
  {
404
  // PSR-4 lookup
vendor/composer/InstalledVersions.php CHANGED
@@ -12,6 +12,7 @@
12
 
13
  namespace Composer;
14
 
 
15
  use Composer\Semver\VersionParser;
16
 
17
 
@@ -29,7 +30,7 @@ private static $installed = array (
29
  'aliases' =>
30
  array (
31
  ),
32
- 'reference' => '9d6155b769419101bc4ce2d64d9080c26b89b52b',
33
  'name' => 'rebelcode/instagram',
34
  ),
35
  'versions' =>
@@ -246,7 +247,7 @@ private static $installed = array (
246
  'aliases' =>
247
  array (
248
  ),
249
- 'reference' => '9d6155b769419101bc4ce2d64d9080c26b89b52b',
250
  ),
251
  'symfony/polyfill-intl-idn' =>
252
  array (
@@ -287,6 +288,8 @@ private static $installed = array (
287
  ),
288
  ),
289
  );
 
 
290
 
291
 
292
 
@@ -296,7 +299,17 @@ private static $installed = array (
296
 
297
  public static function getInstalledPackages()
298
  {
299
- return array_keys(self::$installed['versions']);
 
 
 
 
 
 
 
 
 
 
300
  }
301
 
302
 
@@ -309,7 +322,13 @@ return array_keys(self::$installed['versions']);
309
 
310
  public static function isInstalled($packageName)
311
  {
312
- return isset(self::$installed['versions'][$packageName]);
 
 
 
 
 
 
313
  }
314
 
315
 
@@ -344,42 +363,50 @@ return $provided->matches($constraint);
344
 
345
  public static function getVersionRanges($packageName)
346
  {
347
- if (!isset(self::$installed['versions'][$packageName])) {
348
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
 
349
  }
350
 
351
  $ranges = array();
352
- if (isset(self::$installed['versions'][$packageName]['pretty_version'])) {
353
- $ranges[] = self::$installed['versions'][$packageName]['pretty_version'];
354
  }
355
- if (array_key_exists('aliases', self::$installed['versions'][$packageName])) {
356
- $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']);
357
  }
358
- if (array_key_exists('replaced', self::$installed['versions'][$packageName])) {
359
- $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']);
360
  }
361
- if (array_key_exists('provided', self::$installed['versions'][$packageName])) {
362
- $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']);
363
  }
364
 
365
  return implode(' || ', $ranges);
366
  }
367
 
 
 
 
368
 
369
 
370
 
371
 
372
  public static function getVersion($packageName)
373
  {
374
- if (!isset(self::$installed['versions'][$packageName])) {
375
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
 
376
  }
377
 
378
- if (!isset(self::$installed['versions'][$packageName]['version'])) {
379
  return null;
380
  }
381
 
382
- return self::$installed['versions'][$packageName]['version'];
 
 
 
383
  }
384
 
385
 
@@ -388,15 +415,19 @@ return self::$installed['versions'][$packageName]['version'];
388
 
389
  public static function getPrettyVersion($packageName)
390
  {
391
- if (!isset(self::$installed['versions'][$packageName])) {
392
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
 
393
  }
394
 
395
- if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) {
396
  return null;
397
  }
398
 
399
- return self::$installed['versions'][$packageName]['pretty_version'];
 
 
 
400
  }
401
 
402
 
@@ -405,15 +436,19 @@ return self::$installed['versions'][$packageName]['pretty_version'];
405
 
406
  public static function getReference($packageName)
407
  {
408
- if (!isset(self::$installed['versions'][$packageName])) {
409
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
 
410
  }
411
 
412
- if (!isset(self::$installed['versions'][$packageName]['reference'])) {
413
  return null;
414
  }
415
 
416
- return self::$installed['versions'][$packageName]['reference'];
 
 
 
417
  }
418
 
419
 
@@ -422,7 +457,9 @@ return self::$installed['versions'][$packageName]['reference'];
422
 
423
  public static function getRootPackage()
424
  {
425
- return self::$installed['root'];
 
 
426
  }
427
 
428
 
@@ -457,5 +494,33 @@ return self::$installed;
457
  public static function reload($data)
458
  {
459
  self::$installed = $data;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
460
  }
461
  }
12
 
13
  namespace Composer;
14
 
15
+ use Composer\Autoload\ClassLoader;
16
  use Composer\Semver\VersionParser;
17
 
18
 
30
  'aliases' =>
31
  array (
32
  ),
33
+ 'reference' => 'c96a6cc1a9cb28b930f9cbcb3eefc90ee751d84e',
34
  'name' => 'rebelcode/instagram',
35
  ),
36
  'versions' =>
247
  'aliases' =>
248
  array (
249
  ),
250
+ 'reference' => 'c96a6cc1a9cb28b930f9cbcb3eefc90ee751d84e',
251
  ),
252
  'symfony/polyfill-intl-idn' =>
253
  array (
288
  ),
289
  ),
290
  );
291
+ private static $canGetVendors;
292
+ private static $installedByVendor = array();
293
 
294
 
295
 
299
 
300
  public static function getInstalledPackages()
301
  {
302
+ $packages = array();
303
+ foreach (self::getInstalled() as $installed) {
304
+ $packages[] = array_keys($installed['versions']);
305
+ }
306
+
307
+
308
+ if (1 === \count($packages)) {
309
+ return $packages[0];
310
+ }
311
+
312
+ return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
313
  }
314
 
315
 
322
 
323
  public static function isInstalled($packageName)
324
  {
325
+ foreach (self::getInstalled() as $installed) {
326
+ if (isset($installed['versions'][$packageName])) {
327
+ return true;
328
+ }
329
+ }
330
+
331
+ return false;
332
  }
333
 
334
 
363
 
364
  public static function getVersionRanges($packageName)
365
  {
366
+ foreach (self::getInstalled() as $installed) {
367
+ if (!isset($installed['versions'][$packageName])) {
368
+ continue;
369
  }
370
 
371
  $ranges = array();
372
+ if (isset($installed['versions'][$packageName]['pretty_version'])) {
373
+ $ranges[] = $installed['versions'][$packageName]['pretty_version'];
374
  }
375
+ if (array_key_exists('aliases', $installed['versions'][$packageName])) {
376
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
377
  }
378
+ if (array_key_exists('replaced', $installed['versions'][$packageName])) {
379
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
380
  }
381
+ if (array_key_exists('provided', $installed['versions'][$packageName])) {
382
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
383
  }
384
 
385
  return implode(' || ', $ranges);
386
  }
387
 
388
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
389
+ }
390
+
391
 
392
 
393
 
394
 
395
  public static function getVersion($packageName)
396
  {
397
+ foreach (self::getInstalled() as $installed) {
398
+ if (!isset($installed['versions'][$packageName])) {
399
+ continue;
400
  }
401
 
402
+ if (!isset($installed['versions'][$packageName]['version'])) {
403
  return null;
404
  }
405
 
406
+ return $installed['versions'][$packageName]['version'];
407
+ }
408
+
409
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
410
  }
411
 
412
 
415
 
416
  public static function getPrettyVersion($packageName)
417
  {
418
+ foreach (self::getInstalled() as $installed) {
419
+ if (!isset($installed['versions'][$packageName])) {
420
+ continue;
421
  }
422
 
423
+ if (!isset($installed['versions'][$packageName]['pretty_version'])) {
424
  return null;
425
  }
426
 
427
+ return $installed['versions'][$packageName]['pretty_version'];
428
+ }
429
+
430
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
431
  }
432
 
433
 
436
 
437
  public static function getReference($packageName)
438
  {
439
+ foreach (self::getInstalled() as $installed) {
440
+ if (!isset($installed['versions'][$packageName])) {
441
+ continue;
442
  }
443
 
444
+ if (!isset($installed['versions'][$packageName]['reference'])) {
445
  return null;
446
  }
447
 
448
+ return $installed['versions'][$packageName]['reference'];
449
+ }
450
+
451
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
452
  }
453
 
454
 
457
 
458
  public static function getRootPackage()
459
  {
460
+ $installed = self::getInstalled();
461
+
462
+ return $installed[0]['root'];
463
  }
464
 
465
 
494
  public static function reload($data)
495
  {
496
  self::$installed = $data;
497
+ self::$installedByVendor = array();
498
+ }
499
+
500
+
501
+
502
+
503
+ private static function getInstalled()
504
+ {
505
+ if (null === self::$canGetVendors) {
506
+ self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
507
+ }
508
+
509
+ $installed = array();
510
+
511
+ if (self::$canGetVendors) {
512
+
513
+ foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
514
+ if (isset(self::$installedByVendor[$vendorDir])) {
515
+ $installed[] = self::$installedByVendor[$vendorDir];
516
+ } elseif (is_file($vendorDir.'/composer/installed.php')) {
517
+ $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
518
+ }
519
+ }
520
+ }
521
+
522
+ $installed[] = self::$installed;
523
+
524
+ return $installed;
525
  }
526
  }
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInitae2eca6a7f4155ea7339a5ce743c8a08
6
  {
7
  private static $loader;
8
 
@@ -24,15 +24,15 @@ class ComposerAutoloaderInitae2eca6a7f4155ea7339a5ce743c8a08
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
- spl_autoload_register(array('ComposerAutoloaderInitae2eca6a7f4155ea7339a5ce743c8a08', 'loadClassLoader'), true, true);
28
- self::$loader = $loader = new \Composer\Autoload\ClassLoader();
29
- spl_autoload_unregister(array('ComposerAutoloaderInitae2eca6a7f4155ea7339a5ce743c8a08', 'loadClassLoader'));
30
 
31
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
32
  if ($useStaticLoader) {
33
  require __DIR__ . '/autoload_static.php';
34
 
35
- call_user_func(\Composer\Autoload\ComposerStaticInitae2eca6a7f4155ea7339a5ce743c8a08::getInitializer($loader));
36
  } else {
37
  $map = require __DIR__ . '/autoload_namespaces.php';
38
  foreach ($map as $namespace => $path) {
@@ -53,19 +53,19 @@ class ComposerAutoloaderInitae2eca6a7f4155ea7339a5ce743c8a08
53
  $loader->register(true);
54
 
55
  if ($useStaticLoader) {
56
- $includeFiles = Composer\Autoload\ComposerStaticInitae2eca6a7f4155ea7339a5ce743c8a08::$files;
57
  } else {
58
  $includeFiles = require __DIR__ . '/autoload_files.php';
59
  }
60
  foreach ($includeFiles as $fileIdentifier => $file) {
61
- composerRequireae2eca6a7f4155ea7339a5ce743c8a08($fileIdentifier, $file);
62
  }
63
 
64
  return $loader;
65
  }
66
  }
67
 
68
- function composerRequireae2eca6a7f4155ea7339a5ce743c8a08($fileIdentifier, $file)
69
  {
70
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
71
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit3c37148f2a9d7f2cf3c8354f19e8d525
6
  {
7
  private static $loader;
8
 
24
 
25
  require __DIR__ . '/platform_check.php';
26
 
27
+ spl_autoload_register(array('ComposerAutoloaderInit3c37148f2a9d7f2cf3c8354f19e8d525', 'loadClassLoader'), true, true);
28
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
29
+ spl_autoload_unregister(array('ComposerAutoloaderInit3c37148f2a9d7f2cf3c8354f19e8d525', 'loadClassLoader'));
30
 
31
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
32
  if ($useStaticLoader) {
33
  require __DIR__ . '/autoload_static.php';
34
 
35
+ call_user_func(\Composer\Autoload\ComposerStaticInit3c37148f2a9d7f2cf3c8354f19e8d525::getInitializer($loader));
36
  } else {
37
  $map = require __DIR__ . '/autoload_namespaces.php';
38
  foreach ($map as $namespace => $path) {
53
  $loader->register(true);
54
 
55
  if ($useStaticLoader) {
56
+ $includeFiles = Composer\Autoload\ComposerStaticInit3c37148f2a9d7f2cf3c8354f19e8d525::$files;
57
  } else {
58
  $includeFiles = require __DIR__ . '/autoload_files.php';
59
  }
60
  foreach ($includeFiles as $fileIdentifier => $file) {
61
+ composerRequire3c37148f2a9d7f2cf3c8354f19e8d525($fileIdentifier, $file);
62
  }
63
 
64
  return $loader;
65
  }
66
  }
67
 
68
+ function composerRequire3c37148f2a9d7f2cf3c8354f19e8d525($fileIdentifier, $file)
69
  {
70
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
71
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInitae2eca6a7f4155ea7339a5ce743c8a08
8
  {
9
  public static $files = array (
10
  '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
@@ -603,9 +603,9 @@ class ComposerStaticInitae2eca6a7f4155ea7339a5ce743c8a08
603
  public static function getInitializer(ClassLoader $loader)
604
  {
605
  return \Closure::bind(function () use ($loader) {
606
- $loader->prefixLengthsPsr4 = ComposerStaticInitae2eca6a7f4155ea7339a5ce743c8a08::$prefixLengthsPsr4;
607
- $loader->prefixDirsPsr4 = ComposerStaticInitae2eca6a7f4155ea7339a5ce743c8a08::$prefixDirsPsr4;
608
- $loader->classMap = ComposerStaticInitae2eca6a7f4155ea7339a5ce743c8a08::$classMap;
609
 
610
  }, null, ClassLoader::class);
611
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit3c37148f2a9d7f2cf3c8354f19e8d525
8
  {
9
  public static $files = array (
10
  '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
603
  public static function getInitializer(ClassLoader $loader)
604
  {
605
  return \Closure::bind(function () use ($loader) {
606
+ $loader->prefixLengthsPsr4 = ComposerStaticInit3c37148f2a9d7f2cf3c8354f19e8d525::$prefixLengthsPsr4;
607
+ $loader->prefixDirsPsr4 = ComposerStaticInit3c37148f2a9d7f2cf3c8354f19e8d525::$prefixDirsPsr4;
608
+ $loader->classMap = ComposerStaticInit3c37148f2a9d7f2cf3c8354f19e8d525::$classMap;
609
 
610
  }, null, ClassLoader::class);
611
  }
vendor/composer/installed.php CHANGED
@@ -6,7 +6,7 @@
6
  'aliases' =>
7
  array (
8
  ),
9
- 'reference' => '9d6155b769419101bc4ce2d64d9080c26b89b52b',
10
  'name' => 'rebelcode/instagram',
11
  ),
12
  'versions' =>
@@ -223,7 +223,7 @@
223
  'aliases' =>
224
  array (
225
  ),
226
- 'reference' => '9d6155b769419101bc4ce2d64d9080c26b89b52b',
227
  ),
228
  'symfony/polyfill-intl-idn' =>
229
  array (
6
  'aliases' =>
7
  array (
8
  ),
9
+ 'reference' => 'c96a6cc1a9cb28b930f9cbcb3eefc90ee751d84e',
10
  'name' => 'rebelcode/instagram',
11
  ),
12
  'versions' =>
223
  'aliases' =>
224
  array (
225
  ),
226
+ 'reference' => 'c96a6cc1a9cb28b930f9cbcb3eefc90ee751d84e',
227
  ),
228
  'symfony/polyfill-intl-idn' =>
229
  array (
vendor/container-interop/service-provider/.gitignore DELETED
@@ -1,2 +0,0 @@
1
- /composer.lock
2
- /vendor/
 
 
vendor/dhii/stringable-interface/.gitignore DELETED
@@ -1,4 +0,0 @@
1
- /vendor/
2
- /nbproject/private/
3
- /test/coverage/
4
- /test/log/
 
 
 
 
vendor/dhii/stringable-interface/.php_cs DELETED
@@ -1,23 +0,0 @@
1
- <?php
2
- require_once __DIR__.DIRECTORY_SEPARATOR.'vendor/autoload.php';
3
- $config = Dhii\Configuration\PHPCSFixer\Config::create();
4
- $fixers = $config->getFixers();
5
- $toRemove = array();
6
- foreach ($toRemove as $_fixer) {
7
- if (($removeIndex = array_search($_fixer, $fixers)) === false) {
8
- continue;
9
- }
10
-
11
- unset($fixers[$removeIndex]);
12
- }
13
- $toAdd = array();
14
- foreach ($toAdd as $_fixer) {
15
- if (($removeIndex = array_search($_fixer, $fixers)) !== false) {
16
- continue;
17
- }
18
-
19
- $fixers[] = $_fixer;
20
- }
21
- $config->fixers($fixers);
22
- $config->getFinder()->in(__DIR__.DIRECTORY_SEPARATOR.'src');
23
- return $config;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/dhii/stringable-interface/.travis.yml DELETED
@@ -1,18 +0,0 @@
1
- language: php
2
- php:
3
- - '5.3'
4
- - '5.4'
5
- - '5.5'
6
- - '5.6'
7
- - '7.0'
8
- - '7.1'
9
- - nightly
10
-
11
- before_script:
12
- - composer update
13
-
14
- script:
15
- - vendor/bin/phpunit
16
-
17
- after_script:
18
- - vendor/bin/test-reporter --coverage-report="test/coverage/clover.xml"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/dhii/stringable-interface/phpunit.xml DELETED
@@ -1,35 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <phpunit
3
- colors="true"
4
- bootstrap="test/bootstrap.php"
5
- >
6
- <php>
7
- <ini name="display_errors" value="1" />
8
- <ini name="display_startup_errors" value="1" />
9
- </php>
10
- <testsuites>
11
- <testsuite name="Unit Tests">
12
- <directory>./test/unit/</directory>
13
- </testsuite>
14
- <testsuite name="Functional Tests">
15
- <directory>./test/functional/</directory>
16
- </testsuite>
17
- </testsuites>
18
- <filter>
19
- <whitelist processUncoveredFilesFromWhitelist="true">
20
- <directory suffix=".php">src</directory>
21
- </whitelist>
22
- </filter>
23
- <logging>
24
- <log type="coverage-html" target="./test/coverage/html" lowUpperBound="35"
25
- highLowerBound="80"/>
26
- <log type="coverage-clover" target="./test/coverage/clover.xml"/>
27
- <log type="coverage-php" target="./test/coverage/serialized"/>
28
- <log type="coverage-text" target="php://stdout" showUncoveredFiles="false"/>
29
- <log type="json" target="./test/log/logfile.json"/>
30
- <log type="tap" target="./test/log/logfile.tap"/>
31
- <log type="junit" target="./test/log/logfile.xml" logIncompleteSkipped="false"/>
32
- <log type="testdox-html" target="./test/log/testdox.html"/>
33
- <log type="testdox-text" target="./test/log/testdox.txt"/>
34
- </logging>
35
- </phpunit>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/guzzlehttp/guzzle/.php_cs DELETED
@@ -1,23 +0,0 @@
1
- <?php
2
-
3
- $config = PhpCsFixer\Config::create()
4
- ->setRiskyAllowed(true)
5
- ->setRules([
6
- '@PSR2' => true,
7
- 'array_syntax' => ['syntax' => 'short'],
8
- 'declare_strict_types' => false,
9
- 'concat_space' => ['spacing'=>'one'],
10
- 'php_unit_test_case_static_method_calls' => ['call_type' => 'self'],
11
- 'ordered_imports' => true,
12
- // 'phpdoc_align' => ['align'=>'vertical'],
13
- // 'native_function_invocation' => true,
14
- ])
15
- ->setFinder(
16
- PhpCsFixer\Finder::create()
17
- ->in(__DIR__.'/src')
18
- ->in(__DIR__.'/tests')
19
- ->name('*.php')
20
- )
21
- ;
22
-
23
- return $config;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/guzzlehttp/promises/.php_cs.dist DELETED
@@ -1,88 +0,0 @@
1
- <?php
2
-
3
- $config = PhpCsFixer\Config::create()
4
- ->setRiskyAllowed(true)
5
- ->setRules([
6
- '@PSR2' => true,
7
- 'array_syntax' => ['syntax' => 'short'],
8
- 'binary_operator_spaces' => ['operators' => ['=>' => null]],
9
- 'blank_line_after_opening_tag' => true,
10
- 'class_attributes_separation' => ['elements' => ['method']],
11
- 'compact_nullable_typehint' => true,
12
- 'concat_space' => ['spacing' => 'one'],
13
- 'declare_equal_normalize' => ['space' => 'none'],
14
- 'declare_strict_types' => false,
15
- 'dir_constant' => true,
16
- 'final_static_access' => true,
17
- 'fully_qualified_strict_types' => true,
18
- 'function_to_constant' => true,
19
- 'function_typehint_space' => true,
20
- 'header_comment' => false,
21
- 'is_null' => ['use_yoda_style' => false],
22
- 'list_syntax' => ['syntax' => 'short'],
23
- 'lowercase_cast' => true,
24
- 'magic_method_casing' => true,
25
- 'modernize_types_casting' => true,
26
- 'multiline_comment_opening_closing' => true,
27
- //'native_constant_invocation' => true,
28
- 'no_alias_functions' => true,
29
- 'no_alternative_syntax' => true,
30
- 'no_blank_lines_after_phpdoc' => true,
31
- 'no_empty_comment' => true,
32
- 'no_empty_phpdoc' => true,
33
- 'no_extra_blank_lines' => true,
34
- 'no_leading_import_slash' => true,
35
- 'no_leading_namespace_whitespace' => true,
36
- 'no_spaces_around_offset' => true,
37
- 'no_superfluous_phpdoc_tags' => ['allow_mixed' => true],
38
- 'no_trailing_comma_in_singleline_array' => true,
39
- 'no_unneeded_control_parentheses' => true,
40
- 'no_unset_cast' => true,
41
- 'no_unused_imports' => true,
42
- 'no_useless_else' => true,
43
- 'no_useless_return' => true,
44
- 'no_whitespace_in_blank_line' => true,
45
- 'normalize_index_brace' => true,
46
- 'ordered_imports' => true,
47
- 'php_unit_construct' => true,
48
- 'php_unit_dedicate_assert' => ['target' => 'newest'],
49
- 'php_unit_dedicate_assert_internal_type' => ['target' => 'newest'],
50
- 'php_unit_expectation' => ['target' => 'newest'],
51
- 'php_unit_mock' => ['target' => 'newest'],
52
- 'php_unit_mock_short_will_return' => true,
53
- 'php_unit_no_expectation_annotation' => ['target' => 'newest'],
54
- 'php_unit_test_annotation' => ['style' => 'prefix'],
55
- //'php_unit_test_case_static_method_calls' => ['call_type' => 'self'],
56
- 'phpdoc_align' => ['align' => 'vertical'],
57
- //'phpdoc_line_span' => ['method' => 'multi', 'property' => 'multi'],
58
- 'phpdoc_no_package' => true,
59
- 'phpdoc_no_useless_inheritdoc' => true,
60
- 'phpdoc_scalar' => true,
61
- 'phpdoc_separation' => true,
62
- 'phpdoc_single_line_var_spacing' => true,
63
- 'phpdoc_trim' => true,
64
- 'phpdoc_trim_consecutive_blank_line_separation' => true,
65
- 'phpdoc_types' => true,
66
- 'phpdoc_types_order' => ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none'],
67
- 'phpdoc_var_without_name' => true,
68
- 'return_assignment' => true,
69
- 'short_scalar_cast' => true,
70
- 'single_trait_insert_per_statement' => true,
71
- 'standardize_not_equals' => true,
72
- //'static_lambda' => true,
73
- 'ternary_to_null_coalescing' => true,
74
- 'trim_array_spaces' => true,
75
- 'visibility_required' => true,
76
- 'yoda_style' => false,
77
- // 'native_function_invocation' => true,
78
- 'braces' => ['allow_single_line_closure'=>true],
79
- ])
80
- ->setFinder(
81
- PhpCsFixer\Finder::create()
82
- ->in(__DIR__.'/src')
83
- ->in(__DIR__.'/tests')
84
- ->name('*.php')
85
- )
86
- ;
87
-
88
- return $config;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/guzzlehttp/promises/phpstan.neon.dist DELETED
@@ -1,10 +0,0 @@
1
- includes:
2
- - phpstan-baseline.neon
3
-
4
- parameters:
5
- level: 5
6
- paths:
7
- - src
8
-
9
- ignoreErrors:
10
- - "#^Dead catch - Exception is already caught by Throwable above\\.$#"
 
 
 
 
 
 
 
 
 
 
vendor/guzzlehttp/promises/psalm.xml DELETED
@@ -1,15 +0,0 @@
1
- <?xml version="1.0"?>
2
- <psalm
3
- errorLevel="4"
4
- resolveFromConfigFile="true"
5
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6
- xmlns="https://getpsalm.org/schema/config"
7
- xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
8
- >
9
- <projectFiles>
10
- <directory name="src" />
11
- <ignoreFiles>
12
- <directory name="vendor" />
13
- </ignoreFiles>
14
- </projectFiles>
15
- </psalm>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/kevinrob/guzzle-cache-middleware/.editorconfig DELETED
@@ -1,11 +0,0 @@
1
- # This is the top-most .editorconfig file; do not search in parent directories.
2
- root = true
3
-
4
- # All files.
5
- [*]
6
- end_of_line = LF
7
- indent_style = space
8
- indent_size = 4
9
- charset = utf-8
10
- trim_trailing_whitespace = true
11
- insert_final_newline = true
 
 
 
 
 
 
 
 
 
 
 
vendor/kevinrob/guzzle-cache-middleware/.gitignore DELETED
@@ -1,6 +0,0 @@
1
- vendor/
2
- composer.lock
3
- composer.phar
4
- *.iml
5
- .idea/
6
- coverage.xml
 
 
 
 
 
 
vendor/kevinrob/guzzle-cache-middleware/.travis.yml DELETED
@@ -1,27 +0,0 @@
1
- dist: trusty
2
- sudo: false
3
- language: php
4
- php:
5
- - 5.5
6
- - 5.6
7
- - 7.0
8
- - 7.1
9
- - 7.2
10
- - 7.3
11
- - 7.4
12
- - nightly
13
-
14
- matrix:
15
- allow_failures:
16
- - php: nightly
17
- fast_finish: true
18
-
19
- before_script:
20
- - composer install -n
21
-
22
- script:
23
- - vendor/bin/phpunit
24
-
25
- cache:
26
- directories:
27
- - vendor
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/kevinrob/guzzle-cache-middleware/phpunit.xml.dist DELETED
@@ -1,31 +0,0 @@
1
- <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
- xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
3
- backupGlobals="false"
4
- colors="true"
5
- bootstrap="./vendor/autoload.php"
6
- >
7
- <php>
8
- <env name="SYMFONY_DEPRECATIONS_HELPER" value="max[self]=0" />
9
- </php>
10
-
11
- <testsuites>
12
- <testsuite name="Project Test Suite">
13
- <directory>tests</directory>
14
- </testsuite>
15
- </testsuites>
16
-
17
- <filter>
18
- <whitelist processUncoveredFilesFromWhitelist="true">
19
- <directory suffix=".php">src</directory>
20
- </whitelist>
21
- </filter>
22
-
23
- <logging>
24
- <log type="coverage-clover" target="coverage.xml"/>
25
- </logging>
26
-
27
- <listeners>
28
- <listener class="\Symfony\Bridge\PhpUnit\SymfonyTestsListener"/>
29
- </listeners>
30
-
31
- </phpunit>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/psr/container/.gitignore DELETED
@@ -1,3 +0,0 @@
1
- composer.lock
2
- composer.phar
3
- /vendor/
 
 
 
vendor/psr/simple-cache/.editorconfig DELETED
@@ -1,12 +0,0 @@
1
- ; This file is for unifying the coding style for different editors and IDEs.
2
- ; More information at http://editorconfig.org
3
-
4
- root = true
5
-
6
- [*]
7
- charset = utf-8
8
- indent_size = 4
9
- indent_style = space
10
- end_of_line = lf
11
- insert_final_newline = true
12
- trim_trailing_whitespace = true
 
 
 
 
 
 
 
 
 
 
 
 
vendor/rebelcode/entities/.gitattributes DELETED
File without changes
vendor/rebelcode/entities/.gitignore DELETED
@@ -1,4 +0,0 @@
1
- /.idea/
2
- /nbproject/
3
- /test/log/
4
- /vendor/
 
 
 
 
vendor/rebelcode/entities/phpunit.xml DELETED
@@ -1,35 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <phpunit
3
- colors="true"
4
- bootstrap="test/bootstrap.php"
5
- >
6
- <php>
7
- <ini name="display_errors" value="1" />
8
- <ini name="display_startup_errors" value="1" />
9
- </php>
10
- <testsuites>
11
- <testsuite name="Unit tests">
12
- <directory>./test/unit/</directory>
13
- </testsuite>
14
- <testsuite name="Functional tests">
15
- <directory>./test/func/</directory>
16
- </testsuite>
17
- </testsuites>
18
- <filter>
19
- <whitelist processUncoveredFilesFromWhitelist="true">
20
- <directory suffix=".php">src</directory>
21
- </whitelist>
22
- </filter>
23
- <logging>
24
- <log type="coverage-html" target="./test/coverage/html" lowUpperBound="35"
25
- highLowerBound="80"/>
26
- <log type="coverage-clover" target="./test/coverage/clover.xml"/>
27
- <log type="coverage-php" target="./test/coverage/serialized"/>
28
- <log type="coverage-text" target="php://stdout" showUncoveredFiles="false"/>
29
- <log type="json" target="./test/log/logfile.json"/>
30
- <log type="tap" target="./test/log/logfile.tap"/>
31
- <log type="junit" target="./test/log/logfile.xml" logIncompleteSkipped="false"/>
32
- <log type="testdox-html" target="./test/log/testdox.html"/>
33
- <log type="testdox-text" target="./test/log/testdox.txt"/>
34
- </logging>
35
- </phpunit>