PixelYourSite – Facebook Pixel (Events, WooCommerce & Easy Digital Downloads) - Version 8.0.0

Version Description

Download this release

Release Info

Developer PixelYourSite
Plugin Icon 128x128 PixelYourSite – Facebook Pixel (Events, WooCommerce & Easy Digital Downloads)
Version 8.0.0
Comparing to
See all releases

Code changes from version 7.2.1.1 to 8.0.0

Files changed (180) hide show
  1. dist/scripts/public.js +422 -312
  2. dist/styles/admin.css +4 -0
  3. facebook-pixel-master.php +2 -2
  4. includes/class-events-manager.php +202 -433
  5. includes/events/class-event-grouped.php +26 -0
  6. includes/events/class-event-single.php +59 -0
  7. includes/events/class-event.php +30 -0
  8. includes/events/class-events-custom.php +81 -0
  9. includes/events/class-events-edd.php +204 -0
  10. includes/events/class-events-fdp.php +86 -0
  11. includes/events/class-events-signal.php +195 -0
  12. includes/events/class-events-woo.php +283 -0
  13. includes/events/interface-events.php +24 -0
  14. includes/functions-common.php +71 -4
  15. includes/functions-edd.php +2 -2
  16. includes/options_defaults.json +29 -1
  17. includes/options_fields.json +27 -1
  18. includes/views/html-main-edd.php +20 -74
  19. includes/views/html-main-events.php +17 -0
  20. includes/views/html-main-general.php +235 -631
  21. includes/views/html-main-woo.php +22 -76
  22. modules/facebook/PYSServerEventHelper.php +3 -3
  23. modules/facebook/facebook-server.php +8 -20
  24. modules/facebook/facebook.php +296 -97
  25. modules/facebook/function-helpers.php +4 -4
  26. modules/facebook/options_defaults.json +3 -1
  27. modules/facebook/options_fields.json +3 -1
  28. modules/google_analytics/ga.php +186 -49
  29. modules/google_analytics/options_defaults.json +3 -1
  30. modules/google_analytics/options_fields.json +3 -1
  31. pixelyoursite.php +13 -3
  32. readme.txt +37 -6
  33. vendor/composer/autoload_classmap.php +31 -20
  34. vendor/composer/autoload_static.php +31 -20
  35. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/ApiConfig.php +1 -1
  36. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AbstractCrudObject.php +1 -1
  37. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Ad.php +3 -3
  38. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccount.php +5 -15
  39. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/{UserPaymentMethodsInfo.php → AdCreativeOmnichannelLinkSpec.php} +4 -4
  40. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdSet.php +2 -2
  41. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdVideo.php +0 -21
  42. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Album.php +0 -21
  43. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Application.php +0 -21
  44. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/Content.php +141 -0
  45. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/CustomData.php +287 -0
  46. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/Event.php +232 -0
  47. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/EventRequest.php +131 -0
  48. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/EventResponse.php +115 -0
  49. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/UserData.php +307 -0
  50. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Campaign.php +3 -3
  51. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/{UserPaymentModulesOptions.php → CatalogItemChannelsToIntegrityStatus.php} +4 -4
  52. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CustomAudience.php +10 -0
  53. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountCreationRequestFields.php +0 -75
  54. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountFields.php +1 -2
  55. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{FriendListFields.php → AdCreativeOmnichannelLinkSpecFields.php} +4 -6
  56. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdFields.php +2 -1
  57. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdReportRunFields.php +2 -1
  58. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CampaignFields.php +3 -2
  59. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{UserPaymentModulesOptionsFields.php → CatalogItemChannelsToIntegrityStatusFields.php} +4 -6
  60. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EventTourFields.php +0 -56
  61. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/GroupFields.php +1 -2
  62. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/IGMediaFields.php +1 -2
  63. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/IGUserFields.php +1 -2
  64. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/MessengerProfileFields.php +2 -1
  65. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PagePostFields.php +1 -11
  66. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{UserPaymentMethodsInfoFields.php → PaymentEnginePaymentFields.php} +20 -8
  67. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PaymentSubscriptionFields.php +1 -1
  68. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PostFields.php +1 -11
  69. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ProductItemFields.php +2 -1
  70. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UnifiedThreadFields.php +1 -2
  71. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserFields.php +1 -11
  72. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{OfflineTermsOfServiceFields.php → WhatsAppBusinessProfileFields.php} +3 -4
  73. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FriendList.php +0 -64
  74. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Group.php +30 -2
  75. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Link.php +0 -23
  76. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/LiveVideo.php +1 -1
  77. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OfflineTermsOfService.php +0 -64
  78. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Page.php +3 -13
  79. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/{EventTour.php → PaymentEnginePayment.php} +15 -13
  80. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Photo.php +0 -21
  81. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Post.php +2 -12
  82. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ProductFeedSchedule.php +0 -20
  83. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ProductGroup.php +10 -0
  84. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ProductItem.php +20 -0
  85. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/ActionSource.php +69 -0
  86. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Event.php +27 -4
  87. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Normalizer.php +16 -0
  88. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/Content.php +231 -0
  89. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/CustomData.php +495 -0
  90. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/Event.php +255 -0
  91. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/EventRequest.php +223 -0
  92. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/UserData.php +564 -0
  93. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/Util.php +41 -0
  94. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/User.php +12 -12
  95. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountDeliveryEstimateOptimizationGoalValues.php +1 -0
  96. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountMatchedSearchApplicationsEdgeDataAppStoreValues.php +1 -0
  97. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountPermittedTasksValues.php +1 -0
  98. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountTargetingUnifiedAppStoreValues.php +1 -0
  99. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountTasksValues.php +1 -0
  100. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAssetFeedSpecCallToActionTypesValues.php +1 -0
  101. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCampaignActivityBidStrategyNewValues.php +0 -1
  102. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCampaignActivityBidStrategyOldValues.php +0 -1
  103. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCampaignActivityOptimizationGoalNewValues.php +1 -0
  104. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCampaignActivityOptimizationGoalOldValues.php +1 -0
  105. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCampaignDeliveryEstimateOptimizationGoalValues.php +1 -0
  106. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCreativeCallToActionTypeValues.php +1 -0
  107. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCreativeLinkDataCallToActionTypeValues.php +1 -0
  108. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdSetBidStrategyValues.php +0 -1
  109. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdSetOptimizationGoalValues.php +1 -0
  110. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdVideoContainerTypeValues.php +1 -0
  111. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/ApplicationSupportedPlatformsValues.php +1 -0
  112. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/BusinessAssetGroupAdaccountTasksValues.php +1 -0
  113. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/BusinessPermittedTasksValues.php +1 -0
  114. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/CampaignBidStrategyValues.php +0 -1
  115. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/GroupGroupTypeValues.php +1 -0
  116. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/GroupPurposeValues.php +1 -0
  117. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/LiveVideoBroadcastStatusValues.php +9 -9
  118. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PaymentEnginePaymentReasonValues.php +42 -0
  119. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/TargetingDevicePlatformsValues.php +0 -1
  120. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/TargetingEffectiveDevicePlatformsValues.php +0 -1
  121. vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/{AdAccountCreationRequest.php → WhatsAppBusinessProfile.php} +8 -8
  122. vendor_prefix/guzzlehttp/guzzle/Dockerfile +18 -0
  123. vendor_prefix/guzzlehttp/guzzle/src/BodySummarizer.php +0 -23
  124. vendor_prefix/guzzlehttp/guzzle/src/BodySummarizerInterface.php +0 -12
  125. vendor_prefix/guzzlehttp/guzzle/src/Client.php +101 -73
  126. vendor_prefix/guzzlehttp/guzzle/src/ClientInterface.php +13 -9
  127. vendor_prefix/guzzlehttp/guzzle/src/ClientTrait.php +0 -227
  128. vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJar.php +47 -48
  129. vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php +11 -8
  130. vendor_prefix/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php +14 -22
  131. vendor_prefix/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php +10 -14
  132. vendor_prefix/guzzlehttp/guzzle/src/Cookie/SetCookie.php +65 -69
  133. vendor_prefix/guzzlehttp/guzzle/src/Exception/BadResponseException.php +4 -16
  134. vendor_prefix/guzzlehttp/guzzle/src/Exception/ConnectException.php +9 -25
  135. vendor_prefix/guzzlehttp/guzzle/src/Exception/GuzzleException.php +18 -3
  136. vendor_prefix/guzzlehttp/guzzle/src/Exception/RequestException.php +53 -30
  137. vendor_prefix/guzzlehttp/guzzle/src/Exception/SeekException.php +25 -0
  138. vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlFactory.php +67 -84
  139. vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php +5 -2
  140. vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlHandler.php +4 -8
  141. vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php +28 -61
  142. vendor_prefix/guzzlehttp/guzzle/src/Handler/EasyHandle.php +12 -41
  143. vendor_prefix/guzzlehttp/guzzle/src/Handler/MockHandler.php +39 -56
  144. vendor_prefix/guzzlehttp/guzzle/src/Handler/Proxy.php +10 -13
  145. vendor_prefix/guzzlehttp/guzzle/src/Handler/StreamHandler.php +71 -98
  146. vendor_prefix/guzzlehttp/guzzle/src/HandlerStack.php +57 -49
  147. vendor_prefix/guzzlehttp/guzzle/src/MessageFormatter.php +20 -32
  148. vendor_prefix/guzzlehttp/guzzle/src/MessageFormatterInterface.php +0 -17
  149. vendor_prefix/guzzlehttp/guzzle/src/Middleware.php +50 -56
  150. vendor_prefix/guzzlehttp/guzzle/src/Pool.php +22 -21
  151. vendor_prefix/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php +16 -11
  152. vendor_prefix/guzzlehttp/guzzle/src/RedirectMiddleware.php +48 -28
  153. vendor_prefix/guzzlehttp/guzzle/src/RequestOptions.php +31 -31
  154. vendor_prefix/guzzlehttp/guzzle/src/RetryMiddleware.php +39 -31
  155. vendor_prefix/guzzlehttp/guzzle/src/TransferStats.php +19 -23
  156. vendor_prefix/guzzlehttp/guzzle/src/UriTemplate.php +191 -0
  157. vendor_prefix/guzzlehttp/guzzle/src/Utils.php +31 -293
  158. vendor_prefix/guzzlehttp/guzzle/src/functions.php +189 -53
  159. vendor_prefix/guzzlehttp/guzzle/src/functions_include.php +1 -1
  160. vendor_prefix/paragonie/random_compat/dist/random_compat.phar.pubkey +5 -0
  161. vendor_prefix/paragonie/random_compat/dist/random_compat.phar.pubkey.asc +11 -0
  162. vendor_prefix/paragonie/random_compat/lib/byte_safe_strings.php +147 -0
  163. vendor_prefix/paragonie/random_compat/lib/cast_to_int.php +68 -0
  164. vendor_prefix/paragonie/random_compat/lib/error_polyfill.php +47 -0
  165. vendor_prefix/paragonie/random_compat/lib/random.php +171 -0
  166. vendor_prefix/paragonie/random_compat/lib/random_bytes_com_dotnet.php +81 -0
  167. vendor_prefix/paragonie/random_compat/lib/random_bytes_dev_urandom.php +173 -0
  168. vendor_prefix/paragonie/random_compat/lib/random_bytes_libsodium.php +81 -0
  169. vendor_prefix/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php +82 -0
  170. vendor_prefix/paragonie/random_compat/lib/random_bytes_mcrypt.php +68 -0
  171. vendor_prefix/paragonie/random_compat/lib/random_int.php +181 -0
  172. vendor_prefix/paragonie/random_compat/phpunit-autoload.php +15 -0
  173. vendor_prefix/psr/http-client/src/ClientExceptionInterface.php +0 -10
  174. vendor_prefix/psr/http-client/src/ClientInterface.php +0 -19
  175. vendor_prefix/psr/http-client/src/NetworkExceptionInterface.php +0 -23
  176. vendor_prefix/psr/http-client/src/RequestExceptionInterface.php +0 -23
  177. vendor_prefix/symfony/polyfill-intl-idn/Idn.php +716 -0
  178. vendor_prefix/symfony/polyfill-intl-idn/Info.php +22 -0
  179. vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php +286 -0
  180. vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/Regex.php +20 -0
dist/scripts/public.js CHANGED
@@ -101,7 +101,11 @@ if (!Array.prototype.includes) {
101
  },
102
 
103
  onEddRemoveFromCartEvent: function (item) {
104
- }
 
 
 
 
105
 
106
  }
107
 
@@ -164,7 +168,13 @@ if (!Array.prototype.includes) {
164
  },
165
 
166
  onEddRemoveFromCartEvent: function (item) {
167
- }
 
 
 
 
 
 
168
 
169
  }
170
 
@@ -205,6 +215,16 @@ if (!Array.prototype.includes) {
205
  * PUBLIC API
206
  */
207
  return {
 
 
 
 
 
 
 
 
 
 
208
 
209
  setupPinterestObject: function () {
210
  Pinterest = window.pys.Pinterest || Pinterest;
@@ -223,6 +243,40 @@ if (!Array.prototype.includes) {
223
  }
224
  return to;
225
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
226
 
227
  // Returns array of elements with given tag name
228
  getTagsAsArray: function (tag) {
@@ -260,10 +314,9 @@ if (!Array.prototype.includes) {
260
 
261
  // Non-default binding used to avoid situations when some code in external js
262
  // stopping events propagation, eg. returns false, and our handler will never called
263
- $(document).onFirst('click', triggers.join(','), function () {
264
- Utils.fireDynamicEvent(eventId);
265
  });
266
-
267
  },
268
 
269
  setupURLClickEvents: function () {
@@ -277,13 +330,14 @@ if (!Array.prototype.includes) {
277
  eventId = parseInt(eventId);
278
 
279
  if (isNaN(eventId) === false) {
280
- Utils.fireDynamicEvent(eventId);
281
  }
282
 
283
  });
284
 
285
  });
286
 
 
287
  },
288
 
289
  setupScrollPosEvents: function (eventId, triggers) {
@@ -302,7 +356,7 @@ if (!Array.prototype.includes) {
302
 
303
  });
304
 
305
- $(document).scroll(function () {
306
 
307
  var scrollPos = $(window).scrollTop();
308
 
@@ -320,39 +374,59 @@ if (!Array.prototype.includes) {
320
  scrollPosThresholds[threshold] = null;
321
  }
322
 
323
- Utils.fireDynamicEvent(eventId);
324
 
325
  });
326
 
327
  });
328
 
 
329
  },
330
  setupCommentEvents : function (eventId,triggers) {
331
  $('form.comment-form').on("submit",function () {
332
- Utils.fireDynamicEvent(eventId);
333
  });
334
  },
335
 
336
  /**
337
  * Events
338
  */
 
339
 
340
- fireDynamicEvent: function (eventId) {
341
-
342
- if (!options.dynamicEventsParams.hasOwnProperty(eventId)) {
343
  return;
344
  }
345
 
346
  var event = {};
 
347
 
348
- if (options.dynamicEventsParams[eventId].hasOwnProperty('facebook')) {
349
-
350
- event = Utils.copyProperties(options.dynamicEventsParams[eventId]['facebook'], {});
351
- Facebook.fireEvent(event.name, { params: event.params });
 
352
  }
353
 
 
 
 
 
 
 
354
 
 
 
 
 
 
 
355
 
 
 
 
 
 
 
356
  },
357
 
358
  fireStaticEvents: function (pixel) {
@@ -705,23 +779,15 @@ if (!Array.prototype.includes) {
705
 
706
  var initialized = false;
707
 
708
- var serverEventsDynamic = ["AddToCart","RemoveFromCart","ClickEvent","AdSense","WatchVideo",'Comment','Form','Download'];
709
- // add dynamic events from options
710
- Object.keys(options.dynamicEventsParams).forEach(function(k){
711
- if(options.dynamicEventsParams[k].hasOwnProperty('facebook')) {
712
- serverEventsDynamic.push(options.dynamicEventsParams[k]['facebook']['name']);
713
- }
714
- });
715
- serverEventsDynamic.push(options.woo.affiliateEventName);
716
- serverEventsDynamic.push(options.woo.paypalEventName);
717
 
718
  function fireEvent(name, allData) {
719
 
720
  var actionType = defaultEventTypes.includes(name) ? 'track' : 'trackCustom';
721
  var data = allData.params;
722
  var params = {};
 
723
  Utils.copyProperties(data, params);
724
- Utils.copyProperties(options.commonEventParams, params);
725
 
726
  if(options.facebook.serverApiEnabled) {
727
  // fire server side event gdpr plugin installed
@@ -733,12 +799,12 @@ if (!Array.prototype.includes) {
733
  options.gdpr.cookie_law_info_integration_enabled;
734
 
735
  // Update eventID
736
- if( options.facebook.ajaxForServerEvent || serverEventsDynamic.includes(name) ) {
737
  allData.eventID = pys_generate_token(36);
738
  }
739
-
740
  // send event from server if they was bloc by gdpr or need send with delay
741
- if( options.facebook.ajaxForServerEvent || isApiDisabled || allData.delay > 0 || serverEventsDynamic.includes(name))
742
  {
743
  var json = {
744
  action: 'pys_api_event',
@@ -787,10 +853,6 @@ if (!Array.prototype.includes) {
787
  if (options.debug) {
788
  console.log('[Facebook] ' + name, params,"eventID",allData.eventID);
789
  }
790
- var arg = {};
791
- if(allData.hasOwnProperty('eventID')) {
792
- arg.eventID = allData.eventID;
793
- }
794
 
795
  fbq(actionType, name, params,arg);
796
  }
@@ -799,7 +861,9 @@ if (!Array.prototype.includes) {
799
  * Public API
800
  */
801
  return {
802
-
 
 
803
  isEnabled: function () {
804
  return options.hasOwnProperty('facebook');
805
  },
@@ -882,103 +946,83 @@ if (!Array.prototype.includes) {
882
 
883
  },
884
 
885
- onCommentEvent: function () {
886
-
887
- if (initialized && this.isEnabled() && options.facebook.commentEventEnabled) {
888
- var param = {};
889
- this.fireEvent('Comment', {
890
- params: Utils.copyProperties(options.facebook.contentParams, param)
891
- });
892
-
893
- }
894
-
895
  },
896
 
897
- onDownloadEvent: function (params) {
898
-
899
- if (initialized && this.isEnabled() && options.facebook.downloadEnabled) {
900
- this.fireEvent('Download', {
901
- params: Utils.copyProperties(options.facebook.contentParams, params)
902
- });
903
-
904
- }
905
-
906
  },
907
 
908
- onFormEvent: function (params) {
909
-
910
- if (initialized && this.isEnabled() && options.facebook.formEventEnabled) {
911
-
912
- this.fireEvent('Form', {
913
- params: Utils.copyProperties(options.facebook.contentParams, params)
914
- });
915
 
916
- }
917
 
918
  },
919
 
920
  onWooAddToCartOnButtonEvent: function (product_id) {
921
 
 
 
 
 
922
  if (window.pysWooProductData.hasOwnProperty(product_id)) {
923
  if (window.pysWooProductData[product_id].hasOwnProperty('facebook')) {
924
-
925
- this.fireEvent('AddToCart', {
926
- params: Utils.copyProperties(window.pysWooProductData[product_id]['facebook'], {})
927
- });
928
-
929
  }
930
  }
931
-
932
  },
933
 
934
- onWooAddToCartOnSingleEvent: function (product_id, qty, is_variable, $form) {
935
 
936
  window.pysWooProductData = window.pysWooProductData || [];
937
-
 
 
938
  if (window.pysWooProductData.hasOwnProperty(product_id)) {
939
  if (window.pysWooProductData[product_id].hasOwnProperty('facebook')) {
940
 
941
- if (is_variable && !options.facebook.wooVariableAsSimple) {
942
  product_id = parseInt($form.find('input[name="variation_id"]').val());
943
  }
944
 
945
- var params = Utils.copyProperties(window.pysWooProductData[product_id]['facebook'], {});
946
 
947
  // maybe customize value option
948
  if (options.woo.addToCartOnButtonValueEnabled && options.woo.addToCartOnButtonValueOption !== 'global') {
949
- params.value = params.value * qty;
 
 
 
 
 
 
 
950
  }
951
 
952
  // only when non Facebook for WooCommerce logic used
953
- if (params.hasOwnProperty('contents')) {
954
- params.contents[0].quantity = qty;
955
  }
956
 
957
- this.fireEvent('AddToCart', {
958
- params: params
959
- });
960
 
961
  }
962
  }
963
-
964
  },
965
 
966
- onWooRemoveFromCartEvent: function (cart_item_hash) {
967
-
968
- window.pysWooRemoveFromCartData = window.pysWooRemoveFromCartData || [];
969
-
970
- if (window.pysWooRemoveFromCartData[cart_item_hash].hasOwnProperty('facebook')) {
971
-
972
- this.fireEvent('RemoveFromCart', {
973
- params: Utils.copyProperties(window.pysWooRemoveFromCartData[cart_item_hash]['facebook'], {})
974
- });
975
-
976
- }
977
-
978
  },
979
 
980
  onEddAddToCartOnButtonEvent: function (download_id, price_index, qty) {
981
 
 
 
 
 
982
  if (window.pysEddProductData.hasOwnProperty(download_id)) {
983
 
984
  var index;
@@ -992,21 +1036,20 @@ if (!Array.prototype.includes) {
992
  if (window.pysEddProductData[download_id].hasOwnProperty(index)) {
993
  if (window.pysEddProductData[download_id][index].hasOwnProperty('facebook')) {
994
 
995
- var params = Utils.copyProperties(window.pysEddProductData[download_id][index]['facebook'], {});
 
996
 
997
  // maybe customize value option
998
  if (options.edd.addToCartOnButtonValueEnabled && options.edd.addToCartOnButtonValueOption !== 'global') {
999
- params.value = params.value * qty;
1000
  }
1001
 
1002
  // update contents qty param
1003
- var contents = JSON.parse(params.contents);
1004
  contents[0].quantity = qty;
1005
- params.contents = JSON.stringify(contents);
1006
 
1007
- this.fireEvent('AddToCart', {
1008
- params: params
1009
- });
1010
 
1011
  }
1012
  }
@@ -1015,17 +1058,16 @@ if (!Array.prototype.includes) {
1015
 
1016
  },
1017
 
1018
- onEddRemoveFromCartEvent: function (item) {
1019
-
1020
- if (item.hasOwnProperty('facebook')) {
1021
-
1022
- this.fireEvent('RemoveFromCart', {
1023
- params: Utils.copyProperties(item['facebook'], {})
1024
- });
1025
-
1026
- }
1027
 
1028
- }
1029
 
1030
  };
1031
 
@@ -1074,7 +1116,9 @@ if (!Array.prototype.includes) {
1074
  * Public API
1075
  */
1076
  return {
1077
-
 
 
1078
  isEnabled: function () {
1079
  return options.hasOwnProperty('ga');
1080
  },
@@ -1154,156 +1198,145 @@ if (!Array.prototype.includes) {
1154
 
1155
  },
1156
 
1157
- onCommentEvent: function () {
1158
-
1159
- if (initialized && this.isEnabled() && options.ga.commentEventEnabled) {
1160
 
 
1161
  if(options.ga.isUse4Version) {
1162
- this.fireEvent('Comment', {
1163
- params: {
1164
- post_type: pysOptions.postType,
1165
- post_id: pysOptions.postId,
1166
- content_name: pysOptions.postTitle,
1167
- event_url:window.location.href,
1168
-
1169
- user_role:pysOptions.userRoles,
1170
- non_interaction: options.ga.commentEventNonInteractive
1171
- }
1172
- });
1173
  } else {
1174
- this.fireEvent(pysOptions.postType + ' comment', {
1175
  params: {
1176
- event_category: 'Comment',
1177
- event_label: pysOptions.postTitle,
1178
- non_interaction: options.ga.commentEventNonInteractive
 
 
 
 
 
1179
  }
1180
  });
1181
  }
1182
-
1183
-
1184
  }
1185
 
1186
- },
1187
 
1188
- onDownloadEvent: function (params) {
1189
 
1190
- if (initialized && this.isEnabled() && options.ga.downloadEnabled) {
1191
 
 
1192
  if(options.ga.isUse4Version) {
1193
- // remove this event
1194
  } else {
1195
- this.fireEvent(params.download_url, {
1196
- params: {
1197
- event_category: 'Download',
1198
- event_label: params.download_name,
1199
- non_interaction: options.ga.downloadEventNonInteractive
1200
- }
 
 
1201
  });
1202
  }
1203
  }
1204
-
1205
  },
1206
 
1207
- onFormEvent: function (params) {
1208
-
1209
- var action = {
1210
- class: (typeof params.form_class != 'undefined') ? 'class: ' + params.form_class : '',
1211
- id: (typeof params.form_id != 'undefined') ? 'id: ' + params.form_id : ''
1212
- };
1213
 
1214
- if (initialized && this.isEnabled() && options.ga.formEventEnabled) {
1215
 
1216
  if(options.ga.isUse4Version) {
1217
- this.fireEvent("Form", {
1218
- params: {
1219
- form_class: action.class,
1220
- form_id:action.id,
1221
- form_submit_label: params.form_submit_label,
1222
-
1223
- post_type: pysOptions.postType,
1224
- post_id: pysOptions.postId,
1225
- content_name: pysOptions.postTitle,
1226
- event_url:window.location.href,
1227
-
1228
- user_role:pysOptions.userRoles,
1229
- non_interaction: options.ga.formEventNonInteractive
1230
- }
1231
- });
1232
  } else {
1233
- this.fireEvent(action.class + ' ' + action.id, {
1234
- params: {
1235
- event_category: 'Form',
1236
- event_label: params.form_submit_label,
1237
- non_interaction: options.ga.formEventNonInteractive
1238
- }
 
 
 
 
 
 
 
 
 
1239
  });
1240
  }
1241
-
1242
-
1243
  }
1244
 
 
1245
  },
1246
 
1247
  onWooAddToCartOnButtonEvent: function (product_id) {
1248
 
 
 
 
 
1249
  if (window.pysWooProductData.hasOwnProperty(product_id)) {
1250
  if (window.pysWooProductData[product_id].hasOwnProperty('ga')) {
1251
-
1252
- this.fireEvent('add_to_cart', {
1253
- params: window.pysWooProductData[product_id]['ga']
1254
- });
1255
-
1256
  }
1257
  }
1258
 
 
1259
  },
1260
 
1261
- onWooAddToCartOnSingleEvent: function (product_id, qty, is_variable, $form) {
1262
 
1263
  window.pysWooProductData = window.pysWooProductData || [];
1264
 
1265
- if (is_variable) {
 
 
 
 
1266
  product_id = parseInt($form.find('input[name="variation_id"]').val());
1267
  }
1268
 
1269
  if (window.pysWooProductData.hasOwnProperty(product_id)) {
1270
  if (window.pysWooProductData[product_id].hasOwnProperty('ga')) {
1271
 
1272
- var params = Utils.copyProperties(window.pysWooProductData[product_id]['ga'], {});
1273
 
1274
  // maybe customize value option
1275
  if (options.woo.addToCartOnButtonValueEnabled && options.woo.addToCartOnButtonValueOption !== 'global') {
1276
- params.items[0].price = params.items[0].price * qty;
 
 
 
 
 
 
 
1277
  }
1278
 
1279
  // update items qty param
1280
- params.items[0].quantity = qty;
1281
-
1282
- this.fireEvent('add_to_cart', {
1283
- params: params
1284
- });
1285
 
 
1286
  }
1287
  }
1288
 
1289
  },
1290
 
1291
- onWooRemoveFromCartEvent: function (cart_item_hash) {
1292
-
1293
- window.pysWooRemoveFromCartData = window.pysWooRemoveFromCartData || [];
1294
-
1295
- if (window.pysWooRemoveFromCartData[cart_item_hash].hasOwnProperty('ga')) {
1296
 
1297
- this.fireEvent('remove_from_cart', {
1298
- params: Utils.copyProperties(window.pysWooRemoveFromCartData[cart_item_hash]['ga'], {})
1299
- });
1300
-
1301
- }
1302
 
1303
  },
1304
 
1305
  onEddAddToCartOnButtonEvent: function (download_id, price_index, qty) {
1306
 
 
 
 
 
 
1307
  if (window.pysEddProductData.hasOwnProperty(download_id)) {
1308
 
1309
  var index;
@@ -1315,35 +1348,34 @@ if (!Array.prototype.includes) {
1315
  }
1316
 
1317
  if (window.pysEddProductData[download_id].hasOwnProperty(index)) {
1318
- if (window.pysEddProductData[download_id][index].hasOwnProperty('ga')) {
1319
-
1320
- var params = Utils.copyProperties(window.pysEddProductData[download_id][index]['ga'], {});
1321
 
 
 
 
 
1322
  // update items qty param
1323
  params.items[0].quantity = qty;
1324
 
1325
- this.fireEvent('add_to_cart', {
1326
- params: params
1327
- });
1328
 
1329
  }
1330
  }
1331
 
1332
  }
1333
 
1334
- },
1335
-
1336
- onEddRemoveFromCartEvent: function (item) {
1337
-
1338
- if (item.hasOwnProperty('ga')) {
1339
-
1340
- this.fireEvent('remove_from_cart', {
1341
- params: Utils.copyProperties(item['ga'], {})
1342
- });
1343
 
1344
- }
1345
 
1346
- }
 
 
 
 
 
 
 
 
1347
 
1348
  };
1349
 
@@ -1354,12 +1386,107 @@ if (!Array.prototype.includes) {
1354
  window.pys.Analytics = Analytics;
1355
  window.pys.Utils = Utils;
1356
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1357
  $(document).ready(function () {
1358
 
1359
  var Pinterest = Utils.setupPinterestObject();
1360
  var Bing = Utils.setupBingObject();
1361
 
1362
  Utils.setupGdprCallbacks();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1363
 
1364
  // setup Dynamic events
1365
  $.each(options.dynamicEventsTriggers, function (triggerType, events) {
@@ -1394,7 +1521,7 @@ if (!Array.prototype.includes) {
1394
  if (options.woo.enabled) {
1395
 
1396
  // WooCommerce AddToCart
1397
- if (options.woo.addToCartOnButtonEnabled) {
1398
 
1399
  // Loop, any kind of "simple" product, except external
1400
  $('.add_to_cart_button:not(.product_type_variable)').on("click",function (e) {
@@ -1411,7 +1538,7 @@ if (!Array.prototype.includes) {
1411
  });
1412
 
1413
  // Single Product
1414
- $('body').on('click','.single_add_to_cart_button',function (e) {
1415
 
1416
  var $button = $(this);
1417
 
@@ -1421,16 +1548,22 @@ if (!Array.prototype.includes) {
1421
 
1422
  var $form = $button.closest('form');
1423
 
 
 
1424
  if ($form.length === 0) {
1425
- return;
 
 
 
 
1426
  }
1427
 
1428
- var is_variable = $form.hasClass('variations_form');
1429
 
1430
  var product_id;
1431
  var qty;
1432
 
1433
- if (is_variable) {
1434
  product_id = parseInt($form.find('*[name="add-to-cart"]').val());
1435
  var qtyTag = $form.find('input[name="quantity"]');
1436
  if(qtyTag.length <= 0) {
@@ -1446,17 +1579,18 @@ if (!Array.prototype.includes) {
1446
  qty = parseInt(qtyTag.val());
1447
  }
1448
 
1449
- Facebook.onWooAddToCartOnSingleEvent(product_id, qty, is_variable, $form);
1450
- Analytics.onWooAddToCartOnSingleEvent(product_id, qty, is_variable, $form);
1451
- Pinterest.onWooAddToCartOnSingleEvent(product_id, qty, is_variable, false, $form);
1452
- Bing.onWooAddToCartOnSingleEvent(product_id, qty, is_variable, false, $form);
 
1453
 
1454
  });
1455
 
1456
  }
1457
 
1458
  // WooCommerce RemoveFromCart
1459
- if (options.woo.removeFromCartEnabled) {
1460
 
1461
  $('body').on('click', options.woo.removeFromCartSelector, function (e) {
1462
 
@@ -1470,28 +1604,23 @@ if (!Array.prototype.includes) {
1470
  if (results !== null) {
1471
 
1472
  var item_hash = results[1];
1473
- window.pysWooRemoveFromCartData = window.pysWooRemoveFromCartData || [];
1474
 
1475
- if (window.pysWooRemoveFromCartData.hasOwnProperty(item_hash)) {
1476
- Facebook.onWooRemoveFromCartEvent(item_hash);
1477
- Analytics.onWooRemoveFromCartEvent(item_hash);
1478
- Pinterest.onWooRemoveFromCartEvent(item_hash);
1479
- Bing.onWooRemoveFromCartEvent(item_hash);
1480
  }
1481
 
1482
  }
1483
 
1484
  });
1485
-
1486
  }
1487
-
1488
  }
1489
 
1490
  // setup EDD events
1491
  if (options.edd.enabled) {
1492
 
1493
  // EDD AddToCart
1494
- if (options.edd.addToCartOnButtonEnabled) {
1495
 
1496
  $('form.edd_download_purchase_form .edd-add-to-cart').on("click",function (e) {
1497
 
@@ -1551,8 +1680,6 @@ if (!Array.prototype.includes) {
1551
  } else {
1552
  quantities.push(1);
1553
  }
1554
-
1555
-
1556
  }
1557
 
1558
  // fire event for each download/variant
@@ -1578,25 +1705,18 @@ if (!Array.prototype.includes) {
1578
 
1579
  }
1580
 
 
1581
  // EDD RemoveFromCart
1582
- if (options.edd.removeFromCartEnabled) {
1583
 
1584
  $('form#edd_checkout_cart_form .edd_cart_remove_item_btn').on("click",function (e) {
1585
 
1586
  var href = $(this).attr('href');
1587
  var key = href.substring(href.indexOf('=') + 1).charAt(0);
1588
 
1589
- window.pysEddRemoveFromCartData = window.pysEddRemoveFromCartData || [];
1590
-
1591
- if (window.pysEddRemoveFromCartData[key]) {
1592
-
1593
- var item = window.pysEddRemoveFromCartData[key];
1594
-
1595
- Facebook.onEddRemoveFromCartEvent(item);
1596
- Analytics.onEddRemoveFromCartEvent(item);
1597
- Pinterest.onEddRemoveFromCartEvent(item);
1598
- Bing.onEddRemoveFromCartEvent(item);
1599
-
1600
  }
1601
 
1602
  });
@@ -1606,72 +1726,25 @@ if (!Array.prototype.includes) {
1606
  }
1607
 
1608
  // setup Comment Event
1609
- if (options.commentEventEnabled) {
1610
 
1611
  $('form.comment-form').on("submit",function () {
1612
 
1613
- Facebook.onCommentEvent();
1614
- Analytics.onCommentEvent();
1615
- Pinterest.onCommentEvent();
1616
- Bing.onCommentEvent();
1617
-
1618
- });
1619
-
1620
- }
1621
-
1622
- // setup DownloadDocs event
1623
- if (options.downloadEventEnabled && options.downloadExtensions.length > 0) {
1624
-
1625
- $('body').on("click",function (event) {
1626
-
1627
- var el = event.srcElement || event.target;
1628
-
1629
- /* Loop up the DOM tree through parent elements if clicked element is not a link (eg: an image inside a link) */
1630
- while (el && (typeof el.tagName === 'undefined' || el.tagName.toLowerCase() !== 'a' || !el.href)) {
1631
- el = el.parentNode;
1632
  }
1633
-
1634
- if (el && el.href) {
1635
-
1636
- var extension = Utils.getLinkExtension(el.href);
1637
- var track_download = false;
1638
-
1639
- if (extension.length > 0) {
1640
-
1641
- for (i = 0, len = options.downloadExtensions.length; i < len; ++i) {
1642
- if (options.downloadExtensions[i] === extension) {
1643
- track_download = true;
1644
- break;
1645
- }
1646
- }
1647
-
1648
- }
1649
-
1650
- if (track_download) {
1651
-
1652
- var params = {
1653
- download_url: el.href,
1654
- download_type: extension,
1655
- download_name: Utils.getLinkFilename(el.href)
1656
- };
1657
-
1658
- Facebook.onDownloadEvent(params);
1659
- Analytics.onDownloadEvent(params);
1660
- Pinterest.onDownloadEvent(params);
1661
- Bing.onDownloadEvent(params);
1662
-
1663
- }
1664
-
1665
- }
1666
-
1667
  });
1668
 
1669
  }
1670
 
 
1671
  // setup Form Event
1672
- if (options.formEventEnabled) {
1673
 
1674
- $(document).onFirst('submit', 'form', function () {
1675
 
1676
  var $form = $(this);
1677
 
@@ -1681,8 +1754,8 @@ if (!Array.prototype.includes) {
1681
  }
1682
 
1683
  // exclude Woo forms
1684
- if ($form.hasClass('woocommerce-product-search') || $form.hasClass('cart') || $form.hasClass('woocommerce-cart-form')
1685
- || $form.hasClass('woocommerce-shipping-calculator') || $form.hasClass('checkout') || $form.hasClass('checkout_coupon')) {
1686
  return;
1687
  }
1688
 
@@ -1693,14 +1766,33 @@ if (!Array.prototype.includes) {
1693
 
1694
  var params = {
1695
  form_id: $form.attr('id'),
1696
- form_class: $form.attr('class')
 
 
1697
  };
 
 
 
 
 
 
 
 
1698
 
1699
- Facebook.onFormEvent(params);
1700
- Analytics.onFormEvent(params);
1701
- Pinterest.onFormEvent(params);
1702
- Bing.onFormEvent(params);
 
 
1703
 
 
 
 
 
 
 
 
1704
  });
1705
 
1706
  // Ninja Forms
@@ -1708,18 +1800,22 @@ if (!Array.prototype.includes) {
1708
 
1709
  var params = {
1710
  form_id: data.response.data.form_id,
1711
- form_title: data.response.data.settings.title
1712
  };
1713
 
1714
- Facebook.onFormEvent(params);
1715
- Analytics.onFormEvent(params);
1716
- Pinterest.onFormEvent(params);
1717
- Bing.onFormEvent(params);
 
 
 
1718
 
1719
  });
1720
 
1721
  }
1722
 
 
1723
  // load pixel APIs
1724
  Utils.loadPixels();
1725
 
@@ -1736,4 +1832,18 @@ function pys_generate_token(length){
1736
  b[i] = a[j];
1737
  }
1738
  return b.join("");
1739
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
  },
102
 
103
  onEddRemoveFromCartEvent: function (item) {
104
+ },
105
+ onPageScroll: function (event) {},
106
+ onTime: function (event) {
107
+
108
+ },
109
 
110
  }
111
 
168
  },
169
 
170
  onEddRemoveFromCartEvent: function (item) {
171
+ },
172
+
173
+ onPageScroll: function (event) {
174
+ },
175
+
176
+ onTime: function (event) {
177
+ },
178
 
179
  }
180
 
215
  * PUBLIC API
216
  */
217
  return {
218
+ fireEventForAllPixel:function(functionName,events){
219
+ if (events.hasOwnProperty(Facebook.tag()))
220
+ Facebook[functionName](events[Facebook.tag()]);
221
+ if (events.hasOwnProperty(Analytics.tag()))
222
+ Analytics[functionName](events[Analytics.tag()]);
223
+ if (events.hasOwnProperty(Pinterest.tag()))
224
+ Pinterest[functionName](events[Pinterest.tag()]);
225
+ if (events.hasOwnProperty(Bing.tag()))
226
+ Bing[functionName](events[Bing.tag()]);
227
+ },
228
 
229
  setupPinterestObject: function () {
230
  Pinterest = window.pys.Pinterest || Pinterest;
243
  }
244
  return to;
245
  },
246
+ // clone object
247
+ clone: function(obj) {
248
+ var copy;
249
+
250
+ // Handle the 3 simple types, and null or undefined
251
+ if (null == obj || "object" != typeof obj) return obj;
252
+
253
+ // Handle Date
254
+ if (obj instanceof Date) {
255
+ copy = new Date();
256
+ copy.setTime(obj.getTime());
257
+ return copy;
258
+ }
259
+
260
+ // Handle Array
261
+ if (obj instanceof Array) {
262
+ copy = [];
263
+ for (var i = 0, len = obj.length; i < len; i++) {
264
+ copy[i] = Utils.clone(obj[i]);
265
+ }
266
+ return copy;
267
+ }
268
+
269
+ // Handle Object
270
+ if (obj instanceof Object) {
271
+ copy = {};
272
+ for (var attr in obj) {
273
+ if (obj.hasOwnProperty(attr)) copy[attr] = Utils.clone(obj[attr]);
274
+ }
275
+ return copy;
276
+ }
277
+
278
+ return obj;
279
+ },
280
 
281
  // Returns array of elements with given tag name
282
  getTagsAsArray: function (tag) {
314
 
315
  // Non-default binding used to avoid situations when some code in external js
316
  // stopping events propagation, eg. returns false, and our handler will never called
317
+ $(triggers.join(',')).onFirst('click', function () {
318
+ Utils.fireTriggerEvent(eventId);
319
  });
 
320
  },
321
 
322
  setupURLClickEvents: function () {
330
  eventId = parseInt(eventId);
331
 
332
  if (isNaN(eventId) === false) {
333
+ Utils.fireTriggerEvent(eventId);
334
  }
335
 
336
  });
337
 
338
  });
339
 
340
+
341
  },
342
 
343
  setupScrollPosEvents: function (eventId, triggers) {
356
 
357
  });
358
 
359
+ $(document).on("scroll",function () {
360
 
361
  var scrollPos = $(window).scrollTop();
362
 
374
  scrollPosThresholds[threshold] = null;
375
  }
376
 
377
+ Utils.fireTriggerEvent(eventId);
378
 
379
  });
380
 
381
  });
382
 
383
+
384
  },
385
  setupCommentEvents : function (eventId,triggers) {
386
  $('form.comment-form').on("submit",function () {
387
+ Utils.fireTriggerEvent(eventId);
388
  });
389
  },
390
 
391
  /**
392
  * Events
393
  */
394
+ fireTriggerEvent: function (eventId) {
395
 
396
+ if (!options.triggerEvents.hasOwnProperty(eventId)) {
 
 
397
  return;
398
  }
399
 
400
  var event = {};
401
+ var events = options.triggerEvents[eventId];
402
 
403
+ if (events.hasOwnProperty('facebook')) {
404
+ event = events.facebook;
405
+ if(Utils.isEventInTimeWindow(event.name,event,"dyn_facebook_"+eventId)) {
406
+ Facebook.fireEvent(event.name, event);
407
+ }
408
  }
409
 
410
+ if (events.hasOwnProperty('ga')) {
411
+ event = events.ga;
412
+ if(Utils.isEventInTimeWindow(event.name,event,"dyn_ga_"+eventId)) {
413
+ Analytics.fireEvent(event.name, event);
414
+ }
415
+ }
416
 
417
+ if (events.hasOwnProperty('pinterest')) {
418
+ event = events.pinterest;
419
+ if(Utils.isEventInTimeWindow(event.name,event,"dyn_pinterest_"+eventId)) {
420
+ Pinterest.fireEvent(event.name, event);
421
+ }
422
+ }
423
 
424
+ if (events.hasOwnProperty('bing')) {
425
+ event = events.bing;
426
+ if(Utils.isEventInTimeWindow(event.name,event,"dyn_bing_"+eventId)) {
427
+ Bing.fireEvent(event.name, event);
428
+ }
429
+ }
430
  },
431
 
432
  fireStaticEvents: function (pixel) {
779
 
780
  var initialized = false;
781
 
 
 
 
 
 
 
 
 
 
782
 
783
  function fireEvent(name, allData) {
784
 
785
  var actionType = defaultEventTypes.includes(name) ? 'track' : 'trackCustom';
786
  var data = allData.params;
787
  var params = {};
788
+ var arg = {};
789
  Utils.copyProperties(data, params);
790
+
791
 
792
  if(options.facebook.serverApiEnabled) {
793
  // fire server side event gdpr plugin installed
799
  options.gdpr.cookie_law_info_integration_enabled;
800
 
801
  // Update eventID
802
+ if( options.facebook.ajaxForServerEvent || allData.type !== "static" ) {
803
  allData.eventID = pys_generate_token(36);
804
  }
805
+ arg.eventID = allData.eventID;
806
  // send event from server if they was bloc by gdpr or need send with delay
807
+ if( options.facebook.ajaxForServerEvent || isApiDisabled || allData.delay > 0 || allData.type !== "static")
808
  {
809
  var json = {
810
  action: 'pys_api_event',
853
  if (options.debug) {
854
  console.log('[Facebook] ' + name, params,"eventID",allData.eventID);
855
  }
 
 
 
 
856
 
857
  fbq(actionType, name, params,arg);
858
  }
861
  * Public API
862
  */
863
  return {
864
+ tag: function() {
865
+ return "facebook";
866
+ },
867
  isEnabled: function () {
868
  return options.hasOwnProperty('facebook');
869
  },
946
 
947
  },
948
 
949
+ onCommentEvent: function (event) {
950
+ this.fireEvent(event.name, event);
 
 
 
 
 
 
 
 
951
  },
952
 
953
+ onDownloadEvent: function (event) {
954
+ this.fireEvent(event.name, event);
 
 
 
 
 
 
 
955
  },
956
 
957
+ onFormEvent: function (event) {
 
 
 
 
 
 
958
 
959
+ this.fireEvent(event.name, event);
960
 
961
  },
962
 
963
  onWooAddToCartOnButtonEvent: function (product_id) {
964
 
965
+ if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag()))
966
+ return;
967
+ var event = options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()];
968
+
969
  if (window.pysWooProductData.hasOwnProperty(product_id)) {
970
  if (window.pysWooProductData[product_id].hasOwnProperty('facebook')) {
971
+ event = Utils.copyProperties(event, {})
972
+ Utils.copyProperties(window.pysWooProductData[product_id]['facebook'], event.params)
973
+ this.fireEvent(event.name, event);
 
 
974
  }
975
  }
 
976
  },
977
 
978
+ onWooAddToCartOnSingleEvent: function (product_id, qty, product_type, $form) {
979
 
980
  window.pysWooProductData = window.pysWooProductData || [];
981
+ if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag()))
982
+ return;
983
+ var event = Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]);
984
  if (window.pysWooProductData.hasOwnProperty(product_id)) {
985
  if (window.pysWooProductData[product_id].hasOwnProperty('facebook')) {
986
 
987
+ if (product_type === PRODUCT_VARIABLE && !options.facebook.wooVariableAsSimple) {
988
  product_id = parseInt($form.find('input[name="variation_id"]').val());
989
  }
990
 
991
+ Utils.copyProperties(window.pysWooProductData[product_id]['facebook'], event.params);
992
 
993
  // maybe customize value option
994
  if (options.woo.addToCartOnButtonValueEnabled && options.woo.addToCartOnButtonValueOption !== 'global') {
995
+
996
+ if(product_type === PRODUCT_BUNDLE) {
997
+ var data = $(".bundle_form .bundle_data").data("bundle_form_data");
998
+ var items_sum = getBundlePriceOnSingleProduct(data);
999
+ event.params.value = (data.base_price+items_sum )* qty;
1000
+ } else {
1001
+ event.params.value = event.params.value * qty;
1002
+ }
1003
  }
1004
 
1005
  // only when non Facebook for WooCommerce logic used
1006
+ if (event.params.hasOwnProperty('contents')) {
1007
+ event.params.contents[0].quantity = qty;
1008
  }
1009
 
1010
+ this.fireEvent(event.name, event);
 
 
1011
 
1012
  }
1013
  }
 
1014
  },
1015
 
1016
+ onWooRemoveFromCartEvent: function (event) {
1017
+ this.fireEvent(event.name, event);
 
 
 
 
 
 
 
 
 
 
1018
  },
1019
 
1020
  onEddAddToCartOnButtonEvent: function (download_id, price_index, qty) {
1021
 
1022
+ if(!options.dynamicEvents.edd_add_to_cart_on_button_click.hasOwnProperty(this.tag()))
1023
+ return;
1024
+ var event = Utils.clone(options.dynamicEvents.edd_add_to_cart_on_button_click[this.tag()]);
1025
+
1026
  if (window.pysEddProductData.hasOwnProperty(download_id)) {
1027
 
1028
  var index;
1036
  if (window.pysEddProductData[download_id].hasOwnProperty(index)) {
1037
  if (window.pysEddProductData[download_id][index].hasOwnProperty('facebook')) {
1038
 
1039
+
1040
+ Utils.copyProperties(window.pysEddProductData[download_id][index]['facebook']["params"], event.params)
1041
 
1042
  // maybe customize value option
1043
  if (options.edd.addToCartOnButtonValueEnabled && options.edd.addToCartOnButtonValueOption !== 'global') {
1044
+ event.params.value = event.params.value * qty;
1045
  }
1046
 
1047
  // update contents qty param
1048
+ var contents = event.params.contents;
1049
  contents[0].quantity = qty;
1050
+ event.params.contents = contents;
1051
 
1052
+ this.fireEvent(event.name,event);
 
 
1053
 
1054
  }
1055
  }
1058
 
1059
  },
1060
 
1061
+ onEddRemoveFromCartEvent: function (event) {
1062
+ this.fireEvent(event.name, event);
1063
+ },
1064
+ onPageScroll: function (event) {
1065
+ this.fireEvent(event.name, event);
1066
+ },
1067
+ onTime: function (event) {
1068
+ this.fireEvent(event.name, event);
1069
+ },
1070
 
 
1071
 
1072
  };
1073
 
1116
  * Public API
1117
  */
1118
  return {
1119
+ tag: function() {
1120
+ return "ga";
1121
+ },
1122
  isEnabled: function () {
1123
  return options.hasOwnProperty('ga');
1124
  },
1198
 
1199
  },
1200
 
1201
+ onCommentEvent: function (event) {
 
 
1202
 
1203
+ if (initialized && this.isEnabled() ) {
1204
  if(options.ga.isUse4Version) {
1205
+ this.fireEvent(event.name, event);
 
 
 
 
 
 
 
 
 
 
1206
  } else {
1207
+ this.fireEvent(event.name, {
1208
  params: {
1209
+ event_category: event.name,
1210
+ event_action: event.params.event_action,
1211
+ event_label: document.location.href,
1212
+ non_interaction: event.params.non_interaction,
1213
+ event_day:event.params.event_day,
1214
+ event_hour:event.params.event_hour,
1215
+ event_month:event.params.event_month,
1216
+ traffic_source:event.params.traffic_source,
1217
  }
1218
  });
1219
  }
 
 
1220
  }
1221
 
 
1222
 
1223
+ },
1224
 
1225
+ onDownloadEvent: function (event) {
1226
 
1227
+ if (initialized && this.isEnabled() ) {
1228
  if(options.ga.isUse4Version) {
1229
+ this.fireEvent(event.name, event);
1230
  } else {
1231
+ var params = {
1232
+ event_category: event.name,
1233
+ event_action: event.params.event_action,
1234
+ event_label:event.params.download_name,
1235
+ non_interaction: event.params.non_interaction,
1236
+ };
1237
+ this.fireEvent(event.name, {
1238
+ params: params
1239
  });
1240
  }
1241
  }
 
1242
  },
1243
 
1244
+ onFormEvent: function (event) {
 
 
 
 
 
1245
 
1246
+ if (initialized && this.isEnabled() ) {
1247
 
1248
  if(options.ga.isUse4Version) {
1249
+ this.fireEvent(event.name, event);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1250
  } else {
1251
+ var params = {
1252
+ event_category: event.name,
1253
+ event_action: event.params.event_action,
1254
+ non_interaction: event.params.non_interaction,
1255
+ event_day:event.params.event_day,
1256
+ event_hour:event.params.event_hour,
1257
+ event_month:event.params.event_month,
1258
+ traffic_source:event.params.traffic_source,
1259
+ };
1260
+ var formClass = (typeof event.params.form_class != 'undefined') ? 'class: ' + event.params.form_class : '';
1261
+ if(formClass != "") {
1262
+ params["event_label"] = formClass;
1263
+ }
1264
+ this.fireEvent(event.name, {
1265
+ params: params
1266
  });
1267
  }
 
 
1268
  }
1269
 
1270
+
1271
  },
1272
 
1273
  onWooAddToCartOnButtonEvent: function (product_id) {
1274
 
1275
+ if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag()))
1276
+ return;
1277
+ var event = Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]);
1278
+
1279
  if (window.pysWooProductData.hasOwnProperty(product_id)) {
1280
  if (window.pysWooProductData[product_id].hasOwnProperty('ga')) {
1281
+ Utils.copyProperties(window.pysWooProductData[product_id]['ga'], event.params)
1282
+ this.fireEvent(event.name, event);
 
 
 
1283
  }
1284
  }
1285
 
1286
+
1287
  },
1288
 
1289
+ onWooAddToCartOnSingleEvent: function (product_id, qty, product_type, $form) {
1290
 
1291
  window.pysWooProductData = window.pysWooProductData || [];
1292
 
1293
+ if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag()))
1294
+ return;
1295
+ var event = Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]);
1296
+
1297
+ if (product_type === PRODUCT_VARIABLE) {
1298
  product_id = parseInt($form.find('input[name="variation_id"]').val());
1299
  }
1300
 
1301
  if (window.pysWooProductData.hasOwnProperty(product_id)) {
1302
  if (window.pysWooProductData[product_id].hasOwnProperty('ga')) {
1303
 
1304
+ Utils.copyProperties(window.pysWooProductData[product_id]['ga'], event.params);
1305
 
1306
  // maybe customize value option
1307
  if (options.woo.addToCartOnButtonValueEnabled && options.woo.addToCartOnButtonValueOption !== 'global') {
1308
+ if(product_type === PRODUCT_BUNDLE) {
1309
+ var data = $(".bundle_form .bundle_data").data("bundle_form_data");
1310
+ var items_sum = getBundlePriceOnSingleProduct(data);
1311
+ event.params.items[0].price = (data.base_price+items_sum )* qty;
1312
+ } else {
1313
+ event.params.items[0].price = event.params.items[0].price * qty;
1314
+ }
1315
+
1316
  }
1317
 
1318
  // update items qty param
1319
+ event.params.items[0].quantity = qty;
 
 
 
 
1320
 
1321
+ this.fireEvent(event.name, event);
1322
  }
1323
  }
1324
 
1325
  },
1326
 
1327
+ onWooRemoveFromCartEvent: function (event) {
 
 
 
 
1328
 
1329
+ this.fireEvent(event.name, event);
 
 
 
 
1330
 
1331
  },
1332
 
1333
  onEddAddToCartOnButtonEvent: function (download_id, price_index, qty) {
1334
 
1335
+ if(!options.dynamicEvents.edd_add_to_cart_on_button_click.hasOwnProperty(this.tag()))
1336
+ return;
1337
+ var event = options.dynamicEvents.edd_add_to_cart_on_button_click[this.tag()];
1338
+
1339
+
1340
  if (window.pysEddProductData.hasOwnProperty(download_id)) {
1341
 
1342
  var index;
1348
  }
1349
 
1350
  if (window.pysEddProductData[download_id].hasOwnProperty(index)) {
1351
+ if (window.pysEddProductData[download_id][index].hasOwnProperty('google_ads')) {
 
 
1352
 
1353
+ event = Utils.clone(event)
1354
+ Utils.copyProperties(window.pysEddProductData[download_id][index]['google_ads']['params'], event.params);
1355
+ event['ids'] = window.pysEddProductData[download_id][index]['google_ads']['ids'];
1356
+ event['conversion_labels'] = window.pysEddProductData[download_id][index]['google_ads']['conversion_labels'];
1357
  // update items qty param
1358
  params.items[0].quantity = qty;
1359
 
1360
+ this.fireEvent(event.name, event);
 
 
1361
 
1362
  }
1363
  }
1364
 
1365
  }
1366
 
 
 
 
 
 
 
 
 
 
1367
 
1368
+ },
1369
 
1370
+ onEddRemoveFromCartEvent: function (event) {
1371
+ this.fireEvent(event.name, event);
1372
+ },
1373
+ onPageScroll: function (event) {
1374
+ this.fireEvent(event.name, event);
1375
+ },
1376
+ onTime: function (event) {
1377
+ this.fireEvent(event.name, event);
1378
+ },
1379
 
1380
  };
1381
 
1386
  window.pys.Analytics = Analytics;
1387
  window.pys.Utils = Utils;
1388
 
1389
+ const PRODUCT_SIMPLE = 0;
1390
+ const PRODUCT_VARIABLE = 1;
1391
+ const PRODUCT_BUNDLE = 2;
1392
+
1393
+ function getPixelBySlag(slug) {
1394
+ switch (slug) {
1395
+ case "facebook": return window.pys.Facebook;
1396
+ case "ga": return window.pys.Analytics;
1397
+ case "bing": return window.pys.Bing;
1398
+ case "pinterest": return window.pys.Pinterest;
1399
+ }
1400
+ }
1401
+
1402
+
1403
  $(document).ready(function () {
1404
 
1405
  var Pinterest = Utils.setupPinterestObject();
1406
  var Bing = Utils.setupBingObject();
1407
 
1408
  Utils.setupGdprCallbacks();
1409
+ // page scroll event
1410
+ if (options.dynamicEvents.hasOwnProperty("signal_page_scroll")) {
1411
+
1412
+ var singlePageScroll = function () {
1413
+
1414
+
1415
+ var docHeight = $(document).height() - $(window).height();
1416
+ var isFired = false;
1417
+ var pixels = Object.keys(options.dynamicEvents.signal_page_scroll);
1418
+
1419
+ for(i = 0;i<pixels.length;i++) {
1420
+ var event = Utils.clone(options.dynamicEvents.signal_page_scroll[pixels[i]]);
1421
+ var scroll = Math.round(docHeight * event.scroll_percent / 100)// convert % to absolute positions
1422
+
1423
+ if(scroll < $(window).scrollTop()) {
1424
+ Utils.copyProperties(Utils.getRequestParams(), event.params);
1425
+ getPixelBySlag(pixels[i]).onPageScroll(event);
1426
+ isFired = true
1427
+ }
1428
+ }
1429
+ if(isFired) {
1430
+ $(document).off("scroll",singlePageScroll);
1431
+ }
1432
+ }
1433
+ $(document).on("scroll",singlePageScroll);
1434
+ }
1435
+ // page on time
1436
+ if (options.dynamicEvents.hasOwnProperty("signal_time_on_page")) {
1437
+ var pixels = Object.keys(options.dynamicEvents.signal_time_on_page);
1438
+ var time = options.dynamicEvents.signal_time_on_page[pixels[0]].time_on_page; // the same for all pixel
1439
+ setTimeout(function(){
1440
+ for(i = 0;i<pixels.length;i++) {
1441
+ var event = Utils.clone(options.dynamicEvents.signal_time_on_page[pixels[i]]);
1442
+ Utils.copyProperties(Utils.getRequestParams(), event.params);
1443
+ getPixelBySlag(pixels[i]).onTime(event);
1444
+ }
1445
+ },time*1000);
1446
+ }
1447
+
1448
+ // setup Click Event
1449
+ if (options.dynamicEvents.hasOwnProperty("signal_download")) {
1450
+
1451
+ $(document).onFirst('click', 'a, button, input[type="button"], input[type="submit"]', function (e) {
1452
+
1453
+ var $elem = $(this);
1454
+
1455
+ // Download
1456
+ if (options.dynamicEvents.hasOwnProperty("signal_download")) {
1457
+ var isFired = false;
1458
+ if ($elem.is('a')) {
1459
+ var href = $elem.attr('href');
1460
+ if (typeof href !== "string") {
1461
+ return;
1462
+ }
1463
+ href = href.trim();
1464
+ var extension = Utils.getLinkExtension(href);
1465
+ var track_download = false;
1466
+
1467
+ if (extension.length > 0) {
1468
+ var pixels = Object.keys(options.dynamicEvents.signal_download);
1469
+ for (i = 0; i < pixels.length; i++) {
1470
+ var event = Utils.clone(options.dynamicEvents.signal_download[pixels[i]]);
1471
+ var extensions = event.extensions;
1472
+ if (extensions.includes(extension)) {
1473
+ event.params.download_url = href;
1474
+ event.params.download_type = extension;
1475
+ event.params.download_name = Utils.getLinkFilename(href);
1476
+
1477
+ getPixelBySlag(pixels[i]).onDownloadEvent(event);
1478
+ isFired = true;
1479
+ }
1480
+ }
1481
+ }
1482
+ }
1483
+ if (isFired) { // prevent duplicate events on the same element
1484
+ return;
1485
+ }
1486
+ }
1487
+ });
1488
+ }
1489
+
1490
 
1491
  // setup Dynamic events
1492
  $.each(options.dynamicEventsTriggers, function (triggerType, events) {
1521
  if (options.woo.enabled) {
1522
 
1523
  // WooCommerce AddToCart
1524
+ if (options.dynamicEvents.hasOwnProperty("woo_add_to_cart_on_button_click")) {
1525
 
1526
  // Loop, any kind of "simple" product, except external
1527
  $('.add_to_cart_button:not(.product_type_variable)').on("click",function (e) {
1538
  });
1539
 
1540
  // Single Product
1541
+ $('button.single_add_to_cart_button,.single_add_to_cart_button').onFirst('click tap',function (e) {
1542
 
1543
  var $button = $(this);
1544
 
1548
 
1549
  var $form = $button.closest('form');
1550
 
1551
+ var product_type = PRODUCT_SIMPLE;
1552
+
1553
  if ($form.length === 0) {
1554
+ return ;
1555
+ } else if ($form.hasClass('variations_form')) {
1556
+ product_type = PRODUCT_VARIABLE;
1557
+ } else if($form.hasClass('bundle_form')) {
1558
+ product_type = PRODUCT_BUNDLE;
1559
  }
1560
 
1561
+
1562
 
1563
  var product_id;
1564
  var qty;
1565
 
1566
+ if (product_type === PRODUCT_VARIABLE) {
1567
  product_id = parseInt($form.find('*[name="add-to-cart"]').val());
1568
  var qtyTag = $form.find('input[name="quantity"]');
1569
  if(qtyTag.length <= 0) {
1579
  qty = parseInt(qtyTag.val());
1580
  }
1581
 
1582
+ Facebook.onWooAddToCartOnSingleEvent(product_id, qty, product_type, $form);
1583
+ Analytics.onWooAddToCartOnSingleEvent(product_id, qty, product_type, $form);
1584
+
1585
+ Pinterest.onWooAddToCartOnSingleEvent(product_id, qty, product_type, false, $form);
1586
+ Bing.onWooAddToCartOnSingleEvent(product_id, qty, product_type, false, $form);
1587
 
1588
  });
1589
 
1590
  }
1591
 
1592
  // WooCommerce RemoveFromCart
1593
+ if (options.dynamicEvents.hasOwnProperty("woo_remove_from_cart")) {
1594
 
1595
  $('body').on('click', options.woo.removeFromCartSelector, function (e) {
1596
 
1604
  if (results !== null) {
1605
 
1606
  var item_hash = results[1];
 
1607
 
1608
+ if (options.dynamicEvents["woo_remove_from_cart"].hasOwnProperty(item_hash)) {
1609
+ var events = options.dynamicEvents["woo_remove_from_cart"][item_hash];
1610
+ Utils.fireEventForAllPixel("onWooRemoveFromCartEvent",events)
 
 
1611
  }
1612
 
1613
  }
1614
 
1615
  });
 
1616
  }
 
1617
  }
1618
 
1619
  // setup EDD events
1620
  if (options.edd.enabled) {
1621
 
1622
  // EDD AddToCart
1623
+ if (options.dynamicEvents.hasOwnProperty("edd_add_to_cart_on_button_click")) {
1624
 
1625
  $('form.edd_download_purchase_form .edd-add-to-cart').on("click",function (e) {
1626
 
1680
  } else {
1681
  quantities.push(1);
1682
  }
 
 
1683
  }
1684
 
1685
  // fire event for each download/variant
1705
 
1706
  }
1707
 
1708
+
1709
  // EDD RemoveFromCart
1710
+ if (options.dynamicEvents.hasOwnProperty("edd_remove_from_cart") ) {
1711
 
1712
  $('form#edd_checkout_cart_form .edd_cart_remove_item_btn').on("click",function (e) {
1713
 
1714
  var href = $(this).attr('href');
1715
  var key = href.substring(href.indexOf('=') + 1).charAt(0);
1716
 
1717
+ if (options.dynamicEvents.edd_remove_from_cart.hasOwnProperty(key)) {
1718
+ var events = options.dynamicEvents.edd_remove_from_cart[key];
1719
+ Utils.fireEventForAllPixel("onEddRemoveFromCartEvent",events)
 
 
 
 
 
 
 
 
1720
  }
1721
 
1722
  });
1726
  }
1727
 
1728
  // setup Comment Event
1729
+ if (options.dynamicEvents.hasOwnProperty("signal_comment")) {
1730
 
1731
  $('form.comment-form').on("submit",function () {
1732
 
1733
+ var pixels = Object.keys(options.dynamicEvents.signal_comment);
1734
+ for(i = 0;i<pixels.length;i++) {
1735
+ var event = Utils.clone(options.dynamicEvents.signal_comment[pixels[i]]);
1736
+ Utils.copyProperties(Utils.getRequestParams(), event.params);
1737
+ getPixelBySlag(pixels[i]).onCommentEvent(event);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1738
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1739
  });
1740
 
1741
  }
1742
 
1743
+
1744
  // setup Form Event
1745
+ if ( options.dynamicEvents.hasOwnProperty("signal_form")) {
1746
 
1747
+ $(document).onFirst('submit', 'form', function (e) {
1748
 
1749
  var $form = $(this);
1750
 
1754
  }
1755
 
1756
  // exclude Woo forms
1757
+ if ($form.hasClass('woocommerce-product-search') || $form.hasClass('cart') || $form.hasClass('woocommerce-cart-form') ||
1758
+ $form.hasClass('woocommerce-shipping-calculator') || $form.hasClass('checkout') || $form.hasClass('checkout_coupon')) {
1759
  return;
1760
  }
1761
 
1766
 
1767
  var params = {
1768
  form_id: $form.attr('id'),
1769
+ form_class: $form.attr('class'),
1770
+ text: $form.find('[type="submit"]').is('input') ?
1771
+ $form.find('[type="submit"]').val() : $form.find('[type="submit"]').text()
1772
  };
1773
+ var pixels = Object.keys(options.dynamicEvents.signal_form);
1774
+ for(i = 0;i<pixels.length;i++) {
1775
+ var event = Utils.clone(options.dynamicEvents.signal_form[pixels[i]]);
1776
+ Utils.copyProperties(params,event.params,)
1777
+ Utils.copyProperties(Utils.getRequestParams(), event.params);
1778
+ getPixelBySlag(pixels[i]).onFormEvent(event);
1779
+ }
1780
+ });
1781
 
1782
+ //Forminator
1783
+ $(document).on( 'forminator:form:submit:success', function( formData ){
1784
+ var params = {
1785
+ form_id: $(formData.target).find('input[name="form_id"]').val(),
1786
+ text: $(formData.target).find('.forminator-button-submit').text()
1787
+ };
1788
 
1789
+ var pixels = Object.keys(options.dynamicEvents.signal_form);
1790
+ for(i = 0;i<pixels.length;i++) {
1791
+ var event = Utils.clone(options.dynamicEvents.signal_form[pixels[i]]);
1792
+ Utils.copyProperties(params,event.params)
1793
+ Utils.copyProperties(Utils.getRequestParams(), event.params);
1794
+ getPixelBySlag(pixels[i]).onFormEvent(event);
1795
+ }
1796
  });
1797
 
1798
  // Ninja Forms
1800
 
1801
  var params = {
1802
  form_id: data.response.data.form_id,
1803
+ text: data.response.data.settings.title
1804
  };
1805
 
1806
+ var pixels = Object.keys(options.dynamicEvents.signal_form);
1807
+ for(i = 0;i<pixels.length;i++) {
1808
+ var event = Utils.clone(options.dynamicEvents.signal_form[pixels[i]]);
1809
+ Utils.copyProperties(params,event.params)
1810
+ Utils.copyProperties(Utils.getRequestParams(), event.params);
1811
+ getPixelBySlag(pixels[i]).onFormEvent(event);
1812
+ }
1813
 
1814
  });
1815
 
1816
  }
1817
 
1818
+
1819
  // load pixel APIs
1820
  Utils.loadPixels();
1821
 
1832
  b[i] = a[j];
1833
  }
1834
  return b.join("");
1835
+ }
1836
+
1837
+ function getBundlePriceOnSingleProduct(data) {
1838
+ var items_sum = 0;
1839
+ jQuery(".bundle_form .bundled_product").each(function(index){
1840
+ var id = jQuery(this).find(".cart").data("bundled_item_id");
1841
+ var item_price = data.prices[id];
1842
+ var item_quantity = jQuery(this).find(".bundled_qty").val();
1843
+ if(!jQuery(this).hasClass("bundled_item_optional") ||
1844
+ jQuery(this).find(".bundled_product_optional_checkbox input").prop('checked')) {
1845
+ items_sum += item_price*item_quantity;
1846
+ }
1847
+ });
1848
+ return items_sum;
1849
+ }
dist/styles/admin.css CHANGED
@@ -5,3 +5,7 @@
5
  * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
6
  */@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.7.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format("embedded-opentype"),url(../fonts/fontawesome-webfont.woff2?v=4.7.0) format("woff2"),url(../fonts/fontawesome-webfont.woff?v=4.7.0) format("woff"),url(../fonts/fontawesome-webfont.ttf?v=4.7.0) format("truetype"),url(../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.2857142857em;text-align:center}.fa-ul{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.fa-li.fa-lg{left:-1.8571428571em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
7
  /*# sourceMappingURL=admin.css.map */
 
 
 
 
5
  * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
6
  */@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.7.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format("embedded-opentype"),url(../fonts/fontawesome-webfont.woff2?v=4.7.0) format("woff2"),url(../fonts/fontawesome-webfont.woff?v=4.7.0) format("woff"),url(../fonts/fontawesome-webfont.ttf?v=4.7.0) format("truetype"),url(../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.2857142857em;text-align:center}.fa-ul{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.fa-li.fa-lg{left:-1.8571428571em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
7
  /*# sourceMappingURL=admin.css.map */
8
+
9
+ .card-header.has_switch .card-collapse {
10
+ padding-top:8px;
11
+ }
facebook-pixel-master.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin Name: PixelYourSite
5
  * Plugin URI: http://www.pixelyoursite.com/
6
  * Description: No codding <strong>Facebook Pixel</strong> and <strong>Google Analytics</strong> install. Track key actions with our Global Events, or configure your own events. WooCommerce and EDD fully supported, with Facebook Dynamic Ads Pixel set-up and Google Analytics Enhanced Ecommerce. Insert any custom script with our Head & Footer option. Add the <strong>Pinterest Tag</strong> with our free add-on. The PRO version adds support for the Google Ads tag plus a lot of extra stuff.
7
- * Version: 7.2.1.1
8
  * Author: PixelYourSite
9
  * Author URI: http://www.pixelyoursite.com
10
  * License: GPLv3
@@ -13,7 +13,7 @@
13
  * Tested up to: 5.6
14
  *
15
  * WC requires at least: 2.6.0
16
- * WC tested up to: 4.8
17
  *
18
  * Text Domain: pys
19
  */
4
  * Plugin Name: PixelYourSite
5
  * Plugin URI: http://www.pixelyoursite.com/
6
  * Description: No codding <strong>Facebook Pixel</strong> and <strong>Google Analytics</strong> install. Track key actions with our Global Events, or configure your own events. WooCommerce and EDD fully supported, with Facebook Dynamic Ads Pixel set-up and Google Analytics Enhanced Ecommerce. Insert any custom script with our Head & Footer option. Add the <strong>Pinterest Tag</strong> with our free add-on. The PRO version adds support for the Google Ads tag plus a lot of extra stuff.
7
+ * Version: 8.0.0
8
  * Author: PixelYourSite
9
  * Author URI: http://www.pixelyoursite.com
10
  * License: GPLv3
13
  * Tested up to: 5.6
14
  *
15
  * WC requires at least: 2.6.0
16
+ * WC tested up to: 4.9
17
  *
18
  * Text Domain: pys
19
  */
includes/class-events-manager.php CHANGED
@@ -12,15 +12,15 @@ use FacebookAds\Object\ServerSide\Content;
12
  class EventsManager {
13
 
14
  public $facebookServerEvents = array();
15
-
16
  public $doingAMP = false;
 
 
 
 
 
17
 
18
- private $dynamicEventsParams = array();
19
- private $dynamicEventsTriggers = array();
20
- private $staticEvents = array();
21
-
22
- public function __construct() {
23
 
 
24
  add_action( 'wp_enqueue_scripts', array( $this, 'enqueueScripts' ) );
25
 
26
  add_action( 'wp_head', array( $this, 'setupEventsParams' ), 3 );
@@ -45,10 +45,11 @@ class EventsManager {
45
  public function outputData() {
46
 
47
  $data = array(
48
- 'staticEvents' => $this->staticEvents,
49
- 'dynamicEventsParams' => $this->dynamicEventsParams,
50
- 'dynamicEventsTriggers' => $this->dynamicEventsTriggers,
51
- );
 
52
 
53
  // collect options for configured pixel
54
  foreach ( PYS()->getRegisteredPixels() as $pixel ) {
@@ -63,16 +64,7 @@ class EventsManager {
63
  $options = array(
64
  'debug' => PYS()->getOption( 'debug_enabled' ),
65
  'siteUrl' => site_url(),
66
- 'ajaxUrl' => admin_url( 'admin-ajax.php' ),
67
- 'commonEventParams' => getCommonEventParams(),
68
- 'commentEventEnabled' => isEventEnabled( 'comment_event_enabled' ),
69
- 'downloadEventEnabled' => isEventEnabled( 'download_event_enabled' ),
70
- 'downloadExtensions' => PYS()->getOption( 'download_event_extensions' ),
71
- 'formEventEnabled' => isEventEnabled( 'form_event_enabled' ),
72
- 'postType' => get_post_type(),
73
- 'postTitle' => get_the_title(),
74
- 'postId' => get_the_ID(),
75
- 'userRoles' => getUserRoles()
76
  );
77
 
78
  $options['gdpr'] = array(
@@ -102,26 +94,11 @@ class EventsManager {
102
  'cookie_law_info_integration_enabled' => isCookieLawInfoPluginActivated() && PYS()->getOption( 'gdpr_cookie_law_info_integration_enabled' ),
103
  );
104
 
105
- $options['woo'] = array(
106
- 'enabled' => isWooCommerceActive() && PYS()->getOption( 'woo_enabled' ),
107
- 'addToCartOnButtonEnabled' => isEventEnabled( 'woo_add_to_cart_enabled' ) && PYS()->getOption( 'woo_add_to_cart_on_button_click' ),
108
- 'addToCartOnButtonValueEnabled' => PYS()->getOption( 'woo_add_to_cart_value_enabled' ),
109
- 'addToCartOnButtonValueOption' => PYS()->getOption( 'woo_add_to_cart_value_option' ),
110
- 'removeFromCartEnabled' => isEventEnabled( 'woo_remove_from_cart_enabled' ),
111
- 'removeFromCartSelector' => isWooCommerceVersionGte( '3.0.0' )
112
- ? 'form.woocommerce-cart-form .remove'
113
- : '.cart .product-remove .remove',
114
- );
115
 
116
- $options['edd'] = array(
117
- 'enabled' => isEddActive() && PYS()->getOption( 'edd_enabled' ),
118
- 'addToCartOnButtonEnabled' => isEventEnabled( 'edd_add_to_cart_enabled' ) && PYS()->getOption( 'edd_add_to_cart_on_button_click' ),
119
- 'addToCartOnButtonValueEnabled' => PYS()->getOption( 'edd_add_to_cart_value_enabled' ),
120
- 'addToCartOnButtonValueOption' => PYS()->getOption( 'edd_add_to_cart_value_option' ),
121
- 'removeFromCartEnabled' => isEventEnabled( 'edd_remove_from_cart_enabled' ),
122
- );
123
-
124
- $data = array_merge( $data, $options );
125
 
126
  wp_localize_script( 'pys', 'pysOptions', $data );
127
 
@@ -136,35 +113,74 @@ class EventsManager {
136
 
137
  }
138
 
139
- public function setupEventsParams() {
140
 
 
 
 
 
 
 
 
141
  $this->facebookServerEvents = array();
142
 
143
  // initial event
144
- $this->addStaticEvent( 'init_event' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
145
 
146
- if ( isEventEnabled( 'general_event_enabled' ) ) {
147
- $this->addStaticEvent( 'general_event' );
148
- }
 
149
 
150
- if ( isEventEnabled( 'search_event_enabled' ) && is_search() ) {
151
- $this->addStaticEvent( 'search_event' );
152
- }
153
-
154
- if ( PYS()->getOption( 'custom_events_enabled' ) ) {
155
- $this->setupCustomEvents();
156
- }
157
 
158
- $this->setupFDPEvents();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
159
 
160
- if ( isWooCommerceActive() && PYS()->getOption( 'woo_enabled' ) ) {
161
- $this->setupWooCommerceEvents();
162
 
163
- }
164
 
165
- if ( isEddActive() && PYS()->getOption( 'edd_enabled' ) ) {
166
- $this->setupEddEvents();
167
- }
168
 
169
  if(count($this->facebookServerEvents)>0 && Facebook()->enabled()) {
170
  FacebookServer()->addAsyncEvents($this->facebookServerEvents);
@@ -189,216 +205,126 @@ class EventsManager {
189
  return isset( $this->staticEvents[ $context ] ) ? $this->staticEvents[ $context ] : array();
190
  }
191
 
192
- /**
193
- * Add static event for each pixel
194
- *
195
- * @param string $eventType Event name for internal usage
196
- * @param CustomEvent|null $customEvent
197
- */
198
- private function addStaticEvent( $eventType, $customEvent = null, $filterPixelSlug = null ) {
199
-
200
- foreach ( PYS()->getRegisteredPixels() as $pixel ) {
201
- /** @var Pixel|Settings $pixel */
202
-
203
- if($filterPixelSlug != null && $filterPixelSlug != $pixel->getSlug()) {
204
- continue;
205
- }
206
-
207
- $eventData = $pixel->getEventData( $eventType, $customEvent );
208
-
209
- if ( false === $eventData ) {
210
- continue; // event is disabled or not supported for the pixel
211
- }
212
-
213
- $eventName = $eventData['name'];
214
- $ids = isset( $eventData['ids'] ) ? $eventData['ids'] : array();
215
-
216
- $data = array(
217
- 'params' => sanitizeParams( $eventData['data'] ),
218
- 'delay' => isset( $eventData['delay'] ) ? $eventData['delay'] : 0,
219
- 'ids' => $ids,
220
- 'eventID' => isset( $eventData['eventID'] ) ? $eventData['eventID'] : "",
221
- 'woo_order' => isset( $eventData['woo_order'] ) ? $eventData['woo_order'] : "",
222
- 'edd_order' => isset( $eventData['edd_order'] ) ? $eventData['edd_order'] : "",
223
- );
224
-
225
- // fire fb server api event
226
- if($pixel->getSlug() == "facebook" && !Facebook()->getOption( "server_event_use_ajax" ) ) {
227
- if ($eventData != null) {
228
- if ($eventData != null && (!isset($eventData['delay']) || $eventData['delay'] == 0)) {
229
- $this->addEventToFacebookServerApi($data["eventID"], $eventType, $eventData);
230
- }
231
- }
232
  }
233
-
234
- $this->staticEvents[ $pixel->getSlug() ][ $eventName ][] = $data;
235
- }
236
-
237
- }
238
-
239
- private function setupCustomEvents() {
240
-
241
- foreach ( CustomEventFactory::get( 'active' ) as $event ) {
242
- /** @var CustomEvent $event */
243
-
244
- $triggers = $event->getPageVisitTriggers();
245
-
246
- // no triggers were defined
247
- if ( empty( $triggers ) ) {
248
- continue;
249
- }
250
-
251
- // match triggers with current page URL
252
- if ( ! compareURLs( $triggers ) ) {
253
- continue;
254
  }
 
 
255
 
256
- $this->addStaticEvent( 'custom_event', $event );
257
-
258
- }
259
-
260
- }
261
- /**
262
- * @param FDPEvent $event
263
- * @param $triggers
264
- */
265
-
266
- private function addFDPDynamicEvent( $event ) {
267
-
268
- foreach ( PYS()->getRegisteredPixels() as $pixel ) {
269
- /** @var Pixel|Settings $pixel */
270
 
271
- $eventData = $pixel->getEventData( 'fdp_event', $event );
272
- if ( false === $eventData ) {
273
- continue;
 
 
 
 
 
274
  }
275
-
276
- if ( $pixel->getSlug() == 'facebook' ) {
277
-
278
- $this->dynamicEventsParams[ $event->event_name ]['facebook'] = array(
279
- 'name' => $eventData['name'],
280
- 'params' => sanitizeParams( $eventData['data'] ),
281
- 'hasTimeWindow' => $event->hasTimeWindow(),
282
- 'timeWindow' => $event->getTimeWindow(),
283
- );
284
  }
 
 
 
 
 
285
 
286
- $this->dynamicEventsTriggers[ $event->trigger_type ][ $event->event_name ][] = $event->trigger_value;
 
 
287
  }
 
 
 
 
288
  }
289
 
290
- private function setupFDPEvents() {
 
 
 
 
291
 
292
- if(PYS()->getRegisteredPixels()['facebook'] == null ) return;
 
 
 
 
293
 
294
- $pixel = PYS()->getRegisteredPixels()['facebook'];
 
 
 
 
 
 
 
 
 
 
 
 
 
295
 
296
- foreach ( $pixel->getFDPEvents() as $event ) {
297
 
298
- if ( 'fdp_view_content' == $event->event_name && is_single()&& get_post_type() == 'post' ) {
299
- $this->addStaticEvent( 'fdp_event', $event );
 
 
 
 
 
 
300
  }
301
-
302
- if ( 'fdp_view_category' == $event->event_name && is_category() ) {
303
- $this->addStaticEvent( 'fdp_event', $event );
304
  }
305
-
306
- if ( 'fdp_add_to_cart' == $event->event_name && is_single()&& get_post_type() == 'post' ) {
307
-
308
- $this->addFDPDynamicEvent( $event );
 
 
 
 
 
 
 
 
 
309
  }
310
 
311
- if ( 'fdp_purchase' == $event->event_name && is_single()&& get_post_type() == 'post' ) {
312
-
313
- $this->addFDPDynamicEvent( $event );
 
 
 
 
314
  }
315
  }
316
 
317
  }
318
 
319
- private function setupWooCommerceEvents() {
320
-
321
- // AddToCart on button
322
- if ( isEventEnabled( 'woo_add_to_cart_enabled') && PYS()->getOption( 'woo_add_to_cart_on_button_click' ) ) {
323
- add_action( 'woocommerce_after_shop_loop_item', array( $this, 'setupWooLoopProductData' ) );
324
- add_action( 'woocommerce_after_add_to_cart_button', array( $this, 'setupWooSingleProductData' ) );
325
- add_filter( 'woocommerce_blocks_product_grid_item_html', array( $this, 'setupWooBlocksProductData' ), 10, 3 );
326
- }
327
-
328
- // ViewContent
329
- if ( isEventEnabled( 'woo_view_content_enabled' ) && is_product() ) {
330
-
331
- $this->addStaticEvent( 'woo_view_content' );
332
- return;
333
-
334
- }
335
-
336
- // ViewCategory
337
- if ( isEventEnabled( 'woo_view_category_enabled' ) && is_tax( 'product_cat' ) ) {
338
-
339
- $this->addStaticEvent( 'woo_view_category' );
340
- return;
341
-
342
- }
343
-
344
- // AddToCart on Cart page
345
- if ( isEventEnabled( 'woo_add_to_cart_enabled' ) && PYS()->getOption( 'woo_add_to_cart_on_cart_page' )
346
- && is_cart() ) {
347
 
348
- $this->addStaticEvent( 'woo_add_to_cart_on_cart_page' );
349
-
350
- }
351
-
352
- // AddToCart on Checkout page
353
- if ( isEventEnabled( 'woo_add_to_cart_enabled' ) && PYS()->getOption( 'woo_add_to_cart_on_checkout_page' )
354
- && is_checkout() && ! is_wc_endpoint_url() ) {
355
-
356
- $this->addStaticEvent( 'woo_add_to_cart_on_checkout_page' );
357
-
358
- }
359
-
360
- // RemoveFromCart
361
- if ( isEventEnabled( 'woo_remove_from_cart_enabled') && is_cart() ) {
362
- add_action( 'woocommerce_after_cart', array( $this, 'setupWooRemoveFromCartData' ) );
363
- }
364
-
365
- // InitiateCheckout Event
366
- if ( isEventEnabled( 'woo_initiate_checkout_enabled' ) && is_checkout() && ! is_wc_endpoint_url() ) {
367
- $this->addStaticEvent( 'woo_initiate_checkout' );
368
- }
369
-
370
- // Purchase Event
371
- if ( isEventEnabled( 'woo_purchase_enabled' ) && is_order_received_page() && isset( $_REQUEST['key'] ) ) {
372
- $this->addStaticEvent( 'woo_purchase' );
373
-
374
- /**
375
- * Add complete registration event
376
- */
377
- if ( Facebook()->enabled() && isEventEnabled( 'complete_registration_event_enabled' ) &&
378
- Facebook()->getOption("woo_complete_registration_fire_every_time")
379
- ) {
380
- $isGdprEnabled = $this->isGdprPluginEnabled();
381
-
382
- if(Facebook()->isServerApiEnabled()) {
383
- if(!Facebook()->getOption("woo_complete_registration_send_from_server") ) {
384
- $this->addStaticEvent('complete_registration', null, "facebook");
385
- } else {
386
- if($isGdprEnabled) {
387
- $this->addStaticEvent("hCR", null, "facebook");
388
- }
389
- }
390
-
391
- } else {
392
- $this->addStaticEvent('complete_registration', null, "facebook");
393
- }
394
-
395
- }
396
-
397
- }
398
-
399
-
400
-
401
- }
402
 
403
  function isGdprPluginEnabled() {
404
  return apply_filters( 'pys_disable_by_gdpr', false ) ||
@@ -409,21 +335,17 @@ class EventsManager {
409
  isCookieLawInfoPluginActivated() && PYS()->getOption( 'gdpr_cookie_law_info_integration_enabled' );
410
  }
411
 
412
- function addEventToFacebookServerApi($eventID,$eventType,$eventData) {
413
- $isEnabled = $this->isGdprPluginEnabled();
414
 
 
 
415
 
416
- if( !$isEnabled ) {
417
  $name = $eventData['name'];
418
- $data = $eventData['data'];
419
-
420
- if(isset($data['contents'])) {
421
- $contents = json_decode(stripslashes($data['contents']));
422
- $data['contents']=$contents;
423
- }
424
-
425
  $serverEvent = FacebookServer()->createEvent($eventID,$name,$data);
426
- $this->facebookServerEvents[] = array("pixelIds" => Facebook()->getPixelIDs(), "event" => $serverEvent );
427
  }
428
  }
429
 
@@ -556,162 +478,51 @@ class EventsManager {
556
 
557
  }
558
 
559
- public function setupWooRemoveFromCartData() {
560
-
561
- $data = array();
562
-
563
- foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
564
-
565
- $item_data = array();
566
-
567
- foreach ( PYS()->getRegisteredPixels() as $pixel ) {
568
- /** @var Pixel|Settings $pixel */
569
-
570
- $eventData = $pixel->getEventData( 'woo_remove_from_cart', $cart_item );
571
-
572
- if ( false === $eventData ) {
573
- continue; // event is disabled or not supported for the pixel
574
- }
575
-
576
- $item_data[ $pixel->getSlug() ] = sanitizeParams( $eventData['data'] );
577
-
578
- }
579
-
580
- if ( ! empty( $item_data ) ) {
581
- $data[ $cart_item_key ] = $item_data;
582
- }
583
-
584
- }
585
-
586
- ?>
587
-
588
- <script type="text/javascript">
589
- /* <![CDATA[ */
590
- window.pysWooRemoveFromCartData = window.pysWooRemoveFromCartData || [];
591
- window.pysWooRemoveFromCartData = <?php echo json_encode( $data ); ?>;
592
- /* ]]> */
593
- </script>
594
-
595
- <?php
596
-
597
- }
598
-
599
- private function setupEddEvents() {
600
-
601
- // AddToCart on button
602
- if ( isEventEnabled( 'edd_add_to_cart_enabled') && PYS()->getOption( 'edd_add_to_cart_on_button_click' ) ) {
603
- add_action( 'edd_purchase_link_end', array( $this, 'setupEddSingleDownloadData' ) );
604
- }
605
-
606
- // ViewContent
607
- if ( isEventEnabled( 'edd_view_content_enabled' ) && is_singular( 'download' ) ) {
608
-
609
- $this->addStaticEvent( 'edd_view_content' );
610
- return;
611
-
612
- }
613
-
614
- // ViewCategory
615
- if ( isEventEnabled( 'edd_view_category_enabled' ) && is_tax( 'download_category' ) ) {
616
-
617
- $this->addStaticEvent( 'edd_view_category' );
618
- return;
619
-
620
- }
621
-
622
- // AddToCart on Checkout page
623
- if ( isEventEnabled( 'edd_add_to_cart_enabled' ) && PYS()->getOption( 'edd_add_to_cart_on_checkout_page' )
624
- && edd_is_checkout() ) {
625
-
626
- $this->addStaticEvent( 'edd_add_to_cart_on_checkout_page' );
627
-
628
- }
629
-
630
- // RemoveFromCart
631
- if ( isEventEnabled( 'edd_remove_from_cart_enabled') && edd_is_checkout() ) {
632
- add_action( 'edd_cart_items_after', array( $this, 'setupEddRemoveFromCartData' ) );
633
- }
634
-
635
- // InitiateCheckout Event
636
- if ( isEventEnabled( 'edd_initiate_checkout_enabled' ) && edd_is_checkout() ) {
637
-
638
- $this->addStaticEvent( 'edd_initiate_checkout' );
639
- return;
640
-
641
- }
642
-
643
- // Purchase Event
644
- if ( isEventEnabled( 'edd_purchase_enabled' ) && edd_is_success_page() ) {
645
-
646
- /**
647
- * When a payment gateway used, user lands to Payment Confirmation page first, which does automatic
648
- * redirect to Purchase Confirmation page. We filter Payment Confirmation to avoid double Purchase event.
649
- */
650
- if ( isset( $_GET['payment-confirmation'] ) ) {
651
- //return;
652
- }
653
-
654
- $payment_key = getEddPaymentKey();
655
- $order_id = (int) edd_get_purchase_id_by_key( $payment_key );
656
- $status = edd_get_payment_status( $order_id );
657
-
658
- // pending payment status used because we can't fire event on IPN
659
- if ( strtolower( $status ) != 'publish' && strtolower( $status ) != 'pending' ) {
660
- return;
661
- }
662
-
663
- $this->addStaticEvent( 'edd_purchase' );
664
- return;
665
-
666
- }
667
-
668
- }
669
-
670
- public function setupEddSingleDownloadData() {
671
- global $post;
672
 
673
- $download_ids = array();
674
 
675
  if ( edd_has_variable_prices( $post->ID ) ) {
676
 
677
  $prices = edd_get_variable_prices( $post->ID );
678
 
679
- foreach ( $prices as $price_index => $price_data ) {
680
- $download_ids[] = $post->ID . '_' . $price_index;
681
  }
682
 
683
  } else {
684
 
685
- $download_ids[] = $post->ID;
686
 
687
  }
688
 
689
- $params = array();
690
 
691
- foreach ( $download_ids as $download_id ) {
692
- foreach ( PYS()->getRegisteredPixels() as $pixel ) {
693
- /** @var Pixel|Settings $pixel */
694
 
695
- $eventData = $pixel->getEventData( 'edd_add_to_cart_on_button_click', $download_id );
696
 
697
- if ( false === $eventData ) {
698
- continue; // event is disabled or not supported for the pixel
699
- }
700
 
701
- $params[ $download_id ][ $pixel->getSlug() ] = sanitizeParams( $eventData['data'] );
702
 
703
- }
704
- }
705
 
706
- if ( empty( $params ) ) {
707
- return;
708
- }
709
 
710
- /**
711
- * Format is pysEddProductData[ id ][ id ] or pysEddProductData[ id ] [ id_1, id_2, ... ]
712
- */
713
 
714
- ?>
715
 
716
  <script type="text/javascript">
717
  /* <![CDATA[ */
@@ -720,49 +531,7 @@ class EventsManager {
720
  /* ]]> */
721
  </script>
722
 
723
- <?php
724
-
725
- }
726
-
727
- public function setupEddRemoveFromCartData() {
728
-
729
- $data = array();
730
-
731
- foreach ( edd_get_cart_contents() as $cart_item_key => $cart_item ) {
732
-
733
- $item_data = array();
734
-
735
- foreach ( PYS()->getRegisteredPixels() as $pixel ) {
736
- /** @var Pixel|Settings $pixel */
737
-
738
- $eventData = $pixel->getEventData( 'edd_remove_from_cart', $cart_item );
739
-
740
- if ( false === $eventData ) {
741
- continue; // event is disabled or not supported for the pixel
742
- }
743
-
744
- $item_data[ $pixel->getSlug() ] = sanitizeParams( $eventData['data'] );
745
-
746
- }
747
-
748
- if ( ! empty( $item_data ) ) {
749
- $data[ $cart_item_key ] = $item_data;
750
- }
751
-
752
- }
753
-
754
- ?>
755
-
756
- <script type="text/javascript">
757
- /* <![CDATA[ */
758
- window.pysEddRemoveFromCartData = window.pysEddRemoveFromCartData || [];
759
- window.pysEddRemoveFromCartData = <?php echo json_encode( $data ); ?>;
760
- /* ]]> */
761
- </script>
762
-
763
- <?php
764
 
765
  }
766
-
767
-
768
  }
12
  class EventsManager {
13
 
14
  public $facebookServerEvents = array();
 
15
  public $doingAMP = false;
16
+ private $standardParams = array();
17
+ private $staticEvents = array();
18
+ private $dynamicEvents = array();
19
+ private $triggerEvents = array();
20
+ private $triggerEventTypes = array();
21
 
 
 
 
 
 
22
 
23
+ public function __construct() {
24
  add_action( 'wp_enqueue_scripts', array( $this, 'enqueueScripts' ) );
25
 
26
  add_action( 'wp_head', array( $this, 'setupEventsParams' ), 3 );
45
  public function outputData() {
46
 
47
  $data = array(
48
+ 'staticEvents' => $this->staticEvents,
49
+ 'dynamicEvents' => $this->dynamicEvents,
50
+ 'triggerEvents' => $this->triggerEvents,
51
+ 'triggerEventTypes' => $this->triggerEventTypes,
52
+ );
53
 
54
  // collect options for configured pixel
55
  foreach ( PYS()->getRegisteredPixels() as $pixel ) {
64
  $options = array(
65
  'debug' => PYS()->getOption( 'debug_enabled' ),
66
  'siteUrl' => site_url(),
67
+ 'ajaxUrl' => admin_url( 'admin-ajax.php' )
 
 
 
 
 
 
 
 
 
68
  );
69
 
70
  $options['gdpr'] = array(
94
  'cookie_law_info_integration_enabled' => isCookieLawInfoPluginActivated() && PYS()->getOption( 'gdpr_cookie_law_info_integration_enabled' ),
95
  );
96
 
97
+ $options['edd'] = EventsEdd()->getOptions();
98
+ $options['woo'] = EventsWoo()->getOptions();
 
 
 
 
 
 
 
 
99
 
100
+
101
+ $data = array_merge( $data, $options );
 
 
 
 
 
 
 
102
 
103
  wp_localize_script( 'pys', 'pysOptions', $data );
104
 
113
 
114
  }
115
 
 
116
 
117
+
118
+
119
+
120
+
121
+ public function setupEventsParams() {
122
+
123
+ $this->standardParams = getStandardParams();
124
  $this->facebookServerEvents = array();
125
 
126
  // initial event
127
+ foreach ( PYS()->getRegisteredPixels() as $pixel ) {
128
+ $event = new SingleEvent('init_event',EventTypes::$STATIC);
129
+ $params = array();
130
+ if(get_post_type() == "post") {
131
+ global $post;
132
+ $catIds = wp_get_object_terms( $post->ID, 'category', array( 'fields' => 'names' ) );
133
+ $params['post_category'] = implode(", ",$catIds) ;
134
+ }
135
+ $event->addParams($params);
136
+ $this->addEvent($event,$pixel);
137
+ }
138
+ // search event
139
+ if ( PYS()->getOption('search_event_enabled' ) && is_search() ) {
140
+ foreach (PYS()->getRegisteredPixels() as $pixel) {
141
+ $event = new SingleEvent('search_event', EventTypes::$STATIC);
142
+ $this->addEvent($event, $pixel);
143
+ }
144
+ }
145
 
146
+ /**
147
+ * @var EventsFactory[] $eventsFactory
148
+ **/
149
+ $eventsFactory = array(EventsFdp(),EventsEdd(),EventsCustom(),EventsSignal(),EventsWoo());
150
 
151
+ foreach ($eventsFactory as $factory) {
152
+
153
+ if(!$factory->isEnabled()) continue;
 
 
 
 
154
 
155
+ foreach ($factory->getEvents() as $eventName) {
156
+ if($factory->isReadyForFire($eventName)) {
157
+ foreach ( PYS()->getRegisteredPixels() as $pixel ) {
158
+ $event = $factory->getEvent($eventName);
159
+ $this->addEvent($event,$pixel);
160
+ }
161
+ }
162
+ }
163
+ }
164
+
165
+
166
+ if(EventsEdd()->isEnabled()) {
167
+ // AddToCart on button
168
+ if ( isEventEnabled( 'edd_add_to_cart_enabled') && PYS()->getOption( 'edd_add_to_cart_on_button_click' ) ) {
169
+ add_action( 'edd_purchase_link_end', array( $this, 'setupEddSingleDownloadData' ) );
170
+ }
171
+ }
172
+
173
+ if(EventsWoo()->isEnabled()){
174
+ // AddToCart on button and Affiliate
175
+ if ( isEventEnabled( 'woo_add_to_cart_enabled') && PYS()->getOption( 'woo_add_to_cart_on_button_click' )) {
176
+ add_action( 'woocommerce_after_shop_loop_item', array( $this, 'setupWooLoopProductData' ) );
177
+ add_action( 'woocommerce_after_add_to_cart_button', array( $this, 'setupWooSingleProductData' ) );
178
+ add_filter( 'woocommerce_blocks_product_grid_item_html', array( $this, 'setupWooBlocksProductData' ), 10, 3 );
179
+ }
180
+ }
181
 
 
 
182
 
 
183
 
 
 
 
184
 
185
  if(count($this->facebookServerEvents)>0 && Facebook()->enabled()) {
186
  FacebookServer()->addAsyncEvents($this->facebookServerEvents);
205
  return isset( $this->staticEvents[ $context ] ) ? $this->staticEvents[ $context ] : array();
206
  }
207
 
208
+ function addEvent($events,$pixel){
209
+ if(!is_array($events)) {
210
+ $events = array($events);
211
+ }
212
+ foreach ($events as $event) {
213
+ if(!method_exists($pixel,"addParamsToEvent")) continue; // for old pixel addons
214
+ $isSuccess = $pixel->addParamsToEvent( $event );
215
+ if ( !$isSuccess ) {
216
+ continue; // event is disabled or not supported for the pixel
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
217
  }
218
+ if($event->getType() == EventTypes::$STATIC) {
219
+ $this->addStaticEvent( $event,$pixel );
220
+ } elseif($event->getType() == EventTypes::$TRIGGER) {
221
+ $this->addTriggerEvent($event,$pixel);
222
+ } else {
223
+ $this->addDynamicEvent($event,$pixel);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
224
  }
225
+ }
226
+ }
227
 
228
+ function addDynamicEvent($event,$pixel) {
 
 
 
 
 
 
 
 
 
 
 
 
 
229
 
230
+ if(is_a($event,GroupedEvent::class)) {
231
+ foreach ($event->getEvents() as $child) {
232
+ if($pixel->getSlug() != "ga" || $pixel->isUse4Version()) {
233
+ $child->addParams($this->standardParams);
234
+ }
235
+ $eventData = $child->getData();
236
+ //save static event data
237
+ $this->dynamicEvents[ $event->getId() ][ $child->getId() ][ $pixel->getSlug() ] = $eventData;
238
  }
239
+ } else {
240
+ if($pixel->getSlug() != "ga" || $pixel->isUse4Version()) {
241
+ $event->addParams($this->standardParams);
 
 
 
 
 
 
242
  }
243
+ $eventData = $event->getData();
244
+ //save static event data
245
+ $this->dynamicEvents[ $event->getId() ][ $pixel->getSlug() ] = $eventData;
246
+ }
247
+ }
248
 
249
+ function addTriggerEvent($event,$pixel) {
250
+ if($pixel->getSlug() != "ga" || $pixel->isUse4Version()) {
251
+ $event->addParams($this->standardParams);
252
  }
253
+ $eventData = $event->getData();
254
+ //save static event data
255
+ $this->triggerEvents[ $event->getId() ][ $pixel->getSlug() ] = $eventData;
256
+ $this->triggerEventTypes[ $eventData['trigger_type'] ][ $event->getId() ][] = $eventData['trigger_value'];
257
  }
258
 
259
+ /**
260
+ * Create stack event, they fire when page loaded
261
+ * @param Event $event
262
+ */
263
+ function addStaticEvent($event, $pixel) {
264
 
265
+ if(is_a($event,GroupedEvent::class)) {
266
+ foreach ($event->getEvents() as $child) {
267
+ if($pixel->getSlug() != "ga" || $pixel->isUse4Version()) {
268
+ $child->addParams($this->standardParams);
269
+ }
270
 
271
+ $eventData = $child->getData();
272
+
273
+ // send only for FB Server events
274
+ if($pixel->getSlug() == "facebook" &&
275
+ ($event->getId() == "complete_registration" || $event->getId() == "complete_registration_category") &&
276
+ Facebook()->isServerApiEnabled() &&
277
+ Facebook()->getOption("woo_complete_registration_send_from_server") &&
278
+ !$this->isGdprPluginEnabled() )
279
+ {
280
+ if($eventData['delay'] == 0) {
281
+ $this->addEventToFacebookServerApi($child->payload["pixelIds"],null,$eventData);
282
+ }
283
+ continue;
284
+ }
285
 
 
286
 
287
+ //save static event data
288
+ $this->staticEvents[ $pixel->getSlug() ][ $eventData['name'] ][] = $eventData;
289
+ // fire fb server api event
290
+ if($pixel->getSlug() == "facebook") {
291
+ if( $eventData['delay'] == 0 && !Facebook()->getOption( "server_event_use_ajax" )) {
292
+ $this->addEventToFacebookServerApi($child->payload["pixelIds"],$child,$eventData);
293
+ }
294
+ }
295
  }
296
+ } else {
297
+ if($pixel->getSlug() != "ga" || $pixel->isUse4Version()) {
298
+ $event->addParams($this->standardParams);
299
  }
300
+ $eventData = $event->getData();
301
+
302
+ // send only for FB Server events
303
+ if($pixel->getSlug() == "facebook" &&
304
+ ($event->getId() == "complete_registration" || $event->getId() == "complete_registration_category") &&
305
+ Facebook()->isServerApiEnabled() &&
306
+ Facebook()->getOption("woo_complete_registration_send_from_server") &&
307
+ !$this->isGdprPluginEnabled() )
308
+ {
309
+ if($eventData['delay'] == 0) {
310
+ $this->addEventToFacebookServerApi($event->payload["pixelIds"],null,$eventData);
311
+ }
312
+ return;
313
  }
314
 
315
+ //save static event data
316
+ $this->staticEvents[ $pixel->getSlug() ][ $eventData['name'] ][] = $eventData;
317
+ // fire fb server api event
318
+ if($pixel->getSlug() == "facebook") {
319
+ if( $eventData['delay'] == 0 && !Facebook()->getOption( "server_event_use_ajax" )) {
320
+ $this->addEventToFacebookServerApi($event->payload["pixelIds"],$event,$eventData);
321
+ }
322
  }
323
  }
324
 
325
  }
326
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
327
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
328
 
329
  function isGdprPluginEnabled() {
330
  return apply_filters( 'pys_disable_by_gdpr', false ) ||
335
  isCookieLawInfoPluginActivated() && PYS()->getOption( 'gdpr_cookie_law_info_integration_enabled' );
336
  }
337
 
338
+ function addEventToFacebookServerApi($pixelIds,$eventType,$eventData) {
 
339
 
340
+ if(!Facebook()->isServerApiEnabled()) return;
341
+ $isDisabled = $this->isGdprPluginEnabled();
342
 
343
+ if( !$isDisabled ) {
344
  $name = $eventData['name'];
345
+ $data = $eventData['params'];
346
+ $eventID = isset($eventData['eventID']) ? $eventData['eventID'] : false;
 
 
 
 
 
347
  $serverEvent = FacebookServer()->createEvent($eventID,$name,$data);
348
+ $this->facebookServerEvents[] = array("pixelIds" => $pixelIds, "event" => $serverEvent );
349
  }
350
  }
351
 
478
 
479
  }
480
 
481
+ public function setupEddSingleDownloadData() {
482
+ global $post;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
483
 
484
+ $download_ids = array();
485
 
486
  if ( edd_has_variable_prices( $post->ID ) ) {
487
 
488
  $prices = edd_get_variable_prices( $post->ID );
489
 
490
+ foreach ( $prices as $price_index => $price_data ) {
491
+ $download_ids[] = $post->ID . '_' . $price_index;
492
  }
493
 
494
  } else {
495
 
496
+ $download_ids[] = $post->ID;
497
 
498
  }
499
 
500
+ $params = array();
501
 
502
+ foreach ( $download_ids as $download_id ) {
503
+ foreach ( PYS()->getRegisteredPixels() as $pixel ) {
504
+ /** @var Pixel|Settings $pixel */
505
 
506
+ $eventData = $pixel->getEventData( 'edd_add_to_cart_on_button_click', $download_id );
507
 
508
+ if ( false === $eventData ) {
509
+ continue; // event is disabled or not supported for the pixel
510
+ }
511
 
512
+ $params[ $download_id ][ $pixel->getSlug() ] = sanitizeParams( $eventData['data'] );
513
 
514
+ }
515
+ }
516
 
517
+ if ( empty( $params ) ) {
518
+ return;
519
+ }
520
 
521
+ /**
522
+ * Format is pysEddProductData[ id ][ id ] or pysEddProductData[ id ] [ id_1, id_2, ... ]
523
+ */
524
 
525
+ ?>
526
 
527
  <script type="text/javascript">
528
  /* <![CDATA[ */
531
  /* ]]> */
532
  </script>
533
 
534
+ <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
535
 
536
  }
 
 
537
  }
includes/events/class-event-grouped.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PixelYourSite;
4
+ class GroupedEvent extends Event
5
+ {
6
+ private $events = array();
7
+ public function __construct($id, $type) {
8
+ parent::__construct($id, $type);
9
+ }
10
+
11
+ /**
12
+ * @param Event $event
13
+ */
14
+ public function addEvent($event) {
15
+ $this->events[] = $event;
16
+ }
17
+
18
+ /**
19
+ * @return Event[]
20
+ */
21
+ public function getEvents() {
22
+ return $this->events;
23
+ }
24
+
25
+
26
+ }
includes/events/class-event-single.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace PixelYourSite;
3
+ class SingleEvent extends Event{
4
+
5
+ public $params = array(
6
+ );
7
+ public $payload = array(
8
+ 'delay' => 0
9
+ );
10
+
11
+ public function __construct($id,$type){
12
+ parent::__construct($id,$type);
13
+ $this->payload['type'] = $type;
14
+ }
15
+
16
+
17
+ /**
18
+ * Insert Array params for event
19
+ * @param array $data
20
+ */
21
+ function addParams($data) {
22
+
23
+ if(is_array($data)) {
24
+ $this->params = array_merge($this->params,$data);
25
+ } else {
26
+ error_log("addParams no array ".print_r($data,true));
27
+ }
28
+
29
+ }
30
+
31
+ /**
32
+ * Insert additional Array data for event
33
+ * @param array $data
34
+ */
35
+ function addPayload($data) {
36
+ if(is_array($data)) {
37
+ $this->payload = array_merge($this->payload,$data);
38
+ } else {
39
+ error_log("addPayload no array ".print_r($data,true));
40
+ }
41
+
42
+ }
43
+
44
+ function getData() {
45
+ $data = $this->payload;
46
+ $data['params'] = sanitizeParams($this->params);
47
+
48
+ $data['delay'] = isset( $this->payload['delay'] ) ? $this->payload['delay'] : 0;
49
+ $data['ids'] = isset( $this->payload['ids'] ) ? $this->payload['ids'] : array();
50
+ $data['hasTimeWindow'] = isset( $this->payload['hasTimeWindow'] ) ? $this->payload['hasTimeWindow'] : false;
51
+ $data['timeWindow'] = isset( $this->payload['timeWindow'] ) ? $this->payload['timeWindow'] : 0;
52
+ $data['pixelIds'] = isset( $this->payload['pixelIds'] ) ? $this->payload['pixelIds'] : array();
53
+ $data['eventID'] = isset( $this->payload['eventID'] ) ? $this->payload['eventID'] : "";
54
+ $data['woo_order'] = isset( $this->payload['woo_order'] ) ? $this->payload['woo_order'] : "";
55
+ $data['edd_order'] = isset( $this->payload['edd_order'] ) ? $this->payload['edd_order'] : "";
56
+
57
+ return $data;
58
+ }
59
+ }
includes/events/class-event.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace PixelYourSite;
3
+ class EventTypes {
4
+ static public $DYNAMIC = "dyn";
5
+ static public $STATIC = "static";
6
+ static public $TRIGGER = "trigger";
7
+ }
8
+
9
+ abstract class Event {
10
+ protected $id;
11
+ protected $type;
12
+ public $args = null;
13
+ /**
14
+ * GroupedEvent constructor.
15
+ * @param $id // unique id use in js object like key
16
+ * @param $type // can be static(fire when open page) or dynamic (fire when some event did)
17
+ */
18
+ public function __construct($id,$type){
19
+ $this->id = $id;
20
+ $this->type = $type;
21
+ }
22
+
23
+ function getId() {
24
+ return $this->id;
25
+ }
26
+
27
+ function getType() {
28
+ return $this->type;
29
+ }
30
+ }
includes/events/class-events-custom.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace PixelYourSite;
3
+ class EventsCustom implements EventsFactory {
4
+ private static $_instance;
5
+ public static function instance() {
6
+
7
+ if ( is_null( self::$_instance ) ) {
8
+ self::$_instance = new self();
9
+ }
10
+
11
+ return self::$_instance;
12
+
13
+ }
14
+
15
+ private function __construct() {
16
+
17
+ }
18
+
19
+ function getEvents(){
20
+ return CustomEventFactory::get( 'active' );
21
+ }
22
+
23
+ function getCount()
24
+ {
25
+ if(!$this->isEnabled()) {
26
+ return 0;
27
+ }
28
+ return count($this->getEvents());
29
+ }
30
+
31
+ function isEnabled()
32
+ {
33
+ return PYS()->getOption( 'custom_events_enabled' );
34
+ }
35
+
36
+ function getOptions()
37
+ {
38
+ return array();
39
+ }
40
+
41
+ /**
42
+ * @param CustomEvent $event
43
+ * @return bool
44
+ */
45
+ function isReadyForFire($event)
46
+ {
47
+ switch ($event->getTriggerType()) {
48
+
49
+ case 'page_visit': {
50
+ $triggers = $event->getPageVisitTriggers();
51
+ return !empty( $triggers ) && compareURLs( $triggers );
52
+ }
53
+
54
+ }
55
+ return false;
56
+ }
57
+ /**
58
+ * @param CustomEvent $event
59
+ * @return Event
60
+ */
61
+ function getEvent($event)
62
+ {
63
+
64
+ switch ($event->getTriggerType()) {
65
+ case 'page_visit': {
66
+ $singleEvent = new SingleEvent('custom_event',EventTypes::$STATIC);
67
+ $singleEvent->args = $event;
68
+ return $singleEvent;
69
+ }
70
+
71
+ }
72
+ }
73
+ }
74
+ /**
75
+ * @return EventsCustom
76
+ */
77
+ function EventsCustom() {
78
+ return EventsCustom::instance();
79
+ }
80
+
81
+ EventsCustom();
includes/events/class-events-edd.php ADDED
@@ -0,0 +1,204 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace PixelYourSite;
3
+
4
+ class EventsEdd implements EventsFactory {
5
+ private $events = array(
6
+ //'edd_frequent_shopper', pro
7
+ //'edd_vip_client',pro
8
+ //'edd_big_whale',pro
9
+ 'edd_view_content',
10
+ 'edd_view_category',
11
+ 'edd_add_to_cart_on_checkout_page',
12
+ 'edd_remove_from_cart',
13
+ 'edd_initiate_checkout',
14
+ 'edd_purchase',
15
+ 'edd_add_to_cart_on_button_click'
16
+ );
17
+
18
+
19
+ private static $_instance;
20
+
21
+ public static function instance() {
22
+
23
+ if ( is_null( self::$_instance ) ) {
24
+ self::$_instance = new self();
25
+ }
26
+
27
+ return self::$_instance;
28
+
29
+ }
30
+
31
+ private function __construct() {
32
+
33
+ }
34
+
35
+ function getEvents() {
36
+ return $this->events;
37
+ }
38
+
39
+ function getCount()
40
+ {
41
+ $size = 0;
42
+ if(!$this->isEnabled()) {
43
+ return 0;
44
+ }
45
+ foreach ($this->events as $event) {
46
+ if($this->isActive($event)){
47
+ $size++;
48
+ }
49
+ }
50
+ return $size;
51
+ }
52
+
53
+ function isEnabled()
54
+ {
55
+ return isEddActive() && PYS()->getOption( 'edd_enabled' );
56
+ }
57
+
58
+ function getOptions()
59
+ {
60
+ if($this->isEnabled()) {
61
+ return array(
62
+ 'enabled' => true,
63
+ 'addToCartOnButtonEnabled' => isEventEnabled( 'edd_add_to_cart_enabled' ) && PYS()->getOption( 'edd_add_to_cart_on_button_click' ),
64
+ 'addToCartOnButtonValueEnabled' => PYS()->getOption( 'edd_add_to_cart_value_enabled' ),
65
+ 'addToCartOnButtonValueOption' => PYS()->getOption( 'edd_add_to_cart_value_option' ),
66
+ );
67
+ } else {
68
+ return array(
69
+ 'enabled' => false
70
+ );
71
+ }
72
+ }
73
+
74
+ function isReadyForFire($event)
75
+ {
76
+ switch ($event) {
77
+ case 'edd_add_to_cart_on_button_click': {
78
+ return PYS()->getOption( 'edd_add_to_cart_enabled' ) && PYS()->getOption( 'edd_add_to_cart_on_button_click' );
79
+ }
80
+ case 'edd_purchase': {
81
+ if(PYS()->getOption( 'edd_purchase_enabled' ) && edd_is_success_page()) {
82
+ /**
83
+ * When a payment gateway used, user lands to Payment Confirmation page first, which does automatic
84
+ * redirect to Purchase Confirmation page. We filter Payment Confirmation to avoid double Purchase event.
85
+ */
86
+ if ( isset( $_GET['payment-confirmation'] ) ) {
87
+ //@fixme: some users will not reach success page and event will not be fired
88
+ //return;
89
+ }
90
+ $payment_key = getEddPaymentKey();
91
+ $order_id = (int) edd_get_purchase_id_by_key( $payment_key );
92
+ $status = edd_get_payment_status( $order_id );
93
+
94
+ // pending payment status used because we can't fire event on IPN
95
+ if ( strtolower( $status ) != 'publish' && strtolower( $status ) != 'pending' ) {
96
+ return false;
97
+ }
98
+ // skip if event was fired before
99
+ if ( PYS()->getOption( 'edd_purchase_on_transaction' ) && get_post_meta( $order_id, '_pys_purchase_event_fired', true ) ) {
100
+ return false;
101
+ }
102
+ update_post_meta( $order_id, '_pys_purchase_event_fired', true );
103
+ return true;
104
+ }
105
+ return false;
106
+ }
107
+ case 'edd_initiate_checkout': {
108
+ return PYS()->getOption( 'edd_initiate_checkout_enabled' ) && edd_is_checkout();
109
+ }
110
+ case 'edd_remove_from_cart': {
111
+ return PYS()->getOption( 'edd_remove_from_cart_enabled') && edd_is_checkout();
112
+ }
113
+ case 'edd_add_to_cart_on_checkout_page' : {
114
+ return PYS()->getOption( 'edd_add_to_cart_enabled' ) && PYS()->getOption( 'edd_add_to_cart_on_checkout_page' )
115
+ && edd_is_checkout();
116
+ }
117
+ case 'edd_view_category': {
118
+ return PYS()->getOption( 'edd_view_category_enabled' ) && is_tax( 'download_category' );
119
+ }
120
+ case 'edd_view_content' : {
121
+ return PYS()->getOption( 'edd_view_content_enabled' ) && is_singular( 'download' );
122
+ }
123
+
124
+
125
+
126
+ }
127
+ return false;
128
+ }
129
+
130
+ function getEvent($event)
131
+ {
132
+ switch ($event) {
133
+ case 'edd_initiate_checkout':
134
+ case 'edd_purchase':
135
+ case 'edd_add_to_cart_on_checkout_page' :
136
+ case 'edd_view_category':
137
+ case 'edd_view_content':{
138
+ return new SingleEvent($event,EventTypes::$STATIC);
139
+ }
140
+
141
+ case 'edd_remove_from_cart': {
142
+ return new GroupedEvent($event,EventTypes::$DYNAMIC);
143
+ }
144
+ case 'edd_add_to_cart_on_button_click': {
145
+
146
+ return new SingleEvent($event,EventTypes::$DYNAMIC);
147
+ }
148
+ }
149
+ }
150
+
151
+ private function isActive($event)
152
+ {
153
+ switch ($event) {
154
+ case 'edd_add_to_cart_on_button_click': {
155
+ return PYS()->getOption( 'edd_add_to_cart_enabled' ) && PYS()->getOption( 'edd_add_to_cart_on_button_click' );
156
+ }
157
+ case 'edd_purchase': {
158
+ return PYS()->getOption( 'edd_purchase_enabled' );
159
+ }
160
+ case 'edd_initiate_checkout': {
161
+ return PYS()->getOption( 'edd_initiate_checkout_enabled' ) ;
162
+ }
163
+ case 'edd_remove_from_cart': {
164
+ return PYS()->getOption( 'edd_remove_from_cart_enabled');
165
+ }
166
+ case 'edd_add_to_cart_on_checkout_page' : {
167
+ return PYS()->getOption( 'edd_add_to_cart_enabled' ) && PYS()->getOption( 'edd_add_to_cart_on_checkout_page' );
168
+ }
169
+ case 'edd_view_category': {
170
+ return PYS()->getOption( 'edd_view_category_enabled' ) ;
171
+ }
172
+ case 'edd_view_content' : {
173
+ return PYS()->getOption( 'edd_view_content_enabled' ) ;
174
+ }
175
+
176
+ }
177
+ return false;
178
+ }
179
+
180
+ private function getEddCartActiveCategories($categoryPixels){
181
+ $catIds = array();
182
+ $keys = array_keys($categoryPixels);
183
+ $cart = edd_get_cart_contents();
184
+ foreach ( $cart as $cart_item_key => $cart_item ) {
185
+ $download_id = (int) $cart_item['id'];
186
+ $productCatIds = Facebook\HelpersCategory\getIntersectEddProduct($download_id,$keys);
187
+ foreach ($productCatIds as $id) {
188
+ if(!in_array($categoryPixels[$id],$catIds)) // disable duplicate pixel_id
189
+ $catIds[]=$id;
190
+ }
191
+ }
192
+ return array_unique($catIds);
193
+ }
194
+
195
+ }
196
+
197
+ /**
198
+ * @return EventsEdd
199
+ */
200
+ function EventsEdd() {
201
+ return EventsEdd::instance();
202
+ }
203
+
204
+ EventsEdd();
includes/events/class-events-fdp.php ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace PixelYourSite;
3
+
4
+ class EventsFdp implements EventsFactory
5
+ {
6
+ private $events = array(
7
+ 'fdp_view_content',
8
+ 'fdp_view_category',
9
+ 'fdp_add_to_cart',
10
+ 'fdp_purchase',
11
+ );
12
+
13
+
14
+ private static $_instance;
15
+
16
+ public static function instance()
17
+ {
18
+
19
+ if (is_null(self::$_instance)) {
20
+ self::$_instance = new self();
21
+ }
22
+
23
+ return self::$_instance;
24
+
25
+ }
26
+
27
+ private function __construct()
28
+ {
29
+
30
+ }
31
+ function getEvents() {
32
+ return $this->events;
33
+ }
34
+
35
+ function getCount()
36
+ {
37
+ return 0;
38
+ }
39
+
40
+ function isEnabled()
41
+ {
42
+ return Facebook()->enabled() && PYS()->getOption( 'fdp_enabled' );
43
+ }
44
+
45
+ function getOptions()
46
+ {
47
+ return array();
48
+ }
49
+
50
+ function isReadyForFire($event)
51
+ {
52
+ switch ($event) {
53
+ case 'fdp_purchase':
54
+ case 'fdp_add_to_cart':
55
+ case 'fdp_view_content': {
56
+ return is_single() && get_post_type() == 'post';
57
+ }
58
+ case 'fdp_view_category': {
59
+ return is_category();
60
+ }
61
+ }
62
+ }
63
+
64
+ function getEvent($event)
65
+ {
66
+ switch ($event) {
67
+ case 'fdp_view_category':
68
+ case 'fdp_view_content': {
69
+ return new SingleEvent($event,EventTypes::$STATIC);
70
+ }
71
+ case 'fdp_add_to_cart':
72
+ case 'fdp_purchase': {
73
+ return new SingleEvent($event,EventTypes::$TRIGGER);
74
+ }
75
+ }
76
+ }
77
+ }
78
+
79
+ /**
80
+ * @return EventsFdp
81
+ */
82
+ function EventsFdp() {
83
+ return EventsFdp::instance();
84
+ }
85
+
86
+ EventsFdp();
includes/events/class-events-signal.php ADDED
@@ -0,0 +1,195 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace PixelYourSite;
3
+
4
+ /*
5
+ * Signal Events we will fire this event in order to capture all actions like clicks, video
6
+ views, downloads, comments, forms.
7
+ * */
8
+
9
+ class EventsSignal implements EventsFactory {
10
+ private static $_instance;
11
+
12
+ private $events = array(
13
+ // 'signal_click' , pro
14
+ // 'signal_watch_video',pro
15
+ // 'signal_adsense' ,pro
16
+ // 'signal_user_signup' ,pro
17
+ 'signal_page_scroll' ,//Params: trigger: the percent that triggers the event
18
+ 'signal_time_on_page' ,//Params: No specific parameters trigger: the time delay that triggers the event
19
+ //'signal_tel' ,pro
20
+ //'signal_email',pro
21
+ 'signal_form' ,//Params: form_class, form_id, text (the current form_submit_label)
22
+ 'signal_download' ,//Params: download_type, download_name, download_URL
23
+ 'signal_comment' //Params: No specific parameters
24
+ );
25
+
26
+ public static function instance() {
27
+
28
+ if ( is_null( self::$_instance ) ) {
29
+ self::$_instance = new self();
30
+ }
31
+
32
+ return self::$_instance;
33
+
34
+ }
35
+
36
+ private function __construct() {
37
+
38
+ }
39
+ function getEvents() {
40
+ return $this->events;
41
+ }
42
+
43
+ function getCount() {
44
+ $count = 0;
45
+ if($this->isEnabled()) {
46
+ foreach ($this->events as $event) {
47
+ if(PYS()->getOption($event."_enabled")) {
48
+ $count++;
49
+ }
50
+ }
51
+ }
52
+ return $count;
53
+ }
54
+
55
+
56
+ function isEnabled() {
57
+ return PYS()->getOption("signal_events_enabled");
58
+ }
59
+
60
+ // return option for js part
61
+ function getOptions() {
62
+ return array(
63
+ ""
64
+ );
65
+ }
66
+
67
+ /**
68
+ * Check is event ready for fire
69
+ * @param $event
70
+ * @return bool
71
+ */
72
+ function isReadyForFire($event) {
73
+
74
+ if(!$this->isEnabled()) return false;
75
+
76
+ if(!in_array($event,$this->events)) return false;
77
+
78
+ switch($event) {
79
+ case 'signal_user_signup' : {
80
+ if ( PYS()->getOption( 'signal_user_signup_enabled' ) && $user_id = get_current_user_id() ) {
81
+ if ( get_user_meta( $user_id, 'pys_complete_registration', true ) ) {
82
+ return true;
83
+ }
84
+ }
85
+ return false;
86
+ }
87
+ default: {
88
+ return PYS()->getOption( $event."_enabled");
89
+ }
90
+ }
91
+ }
92
+
93
+ /**
94
+ * @param String $event
95
+ * @return SingleEvent
96
+ */
97
+ function getEvent($event) {
98
+ $payload = array("name"=>'Signal');
99
+ $params = array();
100
+ switch ($event) {
101
+ case "signal_download": {
102
+ $params['event_action'] = 'Download';
103
+ $payload["extensions"] = PYS()->getOption( 'download_event_extensions' );
104
+ $item = new SingleEvent($event,EventTypes::$DYNAMIC);
105
+ $item->addPayload($payload);
106
+ $item->addParams($params);
107
+ return $item;
108
+ }
109
+ case "signal_page_scroll": {
110
+
111
+ $payload["scroll_percent"] = PYS()->getOption( 'signal_page_scroll_value' );
112
+ $params['event_action'] = 'Scroll '. $payload["scroll_percent"]."%";
113
+ $item = new SingleEvent($event,EventTypes::$DYNAMIC);
114
+ $item->addPayload($payload);
115
+ $item->addParams($params);
116
+ return $item;
117
+ }
118
+ case "signal_time_on_page": {
119
+ $payload["time_on_page"] = PYS()->getOption( 'signal_time_on_page_value' );
120
+ $params['event_action'] = 'Time on page '.$payload["time_on_page"]." seconds";
121
+ $item = new SingleEvent($event,EventTypes::$DYNAMIC);
122
+ $item->addPayload($payload);
123
+ $item->addParams($params);
124
+ return $item;
125
+ }
126
+ case "signal_user_signup": {
127
+ $params['event_action'] = 'User Signup';
128
+ $item = new SingleEvent($event,EventTypes::$STATIC);
129
+ $item->addPayload($payload);
130
+ $item->addParams($params);
131
+ return $item;
132
+ }
133
+
134
+ case "signal_watch_video": {
135
+ $params['event_action'] = 'Video ';
136
+ $item = new SingleEvent($event,EventTypes::$DYNAMIC);
137
+ $item->addPayload($payload);
138
+ $item->addParams($params);
139
+ return $item;
140
+ }
141
+ case "signal_adsense": {
142
+ $params['event_action'] = 'Adsense';
143
+ $item = new SingleEvent($event,EventTypes::$DYNAMIC);
144
+ $item->addPayload($payload);
145
+ $item->addParams($params);
146
+ return $item;
147
+ }
148
+ case "signal_tel": {
149
+ $params['event_action'] = 'Tel';
150
+ $item = new SingleEvent($event,EventTypes::$DYNAMIC);
151
+ $item->addPayload($payload);
152
+ $item->addParams($params);
153
+ return $item;
154
+ }
155
+ case "signal_email": {
156
+ $params['event_action'] = 'Email';
157
+ $item = new SingleEvent($event,EventTypes::$DYNAMIC);
158
+ $item->addPayload($payload);
159
+ $item->addParams($params);
160
+ return $item;
161
+ }
162
+ case "signal_form": {
163
+ $params['event_action'] = 'Form';
164
+ $item = new SingleEvent($event,EventTypes::$DYNAMIC);
165
+ $item->addPayload($payload);
166
+ $item->addParams($params);
167
+ return $item;
168
+ }
169
+ case "signal_comment": {
170
+ $params['event_action'] = 'Comment';
171
+ $item = new SingleEvent($event,EventTypes::$DYNAMIC);
172
+ $item->addPayload($payload);
173
+ $item->addParams($params);
174
+ return $item;
175
+ }
176
+
177
+ default:
178
+ {
179
+ $item = new SingleEvent($event, EventTypes::$DYNAMIC);
180
+ $item->addPayload($payload);
181
+ return $item;
182
+ }
183
+ }
184
+ }
185
+
186
+ }
187
+
188
+ /**
189
+ * @return EventsSignal
190
+ */
191
+ function EventsSignal() {
192
+ return EventsSignal::instance();
193
+ }
194
+
195
+ EventsSignal();
includes/events/class-events-woo.php ADDED
@@ -0,0 +1,283 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace PixelYourSite;
3
+
4
+
5
+ class EventsWoo implements EventsFactory {
6
+
7
+ private $events = array(
8
+ //"woo_frequent_shopper",
9
+ //"woo_vip_client",
10
+ //"woo_big_whale",
11
+ "woo_view_content",
12
+ //"woo_view_content_for_category",
13
+ "woo_view_category",
14
+ "woo_view_item_list",
15
+ //"woo_view_item_list_single",
16
+ //"woo_view_item_list_search",
17
+ //"woo_view_item_list_shop",
18
+ //"woo_view_item_list_tag",
19
+ "woo_add_to_cart_on_cart_page",
20
+ //"woo_add_to_cart_on_cart_page_category",
21
+ "woo_add_to_cart_on_checkout_page",
22
+ //"woo_add_to_cart_on_checkout_page_category",
23
+ "woo_initiate_checkout",
24
+ //"woo_initiate_checkout_category",
25
+ "woo_purchase",
26
+ //"woo_initiate_set_checkout_option",
27
+ //"woo_initiate_checkout_progress_f",
28
+ //"woo_initiate_checkout_progress_l",
29
+ //"woo_initiate_checkout_progress_e",
30
+ //"woo_initiate_checkout_progress_o",
31
+ "woo_remove_from_cart",
32
+ "woo_add_to_cart_on_button_click",
33
+ //"woo_affiliate",
34
+ //"woo_paypal",
35
+ //"woo_select_content_category",
36
+ //"woo_select_content_single",
37
+ //"woo_select_content_search",
38
+ //"woo_select_content_shop",
39
+ // "woo_select_content_tag",
40
+ );
41
+ public $doingAMP = false;
42
+
43
+
44
+ private static $_instance;
45
+
46
+ public static function instance() {
47
+
48
+ if ( is_null( self::$_instance ) ) {
49
+ self::$_instance = new self();
50
+ }
51
+
52
+ return self::$_instance;
53
+
54
+ }
55
+
56
+ private function __construct() {
57
+
58
+ }
59
+
60
+ function getCount()
61
+ {
62
+ $size = 0;
63
+ if(!$this->isEnabled()) {
64
+ return 0;
65
+ }
66
+ foreach ($this->events as $event) {
67
+ if($this->isActive($event)){
68
+ $size++;
69
+ }
70
+ }
71
+ if(PYS()->getOption( 'woo_complete_registration_enabled' ))
72
+ $size++;
73
+ return $size;
74
+ }
75
+
76
+ function isEnabled()
77
+ {
78
+ return isWooCommerceActive() && PYS()->getOption( 'woo_enabled' );
79
+ }
80
+
81
+ function getOptions() {
82
+
83
+ if($this->isEnabled()) {
84
+ global $post;
85
+ $data = array(
86
+ 'enabled' => true,
87
+ 'addToCartOnButtonEnabled' => PYS()->getOption( 'woo_add_to_cart_enabled' ) && PYS()->getOption( 'woo_add_to_cart_on_button_click' ),
88
+ 'addToCartOnButtonValueEnabled' => PYS()->getOption( 'woo_add_to_cart_value_enabled' ),
89
+ 'addToCartOnButtonValueOption' => PYS()->getOption( 'woo_add_to_cart_value_option' ),
90
+ 'singleProductId' => isWooCommerceActive() && is_singular( 'product' ) ? $post->ID : null,
91
+ 'removeFromCartSelector' => isWooCommerceVersionGte( '3.0.0' )
92
+ ? 'form.woocommerce-cart-form .remove'
93
+ : '.cart .product-remove .remove'
94
+ );
95
+
96
+ return $data;
97
+ } else {
98
+ return array(
99
+ 'enabled' => false,
100
+ );
101
+ }
102
+
103
+ }
104
+
105
+ function isReadyForFire($event)
106
+ {
107
+ switch ($event) {
108
+ case 'woo_add_to_cart_on_button_click': {
109
+ return PYS()->getOption( 'woo_add_to_cart_enabled' ) && PYS()->getOption( 'woo_add_to_cart_on_button_click' );
110
+ }
111
+
112
+
113
+ case 'woo_remove_from_cart': {
114
+ return PYS()->getOption( 'woo_remove_from_cart_enabled') && is_cart();
115
+ }
116
+
117
+
118
+ case 'woo_purchase' : {
119
+ if(PYS()->getOption( 'woo_purchase_enabled' ) && is_order_received_page() &&
120
+ isset( $_REQUEST['key'] ) && $_REQUEST['key'] != "" ) {
121
+ $order_key = sanitize_key($_REQUEST['key']);
122
+ $order_id = (int) wc_get_order_id_by_order_key( $order_key );
123
+
124
+ $order = wc_get_order($order_id);
125
+ if(!$order) return false;
126
+ $status = "wc-".$order->get_status("edit");
127
+
128
+ $disabledStatuses = (array)PYS()->getOption("woo_order_purchase_disabled_status");
129
+
130
+ if( in_array($status,$disabledStatuses)) {
131
+ return false;
132
+ }
133
+ return true;
134
+ }
135
+ return false;
136
+ }
137
+ case 'woo_view_content' : {
138
+ return PYS()->getOption( 'woo_view_content_enabled' ) && is_product();
139
+ }
140
+ case 'woo_view_category': {
141
+ return PYS()->getOption( 'woo_view_category_enabled' ) && is_tax( 'product_cat' );
142
+ }
143
+ case 'woo_view_item_list': {
144
+ return PYS()->getOption( 'woo_view_item_list_enabled' ) && is_tax( 'product_cat' );
145
+ }
146
+ case 'woo_add_to_cart_on_cart_page': {
147
+ return PYS()->getOption( 'woo_add_to_cart_enabled' ) &&
148
+ PYS()->getOption( 'woo_add_to_cart_on_cart_page' ) &&
149
+ is_cart();
150
+ }
151
+ case 'woo_add_to_cart_on_checkout_page': {
152
+ return PYS()->getOption( 'woo_add_to_cart_enabled' ) && PYS()->getOption( 'woo_add_to_cart_on_checkout_page' )
153
+ && is_checkout() && ! is_wc_endpoint_url();
154
+ }
155
+
156
+ case 'woo_initiate_checkout': {
157
+ return PYS()->getOption( 'woo_initiate_checkout_enabled' ) && is_checkout() && ! is_wc_endpoint_url();
158
+ }
159
+
160
+ }
161
+ return false;
162
+ }
163
+
164
+ function getEvent($event)
165
+ {
166
+ switch ($event) {
167
+ case 'woo_remove_from_cart':{
168
+ $event = new GroupedEvent($event,EventTypes::$DYNAMIC);
169
+ return $event;
170
+ }
171
+
172
+ case 'woo_initiate_checkout':
173
+ case 'woo_add_to_cart_on_checkout_page':
174
+ case 'woo_add_to_cart_on_cart_page':
175
+ case 'woo_view_category':
176
+ case 'woo_view_item_list':
177
+ case 'woo_view_content':
178
+ return new SingleEvent($event,EventTypes::$STATIC);
179
+
180
+ case 'woo_add_to_cart_on_button_click':
181
+ return new SingleEvent($event,EventTypes::$DYNAMIC);
182
+ case 'woo_purchase' : {
183
+ $events = array();
184
+ $order_key = sanitize_key($_REQUEST['key']);
185
+ $order_id = (int) wc_get_order_id_by_order_key( $order_key );
186
+ if ( PYS()->getOption( 'woo_purchase_on_transaction' ) && get_post_meta( $order_id, '_pys_purchase_event_fired', true ) ) {
187
+ return array();
188
+ }
189
+ update_post_meta( $order_id, '_pys_purchase_event_fired', true );
190
+ $events[] = new SingleEvent($event,EventTypes::$STATIC);
191
+
192
+ // add child event complete_registration
193
+ if(PYS()->getOption( 'woo_complete_registration_enabled' )) {
194
+ $events[] = new SingleEvent('woo_complete_registration',EventTypes::$STATIC);
195
+ }
196
+
197
+
198
+ return $events;
199
+ }
200
+ }
201
+ error_log("Not handle event ".$event);
202
+ return null;
203
+ }
204
+
205
+ private function isActive($event)
206
+ {
207
+ switch ($event) {
208
+ case 'woo_add_to_cart_on_button_click': {
209
+ return PYS()->getOption( 'woo_add_to_cart_enabled' ) && PYS()->getOption( 'woo_add_to_cart_on_button_click' );
210
+ }
211
+
212
+ case 'woo_remove_from_cart': {
213
+ return PYS()->getOption( 'woo_remove_from_cart_enabled') ;
214
+ }
215
+
216
+ case 'woo_purchase' : {
217
+ return PYS()->getOption( 'woo_purchase_enabled' );
218
+ }
219
+
220
+
221
+ case 'woo_view_content' : {
222
+ return PYS()->getOption( 'woo_view_content_enabled' ) ;
223
+ }
224
+ case 'woo_view_category': {
225
+ return PYS()->getOption( 'woo_view_category_enabled' ) ;
226
+ }
227
+
228
+ case 'woo_initiate_checkout': {
229
+ return PYS()->getOption( 'woo_initiate_checkout_enabled' );
230
+ }
231
+
232
+ }
233
+ return false;
234
+ }
235
+ private function getWooCartActiveCategories($activeIds) {
236
+ $fireForCategory = array();
237
+ foreach (WC()->cart->cart_contents as $cart_item_key => $cart_item) {
238
+ $_product = wc_get_product( $cart_item['product_id'] );
239
+ if(!$_product) continue;
240
+ $productCat = $_product->get_category_ids();
241
+ foreach ($activeIds as $key => $value) {
242
+ if(in_array($key,$productCat)) {
243
+ $fireForCategory[] = $key;
244
+ }
245
+ }
246
+ }
247
+ return array_unique($fireForCategory);
248
+ }
249
+
250
+ private function getWooOrderActiveCategories($orderId,$activeIds) {
251
+ $order = new \WC_Order( $orderId );
252
+
253
+ $fireForCategory = array();
254
+ foreach ($order->get_items() as $item) {
255
+ $_product = wc_get_product( $item->get_product_id() );
256
+ if(!$_product) continue;
257
+ $productCat = $_product->get_category_ids();
258
+ foreach ($activeIds as $key => $value) {
259
+ if(in_array($key,$productCat)) { // fire initiate_checkout for all category pixel
260
+ $fireForCategory[] = $key;
261
+ }
262
+ }
263
+ }
264
+ return array_unique($fireForCategory);
265
+ }
266
+
267
+ function getWooCustomerTotals(){
268
+ return PYS()->getEventsManager()->getWooCustomerTotals();
269
+ }
270
+
271
+ function getEvents() {
272
+ return $this->events;
273
+ }
274
+ }
275
+
276
+ /**
277
+ * @return EventsWoo
278
+ */
279
+ function EventsWoo() {
280
+ return EventsWoo::instance();
281
+ }
282
+
283
+ EventsWoo();
includes/events/interface-events.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace PixelYourSite;
3
+
4
+ interface EventsFactory {
5
+
6
+
7
+ function getCount();
8
+ function isEnabled();
9
+ function getOptions();
10
+
11
+ function getEvents();
12
+ /**
13
+ * Check is event ready for fire
14
+ * @param $event
15
+ * @return bool
16
+ */
17
+ function isReadyForFire($event);
18
+
19
+ /**
20
+ * @param String $event
21
+ * @return SingleEvent
22
+ */
23
+ function getEvent($event);
24
+ }
includes/functions-common.php CHANGED
@@ -688,9 +688,12 @@ function sanitizeParams( $params ) {
688
  foreach ( $params as $key => $value ) {
689
 
690
  // skip empty (but not zero)
691
- if ( ! isset( $value ) && ! is_numeric( $value ) ) {
692
- continue;
693
- }
 
 
 
694
 
695
  $key = sanitizeKey( $key );
696
 
@@ -701,7 +704,7 @@ function sanitizeParams( $params ) {
701
  } elseif ( is_bool( $value ) ) {
702
  $sanitized[ $key ] = (bool) $value;
703
  } else {
704
- $sanitized[ $key ] = html_entity_decode( $value );
705
  }
706
 
707
  }
@@ -1014,4 +1017,68 @@ function getPysCurrencySymbols() {
1014
  'ZAR' => '&#82;',
1015
  'ZMW' => 'ZK',
1016
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1017
  }
688
  foreach ( $params as $key => $value ) {
689
 
690
  // skip empty (but not zero)
691
+ if ( ! isset( $value ) ||
692
+ (is_string($value) && $value == "") ||
693
+ (is_array($value) && count($value) == 0)
694
+ ) {
695
+ continue;
696
+ }
697
 
698
  $key = sanitizeKey( $key );
699
 
704
  } elseif ( is_bool( $value ) ) {
705
  $sanitized[ $key ] = (bool) $value;
706
  } else {
707
+ $sanitized[ $key ] = stripslashes(htmlentities( $value ));
708
  }
709
 
710
  }
1017
  'ZAR' => '&#82;',
1018
  'ZMW' => 'ZK',
1019
  );
1020
+ }
1021
+
1022
+ function getStandardParams() {
1023
+ global $post;
1024
+ $cpt = get_post_type();
1025
+ $params = array(
1026
+ 'page_title' => "",
1027
+ 'post_type' => $cpt,
1028
+ 'post_id' => "",
1029
+ 'event_url' => getCurrentPageUrl(),
1030
+ 'user_role' => getUserRoles(),
1031
+ 'plugin' => "PixelYourSite"
1032
+ );
1033
+
1034
+
1035
+ if(is_singular( 'post' )) {
1036
+ $params['page_title'] = $post->post_title;
1037
+ $params['post_id'] = $post->ID;
1038
+
1039
+ } elseif( is_singular( 'page' ) || is_home()) {
1040
+ $params['post_type'] = 'page';
1041
+ $params['post_id'] = is_home() ? null : $post->ID;
1042
+ $params['page_title'] = is_home() == true ? get_bloginfo( 'name' ) : $post->post_title;
1043
+
1044
+ } elseif (isWooCommerceActive() && is_shop()) {
1045
+ $page_id = (int) wc_get_page_id( 'shop' );
1046
+ $params['post_type'] = 'page';
1047
+ $params['post_id'] = $page_id;
1048
+ $params['page_title'] = get_the_title( $page_id );
1049
+
1050
+ } elseif ( is_category() ) {
1051
+ $cat = get_query_var( 'cat' );
1052
+ $term = get_category( $cat );
1053
+ $params['post_type'] = 'category';
1054
+ $params['post_id'] = $cat;
1055
+ $params['page_title'] = $term->name;
1056
+
1057
+ } elseif ( is_tag() ) {
1058
+ $slug = get_query_var( 'tag' );
1059
+ $term = get_term_by( 'slug', $slug, 'post_tag' );
1060
+ $params['post_type'] = 'tag';
1061
+ $params['post_id'] = $term->term_id;
1062
+ $params['page_title'] = $term->name;
1063
+
1064
+ } elseif (is_tax()) {
1065
+ $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
1066
+ $params['post_type'] = get_query_var( 'taxonomy' );
1067
+ if ( $term ) {
1068
+ $params['post_id'] = $term->term_id;
1069
+ $params['page_title'] = $term->name;
1070
+ }
1071
+
1072
+ } elseif ((isWooCommerceActive() && $cpt == 'product') ||
1073
+ (isEddActive() && $cpt == 'download') ) {
1074
+ $params['page_title'] = $post->post_title;
1075
+ $params['post_id'] = $post->ID;
1076
+
1077
+ } else if ($post instanceof \WP_Post) {
1078
+ $params['page_title'] = $post->post_title;
1079
+ $params['post_id'] = $post->ID;
1080
+ }
1081
+
1082
+
1083
+ return $params;
1084
  }
includes/functions-edd.php CHANGED
@@ -13,9 +13,9 @@ function getEddPaymentKey() {
13
 
14
  if ( isset( $_GET['payment_key'] ) ) {
15
  return urldecode( $_GET['payment_key'] );
16
- } else if ( $session ) {
17
  return $session['purchase_key'];
18
- } elseif ( $edd_receipt_args['payment_key'] ) {
19
  return $edd_receipt_args['payment_key'];
20
  } else {
21
  return false;
13
 
14
  if ( isset( $_GET['payment_key'] ) ) {
15
  return urldecode( $_GET['payment_key'] );
16
+ } else if ( $session && isset($session['purchase_key']) ) {
17
  return $session['purchase_key'];
18
+ } elseif ( $edd_receipt_args && isset($edd_receipt_args['payment_key']) && $edd_receipt_args['payment_key'] ) {
19
  return $edd_receipt_args['payment_key'];
20
  } else {
21
  return false;
includes/options_defaults.json CHANGED
@@ -75,5 +75,33 @@
75
  "woo_purchase_value_cog": "",
76
  "woo_content_value_cog": "",
77
  "woo_add_to_cart_value_cog": "",
78
- "woo_initiate_checkout_value_cog": ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  }
75
  "woo_purchase_value_cog": "",
76
  "woo_content_value_cog": "",
77
  "woo_add_to_cart_value_cog": "",
78
+ "woo_initiate_checkout_value_cog": "",
79
+
80
+ "signal_events_enabled": true,
81
+ "signal_page_scroll_enabled": false,
82
+ "signal_page_scroll_value": 50,
83
+ "signal_time_on_page_enabled": false,
84
+ "signal_time_on_page_value" : 30,
85
+ "signal_form_enabled": true,
86
+ "signal_download_enabled": true,
87
+ "signal_comment_enabled": true,
88
+
89
+ "search_event_enabled": true,
90
+ "fdp_enabled": true,
91
+ "edd_purchase_enabled": true,
92
+ "edd_initiate_checkout_enabled": true,
93
+ "edd_remove_from_cart_enabled": false,
94
+ "edd_add_to_cart_enabled": true,
95
+ "edd_view_content_enabled": true,
96
+ "edd_view_category_enabled": true,
97
+
98
+
99
+ "woo_complete_registration_enabled": false,
100
+ "woo_purchase_enabled": true,
101
+ "woo_initiate_checkout_enabled": true,
102
+ "woo_remove_from_cart_enabled": false,
103
+ "woo_add_to_cart_enabled": true,
104
+ "woo_view_content_enabled": true,
105
+ "woo_view_category_enabled": true
106
+
107
  }
includes/options_fields.json CHANGED
@@ -64,5 +64,31 @@
64
  "woo_purchase_value_cog": "radio",
65
  "woo_content_value_cog": "radio",
66
  "woo_add_to_cart_value_cog": "radio",
67
- "woo_initiate_checkout_value_cog": "radio"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  }
64
  "woo_purchase_value_cog": "radio",
65
  "woo_content_value_cog": "radio",
66
  "woo_add_to_cart_value_cog": "radio",
67
+ "woo_initiate_checkout_value_cog": "radio",
68
+
69
+ "signal_events_enabled": "checkbox",
70
+ "signal_page_scroll_enabled": "checkbox",
71
+ "signal_page_scroll_value": "number",
72
+ "signal_time_on_page_enabled": "checkbox",
73
+ "signal_time_on_page_value" : "number",
74
+ "signal_form_enabled": "checkbox",
75
+ "signal_download_enabled": "checkbox",
76
+ "signal_comment_enabled": "checkbox",
77
+
78
+ "search_event_enabled": "checkbox",
79
+ "fdp_enabled": "checkbox",
80
+ "edd_purchase_enabled":"checkbox",
81
+ "edd_initiate_checkout_enabled":"checkbox",
82
+ "edd_remove_from_cart_enabled":"checkbox",
83
+ "edd_add_to_cart_enabled":"checkbox",
84
+ "edd_view_content_enabled":"checkbox",
85
+ "edd_view_category_enabled":"checkbox",
86
+
87
+ "woo_complete_registration_enabled": "checkbox",
88
+ "woo_purchase_enabled": "checkbox",
89
+ "woo_initiate_checkout_enabled": "checkbox",
90
+ "woo_remove_from_cart_enabled": "checkbox",
91
+ "woo_add_to_cart_enabled": "checkbox",
92
+ "woo_view_content_enabled": "checkbox",
93
+ "woo_view_category_enabled": "checkbox"
94
  }
includes/views/html-main-edd.php CHANGED
@@ -41,78 +41,24 @@ if ( ! defined( 'ABSPATH' ) ) {
41
  </div>
42
  </div>
43
 
44
- <!-- Semafors -->
45
  <div class="card card-static">
46
  <div class="card-header">
47
- Advanced Data Tracking
48
  </div>
49
  <div class="card-body">
50
  <div class="row">
51
- <div class="col-11">
52
- <div class="indicator">ON</div>
53
- <h4 class="indicator-label">Facebook Dynamic Product Ads</h4>
54
- </div>
55
- <div class="col-1">
56
- <?php renderPopoverButton( 'edd_facebook_am_params' ); ?>
57
- </div>
58
- </div>
59
- <div class="row">
60
- <div class="col-11">
61
- <div class="indicator">ON</div>
62
- <h4 class="indicator-label">Facebook & Pinterest parameters</h4>
63
- </div>
64
- <div class="col-1">
65
- <?php renderPopoverButton( 'edd_facebook_and_pinterest_params' ); ?>
66
- </div>
67
- </div>
68
- <div class="row">
69
- <div class="col-11">
70
- <div class="indicator indicator-off">OFF</div>
71
- <h4 class="indicator-label">Facebook & Pinterest PRO parameters</h4>
72
- </div>
73
- <div class="col-1">
74
- <?php renderPopoverButton( 'edd_facebook_and_pinterest_pro_params' ); ?>
75
- </div>
76
- </div>
77
- <div class="row">
78
- <div class="col-11">
79
- <div class="indicator">ON</div>
80
- <h4 class="indicator-label">Facebook & Pinterest parameters for Purchase event</h4>
81
- </div>
82
- <div class="col-1">
83
- <?php renderPopoverButton( 'edd_facebook_and_pinterest_purchase_params' ); ?>
84
- </div>
85
- </div>
86
- <div class="row">
87
- <div class="col-11">
88
- <div class="indicator indicator-off">OFF</div>
89
- <h4 class="indicator-label">Facebook & Pinterest PRO parameters for Purchase event</h4>
90
- </div>
91
- <div class="col-1">
92
- <?php renderPopoverButton( 'edd_facebook_and_pinterest_purchase_pro_params' ); ?>
93
- </div>
94
- </div>
95
- <div class="row">
96
- <div class="col-11">
97
- <div class="indicator">ON</div>
98
- <h4 class="indicator-label">Google Analytics Enhanced Ecommerce</h4>
99
- </div>
100
- <div class="col-1">
101
- <?php renderPopoverButton( 'edd_ga_enhanced_ecommerce_params' ); ?>
102
- </div>
103
- </div>
104
- <div class="row">
105
- <div class="col-11">
106
- <div class="indicator indicator-off">OFF</div>
107
- <h4 class="indicator-label">Google Ads Tag with Dynamic Remarketing Support</h4>
108
- </div>
109
- <div class="col-1">
110
- <?php renderPopoverButton( 'edd_google_ads_enhanced_ecommerce_params' ); ?>
111
  </div>
112
  </div>
113
  </div>
114
  </div>
115
 
 
116
  <!-- AddToCart -->
117
  <div class="card card-static">
118
  <div class="card-header">
@@ -343,8 +289,8 @@ e&utm_campaign=pro-feature' ); ?>
343
 
344
  <!-- Purchase -->
345
  <div class="card">
346
- <div class="card-header">
347
- Track Purchases <?php cardCollapseBtn(); ?>
348
  </div>
349
  <div class="card-body">
350
 
@@ -454,8 +400,8 @@ e&utm_campaign=pro-feature' ); ?>
454
 
455
  <!-- InitiateCheckout -->
456
  <div class="card">
457
- <div class="card-header">
458
- Track the Checkout Page <?php cardCollapseBtn(); ?>
459
  </div>
460
  <div class="card-body">
461
 
@@ -549,8 +495,8 @@ e&utm_campaign=pro-feature' ); ?>
549
 
550
  <!-- RemoveFromCart -->
551
  <div class="card">
552
- <div class="card-header">
553
- Track remove from cart <?php cardCollapseBtn(); ?>
554
  </div>
555
  <div class="card-body">
556
 
@@ -611,8 +557,8 @@ e&utm_campaign=pro-feature' ); ?>
611
 
612
  <!-- AddToCart -->
613
  <div class="card">
614
- <div class="card-header">
615
- Track add to cart <?php cardCollapseBtn(); ?>
616
  </div>
617
  <div class="card-body">
618
 
@@ -706,8 +652,8 @@ e&utm_campaign=pro-feature' ); ?>
706
 
707
  <!-- ViewContent -->
708
  <div class="card">
709
- <div class="card-header">
710
- Track product pages <?php cardCollapseBtn(); ?>
711
  </div>
712
  <div class="card-body">
713
 
@@ -808,8 +754,8 @@ e&utm_campaign=pro-feature' ); ?>
808
 
809
  <!-- ViewCategory -->
810
  <div class="card">
811
- <div class="card-header">
812
- Track product category pages <?php cardCollapseBtn(); ?>
813
  </div>
814
  <div class="card-body">
815
 
41
  </div>
42
  </div>
43
 
 
44
  <div class="card card-static">
45
  <div class="card-header">
46
+ About EDD Events Parameters
47
  </div>
48
  <div class="card-body">
49
  <div class="row">
50
+ <div class="col">
51
+ <p>All events get the following parameters for all the tags: <i>page_title, post_type, post_id, event_URL, user_role, plugin, event_time (pro), event_day (pro), event_month (pro), traffic_source (pro), UTMs (pro).</i></p>
52
+ <p>The Purchase event will have the following extra-parameters: <i>category_name, num_items, tags, total (pro), transactions_count (pro), tax (pro), predicted_ltv (pro), average_order (pro), coupon_used (pro), coupon_code (pro), shipping (pro), shipping_cost (pro).</i></p>
53
+ <p>The Facebook Pixel events are Dynamic Ads ready.</p>
54
+ <p>The Google Analytics events track the data Enhanced Ecommerce or Monetization (GA4).</p>
55
+ <p>The Pinterest events have the required data for Dynamic Remarketing.</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  </div>
57
  </div>
58
  </div>
59
  </div>
60
 
61
+
62
  <!-- AddToCart -->
63
  <div class="card card-static">
64
  <div class="card-header">
289
 
290
  <!-- Purchase -->
291
  <div class="card">
292
+ <div class="card-header has_switch">
293
+ <?php PYS()->render_switcher_input('edd_purchase_enabled');?>Track Purchases <?php cardCollapseBtn(); ?>
294
  </div>
295
  <div class="card-body">
296
 
400
 
401
  <!-- InitiateCheckout -->
402
  <div class="card">
403
+ <div class="card-header has_switch">
404
+ <?php PYS()->render_switcher_input('edd_initiate_checkout_enabled');?>Track the Checkout Page <?php cardCollapseBtn(); ?>
405
  </div>
406
  <div class="card-body">
407
 
495
 
496
  <!-- RemoveFromCart -->
497
  <div class="card">
498
+ <div class="card-header has_switch">
499
+ <?php PYS()->render_switcher_input('edd_remove_from_cart_enabled');?>Track remove from cart <?php cardCollapseBtn(); ?>
500
  </div>
501
  <div class="card-body">
502
 
557
 
558
  <!-- AddToCart -->
559
  <div class="card">
560
+ <div class="card-header has_switch">
561
+ <?php PYS()->render_switcher_input('edd_add_to_cart_enabled');?>Track add to cart <?php cardCollapseBtn(); ?>
562
  </div>
563
  <div class="card-body">
564
 
652
 
653
  <!-- ViewContent -->
654
  <div class="card">
655
+ <div class="card-header has_switch">
656
+ <?php PYS()->render_switcher_input('edd_view_content_enabled');?>Track product pages <?php cardCollapseBtn(); ?>
657
  </div>
658
  <div class="card-body">
659
 
754
 
755
  <!-- ViewCategory -->
756
  <div class="card">
757
+ <div class="card-header has_switch">
758
+ <?php PYS()->render_switcher_input('edd_view_category_enabled');?>Track product category pages <?php cardCollapseBtn(); ?>
759
  </div>
760
  <div class="card-body">
761
 
includes/views/html-main-events.php CHANGED
@@ -41,6 +41,23 @@ $new_event_url = buildAdminUrl( 'pixelyoursite', 'events', 'edit' );
41
  </div>
42
  </div>
43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  <div class="card card-static">
45
  <div class="card-header">
46
  Events List
41
  </div>
42
  </div>
43
 
44
+ <div class="card card-static">
45
+ <div class="card-header">
46
+ About Parameters
47
+ </div>
48
+ <div class="card-body">
49
+ <div class="row">
50
+ <div class="col">
51
+ <p>All the events you configure here will automatically get the following parameters for all the tags:
52
+ <i>page_title, post_type, post_id, event_URL, user_role, plugin, event_time (pro), event_day (pro), event_month (pro), traffic_source (pro), UTMs (pro).</i></p>
53
+ <p>Exception: Google Analytics Universal will not get all these parameters. Only <i>event_time (pro), event_day (pro), event_month (pro), traffic_source (pro)</i> are sent as custom dimensions.</p>
54
+ <p>You can add other parameters when you configure the events.</p>
55
+ </div>
56
+ </div>
57
+ </div>
58
+ </div>
59
+
60
+
61
  <div class="card card-static">
62
  <div class="card-header">
63
  Events List
includes/views/html-main-general.php CHANGED
@@ -144,282 +144,217 @@ if ( ! defined( 'ABSPATH' ) ) {
144
  </div>
145
  </div>
146
 
147
- <div class="card" >
148
- <div class="card-header" style="background-color:#cd6c46;color:white;">
149
- Dynamic Ads for Blog Setup <?php cardCollapseBtn(); ?>
150
  </div>
151
- <div class="card-body">
152
- <div class="row mt-3">
153
- <div class="col-11">
154
- This setup will help you to run Facebook Dynamic Product Ads for your blog content.
155
- </div>
156
- </div>
157
- <div class="row mt-3">
158
- <div class="col">
159
- <a href="https://www.pixelyoursite.com/facebook-dynamic-product-ads-for-wordpress" target="_blank">Click here to learn how to do it</a>
160
- </div>
161
- </div>
162
- <?php if ( Facebook()->enabled() ) : ?>
163
- <hr/>
164
- <div class="row mt-3">
165
- <div class="col">
166
- <?php Facebook()->render_switcher_input( 'fdp_use_own_pixel_id',false,true ); ?>
167
- <h4 class="switcher-label">
168
- Fire this events just for this Pixel ID with the
169
- <a href="https://www.pixelyoursite.com/?utm_source=pixelyoursite-free-plugin&utm_medium=plugin&utm_campaign=free-plugin-ids" target="_blank">pro version</a>
170
- </h4>
171
- </div>
172
- </div>
173
- <div class="row mt-3">
174
- <div class="col-6">
175
- <label>Facebook Pixel ID:</label>
176
- <?php Facebook()->render_text_input( 'fdp_pixel_id',"",true ); ?>
177
- </div>
178
- </div>
179
-
180
- <hr/>
 
181
 
182
- <div class="row mt-3">
183
- <div class="col">
184
- <label>Content_type</label><?php
185
- $options = array(
186
- 'product' => 'Product',
187
- '' => 'Empty'
188
- );
189
- Facebook()->render_select_input( 'fdp_content_type',$options ); ?>
190
- </div>
191
- </div>
 
 
 
 
 
 
192
 
193
- <div class="row mt-3">
 
 
 
 
 
 
 
194
  <div class="col">
195
- <label>Currency:</label><?php
196
- $options = array();
197
- $cur = getPysCurrencySymbols();
198
- foreach ($cur as $key => $val) {
199
- $options[$key]=$key;
200
- }
201
- Facebook()->render_select_input( 'fdp_currency',$options ); ?>
202
  </div>
203
  </div>
 
204
 
205
- <div class="row mt-3">
206
- <div class="col">
207
- <?php Facebook()->render_switcher_input( 'fdp_view_content_enabled' ); ?>
208
- <h4 class="switcher-label">Enable the ViewContent on every blog page</h4>
209
- </div>
210
- </div>
211
- <div class="row mt-3">
212
  <div class="col">
213
- <?php Facebook()->render_switcher_input( 'fdp_view_category_enabled' ); ?>
214
- <h4 class="switcher-label">Enable the ViewCategory on every blog categories page</h4>
215
- </div>
216
- </div>
217
- <div class="row mt-3">
218
- <div class="col-11">
219
- <?php Facebook()->render_switcher_input( 'fdp_add_to_cart_enabled' ); ?>
220
- <h4 class="switcher-label">Enable the AddToCart event on every blog page</h4>
221
- </div>
222
-
223
- <div class="col-11 form-inline col-offset-left">
224
- <label>Value:</label>
225
- <?php Facebook()->render_number_input( 'fdp_add_to_cart_value',"Value" ); ?>
226
- </div>
227
-
228
- <div class="col-11 form-inline col-offset-left">
229
- <label>Fire the AddToCart when scroll to</label>
230
- <?php Facebook()->render_number_input( 'fdp_add_to_cart_event_fire_scroll',50 ); ?>
231
- <label>%</label>
232
- </div>
233
- </div>
234
- <div class="row mt-3">
235
- <div class="col-11">
236
- <?php Facebook()->render_switcher_input( 'fdp_purchase_enabled' ); ?>
237
- <h4 class="switcher-label">Enable the Purchase event on every blog page</h4>
238
- </div>
239
- <div class="col-11 form-inline col-offset-left">
240
- <label>Value:</label>
241
- <?php Facebook()->render_number_input( 'fdp_purchase_value',"Value" ); ?>
242
- </div>
243
- <div class="col-11 form-inline col-offset-left">
244
- <label>Fire the Purchase event</label>
245
-
246
- <?php
247
- $options = array(
248
- 'scroll_pos' => 'Page Scroll',
249
- 'comment' => 'User commented',
250
- 'css_click' => 'Click on CSS selector',
251
- //Default event fires
252
- );
253
- Facebook()->render_select_input( 'fdp_purchase_event_fire',$options ); ?>
254
- <span id="fdp_purchase_event_fire_scroll_block">
255
- <?php Facebook()->render_number_input( 'fdp_purchase_event_fire_scroll',50 ); ?> <span>%</span>
256
- </span>
257
-
258
- <?php Facebook()->render_text_input( 'fdp_purchase_event_fire_css',"CSS selector"); ?>
259
  </div>
260
  </div>
261
- <div class="row mt-5">
262
- <div class="col">
263
- <strong>You need to upload your blog posts into a Facebook Product Catalog.</strong> You can do this with our dedicated plugin:
264
- <a href="https://www.pixelyoursite.com/wordpress-feed-facebook-dpa" target="_blank">Click Here</a>
265
  </div>
266
  </div>
267
  <?php endif; ?>
268
- </div>
269
- </div>
270
 
271
- <h2 class="section-title">Global Events</h2>
272
-
273
- <!-- GeneralEvent -->
274
- <div class="card">
275
- <div class="card-header">
276
- The GeneralEvent <?php cardCollapseBtn(); ?>
277
- </div>
278
- <div class="card-body">
279
- <div class="row">
280
- <div class="col-11">
281
- <p>The GeneralEvent will be fired on all your website pages, tracking important information as
282
- parameters. Use it on Facebook or Pinterest for Custom Audiences and Custom Conversions.</p>
283
- </div>
284
- <div class="col-1">
285
- <?php renderPopoverButton( 'general_event' ); ?>
286
- </div>
287
- </div>
288
 
289
- <?php if ( Facebook()->enabled() ) : ?>
290
  <div class="row">
291
  <div class="col">
292
- <?php Facebook()->render_switcher_input( 'general_event_enabled' ); ?>
293
- <h4 class="switcher-label">Enable on Facebook</h4>
294
  </div>
295
  </div>
296
- <?php endif; ?>
297
 
298
- <?php if ( Pinterest()->enabled() ) : ?>
299
  <div class="row">
300
  <div class="col">
301
- <?php Pinterest()->render_switcher_input( 'general_event_enabled' ); ?>
302
- <h4 class="switcher-label">Enable on Pinterest</h4>
303
- <?php Pinterest()->renderAddonNotice(); ?>
304
  </div>
305
  </div>
306
  <?php endif; ?>
307
 
308
- <div class="row">
 
 
 
309
  <div class="col">
310
- <?php renderDummySwitcher(); ?>
311
- <h4 class="switcher-label">Enable on Google Ads</h4>
312
- <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature') ?>
 
 
313
  </div>
314
  </div>
315
 
316
- <?php if ( Bing()->enabled() ) : ?>
317
- <div class="row">
318
- <div class="col">
319
- <?php Bing()->render_switcher_input( 'general_event_enabled' ); ?>
320
- <h4 class="switcher-label">Enable on Bing</h4>
321
- <?php Bing()->renderAddonNotice(); ?>
322
  </div>
323
  </div>
324
- <?php endif; ?>
325
 
326
- <div class="row my-3">
327
- <div class="col form-inline">
328
- <label>Custom name</label>
329
- <?php PYS()->render_text_input( 'general_event_name' ); ?>
330
- <label>and delay</label>
331
- <?php PYS()->render_number_input( 'general_event_delay' ); ?>
332
- <label>seconds</label>
333
  </div>
334
  </div>
335
 
336
- <div class="row">
337
  <div class="col">
338
- <p>Fire on the following post types:</p>
 
339
  </div>
340
  </div>
341
 
342
- <div class="row">
343
  <div class="col">
344
- <?php PYS()->render_switcher_input( 'general_event_on_posts_enabled' ); ?>
345
- <h4 class="switcher-label">Posts</h4>
 
 
346
  </div>
347
  </div>
348
- <div class="row">
349
  <div class="col">
350
- <?php PYS()->render_switcher_input( 'general_event_on_pages_enabled' ); ?>
351
- <h4 class="switcher-label">Pages</h4>
352
  </div>
353
  </div>
354
- <div class="row">
355
  <div class="col">
356
- <?php PYS()->render_switcher_input( 'general_event_on_tax_enabled' ); ?>
357
- <h4 class="switcher-label">Taxonomies</h4>
 
 
 
 
358
  </div>
359
  </div>
360
 
361
- <?php if ( isWooCommerceActive() ) : ?>
362
-
363
- <div class="row">
364
- <div class="col">
365
- <?php PYS()->render_switcher_input( 'general_event_on_woo_enabled' ); ?>
366
- <h4 class="switcher-label">WooCommerce Products</h4>
367
- </div>
368
  </div>
 
369
 
370
- <?php endif; ?>
371
-
372
- <?php if ( isEddActive() ) : ?>
373
-
374
- <div class="row">
375
- <div class="col">
376
- <?php PYS()->render_switcher_input( 'general_event_on_edd_enabled' ); ?>
377
- <h4 class="switcher-label">Easy Digital Downloads Products</h4>
378
  </div>
379
  </div>
 
380
 
381
- <?php endif; ?>
382
-
383
- <?php foreach ( get_post_types( array( 'public' => true, '_builtin' => false ), 'objects' ) as $post_type ) : ?>
384
-
385
- <?php
386
-
387
- // skip product post type when WC is active
388
- if ( isWooCommerceActive() && $post_type->name == 'product' ) {
389
- continue;
390
- }
391
-
392
- // skip download post type when EDD is active
393
- if ( isEddActive() && $post_type->name == 'download' ) {
394
- continue;
395
- }
396
-
397
- ?>
398
 
399
- <div class="row">
400
- <div class="col">
401
- <?php PYS()->render_switcher_input( "general_event_on_{$post_type->name}_enabled" ); ?>
402
- <h4 class="switcher-label"><?php esc_html_e( ucfirst( $post_type->name ) ); ?></h4>
403
  </div>
404
- </div>
405
 
406
- <?php endforeach; ?>
 
407
 
408
- <?php if ( GA()->enabled() ) : ?>
409
- <div class="row mt-3">
410
- <div class="col">
411
- <p class="mb-0">* The GeneralEvent is not required on Google Analytics, because their script tracks this
412
- type of data by default.</p>
 
413
  </div>
 
414
  </div>
415
- <?php endif; ?>
 
416
  </div>
417
  </div>
418
 
 
419
  <!-- Search -->
420
  <div class="card">
421
- <div class="card-header">
422
- Track Searches <?php cardCollapseBtn(); ?>
423
  </div>
424
  <div class="card-body">
425
  <div class="row">
@@ -427,11 +362,11 @@ if ( ! defined( 'ABSPATH' ) ) {
427
  <p>This event will be fired when a search is performed on your website.</p>
428
  </div>
429
  <div class="col-1">
430
- <?php renderPopoverButton( 'search_event' ); ?>
431
  </div>
432
  </div>
433
 
434
- <?php if ( Facebook()->enabled() ) : ?>
435
  <div class="row">
436
  <div class="col">
437
  <?php Facebook()->render_switcher_input( 'search_event_enabled' ); ?>
@@ -440,7 +375,7 @@ if ( ! defined( 'ABSPATH' ) ) {
440
  </div>
441
  <?php endif; ?>
442
 
443
- <?php if ( GA()->enabled() ) : ?>
444
  <div class="row mb-1">
445
  <div class="col">
446
  <?php GA()->render_switcher_input( 'search_event_enabled' ); ?>
@@ -449,17 +384,17 @@ if ( ! defined( 'ABSPATH' ) ) {
449
  </div>
450
  <div class="row mb-2">
451
  <div class="col col-offset-left">
452
- <?php GA()->render_checkbox_input( 'search_event_non_interactive',
453
- 'Non-interactive event' ); ?>
454
  </div>
455
  </div>
456
- <?php endif; ?>
457
 
458
  <div class="row">
459
  <div class="col">
460
- <?php renderDummySwitcher(); ?>
461
  <h4 class="switcher-label">Enable the search event on Google Ads</h4>
462
- <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature') ?>
463
  </div>
464
  </div>
465
 
@@ -473,471 +408,140 @@ if ( ! defined( 'ABSPATH' ) ) {
473
  </div>
474
  <?php endif; ?>
475
 
476
- <?php if ( Pinterest()->enabled() ) : ?>
477
  <div class="row">
478
  <div class="col">
479
  <?php Pinterest()->render_switcher_input( 'search_event_enabled' ); ?>
480
  <h4 class="switcher-label">Enable the Search event on Pinterest</h4>
481
- <?php Pinterest()->renderAddonNotice(); ?>
482
  </div>
483
  </div>
484
- <?php endif; ?>
485
  </div>
486
  </div>
487
 
488
- <!-- Form -->
489
- <div class="card">
490
- <div class="card-header">
491
- Track Forms <?php cardCollapseBtn(); ?>
492
  </div>
493
  <div class="card-body">
494
-
495
- <div class="row">
496
  <div class="col-11">
497
- <p>This event will be fired when a form is submitted.</p>
498
  </div>
499
- <div class="col-1">
500
- <?php renderPopoverButton( 'form_event' ); ?>
 
 
501
  </div>
502
  </div>
503
-
504
  <?php if ( Facebook()->enabled() ) : ?>
505
- <div class="row">
 
506
  <div class="col">
507
- <?php Facebook()->render_switcher_input( 'form_event_enabled' ); ?>
508
- <h4 class="switcher-label">Enable the Form event on Facebook</h4>
 
 
 
509
  </div>
510
  </div>
511
- <?php endif; ?>
512
-
513
- <?php if ( GA()->enabled() ) : ?>
514
- <div class="row mb-1">
515
- <div class="col">
516
- <?php GA()->render_switcher_input( 'form_event_enabled' ); ?>
517
- <h4 class="switcher-label">Enable the Form event on Google Analytics</h4>
518
  </div>
519
  </div>
520
- <div class="row mb-2">
521
- <div class="col col-offset-left">
522
- <?php GA()->render_checkbox_input( 'form_event_non_interactive',
523
- 'Non-interactive event' ); ?>
524
- </div>
525
- </div>
526
- <?php endif; ?>
527
 
528
- <div class="row">
529
- <div class="col">
530
- <?php renderDummySwitcher(); ?>
531
- <h4 class="switcher-label">Enable the Form event on Google Ads</h4>
532
- <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature') ?>
533
- </div>
534
- </div>
535
 
536
- <?php if ( Pinterest()->enabled() ) : ?>
537
- <div class="row">
538
  <div class="col">
539
- <?php Pinterest()->render_switcher_input( 'form_event_enabled' ); ?>
540
- <h4 class="switcher-label">Enable the Form event on Pinterest</h4>
541
- <?php Pinterest()->renderAddonNotice(); ?>
 
 
 
542
  </div>
543
  </div>
544
- <?php endif; ?>
545
 
546
- <?php if ( Bing()->enabled() ) : ?>
547
- <div class="row">
548
  <div class="col">
549
- <?php Bing()->render_switcher_input( 'form_event_enabled' ); ?>
550
- <h4 class="switcher-label">Enable the Form event on Bing</h4>
551
- <?php Bing()->renderAddonNotice(); ?>
 
 
 
 
552
  </div>
553
  </div>
554
- <?php endif; ?>
555
-
556
- </div>
557
- </div>
558
-
559
- <!-- Comment -->
560
- <div class="card">
561
- <div class="card-header">
562
- Track Comments <?php cardCollapseBtn(); ?>
563
- </div>
564
- <div class="card-body">
565
- <div class="row">
566
- <div class="col-11">
567
- <p>This event will be fired when a comment is posted on your website.</p>
568
- </div>
569
- <div class="col-1">
570
- <?php renderPopoverButton( 'comment_event' ); ?>
571
- </div>
572
- </div>
573
 
574
- <?php if ( Facebook()->enabled() ) : ?>
575
- <div class="row">
576
  <div class="col">
577
- <?php Facebook()->render_switcher_input( 'comment_event_enabled' ); ?>
578
- <h4 class="switcher-label">Enable the Comment event on Facebook</h4>
579
  </div>
580
  </div>
581
- <?php endif; ?>
582
-
583
- <?php if ( GA()->enabled() ) : ?>
584
- <div class="row mb-1">
585
  <div class="col">
586
- <?php GA()->render_switcher_input( 'comment_event_enabled' ); ?>
587
- <h4 class="switcher-label">Enable the Comment event on Google Analytics</h4>
588
- </div>
589
- </div>
590
- <div class="row mb-2">
591
- <div class="col col-offset-left">
592
- <?php GA()->render_checkbox_input( 'comment_event_non_interactive',
593
- 'Non-interactive event' ); ?>
594
  </div>
595
  </div>
596
- <?php endif; ?>
597
-
598
- <div class="row">
599
- <div class="col">
600
- <?php renderDummySwitcher(); ?>
601
- <h4 class="switcher-label">Enable the Comment event on Google Ads</h4>
602
- <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature') ?>
603
- </div>
604
- </div>
605
-
606
- <?php if ( Pinterest()->enabled() ) : ?>
607
- <div class="row">
608
- <div class="col">
609
- <?php Pinterest()->render_switcher_input( 'comment_event_enabled' ); ?>
610
- <h4 class="switcher-label">Enable the Comment event on Pinterest</h4>
611
- <?php Pinterest()->renderAddonNotice(); ?>
612
  </div>
613
- </div>
614
- <?php endif; ?>
615
 
616
- <?php if ( Bing()->enabled() ) : ?>
617
- <div class="row">
618
- <div class="col">
619
- <?php Bing()->render_switcher_input( 'comment_event_enabled' ); ?>
620
- <h4 class="switcher-label">Enable the Comment event on Bing</h4>
621
- <?php Bing()->renderAddonNotice(); ?>
622
  </div>
623
- </div>
624
- <?php endif; ?>
625
-
626
- </div>
627
- </div>
628
 
629
- <!-- DownloadDocs -->
630
- <div class="card">
631
- <div class="card-header">
632
- Track Downloads <?php cardCollapseBtn(); ?>
633
- </div>
634
- <div class="card-body">
635
- <div class="row">
636
- <div class="col-11">
637
- <p>This event will be fired when a file is downloaded. You can configure what file formats will count as
638
- a download.</p>
639
- </div>
640
- <div class="col-1">
641
- <?php renderPopoverButton( 'download_docs_event' ); ?>
642
- </div>
643
- </div>
644
-
645
- <?php if ( Facebook()->enabled() ) : ?>
646
- <div class="row">
647
- <div class="col">
648
- <?php Facebook()->render_switcher_input( 'download_event_enabled' ); ?>
649
- <h4 class="switcher-label">Enable the Download event on Facebook</h4>
650
  </div>
651
  </div>
652
- <?php endif; ?>
653
-
654
-
655
- <div class="row">
656
- <div class="col">
657
- <?php renderDummySwitcher(); ?>
658
- <h4 class="switcher-label">Enable the Download event on Google Ads</h4>
659
- <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature') ?>
660
- </div>
661
- </div>
662
-
663
- <?php if ( Pinterest()->enabled() ) : ?>
664
- <div class="row">
665
- <div class="col">
666
- <?php Pinterest()->render_switcher_input( 'download_event_enabled' ); ?>
667
- <h4 class="switcher-label">Enable the Download event on Pinterest</h4>
668
- <?php Pinterest()->renderAddonNotice(); ?>
669
  </div>
670
- </div>
671
- <?php endif; ?>
672
-
673
- <?php if ( Bing()->enabled() ) : ?>
674
- <div class="row">
675
- <div class="col">
676
- <?php Bing()->render_switcher_input( 'download_event_enabled' ); ?>
677
- <h4 class="switcher-label">Enable the Download event on Bing</h4>
678
- <?php Bing()->renderAddonNotice(); ?>
679
  </div>
680
- </div>
681
- <?php endif; ?>
682
-
683
- <div class="row mt-3">
684
- <div class="col">
685
- <h4 class="label">Extension of files to track as downloads:</h4>
686
- <?php PYS()->render_tags_select_input( 'download_event_extensions' ); ?>
687
- </div>
688
- </div>
689
- </div>
690
- </div>
691
-
692
- <h2 class="section-title mt-3">PRO Events</h2>
693
-
694
- <div class="panel">
695
- <div class="row">
696
- <div class="col text-center">
697
- <p>Thousands of business owners have decided to upgrade to the PRO version already.</p>
698
- <p class="mb-0"><a target="_blank" href="https://www.pixelyoursite.com/free-versus-pro?utm_source=pixelyoursite-free-plugin&utm_medium=plugin&utm_campaign=free-plugin-comparison">Click here for a
699
- FREE versus PRO comparison</a></p>
700
- </div>
701
- </div>
702
- </div>
703
-
704
- <!-- ClickEvent -->
705
- <div class="card card-disabled">
706
- <div class="card-header">
707
- Track Clicks <?php renderProBadge(); ?><?php cardCollapseBtn(); ?>
708
- </div>
709
- <div class="card-body">
710
-
711
- <div class="row">
712
- <div class="col-11">
713
- <p>This event will be fired everytime a click is performed on your website.</p>
714
- </div>
715
- <div class="col-1">
716
- <?php renderPopoverButton( 'click_event' ); ?>
717
- </div>
718
- </div>
719
-
720
- <div class="row">
721
- <div class="col">
722
- <?php renderDummySwitcher(); ?>
723
- <h4 class="switcher-label">Enable the ClickEvent on Facebook</h4>
724
- </div>
725
- </div>
726
-
727
- <div class="row mb-1">
728
- <div class="col">
729
- <?php renderDummySwitcher(); ?>
730
- <h4 class="switcher-label">Enable the ClickEvent on Google Analytics</h4>
731
- </div>
732
- </div>
733
- <div class="row mb-2">
734
- <div class="col col-offset-left">
735
- <?php renderDummyCheckbox( 'Non-interactive event' ); ?>
736
- </div>
737
- </div>
738
-
739
- <div class="row">
740
- <div class="col">
741
- <?php renderDummySwitcher(); ?>
742
- <h4 class="switcher-label">Enable the ClickEvent on Google Ads</h4>
743
- </div>
744
- </div>
745
-
746
- <div class="row">
747
- <div class="col">
748
- <?php renderDummySwitcher(); ?>
749
- <h4 class="switcher-label">Enable the ClickEvent on Pinterest</h4>
750
- </div>
751
- </div>
752
-
753
- <div class="row">
754
- <div class="col">
755
- <?php renderDummySwitcher(); ?>
756
- <h4 class="switcher-label">Enable the ClickEvent on Bing</h4>
757
- </div>
758
- </div>
759
-
760
- </div>
761
- </div>
762
-
763
- <!-- WatchVideo -->
764
- <div class="card card-disabled">
765
- <div class="card-header">
766
- Track Embedded Video Views <?php renderProBadge(); ?><?php cardCollapseBtn(); ?>
767
- </div>
768
- <div class="card-body">
769
-
770
- <div class="row">
771
- <div class="col-11">
772
- <p>This event will be fired when an embedded YouTube or Vimeo video is watched on your website.</p>
773
- </div>
774
- <div class="col-1">
775
- <?php renderPopoverButton( 'watch_video_event' ); ?>
776
- </div>
777
- </div>
778
-
779
- <div class="row">
780
- <div class="col">
781
- <?php renderDummySwitcher(); ?>
782
- <h4 class="switcher-label">Enable the WatchVideo event on Facebook</h4>
783
- </div>
784
- </div>
785
-
786
- <div class="row mb-1">
787
- <div class="col">
788
- <?php renderDummySwitcher(); ?>
789
- <h4 class="switcher-label">Enable the WatchVideo event on Google Analytics</h4>
790
- </div>
791
- </div>
792
- <div class="row mb-2">
793
- <div class="col col-offset-left">
794
- <?php renderDummyCheckbox( 'Non-interactive event' ); ?>
795
- </div>
796
- </div>
797
-
798
- <div class="row">
799
- <div class="col">
800
- <?php renderDummySwitcher(); ?>
801
- <h4 class="switcher-label">Enable the WatchVideo event on Google Ads</h4>
802
- </div>
803
- </div>
804
-
805
- <div class="row">
806
- <div class="col">
807
- <?php renderDummySwitcher(); ?>
808
- <h4 class="switcher-label">Enable the WatchVideo event on Pinterest</h4>
809
- </div>
810
- </div>
811
-
812
- <div class="row">
813
- <div class="col">
814
- <?php renderDummySwitcher(); ?>
815
- <h4 class="switcher-label">Enable the ClickEvent on Bing</h4>
816
- </div>
817
- </div>
818
-
819
- <div class="row mt-3">
820
- <div class="col col-offset-left">
821
- <div class="indicator indicator-off">OFF</div>
822
- <h4 class="indicator-label">YouTube embedded videos</h4>
823
- </div>
824
- </div>
825
- <div class="row">
826
- <div class="col col-offset-left">
827
- <div class="indicator indicator-off">OFF</div>
828
- <h4 class="indicator-label">Vimeo embedded videos</h4>
829
- </div>
830
- </div>
831
-
832
- </div>
833
- </div>
834
-
835
- <!-- CompleteRegistration -->
836
- <div class="card card-disabled">
837
- <div class="card-header">
838
- Track User Sign-ups <?php renderProBadge(); ?><?php cardCollapseBtn(); ?>
839
- </div>
840
- <div class="card-body">
841
-
842
- <div class="row">
843
- <div class="col-11">
844
- <p>This event will be fired after a new user account is created on your website.</p>
845
- </div>
846
- <div class="col-1">
847
- <?php renderPopoverButton( 'complete_registration_event' ); ?>
848
- </div>
849
- </div>
850
-
851
- <div class="row">
852
- <div class="col">
853
- <?php renderDummySwitcher(); ?>
854
- <h4 class="switcher-label">Enable the CompleteRegistration event on Facebook</h4>
855
- </div>
856
- </div>
857
-
858
- <div class="row mb-1">
859
- <div class="col">
860
- <?php renderDummySwitcher(); ?>
861
- <h4 class="switcher-label">Enable the sign_up event on Google Analytics</h4>
862
- </div>
863
- </div>
864
- <div class="row mb-2">
865
- <div class="col col-offset-left">
866
- <?php renderDummyCheckbox( 'Non-interactive event' ); ?>
867
- </div>
868
- </div>
869
-
870
- <div class="row">
871
- <div class="col">
872
- <?php renderDummySwitcher(); ?>
873
- <h4 class="switcher-label">Enable the sign_up event on Google Ads</h4>
874
- </div>
875
- </div>
876
-
877
- <div class="row">
878
- <div class="col">
879
- <?php renderDummySwitcher(); ?>
880
- <h4 class="switcher-label">Enable the Signup event on Pinterest</h4>
881
- </div>
882
- </div>
883
-
884
- <div class="row">
885
- <div class="col">
886
- <?php renderDummySwitcher(); ?>
887
- <h4 class="switcher-label">Enable the ClickEvent on Bing</h4>
888
- </div>
889
- </div>
890
-
891
- </div>
892
- </div>
893
-
894
- <!-- AdSense -->
895
- <div class="card card-disabled">
896
- <div class="card-header">
897
- Track AdSense Clicks <?php renderProBadge(); ?><?php cardCollapseBtn(); ?>
898
- </div>
899
- <div class="card-body">
900
-
901
- <div class="row">
902
- <div class="col-11">
903
- <p>This event will be fired by clicks on AdSense ads. Is designed to be used for retargeting with Custom
904
- Audiences, or for ads optimization with Custom Conversions.</p>
905
- </div>
906
- <div class="col-1">
907
- <?php renderPopoverButton( 'adsense_event' ); ?>
908
- </div>
909
- </div>
910
-
911
- <div class="row">
912
- <div class="col">
913
- <?php renderDummySwitcher(); ?>
914
- <h4 class="switcher-label">Enable the AdSense event on Facebook</h4>
915
- </div>
916
- </div>
917
 
918
- <div class="row">
919
- <div class="col">
920
- <?php renderDummySwitcher(); ?>
921
- <h4 class="switcher-label">Enable the AdSense event on Pinterest</h4>
922
- </div>
923
- </div>
 
 
 
 
 
924
 
925
- <div class="row">
926
- <div class="col">
927
- <?php renderDummySwitcher(); ?>
928
- <h4 class="switcher-label">Enable the ClickEvent on Bing</h4>
929
  </div>
930
- </div>
931
-
932
- <?php if ( GA()->enabled() ) : ?>
933
- <div class="row mt-3">
934
  <div class="col">
935
- <p class="mb-0">* This event is not required on Google Analytics, because you have a complete integration with
936
- AdSense available there.</p>
937
  </div>
938
  </div>
939
  <?php endif; ?>
940
-
941
  </div>
942
  </div>
943
 
144
  </div>
145
  </div>
146
 
147
+ <div class="card">
148
+ <div class="card-header">
149
+ Active Events:
150
  </div>
151
+ <div class="card-body show" style="display: block;">
152
+ <?php
153
+ $customCount = EventsCustom()->getCount();
154
+ //$customFdp = EventsFdp()->getCount();
155
+ $signalEvents = EventsSignal()->getCount();
156
+ $wooEvents = EventsWoo()->getCount();
157
+ $eddEvents = EventsEdd()->getCount();
158
+
159
+ if($signalEvents > 0) {
160
+ $signalEvents = 1;
161
+ }
162
+
163
+ if(PYS()->getOption('search_event_enabled')) {
164
+ $signalEvents++;
165
+ }
166
+
167
+ $total = $customCount + $signalEvents + $wooEvents + $eddEvents;
168
+ ?>
169
+ <p><strong>You have <?=$total?> active events in total.</strong></p>
170
+ <p>You have <?=$signalEvents?> global active events. You can control them on this page.</p>
171
+ <p>You have <?=$customCount?> manually added active events. You can control them on the <a href="<?=buildAdminUrl( 'pixelyoursite', 'events' )?>">Events page</a>.</p>
172
+ <?php if(isWooCommerceActive()) : ?>
173
+ <p>You have <?=$wooEvents?> WooCommerce active events. You can control them on the <a href="<?=buildAdminUrl( 'pixelyoursite', 'woo' )?>">WooCommerce page</a>.</p>
174
+ <?php endif; ?>
175
+ <?php if(isEddActive()) : ?>
176
+ <p>You have <?=$eddEvents?> EDD active events. You can control them on the <a href="<?=buildAdminUrl( 'pixelyoursite', 'edd' )?>">EDD page</a>.</p>
177
+ <?php endif; ?>
178
+ <p class="mt-5 small">We count each manually added event, regardless of its name or targeted tag.</p>
179
+ <p class="small">We don't count the Dynamic Ads for Blog events.</p>
180
+ </div>
181
+ </div>
182
 
183
+ <div class="card">
184
+ <div class="card-header">
185
+ About Parameters:
186
+ </div>
187
+ <div class="card-body show" style="display: block;">
188
+ <p>The plugin tracks the following parameters by default for all the events and for all installed tags:
189
+ <i>page_title, post_type, post_id, event_URL, user_role, plugin, event_time (pro), event_day (pro), event_month (pro), traffic_source (pro), UTMs (pro).</i></p>
190
+ <p>Facebook, Pinterest, and Google Ads Page View event also tracks the following parameters: tags,
191
+ category.</p>
192
+ <p>You can add extra parameters to events configured on the Events tab.
193
+ WooCommerce or Easy Digital Downloads events will have the e-commerce parameters specific to
194
+ each tag.</p>
195
+ <p>The Search event has the specific search parameter.</p>
196
+ <p>The Signal event has various specific parameters, depending on the action that fires the event.</p>
197
+ </div>
198
+ </div>
199
 
200
+ <!-- Signal Events -->
201
+ <div class="card">
202
+ <div class="card-header has_switch">
203
+ <?php PYS()->render_switcher_input('signal_events_enabled');?>Track key actions with the Signal event <?php cardCollapseBtn(); ?>
204
+ </div>
205
+ <div class="card-body show" style="display: block;">
206
+ <?php if ( Facebook()->enabled() ) : ?>
207
+ <div class="row">
208
  <div class="col">
209
+ <?php Facebook()->render_switcher_input( 'signal_events_enabled' ); ?>
210
+ <h4 class="switcher-label">Enable on Facebook</h4>
 
 
 
 
 
211
  </div>
212
  </div>
213
+ <?php endif; ?>
214
 
215
+ <?php if ( GA()->enabled() ) : ?>
216
+ <div class="row">
 
 
 
 
 
217
  <div class="col">
218
+ <?php GA()->render_switcher_input( 'signal_events_enabled' ); ?>
219
+ <h4 class="switcher-label">Enable on Google Analytics</h4>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  </div>
221
  </div>
222
+ <div class="row mb-2">
223
+ <div class="col col-offset-left">
224
+ <?php GA()->render_checkbox_input( 'signal_events_non_interactive',
225
+ 'Non-interactive event' ); ?>
226
  </div>
227
  </div>
228
  <?php endif; ?>
 
 
229
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
230
 
231
+ <?php if ( Pinterest()->enabled() ) : ?>
232
  <div class="row">
233
  <div class="col">
234
+ <?php Pinterest()->render_switcher_input( 'signal_events_enabled' ); ?>
235
+ <h4 class="switcher-label">Enable on Pinterest</h4>
236
  </div>
237
  </div>
238
+ <?php endif; ?>
239
 
240
+ <?php if ( Bing()->enabled() ) : ?>
241
  <div class="row">
242
  <div class="col">
243
+ <?php Bing()->render_switcher_input( 'signal_events_enabled' ); ?>
244
+ <h4 class="switcher-label">Enable on Bing</h4>
 
245
  </div>
246
  </div>
247
  <?php endif; ?>
248
 
249
+ <hr class="mb-2"/>
250
+
251
+ <h4 class="label">Actions:</h4>
252
+ <div class="row mt-4">
253
  <div class="col">
254
+ <?php PYS()->render_checkbox_input( 'signal_click_enabled' ,"Internal Clicks/External Clicks",true); ?>
255
+ <?php renderProBadge(); ?>
256
+ <div class="col-offset-left">
257
+ <small> Specific parameters: <i>text, target_url</i></small>
258
+ </div>
259
  </div>
260
  </div>
261
 
262
+ <div class="row mt-3">
263
+ <div class="col">
264
+ <?php PYS()->render_checkbox_input( 'signal_watch_video_enabled','Watch Video (YouTube and Vimeo embedded videos)',true ); ?>
265
+ <?php renderProBadge(); ?>
266
+ <div class="col-offset-left">
267
+ <small> Specific parameters: <i> video_type, video_title, video_id</i></small>
268
  </div>
269
  </div>
270
+ </div>
271
 
272
+ <div class="row mt-3">
273
+ <div class="col">
274
+ <?php PYS()->render_checkbox_input( 'signal_tel_enabled',"Telephone links clicks",true ); ?>
275
+ <?php renderProBadge(); ?>
 
 
 
276
  </div>
277
  </div>
278
 
279
+ <div class="row mt-3">
280
  <div class="col">
281
+ <?php PYS()->render_checkbox_input( 'signal_email_enabled' ,"Email links clicks",true); ?>
282
+ <?php renderProBadge(); ?>
283
  </div>
284
  </div>
285
 
286
+ <div class="row mt-3">
287
  <div class="col">
288
+ <?php PYS()->render_checkbox_input( 'signal_form_enabled',"Forms" ); ?>
289
+ <div class="col-offset-left">
290
+ <small> Specific parameters: <i>text, from_class, form_id</i></small>
291
+ </div>
292
  </div>
293
  </div>
294
+ <div class="row mt-3">
295
  <div class="col">
296
+ <?php PYS()->render_checkbox_input( 'signal_user_signup_enabled',"User signups",true ); ?>
297
+ <?php renderProBadge(); ?>
298
  </div>
299
  </div>
300
+ <div class="row mt-3">
301
  <div class="col">
302
+ <?php PYS()->render_checkbox_input( 'signal_download_enabled' ,"Downloads"); ?>
303
+ <div class="col-offset-left">
304
+ <h4 class="label">Extension of files to track as downloads:</h4>
305
+ <?php PYS()->render_tags_select_input( 'download_event_extensions' ); ?>
306
+ <small> Specific parameters: <i>download_type, download_name, download_url</i></small>
307
+ </div>
308
  </div>
309
  </div>
310
 
311
+ <div class="row mt-3">
312
+ <div class="col">
313
+ <?php PYS()->render_checkbox_input( 'signal_comment_enabled',"Comments" ); ?>
 
 
 
 
314
  </div>
315
+ </div>
316
 
317
+ <div class="row mt-3">
318
+ <div class="col">
319
+ <?php PYS()->render_checkbox_input( 'signal_adsense_enabled',"AdSense click" ,true); ?>
320
+ <?php renderProBadge(); ?>
321
+ <div class="col-offset-left">
322
+ <small> Is not fired for Google, because Google has it's own support for AdSense</small>
 
 
323
  </div>
324
  </div>
325
+ </div>
326
 
327
+ <div class="row mt-3">
328
+ <div class="col">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
329
 
330
+ <div class=" form-inline">
331
+ <?php PYS()->render_checkbox_input( 'signal_page_scroll_enabled',"trigger for scroll value:" ); ?>
332
+ <?php PYS()->render_number_input( 'signal_page_scroll_value',null,false,100 ); ?>
333
+ <div>% (add %)</div>
334
  </div>
 
335
 
336
+ </div>
337
+ </div>
338
 
339
+ <div class="row mt-3">
340
+ <div class="col">
341
+ <div class="form-inline">
342
+ <?php PYS()->render_checkbox_input( 'signal_time_on_page_enabled',"trigger for time on page value:" ); ?>
343
+ <?php PYS()->render_number_input( 'signal_time_on_page_value' ); ?>
344
+ <div> seconds (add seconds)</div>
345
  </div>
346
+
347
  </div>
348
+ </div>
349
+
350
  </div>
351
  </div>
352
 
353
+
354
  <!-- Search -->
355
  <div class="card">
356
+ <div class="card-header has_switch">
357
+ <?php PYS()->render_switcher_input('search_event_enabled');?> Track Searches <?php cardCollapseBtn(); ?>
358
  </div>
359
  <div class="card-body">
360
  <div class="row">
362
  <p>This event will be fired when a search is performed on your website.</p>
363
  </div>
364
  <div class="col-1">
365
+ <?php renderPopoverButton( 'search_event' ); ?>
366
  </div>
367
  </div>
368
 
369
+ <?php if ( Facebook()->enabled() ) : ?>
370
  <div class="row">
371
  <div class="col">
372
  <?php Facebook()->render_switcher_input( 'search_event_enabled' ); ?>
375
  </div>
376
  <?php endif; ?>
377
 
378
+ <?php if ( GA()->enabled() ) : ?>
379
  <div class="row mb-1">
380
  <div class="col">
381
  <?php GA()->render_switcher_input( 'search_event_enabled' ); ?>
384
  </div>
385
  <div class="row mb-2">
386
  <div class="col col-offset-left">
387
+ <?php GA()->render_checkbox_input( 'search_event_non_interactive',
388
+ 'Non-interactive event' ); ?>
389
  </div>
390
  </div>
391
+ <?php endif; ?>
392
 
393
  <div class="row">
394
  <div class="col">
395
+ <?php renderDummySwitcher(); ?>
396
  <h4 class="switcher-label">Enable the search event on Google Ads</h4>
397
+ <?php renderProBadge('https://www.pixelyoursite.com/google-ads-tag/?utm_source=pys-free-plugin&utm_medium=pro-badge&utm_campaign=pro-feature') ?>
398
  </div>
399
  </div>
400
 
408
  </div>
409
  <?php endif; ?>
410
 
411
+ <?php if ( Pinterest()->enabled() ) : ?>
412
  <div class="row">
413
  <div class="col">
414
  <?php Pinterest()->render_switcher_input( 'search_event_enabled' ); ?>
415
  <h4 class="switcher-label">Enable the Search event on Pinterest</h4>
416
+ <?php Pinterest()->renderAddonNotice(); ?>
417
  </div>
418
  </div>
419
+ <?php endif; ?>
420
  </div>
421
  </div>
422
 
423
+ <!-- Dynamic Ads for Blog Setup -->
424
+ <div class="card" >
425
+ <div class="card-header has_switch" style="background-color:#cd6c46;color:white;">
426
+ <?php PYS()->render_switcher_input('fdp_enabled');?>Dynamic Ads for Blog Setup <?php cardCollapseBtn(); ?>
427
  </div>
428
  <div class="card-body">
429
+ <div class="row mt-3">
 
430
  <div class="col-11">
431
+ This setup will help you to run Facebook Dynamic Product Ads for your blog content.
432
  </div>
433
+ </div>
434
+ <div class="row mt-3">
435
+ <div class="col">
436
+ <a href="https://www.pixelyoursite.com/facebook-dynamic-product-ads-for-wordpress" target="_blank">Click here to learn how to do it</a>
437
  </div>
438
  </div>
 
439
  <?php if ( Facebook()->enabled() ) : ?>
440
+ <hr/>
441
+ <div class="row mt-3">
442
  <div class="col">
443
+ <?php Facebook()->render_switcher_input( 'fdp_use_own_pixel_id',false,true ); ?>
444
+ <h4 class="switcher-label">
445
+ Fire this events just for this Pixel ID with the
446
+ <a href="https://www.pixelyoursite.com/?utm_source=pixelyoursite-free-plugin&utm_medium=plugin&utm_campaign=free-plugin-ids" target="_blank">pro version</a>
447
+ </h4>
448
  </div>
449
  </div>
450
+ <div class="row mt-3">
451
+ <div class="col-6">
452
+ <label>Facebook Pixel ID:</label>
453
+ <?php Facebook()->render_text_input( 'fdp_pixel_id',"",true ); ?>
 
 
 
454
  </div>
455
  </div>
 
 
 
 
 
 
 
456
 
457
+ <hr/>
 
 
 
 
 
 
458
 
459
+ <div class="row mt-3">
 
460
  <div class="col">
461
+ <label>Content_type</label><?php
462
+ $options = array(
463
+ 'product' => 'Product',
464
+ '' => 'Empty'
465
+ );
466
+ Facebook()->render_select_input( 'fdp_content_type',$options ); ?>
467
  </div>
468
  </div>
 
469
 
470
+ <div class="row mt-3">
 
471
  <div class="col">
472
+ <label>Currency:</label><?php
473
+ $options = array();
474
+ $cur = getPysCurrencySymbols();
475
+ foreach ($cur as $key => $val) {
476
+ $options[$key]=$key;
477
+ }
478
+ Facebook()->render_select_input( 'fdp_currency',$options ); ?>
479
  </div>
480
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
481
 
482
+ <div class="row mt-3">
 
483
  <div class="col">
484
+ <?php Facebook()->render_switcher_input( 'fdp_view_content_enabled' ); ?>
485
+ <h4 class="switcher-label">Enable the ViewContent on every blog page</h4>
486
  </div>
487
  </div>
488
+ <div class="row mt-3">
 
 
 
489
  <div class="col">
490
+ <?php Facebook()->render_switcher_input( 'fdp_view_category_enabled' ); ?>
491
+ <h4 class="switcher-label">Enable the ViewCategory on every blog categories page</h4>
 
 
 
 
 
 
492
  </div>
493
  </div>
494
+ <div class="row mt-3">
495
+ <div class="col-11">
496
+ <?php Facebook()->render_switcher_input( 'fdp_add_to_cart_enabled' ); ?>
497
+ <h4 class="switcher-label">Enable the AddToCart event on every blog page</h4>
 
 
 
 
 
 
 
 
 
 
 
 
498
  </div>
 
 
499
 
500
+ <div class="col-11 form-inline col-offset-left">
501
+ <label>Value:</label>
502
+ <?php Facebook()->render_number_input( 'fdp_add_to_cart_value',"Value" ); ?>
 
 
 
503
  </div>
 
 
 
 
 
504
 
505
+ <div class="col-11 form-inline col-offset-left">
506
+ <label>Fire the AddToCart when scroll to</label>
507
+ <?php Facebook()->render_number_input( 'fdp_add_to_cart_event_fire_scroll',50 ); ?>
508
+ <label>%</label>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
509
  </div>
510
  </div>
511
+ <div class="row mt-3">
512
+ <div class="col-11">
513
+ <?php Facebook()->render_switcher_input( 'fdp_purchase_enabled' ); ?>
514
+ <h4 class="switcher-label">Enable the Purchase event on every blog page</h4>
 
 
 
 
 
 
 
 
 
 
 
 
 
515
  </div>
516
+ <div class="col-11 form-inline col-offset-left">
517
+ <label>Value:</label>
518
+ <?php Facebook()->render_number_input( 'fdp_purchase_value',"Value" ); ?>
 
 
 
 
 
 
519
  </div>
520
+ <div class="col-11 form-inline col-offset-left">
521
+ <label>Fire the Purchase event</label>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
522
 
523
+ <?php
524
+ $options = array(
525
+ 'scroll_pos' => 'Page Scroll',
526
+ 'comment' => 'User commented',
527
+ 'css_click' => 'Click on CSS selector',
528
+ //Default event fires
529
+ );
530
+ Facebook()->render_select_input( 'fdp_purchase_event_fire',$options ); ?>
531
+ <span id="fdp_purchase_event_fire_scroll_block">
532
+ <?php Facebook()->render_number_input( 'fdp_purchase_event_fire_scroll',50 ); ?> <span>%</span>
533
+ </span>
534
 
535
+ <?php Facebook()->render_text_input( 'fdp_purchase_event_fire_css',"CSS selector"); ?>
536
+ </div>
 
 
537
  </div>
538
+ <div class="row mt-5">
 
 
 
539
  <div class="col">
540
+ <strong>You need to upload your blog posts into a Facebook Product Catalog.</strong> You can do this with our dedicated plugin:
541
+ <a href="https://www.pixelyoursite.com/wordpress-feed-facebook-dpa" target="_blank">Click Here</a>
542
  </div>
543
  </div>
544
  <?php endif; ?>
 
545
  </div>
546
  </div>
547
 
includes/views/html-main-woo.php CHANGED
@@ -48,78 +48,24 @@ use PixelYourSite\Facebook\Helpers;
48
  </div>
49
  </div>
50
 
51
- <!-- Semafors -->
52
  <div class="card card-static">
53
  <div class="card-header">
54
- Advanced Data Tracking
55
  </div>
56
  <div class="card-body">
57
  <div class="row">
58
- <div class="col-11">
59
- <div class="indicator">ON</div>
60
- <h4 class="indicator-label">Facebook Dynamic Product Ads</h4>
61
- </div>
62
- <div class="col-1">
63
- <?php renderPopoverButton( 'woo_facebook_am_params' ); ?>
64
- </div>
65
- </div>
66
- <div class="row">
67
- <div class="col-11">
68
- <div class="indicator">ON</div>
69
- <h4 class="indicator-label">Facebook & Pinterest parameters</h4>
70
- </div>
71
- <div class="col-1">
72
- <?php renderPopoverButton( 'woo_facebook_and_pinterest_params' ); ?>
73
- </div>
74
- </div>
75
- <div class="row">
76
- <div class="col-11">
77
- <div class="indicator indicator-off">OFF</div>
78
- <h4 class="indicator-label">Facebook & Pinterest PRO parameters</h4>
79
- </div>
80
- <div class="col-1">
81
- <?php renderPopoverButton( 'woo_facebook_and_pinterest_pro_params' ); ?>
82
- </div>
83
- </div>
84
- <div class="row">
85
- <div class="col-11">
86
- <div class="indicator">ON</div>
87
- <h4 class="indicator-label">Facebook & Pinterest parameters for Purchase event</h4>
88
- </div>
89
- <div class="col-1">
90
- <?php renderPopoverButton( 'woo_facebook_and_pinterest_purchase_params' ); ?>
91
- </div>
92
- </div>
93
- <div class="row">
94
- <div class="col-11">
95
- <div class="indicator indicator-off">OFF</div>
96
- <h4 class="indicator-label">Facebook & Pinterest PRO parameters for Purchase event</h4>
97
- </div>
98
- <div class="col-1">
99
- <?php renderPopoverButton( 'woo_facebook_and_pinterest_purchase_pro_params' ); ?>
100
- </div>
101
- </div>
102
- <div class="row">
103
- <div class="col-11">
104
- <div class="indicator">ON</div>
105
- <h4 class="indicator-label">Google Analytics Enhanced Ecommerce</h4>
106
- </div>
107
- <div class="col-1">
108
- <?php renderPopoverButton( 'woo_ga_enhanced_ecommerce_params' ); ?>
109
- </div>
110
- </div>
111
- <div class="row">
112
- <div class="col-11">
113
- <div class="indicator indicator-off">OFF</div>
114
- <h4 class="indicator-label">Google Ads Tag with Dynamic Remarketing Support</h4>
115
- </div>
116
- <div class="col-1">
117
- <?php renderPopoverButton( 'woo_google_ads_enhanced_ecommerce_params' ); ?>
118
  </div>
119
  </div>
120
  </div>
121
  </div>
122
 
 
123
  <!-- AddToCart -->
124
  <div class="card card-static">
125
  <div class="card-header">
@@ -423,8 +369,8 @@ e&utm_campaign=pro-feature' ); ?>
423
 
424
  <!-- Purchase -->
425
  <div class="card">
426
- <div class="card-header">
427
- Track Purchases <?php cardCollapseBtn(); ?>
428
  </div>
429
  <div class="card-body">
430
  <div class="row mb-3">
@@ -555,8 +501,8 @@ e&utm_campaign=pro-feature' ); ?>
555
 
556
  <!-- InitiateCheckout -->
557
  <div class="card">
558
- <div class="card-header">
559
- Track the Checkout Page <?php cardCollapseBtn(); ?>
560
  </div>
561
  <div class="card-body">
562
 
@@ -657,8 +603,8 @@ e&utm_campaign=pro-feature' ); ?>
657
 
658
  <!-- RemoveFromCart -->
659
  <div class="card">
660
- <div class="card-header">
661
- Track remove from cart <?php cardCollapseBtn(); ?>
662
  </div>
663
  <div class="card-body">
664
 
@@ -719,8 +665,8 @@ e&utm_campaign=pro-feature' ); ?>
719
 
720
  <!-- AddToCart -->
721
  <div class="card">
722
- <div class="card-header">
723
- Track add to cart <?php cardCollapseBtn(); ?>
724
  </div>
725
  <div class="card-body">
726
 
@@ -821,8 +767,8 @@ e&utm_campaign=pro-feature' ); ?>
821
 
822
  <!-- ViewContent -->
823
  <div class="card">
824
- <div class="card-header">
825
- Track product pages <?php cardCollapseBtn(); ?>
826
  </div>
827
  <div class="card-body">
828
 
@@ -930,8 +876,8 @@ e&utm_campaign=pro-feature' ); ?>
930
 
931
  <!-- ViewCategory -->
932
  <div class="card">
933
- <div class="card-header">
934
- Track product category pages <?php cardCollapseBtn(); ?>
935
  </div>
936
  <div class="card-body">
937
 
@@ -1023,8 +969,8 @@ e&utm_campaign=pro-feature' ); ?>
1023
  </div>
1024
 
1025
  <div class="card">
1026
- <div class="card-header">
1027
- CompleteRegistration for the Facebook Pixel<?php cardCollapseBtn(); ?>
1028
  </div>
1029
  <div class="card-body">
1030
  <?php if ( Facebook()->enabled() ) : ?>
48
  </div>
49
  </div>
50
 
 
51
  <div class="card card-static">
52
  <div class="card-header">
53
+ About WooCommerce Events Parameters
54
  </div>
55
  <div class="card-body">
56
  <div class="row">
57
+ <div class="col">
58
+ <p>All events get the following parameters for all the tags: <i>page_title, post_type, post_id, event_URL, user_role, plugin, event_time (pro), event_day (pro), event_month (pro), traffic_source (pro), UTMs (pro).</i></p>
59
+ <p>The Purchase event will have the following extra-parameters: <i>category_name, num_items, tags, total (pro), transactions_count (pro), tax (pro), predicted_ltv (pro), average_order (pro), coupon_used (pro), coupon_code (pro), shipping (pro), shipping_cost (pro).</i></p>
60
+ <p>The Facebook Pixel events are Dynamic Ads ready.</p>
61
+ <p>The Google Analytics events track the data Enhanced Ecommerce or Monetization (GA4).</p>
62
+ <p>The Pinterest events have the required data for Dynamic Remarketing.</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  </div>
64
  </div>
65
  </div>
66
  </div>
67
 
68
+
69
  <!-- AddToCart -->
70
  <div class="card card-static">
71
  <div class="card-header">
369
 
370
  <!-- Purchase -->
371
  <div class="card">
372
+ <div class="card-header has_switch ">
373
+ <?php PYS()->render_switcher_input('woo_purchase_enabled');?>Track Purchases <?php cardCollapseBtn(); ?>
374
  </div>
375
  <div class="card-body">
376
  <div class="row mb-3">
501
 
502
  <!-- InitiateCheckout -->
503
  <div class="card">
504
+ <div class="card-header has_switch">
505
+ <?php PYS()->render_switcher_input('woo_initiate_checkout_enabled');?>Track the Checkout Page <?php cardCollapseBtn(); ?>
506
  </div>
507
  <div class="card-body">
508
 
603
 
604
  <!-- RemoveFromCart -->
605
  <div class="card">
606
+ <div class="card-header has_switch">
607
+ <?php PYS()->render_switcher_input('woo_remove_from_cart_enabled');?>Track remove from cart <?php cardCollapseBtn(); ?>
608
  </div>
609
  <div class="card-body">
610
 
665
 
666
  <!-- AddToCart -->
667
  <div class="card">
668
+ <div class="card-header has_switch">
669
+ <?php PYS()->render_switcher_input('woo_add_to_cart_enabled');?>Track add to cart <?php cardCollapseBtn(); ?>
670
  </div>
671
  <div class="card-body">
672
 
767
 
768
  <!-- ViewContent -->
769
  <div class="card">
770
+ <div class="card-header has_switch">
771
+ <?php PYS()->render_switcher_input('woo_view_content_enabled');?>Track product pages <?php cardCollapseBtn(); ?>
772
  </div>
773
  <div class="card-body">
774
 
876
 
877
  <!-- ViewCategory -->
878
  <div class="card">
879
+ <div class="card-header has_switch">
880
+ <?php PYS()->render_switcher_input('woo_view_category_enabled');?>Track product category pages <?php cardCollapseBtn(); ?>
881
  </div>
882
  <div class="card-body">
883
 
969
  </div>
970
 
971
  <div class="card">
972
+ <div class="card-header has_switch">
973
+ <?php PYS()->render_switcher_input('woo_complete_registration_enabled');?> CompleteRegistration for the Facebook Pixel<?php cardCollapseBtn(); ?>
974
  </div>
975
  <div class="card-body">
976
  <?php if ( Facebook()->enabled() ) : ?>
modules/facebook/PYSServerEventHelper.php CHANGED
@@ -55,7 +55,7 @@ class ServerEventHelper {
55
  }
56
  }
57
 
58
- return null;
59
  }
60
 
61
  private static function isValidIpAddress($ip_address) {
@@ -116,9 +116,9 @@ class ServerEventHelper {
116
  * Add purchase WooCommerce Advanced Matching params
117
  */
118
  if ( PixelYourSite\isWooCommerceActive() && isEventEnabled( 'woo_purchase_enabled' ) &&
119
- ($wooOrder || (is_order_received_page() && isset( $_REQUEST['key']))) ) {
120
 
121
- if(isset( $_REQUEST['key'])) {
122
  $order_key = sanitize_key($_REQUEST['key']);
123
  $order_id = wc_get_order_id_by_order_key( $order_key );
124
  } else {
55
  }
56
  }
57
 
58
+ return "127.0.0.1";
59
  }
60
 
61
  private static function isValidIpAddress($ip_address) {
116
  * Add purchase WooCommerce Advanced Matching params
117
  */
118
  if ( PixelYourSite\isWooCommerceActive() && isEventEnabled( 'woo_purchase_enabled' ) &&
119
+ ($wooOrder || (is_order_received_page() && isset( $_REQUEST['key']) && $_REQUEST['key'] != "" )) ) {
120
 
121
+ if(isset( $_REQUEST['key']) && $_REQUEST['key'] != "") {
122
  $order_key = sanitize_key($_REQUEST['key']);
123
  $order_id = wc_get_order_id_by_order_key( $order_key );
124
  } else {
modules/facebook/facebook-server.php CHANGED
@@ -81,21 +81,6 @@ class FacebookServer {
81
 
82
  if($event == "hCR") $event="CompleteRegistration"; // de mask completer registration event if it was hidden
83
 
84
- if(isset($data['content_ids'])) {
85
- $content_ids = json_decode(stripslashes($data['content_ids']));
86
- $data['content_ids']=$content_ids;
87
- }
88
-
89
- if(isset($data['contents'])) {
90
- if(is_array($data['contents'])) {
91
- $contents = json_decode(json_encode($data['contents']));
92
- } else {
93
- $contents = json_decode(stripslashes($data['contents']));
94
- }
95
-
96
- $data['contents']=$contents;
97
- }
98
-
99
  $event = $this->createEvent($eventID,$event,$data,$wooOrder,$eddOrder);
100
  if($event) {
101
  $this->sendEvent($ids,array($event));
@@ -118,14 +103,16 @@ class FacebookServer {
118
  $event = ServerEventHelper::newEvent($name,$eventID,$wooOrder,$eddOrder);
119
 
120
  $event->setEventTime(time());
 
 
121
 
122
  // prepare data
123
  if(isset($data['contents']) && is_array($data['contents'])) {
124
  $contents = array();
125
  foreach ($data['contents'] as $c) {
126
  $content = array();
127
- $content['product_id'] = $c->id;
128
- $content['quantity'] = $c->quantity;
129
  // $content['item_price'] = $c->item_price;
130
  $contents[] = new Content($content);
131
  }
@@ -160,10 +147,11 @@ class FacebookServer {
160
  }
161
 
162
 
163
- $custom_values = ["post_type",'post_id','categories','tags','video_type',
164
  'video_id','video_title','event_trigger','link_type','tag_text',"URL",
165
  'form_id','form_class','form_submit_label','transactions_count','average_order',
166
- 'shipping_cost','tax','total','shipping'];
 
167
 
168
  foreach ($custom_values as $val) {
169
  if(isset($data[$val]))
@@ -206,7 +194,7 @@ class FacebookServer {
206
  try{
207
  $response = $request->execute();
208
  } catch (\Exception $e) {
209
- error_log("error send Fb API request ".$e->getErrorUserMessage());
210
  }
211
 
212
  if($this->isDebug && isset($response)) error_log("fb api response ".print_r($response,true));
81
 
82
  if($event == "hCR") $event="CompleteRegistration"; // de mask completer registration event if it was hidden
83
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84
  $event = $this->createEvent($eventID,$event,$data,$wooOrder,$eddOrder);
85
  if($event) {
86
  $this->sendEvent($ids,array($event));
103
  $event = ServerEventHelper::newEvent($name,$eventID,$wooOrder,$eddOrder);
104
 
105
  $event->setEventTime(time());
106
+ $event->setEventSourceUrl($data["event_url"]);
107
+ $event->setActionSource("website");
108
 
109
  // prepare data
110
  if(isset($data['contents']) && is_array($data['contents'])) {
111
  $contents = array();
112
  foreach ($data['contents'] as $c) {
113
  $content = array();
114
+ $content['product_id'] = $c['id'];
115
+ $content['quantity'] = $c['quantity'];
116
  // $content['item_price'] = $c->item_price;
117
  $contents[] = new Content($content);
118
  }
147
  }
148
 
149
 
150
+ $custom_values = ['event_action','download_type','download_name','download_url','target_url','text','trigger','traffic_source','plugin','user_role','event_url','page_title',"post_type",'post_id','categories','tags','video_type',
151
  'video_id','video_title','event_trigger','link_type','tag_text',"URL",
152
  'form_id','form_class','form_submit_label','transactions_count','average_order',
153
+ 'shipping_cost','tax','total','shipping','coupon_used'];
154
+
155
 
156
  foreach ($custom_values as $val) {
157
  if(isset($data[$val]))
194
  try{
195
  $response = $request->execute();
196
  } catch (\Exception $e) {
197
+ error_log("error send Fb API request ".$e->getMessage());
198
  }
199
 
200
  if($this->isDebug && isset($response)) error_log("fb api response ".print_r($response,true));
modules/facebook/facebook.php CHANGED
@@ -51,21 +51,24 @@ class Facebook extends Settings implements Pixel {
51
 
52
  function server_woo_add_to_cart_ajax($product_id,$quantity = 1) {
53
 
54
- if(isEventEnabled( 'woo_add_to_cart_enabled') && PYS()->getOption( 'woo_add_to_cart_on_button_click' )) {
 
 
 
 
 
 
55
  $eventData = Facebook()->getEventData( 'woo_add_to_cart_on_button_click', $product_id );
56
  if(!$eventData) return;
57
- $eventData['name'] = 'AddToCart';
58
- $eventID = $eventData["eventID"];
59
- $name = $eventData['name'];
60
  $data = $eventData['data'];
61
 
62
- $d = array();
63
- foreach ( $data['contents']as $item ) {
64
- $item["quantity"] = $quantity;
65
- $d[]=(object)$item;
66
  }
67
- $data['contents'] = $d;
68
- $serverEvent = FacebookServer()->createEvent($eventID,$name,$data);
 
 
69
 
70
  FacebookServer()->addAsyncEvents(array(
71
  array("pixelIds" => Facebook()->getPixelIDs(), "event" => $serverEvent )
@@ -74,6 +77,7 @@ class Facebook extends Settings implements Pixel {
74
  }
75
 
76
  function server_woo_add_to_cart($cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data) {
 
77
  $this->server_woo_add_to_cart_ajax($product_id,$quantity);
78
  }
79
 
@@ -121,6 +125,264 @@ class Facebook extends Settings implements Pixel {
121
  );
122
 
123
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
124
 
125
  public function getEventData( $eventType, $args = null ) {
126
 
@@ -130,79 +392,16 @@ class Facebook extends Settings implements Pixel {
130
  $eventData = false;
131
 
132
  switch ( $eventType ) {
133
- case 'init_event':
134
- $eventData = $this->getPageViewEventParams(); break;
135
-
136
- case 'general_event':
137
- $eventData = $this->getGeneralEventParams(); break;
138
-
139
- case 'search_event':
140
- $eventData = $this->getSearchEventParams(); break;
141
-
142
- case 'custom_event':
143
- $eventData = $this->getCustomEventParams( $args ); break;
144
-
145
- case 'fdp_event':
146
- $eventData = $this->getFDPEventParams( $args ); break;
147
-
148
- case 'woo_view_content':
149
- $eventData = $this->getWooViewContentEventParams(); break;
150
 
151
  case 'woo_add_to_cart_on_button_click':
152
  $eventData = $this->getWooAddToCartOnButtonClickEventParams( $args ); break;
153
 
154
- case 'woo_add_to_cart_on_cart_page':
155
- case 'woo_add_to_cart_on_checkout_page':
156
- $eventData = $this->getWooAddToCartOnCartEventParams(); break;
157
-
158
- case 'woo_remove_from_cart':
159
- $eventData = $this->getWooRemoveFromCartParams( $args ); break;
160
-
161
- case 'woo_view_category':
162
- $eventData = $this->getWooViewCategoryEventParams(); break;
163
-
164
- case 'woo_initiate_checkout':
165
- $eventData = $this->getWooInitiateCheckoutEventParams(); break;
166
-
167
- case 'woo_purchase':
168
- $eventData = $this->getWooPurchaseEventParams(); break;
169
-
170
- case 'edd_view_content':
171
- $eventData = $this->getEddViewContentEventParams(); break;
172
-
173
  case 'edd_add_to_cart_on_button_click':
174
  $eventData = $this->getEddAddToCartOnButtonClickEventParams( $args ); break;
175
 
176
- case 'edd_add_to_cart_on_checkout_page':
177
- $eventData = $this->getEddCartEventParams( 'AddToCart' ); break;
178
-
179
- case 'edd_remove_from_cart':
180
- $eventData = $this->getEddRemoveFromCartParams( $args ); break;
181
-
182
- case 'edd_view_category':
183
- $eventData = $this->getEddViewCategoryEventParams(); break;
184
-
185
- case 'edd_initiate_checkout':
186
- $eventData = $this->getEddCartEventParams( 'InitiateCheckout' ); break;
187
-
188
- case 'edd_purchase':
189
- $eventData = $this->getEddCartEventParams( 'Purchase' ); break;
190
-
191
- case 'hCR':
192
- $eventData = $this->getCompleteRegistrationEventParams('hCR'); break;
193
-
194
- case 'complete_registration':
195
- $eventData = $this->getCompleteRegistrationEventParams(); break;
196
-
197
  default: return false; // event does not supported
198
  }
199
 
200
- if($eventData) {
201
- if($this->isServerApiEnabled()) {
202
- $eventData['eventID'] = EventIdGenerator::guidv4();
203
- }
204
- }
205
-
206
  return $eventData;
207
  }
208
 
@@ -301,7 +500,7 @@ class Facebook extends Settings implements Pixel {
301
  }
302
 
303
  $params['content_type'] = 'product';
304
- $params['content_ids'] = json_encode( $post_ids );
305
 
306
  }
307
 
@@ -410,7 +609,7 @@ class Facebook extends Settings implements Pixel {
410
  $product = wc_get_product( $post->ID );
411
  if(!$product) return false;
412
  $content_id = Helpers\getFacebookWooProductContentId( $post->ID );
413
- $params['content_ids'] = json_encode( $content_id );
414
 
415
  if ( wooProductIsType( $product, 'variable' ) && ! $this->getOption( 'woo_variable_as_simple' ) ) {
416
  $params['content_type'] = 'product_group';
@@ -443,13 +642,13 @@ class Facebook extends Settings implements Pixel {
443
  if ( Helpers\isDefaultWooContentIdLogic() ) {
444
 
445
  // Facebook for WooCommerce plugin does not support new Dynamic Ads parameters
446
- $params['contents'] = json_encode( array(
447
  array(
448
  'id' => (string) reset( $content_id ),
449
  'quantity' => 1,
450
  //'item_price' => getWooProductPriceToDisplay( $post->ID ),
451
  )
452
- ) );
453
 
454
  }
455
 
@@ -503,7 +702,7 @@ class Facebook extends Settings implements Pixel {
503
  $content_id = Helpers\getFacebookWooProductContentId( $product_id );
504
 
505
  $params['content_type'] = 'product';
506
- $params['content_ids'] = json_encode( $content_id );
507
 
508
  // content_name, category_name, tags
509
  $params['tags'] = implode( ', ', getObjectTerms( 'product_tag', $product_id ) );
@@ -512,13 +711,13 @@ class Facebook extends Settings implements Pixel {
512
  $params['num_items'] = $cart_item['quantity'];
513
  $params['product_price'] = getWooProductPriceToDisplay( $product_id );
514
 
515
- $params['contents'] = json_encode( array(
516
  array(
517
  'id' => (string) reset( $content_id ),
518
  'quantity' => $cart_item['quantity'],
519
  //'item_price' => getWooProductPriceToDisplay( $product_id ),
520
  )
521
- ) );
522
 
523
  return array( 'data' => $params );
524
 
@@ -562,7 +761,7 @@ class Facebook extends Settings implements Pixel {
562
  $content_ids = array_merge( Helpers\getFacebookWooProductContentId( $posts[ $i ]->ID ), $content_ids );
563
  }
564
 
565
- $params['content_ids'] = json_encode( $content_ids );
566
 
567
  return array(
568
  'name' => 'ViewCategory',
@@ -635,7 +834,7 @@ class Facebook extends Settings implements Pixel {
635
  }
636
 
637
  $params['content_type'] = 'product';
638
- $params['content_ids'] = json_encode( $content_ids );
639
  $params['content_name'] = implode( ', ', $content_names );
640
  $params['category_name'] = implode( ', ', $content_categories );
641
 
@@ -643,7 +842,7 @@ class Facebook extends Settings implements Pixel {
643
  if ( Helpers\isDefaultWooContentIdLogic() ) {
644
 
645
  // Facebook for WooCommerce plugin does not support new Dynamic Ads parameters
646
- $params['contents'] = json_encode( $contents );
647
 
648
  }
649
 
@@ -659,7 +858,7 @@ class Facebook extends Settings implements Pixel {
659
 
660
  $params['value'] = getWooEventValueOrder( $value_option, $order, $global_value );
661
  $params['currency'] = get_woocommerce_currency();
662
- //$params['transaction_id'] = $order_id;
663
 
664
  return array(
665
  'name' => 'Purchase',
@@ -719,7 +918,7 @@ class Facebook extends Settings implements Pixel {
719
 
720
  $params = array(
721
  'content_type' => 'product',
722
- 'content_ids' => json_encode( Helpers\getFacebookEddDownloadContentId( $post->ID ) ),
723
  );
724
 
725
  // content_name, category_name
@@ -740,13 +939,13 @@ class Facebook extends Settings implements Pixel {
740
 
741
 
742
  // contents
743
- $params['contents'] = json_encode( array(
744
  array(
745
  'id' => (string) $post->ID,
746
  'quantity' => 1,
747
  //'item_price' => getEddDownloadPriceToDisplay( $post->ID ),
748
  )
749
- ) );
750
 
751
  return array(
752
  'name' => 'ViewContent',
@@ -772,7 +971,7 @@ class Facebook extends Settings implements Pixel {
772
 
773
  $params = array(
774
  'content_type' => 'product',
775
- 'content_ids' => json_encode( Helpers\getFacebookEddDownloadContentId( $post->ID ) ),
776
  );
777
 
778
  // content_name, category_name
@@ -792,13 +991,13 @@ class Facebook extends Settings implements Pixel {
792
  }
793
 
794
  // contents
795
- $params['contents'] = json_encode( array(
796
  array(
797
  'id' => (string) $download_id,
798
  'quantity' => 1,
799
  //'item_price' => getEddDownloadPriceToDisplay( $download_id ),
800
  )
801
- ) );
802
 
803
  return array(
804
  'data' => $params,
@@ -900,10 +1099,10 @@ class Facebook extends Settings implements Pixel {
900
 
901
  }
902
 
903
- $params['content_ids'] = json_encode( $content_ids );
904
  $params['content_name'] = implode( ', ', $content_names );
905
  $params['category_name'] = implode( ', ', $content_categories );
906
- $params['contents'] = json_encode( $contents );
907
 
908
  $tags = array_slice( array_unique( $tags ), 0, 100 );
909
  $params['tags'] = implode( ', ', $tags );
@@ -950,13 +1149,13 @@ class Facebook extends Settings implements Pixel {
950
  $params = array_merge( $params, Helpers\getEddCustomAudiencesOptimizationParams( $download_id ) );
951
 
952
  $params['num_items'] = $cart_item['quantity'];
953
- $params['contents'] = json_encode( array(
954
  array(
955
  'id' => (string) $download_id,
956
  'quantity' => $cart_item['quantity'],
957
  //'item_price' => getEddDownloadPriceToDisplay( $download_id, $price_index ),
958
  )
959
- ) );
960
 
961
  return array( 'data' => $params );
962
 
@@ -992,7 +1191,7 @@ class Facebook extends Settings implements Pixel {
992
  $content_ids );
993
  }
994
 
995
- $params['content_ids'] = json_encode( $content_ids );
996
 
997
  return array(
998
  'name' => 'ViewCategory',
@@ -1050,7 +1249,7 @@ class Facebook extends Settings implements Pixel {
1050
 
1051
 
1052
 
1053
- private function getCompleteRegistrationEventParams($args=null) {
1054
 
1055
  if ( ! $this->getOption( 'complete_registration_event_enabled' ) ) {
1056
  return false;
@@ -1058,7 +1257,7 @@ class Facebook extends Settings implements Pixel {
1058
  $params = array();
1059
  if($this->getOption("woo_complete_registration_fire_every_time") &&
1060
  $this->getOption("woo_complete_registration_use_custom_value") &&
1061
- isset( $_REQUEST['key'] ) ) {
1062
  $params = Helpers\getCompleteRegistrationOrderParams();
1063
  }
1064
  $name = isset($args) && $args == "hCR" ? "hCR" : 'CompleteRegistration';
51
 
52
  function server_woo_add_to_cart_ajax($product_id,$quantity = 1) {
53
 
54
+ if(EventsWoo()->isEnabled() && EventsWoo()->isReadyForFire("woo_add_to_cart_on_button_click")) {
55
+ error_log("start fie");
56
+ $event = EventsWoo()->getEvent("woo_add_to_cart_on_button_click");
57
+ $isSuccess = Facebook()->addParamsToEvent( $event );
58
+ if ( !$isSuccess ) {
59
+ return;
60
+ }
61
  $eventData = Facebook()->getEventData( 'woo_add_to_cart_on_button_click', $product_id );
62
  if(!$eventData) return;
 
 
 
63
  $data = $eventData['data'];
64
 
65
+ if(isset($data['contents']) ) {
66
+ $data['contents'][0]['quantity'] = $quantity;
 
 
67
  }
68
+
69
+ $event->addParams($data);
70
+ $event->addParams(getStandardParams());
71
+ $serverEvent = FacebookServer()->createEvent($event->payload["eventID"],$event->payload["name"],$event->getData()['params']);
72
 
73
  FacebookServer()->addAsyncEvents(array(
74
  array("pixelIds" => Facebook()->getPixelIDs(), "event" => $serverEvent )
77
  }
78
 
79
  function server_woo_add_to_cart($cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data) {
80
+
81
  $this->server_woo_add_to_cart_ajax($product_id,$quantity);
82
  }
83
 
125
  );
126
 
127
  }
128
+
129
+ // need refactoring
130
+ private function addDataToEvent($eventData,&$event) {
131
+ $params = $eventData["data"];
132
+ unset($eventData["data"]);
133
+ //unset($eventData["name"]);
134
+ $event->addParams($params);
135
+ $event->addPayload($eventData);
136
+ }
137
+
138
+ function addParamsToEvent($event) {
139
+ if ( ! $this->configured() ) {
140
+ return false;
141
+ }
142
+ $isActive = false;
143
+
144
+ switch ($event->getId()) {
145
+ //Signal events
146
+ case "signal_page_scroll":
147
+ case "signal_time_on_page":
148
+ case "signal_form":
149
+ case "signal_download":
150
+ case "signal_comment": {
151
+ $isActive = $this->getOption('signal_events_enabled');
152
+ }break;
153
+
154
+
155
+ case 'init_event':{
156
+ $eventData = $this->getPageViewEventParams();
157
+ if($eventData) {
158
+ $isActive = true;
159
+ $this->addDataToEvent($eventData,$event);
160
+ }
161
+ } break;
162
+ case 'search_event':{
163
+ $eventData = $this->getSearchEventParams();
164
+ if ($eventData) {
165
+ $isActive = true;
166
+ $this->addDataToEvent($eventData, $event);
167
+ }
168
+ }break;
169
+
170
+ case 'custom_event':{
171
+ $eventData = $this->getCustomEventParams( $event->args );
172
+ if ($eventData) {
173
+ $isActive = true;
174
+ $this->addDataToEvent($eventData, $event);
175
+ }
176
+ }break;
177
+ case 'fdp_view_content':{
178
+ if($this->getOption("fdp_view_content_enabled")){
179
+ $params = Helpers\getFDPViewContentEventParams();
180
+ $params["content_type"] = $this->getOption("fdp_content_type");
181
+ $payload = array(
182
+ 'name' => "ViewContent",
183
+ );
184
+ $event->addParams($params);
185
+ $event->addPayload($payload);
186
+ $isActive = true;
187
+ }
188
+ }break;
189
+ case 'fdp_view_category':{
190
+ if($this->getOption("fdp_view_category_enabled")){
191
+ $params = Helpers\getFDPViewCategoryEventParams();
192
+ $params["content_type"] = $this->getOption("fdp_content_type");
193
+ $payload = array(
194
+ 'name' => "ViewCategory",
195
+ );
196
+ $event->addParams($params);
197
+ $event->addPayload($payload);
198
+ $isActive = true;
199
+ }
200
+ }break;
201
+
202
+ case 'fdp_add_to_cart':{
203
+ if($this->getOption("fdp_add_to_cart_enabled")){
204
+ $params = Helpers\getFDPAddToCartEventParams();
205
+ $params["content_type"] = $this->getOption("fdp_content_type");
206
+ $params["value"] = $this->getOption("fdp_add_to_cart_value");
207
+ $params["currency"] = $this->getOption("fdp_currency");
208
+ $trigger_type = $this->getOption("fdp_add_to_cart_event_fire");
209
+ $trigger_value = $trigger_type == "scroll_pos" ?
210
+ $this->getOption("fdp_add_to_cart_event_fire_scroll") :
211
+ $this->getOption("fdp_add_to_cart_event_fire_css") ;
212
+ $payload = array(
213
+ 'name' => "AddToCart",
214
+ 'trigger_type' => $trigger_type,
215
+ 'trigger_value' => $trigger_value
216
+ );
217
+ $event->addParams($params);
218
+ $event->addPayload($payload);
219
+ $isActive = true;
220
+ }
221
+ }break;
222
+
223
+ case 'fdp_purchase':{
224
+ if($this->getOption("fdp_view_category_enabled")){
225
+ $params = Helpers\getFDPPurchaseEventParams();
226
+ $params["content_type"] = $this->getOption("fdp_content_type");
227
+ $params["value"] = $this->getOption("fdp_purchase_value");
228
+ $params["currency"] = $this->getOption("fdp_currency");
229
+ $trigger_type = $this->getOption("fdp_purchase_event_fire");
230
+ $trigger_value = $trigger_type == "scroll_pos" ?
231
+ $this->getOption("fdp_purchase_event_fire_scroll") :
232
+ $this->getOption("fdp_purchase_event_fire_css");
233
+ $payload = array(
234
+ 'name' => "Purchase",
235
+ 'trigger_type' => $trigger_type,
236
+ 'trigger_value' => $trigger_value
237
+ );
238
+ $event->addParams($params);
239
+ $event->addPayload($payload);
240
+ $isActive = true;
241
+ }
242
+ }break;
243
+
244
+ case 'woo_view_content': {
245
+ $eventData = $this->getWooViewContentEventParams();
246
+ if($eventData) {
247
+ $isActive = true;
248
+ $this->addDataToEvent($eventData,$event);
249
+ }
250
+ }break;
251
+ case 'woo_add_to_cart_on_cart_page':
252
+ case 'woo_add_to_cart_on_checkout_page': {
253
+ $eventData = $this->getWooAddToCartOnCartEventParams();
254
+ if ($eventData) {
255
+ $isActive = true;
256
+ $this->addDataToEvent($eventData, $event);
257
+ }
258
+ }break;
259
+ case 'woo_remove_from_cart': {
260
+ if(is_a($event,GroupedEvent::class)) {
261
+ foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
262
+ $eventData = $this->getWooRemoveFromCartParams( $cart_item );
263
+ if ($eventData) {
264
+ $child = new SingleEvent($cart_item_key,EventTypes::$DYNAMIC);
265
+ $isActive = true;
266
+ $this->addDataToEvent($eventData, $child);
267
+ $event->addEvent($child);
268
+ }
269
+ }
270
+ }
271
+ }break;
272
+ case 'woo_view_category':{
273
+ $eventData = $this->getWooViewCategoryEventParams();
274
+ if($eventData) {
275
+ $isActive = true;
276
+ $this->addDataToEvent($eventData,$event);
277
+ }
278
+ }break;
279
+ case 'woo_initiate_checkout': {
280
+ $eventData = $this->getWooInitiateCheckoutEventParams();
281
+ if ($eventData) {
282
+ $isActive = true;
283
+ $this->addDataToEvent($eventData, $event);
284
+ }
285
+ }break;
286
+ case 'woo_purchase':{
287
+ $eventData = $this->getWooPurchaseEventParams();
288
+ if ($eventData) {
289
+ $isActive = true;
290
+ $this->addDataToEvent($eventData, $event);
291
+ }
292
+ }break;
293
+ case 'edd_view_content':{
294
+ $eventData = $this->getEddViewContentEventParams();
295
+ if ($eventData) {
296
+ $isActive = true;
297
+ $this->addDataToEvent($eventData, $event);
298
+ }
299
+ } break;
300
+ case 'edd_add_to_cart_on_checkout_page': {
301
+ $eventData = $this->getEddCartEventParams('AddToCart');
302
+ if ($eventData) {
303
+ $isActive = true;
304
+ $this->addDataToEvent($eventData, $event);
305
+ }
306
+ }break;
307
+ case 'edd_remove_from_cart': {
308
+ if(is_a($event,GroupedEvent::class)) {
309
+ foreach ( edd_get_cart_contents() as $cart_item_key => $cart_item ) {
310
+ $eventData = $this->getEddRemoveFromCartParams( $cart_item );
311
+ if ($eventData) {
312
+ $child = new SingleEvent($cart_item_key,EventTypes::$DYNAMIC);
313
+ $isActive = true;
314
+ $this->addDataToEvent($eventData, $child);
315
+ $event->addEvent($child);
316
+ }
317
+ }
318
+ }
319
+ }break;
320
+
321
+ case 'edd_view_category': {
322
+ $eventData = $this->getEddViewCategoryEventParams();
323
+ if ($eventData) {
324
+ $isActive = true;
325
+ $this->addDataToEvent($eventData, $event);
326
+ }
327
+ }break;
328
+
329
+ case 'edd_initiate_checkout': {
330
+ $eventData = $this->getEddCartEventParams('InitiateCheckout');
331
+ if ($eventData) {
332
+ $isActive = true;
333
+ $this->addDataToEvent($eventData, $event);
334
+ }
335
+ }break;
336
+ case 'edd_purchase': {
337
+
338
+ $eventData = $this->getEddCartEventParams('Purchase');
339
+ if ($eventData) {
340
+ $isActive = true;
341
+ $this->addDataToEvent($eventData, $event);
342
+ }
343
+ }break;
344
+ case 'woo_complete_registration': {
345
+ if( $this->getOption("woo_complete_registration_fire_every_time") ||
346
+ get_user_meta( get_current_user_id(), 'pys_complete_registration', true )
347
+ ) {
348
+ $eventData = $this->getWooCompleteRegistrationEventParams();
349
+ if($eventData) {
350
+ $isActive = true;
351
+ $this->addDataToEvent($eventData,$event);
352
+ }
353
+ }
354
+ }break;
355
+
356
+ case 'woo_add_to_cart_on_button_click':{
357
+ if ( $this->getOption( 'woo_add_to_cart_enabled' ) && PYS()->getOption( 'woo_add_to_cart_on_button_click' ) ) {
358
+ $isActive = true;
359
+ $event->addPayload(array(
360
+ 'name'=>"AddToCart"
361
+ ));
362
+ }
363
+ }break;
364
+
365
+ case 'edd_add_to_cart_on_button_click':{
366
+ if ( $this->getOption( 'edd_add_to_cart_enabled' ) && PYS()->getOption( 'edd_add_to_cart_on_button_click' ) ) {
367
+ $isActive = true;
368
+ $event->addPayload(array(
369
+ 'name'=>"AddToCart"
370
+ ));
371
+ }
372
+ }break;
373
+
374
+
375
+ }
376
+ if($isActive) {
377
+ if( !isset($event->payload['pixelIds']) )
378
+ $event->payload['pixelIds'] = $this->getPixelIDs();
379
+
380
+ if($this->isServerApiEnabled()) {
381
+ $event->payload['eventID'] = EventIdGenerator::guidv4();
382
+ }
383
+ }
384
+ return $isActive;
385
+ }
386
 
387
  public function getEventData( $eventType, $args = null ) {
388
 
392
  $eventData = false;
393
 
394
  switch ( $eventType ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
395
 
396
  case 'woo_add_to_cart_on_button_click':
397
  $eventData = $this->getWooAddToCartOnButtonClickEventParams( $args ); break;
398
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
399
  case 'edd_add_to_cart_on_button_click':
400
  $eventData = $this->getEddAddToCartOnButtonClickEventParams( $args ); break;
401
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
402
  default: return false; // event does not supported
403
  }
404
 
 
 
 
 
 
 
405
  return $eventData;
406
  }
407
 
500
  }
501
 
502
  $params['content_type'] = 'product';
503
+ $params['content_ids'] = $post_ids ;
504
 
505
  }
506
 
609
  $product = wc_get_product( $post->ID );
610
  if(!$product) return false;
611
  $content_id = Helpers\getFacebookWooProductContentId( $post->ID );
612
+ $params['content_ids'] = $content_id ;
613
 
614
  if ( wooProductIsType( $product, 'variable' ) && ! $this->getOption( 'woo_variable_as_simple' ) ) {
615
  $params['content_type'] = 'product_group';
642
  if ( Helpers\isDefaultWooContentIdLogic() ) {
643
 
644
  // Facebook for WooCommerce plugin does not support new Dynamic Ads parameters
645
+ $params['contents'] = array(
646
  array(
647
  'id' => (string) reset( $content_id ),
648
  'quantity' => 1,
649
  //'item_price' => getWooProductPriceToDisplay( $post->ID ),
650
  )
651
+ );
652
 
653
  }
654
 
702
  $content_id = Helpers\getFacebookWooProductContentId( $product_id );
703
 
704
  $params['content_type'] = 'product';
705
+ $params['content_ids'] = $content_id ;
706
 
707
  // content_name, category_name, tags
708
  $params['tags'] = implode( ', ', getObjectTerms( 'product_tag', $product_id ) );
711
  $params['num_items'] = $cart_item['quantity'];
712
  $params['product_price'] = getWooProductPriceToDisplay( $product_id );
713
 
714
+ $params['contents'] = array(
715
  array(
716
  'id' => (string) reset( $content_id ),
717
  'quantity' => $cart_item['quantity'],
718
  //'item_price' => getWooProductPriceToDisplay( $product_id ),
719
  )
720
+ ) ;
721
 
722
  return array( 'data' => $params );
723
 
761
  $content_ids = array_merge( Helpers\getFacebookWooProductContentId( $posts[ $i ]->ID ), $content_ids );
762
  }
763
 
764
+ $params['content_ids'] = $content_ids ;
765
 
766
  return array(
767
  'name' => 'ViewCategory',
834
  }
835
 
836
  $params['content_type'] = 'product';
837
+ $params['content_ids'] = $content_ids ;
838
  $params['content_name'] = implode( ', ', $content_names );
839
  $params['category_name'] = implode( ', ', $content_categories );
840
 
842
  if ( Helpers\isDefaultWooContentIdLogic() ) {
843
 
844
  // Facebook for WooCommerce plugin does not support new Dynamic Ads parameters
845
+ $params['contents'] = $contents ;
846
 
847
  }
848
 
858
 
859
  $params['value'] = getWooEventValueOrder( $value_option, $order, $global_value );
860
  $params['currency'] = get_woocommerce_currency();
861
+ $params['order_id'] = $order_id;
862
 
863
  return array(
864
  'name' => 'Purchase',
918
 
919
  $params = array(
920
  'content_type' => 'product',
921
+ 'content_ids' => Helpers\getFacebookEddDownloadContentId( $post->ID ) ,
922
  );
923
 
924
  // content_name, category_name
939
 
940
 
941
  // contents
942
+ $params['contents'] = array(
943
  array(
944
  'id' => (string) $post->ID,
945
  'quantity' => 1,
946
  //'item_price' => getEddDownloadPriceToDisplay( $post->ID ),
947
  )
948
+ );
949
 
950
  return array(
951
  'name' => 'ViewContent',
971
 
972
  $params = array(
973
  'content_type' => 'product',
974
+ 'content_ids' => Helpers\getFacebookEddDownloadContentId( $post->ID ),
975
  );
976
 
977
  // content_name, category_name
991
  }
992
 
993
  // contents
994
+ $params['contents'] = array(
995
  array(
996
  'id' => (string) $download_id,
997
  'quantity' => 1,
998
  //'item_price' => getEddDownloadPriceToDisplay( $download_id ),
999
  )
1000
+ );
1001
 
1002
  return array(
1003
  'data' => $params,
1099
 
1100
  }
1101
 
1102
+ $params['content_ids'] = $content_ids ;
1103
  $params['content_name'] = implode( ', ', $content_names );
1104
  $params['category_name'] = implode( ', ', $content_categories );
1105
+ $params['contents'] = $contents ;
1106
 
1107
  $tags = array_slice( array_unique( $tags ), 0, 100 );
1108
  $params['tags'] = implode( ', ', $tags );
1149
  $params = array_merge( $params, Helpers\getEddCustomAudiencesOptimizationParams( $download_id ) );
1150
 
1151
  $params['num_items'] = $cart_item['quantity'];
1152
+ $params['contents'] = array(
1153
  array(
1154
  'id' => (string) $download_id,
1155
  'quantity' => $cart_item['quantity'],
1156
  //'item_price' => getEddDownloadPriceToDisplay( $download_id, $price_index ),
1157
  )
1158
+ );
1159
 
1160
  return array( 'data' => $params );
1161
 
1191
  $content_ids );
1192
  }
1193
 
1194
+ $params['content_ids'] = $content_ids ;
1195
 
1196
  return array(
1197
  'name' => 'ViewCategory',
1249
 
1250
 
1251
 
1252
+ private function getWooCompleteRegistrationEventParams($args=null) {
1253
 
1254
  if ( ! $this->getOption( 'complete_registration_event_enabled' ) ) {
1255
  return false;
1257
  $params = array();
1258
  if($this->getOption("woo_complete_registration_fire_every_time") &&
1259
  $this->getOption("woo_complete_registration_use_custom_value") &&
1260
+ isset( $_REQUEST['key'] ) && $_REQUEST['key'] != "" ) {
1261
  $params = Helpers\getCompleteRegistrationOrderParams();
1262
  }
1263
  $name = isset($args) && $args == "hCR" ? "hCR" : 'CompleteRegistration';
modules/facebook/function-helpers.php CHANGED
@@ -51,7 +51,7 @@ function getAdvancedMatchingParams() {
51
  * Add purchase WooCommerce Advanced Matching params
52
  */
53
 
54
- if ( is_order_received_page() && isset( $_REQUEST['key'] ) ) {
55
  $key = sanitize_key($_REQUEST['key']);
56
  $order_id = wc_get_order_id_by_order_key($key );
57
  $order = wc_get_order( $order_id );
@@ -283,7 +283,7 @@ function getWooSingleAddToCartParams( $product_id, $qty = 1 ) {
283
  $content_id = getFacebookWooProductContentId( $product_id );
284
 
285
  $params['content_type'] = 'product';
286
- $params['content_ids'] = json_encode( $content_id );
287
 
288
  // content_name, category_name, tags
289
  $params['tags'] = implode( ', ', PixelYourSite\getObjectTerms( 'product_tag', $product_id ) );
@@ -357,7 +357,7 @@ function getWooCartParams( $context = 'cart' ) {
357
 
358
  }
359
 
360
- $params['content_ids'] = json_encode( $content_ids );
361
  $params['content_name'] = implode( ', ', $content_names );
362
  $params['category_name'] = implode( ', ', $content_categories );
363
 
@@ -492,7 +492,7 @@ function getFDPViewCategoryEventParams() {
492
 
493
  $params = array(
494
  'content_name' => single_term_title('', 0),
495
- 'content_ids' => json_encode($ids)
496
  );
497
 
498
  return $params;
51
  * Add purchase WooCommerce Advanced Matching params
52
  */
53
 
54
+ if ( is_order_received_page() && isset( $_REQUEST['key'] ) && $_REQUEST['key'] != "" ) {
55
  $key = sanitize_key($_REQUEST['key']);
56
  $order_id = wc_get_order_id_by_order_key($key );
57
  $order = wc_get_order( $order_id );
283
  $content_id = getFacebookWooProductContentId( $product_id );
284
 
285
  $params['content_type'] = 'product';
286
+ $params['content_ids'] = ( $content_id );
287
 
288
  // content_name, category_name, tags
289
  $params['tags'] = implode( ', ', PixelYourSite\getObjectTerms( 'product_tag', $product_id ) );
357
 
358
  }
359
 
360
+ $params['content_ids'] = ( $content_ids );
361
  $params['content_name'] = implode( ', ', $content_names );
362
  $params['category_name'] = implode( ', ', $content_categories );
363
 
492
 
493
  $params = array(
494
  'content_name' => single_term_title('', 0),
495
+ 'content_ids' => ($ids)
496
  );
497
 
498
  return $params;
modules/facebook/options_defaults.json CHANGED
@@ -61,5 +61,7 @@
61
  "woo_complete_registration_percent_value": "",
62
  "woo_complete_registration_global_value": "",
63
  "woo_complete_registration_custom_value_old": "",
64
- "woo_complete_registration_send_from_server": true
 
 
65
  }
61
  "woo_complete_registration_percent_value": "",
62
  "woo_complete_registration_global_value": "",
63
  "woo_complete_registration_custom_value_old": "",
64
+ "woo_complete_registration_send_from_server": true,
65
+
66
+ "signal_events_enabled": true
67
  }
modules/facebook/options_fields.json CHANGED
@@ -60,5 +60,7 @@
60
  "woo_complete_registration_use_custom_value": "checkbox",
61
  "woo_complete_registration_custom_value": "radio",
62
  "woo_complete_registration_custom_value_old": "radio",
63
- "woo_complete_registration_send_from_server": "checkbox"
 
 
64
  }
60
  "woo_complete_registration_use_custom_value": "checkbox",
61
  "woo_complete_registration_custom_value": "radio",
62
  "woo_complete_registration_custom_value_old": "radio",
63
+ "woo_complete_registration_send_from_server": "checkbox",
64
+
65
+ "signal_events_enabled": "checkbox"
66
  }
modules/google_analytics/ga.php CHANGED
@@ -107,66 +107,207 @@ class GA extends Settings implements Pixel {
107
  );
108
 
109
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
 
111
- public function getEventData( $eventType, $args = null ) {
112
-
113
- if ( ! $this->configured() ) {
114
- return false;
115
- }
116
- $data = false;
117
- switch ( $eventType ) {
118
- case 'init_event':
119
- $data = $this->getPageViewEventParams(); break;
120
 
121
- case 'search_event':
122
- $data = $this->getSearchEventData();break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
 
124
- case 'custom_event':
125
- $data = $this->getCustomEventData( $args );break;
126
 
127
- case 'woo_view_content':
128
- $data = $this->getWooViewContentEventParams();break;
 
 
 
 
 
129
 
130
- case 'woo_add_to_cart_on_button_click':
131
- $data = $this->getWooAddToCartOnButtonClickEventParams( $args );break;
 
 
 
 
 
132
 
133
- case 'woo_add_to_cart_on_cart_page':
134
- case 'woo_add_to_cart_on_checkout_page':
135
- $data = $this->getWooAddToCartOnCartEventParams();break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
 
137
- case 'woo_remove_from_cart':
138
- $data = $this->getWooRemoveFromCartParams( $args );break;
139
 
140
- case 'woo_view_category':
141
- $data = $this->getWooViewCategoryEventParams();break;
 
142
 
143
- case 'woo_initiate_checkout':
144
- $data = $this->getWooInitiateCheckoutEventParams();break;
 
 
 
 
 
145
 
146
- case 'woo_purchase':
147
- $data = $this->getWooPurchaseEventParams();break;
148
 
149
- case 'edd_view_content':
150
- $data = $this->getEddViewContentEventParams();break;
 
 
 
 
 
 
 
 
151
 
152
  case 'edd_add_to_cart_on_button_click':
153
  $data = $this->getEddAddToCartOnButtonClickEventParams( $args );break;
154
 
155
- case 'edd_add_to_cart_on_checkout_page':
156
- $data = $this->getEddCartEventParams( 'add_to_cart' );break;
157
-
158
- case 'edd_remove_from_cart':
159
- $data = $this->getEddRemoveFromCartParams( $args );break;
160
-
161
- case 'edd_view_category':
162
- $data = $this->getEddViewCategoryEventParams();break;
163
-
164
- case 'edd_initiate_checkout':
165
- $data = $this->getEddCartEventParams( 'begin_checkout' );break;
166
-
167
- case 'edd_purchase':
168
- $data = $this->getEddCartEventParams( 'purchase' );break;
169
-
170
  }
171
  if($data && $this->isUse4Version()) {
172
  unset($data['data']['event_category']);
@@ -176,10 +317,6 @@ class GA extends Settings implements Pixel {
176
  unset($data['data']['ecomm_prodid']);
177
  unset($data['data']['ecomm_totalvalue']);
178
 
179
- $data['data']['content_name'] = get_the_title();
180
- $data['data']['event_url'] = \PixelYourSite\getCurrentPageUrl();
181
- $data['data']['post_id'] = get_the_ID();
182
- $data['data']['post_type'] = get_post_type();
183
  }
184
 
185
  return $data;
107
  );
108
 
109
  }
110
+ //refactor it
111
+ private function addDataToEvent($eventData,&$event) {
112
+ $params = $eventData["data"];
113
+ unset($eventData["data"]);
114
+ //unset($eventData["name"]);
115
+ $event->addParams($params);
116
+ $event->addPayload($eventData);
117
+ }
118
+ public function addParamsToEvent(&$event)
119
+ {
120
+ if (!$this->configured()) {
121
+ return false;
122
+ }
123
+ $isActive = false;
124
+ switch ($event->getId()) {
125
+ case "signal_page_scroll":
126
+ case "signal_time_on_page":
127
+ case "signal_form":
128
+ case "signal_download":
129
+ case "signal_comment": {
130
+ $isActive = $this->getOption('signal_events_enabled');
131
+ $event->addParams(array('non_interaction'=>$this->getOption("signal_events_non_interactive")));
132
+ }break;
133
+
134
+ case 'init_event': {
135
+ $eventData = $this->getPageViewEventParams();
136
+ if ($eventData) {
137
+ $isActive = true;
138
+ $this->addDataToEvent($eventData, $event);
139
+ }
140
+ } break;
141
+ case 'search_event': {
142
+ if($this->isUse4Version())
143
+ $eventData = getSearchEventDataV4();
144
+ else
145
+ $eventData = $this->getSearchEventData();
146
+ if ($eventData) {
147
+ $isActive = true;
148
+ $this->addDataToEvent($eventData, $event);
149
+ }
150
 
151
+ }break;
 
 
 
 
 
 
 
 
152
 
153
+ case 'custom_event': {
154
+ $eventData = $this->getCustomEventData($event->args);
155
+ if ($eventData) {
156
+ $isActive = true;
157
+ $this->addDataToEvent($eventData, $event);
158
+ }
159
+ }break;
160
+ case 'woo_view_content': {
161
+ $eventData = $this->getWooViewContentEventParams();
162
+ if ($eventData) {
163
+ $isActive = true;
164
+ $this->addDataToEvent($eventData, $event);
165
+ }
166
+ }break;
167
+ case 'woo_add_to_cart_on_cart_page':
168
+ case 'woo_add_to_cart_on_checkout_page':{
169
+ $eventData = $this->getWooAddToCartOnCartEventParams();
170
+ if ($eventData) {
171
+ $isActive = true;
172
+ $this->addDataToEvent($eventData, $event);
173
+ }
174
+ }break;
175
+ case 'woo_remove_from_cart':{
176
+ foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
177
+ if(is_a($event,GroupedEvent::class)) {
178
+ $eventData = $this->getWooRemoveFromCartParams( $cart_item );
179
+ if ($eventData) {
180
+ $child = new SingleEvent($cart_item_key,EventTypes::$DYNAMIC);
181
+ $isActive = true;
182
+ $this->addDataToEvent($eventData, $child);
183
+ $event->addEvent($child);
184
+ }
185
+ }
186
+ }
187
+ }break;
188
+ case 'woo_initiate_checkout':{
189
+ $eventData = $this->getWooInitiateCheckoutEventParams();
190
+ if ($eventData) {
191
+ $isActive = true;
192
+ $this->addDataToEvent($eventData, $event);
193
+ }
194
+ }break;
195
+ case 'woo_purchase':{
196
+ $eventData = $this->getWooPurchaseEventParams();
197
+ if ($eventData) {
198
+ $isActive = true;
199
+ $this->addDataToEvent($eventData, $event);
200
+ }
201
+ }break;
202
+ case 'woo_view_item_list':
203
+ {
204
+ $eventData = $this->getWooViewCategoryEventParams();
205
+ if ($eventData) {
206
+ $isActive = true;
207
+ $this->addDataToEvent($eventData, $event);
208
+ }
209
+ }break;
210
+ case 'edd_view_content': {
211
+ $eventData = $this->getEddViewContentEventParams();
212
+ if ($eventData) {
213
+ $isActive = true;
214
+ $this->addDataToEvent($eventData, $event);
215
+ }
216
+ }break;
217
+ case 'edd_add_to_cart_on_checkout_page': {
218
+ $eventData = $this->getEddCartEventParams('add_to_cart');
219
+ if ($eventData) {
220
+ $isActive = true;
221
+ $this->addDataToEvent($eventData, $event);
222
+ }
223
+ }break;
224
+ case 'edd_remove_from_cart': {
225
+ if(is_a($event,GroupedEvent::class)) {
226
+ foreach ( edd_get_cart_contents() as $cart_item_key => $cart_item ) {
227
+ $eventData = $this->getEddRemoveFromCartParams( $cart_item );
228
+ if ($eventData) {
229
+ $child = new SingleEvent($cart_item_key,EventTypes::$DYNAMIC);
230
+ $isActive = true;
231
+ $this->addDataToEvent($eventData, $child);
232
+ $event->addEvent($child);
233
+ }
234
+ }
235
+ }
236
 
237
+ }break;
 
238
 
239
+ case 'edd_view_category': {
240
+ $eventData = $this->getEddViewCategoryEventParams();
241
+ if ($eventData) {
242
+ $isActive = true;
243
+ $this->addDataToEvent($eventData, $event);
244
+ }
245
+ }break;
246
 
247
+ case 'edd_initiate_checkout': {
248
+ $eventData = $this->getEddCartEventParams('begin_checkout');
249
+ if ($eventData) {
250
+ $isActive = true;
251
+ $this->addDataToEvent($eventData, $event);
252
+ }
253
+ }break;
254
 
255
+ case 'edd_purchase': {
256
+ $eventData = $this->getEddCartEventParams('purchase');
257
+ if ($eventData) {
258
+ $isActive = true;
259
+ $this->addDataToEvent($eventData, $event);
260
+ }
261
+ }break;
262
+
263
+ case 'woo_add_to_cart_on_button_click': {
264
+ if ( $this->getOption( 'woo_add_to_cart_enabled' ) && PYS()->getOption( 'woo_add_to_cart_on_button_click' ) ) {
265
+ $isActive = true;
266
+ $event->addPayload(array(
267
+ 'name'=>"add_to_cart"
268
+ ));
269
+ }
270
+ }break;
271
+
272
+ case 'edd_add_to_cart_on_button_click': {
273
+ if ( $this->getOption( 'edd_add_to_cart_enabled' ) && PYS()->getOption( 'edd_add_to_cart_on_button_click' ) ) {
274
+ $isActive = true;
275
+ $event->addPayload(array(
276
+ 'name'=>"add_to_cart"
277
+ ));
278
+ }
279
+ }break;
280
+ }
281
 
282
+ if($isActive) {
 
283
 
284
+ if($this->isUse4Version()) {
285
+ unset($event->params['event_category']);
286
+ unset($event->params['event_label']);
287
 
288
+ unset($event->params['ecomm_pagetype']);
289
+ unset($event->params['ecomm_prodid']);
290
+ unset($event->params['ecomm_totalvalue']);
291
+ }
292
+ }
293
+ return $isActive;
294
+ }
295
 
 
 
296
 
297
+ public function getEventData( $eventType, $args = null ) {
298
+
299
+ if ( ! $this->configured() ) {
300
+ return false;
301
+ }
302
+ $data = false;
303
+ switch ( $eventType ) {
304
+
305
+ case 'woo_add_to_cart_on_button_click':
306
+ $data = $this->getWooAddToCartOnButtonClickEventParams( $args );break;
307
 
308
  case 'edd_add_to_cart_on_button_click':
309
  $data = $this->getEddAddToCartOnButtonClickEventParams( $args );break;
310
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
311
  }
312
  if($data && $this->isUse4Version()) {
313
  unset($data['data']['event_category']);
317
  unset($data['data']['ecomm_prodid']);
318
  unset($data['data']['ecomm_totalvalue']);
319
 
 
 
 
 
320
  }
321
 
322
  return $data;
modules/google_analytics/options_defaults.json CHANGED
@@ -55,6 +55,8 @@
55
  "edd_view_category_non_interactive": true,
56
 
57
  "disable_advertising_features": false,
58
- "disable_advertising_personalization": false
 
 
59
 
60
  }
55
  "edd_view_category_non_interactive": true,
56
 
57
  "disable_advertising_features": false,
58
+ "disable_advertising_personalization": false,
59
+
60
+ "signal_events_enabled": true
61
 
62
  }
modules/google_analytics/options_fields.json CHANGED
@@ -55,5 +55,7 @@
55
  "edd_view_category_non_interactive": "checkbox",
56
 
57
  "disable_advertising_features": "checkbox",
58
- "disable_advertising_personalization": "checkbox"
 
 
59
  }
55
  "edd_view_category_non_interactive": "checkbox",
56
 
57
  "disable_advertising_features": "checkbox",
58
+ "disable_advertising_personalization": "checkbox",
59
+
60
+ "signal_events_enabled": "checkbox"
61
  }
pixelyoursite.php CHANGED
@@ -4,9 +4,9 @@ if ( ! defined( 'ABSPATH' ) ) {
4
  exit; // Exit if accessed directly.
5
  }
6
 
7
- define( 'PYS_FREE_VERSION', '7.2.1.1' );
8
- define( 'PYS_FREE_PINTEREST_MIN_VERSION', '2.0.6' );
9
- define( 'PYS_FREE_BING_MIN_VERSION', '1.0.0' );
10
  define( 'PYS_FREE_PATH', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
11
  define( 'PYS_FREE_URL', untrailingslashit( plugin_dir_url( __FILE__ ) ) );
12
 
@@ -21,6 +21,16 @@ require_once PYS_FREE_PATH.'/vendor/autoload.php';
21
  require_once PYS_FREE_PATH.'/includes/class-event-id-generator.php';
22
  require_once PYS_FREE_PATH.'/includes/functions-common.php';
23
  require_once PYS_FREE_PATH.'/includes/functions-admin.php';
 
 
 
 
 
 
 
 
 
 
24
  require_once PYS_FREE_PATH.'/includes/functions-custom-event.php';
25
  require_once PYS_FREE_PATH.'/includes/functions-woo.php';
26
  require_once PYS_FREE_PATH.'/includes/functions-edd.php';
4
  exit; // Exit if accessed directly.
5
  }
6
 
7
+ define( 'PYS_FREE_VERSION', '8.0.0' );
8
+ define( 'PYS_FREE_PINTEREST_MIN_VERSION', '3.0.0' );
9
+ define( 'PYS_FREE_BING_MIN_VERSION', '2.0.0' );
10
  define( 'PYS_FREE_PATH', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
11
  define( 'PYS_FREE_URL', untrailingslashit( plugin_dir_url( __FILE__ ) ) );
12
 
21
  require_once PYS_FREE_PATH.'/includes/class-event-id-generator.php';
22
  require_once PYS_FREE_PATH.'/includes/functions-common.php';
23
  require_once PYS_FREE_PATH.'/includes/functions-admin.php';
24
+ require_once PYS_FREE_PATH.'/includes/events/class-event.php';
25
+ require_once PYS_FREE_PATH.'/includes/events/interface-events.php';
26
+ require_once PYS_FREE_PATH.'/includes/events/class-event-single.php';
27
+ require_once PYS_FREE_PATH.'/includes/events/class-event-grouped.php';
28
+ require_once PYS_FREE_PATH.'/includes/events/class-events-signal.php';
29
+ require_once PYS_FREE_PATH.'/includes/events/class-events-woo.php';
30
+ require_once PYS_FREE_PATH.'/includes/events/class-events-edd.php';
31
+ require_once PYS_FREE_PATH.'/includes/events/class-events-fdp.php';
32
+ require_once PYS_FREE_PATH.'/includes/events/class-events-custom.php';
33
+
34
  require_once PYS_FREE_PATH.'/includes/functions-custom-event.php';
35
  require_once PYS_FREE_PATH.'/includes/functions-woo.php';
36
  require_once PYS_FREE_PATH.'/includes/functions-edd.php';
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: Facebook Pixel, New Facebook Pixel, Facebook Conversion Pixel, Facebook Pi
4
  Requires at least: 3.0.1
5
  Requires PHP: 5.4
6
  Tested up to: 5.6
7
- Stable tag: 7.2.1.1
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -23,7 +23,11 @@ Take a look at this video to see the plugin in action:
23
 
24
  [youtube https://www.youtube.com/watch?v=OUHU9lZ2lwQ]
25
 
26
- NEW: Facebook Pixel Conversion API: [Learn how to configure Conversion API events](https://www.pixelyoursite.com/documentation/configure-server-side-events)
 
 
 
 
27
 
28
  TRACK EVERYTHING WITH A SINGLE PLUGIN:
29
 
@@ -35,11 +39,11 @@ The Pinterest Tag: via [free add-on](https://www.pixelyoursite.com/pinterest-tag
35
  Google Ads (formerly AdWords) [pro feature](https://www.pixelyoursite.com/google-ads-tag)
36
  Microsoft (BING) UET tag [paid add-on](https://www.pixelyoursite.com/bing-tag)
37
 
38
- **Want to learn about your Facebook Pixel? We've put toghether [this help page](https://www.pixelyoursite.com/how-to-use-facebook-pixel)**
39
 
40
  FANTASTIC WOOCOMMERCE INTEGRATION:
41
 
42
- Facebook Pixe: every e-commerce related event is fired automatically. Conversion value is tracked for each event. All the events are Dynamic Product Ads ready (content_ids and content_type parameters always present).
43
  Google Analytics: Enhanced Ecommerce implementation.
44
  Head & Footer scripts: you can insert scripts on the WooCommerce “order-received” page.
45
  Pinterest e-commerce events.
@@ -111,7 +115,7 @@ The AdSense event: fired when an AdSense ad is clicked, it lets you optimize you
111
 
112
  EVEN MORE EVENTS’ TRIGGERS:
113
 
114
- On top of the free triggers (URL equals and URL contains), the pro version will let you fire more complexe events:
115
 
116
  Clicks on CSS Selector: you can target virtually any clicks, like buttons, images etc.
117
  Mouse over CSS Selector
@@ -392,6 +396,33 @@ NO, absolutely not! We don't track any type of data about your website. We simpl
392
  == Changelog ==
393
 
394
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
395
  = PixelYourSite 7.2.1.1 =
396
 
397
  * Simple update to remove some unwanted files from v7.2.1
@@ -422,7 +453,7 @@ NO, absolutely not! We don't track any type of data about your website. We simpl
422
 
423
  * ViewContent, AddToCart, InitiateCheckout events related to WooCommerce have value turned ON by default. The reasons are explained in [this video](https://www.youtube.com/watch?v=neH2Hc6xXUU)
424
 
425
- * Samll change to the contents parameter for some Facebook Pixel events that had the potential to trigger a warning related to currency or value.
426
 
427
 
428
  = PixelYourSite 7.1.14 =
4
  Requires at least: 3.0.1
5
  Requires PHP: 5.4
6
  Tested up to: 5.6
7
+ Stable tag: 7.8.0
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
23
 
24
  [youtube https://www.youtube.com/watch?v=OUHU9lZ2lwQ]
25
 
26
+ NEW: Facebook Pixel Conversion API: [Learn how to configure Conversion API events](https://www.pixelyoursite.com/documentation/configure-server-side-events)
27
+
28
+ Learn how to [verify your domain on Facebook](https://www.pixelyoursite.com/verify-domain-facebook)
29
+
30
+ Learn about [the Signal Event and Aggregated Event Measurement](https://www.pixelyoursite.com/signal-custom-conversions-aem)
31
 
32
  TRACK EVERYTHING WITH A SINGLE PLUGIN:
33
 
39
  Google Ads (formerly AdWords) [pro feature](https://www.pixelyoursite.com/google-ads-tag)
40
  Microsoft (BING) UET tag [paid add-on](https://www.pixelyoursite.com/bing-tag)
41
 
42
+ **Want to learn about your Facebook Pixel? We've put together [this help page](https://www.pixelyoursite.com/how-to-use-facebook-pixel)**
43
 
44
  FANTASTIC WOOCOMMERCE INTEGRATION:
45
 
46
+ Facebook Pixel: every e-commerce related event is fired automatically. Conversion value is tracked for each event. All the events are Dynamic Product Ads ready (content_ids and content_type parameters always present).
47
  Google Analytics: Enhanced Ecommerce implementation.
48
  Head & Footer scripts: you can insert scripts on the WooCommerce “order-received” page.
49
  Pinterest e-commerce events.
115
 
116
  EVEN MORE EVENTS’ TRIGGERS:
117
 
118
+ On top of the free triggers (URL equals and URL contains), the pro version will let you fire more complex events:
119
 
120
  Clicks on CSS Selector: you can target virtually any clicks, like buttons, images etc.
121
  Mouse over CSS Selector
396
  == Changelog ==
397
 
398
 
399
+ = PixelYourSite 7.8.0 =
400
+
401
+ This is a major update. Please [visit this page](https://www.pixelyoursite.com/pixelyoursite-v8) for more info about what's new with V8.
402
+
403
+ * New section showing how many active events you have.
404
+
405
+ * A new set of common parameters added to all events from all installed tags. You can find a list of the common parameters on the plugin’s main page.
406
+
407
+ * A new Signal event that replaces most Global Events. You can find its settings on the plugin’s main page.
408
+
409
+ * We removed the GeneralEvent. If you have audiences or conversions based on it, you need to replace them. It’s a good idea to use the default Page View event instead.
410
+
411
+ * All events fired automatically (Signal, Search, WooCommerce events, Easy Digital Download events) have a new ON/OFF button visible before you open the event’s settings.
412
+
413
+ * We turned off some of the less popular WooCommerce and EDD events. You can turn them back on if you need to.
414
+
415
+ * Update for Facebook API.
416
+
417
+ * Update for some mandatory CAPI events parameters.
418
+
419
+ * Fix: issue with Oxygen builder.
420
+
421
+ * Fix: Uncaught Error: Class ‘PYS_PRO_GLOBAL
422
+
423
+ * Other small code changes.
424
+
425
+
426
  = PixelYourSite 7.2.1.1 =
427
 
428
  * Simple update to remove some unwanted files from v7.2.1
453
 
454
  * ViewContent, AddToCart, InitiateCheckout events related to WooCommerce have value turned ON by default. The reasons are explained in [this video](https://www.youtube.com/watch?v=neH2Hc6xXUU)
455
 
456
+ * Small change to the contents parameter for some Facebook Pixel events that had the potential to trigger a warning related to currency or value.
457
 
458
 
459
  = PixelYourSite 7.1.14 =
vendor/composer/autoload_classmap.php CHANGED
@@ -55,7 +55,6 @@ return array(
55
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountAdRulesHistory' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountAdRulesHistory.php',
56
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountAdVolume' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountAdVolume.php',
57
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountContentFilterLevelsInheritance' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountContentFilterLevelsInheritance.php',
58
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountCreationRequest' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountCreationRequest.php',
59
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountDefaultDestination' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountDefaultDestination.php',
60
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountDefaultObjective' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountDefaultObjective.php',
61
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountDeliveryEstimate' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountDeliveryEstimate.php',
@@ -109,6 +108,7 @@ return array(
109
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativeLinkDataSponsorshipInfoSpec' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativeLinkDataSponsorshipInfoSpec.php',
110
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativeLinkDataTemplateVideoSpec' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativeLinkDataTemplateVideoSpec.php',
111
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativeObjectStorySpec' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativeObjectStorySpec.php',
 
112
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativePhotoData' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativePhotoData.php',
113
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativePhotoDataMediaElements' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativePhotoDataMediaElements.php',
114
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativePlaceData' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativePlaceData.php',
@@ -193,6 +193,12 @@ return array(
193
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessApplicationRequest' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessApplicationRequest.php',
194
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessAssetGroup' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessAssetGroup.php',
195
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessAssetSharingAgreement' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessAssetSharingAgreement.php',
 
 
 
 
 
 
196
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessOwnedObjectOnBehalfOfRequest' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessOwnedObjectOnBehalfOfRequest.php',
197
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessPageRequest' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessPageRequest.php',
198
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessRoleRequest' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessRoleRequest.php',
@@ -212,6 +218,7 @@ return array(
212
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogBasedTargeting' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogBasedTargeting.php',
213
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogItemAppLinks' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogItemAppLinks.php',
214
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogItemAppealStatus' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogItemAppealStatus.php',
 
215
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogSubVerticalList' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogSubVerticalList.php',
216
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CheckBatchRequestStatus' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CheckBatchRequestStatus.php',
217
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ChildEvent' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ChildEvent.php',
@@ -275,7 +282,6 @@ return array(
275
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\EntityAtTextRange' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/EntityAtTextRange.php',
276
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Event' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Event.php',
277
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\EventSourceGroup' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/EventSourceGroup.php',
278
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\EventTour' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/EventTour.php',
279
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Experience' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Experience.php',
280
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ExtendedCredit' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ExtendedCredit.php',
281
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ExtendedCreditAllocationConfig' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ExtendedCreditAllocationConfig.php',
@@ -287,7 +293,6 @@ return array(
287
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountAdRulesHistoryFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountAdRulesHistoryFields.php',
288
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountAdVolumeFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountAdVolumeFields.php',
289
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountContentFilterLevelsInheritanceFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountContentFilterLevelsInheritanceFields.php',
290
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountCreationRequestFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountCreationRequestFields.php',
291
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountDefaultDestinationFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountDefaultDestinationFields.php',
292
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountDefaultObjectiveFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountDefaultObjectiveFields.php',
293
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountDeliveryEstimateFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountDeliveryEstimateFields.php',
@@ -342,6 +347,7 @@ return array(
342
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativeLinkDataSponsorshipInfoSpecFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativeLinkDataSponsorshipInfoSpecFields.php',
343
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativeLinkDataTemplateVideoSpecFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativeLinkDataTemplateVideoSpecFields.php',
344
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativeObjectStorySpecFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativeObjectStorySpecFields.php',
 
345
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativePhotoDataFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativePhotoDataFields.php',
346
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativePhotoDataMediaElementsFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativePhotoDataMediaElementsFields.php',
347
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativePlaceDataFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativePlaceDataFields.php',
@@ -446,6 +452,7 @@ return array(
446
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogBasedTargetingFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogBasedTargetingFields.php',
447
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogItemAppLinksFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogItemAppLinksFields.php',
448
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogItemAppealStatusFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogItemAppealStatusFields.php',
 
449
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogSubVerticalListFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogSubVerticalListFields.php',
450
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CheckBatchRequestStatusFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CheckBatchRequestStatusFields.php',
451
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ChildEventFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ChildEventFields.php',
@@ -494,7 +501,6 @@ return array(
494
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\EntityAtTextRangeFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EntityAtTextRangeFields.php',
495
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\EventFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EventFields.php',
496
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\EventSourceGroupFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EventSourceGroupFields.php',
497
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\EventTourFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EventTourFields.php',
498
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ExperienceFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ExperienceFields.php',
499
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ExtendedCreditAllocationConfigFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ExtendedCreditAllocationConfigFields.php',
500
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ExtendedCreditFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ExtendedCreditFields.php',
@@ -503,7 +509,6 @@ return array(
503
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FAMEExportConfigFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FAMEExportConfigFields.php',
504
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FlexibleTargetingFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FlexibleTargetingFields.php',
505
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FlightFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FlightFields.php',
506
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FriendListFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FriendListFields.php',
507
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FundingSourceDetailsCouponFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FundingSourceDetailsCouponFields.php',
508
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FundingSourceDetailsFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FundingSourceDetailsFields.php',
509
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\GroupFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/GroupFields.php',
@@ -555,7 +560,6 @@ return array(
555
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\NativeOfferViewFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/NativeOfferViewFields.php',
556
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\NullNodeFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/NullNodeFields.php',
557
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OfflineConversionDataSetFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OfflineConversionDataSetFields.php',
558
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OfflineTermsOfServiceFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OfflineTermsOfServiceFields.php',
559
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OffsitePixelFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OffsitePixelFields.php',
560
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OpenGraphContextFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OpenGraphContextFields.php',
561
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OracleTransactionFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OracleTransactionFields.php',
@@ -577,6 +581,7 @@ return array(
577
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PageUpcomingChangeFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PageUpcomingChangeFields.php',
578
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PageUserMessageThreadLabelFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PageUserMessageThreadLabelFields.php',
579
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PartnerStudyFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PartnerStudyFields.php',
 
580
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PaymentPricepointsFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PaymentPricepointsFields.php',
581
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PaymentSubscriptionFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PaymentSubscriptionFields.php',
582
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PermissionFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PermissionFields.php',
@@ -669,9 +674,7 @@ return array(
669
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserIDForPageFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserIDForPageFields.php',
670
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserLeadGenDisclaimerResponseFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserLeadGenDisclaimerResponseFields.php',
671
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserLeadGenFieldDataFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserLeadGenFieldDataFields.php',
672
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserPaymentMethodsInfoFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserPaymentMethodsInfoFields.php',
673
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserPaymentMobilePricepointsFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserPaymentMobilePricepointsFields.php',
674
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserPaymentModulesOptionsFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserPaymentModulesOptionsFields.php',
675
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ValueBasedEligibleSourceFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ValueBasedEligibleSourceFields.php',
676
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\VehicleFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/VehicleFields.php',
677
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\VehicleOfferFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/VehicleOfferFields.php',
@@ -687,12 +690,12 @@ return array(
687
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\VoipInfoFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/VoipInfoFields.php',
688
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WebAppLinkFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WebAppLinkFields.php',
689
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WhatsAppBusinessAccountFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WhatsAppBusinessAccountFields.php',
 
690
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WindowsAppLinkFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WindowsAppLinkFields.php',
691
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WindowsPhoneAppLinkFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WindowsPhoneAppLinkFields.php',
692
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WorkUserFrontlineFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WorkUserFrontlineFields.php',
693
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\FlexibleTargeting' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FlexibleTargeting.php',
694
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Flight' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Flight.php',
695
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\FriendList' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FriendList.php',
696
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\FundingSourceDetails' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FundingSourceDetails.php',
697
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\FundingSourceDetailsCoupon' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FundingSourceDetailsCoupon.php',
698
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Group' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Group.php',
@@ -745,7 +748,6 @@ return array(
745
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\NullNode' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/NullNode.php',
746
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ObjectStorySpec' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ObjectStorySpec.php',
747
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OfflineConversionDataSet' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OfflineConversionDataSet.php',
748
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OfflineTermsOfService' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OfflineTermsOfService.php',
749
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OffsitePixel' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OffsitePixel.php',
750
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OpenGraphContext' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OpenGraphContext.php',
751
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OracleTransaction' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OracleTransaction.php',
@@ -767,6 +769,7 @@ return array(
767
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PageUpcomingChange' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PageUpcomingChange.php',
768
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PageUserMessageThreadLabel' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PageUserMessageThreadLabel.php',
769
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PartnerStudy' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PartnerStudy.php',
 
770
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PaymentPricepoints' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PaymentPricepoints.php',
771
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PaymentSubscription' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PaymentSubscription.php',
772
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Permission' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Permission.php',
@@ -827,6 +830,7 @@ return array(
827
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Search\\DemographicSearchClasses' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Search/DemographicSearchClasses.php',
828
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Search\\TargetingSearchTypes' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Search/TargetingSearchTypes.php',
829
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\SecuritySettings' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/SecuritySettings.php',
 
830
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\AdsPixelSettings' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/AdsPixelSettings.php',
831
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\AsyncClient' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/AsyncClient.php',
832
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\BatchProcessor' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/BatchProcessor.php',
@@ -845,6 +849,12 @@ return array(
845
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\Singleton' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Singleton.php',
846
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\UserData' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/UserData.php',
847
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\Util' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Util.php',
 
 
 
 
 
 
848
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\SplitTestWinner' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/SplitTestWinner.php',
849
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\StoreCatalogSettings' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/StoreCatalogSettings.php',
850
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\SystemUser' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/SystemUser.php',
@@ -883,9 +893,7 @@ return array(
883
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserIDForPage' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserIDForPage.php',
884
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserLeadGenDisclaimerResponse' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserLeadGenDisclaimerResponse.php',
885
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserLeadGenFieldData' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserLeadGenFieldData.php',
886
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserPaymentMethodsInfo' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserPaymentMethodsInfo.php',
887
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserPaymentMobilePricepoints' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserPaymentMobilePricepoints.php',
888
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserPaymentModulesOptions' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserPaymentModulesOptions.php',
889
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ValueBasedEligibleSource' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ValueBasedEligibleSource.php',
890
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\AdAccountAdRulesHistoryActionValues' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountAdRulesHistoryActionValues.php',
891
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\AdAccountAdRulesHistoryEvaluationTypeValues' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountAdRulesHistoryEvaluationTypeValues.php',
@@ -1167,6 +1175,7 @@ return array(
1167
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PageTemporaryStatusValues' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageTemporaryStatusValues.php',
1168
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PageTypes' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageTypes.php',
1169
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PageUnpublishedContentTypeValues' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageUnpublishedContentTypeValues.php',
 
1170
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PermissionStatusValues' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PermissionStatusValues.php',
1171
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PhotoBackdatedTimeGranularityValues' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PhotoBackdatedTimeGranularityValues.php',
1172
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PhotoTypeValues' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PhotoTypeValues.php',
@@ -1257,17 +1266,15 @@ return array(
1257
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\VoipInfo' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/VoipInfo.php',
1258
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WebAppLink' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WebAppLink.php',
1259
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WhatsAppBusinessAccount' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WhatsAppBusinessAccount.php',
 
1260
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WindowsAppLink' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WindowsAppLink.php',
1261
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WindowsPhoneAppLink' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WindowsPhoneAppLink.php',
1262
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WorkUserFrontline' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WorkUserFrontline.php',
1263
  'PYS_PRO_GLOBAL\\FacebookAds\\Session' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Session.php',
1264
  'PYS_PRO_GLOBAL\\FacebookAds\\SessionInterface' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/SessionInterface.php',
1265
  'PYS_PRO_GLOBAL\\FacebookAds\\TypeChecker' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/TypeChecker.php',
1266
- 'PYS_PRO_GLOBAL\\GuzzleHttp\\BodySummarizer' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/BodySummarizer.php',
1267
- 'PYS_PRO_GLOBAL\\GuzzleHttp\\BodySummarizerInterface' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/BodySummarizerInterface.php',
1268
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Client' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Client.php',
1269
  'PYS_PRO_GLOBAL\\GuzzleHttp\\ClientInterface' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/ClientInterface.php',
1270
- 'PYS_PRO_GLOBAL\\GuzzleHttp\\ClientTrait' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/ClientTrait.php',
1271
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\CookieJar' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJar.php',
1272
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\CookieJarInterface' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php',
1273
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\FileCookieJar' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php',
@@ -1279,6 +1286,7 @@ return array(
1279
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\GuzzleException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/GuzzleException.php',
1280
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\InvalidArgumentException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php',
1281
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\RequestException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/RequestException.php',
 
1282
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\ServerException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/ServerException.php',
1283
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\TooManyRedirectsException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php',
1284
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\TransferException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/TransferException.php',
@@ -1292,7 +1300,6 @@ return array(
1292
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Handler\\Proxy' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Handler/Proxy.php',
1293
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Handler\\StreamHandler' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Handler/StreamHandler.php',
1294
  'PYS_PRO_GLOBAL\\GuzzleHttp\\MessageFormatter' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/MessageFormatter.php',
1295
- 'PYS_PRO_GLOBAL\\GuzzleHttp\\MessageFormatterInterface' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/MessageFormatterInterface.php',
1296
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Middleware' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Middleware.php',
1297
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Pool' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Pool.php',
1298
  'PYS_PRO_GLOBAL\\GuzzleHttp\\PrepareBodyMiddleware' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php',
@@ -1344,11 +1351,9 @@ return array(
1344
  'PYS_PRO_GLOBAL\\GuzzleHttp\\RequestOptions' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/RequestOptions.php',
1345
  'PYS_PRO_GLOBAL\\GuzzleHttp\\RetryMiddleware' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/RetryMiddleware.php',
1346
  'PYS_PRO_GLOBAL\\GuzzleHttp\\TransferStats' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/TransferStats.php',
 
1347
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Utils' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Utils.php',
1348
- 'PYS_PRO_GLOBAL\\Psr\\Http\\Client\\ClientExceptionInterface' => $baseDir . '/vendor_prefix/psr/http-client/src/ClientExceptionInterface.php',
1349
- 'PYS_PRO_GLOBAL\\Psr\\Http\\Client\\ClientInterface' => $baseDir . '/vendor_prefix/psr/http-client/src/ClientInterface.php',
1350
- 'PYS_PRO_GLOBAL\\Psr\\Http\\Client\\NetworkExceptionInterface' => $baseDir . '/vendor_prefix/psr/http-client/src/NetworkExceptionInterface.php',
1351
- 'PYS_PRO_GLOBAL\\Psr\\Http\\Client\\RequestExceptionInterface' => $baseDir . '/vendor_prefix/psr/http-client/src/RequestExceptionInterface.php',
1352
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\MessageInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/MessageInterface.php',
1353
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\RequestInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/RequestInterface.php',
1354
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\ResponseInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/ResponseInterface.php',
@@ -1356,5 +1361,11 @@ return array(
1356
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\StreamInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/StreamInterface.php',
1357
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\UploadedFileInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/UploadedFileInterface.php',
1358
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\UriInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/UriInterface.php',
 
 
 
 
 
 
1359
  'WP_Async_Task' => $vendorDir . '/techcrunch/wp-async-task/wp-async-task.php',
1360
  );
55
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountAdRulesHistory' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountAdRulesHistory.php',
56
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountAdVolume' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountAdVolume.php',
57
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountContentFilterLevelsInheritance' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountContentFilterLevelsInheritance.php',
 
58
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountDefaultDestination' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountDefaultDestination.php',
59
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountDefaultObjective' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountDefaultObjective.php',
60
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountDeliveryEstimate' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountDeliveryEstimate.php',
108
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativeLinkDataSponsorshipInfoSpec' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativeLinkDataSponsorshipInfoSpec.php',
109
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativeLinkDataTemplateVideoSpec' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativeLinkDataTemplateVideoSpec.php',
110
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativeObjectStorySpec' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativeObjectStorySpec.php',
111
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativeOmnichannelLinkSpec' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativeOmnichannelLinkSpec.php',
112
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativePhotoData' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativePhotoData.php',
113
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativePhotoDataMediaElements' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativePhotoDataMediaElements.php',
114
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativePlaceData' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativePlaceData.php',
193
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessApplicationRequest' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessApplicationRequest.php',
194
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessAssetGroup' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessAssetGroup.php',
195
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessAssetSharingAgreement' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessAssetSharingAgreement.php',
196
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessDataAPI\\Content' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/Content.php',
197
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessDataAPI\\CustomData' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/CustomData.php',
198
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessDataAPI\\Event' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/Event.php',
199
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessDataAPI\\EventRequest' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/EventRequest.php',
200
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessDataAPI\\EventResponse' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/EventResponse.php',
201
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessDataAPI\\UserData' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/UserData.php',
202
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessOwnedObjectOnBehalfOfRequest' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessOwnedObjectOnBehalfOfRequest.php',
203
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessPageRequest' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessPageRequest.php',
204
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessRoleRequest' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessRoleRequest.php',
218
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogBasedTargeting' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogBasedTargeting.php',
219
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogItemAppLinks' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogItemAppLinks.php',
220
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogItemAppealStatus' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogItemAppealStatus.php',
221
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogItemChannelsToIntegrityStatus' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogItemChannelsToIntegrityStatus.php',
222
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogSubVerticalList' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogSubVerticalList.php',
223
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CheckBatchRequestStatus' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CheckBatchRequestStatus.php',
224
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ChildEvent' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ChildEvent.php',
282
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\EntityAtTextRange' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/EntityAtTextRange.php',
283
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Event' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Event.php',
284
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\EventSourceGroup' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/EventSourceGroup.php',
 
285
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Experience' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Experience.php',
286
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ExtendedCredit' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ExtendedCredit.php',
287
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ExtendedCreditAllocationConfig' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ExtendedCreditAllocationConfig.php',
293
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountAdRulesHistoryFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountAdRulesHistoryFields.php',
294
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountAdVolumeFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountAdVolumeFields.php',
295
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountContentFilterLevelsInheritanceFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountContentFilterLevelsInheritanceFields.php',
 
296
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountDefaultDestinationFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountDefaultDestinationFields.php',
297
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountDefaultObjectiveFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountDefaultObjectiveFields.php',
298
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountDeliveryEstimateFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountDeliveryEstimateFields.php',
347
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativeLinkDataSponsorshipInfoSpecFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativeLinkDataSponsorshipInfoSpecFields.php',
348
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativeLinkDataTemplateVideoSpecFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativeLinkDataTemplateVideoSpecFields.php',
349
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativeObjectStorySpecFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativeObjectStorySpecFields.php',
350
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativeOmnichannelLinkSpecFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativeOmnichannelLinkSpecFields.php',
351
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativePhotoDataFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativePhotoDataFields.php',
352
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativePhotoDataMediaElementsFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativePhotoDataMediaElementsFields.php',
353
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativePlaceDataFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativePlaceDataFields.php',
452
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogBasedTargetingFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogBasedTargetingFields.php',
453
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogItemAppLinksFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogItemAppLinksFields.php',
454
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogItemAppealStatusFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogItemAppealStatusFields.php',
455
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogItemChannelsToIntegrityStatusFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogItemChannelsToIntegrityStatusFields.php',
456
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogSubVerticalListFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogSubVerticalListFields.php',
457
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CheckBatchRequestStatusFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CheckBatchRequestStatusFields.php',
458
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ChildEventFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ChildEventFields.php',
501
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\EntityAtTextRangeFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EntityAtTextRangeFields.php',
502
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\EventFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EventFields.php',
503
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\EventSourceGroupFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EventSourceGroupFields.php',
 
504
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ExperienceFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ExperienceFields.php',
505
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ExtendedCreditAllocationConfigFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ExtendedCreditAllocationConfigFields.php',
506
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ExtendedCreditFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ExtendedCreditFields.php',
509
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FAMEExportConfigFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FAMEExportConfigFields.php',
510
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FlexibleTargetingFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FlexibleTargetingFields.php',
511
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FlightFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FlightFields.php',
 
512
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FundingSourceDetailsCouponFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FundingSourceDetailsCouponFields.php',
513
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FundingSourceDetailsFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FundingSourceDetailsFields.php',
514
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\GroupFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/GroupFields.php',
560
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\NativeOfferViewFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/NativeOfferViewFields.php',
561
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\NullNodeFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/NullNodeFields.php',
562
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OfflineConversionDataSetFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OfflineConversionDataSetFields.php',
 
563
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OffsitePixelFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OffsitePixelFields.php',
564
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OpenGraphContextFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OpenGraphContextFields.php',
565
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OracleTransactionFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OracleTransactionFields.php',
581
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PageUpcomingChangeFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PageUpcomingChangeFields.php',
582
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PageUserMessageThreadLabelFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PageUserMessageThreadLabelFields.php',
583
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PartnerStudyFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PartnerStudyFields.php',
584
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PaymentEnginePaymentFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PaymentEnginePaymentFields.php',
585
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PaymentPricepointsFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PaymentPricepointsFields.php',
586
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PaymentSubscriptionFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PaymentSubscriptionFields.php',
587
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PermissionFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PermissionFields.php',
674
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserIDForPageFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserIDForPageFields.php',
675
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserLeadGenDisclaimerResponseFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserLeadGenDisclaimerResponseFields.php',
676
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserLeadGenFieldDataFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserLeadGenFieldDataFields.php',
 
677
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserPaymentMobilePricepointsFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserPaymentMobilePricepointsFields.php',
 
678
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ValueBasedEligibleSourceFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ValueBasedEligibleSourceFields.php',
679
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\VehicleFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/VehicleFields.php',
680
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\VehicleOfferFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/VehicleOfferFields.php',
690
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\VoipInfoFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/VoipInfoFields.php',
691
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WebAppLinkFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WebAppLinkFields.php',
692
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WhatsAppBusinessAccountFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WhatsAppBusinessAccountFields.php',
693
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WhatsAppBusinessProfileFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WhatsAppBusinessProfileFields.php',
694
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WindowsAppLinkFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WindowsAppLinkFields.php',
695
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WindowsPhoneAppLinkFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WindowsPhoneAppLinkFields.php',
696
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WorkUserFrontlineFields' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WorkUserFrontlineFields.php',
697
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\FlexibleTargeting' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FlexibleTargeting.php',
698
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Flight' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Flight.php',
 
699
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\FundingSourceDetails' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FundingSourceDetails.php',
700
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\FundingSourceDetailsCoupon' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FundingSourceDetailsCoupon.php',
701
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Group' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Group.php',
748
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\NullNode' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/NullNode.php',
749
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ObjectStorySpec' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ObjectStorySpec.php',
750
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OfflineConversionDataSet' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OfflineConversionDataSet.php',
 
751
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OffsitePixel' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OffsitePixel.php',
752
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OpenGraphContext' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OpenGraphContext.php',
753
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OracleTransaction' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OracleTransaction.php',
769
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PageUpcomingChange' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PageUpcomingChange.php',
770
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PageUserMessageThreadLabel' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PageUserMessageThreadLabel.php',
771
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PartnerStudy' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PartnerStudy.php',
772
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PaymentEnginePayment' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PaymentEnginePayment.php',
773
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PaymentPricepoints' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PaymentPricepoints.php',
774
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PaymentSubscription' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PaymentSubscription.php',
775
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Permission' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Permission.php',
830
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Search\\DemographicSearchClasses' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Search/DemographicSearchClasses.php',
831
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Search\\TargetingSearchTypes' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Search/TargetingSearchTypes.php',
832
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\SecuritySettings' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/SecuritySettings.php',
833
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\ActionSource' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/ActionSource.php',
834
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\AdsPixelSettings' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/AdsPixelSettings.php',
835
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\AsyncClient' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/AsyncClient.php',
836
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\BatchProcessor' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/BatchProcessor.php',
849
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\Singleton' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Singleton.php',
850
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\UserData' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/UserData.php',
851
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\Util' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Util.php',
852
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Signal\\Content' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/Content.php',
853
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Signal\\CustomData' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/CustomData.php',
854
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Signal\\Event' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/Event.php',
855
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Signal\\EventRequest' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/EventRequest.php',
856
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Signal\\UserData' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/UserData.php',
857
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Signal\\Util' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/Util.php',
858
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\SplitTestWinner' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/SplitTestWinner.php',
859
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\StoreCatalogSettings' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/StoreCatalogSettings.php',
860
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\SystemUser' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/SystemUser.php',
893
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserIDForPage' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserIDForPage.php',
894
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserLeadGenDisclaimerResponse' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserLeadGenDisclaimerResponse.php',
895
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserLeadGenFieldData' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserLeadGenFieldData.php',
 
896
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserPaymentMobilePricepoints' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserPaymentMobilePricepoints.php',
 
897
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ValueBasedEligibleSource' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ValueBasedEligibleSource.php',
898
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\AdAccountAdRulesHistoryActionValues' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountAdRulesHistoryActionValues.php',
899
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\AdAccountAdRulesHistoryEvaluationTypeValues' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountAdRulesHistoryEvaluationTypeValues.php',
1175
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PageTemporaryStatusValues' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageTemporaryStatusValues.php',
1176
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PageTypes' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageTypes.php',
1177
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PageUnpublishedContentTypeValues' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageUnpublishedContentTypeValues.php',
1178
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PaymentEnginePaymentReasonValues' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PaymentEnginePaymentReasonValues.php',
1179
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PermissionStatusValues' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PermissionStatusValues.php',
1180
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PhotoBackdatedTimeGranularityValues' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PhotoBackdatedTimeGranularityValues.php',
1181
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PhotoTypeValues' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PhotoTypeValues.php',
1266
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\VoipInfo' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/VoipInfo.php',
1267
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WebAppLink' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WebAppLink.php',
1268
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WhatsAppBusinessAccount' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WhatsAppBusinessAccount.php',
1269
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WhatsAppBusinessProfile' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WhatsAppBusinessProfile.php',
1270
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WindowsAppLink' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WindowsAppLink.php',
1271
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WindowsPhoneAppLink' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WindowsPhoneAppLink.php',
1272
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WorkUserFrontline' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WorkUserFrontline.php',
1273
  'PYS_PRO_GLOBAL\\FacebookAds\\Session' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Session.php',
1274
  'PYS_PRO_GLOBAL\\FacebookAds\\SessionInterface' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/SessionInterface.php',
1275
  'PYS_PRO_GLOBAL\\FacebookAds\\TypeChecker' => $baseDir . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/TypeChecker.php',
 
 
1276
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Client' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Client.php',
1277
  'PYS_PRO_GLOBAL\\GuzzleHttp\\ClientInterface' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/ClientInterface.php',
 
1278
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\CookieJar' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJar.php',
1279
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\CookieJarInterface' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php',
1280
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\FileCookieJar' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php',
1286
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\GuzzleException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/GuzzleException.php',
1287
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\InvalidArgumentException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php',
1288
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\RequestException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/RequestException.php',
1289
+ 'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\SeekException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/SeekException.php',
1290
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\ServerException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/ServerException.php',
1291
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\TooManyRedirectsException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php',
1292
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\TransferException' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/TransferException.php',
1300
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Handler\\Proxy' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Handler/Proxy.php',
1301
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Handler\\StreamHandler' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Handler/StreamHandler.php',
1302
  'PYS_PRO_GLOBAL\\GuzzleHttp\\MessageFormatter' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/MessageFormatter.php',
 
1303
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Middleware' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Middleware.php',
1304
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Pool' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Pool.php',
1305
  'PYS_PRO_GLOBAL\\GuzzleHttp\\PrepareBodyMiddleware' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php',
1351
  'PYS_PRO_GLOBAL\\GuzzleHttp\\RequestOptions' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/RequestOptions.php',
1352
  'PYS_PRO_GLOBAL\\GuzzleHttp\\RetryMiddleware' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/RetryMiddleware.php',
1353
  'PYS_PRO_GLOBAL\\GuzzleHttp\\TransferStats' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/TransferStats.php',
1354
+ 'PYS_PRO_GLOBAL\\GuzzleHttp\\UriTemplate' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/UriTemplate.php',
1355
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Utils' => $baseDir . '/vendor_prefix/guzzlehttp/guzzle/src/Utils.php',
1356
+ 'PYS_PRO_GLOBAL\\Normalizer' => $baseDir . '/vendor_prefix/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php',
 
 
 
1357
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\MessageInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/MessageInterface.php',
1358
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\RequestInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/RequestInterface.php',
1359
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\ResponseInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/ResponseInterface.php',
1361
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\StreamInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/StreamInterface.php',
1362
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\UploadedFileInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/UploadedFileInterface.php',
1363
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\UriInterface' => $baseDir . '/vendor_prefix/psr/http-message/src/UriInterface.php',
1364
+ 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Idn\\Idn' => $baseDir . '/vendor_prefix/symfony/polyfill-intl-idn/Idn.php',
1365
+ 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Idn\\Info' => $baseDir . '/vendor_prefix/symfony/polyfill-intl-idn/Info.php',
1366
+ 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\DisallowedRanges' => $baseDir . '/vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php',
1367
+ 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\Regex' => $baseDir . '/vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/Regex.php',
1368
+ 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => $baseDir . '/vendor_prefix/symfony/polyfill-intl-normalizer/Normalizer.php',
1369
+ 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Php72\\Php72' => $baseDir . '/vendor_prefix/symfony/polyfill-php72/Php72.php',
1370
  'WP_Async_Task' => $vendorDir . '/techcrunch/wp-async-task/wp-async-task.php',
1371
  );
vendor/composer/autoload_static.php CHANGED
@@ -70,7 +70,6 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
70
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountAdRulesHistory' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountAdRulesHistory.php',
71
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountAdVolume' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountAdVolume.php',
72
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountContentFilterLevelsInheritance' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountContentFilterLevelsInheritance.php',
73
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountCreationRequest' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountCreationRequest.php',
74
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountDefaultDestination' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountDefaultDestination.php',
75
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountDefaultObjective' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountDefaultObjective.php',
76
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountDeliveryEstimate' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountDeliveryEstimate.php',
@@ -124,6 +123,7 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
124
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativeLinkDataSponsorshipInfoSpec' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativeLinkDataSponsorshipInfoSpec.php',
125
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativeLinkDataTemplateVideoSpec' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativeLinkDataTemplateVideoSpec.php',
126
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativeObjectStorySpec' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativeObjectStorySpec.php',
 
127
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativePhotoData' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativePhotoData.php',
128
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativePhotoDataMediaElements' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativePhotoDataMediaElements.php',
129
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativePlaceData' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativePlaceData.php',
@@ -208,6 +208,12 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
208
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessApplicationRequest' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessApplicationRequest.php',
209
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessAssetGroup' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessAssetGroup.php',
210
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessAssetSharingAgreement' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessAssetSharingAgreement.php',
 
 
 
 
 
 
211
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessOwnedObjectOnBehalfOfRequest' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessOwnedObjectOnBehalfOfRequest.php',
212
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessPageRequest' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessPageRequest.php',
213
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessRoleRequest' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessRoleRequest.php',
@@ -227,6 +233,7 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
227
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogBasedTargeting' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogBasedTargeting.php',
228
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogItemAppLinks' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogItemAppLinks.php',
229
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogItemAppealStatus' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogItemAppealStatus.php',
 
230
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogSubVerticalList' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogSubVerticalList.php',
231
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CheckBatchRequestStatus' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CheckBatchRequestStatus.php',
232
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ChildEvent' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ChildEvent.php',
@@ -290,7 +297,6 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
290
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\EntityAtTextRange' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/EntityAtTextRange.php',
291
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Event' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Event.php',
292
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\EventSourceGroup' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/EventSourceGroup.php',
293
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\EventTour' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/EventTour.php',
294
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Experience' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Experience.php',
295
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ExtendedCredit' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ExtendedCredit.php',
296
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ExtendedCreditAllocationConfig' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ExtendedCreditAllocationConfig.php',
@@ -302,7 +308,6 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
302
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountAdRulesHistoryFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountAdRulesHistoryFields.php',
303
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountAdVolumeFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountAdVolumeFields.php',
304
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountContentFilterLevelsInheritanceFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountContentFilterLevelsInheritanceFields.php',
305
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountCreationRequestFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountCreationRequestFields.php',
306
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountDefaultDestinationFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountDefaultDestinationFields.php',
307
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountDefaultObjectiveFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountDefaultObjectiveFields.php',
308
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountDeliveryEstimateFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountDeliveryEstimateFields.php',
@@ -357,6 +362,7 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
357
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativeLinkDataSponsorshipInfoSpecFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativeLinkDataSponsorshipInfoSpecFields.php',
358
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativeLinkDataTemplateVideoSpecFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativeLinkDataTemplateVideoSpecFields.php',
359
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativeObjectStorySpecFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativeObjectStorySpecFields.php',
 
360
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativePhotoDataFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativePhotoDataFields.php',
361
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativePhotoDataMediaElementsFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativePhotoDataMediaElementsFields.php',
362
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativePlaceDataFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativePlaceDataFields.php',
@@ -461,6 +467,7 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
461
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogBasedTargetingFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogBasedTargetingFields.php',
462
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogItemAppLinksFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogItemAppLinksFields.php',
463
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogItemAppealStatusFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogItemAppealStatusFields.php',
 
464
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogSubVerticalListFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogSubVerticalListFields.php',
465
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CheckBatchRequestStatusFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CheckBatchRequestStatusFields.php',
466
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ChildEventFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ChildEventFields.php',
@@ -509,7 +516,6 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
509
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\EntityAtTextRangeFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EntityAtTextRangeFields.php',
510
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\EventFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EventFields.php',
511
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\EventSourceGroupFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EventSourceGroupFields.php',
512
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\EventTourFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EventTourFields.php',
513
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ExperienceFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ExperienceFields.php',
514
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ExtendedCreditAllocationConfigFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ExtendedCreditAllocationConfigFields.php',
515
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ExtendedCreditFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ExtendedCreditFields.php',
@@ -518,7 +524,6 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
518
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FAMEExportConfigFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FAMEExportConfigFields.php',
519
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FlexibleTargetingFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FlexibleTargetingFields.php',
520
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FlightFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FlightFields.php',
521
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FriendListFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FriendListFields.php',
522
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FundingSourceDetailsCouponFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FundingSourceDetailsCouponFields.php',
523
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FundingSourceDetailsFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FundingSourceDetailsFields.php',
524
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\GroupFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/GroupFields.php',
@@ -570,7 +575,6 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
570
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\NativeOfferViewFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/NativeOfferViewFields.php',
571
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\NullNodeFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/NullNodeFields.php',
572
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OfflineConversionDataSetFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OfflineConversionDataSetFields.php',
573
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OfflineTermsOfServiceFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OfflineTermsOfServiceFields.php',
574
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OffsitePixelFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OffsitePixelFields.php',
575
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OpenGraphContextFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OpenGraphContextFields.php',
576
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OracleTransactionFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OracleTransactionFields.php',
@@ -592,6 +596,7 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
592
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PageUpcomingChangeFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PageUpcomingChangeFields.php',
593
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PageUserMessageThreadLabelFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PageUserMessageThreadLabelFields.php',
594
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PartnerStudyFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PartnerStudyFields.php',
 
595
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PaymentPricepointsFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PaymentPricepointsFields.php',
596
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PaymentSubscriptionFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PaymentSubscriptionFields.php',
597
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PermissionFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PermissionFields.php',
@@ -684,9 +689,7 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
684
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserIDForPageFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserIDForPageFields.php',
685
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserLeadGenDisclaimerResponseFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserLeadGenDisclaimerResponseFields.php',
686
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserLeadGenFieldDataFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserLeadGenFieldDataFields.php',
687
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserPaymentMethodsInfoFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserPaymentMethodsInfoFields.php',
688
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserPaymentMobilePricepointsFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserPaymentMobilePricepointsFields.php',
689
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserPaymentModulesOptionsFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserPaymentModulesOptionsFields.php',
690
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ValueBasedEligibleSourceFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ValueBasedEligibleSourceFields.php',
691
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\VehicleFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/VehicleFields.php',
692
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\VehicleOfferFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/VehicleOfferFields.php',
@@ -702,12 +705,12 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
702
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\VoipInfoFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/VoipInfoFields.php',
703
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WebAppLinkFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WebAppLinkFields.php',
704
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WhatsAppBusinessAccountFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WhatsAppBusinessAccountFields.php',
 
705
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WindowsAppLinkFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WindowsAppLinkFields.php',
706
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WindowsPhoneAppLinkFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WindowsPhoneAppLinkFields.php',
707
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WorkUserFrontlineFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WorkUserFrontlineFields.php',
708
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\FlexibleTargeting' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FlexibleTargeting.php',
709
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Flight' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Flight.php',
710
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\FriendList' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FriendList.php',
711
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\FundingSourceDetails' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FundingSourceDetails.php',
712
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\FundingSourceDetailsCoupon' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FundingSourceDetailsCoupon.php',
713
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Group' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Group.php',
@@ -760,7 +763,6 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
760
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\NullNode' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/NullNode.php',
761
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ObjectStorySpec' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ObjectStorySpec.php',
762
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OfflineConversionDataSet' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OfflineConversionDataSet.php',
763
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OfflineTermsOfService' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OfflineTermsOfService.php',
764
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OffsitePixel' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OffsitePixel.php',
765
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OpenGraphContext' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OpenGraphContext.php',
766
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OracleTransaction' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OracleTransaction.php',
@@ -782,6 +784,7 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
782
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PageUpcomingChange' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PageUpcomingChange.php',
783
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PageUserMessageThreadLabel' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PageUserMessageThreadLabel.php',
784
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PartnerStudy' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PartnerStudy.php',
 
785
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PaymentPricepoints' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PaymentPricepoints.php',
786
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PaymentSubscription' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PaymentSubscription.php',
787
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Permission' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Permission.php',
@@ -842,6 +845,7 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
842
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Search\\DemographicSearchClasses' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Search/DemographicSearchClasses.php',
843
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Search\\TargetingSearchTypes' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Search/TargetingSearchTypes.php',
844
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\SecuritySettings' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/SecuritySettings.php',
 
845
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\AdsPixelSettings' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/AdsPixelSettings.php',
846
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\AsyncClient' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/AsyncClient.php',
847
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\BatchProcessor' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/BatchProcessor.php',
@@ -860,6 +864,12 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
860
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\Singleton' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Singleton.php',
861
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\UserData' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/UserData.php',
862
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\Util' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Util.php',
 
 
 
 
 
 
863
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\SplitTestWinner' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/SplitTestWinner.php',
864
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\StoreCatalogSettings' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/StoreCatalogSettings.php',
865
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\SystemUser' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/SystemUser.php',
@@ -898,9 +908,7 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
898
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserIDForPage' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserIDForPage.php',
899
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserLeadGenDisclaimerResponse' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserLeadGenDisclaimerResponse.php',
900
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserLeadGenFieldData' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserLeadGenFieldData.php',
901
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserPaymentMethodsInfo' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserPaymentMethodsInfo.php',
902
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserPaymentMobilePricepoints' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserPaymentMobilePricepoints.php',
903
- 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserPaymentModulesOptions' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserPaymentModulesOptions.php',
904
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ValueBasedEligibleSource' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ValueBasedEligibleSource.php',
905
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\AdAccountAdRulesHistoryActionValues' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountAdRulesHistoryActionValues.php',
906
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\AdAccountAdRulesHistoryEvaluationTypeValues' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountAdRulesHistoryEvaluationTypeValues.php',
@@ -1182,6 +1190,7 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
1182
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PageTemporaryStatusValues' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageTemporaryStatusValues.php',
1183
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PageTypes' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageTypes.php',
1184
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PageUnpublishedContentTypeValues' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageUnpublishedContentTypeValues.php',
 
1185
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PermissionStatusValues' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PermissionStatusValues.php',
1186
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PhotoBackdatedTimeGranularityValues' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PhotoBackdatedTimeGranularityValues.php',
1187
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PhotoTypeValues' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PhotoTypeValues.php',
@@ -1272,17 +1281,15 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
1272
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\VoipInfo' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/VoipInfo.php',
1273
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WebAppLink' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WebAppLink.php',
1274
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WhatsAppBusinessAccount' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WhatsAppBusinessAccount.php',
 
1275
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WindowsAppLink' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WindowsAppLink.php',
1276
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WindowsPhoneAppLink' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WindowsPhoneAppLink.php',
1277
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WorkUserFrontline' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WorkUserFrontline.php',
1278
  'PYS_PRO_GLOBAL\\FacebookAds\\Session' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Session.php',
1279
  'PYS_PRO_GLOBAL\\FacebookAds\\SessionInterface' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/SessionInterface.php',
1280
  'PYS_PRO_GLOBAL\\FacebookAds\\TypeChecker' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/TypeChecker.php',
1281
- 'PYS_PRO_GLOBAL\\GuzzleHttp\\BodySummarizer' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/BodySummarizer.php',
1282
- 'PYS_PRO_GLOBAL\\GuzzleHttp\\BodySummarizerInterface' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/BodySummarizerInterface.php',
1283
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Client' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Client.php',
1284
  'PYS_PRO_GLOBAL\\GuzzleHttp\\ClientInterface' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/ClientInterface.php',
1285
- 'PYS_PRO_GLOBAL\\GuzzleHttp\\ClientTrait' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/ClientTrait.php',
1286
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\CookieJar' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJar.php',
1287
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\CookieJarInterface' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php',
1288
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\FileCookieJar' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php',
@@ -1294,6 +1301,7 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
1294
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\GuzzleException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/GuzzleException.php',
1295
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\InvalidArgumentException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php',
1296
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\RequestException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/RequestException.php',
 
1297
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\ServerException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/ServerException.php',
1298
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\TooManyRedirectsException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php',
1299
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\TransferException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/TransferException.php',
@@ -1307,7 +1315,6 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
1307
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Handler\\Proxy' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Handler/Proxy.php',
1308
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Handler\\StreamHandler' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Handler/StreamHandler.php',
1309
  'PYS_PRO_GLOBAL\\GuzzleHttp\\MessageFormatter' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/MessageFormatter.php',
1310
- 'PYS_PRO_GLOBAL\\GuzzleHttp\\MessageFormatterInterface' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/MessageFormatterInterface.php',
1311
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Middleware' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Middleware.php',
1312
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Pool' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Pool.php',
1313
  'PYS_PRO_GLOBAL\\GuzzleHttp\\PrepareBodyMiddleware' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php',
@@ -1359,11 +1366,9 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
1359
  'PYS_PRO_GLOBAL\\GuzzleHttp\\RequestOptions' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/RequestOptions.php',
1360
  'PYS_PRO_GLOBAL\\GuzzleHttp\\RetryMiddleware' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/RetryMiddleware.php',
1361
  'PYS_PRO_GLOBAL\\GuzzleHttp\\TransferStats' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/TransferStats.php',
 
1362
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Utils' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Utils.php',
1363
- 'PYS_PRO_GLOBAL\\Psr\\Http\\Client\\ClientExceptionInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-client/src/ClientExceptionInterface.php',
1364
- 'PYS_PRO_GLOBAL\\Psr\\Http\\Client\\ClientInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-client/src/ClientInterface.php',
1365
- 'PYS_PRO_GLOBAL\\Psr\\Http\\Client\\NetworkExceptionInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-client/src/NetworkExceptionInterface.php',
1366
- 'PYS_PRO_GLOBAL\\Psr\\Http\\Client\\RequestExceptionInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-client/src/RequestExceptionInterface.php',
1367
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\MessageInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/MessageInterface.php',
1368
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\RequestInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/RequestInterface.php',
1369
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\ResponseInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/ResponseInterface.php',
@@ -1371,6 +1376,12 @@ class ComposerStaticInitdaa5543e142760e462d1cb6eea8cb38e
1371
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\StreamInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/StreamInterface.php',
1372
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\UploadedFileInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/UploadedFileInterface.php',
1373
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\UriInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/UriInterface.php',
 
 
 
 
 
 
1374
  'WP_Async_Task' => __DIR__ . '/..' . '/techcrunch/wp-async-task/wp-async-task.php',
1375
  );
1376
 
70
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountAdRulesHistory' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountAdRulesHistory.php',
71
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountAdVolume' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountAdVolume.php',
72
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountContentFilterLevelsInheritance' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountContentFilterLevelsInheritance.php',
 
73
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountDefaultDestination' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountDefaultDestination.php',
74
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountDefaultObjective' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountDefaultObjective.php',
75
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdAccountDeliveryEstimate' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccountDeliveryEstimate.php',
123
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativeLinkDataSponsorshipInfoSpec' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativeLinkDataSponsorshipInfoSpec.php',
124
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativeLinkDataTemplateVideoSpec' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativeLinkDataTemplateVideoSpec.php',
125
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativeObjectStorySpec' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativeObjectStorySpec.php',
126
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativeOmnichannelLinkSpec' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativeOmnichannelLinkSpec.php',
127
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativePhotoData' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativePhotoData.php',
128
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativePhotoDataMediaElements' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativePhotoDataMediaElements.php',
129
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\AdCreativePlaceData' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdCreativePlaceData.php',
208
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessApplicationRequest' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessApplicationRequest.php',
209
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessAssetGroup' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessAssetGroup.php',
210
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessAssetSharingAgreement' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessAssetSharingAgreement.php',
211
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessDataAPI\\Content' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/Content.php',
212
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessDataAPI\\CustomData' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/CustomData.php',
213
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessDataAPI\\Event' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/Event.php',
214
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessDataAPI\\EventRequest' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/EventRequest.php',
215
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessDataAPI\\EventResponse' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/EventResponse.php',
216
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessDataAPI\\UserData' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/UserData.php',
217
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessOwnedObjectOnBehalfOfRequest' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessOwnedObjectOnBehalfOfRequest.php',
218
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessPageRequest' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessPageRequest.php',
219
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\BusinessRoleRequest' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessRoleRequest.php',
233
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogBasedTargeting' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogBasedTargeting.php',
234
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogItemAppLinks' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogItemAppLinks.php',
235
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogItemAppealStatus' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogItemAppealStatus.php',
236
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogItemChannelsToIntegrityStatus' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogItemChannelsToIntegrityStatus.php',
237
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CatalogSubVerticalList' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CatalogSubVerticalList.php',
238
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\CheckBatchRequestStatus' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CheckBatchRequestStatus.php',
239
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ChildEvent' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ChildEvent.php',
297
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\EntityAtTextRange' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/EntityAtTextRange.php',
298
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Event' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Event.php',
299
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\EventSourceGroup' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/EventSourceGroup.php',
 
300
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Experience' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Experience.php',
301
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ExtendedCredit' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ExtendedCredit.php',
302
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ExtendedCreditAllocationConfig' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ExtendedCreditAllocationConfig.php',
308
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountAdRulesHistoryFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountAdRulesHistoryFields.php',
309
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountAdVolumeFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountAdVolumeFields.php',
310
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountContentFilterLevelsInheritanceFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountContentFilterLevelsInheritanceFields.php',
 
311
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountDefaultDestinationFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountDefaultDestinationFields.php',
312
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountDefaultObjectiveFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountDefaultObjectiveFields.php',
313
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdAccountDeliveryEstimateFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountDeliveryEstimateFields.php',
362
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativeLinkDataSponsorshipInfoSpecFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativeLinkDataSponsorshipInfoSpecFields.php',
363
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativeLinkDataTemplateVideoSpecFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativeLinkDataTemplateVideoSpecFields.php',
364
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativeObjectStorySpecFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativeObjectStorySpecFields.php',
365
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativeOmnichannelLinkSpecFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativeOmnichannelLinkSpecFields.php',
366
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativePhotoDataFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativePhotoDataFields.php',
367
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativePhotoDataMediaElementsFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativePhotoDataMediaElementsFields.php',
368
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\AdCreativePlaceDataFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdCreativePlaceDataFields.php',
467
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogBasedTargetingFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogBasedTargetingFields.php',
468
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogItemAppLinksFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogItemAppLinksFields.php',
469
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogItemAppealStatusFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogItemAppealStatusFields.php',
470
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogItemChannelsToIntegrityStatusFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogItemChannelsToIntegrityStatusFields.php',
471
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CatalogSubVerticalListFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CatalogSubVerticalListFields.php',
472
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\CheckBatchRequestStatusFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CheckBatchRequestStatusFields.php',
473
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ChildEventFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ChildEventFields.php',
516
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\EntityAtTextRangeFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EntityAtTextRangeFields.php',
517
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\EventFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EventFields.php',
518
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\EventSourceGroupFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EventSourceGroupFields.php',
 
519
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ExperienceFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ExperienceFields.php',
520
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ExtendedCreditAllocationConfigFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ExtendedCreditAllocationConfigFields.php',
521
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ExtendedCreditFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ExtendedCreditFields.php',
524
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FAMEExportConfigFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FAMEExportConfigFields.php',
525
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FlexibleTargetingFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FlexibleTargetingFields.php',
526
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FlightFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FlightFields.php',
 
527
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FundingSourceDetailsCouponFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FundingSourceDetailsCouponFields.php',
528
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\FundingSourceDetailsFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/FundingSourceDetailsFields.php',
529
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\GroupFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/GroupFields.php',
575
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\NativeOfferViewFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/NativeOfferViewFields.php',
576
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\NullNodeFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/NullNodeFields.php',
577
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OfflineConversionDataSetFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OfflineConversionDataSetFields.php',
 
578
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OffsitePixelFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OffsitePixelFields.php',
579
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OpenGraphContextFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OpenGraphContextFields.php',
580
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\OracleTransactionFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/OracleTransactionFields.php',
596
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PageUpcomingChangeFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PageUpcomingChangeFields.php',
597
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PageUserMessageThreadLabelFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PageUserMessageThreadLabelFields.php',
598
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PartnerStudyFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PartnerStudyFields.php',
599
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PaymentEnginePaymentFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PaymentEnginePaymentFields.php',
600
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PaymentPricepointsFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PaymentPricepointsFields.php',
601
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PaymentSubscriptionFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PaymentSubscriptionFields.php',
602
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\PermissionFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PermissionFields.php',
689
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserIDForPageFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserIDForPageFields.php',
690
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserLeadGenDisclaimerResponseFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserLeadGenDisclaimerResponseFields.php',
691
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserLeadGenFieldDataFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserLeadGenFieldDataFields.php',
 
692
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\UserPaymentMobilePricepointsFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserPaymentMobilePricepointsFields.php',
 
693
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\ValueBasedEligibleSourceFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ValueBasedEligibleSourceFields.php',
694
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\VehicleFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/VehicleFields.php',
695
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\VehicleOfferFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/VehicleOfferFields.php',
705
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\VoipInfoFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/VoipInfoFields.php',
706
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WebAppLinkFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WebAppLinkFields.php',
707
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WhatsAppBusinessAccountFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WhatsAppBusinessAccountFields.php',
708
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WhatsAppBusinessProfileFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WhatsAppBusinessProfileFields.php',
709
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WindowsAppLinkFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WindowsAppLinkFields.php',
710
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WindowsPhoneAppLinkFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WindowsPhoneAppLinkFields.php',
711
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Fields\\WorkUserFrontlineFields' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/WorkUserFrontlineFields.php',
712
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\FlexibleTargeting' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FlexibleTargeting.php',
713
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Flight' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Flight.php',
 
714
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\FundingSourceDetails' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FundingSourceDetails.php',
715
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\FundingSourceDetailsCoupon' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FundingSourceDetailsCoupon.php',
716
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Group' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Group.php',
763
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\NullNode' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/NullNode.php',
764
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ObjectStorySpec' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ObjectStorySpec.php',
765
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OfflineConversionDataSet' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OfflineConversionDataSet.php',
 
766
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OffsitePixel' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OffsitePixel.php',
767
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OpenGraphContext' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OpenGraphContext.php',
768
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\OracleTransaction' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OracleTransaction.php',
784
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PageUpcomingChange' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PageUpcomingChange.php',
785
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PageUserMessageThreadLabel' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PageUserMessageThreadLabel.php',
786
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PartnerStudy' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PartnerStudy.php',
787
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PaymentEnginePayment' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PaymentEnginePayment.php',
788
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PaymentPricepoints' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PaymentPricepoints.php',
789
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\PaymentSubscription' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/PaymentSubscription.php',
790
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Permission' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Permission.php',
845
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Search\\DemographicSearchClasses' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Search/DemographicSearchClasses.php',
846
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Search\\TargetingSearchTypes' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Search/TargetingSearchTypes.php',
847
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\SecuritySettings' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/SecuritySettings.php',
848
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\ActionSource' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/ActionSource.php',
849
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\AdsPixelSettings' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/AdsPixelSettings.php',
850
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\AsyncClient' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/AsyncClient.php',
851
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\BatchProcessor' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/BatchProcessor.php',
864
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\Singleton' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Singleton.php',
865
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\UserData' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/UserData.php',
866
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\Util' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Util.php',
867
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Signal\\Content' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/Content.php',
868
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Signal\\CustomData' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/CustomData.php',
869
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Signal\\Event' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/Event.php',
870
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Signal\\EventRequest' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/EventRequest.php',
871
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Signal\\UserData' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/UserData.php',
872
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Signal\\Util' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/Util.php',
873
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\SplitTestWinner' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/SplitTestWinner.php',
874
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\StoreCatalogSettings' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/StoreCatalogSettings.php',
875
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\SystemUser' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/SystemUser.php',
908
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserIDForPage' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserIDForPage.php',
909
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserLeadGenDisclaimerResponse' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserLeadGenDisclaimerResponse.php',
910
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserLeadGenFieldData' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserLeadGenFieldData.php',
 
911
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\UserPaymentMobilePricepoints' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/UserPaymentMobilePricepoints.php',
 
912
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ValueBasedEligibleSource' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ValueBasedEligibleSource.php',
913
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\AdAccountAdRulesHistoryActionValues' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountAdRulesHistoryActionValues.php',
914
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\AdAccountAdRulesHistoryEvaluationTypeValues' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountAdRulesHistoryEvaluationTypeValues.php',
1190
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PageTemporaryStatusValues' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageTemporaryStatusValues.php',
1191
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PageTypes' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageTypes.php',
1192
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PageUnpublishedContentTypeValues' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PageUnpublishedContentTypeValues.php',
1193
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PaymentEnginePaymentReasonValues' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PaymentEnginePaymentReasonValues.php',
1194
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PermissionStatusValues' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PermissionStatusValues.php',
1195
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PhotoBackdatedTimeGranularityValues' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PhotoBackdatedTimeGranularityValues.php',
1196
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\Values\\PhotoTypeValues' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PhotoTypeValues.php',
1281
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\VoipInfo' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/VoipInfo.php',
1282
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WebAppLink' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WebAppLink.php',
1283
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WhatsAppBusinessAccount' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WhatsAppBusinessAccount.php',
1284
+ 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WhatsAppBusinessProfile' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WhatsAppBusinessProfile.php',
1285
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WindowsAppLink' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WindowsAppLink.php',
1286
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WindowsPhoneAppLink' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WindowsPhoneAppLink.php',
1287
  'PYS_PRO_GLOBAL\\FacebookAds\\Object\\WorkUserFrontline' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/WorkUserFrontline.php',
1288
  'PYS_PRO_GLOBAL\\FacebookAds\\Session' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Session.php',
1289
  'PYS_PRO_GLOBAL\\FacebookAds\\SessionInterface' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/SessionInterface.php',
1290
  'PYS_PRO_GLOBAL\\FacebookAds\\TypeChecker' => __DIR__ . '/../..' . '/vendor_prefix/facebook/php-business-sdk/src/FacebookAds/TypeChecker.php',
 
 
1291
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Client' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Client.php',
1292
  'PYS_PRO_GLOBAL\\GuzzleHttp\\ClientInterface' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/ClientInterface.php',
 
1293
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\CookieJar' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJar.php',
1294
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\CookieJarInterface' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php',
1295
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Cookie\\FileCookieJar' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php',
1301
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\GuzzleException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/GuzzleException.php',
1302
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\InvalidArgumentException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php',
1303
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\RequestException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/RequestException.php',
1304
+ 'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\SeekException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/SeekException.php',
1305
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\ServerException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/ServerException.php',
1306
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\TooManyRedirectsException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php',
1307
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Exception\\TransferException' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Exception/TransferException.php',
1315
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Handler\\Proxy' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Handler/Proxy.php',
1316
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Handler\\StreamHandler' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Handler/StreamHandler.php',
1317
  'PYS_PRO_GLOBAL\\GuzzleHttp\\MessageFormatter' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/MessageFormatter.php',
 
1318
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Middleware' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Middleware.php',
1319
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Pool' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Pool.php',
1320
  'PYS_PRO_GLOBAL\\GuzzleHttp\\PrepareBodyMiddleware' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php',
1366
  'PYS_PRO_GLOBAL\\GuzzleHttp\\RequestOptions' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/RequestOptions.php',
1367
  'PYS_PRO_GLOBAL\\GuzzleHttp\\RetryMiddleware' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/RetryMiddleware.php',
1368
  'PYS_PRO_GLOBAL\\GuzzleHttp\\TransferStats' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/TransferStats.php',
1369
+ 'PYS_PRO_GLOBAL\\GuzzleHttp\\UriTemplate' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/UriTemplate.php',
1370
  'PYS_PRO_GLOBAL\\GuzzleHttp\\Utils' => __DIR__ . '/../..' . '/vendor_prefix/guzzlehttp/guzzle/src/Utils.php',
1371
+ 'PYS_PRO_GLOBAL\\Normalizer' => __DIR__ . '/../..' . '/vendor_prefix/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php',
 
 
 
1372
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\MessageInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/MessageInterface.php',
1373
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\RequestInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/RequestInterface.php',
1374
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\ResponseInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/ResponseInterface.php',
1376
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\StreamInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/StreamInterface.php',
1377
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\UploadedFileInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/UploadedFileInterface.php',
1378
  'PYS_PRO_GLOBAL\\Psr\\Http\\Message\\UriInterface' => __DIR__ . '/../..' . '/vendor_prefix/psr/http-message/src/UriInterface.php',
1379
+ 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Idn\\Idn' => __DIR__ . '/../..' . '/vendor_prefix/symfony/polyfill-intl-idn/Idn.php',
1380
+ 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Idn\\Info' => __DIR__ . '/../..' . '/vendor_prefix/symfony/polyfill-intl-idn/Info.php',
1381
+ 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\DisallowedRanges' => __DIR__ . '/../..' . '/vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php',
1382
+ 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\Regex' => __DIR__ . '/../..' . '/vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/Regex.php',
1383
+ 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => __DIR__ . '/../..' . '/vendor_prefix/symfony/polyfill-intl-normalizer/Normalizer.php',
1384
+ 'PYS_PRO_GLOBAL\\Symfony\\Polyfill\\Php72\\Php72' => __DIR__ . '/../..' . '/vendor_prefix/symfony/polyfill-php72/Php72.php',
1385
  'WP_Async_Task' => __DIR__ . '/..' . '/techcrunch/wp-async-task/wp-async-task.php',
1386
  );
1387
 
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/ApiConfig.php CHANGED
@@ -27,6 +27,6 @@ namespace PYS_PRO_GLOBAL\FacebookAds;
27
  class ApiConfig
28
  {
29
  const APIVersion = '9.0';
30
- const SDKVersion = '9.0.1';
31
  const TYPE_CHECKER_STRICT_MODE = \false;
32
  }
27
  class ApiConfig
28
  {
29
  const APIVersion = '9.0';
30
+ const SDKVersion = '9.0.3';
31
  const TYPE_CHECKER_STRICT_MODE = \false;
32
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AbstractCrudObject.php CHANGED
@@ -371,7 +371,7 @@ class AbstractCrudObject extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractObje
371
  * @param string|null $endpoint
372
  * @return ResponseInterface
373
  */
374
- protected function fetchConnection(array $fields = array(), array $params = array(), $prototype_class, $endpoint = null)
375
  {
376
  $fields = \implode(',', $fields ?: static::getDefaultReadFields());
377
  if ($fields) {
371
  * @param string|null $endpoint
372
  * @return ResponseInterface
373
  */
374
+ protected function fetchConnection(array $fields = array(), array $params = array(), $prototype_class = '', $endpoint = null)
375
  {
376
  $fields = \implode(',', $fields ?: static::getDefaultReadFields());
377
  if ($fields) {
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Ad.php CHANGED
@@ -138,7 +138,7 @@ class Ad extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractArchivableCrudObject
138
  public function getInsights(array $fields = array(), array $params = array(), $pending = \false)
139
  {
140
  $this->assureId();
141
- $param_types = array('action_attribution_windows' => 'list<action_attribution_windows_enum>', 'action_breakdowns' => 'list<action_breakdowns_enum>', 'action_report_time' => 'action_report_time_enum', 'breakdowns' => 'list<breakdowns_enum>', 'date_preset' => 'date_preset_enum', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'level_enum', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<summary_action_breakdowns_enum>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool');
142
  $enums = array('action_attribution_windows_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionAttributionWindowsValues::getInstance()->getValues(), 'action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues::getInstance()->getValues(), 'action_report_time_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionReportTimeValues::getInstance()->getValues(), 'breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsBreakdownsValues::getInstance()->getValues(), 'date_preset_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsDatePresetValues::getInstance()->getValues(), 'level_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsLevelValues::getInstance()->getValues(), 'summary_action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsSummaryActionBreakdownsValues::getInstance()->getValues());
143
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/insights', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdsInsights(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdsInsights::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
144
  $request->addParams($params);
@@ -148,7 +148,7 @@ class Ad extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractArchivableCrudObject
148
  public function getInsightsAsync(array $fields = array(), array $params = array(), $pending = \false)
149
  {
150
  $this->assureId();
151
- $param_types = array('action_attribution_windows' => 'list<action_attribution_windows_enum>', 'action_breakdowns' => 'list<action_breakdowns_enum>', 'action_report_time' => 'action_report_time_enum', 'breakdowns' => 'list<breakdowns_enum>', 'date_preset' => 'date_preset_enum', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'level_enum', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<summary_action_breakdowns_enum>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool');
152
  $enums = array('action_attribution_windows_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionAttributionWindowsValues::getInstance()->getValues(), 'action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues::getInstance()->getValues(), 'action_report_time_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionReportTimeValues::getInstance()->getValues(), 'breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsBreakdownsValues::getInstance()->getValues(), 'date_preset_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsDatePresetValues::getInstance()->getValues(), 'level_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsLevelValues::getInstance()->getValues(), 'summary_action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsSummaryActionBreakdownsValues::getInstance()->getValues());
153
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/insights', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdReportRun(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdReportRun::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
154
  $request->addParams($params);
@@ -208,7 +208,7 @@ class Ad extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractArchivableCrudObject
208
  public function updateSelf(array $fields = array(), array $params = array(), $pending = \false)
209
  {
210
  $this->assureId();
211
- $param_types = array('adlabels' => 'list<Object>', 'adset_spec' => 'AdSet', 'audience_id' => 'string', 'bid_amount' => 'int', 'creative' => 'AdCreative', 'display_sequence' => 'unsigned int', 'draft_adgroup_id' => 'string', 'engagement_audience' => 'bool', 'execution_options' => 'list<execution_options_enum>', 'include_demolink_hashes' => 'bool', 'name' => 'string', 'priority' => 'unsigned int', 'status' => 'status_enum', 'tracking_specs' => 'Object');
212
  $enums = array('execution_options_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdExecutionOptionsValues::getInstance()->getValues(), 'status_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdStatusValues::getInstance()->getValues());
213
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/', new \PYS_PRO_GLOBAL\FacebookAds\Object\Ad(), 'NODE', \PYS_PRO_GLOBAL\FacebookAds\Object\Ad::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
214
  $request->addParams($params);
138
  public function getInsights(array $fields = array(), array $params = array(), $pending = \false)
139
  {
140
  $this->assureId();
141
+ $param_types = array('action_attribution_windows' => 'list<action_attribution_windows_enum>', 'action_breakdowns' => 'list<action_breakdowns_enum>', 'action_report_time' => 'action_report_time_enum', 'breakdowns' => 'list<breakdowns_enum>', 'date_preset' => 'date_preset_enum', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'level_enum', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<summary_action_breakdowns_enum>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool', 'use_unified_attribution_setting' => 'bool');
142
  $enums = array('action_attribution_windows_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionAttributionWindowsValues::getInstance()->getValues(), 'action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues::getInstance()->getValues(), 'action_report_time_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionReportTimeValues::getInstance()->getValues(), 'breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsBreakdownsValues::getInstance()->getValues(), 'date_preset_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsDatePresetValues::getInstance()->getValues(), 'level_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsLevelValues::getInstance()->getValues(), 'summary_action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsSummaryActionBreakdownsValues::getInstance()->getValues());
143
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/insights', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdsInsights(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdsInsights::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
144
  $request->addParams($params);
148
  public function getInsightsAsync(array $fields = array(), array $params = array(), $pending = \false)
149
  {
150
  $this->assureId();
151
+ $param_types = array('action_attribution_windows' => 'list<action_attribution_windows_enum>', 'action_breakdowns' => 'list<action_breakdowns_enum>', 'action_report_time' => 'action_report_time_enum', 'breakdowns' => 'list<breakdowns_enum>', 'date_preset' => 'date_preset_enum', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'level_enum', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<summary_action_breakdowns_enum>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool', 'use_unified_attribution_setting' => 'bool');
152
  $enums = array('action_attribution_windows_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionAttributionWindowsValues::getInstance()->getValues(), 'action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues::getInstance()->getValues(), 'action_report_time_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionReportTimeValues::getInstance()->getValues(), 'breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsBreakdownsValues::getInstance()->getValues(), 'date_preset_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsDatePresetValues::getInstance()->getValues(), 'level_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsLevelValues::getInstance()->getValues(), 'summary_action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsSummaryActionBreakdownsValues::getInstance()->getValues());
153
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/insights', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdReportRun(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdReportRun::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
154
  $request->addParams($params);
208
  public function updateSelf(array $fields = array(), array $params = array(), $pending = \false)
209
  {
210
  $this->assureId();
211
+ $param_types = array('adlabels' => 'list<Object>', 'adset_spec' => 'AdSet', 'audience_id' => 'string', 'bid_amount' => 'int', 'conversion_domain' => 'string', 'creative' => 'AdCreative', 'display_sequence' => 'unsigned int', 'draft_adgroup_id' => 'string', 'engagement_audience' => 'bool', 'execution_options' => 'list<execution_options_enum>', 'include_demolink_hashes' => 'bool', 'name' => 'string', 'priority' => 'unsigned int', 'status' => 'status_enum', 'tracking_specs' => 'Object');
212
  $enums = array('execution_options_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdExecutionOptionsValues::getInstance()->getValues(), 'status_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdStatusValues::getInstance()->getValues());
213
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/', new \PYS_PRO_GLOBAL\FacebookAds\Object\Ad(), 'NODE', \PYS_PRO_GLOBAL\FacebookAds\Object\Ad::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
214
  $request->addParams($params);
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccount.php CHANGED
@@ -345,7 +345,7 @@ class AdAccount extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
345
  public function createAd(array $fields = array(), array $params = array(), $pending = \false)
346
  {
347
  $this->assureId();
348
- $param_types = array('adlabels' => 'list<Object>', 'adset_id' => 'unsigned int', 'adset_spec' => 'AdSet', 'audience_id' => 'string', 'bid_amount' => 'int', 'creative' => 'AdCreative', 'date_format' => 'string', 'display_sequence' => 'unsigned int', 'draft_adgroup_id' => 'string', 'engagement_audience' => 'bool', 'execution_options' => 'list<execution_options_enum>', 'include_demolink_hashes' => 'bool', 'name' => 'string', 'priority' => 'unsigned int', 'source_ad_id' => 'string', 'status' => 'status_enum', 'tracking_specs' => 'Object');
349
  $enums = array('execution_options_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdExecutionOptionsValues::getInstance()->getValues(), 'status_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdStatusValues::getInstance()->getValues());
350
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/ads', new \PYS_PRO_GLOBAL\FacebookAds\Object\Ad(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Ad::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums), \true);
351
  $request->addParams($params);
@@ -635,7 +635,7 @@ class AdAccount extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
635
  public function createCampaign(array $fields = array(), array $params = array(), $pending = \false)
636
  {
637
  $this->assureId();
638
- $param_types = array('adlabels' => 'list<Object>', 'bid_strategy' => 'bid_strategy_enum', 'buying_type' => 'string', 'daily_budget' => 'unsigned int', 'execution_options' => 'list<execution_options_enum>', 'iterative_split_test_configs' => 'list<Object>', 'lifetime_budget' => 'unsigned int', 'name' => 'string', 'objective' => 'objective_enum', 'pacing_type' => 'list<string>', 'promoted_object' => 'Object', 'smart_promotion_type' => 'smart_promotion_type_enum', 'source_campaign_id' => 'string', 'special_ad_categories' => 'list<special_ad_categories_enum>', 'special_ad_category_country' => 'list<special_ad_category_country_enum>', 'spend_cap' => 'unsigned int', 'status' => 'status_enum', 'topline_id' => 'string', 'upstream_events' => 'map');
639
  $enums = array('bid_strategy_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignBidStrategyValues::getInstance()->getValues(), 'execution_options_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignExecutionOptionsValues::getInstance()->getValues(), 'objective_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignObjectiveValues::getInstance()->getValues(), 'smart_promotion_type_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignSmartPromotionTypeValues::getInstance()->getValues(), 'special_ad_categories_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignSpecialAdCategoriesValues::getInstance()->getValues(), 'special_ad_category_country_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignSpecialAdCategoryCountryValues::getInstance()->getValues(), 'status_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignStatusValues::getInstance()->getValues());
640
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/campaigns', new \PYS_PRO_GLOBAL\FacebookAds\Object\Campaign(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Campaign::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
641
  $request->addParams($params);
@@ -785,7 +785,7 @@ class AdAccount extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
785
  public function getInsights(array $fields = array(), array $params = array(), $pending = \false)
786
  {
787
  $this->assureId();
788
- $param_types = array('action_attribution_windows' => 'list<action_attribution_windows_enum>', 'action_breakdowns' => 'list<action_breakdowns_enum>', 'action_report_time' => 'action_report_time_enum', 'breakdowns' => 'list<breakdowns_enum>', 'date_preset' => 'date_preset_enum', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'level_enum', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<summary_action_breakdowns_enum>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool');
789
  $enums = array('action_attribution_windows_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionAttributionWindowsValues::getInstance()->getValues(), 'action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues::getInstance()->getValues(), 'action_report_time_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionReportTimeValues::getInstance()->getValues(), 'breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsBreakdownsValues::getInstance()->getValues(), 'date_preset_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsDatePresetValues::getInstance()->getValues(), 'level_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsLevelValues::getInstance()->getValues(), 'summary_action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsSummaryActionBreakdownsValues::getInstance()->getValues());
790
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/insights', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdsInsights(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdsInsights::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
791
  $request->addParams($params);
@@ -795,7 +795,7 @@ class AdAccount extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
795
  public function getInsightsAsync(array $fields = array(), array $params = array(), $pending = \false)
796
  {
797
  $this->assureId();
798
- $param_types = array('action_attribution_windows' => 'list<action_attribution_windows_enum>', 'action_breakdowns' => 'list<action_breakdowns_enum>', 'action_report_time' => 'action_report_time_enum', 'breakdowns' => 'list<breakdowns_enum>', 'date_preset' => 'date_preset_enum', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'level_enum', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<summary_action_breakdowns_enum>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool');
799
  $enums = array('action_attribution_windows_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionAttributionWindowsValues::getInstance()->getValues(), 'action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues::getInstance()->getValues(), 'action_report_time_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionReportTimeValues::getInstance()->getValues(), 'breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsBreakdownsValues::getInstance()->getValues(), 'date_preset_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsDatePresetValues::getInstance()->getValues(), 'level_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsLevelValues::getInstance()->getValues(), 'summary_action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsSummaryActionBreakdownsValues::getInstance()->getValues());
800
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/insights', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdReportRun(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdReportRun::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
801
  $request->addParams($params);
@@ -815,7 +815,7 @@ class AdAccount extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
815
  public function getMatchedSearchApplications(array $fields = array(), array $params = array(), $pending = \false)
816
  {
817
  $this->assureId();
818
- $param_types = array('allow_incomplete_app' => 'bool', 'app_store' => 'app_store_enum', 'app_store_country' => 'string', 'business_id' => 'string', 'query_term' => 'string');
819
  $enums = array('app_store_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdAccountMatchedSearchApplicationsEdgeDataAppStoreValues::getInstance()->getValues());
820
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/matched_search_applications', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdAccountMatchedSearchApplicationsEdgeData(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdAccountMatchedSearchApplicationsEdgeData::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
821
  $request->addParams($params);
@@ -952,16 +952,6 @@ class AdAccount extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
952
  $request->addFields($fields);
953
  return $pending ? $request : $request->execute();
954
  }
955
- public function createSponsoredMessageAd(array $fields = array(), array $params = array(), $pending = \false)
956
- {
957
- $this->assureId();
958
- $param_types = array('bid_amount' => 'int', 'daily_budget' => 'unsigned int', 'message_creative_id' => 'string', 'targeting' => 'Targeting');
959
- $enums = array();
960
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/sponsored_message_ads', new \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject(), 'EDGE', array(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
961
- $request->addParams($params);
962
- $request->addFields($fields);
963
- return $pending ? $request : $request->execute();
964
- }
965
  public function deleteSubscribedApps(array $fields = array(), array $params = array(), $pending = \false)
966
  {
967
  $this->assureId();
345
  public function createAd(array $fields = array(), array $params = array(), $pending = \false)
346
  {
347
  $this->assureId();
348
+ $param_types = array('adlabels' => 'list<Object>', 'adset_id' => 'unsigned int', 'adset_spec' => 'AdSet', 'audience_id' => 'string', 'bid_amount' => 'int', 'conversion_domain' => 'string', 'creative' => 'AdCreative', 'date_format' => 'string', 'display_sequence' => 'unsigned int', 'draft_adgroup_id' => 'string', 'engagement_audience' => 'bool', 'execution_options' => 'list<execution_options_enum>', 'include_demolink_hashes' => 'bool', 'name' => 'string', 'priority' => 'unsigned int', 'source_ad_id' => 'string', 'status' => 'status_enum', 'tracking_specs' => 'Object');
349
  $enums = array('execution_options_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdExecutionOptionsValues::getInstance()->getValues(), 'status_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdStatusValues::getInstance()->getValues());
350
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/ads', new \PYS_PRO_GLOBAL\FacebookAds\Object\Ad(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Ad::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums), \true);
351
  $request->addParams($params);
635
  public function createCampaign(array $fields = array(), array $params = array(), $pending = \false)
636
  {
637
  $this->assureId();
638
+ $param_types = array('adlabels' => 'list<Object>', 'bid_strategy' => 'bid_strategy_enum', 'buying_type' => 'string', 'daily_budget' => 'unsigned int', 'execution_options' => 'list<execution_options_enum>', 'is_skadnetwork_attribution' => 'bool', 'iterative_split_test_configs' => 'list<Object>', 'lifetime_budget' => 'unsigned int', 'name' => 'string', 'objective' => 'objective_enum', 'pacing_type' => 'list<string>', 'promoted_object' => 'Object', 'smart_promotion_type' => 'smart_promotion_type_enum', 'source_campaign_id' => 'string', 'special_ad_categories' => 'list<special_ad_categories_enum>', 'special_ad_category_country' => 'list<special_ad_category_country_enum>', 'spend_cap' => 'unsigned int', 'status' => 'status_enum', 'topline_id' => 'string', 'upstream_events' => 'map');
639
  $enums = array('bid_strategy_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignBidStrategyValues::getInstance()->getValues(), 'execution_options_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignExecutionOptionsValues::getInstance()->getValues(), 'objective_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignObjectiveValues::getInstance()->getValues(), 'smart_promotion_type_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignSmartPromotionTypeValues::getInstance()->getValues(), 'special_ad_categories_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignSpecialAdCategoriesValues::getInstance()->getValues(), 'special_ad_category_country_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignSpecialAdCategoryCountryValues::getInstance()->getValues(), 'status_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignStatusValues::getInstance()->getValues());
640
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/campaigns', new \PYS_PRO_GLOBAL\FacebookAds\Object\Campaign(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Campaign::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
641
  $request->addParams($params);
785
  public function getInsights(array $fields = array(), array $params = array(), $pending = \false)
786
  {
787
  $this->assureId();
788
+ $param_types = array('action_attribution_windows' => 'list<action_attribution_windows_enum>', 'action_breakdowns' => 'list<action_breakdowns_enum>', 'action_report_time' => 'action_report_time_enum', 'breakdowns' => 'list<breakdowns_enum>', 'date_preset' => 'date_preset_enum', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'level_enum', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<summary_action_breakdowns_enum>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool', 'use_unified_attribution_setting' => 'bool');
789
  $enums = array('action_attribution_windows_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionAttributionWindowsValues::getInstance()->getValues(), 'action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues::getInstance()->getValues(), 'action_report_time_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionReportTimeValues::getInstance()->getValues(), 'breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsBreakdownsValues::getInstance()->getValues(), 'date_preset_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsDatePresetValues::getInstance()->getValues(), 'level_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsLevelValues::getInstance()->getValues(), 'summary_action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsSummaryActionBreakdownsValues::getInstance()->getValues());
790
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/insights', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdsInsights(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdsInsights::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
791
  $request->addParams($params);
795
  public function getInsightsAsync(array $fields = array(), array $params = array(), $pending = \false)
796
  {
797
  $this->assureId();
798
+ $param_types = array('action_attribution_windows' => 'list<action_attribution_windows_enum>', 'action_breakdowns' => 'list<action_breakdowns_enum>', 'action_report_time' => 'action_report_time_enum', 'breakdowns' => 'list<breakdowns_enum>', 'date_preset' => 'date_preset_enum', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'level_enum', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<summary_action_breakdowns_enum>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool', 'use_unified_attribution_setting' => 'bool');
799
  $enums = array('action_attribution_windows_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionAttributionWindowsValues::getInstance()->getValues(), 'action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues::getInstance()->getValues(), 'action_report_time_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionReportTimeValues::getInstance()->getValues(), 'breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsBreakdownsValues::getInstance()->getValues(), 'date_preset_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsDatePresetValues::getInstance()->getValues(), 'level_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsLevelValues::getInstance()->getValues(), 'summary_action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsSummaryActionBreakdownsValues::getInstance()->getValues());
800
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/insights', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdReportRun(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdReportRun::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
801
  $request->addParams($params);
815
  public function getMatchedSearchApplications(array $fields = array(), array $params = array(), $pending = \false)
816
  {
817
  $this->assureId();
818
+ $param_types = array('allow_incomplete_app' => 'bool', 'app_store' => 'app_store_enum', 'app_store_country' => 'string', 'business_id' => 'string', 'is_skadnetwork_search' => 'bool', 'only_apps_with_permission' => 'bool', 'query_term' => 'string');
819
  $enums = array('app_store_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdAccountMatchedSearchApplicationsEdgeDataAppStoreValues::getInstance()->getValues());
820
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/matched_search_applications', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdAccountMatchedSearchApplicationsEdgeData(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdAccountMatchedSearchApplicationsEdgeData::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
821
  $request->addParams($params);
952
  $request->addFields($fields);
953
  return $pending ? $request : $request->execute();
954
  }
 
 
 
 
 
 
 
 
 
 
955
  public function deleteSubscribedApps(array $fields = array(), array $params = array(), $pending = \false)
956
  {
957
  $this->assureId();
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/{UserPaymentMethodsInfo.php → AdCreativeOmnichannelLinkSpec.php} RENAMED
@@ -28,7 +28,7 @@ use PYS_PRO_GLOBAL\FacebookAds\ApiRequest;
28
  use PYS_PRO_GLOBAL\FacebookAds\Cursor;
29
  use PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface;
30
  use PYS_PRO_GLOBAL\FacebookAds\TypeChecker;
31
- use PYS_PRO_GLOBAL\FacebookAds\Object\Fields\UserPaymentMethodsInfoFields;
32
  /**
33
  * This class is auto-generated.
34
  *
@@ -37,14 +37,14 @@ use PYS_PRO_GLOBAL\FacebookAds\Object\Fields\UserPaymentMethodsInfoFields;
37
  * pull request for this class.
38
  *
39
  */
40
- class UserPaymentMethodsInfo extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractObject
41
  {
42
  /**
43
- * @return UserPaymentMethodsInfoFields
44
  */
45
  public static function getFieldsEnum()
46
  {
47
- return \PYS_PRO_GLOBAL\FacebookAds\Object\Fields\UserPaymentMethodsInfoFields::getInstance();
48
  }
49
  protected static function getReferencedEnums()
50
  {
28
  use PYS_PRO_GLOBAL\FacebookAds\Cursor;
29
  use PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface;
30
  use PYS_PRO_GLOBAL\FacebookAds\TypeChecker;
31
+ use PYS_PRO_GLOBAL\FacebookAds\Object\Fields\AdCreativeOmnichannelLinkSpecFields;
32
  /**
33
  * This class is auto-generated.
34
  *
37
  * pull request for this class.
38
  *
39
  */
40
+ class AdCreativeOmnichannelLinkSpec extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractObject
41
  {
42
  /**
43
+ * @return AdCreativeOmnichannelLinkSpecFields
44
  */
45
  public static function getFieldsEnum()
46
  {
47
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Fields\AdCreativeOmnichannelLinkSpecFields::getInstance();
48
  }
49
  protected static function getReferencedEnums()
50
  {
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdSet.php CHANGED
@@ -228,7 +228,7 @@ class AdSet extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractArchivableCrudObj
228
  public function getInsights(array $fields = array(), array $params = array(), $pending = \false)
229
  {
230
  $this->assureId();
231
- $param_types = array('action_attribution_windows' => 'list<action_attribution_windows_enum>', 'action_breakdowns' => 'list<action_breakdowns_enum>', 'action_report_time' => 'action_report_time_enum', 'breakdowns' => 'list<breakdowns_enum>', 'date_preset' => 'date_preset_enum', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'level_enum', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<summary_action_breakdowns_enum>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool');
232
  $enums = array('action_attribution_windows_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionAttributionWindowsValues::getInstance()->getValues(), 'action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues::getInstance()->getValues(), 'action_report_time_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionReportTimeValues::getInstance()->getValues(), 'breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsBreakdownsValues::getInstance()->getValues(), 'date_preset_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsDatePresetValues::getInstance()->getValues(), 'level_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsLevelValues::getInstance()->getValues(), 'summary_action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsSummaryActionBreakdownsValues::getInstance()->getValues());
233
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/insights', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdsInsights(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdsInsights::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
234
  $request->addParams($params);
@@ -238,7 +238,7 @@ class AdSet extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractArchivableCrudObj
238
  public function getInsightsAsync(array $fields = array(), array $params = array(), $pending = \false)
239
  {
240
  $this->assureId();
241
- $param_types = array('action_attribution_windows' => 'list<action_attribution_windows_enum>', 'action_breakdowns' => 'list<action_breakdowns_enum>', 'action_report_time' => 'action_report_time_enum', 'breakdowns' => 'list<breakdowns_enum>', 'date_preset' => 'date_preset_enum', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'level_enum', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<summary_action_breakdowns_enum>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool');
242
  $enums = array('action_attribution_windows_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionAttributionWindowsValues::getInstance()->getValues(), 'action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues::getInstance()->getValues(), 'action_report_time_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionReportTimeValues::getInstance()->getValues(), 'breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsBreakdownsValues::getInstance()->getValues(), 'date_preset_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsDatePresetValues::getInstance()->getValues(), 'level_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsLevelValues::getInstance()->getValues(), 'summary_action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsSummaryActionBreakdownsValues::getInstance()->getValues());
243
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/insights', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdReportRun(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdReportRun::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
244
  $request->addParams($params);
228
  public function getInsights(array $fields = array(), array $params = array(), $pending = \false)
229
  {
230
  $this->assureId();
231
+ $param_types = array('action_attribution_windows' => 'list<action_attribution_windows_enum>', 'action_breakdowns' => 'list<action_breakdowns_enum>', 'action_report_time' => 'action_report_time_enum', 'breakdowns' => 'list<breakdowns_enum>', 'date_preset' => 'date_preset_enum', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'level_enum', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<summary_action_breakdowns_enum>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool', 'use_unified_attribution_setting' => 'bool');
232
  $enums = array('action_attribution_windows_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionAttributionWindowsValues::getInstance()->getValues(), 'action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues::getInstance()->getValues(), 'action_report_time_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionReportTimeValues::getInstance()->getValues(), 'breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsBreakdownsValues::getInstance()->getValues(), 'date_preset_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsDatePresetValues::getInstance()->getValues(), 'level_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsLevelValues::getInstance()->getValues(), 'summary_action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsSummaryActionBreakdownsValues::getInstance()->getValues());
233
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/insights', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdsInsights(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdsInsights::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
234
  $request->addParams($params);
238
  public function getInsightsAsync(array $fields = array(), array $params = array(), $pending = \false)
239
  {
240
  $this->assureId();
241
+ $param_types = array('action_attribution_windows' => 'list<action_attribution_windows_enum>', 'action_breakdowns' => 'list<action_breakdowns_enum>', 'action_report_time' => 'action_report_time_enum', 'breakdowns' => 'list<breakdowns_enum>', 'date_preset' => 'date_preset_enum', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'level_enum', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<summary_action_breakdowns_enum>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool', 'use_unified_attribution_setting' => 'bool');
242
  $enums = array('action_attribution_windows_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionAttributionWindowsValues::getInstance()->getValues(), 'action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues::getInstance()->getValues(), 'action_report_time_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionReportTimeValues::getInstance()->getValues(), 'breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsBreakdownsValues::getInstance()->getValues(), 'date_preset_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsDatePresetValues::getInstance()->getValues(), 'level_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsLevelValues::getInstance()->getValues(), 'summary_action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsSummaryActionBreakdownsValues::getInstance()->getValues());
243
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/insights', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdReportRun(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdReportRun::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
244
  $request->addParams($params);
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdVideo.php CHANGED
@@ -43,7 +43,6 @@ use PYS_PRO_GLOBAL\FacebookAds\Object\Values\CommentFilterValues;
43
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\CommentLiveFilterValues;
44
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\CommentOrderValues;
45
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\InsightsResultPeriodValues;
46
- use PYS_PRO_GLOBAL\FacebookAds\Object\Values\ProfileTypeValues;
47
  use PYS_PRO_GLOBAL\FacebookAds\Object\Traits\CannotDelete;
48
  use PYS_PRO_GLOBAL\FacebookAds\Object\Traits\CannotUpdate;
49
  use PYS_PRO_GLOBAL\FacebookAds\Object\Traits\FieldValidation;
@@ -185,26 +184,6 @@ class AdVideo extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
185
  $request->addFields($fields);
186
  return $pending ? $request : $request->execute();
187
  }
188
- public function getReactions(array $fields = array(), array $params = array(), $pending = \false)
189
- {
190
- $this->assureId();
191
- $param_types = array('type' => 'type_enum');
192
- $enums = array('type_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\ProfileTypeValues::getInstance()->getValues());
193
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/reactions', new \PYS_PRO_GLOBAL\FacebookAds\Object\Profile(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Profile::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
194
- $request->addParams($params);
195
- $request->addFields($fields);
196
- return $pending ? $request : $request->execute();
197
- }
198
- public function getSharedPosts(array $fields = array(), array $params = array(), $pending = \false)
199
- {
200
- $this->assureId();
201
- $param_types = array();
202
- $enums = array();
203
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/sharedposts', new \PYS_PRO_GLOBAL\FacebookAds\Object\Post(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Post::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
204
- $request->addParams($params);
205
- $request->addFields($fields);
206
- return $pending ? $request : $request->execute();
207
- }
208
  public function getSponsorTags(array $fields = array(), array $params = array(), $pending = \false)
209
  {
210
  $this->assureId();
43
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\CommentLiveFilterValues;
44
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\CommentOrderValues;
45
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\InsightsResultPeriodValues;
 
46
  use PYS_PRO_GLOBAL\FacebookAds\Object\Traits\CannotDelete;
47
  use PYS_PRO_GLOBAL\FacebookAds\Object\Traits\CannotUpdate;
48
  use PYS_PRO_GLOBAL\FacebookAds\Object\Traits\FieldValidation;
184
  $request->addFields($fields);
185
  return $pending ? $request : $request->execute();
186
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187
  public function getSponsorTags(array $fields = array(), array $params = array(), $pending = \false)
188
  {
189
  $this->assureId();
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Album.php CHANGED
@@ -36,7 +36,6 @@ use PYS_PRO_GLOBAL\FacebookAds\Object\Values\CommentOrderValues;
36
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PhotoBackdatedTimeGranularityValues;
37
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PhotoUnpublishedContentTypeValues;
38
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\ProfilePictureSourceTypeValues;
39
- use PYS_PRO_GLOBAL\FacebookAds\Object\Values\ProfileTypeValues;
40
  /**
41
  * This class is auto-generated.
42
  *
@@ -129,26 +128,6 @@ class Album extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
129
  $request->addFields($fields);
130
  return $pending ? $request : $request->execute();
131
  }
132
- public function getReactions(array $fields = array(), array $params = array(), $pending = \false)
133
- {
134
- $this->assureId();
135
- $param_types = array('type' => 'type_enum');
136
- $enums = array('type_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\ProfileTypeValues::getInstance()->getValues());
137
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/reactions', new \PYS_PRO_GLOBAL\FacebookAds\Object\Profile(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Profile::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
138
- $request->addParams($params);
139
- $request->addFields($fields);
140
- return $pending ? $request : $request->execute();
141
- }
142
- public function getSharedPosts(array $fields = array(), array $params = array(), $pending = \false)
143
- {
144
- $this->assureId();
145
- $param_types = array();
146
- $enums = array();
147
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/sharedposts', new \PYS_PRO_GLOBAL\FacebookAds\Object\Post(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Post::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
148
- $request->addParams($params);
149
- $request->addFields($fields);
150
- return $pending ? $request : $request->execute();
151
- }
152
  public function getSelf(array $fields = array(), array $params = array(), $pending = \false)
153
  {
154
  $this->assureId();
36
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PhotoBackdatedTimeGranularityValues;
37
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PhotoUnpublishedContentTypeValues;
38
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\ProfilePictureSourceTypeValues;
 
39
  /**
40
  * This class is auto-generated.
41
  *
128
  $request->addFields($fields);
129
  return $pending ? $request : $request->execute();
130
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
  public function getSelf(array $fields = array(), array $params = array(), $pending = \false)
132
  {
133
  $this->assureId();
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Application.php CHANGED
@@ -46,7 +46,6 @@ use PYS_PRO_GLOBAL\FacebookAds\Object\Values\ApplicationSortOrderValues;
46
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\ApplicationSupportedPlatformsValues;
47
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\DACheckConnectionMethodValues;
48
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\EventTypeValues;
49
- use PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoBroadcastStatusValues;
50
  /**
51
  * This class is auto-generated.
52
  *
@@ -399,16 +398,6 @@ class Application extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
399
  $request->addFields($fields);
400
  return $pending ? $request : $request->execute();
401
  }
402
- public function getLiveVideos(array $fields = array(), array $params = array(), $pending = \false)
403
- {
404
- $this->assureId();
405
- $param_types = array('broadcast_status' => 'broadcast_status_enum');
406
- $enums = array('broadcast_status_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoBroadcastStatusValues::getInstance()->getValues());
407
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/live_videos', new \PYS_PRO_GLOBAL\FacebookAds\Object\LiveVideo(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\LiveVideo::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
408
- $request->addParams($params);
409
- $request->addFields($fields);
410
- return $pending ? $request : $request->execute();
411
- }
412
  public function createMmpAuditing(array $fields = array(), array $params = array(), $pending = \false)
413
  {
414
  $this->assureId();
@@ -439,16 +428,6 @@ class Application extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
439
  $request->addFields($fields);
440
  return $pending ? $request : $request->execute();
441
  }
442
- public function getOzoneRelease(array $fields = array(), array $params = array(), $pending = \false)
443
- {
444
- $this->assureId();
445
- $param_types = array();
446
- $enums = array();
447
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/ozone_release', new \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject(), 'EDGE', array(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
448
- $request->addParams($params);
449
- $request->addFields($fields);
450
- return $pending ? $request : $request->execute();
451
- }
452
  public function createPageActivity(array $fields = array(), array $params = array(), $pending = \false)
453
  {
454
  $this->assureId();
46
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\ApplicationSupportedPlatformsValues;
47
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\DACheckConnectionMethodValues;
48
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\EventTypeValues;
 
49
  /**
50
  * This class is auto-generated.
51
  *
398
  $request->addFields($fields);
399
  return $pending ? $request : $request->execute();
400
  }
 
 
 
 
 
 
 
 
 
 
401
  public function createMmpAuditing(array $fields = array(), array $params = array(), $pending = \false)
402
  {
403
  $this->assureId();
428
  $request->addFields($fields);
429
  return $pending ? $request : $request->execute();
430
  }
 
 
 
 
 
 
 
 
 
 
431
  public function createPageActivity(array $fields = array(), array $params = array(), $pending = \false)
432
  {
433
  $this->assureId();
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/Content.php ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
+ *
6
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
+ * use, copy, modify, and distribute this software in source code or binary
8
+ * form for use in connection with the web services and APIs provided by
9
+ * Facebook.
10
+ *
11
+ * As with any software that integrates with the Facebook platform, your use
12
+ * of this software is subject to the Facebook Developer Principles and
13
+ * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
+ * shall be included in all copies or substantial portions of the software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ * DEALINGS IN THE SOFTWARE.
23
+ *
24
+ */
25
+ namespace PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI;
26
+
27
+ class Content
28
+ {
29
+ /**
30
+ * Associative array for storing property values
31
+ * @var mixed[]
32
+ */
33
+ protected $container = array();
34
+ /**
35
+ * Constructor
36
+ * @param mixed[] $data Associated array of property value initializing the model
37
+ */
38
+ public function __construct(array $data = null)
39
+ {
40
+ $this->container['product_id'] = isset($data['product_id']) ? $data['product_id'] : null;
41
+ $this->container['quantity'] = isset($data['quantity']) ? $data['quantity'] : null;
42
+ $this->container['price'] = isset($data['price']) ? $data['price'] : null;
43
+ $this->container['title'] = isset($data['title']) ? $data['title'] : null;
44
+ $this->container['tax'] = isset($data['tax']) ? $data['tax'] : null;
45
+ $this->container['external_content_id'] = isset($data['external_content_id']) ? $data['external_content_id'] : null;
46
+ }
47
+ /**
48
+ * Get Product Id.
49
+ * @return string Product Id
50
+ */
51
+ public function getProductId()
52
+ {
53
+ return $this->container['product_id'];
54
+ }
55
+ /**
56
+ * Sets product id.
57
+ * @param string $product_id product id
58
+ * @return $this
59
+ */
60
+ public function setProductId($product_id)
61
+ {
62
+ $this->container['product_id'] = $product_id;
63
+ return $this;
64
+ }
65
+ /**
66
+ * Get number of product.
67
+ * @return integer quantity
68
+ */
69
+ public function getQuantity()
70
+ {
71
+ return $this->container['quantity'];
72
+ }
73
+ /**
74
+ * Set number of product.
75
+ * @param integer $quantity number of items
76
+ * @return $this
77
+ */
78
+ public function setQuantity($quantity)
79
+ {
80
+ $this->container['quantity'] = $quantity;
81
+ return $this;
82
+ }
83
+ /**
84
+ * Get total price.
85
+ * @return float Price
86
+ */
87
+ public function getPrice()
88
+ {
89
+ return $this->container['price'];
90
+ }
91
+ /**
92
+ * Set total price.
93
+ * @param float Price
94
+ * @return $this
95
+ */
96
+ public function setPrice($price)
97
+ {
98
+ $this->container['price'] = $price;
99
+ return $this;
100
+ }
101
+ /**
102
+ * Get title.
103
+ * @return string title
104
+ */
105
+ public function getTitle()
106
+ {
107
+ return $this->container['title'];
108
+ }
109
+ /**
110
+ * Sets title.
111
+ * @param string $title title
112
+ * @return $this
113
+ */
114
+ public function setTitle($title)
115
+ {
116
+ $this->container['title'] = $title;
117
+ return $this;
118
+ }
119
+ /**
120
+ * Gets the string presentation of the object
121
+ * @return string
122
+ */
123
+ public function __toString()
124
+ {
125
+ if (\defined('JSON_PRETTY_PRINT')) {
126
+ // use JSON pretty print
127
+ return \json_encode($this, \JSON_PRETTY_PRINT);
128
+ }
129
+ return \json_encode($this);
130
+ }
131
+ /**
132
+ * convert to Json
133
+ * @return array
134
+ */
135
+ public function toJson()
136
+ {
137
+ $request = array('id' => $this->container['product_id'], 'quantity' => $this->container['quantity'], 'price' => $this->container['price'], 'title' => $this->container['title'], 'tax' => $this->container['tax'], 'external_content_id' => $this->container['external_content_id']);
138
+ $request = \array_filter($request);
139
+ return $request;
140
+ }
141
+ }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/CustomData.php ADDED
@@ -0,0 +1,287 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
+ *
6
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
+ * use, copy, modify, and distribute this software in source code or binary
8
+ * form for use in connection with the web services and APIs provided by
9
+ * Facebook.
10
+ *
11
+ * As with any software that integrates with the Facebook platform, your use
12
+ * of this software is subject to the Facebook Developer Principles and
13
+ * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
+ * shall be included in all copies or substantial portions of the software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ * DEALINGS IN THE SOFTWARE.
23
+ *
24
+ */
25
+ namespace PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI;
26
+
27
+ class CustomData
28
+ {
29
+ /**
30
+ * Associative array for storing property values
31
+ * @var mixed[]
32
+ */
33
+ protected $container = array();
34
+ /**
35
+ * Constructor
36
+ * @param mixed[] $data Associated array of property value initializing the model
37
+ */
38
+ public function __construct(array $data = null)
39
+ {
40
+ $this->container['value'] = isset($data['value']) ? $data['value'] : null;
41
+ $this->container['currency'] = isset($data['currency']) ? $data['currency'] : null;
42
+ $this->container['contents'] = isset($data['contents']) ? $data['contents'] : null;
43
+ $this->container['order_id'] = isset($data['order_id']) ? $data['order_id'] : null;
44
+ $this->container['status'] = isset($data['status']) ? $data['status'] : null;
45
+ $this->container['billing_contact'] = isset($data['billing_contact']) ? $data['billing_contact'] : null;
46
+ $this->container['shipping_contact'] = isset($data['shipping_contact']) ? $data['shipping_contact'] : null;
47
+ $this->container['external_order_id'] = isset($data['external_order_id']) ? $data['external_order_id'] : null;
48
+ $this->container['original_order_id'] = isset($data['original_order_id']) ? $data['original_order_id'] : null;
49
+ $this->container['message'] = isset($data['message']) ? $data['message'] : null;
50
+ }
51
+ /**
52
+ * Sets value
53
+ * @param float $value A numeric value associated with this event.
54
+ * This could be a monetary value or a value in some other metric.
55
+ * @return $this
56
+ */
57
+ public function setValue($value)
58
+ {
59
+ $this->container['value'] = $value;
60
+ return $this;
61
+ }
62
+ /**
63
+ * Sets currency
64
+ * @param string $currency The currency for the value specified, if applicable.
65
+ * Currency must be a valid ISO 4217 three digit currency code.
66
+ * @return $this
67
+ */
68
+ public function setCurrency($currency)
69
+ {
70
+ $this->container['currency'] = $currency;
71
+ return $this;
72
+ }
73
+ /**
74
+ * Sets contents
75
+ * @param Content[] $contents A list of Content objects that contain the product IDs associated with
76
+ * the event plus information about the products.
77
+ * @return $this
78
+ */
79
+ public function setContents($contents)
80
+ {
81
+ $this->container['contents'] = $contents;
82
+ return $this;
83
+ }
84
+ /**
85
+ * Sets order_id
86
+ * @param string $order_id The order ID for this transaction as a String.
87
+ * @return $this
88
+ */
89
+ public function setOrderId($order_id)
90
+ {
91
+ $this->container['order_id'] = $order_id;
92
+ return $this;
93
+ }
94
+ /**
95
+ * Sets status
96
+ * @param status of the order
97
+ *
98
+ * @return $this
99
+ */
100
+ public function setStatus($status)
101
+ {
102
+ $this->container['status'] = $status;
103
+ return $this;
104
+ }
105
+ /**
106
+ * Sets billing contact
107
+ * @param billing contact of the order
108
+ *
109
+ * @return $this
110
+ */
111
+ public function setBillingContact($billing_contact)
112
+ {
113
+ $this->container['billing_contact'] = $billing_contact;
114
+ return $this;
115
+ }
116
+ /**
117
+ * Sets shipping contact
118
+ * @param shipping contact of the order
119
+ *
120
+ * @return $this
121
+ */
122
+ public function setShippingContact($shipping_contact)
123
+ {
124
+ $this->container['shipping_contact'] = $shipping_contact;
125
+ return $this;
126
+ }
127
+ /**
128
+ * Sets external order id
129
+ * @param unique order id
130
+ *
131
+ * @return $this
132
+ */
133
+ public function setExternalOrderId($external_order_id)
134
+ {
135
+ $this->container['external_order_id'] = $external_order_id;
136
+ return $this;
137
+ }
138
+ /**
139
+ * Sets original order id
140
+ * @param original order id for Refund event.
141
+ *
142
+ * @return $this
143
+ */
144
+ public function setOriginalOrderId($original_order_id)
145
+ {
146
+ $this->container['original_order_id'] = $original_order_id;
147
+ return $this;
148
+ }
149
+ /**
150
+ * Sets message for Refund event
151
+ * @param message for Refund event
152
+ *
153
+ * @return $this
154
+ */
155
+ public function setMessage($message)
156
+ {
157
+ $this->container['message'] = $message;
158
+ return $this;
159
+ }
160
+ public function toJson()
161
+ {
162
+ $request = array();
163
+ $request['value'] = $this->getValue();
164
+ $request['currency'] = $this->getCurrency();
165
+ $request['order_id'] = $this->getOrderId();
166
+ $request['status'] = $this->getStatus();
167
+ $request['billing_contact'] = $this->getBillingContact()->toJson();
168
+ $request['shipping_contact'] = $this->getShippingContact()->toJson();
169
+ $request['original_order_id'] = $this->getOriginalOrderId();
170
+ $request['external_order_id'] = $this->getExternalOrderId();
171
+ $request['message'] = $this->getMessage();
172
+ if (isset($this->container['contents'])) {
173
+ $contents = [];
174
+ foreach ($this->getContents() as $content) {
175
+ \array_push($contents, $content->toJson());
176
+ }
177
+ $request['contents'] = $contents;
178
+ }
179
+ $request = \array_filter($request, function ($val) {
180
+ if (\is_array($val)) {
181
+ return \true;
182
+ } else {
183
+ return \strlen($val);
184
+ }
185
+ });
186
+ return $request;
187
+ }
188
+ /**
189
+ * Gets a numeric value associated with this event.
190
+ * This could be a monetary value or a value in some other metric.
191
+ * @return float
192
+ */
193
+ public function getValue()
194
+ {
195
+ return $this->container['value'];
196
+ }
197
+ /**
198
+ * Gets currency for the value specified, if applicable.
199
+ * @return string
200
+ */
201
+ public function getCurrency()
202
+ {
203
+ return $this->container['currency'];
204
+ }
205
+ /**
206
+ * Gets a list of Content objects that contain the product IDs associated with
207
+ * the event plus information about the products.
208
+ * @return Content[]
209
+ */
210
+ public function getContents()
211
+ {
212
+ return $this->container['contents'];
213
+ }
214
+ /**
215
+ * Gets the order ID for this transaction as a String.
216
+ * @return string
217
+ */
218
+ public function getOrderId()
219
+ {
220
+ return $this->container['order_id'];
221
+ }
222
+ /**
223
+ * Gets the status of the registration event
224
+ * @return string
225
+ */
226
+ public function getStatus()
227
+ {
228
+ return $this->container['status'];
229
+ }
230
+ /**
231
+ * Gets billing contact
232
+ *
233
+ * @return UserData
234
+ */
235
+ public function getBillingContact()
236
+ {
237
+ return $this->container['billing_contact'];
238
+ }
239
+ /**
240
+ * Gets shipping contact
241
+ *
242
+ * @return UserData
243
+ */
244
+ public function getShippingContact()
245
+ {
246
+ return $this->container['shipping_contact'];
247
+ }
248
+ /**
249
+ * Gets external order id
250
+ *
251
+ * @return string
252
+ */
253
+ public function getExternalOrderId()
254
+ {
255
+ return $this->container['external_order_id'];
256
+ }
257
+ /**
258
+ * Gets original order id
259
+ *
260
+ * @return string
261
+ */
262
+ public function getOriginalOrderId()
263
+ {
264
+ return $this->container['original_order_id'];
265
+ }
266
+ /**
267
+ * Gets message
268
+ *
269
+ * @return string
270
+ */
271
+ public function getMessage()
272
+ {
273
+ return $this->container['message'];
274
+ }
275
+ /**
276
+ * Gets the string presentation of the object
277
+ * @return string
278
+ */
279
+ public function __toString()
280
+ {
281
+ if (\defined('JSON_PRETTY_PRINT')) {
282
+ // use JSON pretty print
283
+ return \json_encode($this, \JSON_PRETTY_PRINT);
284
+ }
285
+ return \json_encode($this);
286
+ }
287
+ }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/Event.php ADDED
@@ -0,0 +1,232 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
+ *
6
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
+ * use, copy, modify, and distribute this software in source code or binary
8
+ * form for use in connection with the web services and APIs provided by
9
+ * Facebook.
10
+ *
11
+ * As with any software that integrates with the Facebook platform, your use
12
+ * of this software is subject to the Facebook Developer Principles and
13
+ * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
+ * shall be included in all copies or substantial portions of the software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ * DEALINGS IN THE SOFTWARE.
23
+ *
24
+ */
25
+ namespace PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI;
26
+
27
+ class Event
28
+ {
29
+ /**
30
+ * Associative array for storing property values
31
+ * @var mixed[]
32
+ */
33
+ protected $container = array();
34
+ /**
35
+ * Constructor
36
+ * @param mixed[] $data Associated array of property value initalizing the model
37
+ */
38
+ public function __construct(array $data = null)
39
+ {
40
+ $this->container['event_name'] = isset($data['event_name']) ? $data['event_name'] : null;
41
+ $this->container['event_time'] = isset($data['event_time']) ? $data['event_time'] : null;
42
+ $this->container['event_id'] = isset($data['event_id']) ? $data['event_id'] : null;
43
+ $this->container['user_data'] = isset($data['user_data']) ? $data['user_data'] : null;
44
+ $this->container['custom_data'] = isset($data['custom_data']) ? $data['custom_data'] : null;
45
+ $this->container['data_processing_options'] = isset($data['data_processing_options']) ? $data['data_processing_options'] : null;
46
+ $this->container['data_processing_options_country'] = isset($data['data_processing_options_country']) ? $data['data_processing_options_country'] : null;
47
+ $this->container['data_processing_options_state'] = isset($data['data_processing_options_state']) ? $data['data_processing_options_state'] : null;
48
+ }
49
+ /**
50
+ * Sets a Facebook pixel Standard Event or Custom Event name
51
+ * @param string $event_name A Facebook pixel Standard Event or Custom Event name.
52
+ * @return $this
53
+ */
54
+ public function setEventName($event_name)
55
+ {
56
+ $this->container['event_name'] = $event_name;
57
+ return $this;
58
+ }
59
+ /**
60
+ * Sets a Unix timestamp in seconds indicating when the actual event occurred
61
+ * @param int $event_time A Unix timestamp in seconds indicating when the actual event occurred.
62
+ * @return $this
63
+ */
64
+ public function setEventTime($event_time)
65
+ {
66
+ $this->container['event_time'] = $event_time;
67
+ return $this;
68
+ }
69
+ /**
70
+ * @param string $event_id This ID can be any unique string chosen by the advertiser.
71
+ * @return $this
72
+ */
73
+ public function setEventId($event_id)
74
+ {
75
+ $this->container['event_id'] = $event_id;
76
+ return $this;
77
+ }
78
+ /**
79
+ * Sets UserData object that contains user data.
80
+ * @param FacebookAds\Object\BusinessDataAPI\UserData $user_data
81
+ * @return $this
82
+ */
83
+ public function setUserData($user_data)
84
+ {
85
+ $this->container['user_data'] = $user_data;
86
+ return $this;
87
+ }
88
+ /**
89
+ * Sets CustomData object that includes additional business data about the event.
90
+ * @param FacebookAds\Object\BusinessDataAPI\CustomData $custom_data
91
+ * @return $this
92
+ */
93
+ public function setCustomData($custom_data)
94
+ {
95
+ $this->container['custom_data'] = $custom_data;
96
+ return $this;
97
+ }
98
+ /**
99
+ * Sets the processing options you would like to enable for a specific event.
100
+ * For more details see: https://developers.facebook.com/docs/marketing-apis/data-processing-options
101
+ * @param string[], e.g. [] or ['LDU']
102
+ * @return $this
103
+ */
104
+ public function setDataProcessingOptions($data_processing_options)
105
+ {
106
+ $this->container['data_processing_options'] = $data_processing_options;
107
+ return $this;
108
+ }
109
+ /**
110
+ * Sets a country that you want to associate to this data processing option. If you set a country, you must also set a state.
111
+ * For more details see: https://developers.facebook.com/docs/marketing-apis/data-processing-options
112
+ * @param int
113
+ * @return $this
114
+ */
115
+ public function setDataProcessingOptionsCountry($data_processing_options_country)
116
+ {
117
+ $this->container['data_processing_options_country'] = $data_processing_options_country;
118
+ return $this;
119
+ }
120
+ /**
121
+ * Sets a state that you want to associate with this data processing option.
122
+ * For more details see: https://developers.facebook.com/docs/marketing-apis/data-processing-options
123
+ * @param int
124
+ * @return $this
125
+ *
126
+ */
127
+ public function setDataProcessingOptionsState($data_processing_options_state)
128
+ {
129
+ $this->container['data_processing_options_state'] = $data_processing_options_state;
130
+ return $this;
131
+ }
132
+ /**
133
+ * convert to Json
134
+ * @return array
135
+ */
136
+ public function toJson()
137
+ {
138
+ $request = array();
139
+ $request['event_name'] = $this->getEventName();
140
+ $request['event_time'] = $this->getEventTime();
141
+ $request['event_id'] = $this->getEventId();
142
+ $request['user_data'] = isset($this->container['user_data']) ? $this->getUserData()->toJson() : null;
143
+ $request['custom_data'] = isset($this->container['custom_data']) ? $this->getCustomData()->toJson() : null;
144
+ $request['data_processing_options'] = $this->getDataProcessingOptions();
145
+ $request['data_processing_options_country'] = $this->getDataProcessingOptionsCountry();
146
+ $request['data_processing_options_state'] = $this->getDataProcessingOptionsState();
147
+ $request = \array_filter($request, function ($val) {
148
+ if (\is_array($val)) {
149
+ return \true;
150
+ } else {
151
+ return \strlen($val);
152
+ }
153
+ });
154
+ return $request;
155
+ }
156
+ /**
157
+ * Gets Facebook pixel Standard Event or Custom Event name.
158
+ * @return string
159
+ */
160
+ public function getEventName()
161
+ {
162
+ return $this->container['event_name'];
163
+ }
164
+ /**
165
+ * Gets Unix timestamp in seconds indicating when the actual event occurred.
166
+ * @return int
167
+ */
168
+ public function getEventTime()
169
+ {
170
+ return $this->container['event_time'];
171
+ }
172
+ /**
173
+ * Gets Event ID can be any string chosen by the advertiser.
174
+ * @return string
175
+ */
176
+ public function getEventId()
177
+ {
178
+ return $this->container['event_id'];
179
+ }
180
+ /**
181
+ * Gets UserData object that contains user data
182
+ * @return FacebookAds\Object\BusinessDataAPI\UserData
183
+ */
184
+ public function getUserData()
185
+ {
186
+ return $this->container['user_data'];
187
+ }
188
+ /**
189
+ * Gets customData object that includes additional business data about the event.
190
+ * @return FacebookAds\Object\BusinessDataAPI\CustomData
191
+ */
192
+ public function getCustomData()
193
+ {
194
+ return $this->container['custom_data'];
195
+ }
196
+ /**
197
+ * Gets DataProcessionOptions value of Processing options you would like to enable for a specific event.
198
+ * @return string[]
199
+ */
200
+ public function getDataProcessingOptions()
201
+ {
202
+ return $this->container['data_processing_options'];
203
+ }
204
+ /**
205
+ * Gets DataProcessionOptionsState value that represents the state that you want to associate with this data processing option.
206
+ * @return int
207
+ */
208
+ public function getDataProcessingOptionsState()
209
+ {
210
+ return $this->container['data_processing_options_state'];
211
+ }
212
+ /**
213
+ * Gets DataProcessionOptionsCountry value that represents the country that you want to associate to this data processing option.
214
+ * @return int
215
+ */
216
+ public function getDataProcessingOptionsCountry()
217
+ {
218
+ return $this->container['data_processing_options_country'];
219
+ }
220
+ /**
221
+ * Gets the string representation of the object
222
+ * @return string
223
+ */
224
+ public function __toString()
225
+ {
226
+ if (\defined('JSON_PRETTY_PRINT')) {
227
+ // use JSON pretty print
228
+ return \json_encode($this, \JSON_PRETTY_PRINT);
229
+ }
230
+ return \json_encode($this);
231
+ }
232
+ }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/EventRequest.php ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
+ *
6
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
+ * use, copy, modify, and distribute this software in source code or binary
8
+ * form for use in connection with the web services and APIs provided by
9
+ * Facebook.
10
+ *
11
+ * As with any software that integrates with the Facebook platform, your use
12
+ * of this software is subject to the Facebook Developer Principles and
13
+ * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
+ * shall be included in all copies or substantial portions of the software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ * DEALINGS IN THE SOFTWARE.
23
+ *
24
+ */
25
+ namespace PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI;
26
+
27
+ use PYS_PRO_GLOBAL\FacebookAds\Api;
28
+ use PYS_PRO_GLOBAL\FacebookAds\ApiConfig;
29
+ use PYS_PRO_GLOBAL\FacebookAds\Object\Page;
30
+ /**
31
+ * Business Data API Event Request
32
+ *
33
+ * @category Class
34
+ */
35
+ class EventRequest
36
+ {
37
+ /**
38
+ * Associative array for storing property values
39
+ * @var mixed[]
40
+ */
41
+ protected $container = array();
42
+ /**
43
+ * Constructor
44
+ * @param string $page_id page id
45
+ * @param mixed[] $data Associated array of property value initializing the model
46
+ */
47
+ public function __construct(string $page_id, array $data = null)
48
+ {
49
+ $this->container['page_id'] = $page_id;
50
+ $this->container['events'] = isset($data['events']) ? $data['events'] : null;
51
+ }
52
+ /**
53
+ * Sets an array of Business Data Event objects
54
+ * @param FacebookAds\Object\BusinessDataAPI\Event[] $events An array of Business Data Event objects
55
+ * @return $this
56
+ */
57
+ public function setEvents($events)
58
+ {
59
+ $this->container['events'] = $events;
60
+ return $this;
61
+ }
62
+ /**
63
+ * Sets Partner Agent, which specifies who is sending the event.
64
+ * @param string $partner_agent The partner agent who is sending the event
65
+ * @return $this
66
+ */
67
+ public function setPartnerAgent($partner_agent)
68
+ {
69
+ $this->container['partner_agent'] = $partner_agent;
70
+ return $this;
71
+ }
72
+ /**
73
+ * Execute the request
74
+ * @return EventResponse
75
+ */
76
+ public function execute()
77
+ {
78
+ $fields = array();
79
+ $params = $this->toJson();
80
+ $page = new \PYS_PRO_GLOBAL\FacebookAds\Object\Page($this->container['page_id']);
81
+ $response = $page->createBusinessDatum($fields, $params);
82
+ $event_response = new \PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI\EventResponse($response->exportAllData());
83
+ return $event_response;
84
+ }
85
+ /**
86
+ * convert to JSON
87
+ * @return array
88
+ */
89
+ public function toJson()
90
+ {
91
+ $data = array();
92
+ $events = $this->getEvents();
93
+ if (!\is_null($events)) {
94
+ foreach ($events as $event) {
95
+ $event_data = $event->toJson();
96
+ \array_push($data, $event_data);
97
+ }
98
+ }
99
+ $payload = array('data' => $data, 'partner_agent' => $this->container['partner_agent']);
100
+ $payload = \array_filter($payload);
101
+ return $payload;
102
+ }
103
+ /**
104
+ * Gets an array of Event objects
105
+ * @return FacebookAds\Object\BusinessDataAPI\Event[]
106
+ */
107
+ public function getEvents()
108
+ {
109
+ return $this->container['events'];
110
+ }
111
+ /**
112
+ * Gets Partner Agent, which specifies who is sending the event.
113
+ * @return string
114
+ */
115
+ public function getPartnerAgent()
116
+ {
117
+ return $this->container['partner_agent'];
118
+ }
119
+ /**
120
+ * Gets the string presentation of the object
121
+ * @return string
122
+ */
123
+ public function __toString()
124
+ {
125
+ if (\defined('JSON_PRETTY_PRINT')) {
126
+ // use JSON pretty print
127
+ return \json_encode($this, \JSON_PRETTY_PRINT);
128
+ }
129
+ return \json_encode($this);
130
+ }
131
+ }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/EventResponse.php ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
+ *
6
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
+ * use, copy, modify, and distribute this software in source code or binary
8
+ * form for use in connection with the web services and APIs provided by
9
+ * Facebook.
10
+ *
11
+ * As with any software that integrates with the Facebook platform, your use
12
+ * of this software is subject to the Facebook Developer Principles and
13
+ * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
+ * shall be included in all copies or substantial portions of the software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ * DEALINGS IN THE SOFTWARE.
23
+ *
24
+ */
25
+ namespace PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI;
26
+
27
+ /**
28
+ * event response.
29
+ *
30
+ * @category Class
31
+ */
32
+ class EventResponse
33
+ {
34
+ /**
35
+ * Associative array for storing property values
36
+ * @var mixed[]
37
+ */
38
+ protected $container = array();
39
+ /**
40
+ * Constructor
41
+ * @param mixed[] $data Associated array of property value initalizing the model
42
+ */
43
+ public function __construct(array $data = null)
44
+ {
45
+ $this->container['events_received'] = isset($data['events_received']) ? $data['events_received'] : null;
46
+ $this->container['events_dropped'] = isset($data['events_dropped']) ? $data['events_dropped'] : null;
47
+ $this->container['message'] = isset($data['message']) ? $data['message'] : null;
48
+ }
49
+ /**
50
+ * Gets number of events received.
51
+ * @return int
52
+ */
53
+ public function getEventsReceived()
54
+ {
55
+ return $this->container['events_received'];
56
+ }
57
+ /**
58
+ * Sets number of events received.
59
+ * @param int $events_received number of events received.
60
+ * @return $this
61
+ */
62
+ public function setEventsReceived($events_received)
63
+ {
64
+ $this->container['events_received'] = $events_received;
65
+ return $this;
66
+ }
67
+ /**
68
+ * Gets number of events dropped.
69
+ * @return int
70
+ */
71
+ public function getEventsDropped()
72
+ {
73
+ return $this->container['events_dropped'];
74
+ }
75
+ /**
76
+ * Sets number of events dropped.
77
+ * @param int $events_dropped number of events dropped.
78
+ * @return $this
79
+ */
80
+ public function setEventsDropped($events_dropped)
81
+ {
82
+ $this->container['events_dropped'] = $events_dropped;
83
+ return $this;
84
+ }
85
+ /**
86
+ * Gets response message.
87
+ * @return array
88
+ */
89
+ public function getMessage()
90
+ {
91
+ return $this->container['message'];
92
+ }
93
+ /**
94
+ * Sets response message.
95
+ * @param array $message response message.
96
+ * @return $this
97
+ */
98
+ public function setMessage($message)
99
+ {
100
+ $this->container['message'] = $message;
101
+ return $this;
102
+ }
103
+ /**
104
+ * Gets the string presentation of the object
105
+ * @return string
106
+ */
107
+ public function __toString()
108
+ {
109
+ if (\defined('JSON_PRETTY_PRINT')) {
110
+ // use JSON pretty print
111
+ return \json_encode($this, \JSON_PRETTY_PRINT);
112
+ }
113
+ return \json_encode($this);
114
+ }
115
+ }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/UserData.php ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
+ *
6
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
+ * use, copy, modify, and distribute this software in source code or binary
8
+ * form for use in connection with the web services and APIs provided by
9
+ * Facebook.
10
+ *
11
+ * As with any software that integrates with the Facebook platform, your use
12
+ * of this software is subject to the Facebook Developer Principles and
13
+ * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
+ * shall be included in all copies or substantial portions of the software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ * DEALINGS IN THE SOFTWARE.
23
+ *
24
+ */
25
+ namespace PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI;
26
+
27
+ /**
28
+ * UserData is a set of identifiers Facebook can use for targeted attribution.
29
+ *
30
+ * @category Class
31
+ */
32
+ class UserData
33
+ {
34
+ /**
35
+ * Associative array for storing property values
36
+ * @var mixed[]
37
+ */
38
+ protected $container = array();
39
+ /**
40
+ * Constructor
41
+ * @param mixed[] $data Associated array of property value initalizing the model
42
+ */
43
+ public function __construct(array $data = null)
44
+ {
45
+ $this->container['email'] = isset($data['email']) ? $data['email'] : null;
46
+ $this->container['phone'] = isset($data['phone']) ? $data['phone'] : null;
47
+ $this->container['date_of_birth'] = isset($data['date_of_birth']) ? $data['date_of_birth'] : null;
48
+ $this->container['last_name'] = isset($data['last_name']) ? $data['last_name'] : null;
49
+ $this->container['first_name'] = isset($data['first_name']) ? $data['first_name'] : null;
50
+ $this->container['city'] = isset($data['city']) ? $data['city'] : null;
51
+ $this->container['state'] = isset($data['state']) ? $data['state'] : null;
52
+ $this->container['country_code'] = isset($data['country_code']) ? $data['country_code'] : null;
53
+ $this->container['zip_code'] = isset($data['zip_code']) ? $data['zip_code'] : null;
54
+ $this->container['external_id'] = isset($data['external_id']) ? $data['external_id'] : null;
55
+ $this->container['address'] = isset($data['address']) ? $data['address'] : null;
56
+ }
57
+ /**
58
+ * Sets an email address, in lowercase.
59
+ *
60
+ * Example: joe@eg.com
61
+ * @param string $email An email address, in lowercase.
62
+ * @return $this
63
+ */
64
+ public function setEmail($email)
65
+ {
66
+ $this->container['email'] = $email;
67
+ return $this;
68
+ }
69
+ /**
70
+ * Sets a phone number. Include only digits with countryCode code, area code, and number.
71
+ *
72
+ * Example: 16505551212
73
+ * @param string $phone A phone number. Include only digits with country code, area code, and number.
74
+ * @return $this
75
+ */
76
+ public function setPhone($phone)
77
+ {
78
+ $this->container['phone'] = $phone;
79
+ return $this;
80
+ }
81
+ /**
82
+ * Sets a date of birth given as year, month, and day.
83
+ *
84
+ * Example: 19971226 for December 26, 1997.
85
+ * @param string $date_of_birth A date of birth given as year, month, and day.
86
+ * @return $this
87
+ */
88
+ public function setDateOfBirth($date_of_birth)
89
+ {
90
+ $this->container['date_of_birth'] = $date_of_birth;
91
+ return $this;
92
+ }
93
+ /**
94
+ * Sets a last name in lowercase.
95
+ *
96
+ * Example: smith
97
+ * @param string $last_name A last name in lowercase.
98
+ * @return $this
99
+ */
100
+ public function setLastName($last_name)
101
+ {
102
+ $this->container['last_name'] = $last_name;
103
+ return $this;
104
+ }
105
+ /**
106
+ * Sets a first name in lowercase.
107
+ *
108
+ * Example: joe
109
+ * @param string $first_name A first name in lowercase.
110
+ * @return $this
111
+ */
112
+ public function setFirstName($first_name)
113
+ {
114
+ $this->container['first_name'] = $first_name;
115
+ return $this;
116
+ }
117
+ /**
118
+ * Sets a city in lowercase without spaces or punctuation.
119
+ *
120
+ * Example: menlopark
121
+ * @param string $city A city in lowercase without spaces or punctuation.
122
+ * @return $this
123
+ */
124
+ public function setCity($city)
125
+ {
126
+ $this->container['city'] = $city;
127
+ return $this;
128
+ }
129
+ /**
130
+ * Sets a two-letter state code in lowercase.
131
+ *
132
+ * Example: ca
133
+ * @param string $state A two-letter state code in lowercase.
134
+ * @return $this
135
+ */
136
+ public function setState($state)
137
+ {
138
+ $this->container['state'] = $state;
139
+ return $this;
140
+ }
141
+ /**
142
+ * Sets a two-letter country code in lowercase.
143
+ *
144
+ * Example: us
145
+ * @param string $country_code two-letter country code in lowercase.
146
+ * @return $this
147
+ */
148
+ public function setCountryCode($country_code)
149
+ {
150
+ $this->container['country_code'] = $country_code;
151
+ return $this;
152
+ }
153
+ /**
154
+ * Sets a five-digit zip code.
155
+ *
156
+ * Example: 94035
157
+ * @param string $zip_code A five-digit zip code.
158
+ * @return $this
159
+ */
160
+ public function setZipCode($zip_code)
161
+ {
162
+ $this->container['zip_code'] = $zip_code;
163
+ return $this;
164
+ }
165
+ /**
166
+ * Sets any unique ID from the advertiser, such as loyalty membership IDs, user IDs, and external
167
+ * cookie IDs. In the Offline Conversions API, this is known as extern_id. For more information,
168
+ * see Offline Conversions, Providing External IDs. If External ID is being sent via other
169
+ * channels, then it should be sent in the same format via the server-side API.
170
+ * @param string $external_id Any unique ID from the advertiser, such as loyalty membership IDs,
171
+ * user IDs, and external cookie IDs.
172
+ * @return $this
173
+ */
174
+ public function setExternalId($external_id)
175
+ {
176
+ $this->container['external_id'] = $external_id;
177
+ return $this;
178
+ }
179
+ /**
180
+ * Sets physical address
181
+ * Example: 1001 Westlake Ave
182
+ * @param string $address Physical address
183
+ * @return $this
184
+ */
185
+ public function setAddress($address)
186
+ {
187
+ $this->container['address'] = $address;
188
+ return $this;
189
+ }
190
+ public function toJson()
191
+ {
192
+ $request = array();
193
+ $request['em'] = $this->getEmail();
194
+ $request['ph'] = $this->getPhone();
195
+ $request['db'] = $this->getDateOfBirth();
196
+ $request['ln'] = $this->getLastName();
197
+ $request['fn'] = $this->getFirstName();
198
+ $request['ct'] = $this->getCity();
199
+ $request['st'] = $this->getState();
200
+ $request['zp'] = $this->getZipCode();
201
+ $request['country'] = $this->getCountryCode();
202
+ $request['external_id'] = $this->getExternalId();
203
+ $request['addr'] = $this->getAddress();
204
+ $request = \array_filter($request);
205
+ return $request;
206
+ }
207
+ /**
208
+ * Gets an email address, in lowercase.
209
+ * @return string
210
+ */
211
+ public function getEmail()
212
+ {
213
+ return $this->container['email'];
214
+ }
215
+ /**
216
+ * Gets a phone number
217
+ * @return string
218
+ */
219
+ public function getPhone()
220
+ {
221
+ return $this->container['phone'];
222
+ }
223
+ /**
224
+ * Gets Date Of Birth.
225
+ * @return string
226
+ */
227
+ public function getDateOfBirth()
228
+ {
229
+ return $this->container['date_of_birth'];
230
+ }
231
+ /**
232
+ * Gets Last Name.
233
+ * @return string
234
+ */
235
+ public function getLastName()
236
+ {
237
+ return $this->container['last_name'];
238
+ }
239
+ /**
240
+ * Gets First Name.
241
+ * @return string
242
+ */
243
+ public function getFirstName()
244
+ {
245
+ return $this->container['first_name'];
246
+ }
247
+ /**
248
+ * Gets city.
249
+ * @return string
250
+ */
251
+ public function getCity()
252
+ {
253
+ return $this->container['city'];
254
+ }
255
+ /**
256
+ * Gets state.
257
+ * @return string
258
+ */
259
+ public function getState()
260
+ {
261
+ return $this->container['state'];
262
+ }
263
+ /**
264
+ * Gets zip code
265
+ * @return string
266
+ */
267
+ public function getZipCode()
268
+ {
269
+ return $this->container['zip_code'];
270
+ }
271
+ /**
272
+ * Gets country code.
273
+ * @return string
274
+ */
275
+ public function getCountryCode()
276
+ {
277
+ return $this->container['country_code'];
278
+ }
279
+ /**
280
+ * Gets Any unique ID from the advertiser, such as loyalty membership IDs, user IDs, and external cookie IDs.
281
+ * @return string
282
+ */
283
+ public function getExternalId()
284
+ {
285
+ return $this->container['external_id'];
286
+ }
287
+ /**
288
+ * Gets physical address
289
+ * @return string
290
+ */
291
+ public function getAddress()
292
+ {
293
+ return $this->container['address'];
294
+ }
295
+ /**
296
+ * Gets the string presentation of the object
297
+ * @return string
298
+ */
299
+ public function __toString()
300
+ {
301
+ if (\defined('JSON_PRETTY_PRINT')) {
302
+ // use JSON pretty print
303
+ return \json_encode($this, \JSON_PRETTY_PRINT);
304
+ }
305
+ return \json_encode($this);
306
+ }
307
+ }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Campaign.php CHANGED
@@ -183,7 +183,7 @@ class Campaign extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractArchivableCrud
183
  public function getInsights(array $fields = array(), array $params = array(), $pending = \false)
184
  {
185
  $this->assureId();
186
- $param_types = array('action_attribution_windows' => 'list<action_attribution_windows_enum>', 'action_breakdowns' => 'list<action_breakdowns_enum>', 'action_report_time' => 'action_report_time_enum', 'breakdowns' => 'list<breakdowns_enum>', 'date_preset' => 'date_preset_enum', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'level_enum', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<summary_action_breakdowns_enum>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool');
187
  $enums = array('action_attribution_windows_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionAttributionWindowsValues::getInstance()->getValues(), 'action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues::getInstance()->getValues(), 'action_report_time_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionReportTimeValues::getInstance()->getValues(), 'breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsBreakdownsValues::getInstance()->getValues(), 'date_preset_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsDatePresetValues::getInstance()->getValues(), 'level_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsLevelValues::getInstance()->getValues(), 'summary_action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsSummaryActionBreakdownsValues::getInstance()->getValues());
188
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/insights', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdsInsights(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdsInsights::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
189
  $request->addParams($params);
@@ -193,7 +193,7 @@ class Campaign extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractArchivableCrud
193
  public function getInsightsAsync(array $fields = array(), array $params = array(), $pending = \false)
194
  {
195
  $this->assureId();
196
- $param_types = array('action_attribution_windows' => 'list<action_attribution_windows_enum>', 'action_breakdowns' => 'list<action_breakdowns_enum>', 'action_report_time' => 'action_report_time_enum', 'breakdowns' => 'list<breakdowns_enum>', 'date_preset' => 'date_preset_enum', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'level_enum', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<summary_action_breakdowns_enum>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool');
197
  $enums = array('action_attribution_windows_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionAttributionWindowsValues::getInstance()->getValues(), 'action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues::getInstance()->getValues(), 'action_report_time_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionReportTimeValues::getInstance()->getValues(), 'breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsBreakdownsValues::getInstance()->getValues(), 'date_preset_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsDatePresetValues::getInstance()->getValues(), 'level_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsLevelValues::getInstance()->getValues(), 'summary_action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsSummaryActionBreakdownsValues::getInstance()->getValues());
198
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/insights', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdReportRun(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdReportRun::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
199
  $request->addParams($params);
@@ -223,7 +223,7 @@ class Campaign extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractArchivableCrud
223
  public function updateSelf(array $fields = array(), array $params = array(), $pending = \false)
224
  {
225
  $this->assureId();
226
- $param_types = array('adlabels' => 'list<Object>', 'adset_bid_amounts' => 'map', 'adset_budgets' => 'list<map>', 'bid_strategy' => 'bid_strategy_enum', 'budget_rebalance_flag' => 'bool', 'daily_budget' => 'unsigned int', 'execution_options' => 'list<execution_options_enum>', 'iterative_split_test_configs' => 'list<Object>', 'lifetime_budget' => 'unsigned int', 'name' => 'string', 'objective' => 'objective_enum', 'pacing_type' => 'list<string>', 'promoted_object' => 'Object', 'smart_promotion_type' => 'smart_promotion_type_enum', 'special_ad_categories' => 'list<special_ad_categories_enum>', 'special_ad_category' => 'special_ad_category_enum', 'special_ad_category_country' => 'list<special_ad_category_country_enum>', 'spend_cap' => 'unsigned int', 'status' => 'status_enum', 'upstream_events' => 'map');
227
  $enums = array('bid_strategy_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignBidStrategyValues::getInstance()->getValues(), 'execution_options_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignExecutionOptionsValues::getInstance()->getValues(), 'objective_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignObjectiveValues::getInstance()->getValues(), 'smart_promotion_type_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignSmartPromotionTypeValues::getInstance()->getValues(), 'special_ad_categories_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignSpecialAdCategoriesValues::getInstance()->getValues(), 'special_ad_category_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignSpecialAdCategoryValues::getInstance()->getValues(), 'special_ad_category_country_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignSpecialAdCategoryCountryValues::getInstance()->getValues(), 'status_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignStatusValues::getInstance()->getValues());
228
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/', new \PYS_PRO_GLOBAL\FacebookAds\Object\Campaign(), 'NODE', \PYS_PRO_GLOBAL\FacebookAds\Object\Campaign::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
229
  $request->addParams($params);
183
  public function getInsights(array $fields = array(), array $params = array(), $pending = \false)
184
  {
185
  $this->assureId();
186
+ $param_types = array('action_attribution_windows' => 'list<action_attribution_windows_enum>', 'action_breakdowns' => 'list<action_breakdowns_enum>', 'action_report_time' => 'action_report_time_enum', 'breakdowns' => 'list<breakdowns_enum>', 'date_preset' => 'date_preset_enum', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'level_enum', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<summary_action_breakdowns_enum>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool', 'use_unified_attribution_setting' => 'bool');
187
  $enums = array('action_attribution_windows_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionAttributionWindowsValues::getInstance()->getValues(), 'action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues::getInstance()->getValues(), 'action_report_time_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionReportTimeValues::getInstance()->getValues(), 'breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsBreakdownsValues::getInstance()->getValues(), 'date_preset_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsDatePresetValues::getInstance()->getValues(), 'level_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsLevelValues::getInstance()->getValues(), 'summary_action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsSummaryActionBreakdownsValues::getInstance()->getValues());
188
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/insights', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdsInsights(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdsInsights::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
189
  $request->addParams($params);
193
  public function getInsightsAsync(array $fields = array(), array $params = array(), $pending = \false)
194
  {
195
  $this->assureId();
196
+ $param_types = array('action_attribution_windows' => 'list<action_attribution_windows_enum>', 'action_breakdowns' => 'list<action_breakdowns_enum>', 'action_report_time' => 'action_report_time_enum', 'breakdowns' => 'list<breakdowns_enum>', 'date_preset' => 'date_preset_enum', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'level_enum', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<summary_action_breakdowns_enum>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool', 'use_unified_attribution_setting' => 'bool');
197
  $enums = array('action_attribution_windows_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionAttributionWindowsValues::getInstance()->getValues(), 'action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues::getInstance()->getValues(), 'action_report_time_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsActionReportTimeValues::getInstance()->getValues(), 'breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsBreakdownsValues::getInstance()->getValues(), 'date_preset_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsDatePresetValues::getInstance()->getValues(), 'level_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsLevelValues::getInstance()->getValues(), 'summary_action_breakdowns_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\AdsInsightsSummaryActionBreakdownsValues::getInstance()->getValues());
198
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/insights', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdReportRun(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdReportRun::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
199
  $request->addParams($params);
223
  public function updateSelf(array $fields = array(), array $params = array(), $pending = \false)
224
  {
225
  $this->assureId();
226
+ $param_types = array('adlabels' => 'list<Object>', 'adset_bid_amounts' => 'map', 'adset_budgets' => 'list<map>', 'bid_strategy' => 'bid_strategy_enum', 'budget_rebalance_flag' => 'bool', 'daily_budget' => 'unsigned int', 'execution_options' => 'list<execution_options_enum>', 'is_skadnetwork_attribution' => 'bool', 'iterative_split_test_configs' => 'list<Object>', 'lifetime_budget' => 'unsigned int', 'name' => 'string', 'objective' => 'objective_enum', 'pacing_type' => 'list<string>', 'promoted_object' => 'Object', 'smart_promotion_type' => 'smart_promotion_type_enum', 'special_ad_categories' => 'list<special_ad_categories_enum>', 'special_ad_category' => 'special_ad_category_enum', 'special_ad_category_country' => 'list<special_ad_category_country_enum>', 'spend_cap' => 'unsigned int', 'status' => 'status_enum', 'upstream_events' => 'map');
227
  $enums = array('bid_strategy_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignBidStrategyValues::getInstance()->getValues(), 'execution_options_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignExecutionOptionsValues::getInstance()->getValues(), 'objective_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignObjectiveValues::getInstance()->getValues(), 'smart_promotion_type_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignSmartPromotionTypeValues::getInstance()->getValues(), 'special_ad_categories_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignSpecialAdCategoriesValues::getInstance()->getValues(), 'special_ad_category_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignSpecialAdCategoryValues::getInstance()->getValues(), 'special_ad_category_country_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignSpecialAdCategoryCountryValues::getInstance()->getValues(), 'status_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CampaignStatusValues::getInstance()->getValues());
228
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/', new \PYS_PRO_GLOBAL\FacebookAds\Object\Campaign(), 'NODE', \PYS_PRO_GLOBAL\FacebookAds\Object\Campaign::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
229
  $request->addParams($params);
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/{UserPaymentModulesOptions.php → CatalogItemChannelsToIntegrityStatus.php} RENAMED
@@ -28,7 +28,7 @@ use PYS_PRO_GLOBAL\FacebookAds\ApiRequest;
28
  use PYS_PRO_GLOBAL\FacebookAds\Cursor;
29
  use PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface;
30
  use PYS_PRO_GLOBAL\FacebookAds\TypeChecker;
31
- use PYS_PRO_GLOBAL\FacebookAds\Object\Fields\UserPaymentModulesOptionsFields;
32
  /**
33
  * This class is auto-generated.
34
  *
@@ -37,14 +37,14 @@ use PYS_PRO_GLOBAL\FacebookAds\Object\Fields\UserPaymentModulesOptionsFields;
37
  * pull request for this class.
38
  *
39
  */
40
- class UserPaymentModulesOptions extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractObject
41
  {
42
  /**
43
- * @return UserPaymentModulesOptionsFields
44
  */
45
  public static function getFieldsEnum()
46
  {
47
- return \PYS_PRO_GLOBAL\FacebookAds\Object\Fields\UserPaymentModulesOptionsFields::getInstance();
48
  }
49
  protected static function getReferencedEnums()
50
  {
28
  use PYS_PRO_GLOBAL\FacebookAds\Cursor;
29
  use PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface;
30
  use PYS_PRO_GLOBAL\FacebookAds\TypeChecker;
31
+ use PYS_PRO_GLOBAL\FacebookAds\Object\Fields\CatalogItemChannelsToIntegrityStatusFields;
32
  /**
33
  * This class is auto-generated.
34
  *
37
  * pull request for this class.
38
  *
39
  */
40
+ class CatalogItemChannelsToIntegrityStatus extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractObject
41
  {
42
  /**
43
+ * @return CatalogItemChannelsToIntegrityStatusFields
44
  */
45
  public static function getFieldsEnum()
46
  {
47
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Fields\CatalogItemChannelsToIntegrityStatusFields::getInstance();
48
  }
49
  protected static function getReferencedEnums()
50
  {
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CustomAudience.php CHANGED
@@ -162,6 +162,16 @@ class CustomAudience extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObje
162
  $request->addFields($fields);
163
  return $pending ? $request : $request->execute();
164
  }
 
 
 
 
 
 
 
 
 
 
165
  public function deleteSelf(array $fields = array(), array $params = array(), $pending = \false)
166
  {
167
  $this->assureId();
162
  $request->addFields($fields);
163
  return $pending ? $request : $request->execute();
164
  }
165
+ public function createUsersReplace(array $fields = array(), array $params = array(), $pending = \false)
166
+ {
167
+ $this->assureId();
168
+ $param_types = array('namespace' => 'string', 'payload' => 'Object', 'session' => 'Object');
169
+ $enums = array();
170
+ $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/usersreplace', new \PYS_PRO_GLOBAL\FacebookAds\Object\CustomAudience(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\CustomAudience::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
171
+ $request->addParams($params);
172
+ $request->addFields($fields);
173
+ return $pending ? $request : $request->execute();
174
+ }
175
  public function deleteSelf(array $fields = array(), array $params = array(), $pending = \false)
176
  {
177
  $this->assureId();
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountCreationRequestFields.php DELETED
@@ -1,75 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
- *
6
- * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
- * use, copy, modify, and distribute this software in source code or binary
8
- * form for use in connection with the web services and APIs provided by
9
- * Facebook.
10
- *
11
- * As with any software that integrates with the Facebook platform, your use
12
- * of this software is subject to the Facebook Developer Principles and
13
- * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
- * shall be included in all copies or substantial portions of the software.
15
- *
16
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
- * DEALINGS IN THE SOFTWARE.
23
- *
24
- */
25
- namespace PYS_PRO_GLOBAL\FacebookAds\Object\Fields;
26
-
27
- use PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum;
28
- /**
29
- * This class is auto-generated.
30
- *
31
- * For any issues or feature requests related to this class, please let us know
32
- * on github and we'll fix in our codegen framework. We'll not be able to accept
33
- * pull request for this class.
34
- *
35
- */
36
- class AdAccountCreationRequestFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
37
- {
38
- const AD_ACCOUNTS_CURRENCY = 'ad_accounts_currency';
39
- const AD_ACCOUNTS_INFO = 'ad_accounts_info';
40
- const ADDITIONAL_COMMENT = 'additional_comment';
41
- const ADDRESS_IN_CHINESE = 'address_in_chinese';
42
- const ADDRESS_IN_ENGLISH = 'address_in_english';
43
- const ADDRESS_IN_LOCAL_LANGUAGE = 'address_in_local_language';
44
- const ADVERTISER_BUSINESS = 'advertiser_business';
45
- const APPEAL_REASON = 'appeal_reason';
46
- const BUSINESS = 'business';
47
- const BUSINESS_REGISTRATION_ID = 'business_registration_id';
48
- const CHINESE_LEGAL_ENTITY_NAME = 'chinese_legal_entity_name';
49
- const CONTACT = 'contact';
50
- const CREATOR = 'creator';
51
- const CREDIT_CARD_ID = 'credit_card_id';
52
- const DISAPPROVAL_REASONS = 'disapproval_reasons';
53
- const ENGLISH_LEGAL_ENTITY_NAME = 'english_legal_entity_name';
54
- const EXTENDED_CREDIT_ID = 'extended_credit_id';
55
- const ID = 'id';
56
- const IS_SMB = 'is_smb';
57
- const IS_TEST = 'is_test';
58
- const LEGAL_ENTITY_NAME_IN_LOCAL_LANGUAGE = 'legal_entity_name_in_local_language';
59
- const OE_REQUEST_ID = 'oe_request_id';
60
- const OFFICIAL_WEBSITE_URL = 'official_website_url';
61
- const PLANNING_AGENCY_BUSINESS = 'planning_agency_business';
62
- const PLANNING_AGENCY_BUSINESS_ID = 'planning_agency_business_id';
63
- const PROMOTABLE_APP_IDS = 'promotable_app_ids';
64
- const PROMOTABLE_PAGE_IDS = 'promotable_page_ids';
65
- const PROMOTABLE_URLS = 'promotable_urls';
66
- const REQUEST_CHANGE_REASONS = 'request_change_reasons';
67
- const STATUS = 'status';
68
- const SUBVERTICAL = 'subvertical';
69
- const TIME_CREATED = 'time_created';
70
- const VERTICAL = 'vertical';
71
- public function getFieldTypes()
72
- {
73
- return array('ad_accounts_currency' => 'string', 'ad_accounts_info' => 'list<Object>', 'additional_comment' => 'string', 'address_in_chinese' => 'string', 'address_in_english' => 'Object', 'address_in_local_language' => 'string', 'advertiser_business' => 'Business', 'appeal_reason' => 'Object', 'business' => 'Business', 'business_registration_id' => 'string', 'chinese_legal_entity_name' => 'string', 'contact' => 'Object', 'creator' => 'User', 'credit_card_id' => 'string', 'disapproval_reasons' => 'list<Object>', 'english_legal_entity_name' => 'string', 'extended_credit_id' => 'string', 'id' => 'string', 'is_smb' => 'bool', 'is_test' => 'bool', 'legal_entity_name_in_local_language' => 'string', 'oe_request_id' => 'string', 'official_website_url' => 'string', 'planning_agency_business' => 'Business', 'planning_agency_business_id' => 'string', 'promotable_app_ids' => 'list<string>', 'promotable_page_ids' => 'list<string>', 'promotable_urls' => 'list<string>', 'request_change_reasons' => 'list<Object>', 'status' => 'string', 'subvertical' => 'string', 'time_created' => 'datetime', 'vertical' => 'string');
74
- }
75
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountFields.php CHANGED
@@ -37,7 +37,6 @@ class AdAccountFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
37
  {
38
  const ACCOUNT_ID = 'account_id';
39
  const ACCOUNT_STATUS = 'account_status';
40
- const AD_ACCOUNT_CREATION_REQUEST = 'ad_account_creation_request';
41
  const AD_ACCOUNT_PROMOTABLE_OBJECTS = 'ad_account_promotable_objects';
42
  const AGE = 'age';
43
  const AGENCY_CLIENT_DECLARATION = 'agency_client_declaration';
@@ -97,6 +96,6 @@ class AdAccountFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
97
  const USER_TOS_ACCEPTED = 'user_tos_accepted';
98
  public function getFieldTypes()
99
  {
100
- return array('account_id' => 'string', 'account_status' => 'unsigned int', 'ad_account_creation_request' => 'AdAccountCreationRequest', 'ad_account_promotable_objects' => 'AdAccountPromotableObjects', 'age' => 'float', 'agency_client_declaration' => 'AgencyClientDeclaration', 'amount_spent' => 'string', 'attribution_spec' => 'list<AttributionSpec>', 'balance' => 'string', 'business' => 'Business', 'business_city' => 'string', 'business_country_code' => 'string', 'business_name' => 'string', 'business_state' => 'string', 'business_street' => 'string', 'business_street2' => 'string', 'business_zip' => 'string', 'capabilities' => 'list<string>', 'created_time' => 'datetime', 'currency' => 'string', 'disable_reason' => 'unsigned int', 'end_advertiser' => 'string', 'end_advertiser_name' => 'string', 'extended_credit_invoice_group' => 'ExtendedCreditInvoiceGroup', 'failed_delivery_checks' => 'list<DeliveryCheck>', 'fb_entity' => 'unsigned int', 'funding_source' => 'string', 'funding_source_details' => 'FundingSourceDetails', 'has_migrated_permissions' => 'bool', 'has_page_authorized_adaccount' => 'bool', 'id' => 'string', 'io_number' => 'string', 'is_attribution_spec_system_default' => 'bool', 'is_direct_deals_enabled' => 'bool', 'is_in_3ds_authorization_enabled_market' => 'bool', 'is_in_middle_of_local_entity_migration' => 'bool', 'is_notifications_enabled' => 'bool', 'is_personal' => 'unsigned int', 'is_prepay_account' => 'bool', 'is_tax_id_required' => 'bool', 'line_numbers' => 'list<int>', 'media_agency' => 'string', 'min_campaign_group_spend_cap' => 'string', 'min_daily_budget' => 'unsigned int', 'name' => 'string', 'offsite_pixels_tos_accepted' => 'bool', 'owner' => 'string', 'partner' => 'string', 'rf_spec' => 'ReachFrequencySpec', 'show_checkout_experience' => 'bool', 'spend_cap' => 'string', 'tax_id' => 'string', 'tax_id_status' => 'unsigned int', 'tax_id_type' => 'string', 'timezone_id' => 'unsigned int', 'timezone_name' => 'string', 'timezone_offset_hours_utc' => 'float', 'tos_accepted' => 'map<string, int>', 'user_tasks' => 'list<string>', 'user_tos_accepted' => 'map<string, int>');
101
  }
102
  }
37
  {
38
  const ACCOUNT_ID = 'account_id';
39
  const ACCOUNT_STATUS = 'account_status';
 
40
  const AD_ACCOUNT_PROMOTABLE_OBJECTS = 'ad_account_promotable_objects';
41
  const AGE = 'age';
42
  const AGENCY_CLIENT_DECLARATION = 'agency_client_declaration';
96
  const USER_TOS_ACCEPTED = 'user_tos_accepted';
97
  public function getFieldTypes()
98
  {
99
+ return array('account_id' => 'string', 'account_status' => 'unsigned int', 'ad_account_promotable_objects' => 'AdAccountPromotableObjects', 'age' => 'float', 'agency_client_declaration' => 'AgencyClientDeclaration', 'amount_spent' => 'string', 'attribution_spec' => 'list<AttributionSpec>', 'balance' => 'string', 'business' => 'Business', 'business_city' => 'string', 'business_country_code' => 'string', 'business_name' => 'string', 'business_state' => 'string', 'business_street' => 'string', 'business_street2' => 'string', 'business_zip' => 'string', 'capabilities' => 'list<string>', 'created_time' => 'datetime', 'currency' => 'string', 'disable_reason' => 'unsigned int', 'end_advertiser' => 'string', 'end_advertiser_name' => 'string', 'extended_credit_invoice_group' => 'ExtendedCreditInvoiceGroup', 'failed_delivery_checks' => 'list<DeliveryCheck>', 'fb_entity' => 'unsigned int', 'funding_source' => 'string', 'funding_source_details' => 'FundingSourceDetails', 'has_migrated_permissions' => 'bool', 'has_page_authorized_adaccount' => 'bool', 'id' => 'string', 'io_number' => 'string', 'is_attribution_spec_system_default' => 'bool', 'is_direct_deals_enabled' => 'bool', 'is_in_3ds_authorization_enabled_market' => 'bool', 'is_in_middle_of_local_entity_migration' => 'bool', 'is_notifications_enabled' => 'bool', 'is_personal' => 'unsigned int', 'is_prepay_account' => 'bool', 'is_tax_id_required' => 'bool', 'line_numbers' => 'list<int>', 'media_agency' => 'string', 'min_campaign_group_spend_cap' => 'string', 'min_daily_budget' => 'unsigned int', 'name' => 'string', 'offsite_pixels_tos_accepted' => 'bool', 'owner' => 'string', 'partner' => 'string', 'rf_spec' => 'ReachFrequencySpec', 'show_checkout_experience' => 'bool', 'spend_cap' => 'string', 'tax_id' => 'string', 'tax_id_status' => 'unsigned int', 'tax_id_type' => 'string', 'timezone_id' => 'unsigned int', 'timezone_name' => 'string', 'timezone_offset_hours_utc' => 'float', 'tos_accepted' => 'map<string, int>', 'user_tasks' => 'list<string>', 'user_tos_accepted' => 'map<string, int>');
100
  }
101
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{FriendListFields.php → AdCreativeOmnichannelLinkSpecFields.php} RENAMED
@@ -33,14 +33,12 @@ use PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum;
33
  * pull request for this class.
34
  *
35
  */
36
- class FriendListFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
37
  {
38
- const ID = 'id';
39
- const LIST_TYPE = 'list_type';
40
- const NAME = 'name';
41
- const OWNER = 'owner';
42
  public function getFieldTypes()
43
  {
44
- return array('id' => 'string', 'list_type' => 'string', 'name' => 'string', 'owner' => 'string');
45
  }
46
  }
33
  * pull request for this class.
34
  *
35
  */
36
+ class AdCreativeOmnichannelLinkSpecFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
37
  {
38
+ const APP = 'app';
39
+ const WEB = 'web';
 
 
40
  public function getFieldTypes()
41
  {
42
+ return array('app' => 'Object', 'web' => 'Object');
43
  }
44
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdFields.php CHANGED
@@ -46,6 +46,7 @@ class AdFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
46
  const CAMPAIGN = 'campaign';
47
  const CAMPAIGN_ID = 'campaign_id';
48
  const CONFIGURED_STATUS = 'configured_status';
 
49
  const CONVERSION_SPECS = 'conversion_specs';
50
  const CREATED_TIME = 'created_time';
51
  const CREATIVE = 'creative';
@@ -77,6 +78,6 @@ class AdFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
77
  const FILENAME = 'filename';
78
  public function getFieldTypes()
79
  {
80
- return array('account_id' => 'string', 'ad_review_feedback' => 'AdgroupReviewFeedback', 'adlabels' => 'list<AdLabel>', 'adset' => 'AdSet', 'adset_id' => 'string', 'bid_amount' => 'int', 'bid_info' => 'map<string, unsigned int>', 'bid_type' => 'BidType', 'campaign' => 'Campaign', 'campaign_id' => 'string', 'configured_status' => 'ConfiguredStatus', 'conversion_specs' => 'list<ConversionActionQuery>', 'created_time' => 'datetime', 'creative' => 'AdCreative', 'demolink_hash' => 'string', 'display_sequence' => 'int', 'effective_status' => 'EffectiveStatus', 'engagement_audience' => 'bool', 'failed_delivery_checks' => 'list<DeliveryCheck>', 'id' => 'string', 'issues_info' => 'list<AdgroupIssuesInfo>', 'last_updated_by_app_id' => 'string', 'name' => 'string', 'preview_shareable_link' => 'string', 'priority' => 'unsigned int', 'recommendations' => 'list<AdRecommendation>', 'source_ad' => 'Ad', 'source_ad_id' => 'string', 'status' => 'Status', 'targeting' => 'Targeting', 'tracking_and_conversion_with_defaults' => 'TrackingAndConversionWithDefaults', 'tracking_specs' => 'list<ConversionActionQuery>', 'updated_time' => 'datetime', 'adset_spec' => 'AdSet', 'audience_id' => 'string', 'date_format' => 'string', 'draft_adgroup_id' => 'string', 'execution_options' => 'list<ExecutionOptions>', 'include_demolink_hashes' => 'bool', 'filename' => 'file');
81
  }
82
  }
46
  const CAMPAIGN = 'campaign';
47
  const CAMPAIGN_ID = 'campaign_id';
48
  const CONFIGURED_STATUS = 'configured_status';
49
+ const CONVERSION_DOMAIN = 'conversion_domain';
50
  const CONVERSION_SPECS = 'conversion_specs';
51
  const CREATED_TIME = 'created_time';
52
  const CREATIVE = 'creative';
78
  const FILENAME = 'filename';
79
  public function getFieldTypes()
80
  {
81
+ return array('account_id' => 'string', 'ad_review_feedback' => 'AdgroupReviewFeedback', 'adlabels' => 'list<AdLabel>', 'adset' => 'AdSet', 'adset_id' => 'string', 'bid_amount' => 'int', 'bid_info' => 'map<string, unsigned int>', 'bid_type' => 'BidType', 'campaign' => 'Campaign', 'campaign_id' => 'string', 'configured_status' => 'ConfiguredStatus', 'conversion_domain' => 'string', 'conversion_specs' => 'list<ConversionActionQuery>', 'created_time' => 'datetime', 'creative' => 'AdCreative', 'demolink_hash' => 'string', 'display_sequence' => 'int', 'effective_status' => 'EffectiveStatus', 'engagement_audience' => 'bool', 'failed_delivery_checks' => 'list<DeliveryCheck>', 'id' => 'string', 'issues_info' => 'list<AdgroupIssuesInfo>', 'last_updated_by_app_id' => 'string', 'name' => 'string', 'preview_shareable_link' => 'string', 'priority' => 'unsigned int', 'recommendations' => 'list<AdRecommendation>', 'source_ad' => 'Ad', 'source_ad_id' => 'string', 'status' => 'Status', 'targeting' => 'Targeting', 'tracking_and_conversion_with_defaults' => 'TrackingAndConversionWithDefaults', 'tracking_specs' => 'list<ConversionActionQuery>', 'updated_time' => 'datetime', 'adset_spec' => 'AdSet', 'audience_id' => 'string', 'date_format' => 'string', 'draft_adgroup_id' => 'string', 'execution_options' => 'list<ExecutionOptions>', 'include_demolink_hashes' => 'bool', 'filename' => 'file');
82
  }
83
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdReportRunFields.php CHANGED
@@ -68,8 +68,9 @@ class AdReportRunFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
68
  const TIME_RANGE = 'time_range';
69
  const TIME_RANGES = 'time_ranges';
70
  const USE_ACCOUNT_ATTRIBUTION_SETTING = 'use_account_attribution_setting';
 
71
  public function getFieldTypes()
72
  {
73
- return array('account_id' => 'string', 'async_percent_completion' => 'unsigned int', 'async_status' => 'string', 'date_start' => 'string', 'date_stop' => 'string', 'emails' => 'list<string>', 'friendly_name' => 'string', 'id' => 'string', 'is_bookmarked' => 'bool', 'is_running' => 'bool', 'schedule_id' => 'string', 'time_completed' => 'unsigned int', 'time_ref' => 'unsigned int', 'action_attribution_windows' => 'list<ActionAttributionWindows>', 'action_breakdowns' => 'list<ActionBreakdowns>', 'action_report_time' => 'ActionReportTime', 'breakdowns' => 'list<Breakdowns>', 'date_preset' => 'DatePreset', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'Level', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<SummaryActionBreakdowns>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool');
74
  }
75
  }
68
  const TIME_RANGE = 'time_range';
69
  const TIME_RANGES = 'time_ranges';
70
  const USE_ACCOUNT_ATTRIBUTION_SETTING = 'use_account_attribution_setting';
71
+ const USE_UNIFIED_ATTRIBUTION_SETTING = 'use_unified_attribution_setting';
72
  public function getFieldTypes()
73
  {
74
+ return array('account_id' => 'string', 'async_percent_completion' => 'unsigned int', 'async_status' => 'string', 'date_start' => 'string', 'date_stop' => 'string', 'emails' => 'list<string>', 'friendly_name' => 'string', 'id' => 'string', 'is_bookmarked' => 'bool', 'is_running' => 'bool', 'schedule_id' => 'string', 'time_completed' => 'unsigned int', 'time_ref' => 'unsigned int', 'action_attribution_windows' => 'list<ActionAttributionWindows>', 'action_breakdowns' => 'list<ActionBreakdowns>', 'action_report_time' => 'ActionReportTime', 'breakdowns' => 'list<Breakdowns>', 'date_preset' => 'DatePreset', 'default_summary' => 'bool', 'export_columns' => 'list<string>', 'export_format' => 'string', 'export_name' => 'string', 'fields' => 'list<string>', 'filtering' => 'list<Object>', 'level' => 'Level', 'product_id_limit' => 'int', 'sort' => 'list<string>', 'summary' => 'list<string>', 'summary_action_breakdowns' => 'list<SummaryActionBreakdowns>', 'time_increment' => 'string', 'time_range' => 'Object', 'time_ranges' => 'list<Object>', 'use_account_attribution_setting' => 'bool', 'use_unified_attribution_setting' => 'bool');
75
  }
76
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CampaignFields.php CHANGED
@@ -51,6 +51,7 @@ class CampaignFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
51
  const DAILY_BUDGET = 'daily_budget';
52
  const EFFECTIVE_STATUS = 'effective_status';
53
  const ID = 'id';
 
54
  const ISSUES_INFO = 'issues_info';
55
  const LAST_BUDGET_TOGGLING_TIME = 'last_budget_toggling_time';
56
  const LIFETIME_BUDGET = 'lifetime_budget';
@@ -59,6 +60,7 @@ class CampaignFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
59
  const PACING_TYPE = 'pacing_type';
60
  const PROMOTED_OBJECT = 'promoted_object';
61
  const RECOMMENDATIONS = 'recommendations';
 
62
  const SOURCE_CAMPAIGN = 'source_campaign';
63
  const SOURCE_CAMPAIGN_ID = 'source_campaign_id';
64
  const SPECIAL_AD_CATEGORIES = 'special_ad_categories';
@@ -73,10 +75,9 @@ class CampaignFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
73
  const ADBATCH = 'adbatch';
74
  const EXECUTION_OPTIONS = 'execution_options';
75
  const ITERATIVE_SPLIT_TEST_CONFIGS = 'iterative_split_test_configs';
76
- const SMART_PROMOTION_TYPE = 'smart_promotion_type';
77
  const UPSTREAM_EVENTS = 'upstream_events';
78
  public function getFieldTypes()
79
  {
80
- return array('account_id' => 'string', 'ad_strategy_id' => 'string', 'adlabels' => 'list<AdLabel>', 'bid_strategy' => 'BidStrategy', 'boosted_object_id' => 'string', 'brand_lift_studies' => 'list<AdStudy>', 'budget_rebalance_flag' => 'bool', 'budget_remaining' => 'string', 'buying_type' => 'string', 'can_create_brand_lift_study' => 'bool', 'can_use_spend_cap' => 'bool', 'configured_status' => 'ConfiguredStatus', 'created_time' => 'datetime', 'daily_budget' => 'string', 'effective_status' => 'EffectiveStatus', 'id' => 'string', 'issues_info' => 'list<AdCampaignIssuesInfo>', 'last_budget_toggling_time' => 'datetime', 'lifetime_budget' => 'string', 'name' => 'string', 'objective' => 'string', 'pacing_type' => 'list<string>', 'promoted_object' => 'AdPromotedObject', 'recommendations' => 'list<AdRecommendation>', 'source_campaign' => 'Campaign', 'source_campaign_id' => 'string', 'special_ad_categories' => 'list<string>', 'special_ad_category' => 'string', 'special_ad_category_country' => 'list<string>', 'spend_cap' => 'string', 'start_time' => 'datetime', 'status' => 'Status', 'stop_time' => 'datetime', 'topline_id' => 'string', 'updated_time' => 'datetime', 'adbatch' => 'list<Object>', 'execution_options' => 'list<ExecutionOptions>', 'iterative_split_test_configs' => 'list<Object>', 'smart_promotion_type' => 'SmartPromotionType', 'upstream_events' => 'map');
81
  }
82
  }
51
  const DAILY_BUDGET = 'daily_budget';
52
  const EFFECTIVE_STATUS = 'effective_status';
53
  const ID = 'id';
54
+ const IS_SKADNETWORK_ATTRIBUTION = 'is_skadnetwork_attribution';
55
  const ISSUES_INFO = 'issues_info';
56
  const LAST_BUDGET_TOGGLING_TIME = 'last_budget_toggling_time';
57
  const LIFETIME_BUDGET = 'lifetime_budget';
60
  const PACING_TYPE = 'pacing_type';
61
  const PROMOTED_OBJECT = 'promoted_object';
62
  const RECOMMENDATIONS = 'recommendations';
63
+ const SMART_PROMOTION_TYPE = 'smart_promotion_type';
64
  const SOURCE_CAMPAIGN = 'source_campaign';
65
  const SOURCE_CAMPAIGN_ID = 'source_campaign_id';
66
  const SPECIAL_AD_CATEGORIES = 'special_ad_categories';
75
  const ADBATCH = 'adbatch';
76
  const EXECUTION_OPTIONS = 'execution_options';
77
  const ITERATIVE_SPLIT_TEST_CONFIGS = 'iterative_split_test_configs';
 
78
  const UPSTREAM_EVENTS = 'upstream_events';
79
  public function getFieldTypes()
80
  {
81
+ return array('account_id' => 'string', 'ad_strategy_id' => 'string', 'adlabels' => 'list<AdLabel>', 'bid_strategy' => 'BidStrategy', 'boosted_object_id' => 'string', 'brand_lift_studies' => 'list<AdStudy>', 'budget_rebalance_flag' => 'bool', 'budget_remaining' => 'string', 'buying_type' => 'string', 'can_create_brand_lift_study' => 'bool', 'can_use_spend_cap' => 'bool', 'configured_status' => 'ConfiguredStatus', 'created_time' => 'datetime', 'daily_budget' => 'string', 'effective_status' => 'EffectiveStatus', 'id' => 'string', 'is_skadnetwork_attribution' => 'bool', 'issues_info' => 'list<AdCampaignIssuesInfo>', 'last_budget_toggling_time' => 'datetime', 'lifetime_budget' => 'string', 'name' => 'string', 'objective' => 'string', 'pacing_type' => 'list<string>', 'promoted_object' => 'AdPromotedObject', 'recommendations' => 'list<AdRecommendation>', 'smart_promotion_type' => 'string', 'source_campaign' => 'Campaign', 'source_campaign_id' => 'string', 'special_ad_categories' => 'list<string>', 'special_ad_category' => 'string', 'special_ad_category_country' => 'list<string>', 'spend_cap' => 'string', 'start_time' => 'datetime', 'status' => 'Status', 'stop_time' => 'datetime', 'topline_id' => 'string', 'updated_time' => 'datetime', 'adbatch' => 'list<Object>', 'execution_options' => 'list<ExecutionOptions>', 'iterative_split_test_configs' => 'list<Object>', 'upstream_events' => 'map');
82
  }
83
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{UserPaymentModulesOptionsFields.php → CatalogItemChannelsToIntegrityStatusFields.php} RENAMED
@@ -33,14 +33,12 @@ use PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum;
33
  * pull request for this class.
34
  *
35
  */
36
- class UserPaymentModulesOptionsFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
37
  {
38
- const ACCOUNT_ID = 'account_id';
39
- const AVAILABLE_PAYMENT_OPTIONS = 'available_payment_options';
40
- const COUNTRY = 'country';
41
- const CURRENCY = 'currency';
42
  public function getFieldTypes()
43
  {
44
- return array('account_id' => 'string', 'available_payment_options' => 'list<Object>', 'country' => 'string', 'currency' => 'string');
45
  }
46
  }
33
  * pull request for this class.
34
  *
35
  */
36
+ class CatalogItemChannelsToIntegrityStatusFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
37
  {
38
+ const CHANNELS = 'channels';
39
+ const REJECTION_INFORMATION = 'rejection_information';
 
 
40
  public function getFieldTypes()
41
  {
42
+ return array('channels' => 'list<string>', 'rejection_information' => 'Object');
43
  }
44
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EventTourFields.php DELETED
@@ -1,56 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
- *
6
- * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
- * use, copy, modify, and distribute this software in source code or binary
8
- * form for use in connection with the web services and APIs provided by
9
- * Facebook.
10
- *
11
- * As with any software that integrates with the Facebook platform, your use
12
- * of this software is subject to the Facebook Developer Principles and
13
- * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
- * shall be included in all copies or substantial portions of the software.
15
- *
16
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
- * DEALINGS IN THE SOFTWARE.
23
- *
24
- */
25
- namespace PYS_PRO_GLOBAL\FacebookAds\Object\Fields;
26
-
27
- use PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum;
28
- /**
29
- * This class is auto-generated.
30
- *
31
- * For any issues or feature requests related to this class, please let us know
32
- * on github and we'll fix in our codegen framework. We'll not be able to accept
33
- * pull request for this class.
34
- *
35
- */
36
- class EventTourFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
37
- {
38
- const DESCRIPTION = 'description';
39
- const DOMINANT_COLOR = 'dominant_color';
40
- const END_TIME = 'end_time';
41
- const ID = 'id';
42
- const IS_PAST = 'is_past';
43
- const LAST_EVENT_TIMESTAMP = 'last_event_timestamp';
44
- const NAME = 'name';
45
- const NUM_EVENTS = 'num_events';
46
- const PHOTO = 'photo';
47
- const PUBLISHING_STATE = 'publishing_state';
48
- const SCHEDULED_PUBLISH_TIMESTAMP = 'scheduled_publish_timestamp';
49
- const START_TIME = 'start_time';
50
- const TICKETING_URI = 'ticketing_uri';
51
- const VIDEO = 'video';
52
- public function getFieldTypes()
53
- {
54
- return array('description' => 'string', 'dominant_color' => 'string', 'end_time' => 'string', 'id' => 'string', 'is_past' => 'bool', 'last_event_timestamp' => 'int', 'name' => 'string', 'num_events' => 'int', 'photo' => 'Photo', 'publishing_state' => 'string', 'scheduled_publish_timestamp' => 'int', 'start_time' => 'string', 'ticketing_uri' => 'string', 'video' => 'AdVideo');
55
- }
56
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/GroupFields.php CHANGED
@@ -46,7 +46,6 @@ class GroupFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
46
  const MEMBER_COUNT = 'member_count';
47
  const MEMBER_REQUEST_COUNT = 'member_request_count';
48
  const NAME = 'name';
49
- const OWNER = 'owner';
50
  const PARENT = 'parent';
51
  const PERMISSIONS = 'permissions';
52
  const PRIVACY = 'privacy';
@@ -56,6 +55,6 @@ class GroupFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
56
  const VENUE = 'venue';
57
  public function getFieldTypes()
58
  {
59
- return array('archived' => 'bool', 'cover' => 'CoverPhoto', 'created_time' => 'datetime', 'description' => 'string', 'email' => 'string', 'icon' => 'string', 'id' => 'string', 'link' => 'string', 'member_count' => 'unsigned int', 'member_request_count' => 'unsigned int', 'name' => 'string', 'owner' => 'Object', 'parent' => 'Object', 'permissions' => 'list<string>', 'privacy' => 'string', 'purpose' => 'string', 'subdomain' => 'string', 'updated_time' => 'datetime', 'venue' => 'Location');
60
  }
61
  }
46
  const MEMBER_COUNT = 'member_count';
47
  const MEMBER_REQUEST_COUNT = 'member_request_count';
48
  const NAME = 'name';
 
49
  const PARENT = 'parent';
50
  const PERMISSIONS = 'permissions';
51
  const PRIVACY = 'privacy';
55
  const VENUE = 'venue';
56
  public function getFieldTypes()
57
  {
58
+ return array('archived' => 'bool', 'cover' => 'CoverPhoto', 'created_time' => 'datetime', 'description' => 'string', 'email' => 'string', 'icon' => 'string', 'id' => 'string', 'link' => 'string', 'member_count' => 'unsigned int', 'member_request_count' => 'unsigned int', 'name' => 'string', 'parent' => 'Object', 'permissions' => 'list<string>', 'privacy' => 'string', 'purpose' => 'string', 'subdomain' => 'string', 'updated_time' => 'datetime', 'venue' => 'Location');
59
  }
60
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/IGMediaFields.php CHANGED
@@ -35,7 +35,6 @@ use PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum;
35
  */
36
  class IGMediaFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
37
  {
38
- const ALT_TEXT = 'alt_text';
39
  const CAPTION = 'caption';
40
  const COMMENTS_COUNT = 'comments_count';
41
  const ID = 'id';
@@ -52,6 +51,6 @@ class IGMediaFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
52
  const USERNAME = 'username';
53
  public function getFieldTypes()
54
  {
55
- return array('alt_text' => 'string', 'caption' => 'string', 'comments_count' => 'int', 'id' => 'string', 'ig_id' => 'string', 'is_comment_enabled' => 'bool', 'like_count' => 'int', 'media_type' => 'string', 'media_url' => 'string', 'owner' => 'IGUser', 'permalink' => 'string', 'shortcode' => 'string', 'thumbnail_url' => 'string', 'timestamp' => 'datetime', 'username' => 'string');
56
  }
57
  }
35
  */
36
  class IGMediaFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
37
  {
 
38
  const CAPTION = 'caption';
39
  const COMMENTS_COUNT = 'comments_count';
40
  const ID = 'id';
51
  const USERNAME = 'username';
52
  public function getFieldTypes()
53
  {
54
+ return array('caption' => 'string', 'comments_count' => 'int', 'id' => 'string', 'ig_id' => 'string', 'is_comment_enabled' => 'bool', 'like_count' => 'int', 'media_type' => 'string', 'media_url' => 'string', 'owner' => 'IGUser', 'permalink' => 'string', 'shortcode' => 'string', 'thumbnail_url' => 'string', 'timestamp' => 'datetime', 'username' => 'string');
55
  }
56
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/IGUserFields.php CHANGED
@@ -41,7 +41,6 @@ class IGUserFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
41
  const FOLLOWS_COUNT = 'follows_count';
42
  const ID = 'id';
43
  const IG_ID = 'ig_id';
44
- const IS_IG_SHOPPING_SELLER_POLICY_ENABLED = 'is_ig_shopping_seller_policy_enabled';
45
  const MEDIA_COUNT = 'media_count';
46
  const MENTIONED_COMMENT = 'mentioned_comment';
47
  const MENTIONED_MEDIA = 'mentioned_media';
@@ -52,6 +51,6 @@ class IGUserFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
52
  const WEBSITE = 'website';
53
  public function getFieldTypes()
54
  {
55
- return array('biography' => 'string', 'business_discovery' => 'IGUser', 'followers_count' => 'int', 'follows_count' => 'int', 'id' => 'string', 'ig_id' => 'int', 'is_ig_shopping_seller_policy_enabled' => 'bool', 'media_count' => 'int', 'mentioned_comment' => 'IGComment', 'mentioned_media' => 'IGMedia', 'name' => 'string', 'profile_picture_url' => 'string', 'shopping_review_status' => 'string', 'username' => 'string', 'website' => 'string');
56
  }
57
  }
41
  const FOLLOWS_COUNT = 'follows_count';
42
  const ID = 'id';
43
  const IG_ID = 'ig_id';
 
44
  const MEDIA_COUNT = 'media_count';
45
  const MENTIONED_COMMENT = 'mentioned_comment';
46
  const MENTIONED_MEDIA = 'mentioned_media';
51
  const WEBSITE = 'website';
52
  public function getFieldTypes()
53
  {
54
+ return array('biography' => 'string', 'business_discovery' => 'IGUser', 'followers_count' => 'int', 'follows_count' => 'int', 'id' => 'string', 'ig_id' => 'int', 'media_count' => 'int', 'mentioned_comment' => 'IGComment', 'mentioned_media' => 'IGMedia', 'name' => 'string', 'profile_picture_url' => 'string', 'shopping_review_status' => 'string', 'username' => 'string', 'website' => 'string');
55
  }
56
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/MessengerProfileFields.php CHANGED
@@ -41,10 +41,11 @@ class MessengerProfileFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEn
41
  const ICE_BREAKERS = 'ice_breakers';
42
  const PAYMENT_SETTINGS = 'payment_settings';
43
  const PERSISTENT_MENU = 'persistent_menu';
 
44
  const TARGET_AUDIENCE = 'target_audience';
45
  const WHITELISTED_DOMAINS = 'whitelisted_domains';
46
  public function getFieldTypes()
47
  {
48
- return array('account_linking_url' => 'string', 'get_started' => 'Object', 'greeting' => 'list<Object>', 'ice_breakers' => 'list<Object>', 'payment_settings' => 'Object', 'persistent_menu' => 'list<Object>', 'target_audience' => 'Object', 'whitelisted_domains' => 'list<string>');
49
  }
50
  }
41
  const ICE_BREAKERS = 'ice_breakers';
42
  const PAYMENT_SETTINGS = 'payment_settings';
43
  const PERSISTENT_MENU = 'persistent_menu';
44
+ const SUBJECT_TO_NEW_EU_PRIVACY_RULES = 'subject_to_new_eu_privacy_rules';
45
  const TARGET_AUDIENCE = 'target_audience';
46
  const WHITELISTED_DOMAINS = 'whitelisted_domains';
47
  public function getFieldTypes()
48
  {
49
+ return array('account_linking_url' => 'string', 'get_started' => 'Object', 'greeting' => 'list<Object>', 'ice_breakers' => 'list<Object>', 'payment_settings' => 'Object', 'persistent_menu' => 'list<Object>', 'subject_to_new_eu_privacy_rules' => 'bool', 'target_audience' => 'Object', 'whitelisted_domains' => 'list<string>');
50
  }
51
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PagePostFields.php CHANGED
@@ -46,21 +46,16 @@ class PagePostFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
46
  const COMMENTS_MIRRORING_DOMAIN = 'comments_mirroring_domain';
47
  const COORDINATES = 'coordinates';
48
  const CREATED_TIME = 'created_time';
49
- const DELIVERY_GROWTH_OPTIMIZATIONS = 'delivery_growth_optimizations';
50
- const ENTITIES = 'entities';
51
  const EVENT = 'event';
52
  const EXPANDED_HEIGHT = 'expanded_height';
53
  const EXPANDED_WIDTH = 'expanded_width';
54
  const FEED_TARGETING = 'feed_targeting';
55
- const FORMATTING = 'formatting';
56
  const FROM = 'from';
57
  const FULL_PICTURE = 'full_picture';
58
  const HEIGHT = 'height';
59
  const ICON = 'icon';
60
  const ID = 'id';
61
- const IMPLICIT_PLACE = 'implicit_place';
62
  const INSTAGRAM_ELIGIBILITY = 'instagram_eligibility';
63
- const INSTREAM_ELIGIBILITY = 'instream_eligibility';
64
  const IS_APP_SHARE = 'is_app_share';
65
  const IS_ELIGIBLE_FOR_PROMOTION = 'is_eligible_for_promotion';
66
  const IS_EXPIRED = 'is_expired';
@@ -70,7 +65,6 @@ class PagePostFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
70
  const IS_POPULAR = 'is_popular';
71
  const IS_PUBLISHED = 'is_published';
72
  const IS_SPHERICAL = 'is_spherical';
73
- const LIVE_VIDEO_ELIGIBILITY = 'live_video_eligibility';
74
  const MESSAGE = 'message';
75
  const MESSAGE_TAGS = 'message_tags';
76
  const MULTI_SHARE_END_CARD = 'multi_share_end_card';
@@ -79,12 +73,10 @@ class PagePostFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
79
  const PERMALINK_URL = 'permalink_url';
80
  const PICTURE = 'picture';
81
  const PLACE = 'place';
82
- const POLL = 'poll';
83
  const PRIVACY = 'privacy';
84
  const PROMOTABLE_ID = 'promotable_id';
85
  const PROMOTION_STATUS = 'promotion_status';
86
  const PROPERTIES = 'properties';
87
- const PUBLISHING_STATS = 'publishing_stats';
88
  const SCHEDULED_PUBLISH_TIME = 'scheduled_publish_time';
89
  const SHARES = 'shares';
90
  const STATUS_TYPE = 'status_type';
@@ -94,14 +86,12 @@ class PagePostFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
94
  const TARGET = 'target';
95
  const TARGETING = 'targeting';
96
  const TIMELINE_VISIBILITY = 'timeline_visibility';
97
- const TRANSLATIONS = 'translations';
98
  const UPDATED_TIME = 'updated_time';
99
  const VIA = 'via';
100
  const VIDEO_BUYING_ELIGIBILITY = 'video_buying_eligibility';
101
  const WIDTH = 'width';
102
- const WILL_BE_AUTOCROPPED_WHEN_DELIVER_TO_INSTAGRAM = 'will_be_autocropped_when_deliver_to_instagram';
103
  public function getFieldTypes()
104
  {
105
- return array('actions' => 'list', 'admin_creator' => 'Object', 'allowed_advertising_objectives' => 'list<string>', 'application' => 'Application', 'backdated_time' => 'datetime', 'call_to_action' => 'Object', 'can_reply_privately' => 'bool', 'child_attachments' => 'list', 'comments_mirroring_domain' => 'string', 'coordinates' => 'Object', 'created_time' => 'datetime', 'delivery_growth_optimizations' => 'list<string>', 'entities' => 'Object', 'event' => 'Event', 'expanded_height' => 'unsigned int', 'expanded_width' => 'unsigned int', 'feed_targeting' => 'Object', 'formatting' => 'string', 'from' => 'Object', 'full_picture' => 'string', 'height' => 'unsigned int', 'icon' => 'string', 'id' => 'string', 'implicit_place' => 'Place', 'instagram_eligibility' => 'string', 'instream_eligibility' => 'string', 'is_app_share' => 'bool', 'is_eligible_for_promotion' => 'bool', 'is_expired' => 'bool', 'is_hidden' => 'bool', 'is_inline_created' => 'bool', 'is_instagram_eligible' => 'bool', 'is_popular' => 'bool', 'is_published' => 'bool', 'is_spherical' => 'bool', 'live_video_eligibility' => 'list<string>', 'message' => 'string', 'message_tags' => 'list', 'multi_share_end_card' => 'bool', 'multi_share_optimized' => 'bool', 'parent_id' => 'string', 'permalink_url' => 'Object', 'picture' => 'string', 'place' => 'Place', 'poll' => 'Object', 'privacy' => 'Privacy', 'promotable_id' => 'string', 'promotion_status' => 'string', 'properties' => 'list', 'publishing_stats' => 'unsigned int', 'scheduled_publish_time' => 'float', 'shares' => 'Object', 'status_type' => 'string', 'story' => 'string', 'story_tags' => 'list', 'subscribed' => 'bool', 'target' => 'Profile', 'targeting' => 'Object', 'timeline_visibility' => 'string', 'translations' => 'map<string, string>', 'updated_time' => 'datetime', 'via' => 'Object', 'video_buying_eligibility' => 'list<string>', 'width' => 'unsigned int', 'will_be_autocropped_when_deliver_to_instagram' => 'bool');
106
  }
107
  }
46
  const COMMENTS_MIRRORING_DOMAIN = 'comments_mirroring_domain';
47
  const COORDINATES = 'coordinates';
48
  const CREATED_TIME = 'created_time';
 
 
49
  const EVENT = 'event';
50
  const EXPANDED_HEIGHT = 'expanded_height';
51
  const EXPANDED_WIDTH = 'expanded_width';
52
  const FEED_TARGETING = 'feed_targeting';
 
53
  const FROM = 'from';
54
  const FULL_PICTURE = 'full_picture';
55
  const HEIGHT = 'height';
56
  const ICON = 'icon';
57
  const ID = 'id';
 
58
  const INSTAGRAM_ELIGIBILITY = 'instagram_eligibility';
 
59
  const IS_APP_SHARE = 'is_app_share';
60
  const IS_ELIGIBLE_FOR_PROMOTION = 'is_eligible_for_promotion';
61
  const IS_EXPIRED = 'is_expired';
65
  const IS_POPULAR = 'is_popular';
66
  const IS_PUBLISHED = 'is_published';
67
  const IS_SPHERICAL = 'is_spherical';
 
68
  const MESSAGE = 'message';
69
  const MESSAGE_TAGS = 'message_tags';
70
  const MULTI_SHARE_END_CARD = 'multi_share_end_card';
73
  const PERMALINK_URL = 'permalink_url';
74
  const PICTURE = 'picture';
75
  const PLACE = 'place';
 
76
  const PRIVACY = 'privacy';
77
  const PROMOTABLE_ID = 'promotable_id';
78
  const PROMOTION_STATUS = 'promotion_status';
79
  const PROPERTIES = 'properties';
 
80
  const SCHEDULED_PUBLISH_TIME = 'scheduled_publish_time';
81
  const SHARES = 'shares';
82
  const STATUS_TYPE = 'status_type';
86
  const TARGET = 'target';
87
  const TARGETING = 'targeting';
88
  const TIMELINE_VISIBILITY = 'timeline_visibility';
 
89
  const UPDATED_TIME = 'updated_time';
90
  const VIA = 'via';
91
  const VIDEO_BUYING_ELIGIBILITY = 'video_buying_eligibility';
92
  const WIDTH = 'width';
 
93
  public function getFieldTypes()
94
  {
95
+ return array('actions' => 'list', 'admin_creator' => 'Object', 'allowed_advertising_objectives' => 'list<string>', 'application' => 'Application', 'backdated_time' => 'datetime', 'call_to_action' => 'Object', 'can_reply_privately' => 'bool', 'child_attachments' => 'list', 'comments_mirroring_domain' => 'string', 'coordinates' => 'Object', 'created_time' => 'datetime', 'event' => 'Event', 'expanded_height' => 'unsigned int', 'expanded_width' => 'unsigned int', 'feed_targeting' => 'Object', 'from' => 'Object', 'full_picture' => 'string', 'height' => 'unsigned int', 'icon' => 'string', 'id' => 'string', 'instagram_eligibility' => 'string', 'is_app_share' => 'bool', 'is_eligible_for_promotion' => 'bool', 'is_expired' => 'bool', 'is_hidden' => 'bool', 'is_inline_created' => 'bool', 'is_instagram_eligible' => 'bool', 'is_popular' => 'bool', 'is_published' => 'bool', 'is_spherical' => 'bool', 'message' => 'string', 'message_tags' => 'list', 'multi_share_end_card' => 'bool', 'multi_share_optimized' => 'bool', 'parent_id' => 'string', 'permalink_url' => 'Object', 'picture' => 'string', 'place' => 'Place', 'privacy' => 'Privacy', 'promotable_id' => 'string', 'promotion_status' => 'string', 'properties' => 'list', 'scheduled_publish_time' => 'float', 'shares' => 'Object', 'status_type' => 'string', 'story' => 'string', 'story_tags' => 'list', 'subscribed' => 'bool', 'target' => 'Profile', 'targeting' => 'Object', 'timeline_visibility' => 'string', 'updated_time' => 'datetime', 'via' => 'Object', 'video_buying_eligibility' => 'list<string>', 'width' => 'unsigned int');
96
  }
97
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{UserPaymentMethodsInfoFields.php → PaymentEnginePaymentFields.php} RENAMED
@@ -33,17 +33,29 @@ use PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum;
33
  * pull request for this class.
34
  *
35
  */
36
- class UserPaymentMethodsInfoFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
37
  {
38
- const ACCOUNT_ID = 'account_id';
39
- const AVAILABLE_CARD_TYPES = 'available_card_types';
40
- const AVAILABLE_PAYMENT_METHODS = 'available_payment_methods';
41
- const AVAILABLE_PAYMENT_METHODS_DETAILS = 'available_payment_methods_details';
42
  const COUNTRY = 'country';
43
- const CURRENCY = 'currency';
44
- const EXISTING_PAYMENT_METHODS = 'existing_payment_methods';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  public function getFieldTypes()
46
  {
47
- return array('account_id' => 'string', 'available_card_types' => 'list<string>', 'available_payment_methods' => 'list<string>', 'available_payment_methods_details' => 'list<Object>', 'country' => 'string', 'currency' => 'string', 'existing_payment_methods' => 'list<Object>');
48
  }
49
  }
33
  * pull request for this class.
34
  *
35
  */
36
+ class PaymentEnginePaymentFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
37
  {
38
+ const ACTIONS = 'actions';
39
+ const APPLICATION = 'application';
 
 
40
  const COUNTRY = 'country';
41
+ const CREATED_TIME = 'created_time';
42
+ const DISPUTES = 'disputes';
43
+ const FRAUD_STATUS = 'fraud_status';
44
+ const FULFILLMENT_STATUS = 'fulfillment_status';
45
+ const ID = 'id';
46
+ const IS_FROM_AD = 'is_from_ad';
47
+ const IS_FROM_PAGE_POST = 'is_from_page_post';
48
+ const ITEMS = 'items';
49
+ const PAYOUT_FOREIGN_EXCHANGE_RATE = 'payout_foreign_exchange_rate';
50
+ const PHONE_SUPPORT_ELIGIBLE = 'phone_support_eligible';
51
+ const REFUNDABLE_AMOUNT = 'refundable_amount';
52
+ const REQUEST_ID = 'request_id';
53
+ const TAX = 'tax';
54
+ const TAX_COUNTRY = 'tax_country';
55
+ const TEST = 'test';
56
+ const USER = 'user';
57
  public function getFieldTypes()
58
  {
59
+ return array('actions' => 'list<Object>', 'application' => 'Application', 'country' => 'string', 'created_time' => 'datetime', 'disputes' => 'list<Object>', 'fraud_status' => 'string', 'fulfillment_status' => 'string', 'id' => 'string', 'is_from_ad' => 'bool', 'is_from_page_post' => 'bool', 'items' => 'list<Object>', 'payout_foreign_exchange_rate' => 'float', 'phone_support_eligible' => 'bool', 'refundable_amount' => 'CurrencyAmount', 'request_id' => 'string', 'tax' => 'string', 'tax_country' => 'string', 'test' => 'unsigned int', 'user' => 'User');
60
  }
61
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PaymentSubscriptionFields.php CHANGED
@@ -61,6 +61,6 @@ class PaymentSubscriptionFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\Abstrac
61
  const USER = 'user';
62
  public function getFieldTypes()
63
  {
64
- return array('amount' => 'string', 'app_param_data' => 'string', 'application' => 'Profile', 'billing_period' => 'string', 'canceled_reason' => 'string', 'created_time' => 'datetime', 'currency' => 'string', 'id' => 'string', 'last_payment' => 'string', 'next_bill_time' => 'datetime', 'next_period_amount' => 'string', 'next_period_currency' => 'string', 'next_period_product' => 'string', 'payment_status' => 'string', 'pending_cancel' => 'bool', 'period_start_time' => 'datetime', 'product' => 'string', 'status' => 'string', 'test' => 'unsigned int', 'trial_amount' => 'string', 'trial_currency' => 'string', 'trial_expiry_time' => 'datetime', 'updated_time' => 'datetime', 'user' => 'Profile');
65
  }
66
  }
61
  const USER = 'user';
62
  public function getFieldTypes()
63
  {
64
+ return array('amount' => 'string', 'app_param_data' => 'string', 'application' => 'Application', 'billing_period' => 'string', 'canceled_reason' => 'string', 'created_time' => 'datetime', 'currency' => 'string', 'id' => 'string', 'last_payment' => 'PaymentEnginePayment', 'next_bill_time' => 'datetime', 'next_period_amount' => 'string', 'next_period_currency' => 'string', 'next_period_product' => 'string', 'payment_status' => 'string', 'pending_cancel' => 'bool', 'period_start_time' => 'datetime', 'product' => 'string', 'status' => 'string', 'test' => 'unsigned int', 'trial_amount' => 'string', 'trial_currency' => 'string', 'trial_expiry_time' => 'datetime', 'updated_time' => 'datetime', 'user' => 'User');
65
  }
66
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PostFields.php CHANGED
@@ -47,22 +47,17 @@ class PostFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
47
  const COMMENTS_MIRRORING_DOMAIN = 'comments_mirroring_domain';
48
  const COORDINATES = 'coordinates';
49
  const CREATED_TIME = 'created_time';
50
- const DELIVERY_GROWTH_OPTIMIZATIONS = 'delivery_growth_optimizations';
51
  const DESCRIPTION = 'description';
52
- const ENTITIES = 'entities';
53
  const EVENT = 'event';
54
  const EXPANDED_HEIGHT = 'expanded_height';
55
  const EXPANDED_WIDTH = 'expanded_width';
56
  const FEED_TARGETING = 'feed_targeting';
57
- const FORMATTING = 'formatting';
58
  const FROM = 'from';
59
  const FULL_PICTURE = 'full_picture';
60
  const HEIGHT = 'height';
61
  const ICON = 'icon';
62
  const ID = 'id';
63
- const IMPLICIT_PLACE = 'implicit_place';
64
  const INSTAGRAM_ELIGIBILITY = 'instagram_eligibility';
65
- const INSTREAM_ELIGIBILITY = 'instream_eligibility';
66
  const IS_APP_SHARE = 'is_app_share';
67
  const IS_ELIGIBLE_FOR_PROMOTION = 'is_eligible_for_promotion';
68
  const IS_EXPIRED = 'is_expired';
@@ -73,7 +68,6 @@ class PostFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
73
  const IS_PUBLISHED = 'is_published';
74
  const IS_SPHERICAL = 'is_spherical';
75
  const LINK = 'link';
76
- const LIVE_VIDEO_ELIGIBILITY = 'live_video_eligibility';
77
  const MESSAGE = 'message';
78
  const MESSAGE_TAGS = 'message_tags';
79
  const MULTI_SHARE_END_CARD = 'multi_share_end_card';
@@ -84,12 +78,10 @@ class PostFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
84
  const PERMALINK_URL = 'permalink_url';
85
  const PICTURE = 'picture';
86
  const PLACE = 'place';
87
- const POLL = 'poll';
88
  const PRIVACY = 'privacy';
89
  const PROMOTABLE_ID = 'promotable_id';
90
  const PROMOTION_STATUS = 'promotion_status';
91
  const PROPERTIES = 'properties';
92
- const PUBLISHING_STATS = 'publishing_stats';
93
  const SCHEDULED_PUBLISH_TIME = 'scheduled_publish_time';
94
  const SHARES = 'shares';
95
  const SOURCE = 'source';
@@ -100,15 +92,13 @@ class PostFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
100
  const TARGET = 'target';
101
  const TARGETING = 'targeting';
102
  const TIMELINE_VISIBILITY = 'timeline_visibility';
103
- const TRANSLATIONS = 'translations';
104
  const TYPE = 'type';
105
  const UPDATED_TIME = 'updated_time';
106
  const VIA = 'via';
107
  const VIDEO_BUYING_ELIGIBILITY = 'video_buying_eligibility';
108
  const WIDTH = 'width';
109
- const WILL_BE_AUTOCROPPED_WHEN_DELIVER_TO_INSTAGRAM = 'will_be_autocropped_when_deliver_to_instagram';
110
  public function getFieldTypes()
111
  {
112
- return array('actions' => 'list', 'admin_creator' => 'Object', 'allowed_advertising_objectives' => 'list<string>', 'application' => 'Application', 'backdated_time' => 'datetime', 'call_to_action' => 'Object', 'can_reply_privately' => 'bool', 'caption' => 'string', 'child_attachments' => 'list', 'comments_mirroring_domain' => 'string', 'coordinates' => 'Object', 'created_time' => 'datetime', 'delivery_growth_optimizations' => 'list<string>', 'description' => 'string', 'entities' => 'Object', 'event' => 'Event', 'expanded_height' => 'unsigned int', 'expanded_width' => 'unsigned int', 'feed_targeting' => 'Object', 'formatting' => 'string', 'from' => 'Object', 'full_picture' => 'string', 'height' => 'unsigned int', 'icon' => 'string', 'id' => 'string', 'implicit_place' => 'Place', 'instagram_eligibility' => 'string', 'instream_eligibility' => 'string', 'is_app_share' => 'bool', 'is_eligible_for_promotion' => 'bool', 'is_expired' => 'bool', 'is_hidden' => 'bool', 'is_inline_created' => 'bool', 'is_instagram_eligible' => 'bool', 'is_popular' => 'bool', 'is_published' => 'bool', 'is_spherical' => 'bool', 'link' => 'string', 'live_video_eligibility' => 'list<string>', 'message' => 'string', 'message_tags' => 'list', 'multi_share_end_card' => 'bool', 'multi_share_optimized' => 'bool', 'name' => 'string', 'object_id' => 'string', 'parent_id' => 'string', 'permalink_url' => 'Object', 'picture' => 'string', 'place' => 'Place', 'poll' => 'Object', 'privacy' => 'Privacy', 'promotable_id' => 'string', 'promotion_status' => 'string', 'properties' => 'list', 'publishing_stats' => 'unsigned int', 'scheduled_publish_time' => 'float', 'shares' => 'Object', 'source' => 'string', 'status_type' => 'string', 'story' => 'string', 'story_tags' => 'list', 'subscribed' => 'bool', 'target' => 'Profile', 'targeting' => 'Object', 'timeline_visibility' => 'string', 'translations' => 'map<string, string>', 'type' => 'string', 'updated_time' => 'datetime', 'via' => 'Object', 'video_buying_eligibility' => 'list<string>', 'width' => 'unsigned int', 'will_be_autocropped_when_deliver_to_instagram' => 'bool');
113
  }
114
  }
47
  const COMMENTS_MIRRORING_DOMAIN = 'comments_mirroring_domain';
48
  const COORDINATES = 'coordinates';
49
  const CREATED_TIME = 'created_time';
 
50
  const DESCRIPTION = 'description';
 
51
  const EVENT = 'event';
52
  const EXPANDED_HEIGHT = 'expanded_height';
53
  const EXPANDED_WIDTH = 'expanded_width';
54
  const FEED_TARGETING = 'feed_targeting';
 
55
  const FROM = 'from';
56
  const FULL_PICTURE = 'full_picture';
57
  const HEIGHT = 'height';
58
  const ICON = 'icon';
59
  const ID = 'id';
 
60
  const INSTAGRAM_ELIGIBILITY = 'instagram_eligibility';
 
61
  const IS_APP_SHARE = 'is_app_share';
62
  const IS_ELIGIBLE_FOR_PROMOTION = 'is_eligible_for_promotion';
63
  const IS_EXPIRED = 'is_expired';
68
  const IS_PUBLISHED = 'is_published';
69
  const IS_SPHERICAL = 'is_spherical';
70
  const LINK = 'link';
 
71
  const MESSAGE = 'message';
72
  const MESSAGE_TAGS = 'message_tags';
73
  const MULTI_SHARE_END_CARD = 'multi_share_end_card';
78
  const PERMALINK_URL = 'permalink_url';
79
  const PICTURE = 'picture';
80
  const PLACE = 'place';
 
81
  const PRIVACY = 'privacy';
82
  const PROMOTABLE_ID = 'promotable_id';
83
  const PROMOTION_STATUS = 'promotion_status';
84
  const PROPERTIES = 'properties';
 
85
  const SCHEDULED_PUBLISH_TIME = 'scheduled_publish_time';
86
  const SHARES = 'shares';
87
  const SOURCE = 'source';
92
  const TARGET = 'target';
93
  const TARGETING = 'targeting';
94
  const TIMELINE_VISIBILITY = 'timeline_visibility';
 
95
  const TYPE = 'type';
96
  const UPDATED_TIME = 'updated_time';
97
  const VIA = 'via';
98
  const VIDEO_BUYING_ELIGIBILITY = 'video_buying_eligibility';
99
  const WIDTH = 'width';
 
100
  public function getFieldTypes()
101
  {
102
+ return array('actions' => 'list', 'admin_creator' => 'Object', 'allowed_advertising_objectives' => 'list<string>', 'application' => 'Application', 'backdated_time' => 'datetime', 'call_to_action' => 'Object', 'can_reply_privately' => 'bool', 'caption' => 'string', 'child_attachments' => 'list', 'comments_mirroring_domain' => 'string', 'coordinates' => 'Object', 'created_time' => 'datetime', 'description' => 'string', 'event' => 'Event', 'expanded_height' => 'unsigned int', 'expanded_width' => 'unsigned int', 'feed_targeting' => 'Object', 'from' => 'Object', 'full_picture' => 'string', 'height' => 'unsigned int', 'icon' => 'string', 'id' => 'string', 'instagram_eligibility' => 'string', 'is_app_share' => 'bool', 'is_eligible_for_promotion' => 'bool', 'is_expired' => 'bool', 'is_hidden' => 'bool', 'is_inline_created' => 'bool', 'is_instagram_eligible' => 'bool', 'is_popular' => 'bool', 'is_published' => 'bool', 'is_spherical' => 'bool', 'link' => 'Object', 'message' => 'string', 'message_tags' => 'list', 'multi_share_end_card' => 'bool', 'multi_share_optimized' => 'bool', 'name' => 'string', 'object_id' => 'string', 'parent_id' => 'string', 'permalink_url' => 'Object', 'picture' => 'string', 'place' => 'Place', 'privacy' => 'Privacy', 'promotable_id' => 'string', 'promotion_status' => 'string', 'properties' => 'list', 'scheduled_publish_time' => 'float', 'shares' => 'Object', 'source' => 'string', 'status_type' => 'string', 'story' => 'string', 'story_tags' => 'list', 'subscribed' => 'bool', 'target' => 'Profile', 'targeting' => 'Object', 'timeline_visibility' => 'string', 'type' => 'string', 'updated_time' => 'datetime', 'via' => 'Object', 'video_buying_eligibility' => 'list<string>', 'width' => 'unsigned int');
103
  }
104
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ProductItemFields.php CHANGED
@@ -70,6 +70,7 @@ class ProductItemFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
70
  const MOBILE_LINK = 'mobile_link';
71
  const NAME = 'name';
72
  const ORDERING_INDEX = 'ordering_index';
 
73
  const PATTERN = 'pattern';
74
  const PRICE = 'price';
75
  const PRODUCT_CATALOG = 'product_catalog';
@@ -117,6 +118,6 @@ class ProductItemFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
117
  const WINDOWS_PHONE_URL = 'windows_phone_url';
118
  public function getFieldTypes()
119
  {
120
- return array('additional_image_cdn_urls' => 'list<map<string, string>>', 'additional_image_urls' => 'list<string>', 'additional_variant_attributes' => 'map<string, string>', 'age_group' => 'AgeGroup', 'applinks' => 'CatalogItemAppLinks', 'availability' => 'Availability', 'brand' => 'string', 'capability_to_review_status' => 'map<Object, Object>', 'category' => 'string', 'category_specific_fields' => 'CatalogSubVerticalList', 'color' => 'string', 'commerce_insights' => 'ProductItemCommerceInsights', 'condition' => 'Condition', 'currency' => 'string', 'custom_data' => 'map<string, string>', 'custom_label_0' => 'string', 'custom_label_1' => 'string', 'custom_label_2' => 'string', 'custom_label_3' => 'string', 'custom_label_4' => 'string', 'description' => 'string', 'expiration_date' => 'string', 'fb_product_category' => 'string', 'gender' => 'Gender', 'gtin' => 'string', 'id' => 'string', 'image_cdn_urls' => 'map<string, string>', 'image_url' => 'string', 'images' => 'list<string>', 'inventory' => 'int', 'manufacturer_part_number' => 'string', 'material' => 'string', 'mobile_link' => 'string', 'name' => 'string', 'ordering_index' => 'int', 'pattern' => 'string', 'price' => 'string', 'product_catalog' => 'ProductCatalog', 'product_feed' => 'ProductFeed', 'product_group' => 'ProductGroup', 'product_type' => 'string', 'retailer_id' => 'string', 'retailer_product_group_id' => 'string', 'review_rejection_reasons' => 'list<string>', 'review_status' => 'ReviewStatus', 'sale_price' => 'string', 'sale_price_end_date' => 'string', 'sale_price_start_date' => 'string', 'shipping_weight_unit' => 'ShippingWeightUnit', 'shipping_weight_value' => 'float', 'short_description' => 'string', 'size' => 'string', 'start_date' => 'string', 'url' => 'string', 'visibility' => 'Visibility', 'additional_image_files' => 'list<file>', 'additional_uploaded_image_ids' => 'list<string>', 'android_app_name' => 'string', 'android_class' => 'string', 'android_package' => 'string', 'android_url' => 'string', 'checkout_url' => 'string', 'commerce_tax_category' => 'CommerceTaxCategory', 'ios_app_name' => 'string', 'ios_app_store_id' => 'unsigned int', 'ios_url' => 'string', 'ipad_app_name' => 'string', 'ipad_app_store_id' => 'unsigned int', 'ipad_url' => 'string', 'iphone_app_name' => 'string', 'iphone_app_store_id' => 'unsigned int', 'iphone_url' => 'string', 'launch_date' => 'string', 'offer_price_amount' => 'unsigned int', 'offer_price_end_date' => 'datetime', 'offer_price_start_date' => 'datetime', 'return_policy_days' => 'unsigned int', 'windows_phone_app_id' => 'string', 'windows_phone_app_name' => 'string', 'windows_phone_url' => 'string');
121
  }
122
  }
70
  const MOBILE_LINK = 'mobile_link';
71
  const NAME = 'name';
72
  const ORDERING_INDEX = 'ordering_index';
73
+ const PARENT_PRODUCT_ID = 'parent_product_id';
74
  const PATTERN = 'pattern';
75
  const PRICE = 'price';
76
  const PRODUCT_CATALOG = 'product_catalog';
118
  const WINDOWS_PHONE_URL = 'windows_phone_url';
119
  public function getFieldTypes()
120
  {
121
+ return array('additional_image_cdn_urls' => 'list<map<string, string>>', 'additional_image_urls' => 'list<string>', 'additional_variant_attributes' => 'map<string, string>', 'age_group' => 'AgeGroup', 'applinks' => 'CatalogItemAppLinks', 'availability' => 'Availability', 'brand' => 'string', 'capability_to_review_status' => 'map<Object, Object>', 'category' => 'string', 'category_specific_fields' => 'CatalogSubVerticalList', 'color' => 'string', 'commerce_insights' => 'ProductItemCommerceInsights', 'condition' => 'Condition', 'currency' => 'string', 'custom_data' => 'map<string, string>', 'custom_label_0' => 'string', 'custom_label_1' => 'string', 'custom_label_2' => 'string', 'custom_label_3' => 'string', 'custom_label_4' => 'string', 'description' => 'string', 'expiration_date' => 'string', 'fb_product_category' => 'string', 'gender' => 'Gender', 'gtin' => 'string', 'id' => 'string', 'image_cdn_urls' => 'map<string, string>', 'image_url' => 'string', 'images' => 'list<string>', 'inventory' => 'int', 'manufacturer_part_number' => 'string', 'material' => 'string', 'mobile_link' => 'string', 'name' => 'string', 'ordering_index' => 'int', 'parent_product_id' => 'string', 'pattern' => 'string', 'price' => 'string', 'product_catalog' => 'ProductCatalog', 'product_feed' => 'ProductFeed', 'product_group' => 'ProductGroup', 'product_type' => 'string', 'retailer_id' => 'string', 'retailer_product_group_id' => 'string', 'review_rejection_reasons' => 'list<string>', 'review_status' => 'ReviewStatus', 'sale_price' => 'string', 'sale_price_end_date' => 'string', 'sale_price_start_date' => 'string', 'shipping_weight_unit' => 'ShippingWeightUnit', 'shipping_weight_value' => 'float', 'short_description' => 'string', 'size' => 'string', 'start_date' => 'string', 'url' => 'string', 'visibility' => 'Visibility', 'additional_image_files' => 'list<file>', 'additional_uploaded_image_ids' => 'list<string>', 'android_app_name' => 'string', 'android_class' => 'string', 'android_package' => 'string', 'android_url' => 'string', 'checkout_url' => 'string', 'commerce_tax_category' => 'CommerceTaxCategory', 'ios_app_name' => 'string', 'ios_app_store_id' => 'unsigned int', 'ios_url' => 'string', 'ipad_app_name' => 'string', 'ipad_app_store_id' => 'unsigned int', 'ipad_url' => 'string', 'iphone_app_name' => 'string', 'iphone_app_store_id' => 'unsigned int', 'iphone_url' => 'string', 'launch_date' => 'string', 'offer_price_amount' => 'unsigned int', 'offer_price_end_date' => 'datetime', 'offer_price_start_date' => 'datetime', 'return_policy_days' => 'unsigned int', 'windows_phone_app_id' => 'string', 'windows_phone_app_name' => 'string', 'windows_phone_url' => 'string');
122
  }
123
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UnifiedThreadFields.php CHANGED
@@ -40,7 +40,6 @@ class UnifiedThreadFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
40
  const ID = 'id';
41
  const IS_SUBSCRIBED = 'is_subscribed';
42
  const LINK = 'link';
43
- const LINKED_GROUP = 'linked_group';
44
  const MESSAGE_COUNT = 'message_count';
45
  const NAME = 'name';
46
  const PARTICIPANTS = 'participants';
@@ -53,6 +52,6 @@ class UnifiedThreadFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
53
  const WALLPAPER = 'wallpaper';
54
  public function getFieldTypes()
55
  {
56
- return array('can_reply' => 'bool', 'former_participants' => 'Object', 'id' => 'string', 'is_subscribed' => 'bool', 'link' => 'string', 'linked_group' => 'Group', 'message_count' => 'int', 'name' => 'string', 'participants' => 'Object', 'scoped_thread_key' => 'string', 'senders' => 'Object', 'snippet' => 'string', 'subject' => 'string', 'unread_count' => 'int', 'updated_time' => 'datetime', 'wallpaper' => 'string');
57
  }
58
  }
40
  const ID = 'id';
41
  const IS_SUBSCRIBED = 'is_subscribed';
42
  const LINK = 'link';
 
43
  const MESSAGE_COUNT = 'message_count';
44
  const NAME = 'name';
45
  const PARTICIPANTS = 'participants';
52
  const WALLPAPER = 'wallpaper';
53
  public function getFieldTypes()
54
  {
55
+ return array('can_reply' => 'bool', 'former_participants' => 'Object', 'id' => 'string', 'is_subscribed' => 'bool', 'link' => 'string', 'message_count' => 'int', 'name' => 'string', 'participants' => 'Object', 'scoped_thread_key' => 'string', 'senders' => 'Object', 'snippet' => 'string', 'subject' => 'string', 'unread_count' => 'int', 'updated_time' => 'datetime', 'wallpaper' => 'string');
56
  }
57
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserFields.php CHANGED
@@ -36,14 +36,10 @@ use PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum;
36
  class UserFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
37
  {
38
  const ABOUT = 'about';
39
- const ADDRESS = 'address';
40
- const ADMIN_NOTES = 'admin_notes';
41
  const AGE_RANGE = 'age_range';
42
- const AUTH_METHOD = 'auth_method';
43
  const BIRTHDAY = 'birthday';
44
  const COVER = 'cover';
45
  const CURRENCY = 'currency';
46
- const DEVICES = 'devices';
47
  const EDUCATION = 'education';
48
  const EMAIL = 'email';
49
  const FAVORITE_ATHLETES = 'favorite_athletes';
@@ -66,15 +62,12 @@ class UserFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
66
  const LOCALE = 'locale';
67
  const LOCATION = 'location';
68
  const MEETING_FOR = 'meeting_for';
69
- const MESSENGER_JOIN_NOTIFICATIONS_ENABLED = 'messenger_join_notifications_enabled';
70
  const MIDDLE_NAME = 'middle_name';
71
  const NAME = 'name';
72
  const NAME_FORMAT = 'name_format';
73
  const PAYMENT_PRICEPOINTS = 'payment_pricepoints';
74
  const POLITICAL = 'political';
75
  const PROFILE_PIC = 'profile_pic';
76
- const PUBLIC_KEY = 'public_key';
77
- const PUBLISHED_TIMELINE = 'published_timeline';
78
  const QUOTES = 'quotes';
79
  const RELATIONSHIP_STATUS = 'relationship_status';
80
  const RELIGION = 'religion';
@@ -87,14 +80,11 @@ class UserFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
87
  const TIMEZONE = 'timezone';
88
  const TOKEN_FOR_BUSINESS = 'token_for_business';
89
  const UPDATED_TIME = 'updated_time';
90
- const USER_STORAGE_KEY = 'user_storage_key';
91
- const USERNAME = 'username';
92
  const VERIFIED = 'verified';
93
  const VIDEO_UPLOAD_LIMITS = 'video_upload_limits';
94
  const WEBSITE = 'website';
95
- const WORK = 'work';
96
  public function getFieldTypes()
97
  {
98
- return array('about' => 'string', 'address' => 'Location', 'admin_notes' => 'list<PageAdminNote>', 'age_range' => 'AgeRange', 'auth_method' => 'string', 'birthday' => 'string', 'cover' => 'UserCoverPhoto', 'currency' => 'Currency', 'devices' => 'list<UserDevice>', 'education' => 'list<Object>', 'email' => 'string', 'favorite_athletes' => 'list<Experience>', 'favorite_teams' => 'list<Experience>', 'first_name' => 'string', 'gender' => 'string', 'hometown' => 'Page', 'id' => 'string', 'inspirational_people' => 'list<Experience>', 'install_type' => 'string', 'installed' => 'bool', 'interested_in' => 'list<string>', 'is_guest_user' => 'bool', 'is_verified' => 'bool', 'languages' => 'list<Experience>', 'last_name' => 'string', 'link' => 'string', 'local_news_megaphone_dismiss_status' => 'bool', 'local_news_subscription_status' => 'bool', 'locale' => 'string', 'location' => 'Page', 'meeting_for' => 'list<string>', 'messenger_join_notifications_enabled' => 'bool', 'middle_name' => 'string', 'name' => 'string', 'name_format' => 'string', 'payment_pricepoints' => 'PaymentPricepoints', 'political' => 'string', 'profile_pic' => 'string', 'public_key' => 'string', 'published_timeline' => 'bool', 'quotes' => 'string', 'relationship_status' => 'string', 'religion' => 'string', 'shared_login_upgrade_required_by' => 'datetime', 'short_name' => 'string', 'significant_other' => 'User', 'sports' => 'list<Experience>', 'supports_donate_button_in_live_video' => 'bool', 'third_party_id' => 'string', 'timezone' => 'float', 'token_for_business' => 'string', 'updated_time' => 'datetime', 'user_storage_key' => 'string', 'username' => 'string', 'verified' => 'bool', 'video_upload_limits' => 'VideoUploadLimits', 'website' => 'string', 'work' => 'list<Object>');
99
  }
100
  }
36
  class UserFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
37
  {
38
  const ABOUT = 'about';
 
 
39
  const AGE_RANGE = 'age_range';
 
40
  const BIRTHDAY = 'birthday';
41
  const COVER = 'cover';
42
  const CURRENCY = 'currency';
 
43
  const EDUCATION = 'education';
44
  const EMAIL = 'email';
45
  const FAVORITE_ATHLETES = 'favorite_athletes';
62
  const LOCALE = 'locale';
63
  const LOCATION = 'location';
64
  const MEETING_FOR = 'meeting_for';
 
65
  const MIDDLE_NAME = 'middle_name';
66
  const NAME = 'name';
67
  const NAME_FORMAT = 'name_format';
68
  const PAYMENT_PRICEPOINTS = 'payment_pricepoints';
69
  const POLITICAL = 'political';
70
  const PROFILE_PIC = 'profile_pic';
 
 
71
  const QUOTES = 'quotes';
72
  const RELATIONSHIP_STATUS = 'relationship_status';
73
  const RELIGION = 'religion';
80
  const TIMEZONE = 'timezone';
81
  const TOKEN_FOR_BUSINESS = 'token_for_business';
82
  const UPDATED_TIME = 'updated_time';
 
 
83
  const VERIFIED = 'verified';
84
  const VIDEO_UPLOAD_LIMITS = 'video_upload_limits';
85
  const WEBSITE = 'website';
 
86
  public function getFieldTypes()
87
  {
88
+ return array('about' => 'string', 'age_range' => 'AgeRange', 'birthday' => 'string', 'cover' => 'UserCoverPhoto', 'currency' => 'Currency', 'education' => 'list<Object>', 'email' => 'string', 'favorite_athletes' => 'list<Experience>', 'favorite_teams' => 'list<Experience>', 'first_name' => 'string', 'gender' => 'string', 'hometown' => 'Page', 'id' => 'string', 'inspirational_people' => 'list<Experience>', 'install_type' => 'string', 'installed' => 'bool', 'interested_in' => 'list<string>', 'is_guest_user' => 'bool', 'is_verified' => 'bool', 'languages' => 'list<Experience>', 'last_name' => 'string', 'link' => 'string', 'local_news_megaphone_dismiss_status' => 'bool', 'local_news_subscription_status' => 'bool', 'locale' => 'string', 'location' => 'Page', 'meeting_for' => 'list<string>', 'middle_name' => 'string', 'name' => 'string', 'name_format' => 'string', 'payment_pricepoints' => 'PaymentPricepoints', 'political' => 'string', 'profile_pic' => 'string', 'quotes' => 'string', 'relationship_status' => 'string', 'religion' => 'string', 'shared_login_upgrade_required_by' => 'datetime', 'short_name' => 'string', 'significant_other' => 'User', 'sports' => 'list<Experience>', 'supports_donate_button_in_live_video' => 'bool', 'third_party_id' => 'string', 'timezone' => 'float', 'token_for_business' => 'string', 'updated_time' => 'datetime', 'verified' => 'bool', 'video_upload_limits' => 'VideoUploadLimits', 'website' => 'string');
89
  }
90
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{OfflineTermsOfServiceFields.php → WhatsAppBusinessProfileFields.php} RENAMED
@@ -33,13 +33,12 @@ use PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum;
33
  * pull request for this class.
34
  *
35
  */
36
- class OfflineTermsOfServiceFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
37
  {
38
- const ACCEPT_TIME = 'accept_time';
39
  const ID = 'id';
40
- const SIGNED_BY_USER = 'signed_by_user';
41
  public function getFieldTypes()
42
  {
43
- return array('accept_time' => 'int', 'id' => 'string', 'signed_by_user' => 'User');
44
  }
45
  }
33
  * pull request for this class.
34
  *
35
  */
36
+ class WhatsAppBusinessProfileFields extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
37
  {
 
38
  const ID = 'id';
39
+ const NAME_VERIFICATION = 'name_verification';
40
  public function getFieldTypes()
41
  {
42
+ return array('id' => 'string', 'name_verification' => 'Object');
43
  }
44
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FriendList.php DELETED
@@ -1,64 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
- *
6
- * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
- * use, copy, modify, and distribute this software in source code or binary
8
- * form for use in connection with the web services and APIs provided by
9
- * Facebook.
10
- *
11
- * As with any software that integrates with the Facebook platform, your use
12
- * of this software is subject to the Facebook Developer Principles and
13
- * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
- * shall be included in all copies or substantial portions of the software.
15
- *
16
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
- * DEALINGS IN THE SOFTWARE.
23
- *
24
- */
25
- namespace PYS_PRO_GLOBAL\FacebookAds\Object;
26
-
27
- use PYS_PRO_GLOBAL\FacebookAds\ApiRequest;
28
- use PYS_PRO_GLOBAL\FacebookAds\Cursor;
29
- use PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface;
30
- use PYS_PRO_GLOBAL\FacebookAds\TypeChecker;
31
- use PYS_PRO_GLOBAL\FacebookAds\Object\Fields\FriendListFields;
32
- /**
33
- * This class is auto-generated.
34
- *
35
- * For any issues or feature requests related to this class, please let us know
36
- * on github and we'll fix in our codegen framework. We'll not be able to accept
37
- * pull request for this class.
38
- *
39
- */
40
- class FriendList extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
41
- {
42
- /**
43
- * @return FriendListFields
44
- */
45
- public static function getFieldsEnum()
46
- {
47
- return \PYS_PRO_GLOBAL\FacebookAds\Object\Fields\FriendListFields::getInstance();
48
- }
49
- protected static function getReferencedEnums()
50
- {
51
- $ref_enums = array();
52
- return $ref_enums;
53
- }
54
- public function getSelf(array $fields = array(), array $params = array(), $pending = \false)
55
- {
56
- $this->assureId();
57
- $param_types = array();
58
- $enums = array();
59
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/', new \PYS_PRO_GLOBAL\FacebookAds\Object\FriendList(), 'NODE', \PYS_PRO_GLOBAL\FacebookAds\Object\FriendList::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
60
- $request->addParams($params);
61
- $request->addFields($fields);
62
- return $pending ? $request : $request->execute();
63
- }
64
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Group.php CHANGED
@@ -51,6 +51,14 @@ use PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoStereoscopicModeValues;
51
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoStreamTypeValues;
52
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PhotoBackdatedTimeGranularityValues;
53
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PhotoUnpublishedContentTypeValues;
 
 
 
 
 
 
 
 
54
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\ProfilePictureSourceBreakingChangeValues;
55
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\ProfilePictureSourceTypeValues;
56
  /**
@@ -140,12 +148,32 @@ class Group extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
140
  $request->addFields($fields);
141
  return $pending ? $request : $request->execute();
142
  }
 
 
 
 
 
 
 
 
 
 
143
  public function createFeed(array $fields = array(), array $params = array(), $pending = \false)
144
  {
145
  $this->assureId();
146
  $param_types = array('actions' => 'Object', 'adaptive_type' => 'string', 'album_id' => 'string', 'android_key_hash' => 'string', 'animated_effect_id' => 'unsigned int', 'application_id' => 'string', 'asked_fun_fact_prompt_id' => 'unsigned int', 'asset3d_id' => 'unsigned int', 'associated_id' => 'string', 'attach_place_suggestion' => 'bool', 'attached_media' => 'list<Object>', 'audience_exp' => 'bool', 'backdated_time' => 'datetime', 'backdated_time_granularity' => 'backdated_time_granularity_enum', 'call_to_action' => 'Object', 'caption' => 'string', 'checkin_entry_point' => 'checkin_entry_point_enum', 'child_attachments' => 'list<Object>', 'client_mutation_id' => 'string', 'composer_entry_picker' => 'string', 'composer_entry_point' => 'string', 'composer_entry_time' => 'unsigned int', 'composer_session_events_log' => 'string', 'composer_session_id' => 'string', 'composer_source_surface' => 'string', 'composer_type' => 'string', 'connection_class' => 'string', 'content_attachment' => 'string', 'coordinates' => 'Object', 'cta_link' => 'string', 'cta_type' => 'string', 'description' => 'string', 'direct_share_status' => 'unsigned int', 'expanded_height' => 'unsigned int', 'expanded_width' => 'unsigned int', 'feed_targeting' => 'Object', 'formatting' => 'formatting_enum', 'fun_fact_prompt_id' => 'unsigned int', 'fun_fact_toastee_id' => 'unsigned int', 'has_nickname' => 'bool', 'height' => 'unsigned int', 'holiday_card' => 'string', 'home_checkin_city_id' => 'Object', 'image_crops' => 'map', 'implicit_with_tags' => 'list<int>', 'instant_game_entry_point_data' => 'string', 'ios_bundle_id' => 'string', 'is_backout_draft' => 'bool', 'is_boost_intended' => 'bool', 'is_explicit_location' => 'bool', 'is_explicit_share' => 'bool', 'is_group_linking_post' => 'bool', 'is_photo_container' => 'bool', 'link' => 'string', 'location_source_id' => 'string', 'manual_privacy' => 'bool', 'message' => 'string', 'multi_share_end_card' => 'bool', 'multi_share_optimized' => 'bool', 'name' => 'string', 'nectar_module' => 'string', 'object_attachment' => 'string', 'offer_like_post_id' => 'unsigned int', 'og_action_type_id' => 'string', 'og_hide_object_attachment' => 'bool', 'og_icon_id' => 'string', 'og_object_id' => 'string', 'og_phrase' => 'string', 'og_set_profile_badge' => 'bool', 'og_suggestion_mechanism' => 'string', 'page_recommendation' => 'string', 'picture' => 'string', 'place' => 'Object', 'place_attachment_setting' => 'place_attachment_setting_enum', 'place_list' => 'string', 'place_list_data' => 'list', 'post_surfaces_blacklist' => 'list<post_surfaces_blacklist_enum>', 'posting_to_redspace' => 'posting_to_redspace_enum', 'privacy' => 'string', 'prompt_id' => 'string', 'prompt_tracking_string' => 'string', 'properties' => 'Object', 'proxied_app_id' => 'string', 'publish_event_id' => 'unsigned int', 'published' => 'bool', 'quote' => 'string', 'react_mode_metadata' => 'string', 'ref' => 'list<string>', 'referenceable_image_ids' => 'list<string>', 'referral_id' => 'string', 'sales_promo_id' => 'unsigned int', 'scheduled_publish_time' => 'datetime', 'source' => 'string', 'sponsor_id' => 'string', 'sponsor_relationship' => 'unsigned int', 'suggested_place_id' => 'Object', 'tags' => 'list<int>', 'target_surface' => 'target_surface_enum', 'targeting' => 'Object', 'text_format_metadata' => 'string', 'text_format_preset_id' => 'string', 'text_only_place' => 'string', 'throwback_camera_roll_media' => 'string', 'thumbnail' => 'file', 'time_since_original_post' => 'unsigned int', 'title' => 'string', 'tracking_info' => 'string', 'unpublished_content_type' => 'unpublished_content_type_enum', 'user_selected_tags' => 'bool', 'video_start_time_ms' => 'unsigned int', 'viewer_coordinates' => 'Object', 'width' => 'unsigned int');
147
- $enums = array('backdated_time_granularity_enum' => array('day', 'hour', 'min', 'month', 'none', 'year'), 'checkin_entry_point_enum' => array('BRANDING_CHECKIN', 'BRANDING_OTHER', 'BRANDING_PHOTO', 'BRANDING_STATUS'), 'formatting_enum' => array('MARKDOWN', 'PLAINTEXT'), 'place_attachment_setting_enum' => array('1', '2'), 'post_surfaces_blacklist_enum' => array('1', '2', '3', '4', '5'), 'posting_to_redspace_enum' => array('disabled', 'enabled'), 'target_surface_enum' => array('STORY', 'TIMELINE'), 'unpublished_content_type_enum' => array('ADS_POST', 'DRAFT', 'INLINE_CREATED', 'PUBLISHED', 'REVIEWABLE_BRANDED_CONTENT', 'SCHEDULED', 'SCHEDULED_RECURRING'));
148
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/feed', new \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject(), 'EDGE', array(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
 
 
 
 
 
 
 
 
 
 
149
  $request->addParams($params);
150
  $request->addFields($fields);
151
  return $pending ? $request : $request->execute();
51
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoStreamTypeValues;
52
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PhotoBackdatedTimeGranularityValues;
53
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PhotoUnpublishedContentTypeValues;
54
+ use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostBackdatedTimeGranularityValues;
55
+ use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostCheckinEntryPointValues;
56
+ use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostFormattingValues;
57
+ use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostPlaceAttachmentSettingValues;
58
+ use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostPostSurfacesBlacklistValues;
59
+ use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostPostingToRedspaceValues;
60
+ use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostTargetSurfaceValues;
61
+ use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostUnpublishedContentTypeValues;
62
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\ProfilePictureSourceBreakingChangeValues;
63
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\ProfilePictureSourceTypeValues;
64
  /**
148
  $request->addFields($fields);
149
  return $pending ? $request : $request->execute();
150
  }
151
+ public function getFeed(array $fields = array(), array $params = array(), $pending = \false)
152
+ {
153
+ $this->assureId();
154
+ $param_types = array('include_hidden' => 'bool', 'q' => 'string', 'show_expired' => 'bool', 'since' => 'datetime', 'until' => 'datetime', 'with' => 'string');
155
+ $enums = array();
156
+ $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/feed', new \PYS_PRO_GLOBAL\FacebookAds\Object\Post(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Post::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
157
+ $request->addParams($params);
158
+ $request->addFields($fields);
159
+ return $pending ? $request : $request->execute();
160
+ }
161
  public function createFeed(array $fields = array(), array $params = array(), $pending = \false)
162
  {
163
  $this->assureId();
164
  $param_types = array('actions' => 'Object', 'adaptive_type' => 'string', 'album_id' => 'string', 'android_key_hash' => 'string', 'animated_effect_id' => 'unsigned int', 'application_id' => 'string', 'asked_fun_fact_prompt_id' => 'unsigned int', 'asset3d_id' => 'unsigned int', 'associated_id' => 'string', 'attach_place_suggestion' => 'bool', 'attached_media' => 'list<Object>', 'audience_exp' => 'bool', 'backdated_time' => 'datetime', 'backdated_time_granularity' => 'backdated_time_granularity_enum', 'call_to_action' => 'Object', 'caption' => 'string', 'checkin_entry_point' => 'checkin_entry_point_enum', 'child_attachments' => 'list<Object>', 'client_mutation_id' => 'string', 'composer_entry_picker' => 'string', 'composer_entry_point' => 'string', 'composer_entry_time' => 'unsigned int', 'composer_session_events_log' => 'string', 'composer_session_id' => 'string', 'composer_source_surface' => 'string', 'composer_type' => 'string', 'connection_class' => 'string', 'content_attachment' => 'string', 'coordinates' => 'Object', 'cta_link' => 'string', 'cta_type' => 'string', 'description' => 'string', 'direct_share_status' => 'unsigned int', 'expanded_height' => 'unsigned int', 'expanded_width' => 'unsigned int', 'feed_targeting' => 'Object', 'formatting' => 'formatting_enum', 'fun_fact_prompt_id' => 'unsigned int', 'fun_fact_toastee_id' => 'unsigned int', 'has_nickname' => 'bool', 'height' => 'unsigned int', 'holiday_card' => 'string', 'home_checkin_city_id' => 'Object', 'image_crops' => 'map', 'implicit_with_tags' => 'list<int>', 'instant_game_entry_point_data' => 'string', 'ios_bundle_id' => 'string', 'is_backout_draft' => 'bool', 'is_boost_intended' => 'bool', 'is_explicit_location' => 'bool', 'is_explicit_share' => 'bool', 'is_group_linking_post' => 'bool', 'is_photo_container' => 'bool', 'link' => 'string', 'location_source_id' => 'string', 'manual_privacy' => 'bool', 'message' => 'string', 'multi_share_end_card' => 'bool', 'multi_share_optimized' => 'bool', 'name' => 'string', 'nectar_module' => 'string', 'object_attachment' => 'string', 'offer_like_post_id' => 'unsigned int', 'og_action_type_id' => 'string', 'og_hide_object_attachment' => 'bool', 'og_icon_id' => 'string', 'og_object_id' => 'string', 'og_phrase' => 'string', 'og_set_profile_badge' => 'bool', 'og_suggestion_mechanism' => 'string', 'page_recommendation' => 'string', 'picture' => 'string', 'place' => 'Object', 'place_attachment_setting' => 'place_attachment_setting_enum', 'place_list' => 'string', 'place_list_data' => 'list', 'post_surfaces_blacklist' => 'list<post_surfaces_blacklist_enum>', 'posting_to_redspace' => 'posting_to_redspace_enum', 'privacy' => 'string', 'prompt_id' => 'string', 'prompt_tracking_string' => 'string', 'properties' => 'Object', 'proxied_app_id' => 'string', 'publish_event_id' => 'unsigned int', 'published' => 'bool', 'quote' => 'string', 'react_mode_metadata' => 'string', 'ref' => 'list<string>', 'referenceable_image_ids' => 'list<string>', 'referral_id' => 'string', 'sales_promo_id' => 'unsigned int', 'scheduled_publish_time' => 'datetime', 'source' => 'string', 'sponsor_id' => 'string', 'sponsor_relationship' => 'unsigned int', 'suggested_place_id' => 'Object', 'tags' => 'list<int>', 'target_surface' => 'target_surface_enum', 'targeting' => 'Object', 'text_format_metadata' => 'string', 'text_format_preset_id' => 'string', 'text_only_place' => 'string', 'throwback_camera_roll_media' => 'string', 'thumbnail' => 'file', 'time_since_original_post' => 'unsigned int', 'title' => 'string', 'tracking_info' => 'string', 'unpublished_content_type' => 'unpublished_content_type_enum', 'user_selected_tags' => 'bool', 'video_start_time_ms' => 'unsigned int', 'viewer_coordinates' => 'Object', 'width' => 'unsigned int');
165
+ $enums = array('backdated_time_granularity_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostBackdatedTimeGranularityValues::getInstance()->getValues(), 'checkin_entry_point_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostCheckinEntryPointValues::getInstance()->getValues(), 'formatting_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostFormattingValues::getInstance()->getValues(), 'place_attachment_setting_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostPlaceAttachmentSettingValues::getInstance()->getValues(), 'post_surfaces_blacklist_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostPostSurfacesBlacklistValues::getInstance()->getValues(), 'posting_to_redspace_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostPostingToRedspaceValues::getInstance()->getValues(), 'target_surface_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostTargetSurfaceValues::getInstance()->getValues(), 'unpublished_content_type_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostUnpublishedContentTypeValues::getInstance()->getValues());
166
+ $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/feed', new \PYS_PRO_GLOBAL\FacebookAds\Object\Post(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Post::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
167
+ $request->addParams($params);
168
+ $request->addFields($fields);
169
+ return $pending ? $request : $request->execute();
170
+ }
171
+ public function getFiles(array $fields = array(), array $params = array(), $pending = \false)
172
+ {
173
+ $this->assureId();
174
+ $param_types = array();
175
+ $enums = array();
176
+ $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/files', new \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject(), 'EDGE', array(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
177
  $request->addParams($params);
178
  $request->addFields($fields);
179
  return $pending ? $request : $request->execute();
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Link.php CHANGED
@@ -30,9 +30,6 @@ use PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface;
30
  use PYS_PRO_GLOBAL\FacebookAds\TypeChecker;
31
  use PYS_PRO_GLOBAL\FacebookAds\Object\Fields\LinkFields;
32
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\CommentCommentPrivacyValueValues;
33
- use PYS_PRO_GLOBAL\FacebookAds\Object\Values\CommentFilterValues;
34
- use PYS_PRO_GLOBAL\FacebookAds\Object\Values\CommentLiveFilterValues;
35
- use PYS_PRO_GLOBAL\FacebookAds\Object\Values\CommentOrderValues;
36
  /**
37
  * This class is auto-generated.
38
  *
@@ -55,16 +52,6 @@ class Link extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
55
  $ref_enums = array();
56
  return $ref_enums;
57
  }
58
- public function getComments(array $fields = array(), array $params = array(), $pending = \false)
59
- {
60
- $this->assureId();
61
- $param_types = array('filter' => 'filter_enum', 'live_filter' => 'live_filter_enum', 'order' => 'order_enum', 'since' => 'datetime');
62
- $enums = array('filter_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CommentFilterValues::getInstance()->getValues(), 'live_filter_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CommentLiveFilterValues::getInstance()->getValues(), 'order_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\CommentOrderValues::getInstance()->getValues());
63
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/comments', new \PYS_PRO_GLOBAL\FacebookAds\Object\Comment(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Comment::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
64
- $request->addParams($params);
65
- $request->addFields($fields);
66
- return $pending ? $request : $request->execute();
67
- }
68
  public function createComment(array $fields = array(), array $params = array(), $pending = \false)
69
  {
70
  $this->assureId();
@@ -85,16 +72,6 @@ class Link extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
85
  $request->addFields($fields);
86
  return $pending ? $request : $request->execute();
87
  }
88
- public function getSharedPosts(array $fields = array(), array $params = array(), $pending = \false)
89
- {
90
- $this->assureId();
91
- $param_types = array();
92
- $enums = array();
93
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/sharedposts', new \PYS_PRO_GLOBAL\FacebookAds\Object\Post(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Post::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
94
- $request->addParams($params);
95
- $request->addFields($fields);
96
- return $pending ? $request : $request->execute();
97
- }
98
  public function getSelf(array $fields = array(), array $params = array(), $pending = \false)
99
  {
100
  $this->assureId();
30
  use PYS_PRO_GLOBAL\FacebookAds\TypeChecker;
31
  use PYS_PRO_GLOBAL\FacebookAds\Object\Fields\LinkFields;
32
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\CommentCommentPrivacyValueValues;
 
 
 
33
  /**
34
  * This class is auto-generated.
35
  *
52
  $ref_enums = array();
53
  return $ref_enums;
54
  }
 
 
 
 
 
 
 
 
 
 
55
  public function createComment(array $fields = array(), array $params = array(), $pending = \false)
56
  {
57
  $this->assureId();
72
  $request->addFields($fields);
73
  return $pending ? $request : $request->execute();
74
  }
 
 
 
 
 
 
 
 
 
 
75
  public function getSelf(array $fields = array(), array $params = array(), $pending = \false)
76
  {
77
  $this->assureId();
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/LiveVideo.php CHANGED
@@ -61,12 +61,12 @@ class LiveVideo extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
61
  protected static function getReferencedEnums()
62
  {
63
  $ref_enums = array();
64
- $ref_enums['BroadcastStatus'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoBroadcastStatusValues::getInstance()->getValues();
65
  $ref_enums['Projection'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoProjectionValues::getInstance()->getValues();
66
  $ref_enums['SpatialAudioFormat'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoSpatialAudioFormatValues::getInstance()->getValues();
67
  $ref_enums['Status'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoStatusValues::getInstance()->getValues();
68
  $ref_enums['StereoscopicMode'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoStereoscopicModeValues::getInstance()->getValues();
69
  $ref_enums['StreamType'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoStreamTypeValues::getInstance()->getValues();
 
70
  $ref_enums['Source'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoSourceValues::getInstance()->getValues();
71
  $ref_enums['LiveCommentModerationSetting'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoLiveCommentModerationSettingValues::getInstance()->getValues();
72
  return $ref_enums;
61
  protected static function getReferencedEnums()
62
  {
63
  $ref_enums = array();
 
64
  $ref_enums['Projection'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoProjectionValues::getInstance()->getValues();
65
  $ref_enums['SpatialAudioFormat'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoSpatialAudioFormatValues::getInstance()->getValues();
66
  $ref_enums['Status'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoStatusValues::getInstance()->getValues();
67
  $ref_enums['StereoscopicMode'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoStereoscopicModeValues::getInstance()->getValues();
68
  $ref_enums['StreamType'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoStreamTypeValues::getInstance()->getValues();
69
+ $ref_enums['BroadcastStatus'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoBroadcastStatusValues::getInstance()->getValues();
70
  $ref_enums['Source'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoSourceValues::getInstance()->getValues();
71
  $ref_enums['LiveCommentModerationSetting'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\LiveVideoLiveCommentModerationSettingValues::getInstance()->getValues();
72
  return $ref_enums;
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OfflineTermsOfService.php DELETED
@@ -1,64 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
- *
6
- * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
- * use, copy, modify, and distribute this software in source code or binary
8
- * form for use in connection with the web services and APIs provided by
9
- * Facebook.
10
- *
11
- * As with any software that integrates with the Facebook platform, your use
12
- * of this software is subject to the Facebook Developer Principles and
13
- * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
- * shall be included in all copies or substantial portions of the software.
15
- *
16
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
- * DEALINGS IN THE SOFTWARE.
23
- *
24
- */
25
- namespace PYS_PRO_GLOBAL\FacebookAds\Object;
26
-
27
- use PYS_PRO_GLOBAL\FacebookAds\ApiRequest;
28
- use PYS_PRO_GLOBAL\FacebookAds\Cursor;
29
- use PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface;
30
- use PYS_PRO_GLOBAL\FacebookAds\TypeChecker;
31
- use PYS_PRO_GLOBAL\FacebookAds\Object\Fields\OfflineTermsOfServiceFields;
32
- /**
33
- * This class is auto-generated.
34
- *
35
- * For any issues or feature requests related to this class, please let us know
36
- * on github and we'll fix in our codegen framework. We'll not be able to accept
37
- * pull request for this class.
38
- *
39
- */
40
- class OfflineTermsOfService extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
41
- {
42
- /**
43
- * @return OfflineTermsOfServiceFields
44
- */
45
- public static function getFieldsEnum()
46
- {
47
- return \PYS_PRO_GLOBAL\FacebookAds\Object\Fields\OfflineTermsOfServiceFields::getInstance();
48
- }
49
- protected static function getReferencedEnums()
50
- {
51
- $ref_enums = array();
52
- return $ref_enums;
53
- }
54
- public function getSelf(array $fields = array(), array $params = array(), $pending = \false)
55
- {
56
- $this->assureId();
57
- $param_types = array();
58
- $enums = array();
59
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/', new \PYS_PRO_GLOBAL\FacebookAds\Object\OfflineTermsOfService(), 'NODE', \PYS_PRO_GLOBAL\FacebookAds\Object\OfflineTermsOfService::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
60
- $request->addParams($params);
61
- $request->addFields($fields);
62
- return $pending ? $request : $request->execute();
63
- }
64
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Page.php CHANGED
@@ -315,16 +315,6 @@ class Page extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
315
  $request->addFields($fields);
316
  return $pending ? $request : $request->execute();
317
  }
318
- public function deleteClaimedUrls(array $fields = array(), array $params = array(), $pending = \false)
319
- {
320
- $this->assureId();
321
- $param_types = array('url' => 'string');
322
- $enums = array();
323
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_DELETE, '/claimed_urls', new \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject(), 'EDGE', array(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
324
- $request->addParams($params);
325
- $request->addFields($fields);
326
- return $pending ? $request : $request->execute();
327
- }
328
  public function getClaimedUrls(array $fields = array(), array $params = array(), $pending = \false)
329
  {
330
  $this->assureId();
@@ -678,7 +668,7 @@ class Page extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
678
  public function createLocation(array $fields = array(), array $params = array(), $pending = \false)
679
  {
680
  $this->assureId();
681
- $param_types = array('always_open' => 'bool', 'delivery_and_pickup_option_info' => 'list<string>', 'differently_open_offerings' => 'map', 'hours' => 'map', 'ignore_warnings' => 'bool', 'location' => 'Object', 'location_page_id' => 'string', 'old_store_number' => 'unsigned int', 'page_username' => 'string', 'permanently_closed' => 'bool', 'phone' => 'string', 'pickup_options' => 'list<pickup_options_enum>', 'place_topics' => 'list<string>', 'price_range' => 'string', 'store_code' => 'string', 'store_location_descriptor' => 'string', 'store_name' => 'string', 'store_number' => 'unsigned int', 'temporary_status' => 'temporary_status_enum', 'website' => 'string');
682
  $enums = array('pickup_options_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PagePickupOptionsValues::getInstance()->getValues(), 'temporary_status_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PageTemporaryStatusValues::getInstance()->getValues());
683
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/locations', new \PYS_PRO_GLOBAL\FacebookAds\Object\Page(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Page::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
684
  $request->addParams($params);
@@ -739,7 +729,7 @@ class Page extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
739
  {
740
  $this->assureId();
741
  $param_types = array('fields' => 'list<fields_enum>');
742
- $enums = array('fields_enum' => array('ACCOUNT_LINKING_URL', 'GET_STARTED', 'GREETING', 'HOME_URL', 'ICE_BREAKERS', 'PAYMENT_SETTINGS', 'PERSISTENT_MENU', 'PLATFORM', 'TARGET_AUDIENCE', 'WHITELISTED_DOMAINS'));
743
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_DELETE, '/messenger_profile', new \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject(), 'EDGE', array(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
744
  $request->addParams($params);
745
  $request->addFields($fields);
@@ -1130,7 +1120,7 @@ class Page extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
1130
  $this->assureId();
1131
  $param_types = array();
1132
  $enums = array();
1133
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/tours', new \PYS_PRO_GLOBAL\FacebookAds\Object\EventTour(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\EventTour::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
1134
  $request->addParams($params);
1135
  $request->addFields($fields);
1136
  return $pending ? $request : $request->execute();
315
  $request->addFields($fields);
316
  return $pending ? $request : $request->execute();
317
  }
 
 
 
 
 
 
 
 
 
 
318
  public function getClaimedUrls(array $fields = array(), array $params = array(), $pending = \false)
319
  {
320
  $this->assureId();
668
  public function createLocation(array $fields = array(), array $params = array(), $pending = \false)
669
  {
670
  $this->assureId();
671
+ $param_types = array('always_open' => 'bool', 'delivery_and_pickup_option_info' => 'list<string>', 'differently_open_offerings' => 'map', 'hours' => 'map', 'ignore_warnings' => 'bool', 'location' => 'Object', 'location_page_id' => 'string', 'old_store_number' => 'unsigned int', 'permanently_closed' => 'bool', 'phone' => 'string', 'pickup_options' => 'list<pickup_options_enum>', 'place_topics' => 'list<string>', 'price_range' => 'string', 'store_code' => 'string', 'store_location_descriptor' => 'string', 'store_name' => 'string', 'store_number' => 'unsigned int', 'temporary_status' => 'temporary_status_enum', 'website' => 'string');
672
  $enums = array('pickup_options_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PagePickupOptionsValues::getInstance()->getValues(), 'temporary_status_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PageTemporaryStatusValues::getInstance()->getValues());
673
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/locations', new \PYS_PRO_GLOBAL\FacebookAds\Object\Page(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Page::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
674
  $request->addParams($params);
729
  {
730
  $this->assureId();
731
  $param_types = array('fields' => 'list<fields_enum>');
732
+ $enums = array('fields_enum' => array('ACCOUNT_LINKING_URL', 'GET_STARTED', 'GREETING', 'HOME_URL', 'ICE_BREAKERS', 'PAYMENT_SETTINGS', 'PERSISTENT_MENU', 'PLATFORM', 'SUBJECT_TO_NEW_EU_PRIVACY_RULES', 'TARGET_AUDIENCE', 'WHITELISTED_DOMAINS'));
733
  $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_DELETE, '/messenger_profile', new \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject(), 'EDGE', array(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
734
  $request->addParams($params);
735
  $request->addFields($fields);
1120
  $this->assureId();
1121
  $param_types = array();
1122
  $enums = array();
1123
+ $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/tours', new \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject(), 'EDGE', array(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
1124
  $request->addParams($params);
1125
  $request->addFields($fields);
1126
  return $pending ? $request : $request->execute();
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/{EventTour.php → PaymentEnginePayment.php} RENAMED
@@ -28,7 +28,8 @@ use PYS_PRO_GLOBAL\FacebookAds\ApiRequest;
28
  use PYS_PRO_GLOBAL\FacebookAds\Cursor;
29
  use PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface;
30
  use PYS_PRO_GLOBAL\FacebookAds\TypeChecker;
31
- use PYS_PRO_GLOBAL\FacebookAds\Object\Fields\EventTourFields;
 
32
  /**
33
  * This class is auto-generated.
34
  *
@@ -37,36 +38,37 @@ use PYS_PRO_GLOBAL\FacebookAds\Object\Fields\EventTourFields;
37
  * pull request for this class.
38
  *
39
  */
40
- class EventTour extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
41
  {
42
  /**
43
- * @return EventTourFields
44
  */
45
  public static function getFieldsEnum()
46
  {
47
- return \PYS_PRO_GLOBAL\FacebookAds\Object\Fields\EventTourFields::getInstance();
48
  }
49
  protected static function getReferencedEnums()
50
  {
51
  $ref_enums = array();
 
52
  return $ref_enums;
53
  }
54
- public function getEvents(array $fields = array(), array $params = array(), $pending = \false)
55
  {
56
  $this->assureId();
57
- $param_types = array();
58
- $enums = array();
59
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/events', new \PYS_PRO_GLOBAL\FacebookAds\Object\Event(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Event::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
60
  $request->addParams($params);
61
  $request->addFields($fields);
62
  return $pending ? $request : $request->execute();
63
  }
64
- public function getPages(array $fields = array(), array $params = array(), $pending = \false)
65
  {
66
  $this->assureId();
67
- $param_types = array();
68
- $enums = array();
69
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/pages', new \PYS_PRO_GLOBAL\FacebookAds\Object\Page(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Page::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
70
  $request->addParams($params);
71
  $request->addFields($fields);
72
  return $pending ? $request : $request->execute();
@@ -76,7 +78,7 @@ class EventTour extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
76
  $this->assureId();
77
  $param_types = array();
78
  $enums = array();
79
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/', new \PYS_PRO_GLOBAL\FacebookAds\Object\EventTour(), 'NODE', \PYS_PRO_GLOBAL\FacebookAds\Object\EventTour::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
80
  $request->addParams($params);
81
  $request->addFields($fields);
82
  return $pending ? $request : $request->execute();
28
  use PYS_PRO_GLOBAL\FacebookAds\Cursor;
29
  use PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface;
30
  use PYS_PRO_GLOBAL\FacebookAds\TypeChecker;
31
+ use PYS_PRO_GLOBAL\FacebookAds\Object\Fields\PaymentEnginePaymentFields;
32
+ use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PaymentEnginePaymentReasonValues;
33
  /**
34
  * This class is auto-generated.
35
  *
38
  * pull request for this class.
39
  *
40
  */
41
+ class PaymentEnginePayment extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
42
  {
43
  /**
44
+ * @return PaymentEnginePaymentFields
45
  */
46
  public static function getFieldsEnum()
47
  {
48
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Fields\PaymentEnginePaymentFields::getInstance();
49
  }
50
  protected static function getReferencedEnums()
51
  {
52
  $ref_enums = array();
53
+ $ref_enums['Reason'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PaymentEnginePaymentReasonValues::getInstance()->getValues();
54
  return $ref_enums;
55
  }
56
+ public function createDispute(array $fields = array(), array $params = array(), $pending = \false)
57
  {
58
  $this->assureId();
59
+ $param_types = array('reason' => 'reason_enum');
60
+ $enums = array('reason_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PaymentEnginePaymentReasonValues::getInstance()->getValues());
61
+ $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/dispute', new \PYS_PRO_GLOBAL\FacebookAds\Object\PaymentEnginePayment(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\PaymentEnginePayment::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
62
  $request->addParams($params);
63
  $request->addFields($fields);
64
  return $pending ? $request : $request->execute();
65
  }
66
+ public function createRefund(array $fields = array(), array $params = array(), $pending = \false)
67
  {
68
  $this->assureId();
69
+ $param_types = array('amount' => 'float', 'currency' => 'string', 'reason' => 'reason_enum');
70
+ $enums = array('reason_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PaymentEnginePaymentReasonValues::getInstance()->getValues());
71
+ $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/refunds', new \PYS_PRO_GLOBAL\FacebookAds\Object\PaymentEnginePayment(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\PaymentEnginePayment::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
72
  $request->addParams($params);
73
  $request->addFields($fields);
74
  return $pending ? $request : $request->execute();
78
  $this->assureId();
79
  $param_types = array();
80
  $enums = array();
81
+ $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/', new \PYS_PRO_GLOBAL\FacebookAds\Object\PaymentEnginePayment(), 'NODE', \PYS_PRO_GLOBAL\FacebookAds\Object\PaymentEnginePayment::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
82
  $request->addParams($params);
83
  $request->addFields($fields);
84
  return $pending ? $request : $request->execute();
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Photo.php CHANGED
@@ -38,7 +38,6 @@ use PYS_PRO_GLOBAL\FacebookAds\Object\Values\InsightsResultPeriodValues;
38
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PhotoBackdatedTimeGranularityValues;
39
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PhotoTypeValues;
40
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PhotoUnpublishedContentTypeValues;
41
- use PYS_PRO_GLOBAL\FacebookAds\Object\Values\ProfileTypeValues;
42
  /**
43
  * This class is auto-generated.
44
  *
@@ -114,26 +113,6 @@ class Photo extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
114
  $request->addFields($fields);
115
  return $pending ? $request : $request->execute();
116
  }
117
- public function getReactions(array $fields = array(), array $params = array(), $pending = \false)
118
- {
119
- $this->assureId();
120
- $param_types = array('type' => 'type_enum');
121
- $enums = array('type_enum' => \PYS_PRO_GLOBAL\FacebookAds\Object\Values\ProfileTypeValues::getInstance()->getValues());
122
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/reactions', new \PYS_PRO_GLOBAL\FacebookAds\Object\Profile(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Profile::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
123
- $request->addParams($params);
124
- $request->addFields($fields);
125
- return $pending ? $request : $request->execute();
126
- }
127
- public function getSharedPosts(array $fields = array(), array $params = array(), $pending = \false)
128
- {
129
- $this->assureId();
130
- $param_types = array();
131
- $enums = array();
132
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/sharedposts', new \PYS_PRO_GLOBAL\FacebookAds\Object\Post(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Post::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
133
- $request->addParams($params);
134
- $request->addFields($fields);
135
- return $pending ? $request : $request->execute();
136
- }
137
  public function getSponsorTags(array $fields = array(), array $params = array(), $pending = \false)
138
  {
139
  $this->assureId();
38
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PhotoBackdatedTimeGranularityValues;
39
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PhotoTypeValues;
40
  use PYS_PRO_GLOBAL\FacebookAds\Object\Values\PhotoUnpublishedContentTypeValues;
 
41
  /**
42
  * This class is auto-generated.
43
  *
113
  $request->addFields($fields);
114
  return $pending ? $request : $request->execute();
115
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
  public function getSponsorTags(array $fields = array(), array $params = array(), $pending = \false)
117
  {
118
  $this->assureId();
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Post.php CHANGED
@@ -67,8 +67,6 @@ class Post extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
67
  {
68
  $ref_enums = array();
69
  $ref_enums['BackdatedTimeGranularity'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostBackdatedTimeGranularityValues::getInstance()->getValues();
70
- $ref_enums['FeedStoryVisibility'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostFeedStoryVisibilityValues::getInstance()->getValues();
71
- $ref_enums['TimelineVisibility'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostTimelineVisibilityValues::getInstance()->getValues();
72
  $ref_enums['CheckinEntryPoint'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostCheckinEntryPointValues::getInstance()->getValues();
73
  $ref_enums['Formatting'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostFormattingValues::getInstance()->getValues();
74
  $ref_enums['PlaceAttachmentSetting'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostPlaceAttachmentSettingValues::getInstance()->getValues();
@@ -76,6 +74,8 @@ class Post extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
76
  $ref_enums['PostingToRedspace'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostPostingToRedspaceValues::getInstance()->getValues();
77
  $ref_enums['TargetSurface'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostTargetSurfaceValues::getInstance()->getValues();
78
  $ref_enums['UnpublishedContentType'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostUnpublishedContentTypeValues::getInstance()->getValues();
 
 
79
  return $ref_enums;
80
  }
81
  public function getAttachments(array $fields = array(), array $params = array(), $pending = \false)
@@ -148,16 +148,6 @@ class Post extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
148
  $request->addFields($fields);
149
  return $pending ? $request : $request->execute();
150
  }
151
- public function createPromotion(array $fields = array(), array $params = array(), $pending = \false)
152
- {
153
- $this->assureId();
154
- $param_types = array('ad_account_id' => 'string', 'ad_conversion_pixel_id' => 'unsigned int', 'audience' => 'audience_enum', 'audience_id' => 'string', 'bid_amount' => 'unsigned int', 'budget' => 'unsigned int', 'cta_type' => 'cta_type_enum', 'currency' => 'string', 'flow_id' => 'string', 'placement' => 'string', 'start_time' => 'unsigned int', 'stop_time' => 'unsigned int', 'targeting' => 'Targeting');
155
- $enums = array('audience_enum' => array('AUTO_LOOKALIKE', 'AUTO_PAGE_LOOKALIKE', 'AUTO_TARGETING', 'COUNTRY_AND_INTEREST', 'CREATE_NEW', 'CUSTOM_AUDIENCE', 'DISTRICT', 'EVENT_CUSTOM_AUDIENCES', 'EVENT_ENGAGEMENT', 'FANS', 'GROUPER', 'HEC_AUDIENCE', 'IG_PROMOTED_POST_AUTO', 'LOCAL', 'LOOKALIKE', 'MARKETPLACE_DEFAULT', 'MARKETPLACE_NATIONWIDE_AUDIENCE', 'MARKETPLACE_SAVED_AUDIENCE', 'MULT_CUSTOM_AUDIENCES', 'NCPP', 'SAVED_AUDIENCE', 'SMART_AUDIENCE'), 'cta_type_enum' => array('ADD_TO_CART', 'APPLY_NOW', 'BOOK_TRAVEL', 'BUY', 'BUY_NOW', 'BUY_TICKETS', 'CALL', 'CALL_ME', 'CONTACT', 'CONTACT_US', 'DONATE', 'DONATE_NOW', 'DOWNLOAD', 'EVENT_RSVP', 'FIND_A_GROUP', 'FIND_YOUR_GROUPS', 'FOLLOW_NEWS_STORYLINE', 'FOLLOW_PAGE', 'FOLLOW_USER', 'GET_DIRECTIONS', 'GET_OFFER', 'GET_OFFER_VIEW', 'GET_QUOTE', 'GET_SHOWTIMES', 'INSTALL_APP', 'INSTALL_MOBILE_APP', 'LEARN_MORE', 'LIKE_PAGE', 'LISTEN_MUSIC', 'LISTEN_NOW', 'MESSAGE_PAGE', 'MOBILE_DOWNLOAD', 'MOMENTS', 'NO_BUTTON', 'OPEN_LINK', 'ORDER_NOW', 'PAY_TO_ACCESS', 'PLAY_GAME', 'PURCHASE_GIFT_CARDS', 'RECORD_NOW', 'REFER_FRIENDS', 'REQUEST_TIME', 'SAY_THANKS', 'SEE_MORE', 'SELL_NOW', 'SEND_A_GIFT', 'SHARE', 'SHOP_NOW', 'SIGN_UP', 'SOTTO_SUBSCRIBE', 'START_ORDER', 'SUBSCRIBE', 'SWIPE_UP_PRODUCT', 'SWIPE_UP_SHOP', 'UPDATE_APP', 'USE_APP', 'USE_MOBILE_APP', 'VIDEO_ANNOTATION', 'VISIT_PAGES_FEED', 'WATCH_MORE', 'WATCH_VIDEO', 'WHATSAPP_MESSAGE', 'WOODHENGE_SUPPORT'));
156
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/promotions', new \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject(), 'EDGE', array(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
157
- $request->addParams($params);
158
- $request->addFields($fields);
159
- return $pending ? $request : $request->execute();
160
- }
161
  public function getReactions(array $fields = array(), array $params = array(), $pending = \false)
162
  {
163
  $this->assureId();
67
  {
68
  $ref_enums = array();
69
  $ref_enums['BackdatedTimeGranularity'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostBackdatedTimeGranularityValues::getInstance()->getValues();
 
 
70
  $ref_enums['CheckinEntryPoint'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostCheckinEntryPointValues::getInstance()->getValues();
71
  $ref_enums['Formatting'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostFormattingValues::getInstance()->getValues();
72
  $ref_enums['PlaceAttachmentSetting'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostPlaceAttachmentSettingValues::getInstance()->getValues();
74
  $ref_enums['PostingToRedspace'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostPostingToRedspaceValues::getInstance()->getValues();
75
  $ref_enums['TargetSurface'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostTargetSurfaceValues::getInstance()->getValues();
76
  $ref_enums['UnpublishedContentType'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostUnpublishedContentTypeValues::getInstance()->getValues();
77
+ $ref_enums['FeedStoryVisibility'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostFeedStoryVisibilityValues::getInstance()->getValues();
78
+ $ref_enums['TimelineVisibility'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\PostTimelineVisibilityValues::getInstance()->getValues();
79
  return $ref_enums;
80
  }
81
  public function getAttachments(array $fields = array(), array $params = array(), $pending = \false)
148
  $request->addFields($fields);
149
  return $pending ? $request : $request->execute();
150
  }
 
 
 
 
 
 
 
 
 
 
151
  public function getReactions(array $fields = array(), array $params = array(), $pending = \false)
152
  {
153
  $this->assureId();
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ProductFeedSchedule.php CHANGED
@@ -55,16 +55,6 @@ class ProductFeedSchedule extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCru
55
  $ref_enums['Interval'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\ProductFeedScheduleIntervalValues::getInstance()->getValues();
56
  return $ref_enums;
57
  }
58
- public function deleteSelf(array $fields = array(), array $params = array(), $pending = \false)
59
- {
60
- $this->assureId();
61
- $param_types = array();
62
- $enums = array();
63
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_DELETE, '/', new \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject(), 'NODE', array(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
64
- $request->addParams($params);
65
- $request->addFields($fields);
66
- return $pending ? $request : $request->execute();
67
- }
68
  public function getSelf(array $fields = array(), array $params = array(), $pending = \false)
69
  {
70
  $this->assureId();
@@ -75,14 +65,4 @@ class ProductFeedSchedule extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCru
75
  $request->addFields($fields);
76
  return $pending ? $request : $request->execute();
77
  }
78
- public function updateSelf(array $fields = array(), array $params = array(), $pending = \false)
79
- {
80
- $this->assureId();
81
- $param_types = array('upload_schedule' => 'string');
82
- $enums = array();
83
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/', new \PYS_PRO_GLOBAL\FacebookAds\Object\ProductFeedSchedule(), 'NODE', \PYS_PRO_GLOBAL\FacebookAds\Object\ProductFeedSchedule::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
84
- $request->addParams($params);
85
- $request->addFields($fields);
86
- return $pending ? $request : $request->execute();
87
- }
88
  }
55
  $ref_enums['Interval'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\ProductFeedScheduleIntervalValues::getInstance()->getValues();
56
  return $ref_enums;
57
  }
 
 
 
 
 
 
 
 
 
 
58
  public function getSelf(array $fields = array(), array $params = array(), $pending = \false)
59
  {
60
  $this->assureId();
65
  $request->addFields($fields);
66
  return $pending ? $request : $request->execute();
67
  }
 
 
 
 
 
 
 
 
 
 
68
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ProductGroup.php CHANGED
@@ -63,6 +63,16 @@ class ProductGroup extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
63
  $ref_enums = array();
64
  return $ref_enums;
65
  }
 
 
 
 
 
 
 
 
 
 
66
  public function getProducts(array $fields = array(), array $params = array(), $pending = \false)
67
  {
68
  $this->assureId();
63
  $ref_enums = array();
64
  return $ref_enums;
65
  }
66
+ public function createArDatum(array $fields = array(), array $params = array(), $pending = \false)
67
+ {
68
+ $this->assureId();
69
+ $param_types = array('effect_icon' => 'file', 'state' => 'state_enum', 'surfaces' => 'list<surfaces_enum>');
70
+ $enums = array('state_enum' => array('DISABLED', 'ENABLED', 'TEST'), 'surfaces_enum' => array('SHOPS', 'TEST_CAPABILITY', 'UNIVERSAL_CHECKOUT', 'US_MARKETPLACE'));
71
+ $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/ar_data', new \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject(), 'EDGE', array(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
72
+ $request->addParams($params);
73
+ $request->addFields($fields);
74
+ return $pending ? $request : $request->execute();
75
+ }
76
  public function getProducts(array $fields = array(), array $params = array(), $pending = \false)
77
  {
78
  $this->assureId();
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ProductItem.php CHANGED
@@ -74,6 +74,26 @@ class ProductItem extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
74
  $ref_enums['CommerceTaxCategory'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\ProductItemCommerceTaxCategoryValues::getInstance()->getValues();
75
  return $ref_enums;
76
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  public function getProductSets(array $fields = array(), array $params = array(), $pending = \false)
78
  {
79
  $this->assureId();
74
  $ref_enums['CommerceTaxCategory'] = \PYS_PRO_GLOBAL\FacebookAds\Object\Values\ProductItemCommerceTaxCategoryValues::getInstance()->getValues();
75
  return $ref_enums;
76
  }
77
+ public function createArDatum(array $fields = array(), array $params = array(), $pending = \false)
78
+ {
79
+ $this->assureId();
80
+ $param_types = array('container_effect' => 'container_effect_enum', 'effect_parameters' => 'map', 'picker_icon' => 'file');
81
+ $enums = array('container_effect_enum' => array('MAKEUP'));
82
+ $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/ar_data', new \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject(), 'EDGE', array(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
83
+ $request->addParams($params);
84
+ $request->addFields($fields);
85
+ return $pending ? $request : $request->execute();
86
+ }
87
+ public function getChannelsToIntegrityStatus(array $fields = array(), array $params = array(), $pending = \false)
88
+ {
89
+ $this->assureId();
90
+ $param_types = array();
91
+ $enums = array();
92
+ $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/channels_to_integrity_status', new \PYS_PRO_GLOBAL\FacebookAds\Object\CatalogItemChannelsToIntegrityStatus(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\CatalogItemChannelsToIntegrityStatus::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
93
+ $request->addParams($params);
94
+ $request->addFields($fields);
95
+ return $pending ? $request : $request->execute();
96
+ }
97
  public function getProductSets(array $fields = array(), array $params = array(), $pending = \false)
98
  {
99
  $this->assureId();
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/ActionSource.php ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
+ *
6
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
+ * use, copy, modify, and distribute this software in source code or binary
8
+ * form for use in connection with the web services and APIs provided by
9
+ * Facebook.
10
+ *
11
+ * As with any software that integrates with the Facebook platform, your use
12
+ * of this software is subject to the Facebook Developer Principles and
13
+ * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
+ * shall be included in all copies or substantial portions of the software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ * DEALINGS IN THE SOFTWARE.
23
+ *
24
+ */
25
+ namespace PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide;
26
+
27
+ use PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum;
28
+ /**
29
+ * Class ActionSource
30
+ *
31
+ * Where the conversion event occurred.
32
+ *
33
+ * @package FacebookAds\Object\ServerSide
34
+ */
35
+ class ActionSource extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
36
+ {
37
+ /**
38
+ * Conversion happened over email.
39
+ */
40
+ const EMAIL = 'email';
41
+ /**
42
+ * Conversion was made on your website.
43
+ */
44
+ const WEBSITE = 'website';
45
+ /**
46
+ * Conversion was made using your app.
47
+ */
48
+ const APP = 'app';
49
+ /**
50
+ * Conversion was made over the phone.
51
+ */
52
+ const PHONE_CALL = 'phone_call';
53
+ /**
54
+ * Conversion was made via a messaging app, SMS, or online messaging feature.
55
+ */
56
+ const CHAT = 'chat';
57
+ /**
58
+ * Conversion was made in person at your physical store.
59
+ */
60
+ const PHYSICAL_STORE = 'physical_store';
61
+ /**
62
+ * Conversion happened automatically, for example, a subscription renewal that’s set on auto-pay each month.
63
+ */
64
+ const SYSTEM_GENERATED = 'system_generated';
65
+ /**
66
+ * Conversion happened in a way that is not listed.
67
+ */
68
+ const OTHER = 'other';
69
+ }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Event.php CHANGED
@@ -37,22 +37,22 @@ class Event implements \ArrayAccess
37
  * Array of property to type mappings. Used for (de)serialization
38
  * @var string[]
39
  */
40
- protected static $param_types = array('event_name' => 'string', 'event_time' => 'int', 'event_source_url' => 'string', 'opt_out' => 'bool', 'event_id' => 'string', 'user_data' => 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\UserData', 'custom_data' => 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\CustomData', 'data_processing_options' => 'string[]', 'data_processing_options_country' => 'int', 'data_processing_options_state' => 'int');
41
  /**
42
  * Array of attributes where the key is the local name, and the value is the original name
43
  * @var string[]
44
  */
45
- protected static $attributeMap = array('event_name' => 'event_name', 'event_time' => 'event_time', 'event_source_url' => 'event_source_url', 'opt_out' => 'opt_out', 'event_id' => 'event_id', 'user_data' => 'user_data', 'custom_data' => 'custom_data', 'data_processing_options' => 'data_processing_options', 'data_processing_options_country' => 'data_processing_options_country', 'data_processing_options_state' => 'data_processing_options_state');
46
  /**
47
  * Array of attributes to setter functions (for deserialization of responses)
48
  * @var string[]
49
  */
50
- protected static $setters = array('event_name' => 'setEventName', 'event_time' => 'setEventTime', 'event_source_url' => 'setEventSourceUrl', 'opt_out' => 'setOptOut', 'event_id' => 'setEventId', 'user_data' => 'setUserData', 'custom_data' => 'setCustomData', 'data_processing_options' => 'setDataProcessingOptions', 'data_processing_options_country' => 'setDataProcessingOptionsCountry', 'data_processing_options_state' => 'setDataProcessingOptionsState');
51
  /**
52
  * Array of attributes to getter functions (for serialization of requests)
53
  * @var string[]
54
  */
55
- protected static $getters = array('event_name' => 'getEventName', 'event_time' => 'getEventTime', 'event_source_url' => 'getEventSourceUrl', 'opt_out' => 'getOptOut', 'event_id' => 'getEventId', 'user_data' => 'getUserData', 'custom_data' => 'getCustomData', 'data_processing_options' => 'getDataProcessingOptions', 'data_processing_options_country' => 'getDataProcessingOptionsCountry', 'data_processing_options_state' => 'getDataProcessingOptionsState');
56
  /**
57
  * Associative array for storing property values
58
  * @var mixed[]
@@ -74,6 +74,7 @@ class Event implements \ArrayAccess
74
  $this->container['data_processing_options'] = isset($data['data_processing_options']) ? $data['data_processing_options'] : null;
75
  $this->container['data_processing_options_country'] = isset($data['data_processing_options_country']) ? $data['data_processing_options_country'] : null;
76
  $this->container['data_processing_options_state'] = isset($data['data_processing_options_state']) ? $data['data_processing_options_state'] : null;
 
77
  }
78
  public static function paramTypes()
79
  {
@@ -239,6 +240,23 @@ class Event implements \ArrayAccess
239
  $this->container['data_processing_options_state'] = $data_processing_options_state;
240
  return $this;
241
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
242
  /**
243
  * Returns true if offset exists. False otherwise.
244
  * @param integer $offset Offset
@@ -297,6 +315,7 @@ class Event implements \ArrayAccess
297
  $normalized_payload['data_processing_options'] = $this->getDataProcessingOptions();
298
  $normalized_payload['data_processing_options_country'] = $this->getDataProcessingOptionsCountry();
299
  $normalized_payload['data_processing_options_state'] = $this->getDataProcessingOptionsState();
 
300
  $normalized_payload = \array_filter($normalized_payload, function ($val) {
301
  if (\is_array($val)) {
302
  return \true;
@@ -304,6 +323,10 @@ class Event implements \ArrayAccess
304
  return \strlen($val);
305
  }
306
  });
 
 
 
 
307
  return $normalized_payload;
308
  }
309
  /**
37
  * Array of property to type mappings. Used for (de)serialization
38
  * @var string[]
39
  */
40
+ protected static $param_types = array('event_name' => 'string', 'event_time' => 'int', 'event_source_url' => 'string', 'opt_out' => 'bool', 'event_id' => 'string', 'user_data' => 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\UserData', 'custom_data' => 'PYS_PRO_GLOBAL\\FacebookAds\\Object\\ServerSide\\CustomData', 'data_processing_options' => 'string[]', 'data_processing_options_country' => 'int', 'data_processing_options_state' => 'int', 'action_source' => 'string');
41
  /**
42
  * Array of attributes where the key is the local name, and the value is the original name
43
  * @var string[]
44
  */
45
+ protected static $attributeMap = array('event_name' => 'event_name', 'event_time' => 'event_time', 'event_source_url' => 'event_source_url', 'opt_out' => 'opt_out', 'event_id' => 'event_id', 'user_data' => 'user_data', 'custom_data' => 'custom_data', 'data_processing_options' => 'data_processing_options', 'data_processing_options_country' => 'data_processing_options_country', 'data_processing_options_state' => 'data_processing_options_state', 'action_source' => 'action_source');
46
  /**
47
  * Array of attributes to setter functions (for deserialization of responses)
48
  * @var string[]
49
  */
50
+ protected static $setters = array('event_name' => 'setEventName', 'event_time' => 'setEventTime', 'event_source_url' => 'setEventSourceUrl', 'opt_out' => 'setOptOut', 'event_id' => 'setEventId', 'user_data' => 'setUserData', 'custom_data' => 'setCustomData', 'data_processing_options' => 'setDataProcessingOptions', 'data_processing_options_country' => 'setDataProcessingOptionsCountry', 'data_processing_options_state' => 'setDataProcessingOptionsState', 'action_source' => 'setActionSource');
51
  /**
52
  * Array of attributes to getter functions (for serialization of requests)
53
  * @var string[]
54
  */
55
+ protected static $getters = array('event_name' => 'getEventName', 'event_time' => 'getEventTime', 'event_source_url' => 'getEventSourceUrl', 'opt_out' => 'getOptOut', 'event_id' => 'getEventId', 'user_data' => 'getUserData', 'custom_data' => 'getCustomData', 'data_processing_options' => 'getDataProcessingOptions', 'data_processing_options_country' => 'getDataProcessingOptionsCountry', 'data_processing_options_state' => 'getDataProcessingOptionsState', 'action_source' => 'getActionSource');
56
  /**
57
  * Associative array for storing property values
58
  * @var mixed[]
74
  $this->container['data_processing_options'] = isset($data['data_processing_options']) ? $data['data_processing_options'] : null;
75
  $this->container['data_processing_options_country'] = isset($data['data_processing_options_country']) ? $data['data_processing_options_country'] : null;
76
  $this->container['data_processing_options_state'] = isset($data['data_processing_options_state']) ? $data['data_processing_options_state'] : null;
77
+ $this->container['action_source'] = isset($data['action_source']) ? $data['action_source'] : null;
78
  }
79
  public static function paramTypes()
80
  {
240
  $this->container['data_processing_options_state'] = $data_processing_options_state;
241
  return $this;
242
  }
243
+ /**
244
+ * Gets action_source, this is where the Conversion occurred.
245
+ * @return string
246
+ */
247
+ public function getActionSource()
248
+ {
249
+ return $this->container['action_source'];
250
+ }
251
+ /**
252
+ * Sets action_source, this is where the Conversion occurred.
253
+ * @return $this
254
+ */
255
+ public function setActionSource($action_source)
256
+ {
257
+ $this->container['action_source'] = $action_source;
258
+ return $this;
259
+ }
260
  /**
261
  * Returns true if offset exists. False otherwise.
262
  * @param integer $offset Offset
315
  $normalized_payload['data_processing_options'] = $this->getDataProcessingOptions();
316
  $normalized_payload['data_processing_options_country'] = $this->getDataProcessingOptionsCountry();
317
  $normalized_payload['data_processing_options_state'] = $this->getDataProcessingOptionsState();
318
+ $normalized_payload['action_source'] = \PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide\Normalizer::normalize('action_source', $this->container['action_source']);
319
  $normalized_payload = \array_filter($normalized_payload, function ($val) {
320
  if (\is_array($val)) {
321
  return \true;
323
  return \strlen($val);
324
  }
325
  });
326
+ // Add the opt_out value back in if it was filtered out
327
+ if ($this->getOptOut() === \false) {
328
+ $normalized_payload['opt_out'] = $this->getOptOut();
329
+ }
330
  return $normalized_payload;
331
  }
332
  /**
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Normalizer.php CHANGED
@@ -92,6 +92,9 @@ class Normalizer
92
  case 'delivery_category':
93
  $normalized_data = \PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide\Normalizer::normalizeDeliveryCategory($data);
94
  break;
 
 
 
95
  default:
96
  }
97
  return $normalized_data;
@@ -268,4 +271,17 @@ class Normalizer
268
  $international_number_regex = '/^\\d{1,4}\\(?\\d{2,3}\\)?\\d{4,}$/';
269
  return \preg_match($international_number_regex, $phone_number);
270
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
271
  }
92
  case 'delivery_category':
93
  $normalized_data = \PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide\Normalizer::normalizeDeliveryCategory($data);
94
  break;
95
+ case 'action_source':
96
+ $normalized_data = \PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide\Normalizer::normalizeActionSource($data);
97
+ break;
98
  default:
99
  }
100
  return $normalized_data;
271
  $international_number_regex = '/^\\d{1,4}\\(?\\d{2,3}\\)?\\d{4,}$/';
272
  return \preg_match($international_number_regex, $phone_number);
273
  }
274
+ /**
275
+ * Normalizes the action_source and throws an error if invalid.
276
+ * @param string $action_source type of DeliveryCategory.
277
+ * @return string
278
+ */
279
+ private static function normalizeActionSource($action_source)
280
+ {
281
+ $action_sources = \PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide\ActionSource::getInstance()->getValues();
282
+ if (!\PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide\ActionSource::getInstance()->isValidValue($action_source)) {
283
+ throw new \InvalidArgumentException(\sprintf('Invalid action_source passed: %s. Allowed values are one of %s', $action_source, \implode(",", $action_sources)));
284
+ }
285
+ return $action_source;
286
+ }
287
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/Content.php ADDED
@@ -0,0 +1,231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
+ *
6
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
+ * use, copy, modify, and distribute this software in source code or binary
8
+ * form for use in connection with the web services and APIs provided by
9
+ * Facebook.
10
+ *
11
+ * As with any software that integrates with the Facebook platform, your use
12
+ * of this software is subject to the Facebook Developer Principles and
13
+ * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
+ * shall be included in all copies or substantial portions of the software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ * DEALINGS IN THE SOFTWARE.
23
+ *
24
+ */
25
+ namespace PYS_PRO_GLOBAL\FacebookAds\Object\Signal;
26
+
27
+ use PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI\Content as BusinessDataContent;
28
+ use PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide\Content as ServerSideContent;
29
+ class Content
30
+ {
31
+ /**
32
+ * Associative array for storing property values for Business Data API
33
+ * @var BusinessDataContent
34
+ */
35
+ protected $businessDataContent = null;
36
+ /**
37
+ * Associative array for storing property values for Conversion API
38
+ * @var ServerSideContent
39
+ */
40
+ protected $serverSideContent = null;
41
+ /**
42
+ * Constructor
43
+ * @param mixed[] $data Associated array of property value initializing the model
44
+ */
45
+ public function __construct(array $data = null)
46
+ {
47
+ $this->businessDataContent = new \PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI\Content($data);
48
+ $this->serverSideContent = new \PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide\Content($data);
49
+ }
50
+ /**
51
+ * Get Product Id.
52
+ * @return array Product Id
53
+ */
54
+ public function getProductId()
55
+ {
56
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideContent->getProductId(), $this->businessDataContent->getProductId());
57
+ }
58
+ /**
59
+ * Sets product id.
60
+ * @param string $product_id product id
61
+ * @return $this
62
+ */
63
+ public function setProductId($product_id)
64
+ {
65
+ $this->businessDataContent->setProductId($product_id);
66
+ $this->serverSideContent->setProductId($product_id);
67
+ return $this;
68
+ }
69
+ /**
70
+ * Get number of product.
71
+ * @return integer quantity
72
+ */
73
+ public function getQuantity()
74
+ {
75
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideContent->getQuantity(), $this->businessDataContent->getQuantity());
76
+ }
77
+ /**
78
+ * Set number of product.
79
+ * @param integer $quantity number of items
80
+ * @return $this
81
+ */
82
+ public function setQuantity($quantity)
83
+ {
84
+ $this->businessDataContent->setQuantity($quantity);
85
+ $this->serverSideContent->setQuantity($quantity);
86
+ return $this;
87
+ }
88
+ /**
89
+ * Get total price.
90
+ * @return array Price
91
+ */
92
+ public function getPrice()
93
+ {
94
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse(null, $this->businessDataContent->getPrice());
95
+ }
96
+ /**
97
+ * Set total price.
98
+ * @param float Price
99
+ * @return $this
100
+ */
101
+ public function setPrice($price)
102
+ {
103
+ $this->businessDataContent->setPrice($price);
104
+ return $this;
105
+ }
106
+ /**
107
+ * Get title.
108
+ * @return array title
109
+ */
110
+ public function getTitle()
111
+ {
112
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideContent->getTitle(), $this->businessDataContent->getTitle());
113
+ }
114
+ /**
115
+ * Sets title.
116
+ * @param string $title title
117
+ * @return $this
118
+ */
119
+ public function setTitle($title)
120
+ {
121
+ $this->businessDataContent->setTitle($title);
122
+ $this->serverSideContent->setTitle($title);
123
+ return $this;
124
+ }
125
+ /**
126
+ * Get Item Price.
127
+ * @return array Item Price
128
+ */
129
+ public function getItemPrice()
130
+ {
131
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideContent->getItemPrice(), null);
132
+ }
133
+ /**
134
+ * Set Item Price.
135
+ * @param float $item_price single item price
136
+ * @return Content
137
+ */
138
+ public function setItemPrice($item_price)
139
+ {
140
+ $this->serverSideContent->setItemPrice($item_price);
141
+ return $this;
142
+ }
143
+ /**
144
+ * Get description.
145
+ * @return array description
146
+ */
147
+ public function getDescription()
148
+ {
149
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideContent->getDescription(), null);
150
+ }
151
+ /**
152
+ * Sets description.
153
+ * @param string $description description
154
+ * @return $this
155
+ */
156
+ public function setDescription($description)
157
+ {
158
+ $this->serverSideContent->setDescription($description);
159
+ return $this;
160
+ }
161
+ /**
162
+ * Get brand.
163
+ * @return array brand
164
+ */
165
+ public function getBrand()
166
+ {
167
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideContent->getBrand(), null);
168
+ }
169
+ /**
170
+ * Sets brand.
171
+ * @param string $brand brand
172
+ * @return $this
173
+ */
174
+ public function setBrand($brand)
175
+ {
176
+ $this->serverSideContent->setBrand($brand);
177
+ return $this;
178
+ }
179
+ /**
180
+ * Get category.
181
+ * @return array category
182
+ */
183
+ public function getCategory()
184
+ {
185
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideContent->getCategory(), null);
186
+ }
187
+ /**
188
+ * Sets category.
189
+ * @param string $category category
190
+ * @return $this
191
+ */
192
+ public function setCategory($category)
193
+ {
194
+ $this->serverSideContent->setCategory($category);
195
+ return $this;
196
+ }
197
+ /**
198
+ * Gets Type of delivery for a purchase event.
199
+ * @return array delivery_category
200
+ */
201
+ public function getDeliveryCategory()
202
+ {
203
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideContent->getDeliveryCategory(), null);
204
+ }
205
+ /**
206
+ * Sets Type of delivery for a purchase event.
207
+ * @param string $delivery_category
208
+ * @return $this
209
+ */
210
+ public function setDeliveryCategory($delivery_category)
211
+ {
212
+ $this->serverSideContent->setDeliveryCategory($delivery_category);
213
+ return $this;
214
+ }
215
+ /**
216
+ * Gets content for Business Data API
217
+ * @return BusinessDataContent
218
+ */
219
+ public function getBusinessDataContent()
220
+ {
221
+ return $this->businessDataContent;
222
+ }
223
+ /**
224
+ * Gets content for Conversion API
225
+ * @return ServerSideContent
226
+ */
227
+ public function getServerSideContent()
228
+ {
229
+ return $this->serverSideContent;
230
+ }
231
+ }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/CustomData.php ADDED
@@ -0,0 +1,495 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
+ *
6
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
+ * use, copy, modify, and distribute this software in source code or binary
8
+ * form for use in connection with the web services and APIs provided by
9
+ * Facebook.
10
+ *
11
+ * As with any software that integrates with the Facebook platform, your use
12
+ * of this software is subject to the Facebook Developer Principles and
13
+ * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
+ * shall be included in all copies or substantial portions of the software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ * DEALINGS IN THE SOFTWARE.
23
+ *
24
+ */
25
+ namespace PYS_PRO_GLOBAL\FacebookAds\Object\Signal;
26
+
27
+ use PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI\CustomData as BusinessDataCustomData;
28
+ use PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide\CustomData as ServerSideCustomData;
29
+ class CustomData
30
+ {
31
+ /**
32
+ * Associative array for storing property values for Business Data API
33
+ * @var BusinessDataCustomData
34
+ */
35
+ protected $businessDataCustomData = null;
36
+ /**
37
+ * Associative array for storing property values for Conversion API
38
+ * @var ServerSideCustomData
39
+ */
40
+ protected $serverSideCustomData = null;
41
+ /**
42
+ * Constructor
43
+ * @param mixed[] $data Associated array of property value initializing the model
44
+ */
45
+ public function __construct(array $data = null)
46
+ {
47
+ $business_contents = array();
48
+ $server_contents = array();
49
+ if (isset($data['contents'])) {
50
+ foreach ($data['contents'] as $content) {
51
+ \array_push($business_contents, $content->getBusinessDataContent());
52
+ \array_push($server_contents, $content->getServerSideContent());
53
+ }
54
+ }
55
+ $business_data = $data;
56
+ $server_data = $data;
57
+ $business_data['contents'] = $business_contents;
58
+ $server_data['contents'] = $server_contents;
59
+ $business_data['billing_contact'] = isset($data['billing_contact']) ? $data['billing_contact']->getBusinessDataUserData() : null;
60
+ $business_data['shipping_contact'] = isset($data['shipping_contact']) ? $data['shipping_contact']->getBusinessDataUserData() : null;
61
+ $this->businessDataCustomData = new \PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI\CustomData($business_data);
62
+ $this->serverSideCustomData = new \PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide\CustomData($server_data);
63
+ }
64
+ /**
65
+ * Sets value
66
+ * @param float $value A numeric value associated with this event.
67
+ * This could be a monetary value or a value in some other metric.
68
+ * @return $this
69
+ */
70
+ public function setValue($value)
71
+ {
72
+ $this->businessDataCustomData->setValue($value);
73
+ $this->serverSideCustomData->setValue($value);
74
+ return $this;
75
+ }
76
+ /**
77
+ * Sets currency
78
+ * @param string $currency The currency for the value specified, if applicable.
79
+ * Currency must be a valid ISO 4217 three digit currency code.
80
+ * @return $this
81
+ */
82
+ public function setCurrency($currency)
83
+ {
84
+ $this->businessDataCustomData->setCurrency($currency);
85
+ $this->serverSideCustomData->setCurrency($currency);
86
+ return $this;
87
+ }
88
+ /**
89
+ * Sets contents
90
+ * @param Content[] $contents A list of CustomData objects that contain the product IDs associated with
91
+ * the event plus information about the products.
92
+ * @return $this
93
+ */
94
+ public function setContents($contents)
95
+ {
96
+ $business_contents = array();
97
+ $server_contents = array();
98
+ foreach ($contents as $content) {
99
+ \array_push($business_contents, $content->getBusinessDataContent());
100
+ \array_push($server_contents, $content->getServerSideContent());
101
+ }
102
+ $this->businessDataCustomData->setContents($business_contents);
103
+ $this->serverSideCustomData->setContents($server_contents);
104
+ return $this;
105
+ }
106
+ /**
107
+ * Sets order_id
108
+ * @param string $order_id The order ID for this transaction as a String.
109
+ * @return $this
110
+ */
111
+ public function setOrderId($order_id)
112
+ {
113
+ $this->businessDataCustomData->setOrderId($order_id);
114
+ $this->serverSideCustomData->setOrderId($order_id);
115
+ return $this;
116
+ }
117
+ /**
118
+ * Sets status
119
+ * @param string status of the order
120
+ *
121
+ * @return $this
122
+ */
123
+ public function setStatus($status)
124
+ {
125
+ $this->businessDataCustomData->setStatus($status);
126
+ $this->serverSideCustomData->setStatus($status);
127
+ return $this;
128
+ }
129
+ /**
130
+ * Sets billing contact
131
+ * @param UserData billing_contact of the order
132
+ *
133
+ * @return $this
134
+ */
135
+ public function setBillingContact($billing_contact)
136
+ {
137
+ $this->businessDataCustomData->setBillingContact($billing_contact->getBusinessDataUserData());
138
+ return $this;
139
+ }
140
+ /**
141
+ * Sets shipping contact
142
+ * @param UserData shipping_contact of the order
143
+ *
144
+ * @return $this
145
+ */
146
+ public function setShippingContact($shipping_contact)
147
+ {
148
+ $this->businessDataCustomData->setShippingContact($shipping_contact->getBusinessDataUserData());
149
+ return $this;
150
+ }
151
+ /**
152
+ * Sets external order id
153
+ * @param string external_order_id unique order id
154
+ *
155
+ * @return $this
156
+ */
157
+ public function setExternalOrderId($external_order_id)
158
+ {
159
+ $this->businessDataCustomData->setExternalOrderId($external_order_id);
160
+ return $this;
161
+ }
162
+ /**
163
+ * Sets original order id
164
+ * @param string original_order_id for Refund event.
165
+ *
166
+ * @return $this
167
+ */
168
+ public function setOriginalOrderId($original_order_id)
169
+ {
170
+ $this->businessDataCustomData->setOriginalOrderId($original_order_id);
171
+ return $this;
172
+ }
173
+ /**
174
+ * Sets message for Refund event
175
+ * @param string message for Refund event
176
+ *
177
+ * @return $this
178
+ */
179
+ public function setMessage($message)
180
+ {
181
+ $this->businessDataCustomData->setMessage($message);
182
+ return $this;
183
+ }
184
+ /**
185
+ * Sets content_name
186
+ * @param string $content_name The name of the page or product associated with the event. Example: 'lettuce'.
187
+ *
188
+ * @return $this
189
+ */
190
+ public function setContentName($content_name)
191
+ {
192
+ $this->serverSideCustomData->setContentName($content_name);
193
+ return $this;
194
+ }
195
+ /**
196
+ * Sets content_category
197
+ * @param string $content_category The category of the content associated with the event. Example: 'grocery'
198
+ *
199
+ * @return $this
200
+ */
201
+ public function setContentCategory($content_category)
202
+ {
203
+ $this->serverSideCustomData->setContentCategory($content_category);
204
+ return $this;
205
+ }
206
+ /**
207
+ * Sets content_ids
208
+ * @param string[] $content_ids The content IDs associated with the event,
209
+ * such as product SKUs for items in an AddToCart event: ['ABC123', 'XYZ789'].
210
+ * If content_type is a product, then your content IDs must be an array with a single string value.
211
+ * Otherwise, this array can contain any number of string values.
212
+ *
213
+ * @return $this
214
+ */
215
+ public function setContentIds($content_ids)
216
+ {
217
+ $this->serverSideCustomData->setContentIds($content_ids);
218
+ return $this;
219
+ }
220
+ /**
221
+ * Sets content_type
222
+ * @param string $content_type A String equal to either 'product' or 'product_group'.
223
+ * Set to product if the keys you send content_ids or contents represent products.
224
+ * Set to product_group if the keys you send in content_ids represent product groups.
225
+ *
226
+ * @return $this
227
+ */
228
+ public function setContentType($content_type)
229
+ {
230
+ $this->serverSideCustomData->setContentType($content_type);
231
+ return $this;
232
+ }
233
+ /**
234
+ * Sets predicted_ltv
235
+ * @param float $predicted_ltv The predicted lifetime value of a conversion event.
236
+ *
237
+ * @return $this
238
+ */
239
+ public function setPredictedLtv($predicted_ltv)
240
+ {
241
+ $this->serverSideCustomData->setPredictedLtv($predicted_ltv);
242
+ return $this;
243
+ }
244
+ /**
245
+ * Sets num_items
246
+ * @param string $num_items Use only with InitiateCheckout events.
247
+ * The number of items that a user tries to buy during checkout.
248
+ *
249
+ * @return $this
250
+ */
251
+ public function setNumItems($num_items)
252
+ {
253
+ $this->serverSideCustomData->setNumItems($num_items);
254
+ return $this;
255
+ }
256
+ /**
257
+ * Sets a search query made by a user. Use only with Search events.
258
+ * @param string $search_string Use only with Search events.
259
+ * A search query made by a user.
260
+ *
261
+ * @return $this
262
+ */
263
+ public function setSearchString($search_string)
264
+ {
265
+ $this->serverSideCustomData->setSearchString($search_string);
266
+ return $this;
267
+ }
268
+ /**
269
+ * Sets Type of delivery for a purchase event.
270
+ * @param string $delivery_category Type of delivery for a purchase event.
271
+ *
272
+ * @return $this
273
+ */
274
+ public function setDeliveryCategory($delivery_category)
275
+ {
276
+ $this->serverSideCustomData->setDeliveryCategory($delivery_category);
277
+ return $this;
278
+ }
279
+ /**
280
+ * Sets the item_number.
281
+ * @param string $item_number The item number.
282
+ *
283
+ * @return $this
284
+ */
285
+ public function setItemNumber($item_number)
286
+ {
287
+ $this->serverSideCustomData->setItemNumber($item_number);
288
+ return $this;
289
+ }
290
+ /**
291
+ * Sets custom_properties that are not defined as the standard properties list in custom data.
292
+ * @param array custom_properties dictionary to include custom properties that are not defined in custom data.
293
+ *
294
+ * @return $this
295
+ */
296
+ public function setCustomProperties($custom_properties)
297
+ {
298
+ $this->serverSideCustomData->setCustomProperties($custom_properties);
299
+ return $this;
300
+ }
301
+ /**
302
+ * Gets a numeric value associated with this event.
303
+ * This could be a monetary value or a value in some other metric.
304
+ *
305
+ * @return array
306
+ */
307
+ public function getValue()
308
+ {
309
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideCustomData->getValue(), $this->businessDataCustomData->getValue());
310
+ }
311
+ /**
312
+ * Gets currency for the value specified, if applicable.
313
+ * @return array
314
+ */
315
+ public function getCurrency()
316
+ {
317
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideCustomData->getCurrency(), $this->businessDataCustomData->getCurrency());
318
+ }
319
+ /**
320
+ * Gets a list of CustomData objects that contain the product IDs associated with
321
+ * the event plus information about the products.
322
+ * @return array
323
+ */
324
+ public function getCustomDatas()
325
+ {
326
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideCustomData->getCustomDatas(), $this->businessDataCustomData->getCustomDatas());
327
+ }
328
+ /**
329
+ * Gets the order ID for this transaction as a String.
330
+ * @return array
331
+ */
332
+ public function getOrderId()
333
+ {
334
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideCustomData->getOrderId(), $this->businessDataCustomData->getOrderId());
335
+ }
336
+ /**
337
+ * Gets the status of the registration event
338
+ * @return array
339
+ */
340
+ public function getStatus()
341
+ {
342
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideCustomData->getStatus(), $this->businessDataCustomData->getStatus());
343
+ }
344
+ /**
345
+ * Gets billing contact
346
+ *
347
+ * @return array
348
+ */
349
+ public function getBillingContact()
350
+ {
351
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse(null, $this->businessDataCustomData->getBillingContact());
352
+ }
353
+ /**
354
+ * Gets shipping contact
355
+ *
356
+ * @return array
357
+ */
358
+ public function getShippingContact()
359
+ {
360
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse(null, $this->businessDataCustomData->getShippingContact());
361
+ }
362
+ /**
363
+ * Gets external order id
364
+ *
365
+ * @return array
366
+ */
367
+ public function getExternalOrderId()
368
+ {
369
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse(null, $this->businessDataCustomData->getExternalOrderId());
370
+ }
371
+ /**
372
+ * Gets original order id
373
+ *
374
+ * @return array
375
+ */
376
+ public function getOriginalOrderId()
377
+ {
378
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse(null, $this->businessDataCustomData->getOriginalOrderId());
379
+ }
380
+ /**
381
+ * Gets message
382
+ *
383
+ * @return array
384
+ */
385
+ public function getMessage()
386
+ {
387
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse(null, $this->businessDataCustomData->getMessage());
388
+ }
389
+ /**
390
+ * Gets the value of a custom property from the custom_properties bag
391
+ * @param $key Custom property name
392
+ * @return array
393
+ */
394
+ public function getCustomProperty($key)
395
+ {
396
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideCustomData->getCustomProperty($key), null);
397
+ }
398
+ /**
399
+ * Gets content name of the page or product associated with the event. Example: 'lettuce'.
400
+ * @return array
401
+ */
402
+ public function getContentName()
403
+ {
404
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideCustomData->getContentName(), null);
405
+ }
406
+ /**
407
+ * Gets the category of the content associated with the event. Example: 'grocery'
408
+ * @return array
409
+ */
410
+ public function getContentCategory()
411
+ {
412
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideCustomData->getContentCategory(), null);
413
+ }
414
+ /**
415
+ * Gets the content IDs associated with the event,
416
+ * such as product SKUs for items in an AddToCart event: ['ABC123', 'XYZ789'].
417
+ * @return array
418
+ */
419
+ public function getContentIds()
420
+ {
421
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideCustomData->getContentIds(), null);
422
+ }
423
+ /**
424
+ * Gets content type 'product' or 'product_group'
425
+ * @return array
426
+ */
427
+ public function getContentType()
428
+ {
429
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideCustomData->getContentType(), null);
430
+ }
431
+ /**
432
+ * Gets the predicted lifetime value of a conversion event.
433
+ * @return array
434
+ */
435
+ public function getPredictedLtv()
436
+ {
437
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideCustomData->getPredictedLtv(), null);
438
+ }
439
+ /**
440
+ * Gets the number of items that a user tries to buy during checkout
441
+ * @return array
442
+ */
443
+ public function getNumItems()
444
+ {
445
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideCustomData->getNumItems(), null);
446
+ }
447
+ /**
448
+ * Gets a search query made by a user.
449
+ * @return array
450
+ */
451
+ public function getSearchString()
452
+ {
453
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideCustomData->getSearchString(), null);
454
+ }
455
+ /**
456
+ * Gets a delivery_category for a purchase order.
457
+ * @return array
458
+ */
459
+ public function getDeliveryCategory()
460
+ {
461
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideCustomData->getDeliveryCategory(), null);
462
+ }
463
+ /**
464
+ * Gets the item number.
465
+ * @return array
466
+ */
467
+ public function getItemNumber()
468
+ {
469
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideCustomData->getItemNumber(), null);
470
+ }
471
+ /**
472
+ * Gets Custom Properties dictionary to add properties that are not defined as part of the custom data.
473
+ * @return array
474
+ */
475
+ public function getCustomProperties()
476
+ {
477
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideCustomData->getCustomProperties(), null);
478
+ }
479
+ /**
480
+ * Gets custom data for Business Data API
481
+ * @return BusinessDataCustomData
482
+ */
483
+ public function getBusinessDataCustomData()
484
+ {
485
+ return $this->businessDataCustomData;
486
+ }
487
+ /**
488
+ * Gets custom data for Conversion API
489
+ * @return ServerSideCustomData
490
+ */
491
+ public function getServerSideCustomData()
492
+ {
493
+ return $this->serverSideCustomData;
494
+ }
495
+ }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/Event.php ADDED
@@ -0,0 +1,255 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
+ *
6
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
+ * use, copy, modify, and distribute this software in source code or binary
8
+ * form for use in connection with the web services and APIs provided by
9
+ * Facebook.
10
+ *
11
+ * As with any software that integrates with the Facebook platform, your use
12
+ * of this software is subject to the Facebook Developer Principles and
13
+ * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
+ * shall be included in all copies or substantial portions of the software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ * DEALINGS IN THE SOFTWARE.
23
+ *
24
+ */
25
+ namespace PYS_PRO_GLOBAL\FacebookAds\Object\Signal;
26
+
27
+ use PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI\Event as BusinessDataEvent;
28
+ use PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide\Event as ServerSideEvent;
29
+ class Event
30
+ {
31
+ /**
32
+ * Associative array for storing property values for Business Data API
33
+ * @var BusinessDataEvent
34
+ */
35
+ protected $businessDataEvent = null;
36
+ /**
37
+ * Associative array for storing property values for Conversion API
38
+ * @var ServerSideEvent
39
+ */
40
+ protected $serverSideEvent = null;
41
+ /**
42
+ * Constructor
43
+ * @param mixed[] $data Associated array of property value initalizing the model
44
+ */
45
+ public function __construct(array $data = null)
46
+ {
47
+ $business_data = $data;
48
+ $server_data = $data;
49
+ $business_data['user_data'] = isset($data['user_data']) ? $data['user_data']->getBusinessDataUserData() : null;
50
+ $server_data['user_data'] = isset($data['user_data']) ? $data['user_data']->getServerSideUserData() : null;
51
+ $business_data['custom_data'] = isset($data['custom_data']) ? $data['custom_data']->getBusinessDataCustomData() : null;
52
+ $server_data['custom_data'] = isset($data['custom_data']) ? $data['custom_data']->getServerSideCustomData() : null;
53
+ $this->businessDataEvent = new \PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI\Event($business_data);
54
+ $this->serverSideEvent = new \PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide\Event($server_data);
55
+ }
56
+ /**
57
+ * Sets a Facebook pixel Standard Event or Custom Event name
58
+ * @param string $event_name A Facebook pixel Standard Event or Custom Event name.
59
+ * @return $this
60
+ */
61
+ public function setEventName($event_name)
62
+ {
63
+ $this->businessDataEvent->setEventName($event_name);
64
+ $this->serverSideEvent->setEventName($event_name);
65
+ return $this;
66
+ }
67
+ /**
68
+ * Sets a Unix timestamp in seconds indicating when the actual event occurred
69
+ * @param int $event_time A Unix timestamp in seconds indicating when the actual event occurred.
70
+ * @return $this
71
+ */
72
+ public function setEventTime($event_time)
73
+ {
74
+ $this->businessDataEvent->setEventTime($event_time);
75
+ $this->serverSideEvent->setEventTime($event_time);
76
+ return $this;
77
+ }
78
+ /**
79
+ * Sets an ID used by Facebook to deduplicate the same event sent from both server and browser.
80
+ * @param string $event_id This ID can be any unique string chosen by the advertiser.
81
+ * event_id is used to deduplicate events sent by both Facebook Pixel and Server-Side API.
82
+ * event_name is also used in the deduplication process.
83
+ * For deduplication, the eventID from Facebook pixel must match the
84
+ * event_id in the corresponding Server-Side API event.
85
+ * @return $this
86
+ */
87
+ public function setEventId($event_id)
88
+ {
89
+ $this->businessDataEvent->setEventId($event_id);
90
+ $this->serverSideEvent->setEventId($event_id);
91
+ return $this;
92
+ }
93
+ /**
94
+ * Sets UserData object that contains user data.
95
+ * @param FacebookAds\Object\Signal\UserData $user_data
96
+ * @return $this
97
+ */
98
+ public function setUserData($user_data)
99
+ {
100
+ $this->businessDataEvent->setUserData($user_data->getBusinessDataUserData());
101
+ $this->serverSideEvent->setUserData($user_data->getServerSideUserData());
102
+ return $this;
103
+ }
104
+ /**
105
+ * Sets CustomData object that includes additional business data about the event.
106
+ * @param FacebookAds\Object\Signal\CustomData $custom_data
107
+ * @return $this
108
+ */
109
+ public function setCustomData($custom_data)
110
+ {
111
+ $this->businessDataEvent->setCustomData($custom_data->getBusinessDataCustomData());
112
+ $this->serverSideEvent->setCustomData($custom_data->getServerSideCustomData());
113
+ return $this;
114
+ }
115
+ /**
116
+ * Sets the browser URL where the event happened
117
+ * @param string $event_source_url The browser URL where the event happened.
118
+ * @return $this
119
+ */
120
+ public function setEventSourceUrl($event_source_url)
121
+ {
122
+ $this->serverSideEvent->setEventSourceUrl($event_source_url);
123
+ return $this;
124
+ }
125
+ /**
126
+ * Sets a flag that indicates Facebook should or should not use this event for ads delivery optimization
127
+ * @param bool $opt_out A flag that indicates Facebook should or should not
128
+ * use this event for ads delivery optimization.
129
+ * If set to true, Facebook only use the event for attribution.
130
+ * @return $this
131
+ */
132
+ public function setOptOut($opt_out)
133
+ {
134
+ $this->serverSideEvent->setOptOut($opt_out);
135
+ return $this;
136
+ }
137
+ /**
138
+ * Sets the processing options you would like to enable for a specific event.
139
+ * For more details see: https://developers.facebook.com/docs/marketing-apis/data-processing-options
140
+ * @param string[], e.g. [] or ['LDU']
141
+ * @return $this
142
+ */
143
+ public function setDataProcessingOptions($data_processing_options)
144
+ {
145
+ $this->businessDataEvent->setDataProcessingOptions($data_processing_options);
146
+ $this->serverSideEvent->setDataProcessingOptions($data_processing_options);
147
+ return $this;
148
+ }
149
+ /**
150
+ * Sets a country that you want to associate to this data processing option. If you set a country, you must also set a state.
151
+ * For more details see: https://developers.facebook.com/docs/marketing-apis/data-processing-options
152
+ * @param int
153
+ * @return $this
154
+ */
155
+ public function setDataProcessingOptionsCountry($data_processing_options_country)
156
+ {
157
+ $this->businessDataEvent->setDataProcessingOptionsCountry($data_processing_options_country);
158
+ $this->serverSideEvent->setDataProcessingOptionsCountry($data_processing_options_country);
159
+ return $this;
160
+ }
161
+ /**
162
+ * Sets a state that you want to associate with this data processing option.
163
+ * For more details see: https://developers.facebook.com/docs/marketing-apis/data-processing-options
164
+ * @param int
165
+ * @return $this
166
+ *
167
+ */
168
+ public function setDataProcessingOptionsState($data_processing_options_state)
169
+ {
170
+ $this->businessDataEvent->setDataProcessingOptionsState($data_processing_options_state);
171
+ $this->serverSideEvent->setDataProcessingOptionsState($data_processing_options_state);
172
+ return $this;
173
+ }
174
+ /**
175
+ * Gets Facebook pixel Standard Event or Custom Event name.
176
+ * @return array
177
+ */
178
+ public function getEventName()
179
+ {
180
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideEvent->getEventName(), $this->businessDataEvent->getEventName());
181
+ }
182
+ /**
183
+ * Gets Unix timestamp in seconds indicating when the actual event occurred.
184
+ * @return array
185
+ */
186
+ public function getEventTime()
187
+ {
188
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideEvent->getEventTime(), $this->businessDataEvent->getEventTime());
189
+ }
190
+ /**
191
+ * Gets Event ID can be any string chosen by the advertiser. It is used by Facebook to deduplicate
192
+ * the same event sent from both server and browser.
193
+ *@return array
194
+ */
195
+ public function getEventId()
196
+ {
197
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideEvent->getEventId(), $this->businessDataEvent->getEventId());
198
+ }
199
+ /**
200
+ * Gets UserData object that contains user data
201
+ * @return array
202
+ */
203
+ public function getUserData()
204
+ {
205
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideEvent->getUserData(), $this->businessDataEvent->getUserData());
206
+ }
207
+ /**
208
+ * Gets customData object that includes additional business data about the event.
209
+ * @return array
210
+ */
211
+ public function getCustomData()
212
+ {
213
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideEvent->getCustomData(), $this->businessDataEvent->getCustomData());
214
+ }
215
+ /**
216
+ * Gets DataProcessionOptions value of Processing options you would like to enable for a specific event.
217
+ *@return array
218
+ */
219
+ public function getDataProcessingOptions()
220
+ {
221
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideEvent->getDataProcessingOptions(), $this->businessDataEvent->getDataProcessingOptions());
222
+ }
223
+ /**
224
+ * Gets DataProcessionOptionsState value that represents the state that you want to associate with this data processing option.
225
+ *@return array
226
+ */
227
+ public function getDataProcessingOptionsState()
228
+ {
229
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideEvent->getDataProcessingOptionsState(), $this->businessDataEvent->getDataProcessingOptionsState());
230
+ }
231
+ /**
232
+ * Gets DataProcessionOptionsCountry value that represents the country that you want to associate to this data processing option.
233
+ *@return array
234
+ */
235
+ public function getDataProcessingOptionsCountry()
236
+ {
237
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideEvent->getDataProcessingOptionsCountry(), $this->businessDataEvent->getDataProcessingOptionsCountry());
238
+ }
239
+ /**
240
+ * Gets event for Business Data API
241
+ * @return BusinessDataEvent
242
+ */
243
+ public function getBusinessDataEvent()
244
+ {
245
+ return $this->businessDataEvent;
246
+ }
247
+ /**
248
+ * Gets event for Conversion API
249
+ * @return ServerSideEvent
250
+ */
251
+ public function getServerSideEvent()
252
+ {
253
+ return $this->serverSideEvent;
254
+ }
255
+ }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/EventRequest.php ADDED
@@ -0,0 +1,223 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
+ *
6
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
+ * use, copy, modify, and distribute this software in source code or binary
8
+ * form for use in connection with the web services and APIs provided by
9
+ * Facebook.
10
+ *
11
+ * As with any software that integrates with the Facebook platform, your use
12
+ * of this software is subject to the Facebook Developer Principles and
13
+ * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
+ * shall be included in all copies or substantial portions of the software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ * DEALINGS IN THE SOFTWARE.
23
+ *
24
+ */
25
+ namespace PYS_PRO_GLOBAL\FacebookAds\Object\Signal;
26
+
27
+ use PYS_PRO_GLOBAL\FacebookAds\Api;
28
+ use PYS_PRO_GLOBAL\FacebookAds\Object\AdsPixel;
29
+ use PYS_PRO_GLOBAL\FacebookAds\Object\Page;
30
+ use PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI\EventRequest as BusinessDataEventRequest;
31
+ use PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide\EventRequest as ServerSideEventRequest;
32
+ /**
33
+ * Event Request
34
+ *
35
+ * @category Class
36
+ */
37
+ class EventRequest
38
+ {
39
+ /**
40
+ * Associative array for storing property values for Business Data API
41
+ * @var BusinessDataEventRequest
42
+ */
43
+ protected $businessDataEventRequest = null;
44
+ /**
45
+ * Associative array for storing property values for Conversion API
46
+ * @var ServerSideEventRequest
47
+ */
48
+ protected $serverSideEventRequest = null;
49
+ /**
50
+ * Constructor
51
+ * @param string $pixel_id pixel id
52
+ * @param string $page_id page id
53
+ * @param mixed[] $data Associated array of property value initializing the model
54
+ */
55
+ public function __construct(string $pixel_id, string $page_id, array $data = null)
56
+ {
57
+ $business_data = $data;
58
+ $server_data = $data;
59
+ $business_events = array();
60
+ $server_events = array();
61
+ if (isset($data['events'])) {
62
+ foreach ($events as $event) {
63
+ \array_push($business_events, $event->getBusinessDataEvent());
64
+ \array_push($server_events, $event->getServerSideEvent());
65
+ }
66
+ }
67
+ $business_data['events'] = $business_events;
68
+ $server_data['events'] = $server_data;
69
+ $this->serverSideEventRequest = new \PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide\EventRequest($pixel_id, $server_data);
70
+ $this->businessDataEventRequest = new \PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI\EventRequest($page_id, $business_data);
71
+ }
72
+ /**
73
+ * Sets an array of Signal Event objects
74
+ * @param FacebookAds\Object\Signal\Event[] $events An array of Signal Event objects
75
+ * @return $this
76
+ */
77
+ public function setEvents($events)
78
+ {
79
+ $business_events = array();
80
+ $server_events = array();
81
+ foreach ($events as $event) {
82
+ \array_push($business_events, $event->getBusinessDataEvent());
83
+ \array_push($server_events, $event->getServerSideEvent());
84
+ }
85
+ $this->businessDataEventRequest->setEvents($business_events);
86
+ $this->serverSideEventRequest->setEvents($server_events);
87
+ return $this;
88
+ }
89
+ /**
90
+ * Sets code used to verify that your server events are received correctly by Facebook. Use this
91
+ * code to test your server events in the Test Events feature in Events Manager.
92
+ * See Test Events Tool
93
+ * (https://developers.facebook.com/docs/marketing-api/facebook-pixel/server-side-api/using-the-api#testEvents)
94
+ * for an example.
95
+ * @param string $test_event_code Code used to verify that your server events are received correctly by Facebook.
96
+ * Use this code to test your server events in the Test Events feature in Events Manager. See Test Events Tool
97
+ * (https://developers.facebook.com/docs/marketing-api/facebook-pixel/server-side-api/using-the-api#testEvents)
98
+ * for an example.
99
+ * @return $this
100
+ */
101
+ public function setTestEventCode($test_event_code)
102
+ {
103
+ $this->serverSideEventRequest->setTestEventCode($test_event_code);
104
+ return $this;
105
+ }
106
+ /**
107
+ * Sets Partner Agent, which specifies who is sending the event.
108
+ * @param string $partner_agent The partner agent who is sending the event
109
+ * @return $this
110
+ */
111
+ public function setPartnerAgent($partner_agent)
112
+ {
113
+ $this->businessDataEventRequest->setPartnerAgent($partner_agent);
114
+ $this->serverSideEventRequest->setPartnerAgent($partner_agent);
115
+ return $this;
116
+ }
117
+ /**
118
+ * Sets namespace_id, a scope used to resolve extern_id or Third-party ID.
119
+ * Can be another data set or data partner ID.
120
+ * @return $this
121
+ */
122
+ public function setNamespaceId($namespace_id)
123
+ {
124
+ $this->serverSideEventRequest->setNamespaceId($namespace_id);
125
+ return $this;
126
+ }
127
+ /**
128
+ * Sets upload_tag, a tag string added to track your Offline event uploads.
129
+ * @return $this
130
+ */
131
+ public function setUploadTag($upload_tag)
132
+ {
133
+ $this->serverSideEventRequest->setUploadTag($upload_tag);
134
+ return $this;
135
+ }
136
+ /**
137
+ * Sets upload_id, a unique id used to denote the current set being uploaded.
138
+ * @return $this
139
+ */
140
+ public function setUploadId($upload_id)
141
+ {
142
+ $this->serverSideEventRequest->setUploadId($upload_id);
143
+ return $this;
144
+ }
145
+ /**
146
+ * Sets upload_source, the origin/source of data for the dataset to be uploaded.
147
+ * @return $this
148
+ */
149
+ public function setUploadSource($upload_source)
150
+ {
151
+ $this->serverSideEventRequest->setUploadSource($upload_source);
152
+ return $this;
153
+ }
154
+ /**
155
+ * Execute the request
156
+ * @return array
157
+ */
158
+ public function execute()
159
+ {
160
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideEventRequest->execute(), $this->businessDataEventRequest->execute());
161
+ }
162
+ /**
163
+ * Gets an array of Server Event objects
164
+ * @return array
165
+ */
166
+ public function getEvents()
167
+ {
168
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideEvent->getEvents(), $this->businessDataEventRequest->getEvents());
169
+ }
170
+ /**
171
+ * Gets Partner Agent, which specifies who is sending the event.
172
+ * @return array
173
+ */
174
+ public function getPartnerAgent()
175
+ {
176
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideEvent->getPartnerAgent(), $this->businessDataEventRequest->getPartnerAgent());
177
+ }
178
+ /**
179
+ * Gets namespace_id, a scope used to resolve extern_id or Third-party ID.
180
+ * Can be another data set or data partner ID.
181
+ * @return array
182
+ */
183
+ public function getNamespaceId()
184
+ {
185
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideEvent->getNamespaceId(), null);
186
+ }
187
+ /**
188
+ * Gets upload_id, a unique id used to denote the current set being uploaded.
189
+ * @return array
190
+ */
191
+ public function getUploadId()
192
+ {
193
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideEvent->getUploadId(), null);
194
+ }
195
+ /**
196
+ * Gets code used to verify that your server events are received correctly by Facebook. Use this
197
+ * code to test your server events in the Test Events feature in Events Manager.
198
+ * See Test Events Tool
199
+ * (https://developers.facebook.com/docs/marketing-api/facebook-pixel/server-side-api/using-the-api#testEvents)
200
+ * for an example.
201
+ * @return array
202
+ */
203
+ public function getTestEventCode()
204
+ {
205
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideEvent->getTestEventCode(), null);
206
+ }
207
+ /**
208
+ * Gets upload_tag, a tag string added to track your Offline event uploads.
209
+ * @return array
210
+ */
211
+ public function getUploadTag()
212
+ {
213
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideEvent->getUploadTag(), null);
214
+ }
215
+ /**
216
+ * Gets upload_source, the origin/source of data for the dataset to be uploaded.
217
+ * @return array
218
+ */
219
+ public function getUploadSource()
220
+ {
221
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Signal\Util::constructResponse($this->serverSideEvent->getUploadSource(), null);
222
+ }
223
+ }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/UserData.php ADDED
@@ -0,0 +1,564 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
+ *
6
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
+ * use, copy, modify, and distribute this software in source code or binary
8
+ * form for use in connection with the web services and APIs provided by
9
+ * Facebook.
10
+ *
11
+ * As with any software that integrates with the Facebook platform, your use
12
+ * of this software is subject to the Facebook Developer Principles and
13
+ * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
+ * shall be included in all copies or substantial portions of the software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ * DEALINGS IN THE SOFTWARE.
23
+ *
24
+ */
25
+ namespace PYS_PRO_GLOBAL\FacebookAds\Object\Signal;
26
+
27
+ use PYS_PRO_GLOBAL\Util;
28
+ use PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI\UserData as BusinessDataUserData;
29
+ use PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide\UserData as ServerSideUserData;
30
+ /**
31
+ * UserData is a set of identifiers Facebook can use for targeted attribution.
32
+ *
33
+ * @category Class
34
+ */
35
+ class UserData
36
+ {
37
+ /**
38
+ * Associative array for storing property values for Business Data API
39
+ * @var BusinessDataUserData
40
+ */
41
+ protected $businessDataUserData = null;
42
+ /**
43
+ * Associative array for storing property values for Conversion API
44
+ * @var ServerSideUserData
45
+ */
46
+ protected $serverSideUserData = null;
47
+ /**
48
+ * Constructor
49
+ * @param mixed[] $data Associated array of property value initalizing the model
50
+ */
51
+ public function __construct(array $data = null)
52
+ {
53
+ $this->businessDataUserData = new \PYS_PRO_GLOBAL\FacebookAds\Object\BusinessDataAPI\UserData($data);
54
+ $this->serverSideUserData = new \PYS_PRO_GLOBAL\FacebookAds\Object\ServerSide\UserData($data);
55
+ }
56
+ /**
57
+ * Sets an email address, in lowercase.
58
+ *
59
+ * Example: joe@eg.com
60
+ * @param string $email An email address, in lowercase.
61
+ * @return $this
62
+ */
63
+ public function setEmail($email)
64
+ {
65
+ $this->businessDataUserData->setEmail($email);
66
+ $this->serverSideUserData->setEmail($email);
67
+ return $this;
68
+ }
69
+ /**
70
+ * Sets a phone number. Include only digits with countryCode code, area code, and number.
71
+ *
72
+ * Example: 16505551212
73
+ * @param string $phone A phone number. Include only digits with country code, area code, and number.
74
+ * @return $this
75
+ */
76
+ public function setPhone($phone)
77
+ {
78
+ $this->businessDataUserData->setPhone($phone);
79
+ $this->serverSideUserData->setPhone($phone);
80
+ return $this;
81
+ }
82
+ /**
83
+ * Sets Gender, in lowercase. Either f or m.
84
+ * @param FacebookAds\Object\ServerSide\Gender $gender Gender, in lowercase. Either f or m.
85
+ * @return $this
86
+ */
87
+ public function setGender($gender)
88
+ {
89
+ $this->serverSideUserData->setGender($gender);
90
+ return $this;
91
+ }
92
+ /**
93
+ * Sets a date of birth given as year, month, and day.
94
+ *
95
+ * Example: 19971226 for December 26, 1997.
96
+ * @param string $date_of_birth A date of birth given as year, month, and day.
97
+ * @return $this
98
+ */
99
+ public function setDateOfBirth($date_of_birth)
100
+ {
101
+ $this->businessDataUserData->setDateOfBirth($date_of_birth);
102
+ $this->serverSideUserData->setDateOfBirth($date_of_birth);
103
+ return $this;
104
+ }
105
+ /**
106
+ * Sets a last name in lowercase.
107
+ *
108
+ * Example: smith
109
+ * @param string $last_name A last name in lowercase.
110
+ * @return $this
111
+ */
112
+ public function setLastName($last_name)
113
+ {
114
+ $this->businessDataUserData->setLastName($last_name);
115
+ $this->serverSideUserData->setLastName($last_name);
116
+ return $this;
117
+ }
118
+ /**
119
+ * Sets a first name in lowercase.
120
+ *
121
+ * Example: joe
122
+ * @param string $first_name A first name in lowercase.
123
+ * @return $this
124
+ */
125
+ public function setFirstName($first_name)
126
+ {
127
+ $this->businessDataUserData->setFirstName($first_name);
128
+ $this->serverSideUserData->setFirstName($first_name);
129
+ return $this;
130
+ }
131
+ /**
132
+ * Sets a city in lowercase without spaces or punctuation.
133
+ *
134
+ * Example: menlopark
135
+ * @param string $city A city in lowercase without spaces or punctuation.
136
+ * @return $this
137
+ */
138
+ public function setCity($city)
139
+ {
140
+ $this->businessDataUserData->setCity($city);
141
+ $this->serverSideUserData->setCity($city);
142
+ return $this;
143
+ }
144
+ /**
145
+ * Sets a two-letter state code in lowercase.
146
+ *
147
+ * Example: ca
148
+ * @param string $state A two-letter state code in lowercase.
149
+ * @return $this
150
+ */
151
+ public function setState($state)
152
+ {
153
+ $this->businessDataUserData->setState($state);
154
+ $this->serverSideUserData->setState($state);
155
+ return $this;
156
+ }
157
+ /**
158
+ * Sets a two-letter country code in lowercase.
159
+ *
160
+ * Example: us
161
+ * @param string $country_code two-letter country code in lowercase.
162
+ * @return $this
163
+ */
164
+ public function setCountryCode($country_code)
165
+ {
166
+ $this->businessDataUserData->setCountryCode($country_code);
167
+ $this->serverSideUserData->setCountryCode($country_code);
168
+ return $this;
169
+ }
170
+ /**
171
+ * Sets a five-digit zip code.
172
+ *
173
+ * Example: 94035
174
+ * @param string $zip_code A five-digit zip code.
175
+ * @return $this
176
+ */
177
+ public function setZipCode($zip_code)
178
+ {
179
+ $this->businessDataUserData->setZipCode($zip_code);
180
+ $this->serverSideUserData->setZipCode($zip_code);
181
+ return $this;
182
+ }
183
+ /**
184
+ * Sets any unique ID from the advertiser, such as loyalty membership IDs, user IDs, and external
185
+ * cookie IDs. In the Offline Conversions API, this is known as extern_id. For more information,
186
+ * see Offline Conversions, Providing External IDs. If External ID is being sent via other
187
+ * channels, then it should be sent in the same format via the server-side API.
188
+ * @param string $external_id Any unique ID from the advertiser, such as loyalty membership IDs,
189
+ * user IDs, and external cookie IDs.
190
+ * @return $this
191
+ */
192
+ public function setExternalId($external_id)
193
+ {
194
+ $this->businessDataUserData->setExternalId($external_id);
195
+ $this->serverSideUserData->setExternalId($external_id);
196
+ return $this;
197
+ }
198
+ /**
199
+ * Sets IP address of the browser corresponding to the event.
200
+ * @param string $client_ip_address The IP address of the browser corresponding to the event.
201
+ * @return $this
202
+ */
203
+ public function setClientIpAddress($client_ip_address)
204
+ {
205
+ $this->serverSideUserData->setClientIpAddress($client_ip_address);
206
+ return $this;
207
+ }
208
+ /**
209
+ * Sets user agent for the browser corresponding to the event.
210
+ * @param string $client_user_agent The user agent for the browser corresponding to the event.
211
+ * @return $this
212
+ */
213
+ public function setClientUserAgent($client_user_agent)
214
+ {
215
+ $this->serverSideUserData->setClientUserAgent($client_user_agent);
216
+ return $this;
217
+ }
218
+ /**
219
+ * Sets Facebook click ID value stored in the _fbc browser cookie under your domain. See Managing
220
+ * fbc and fbp Parameters for how to get this value
221
+ * (https://developers.facebook.com/docs/marketing-api/facebook-pixel/server-side-api/parameters#fbc),
222
+ * or generate this value from a fbclid query parameter.
223
+ * @param string $fbc The Facebook click ID value stored in the _fbc browser cookie under your domain.
224
+ * @return $this
225
+ */
226
+ public function setFbc($fbc)
227
+ {
228
+ $this->serverSideUserData->setFbc($fbc);
229
+ return $this;
230
+ }
231
+ /**
232
+ * Sets Set Facebook browser ID value stored in the _fbp browser cookie under your domain. See Managing
233
+ * fbc and fbp Parameters for how to get this value
234
+ * (https://developers.facebook.com/docs/marketing-api/facebook-pixel/server-side-api/parameters#fbc),
235
+ * or generate this value from a fbclid query parameter.
236
+ * @param string $fbp The Facebook browser ID value stored in the _fbp browser cookie under your domain.
237
+ * @return $this
238
+ */
239
+ public function setFbp($fbp)
240
+ {
241
+ $this->serverSideUserData->setFbp($fbp);
242
+ return $this;
243
+ }
244
+ /**
245
+ * Sets subscription ID for the user in this transaction. This is similar to the order ID for an
246
+ * individual product.
247
+ * @param string $subscription_id The subscription ID for the user in this transaction.
248
+ * @return $this
249
+ */
250
+ public function setSubscriptionId($subscription_id)
251
+ {
252
+ $this->serverSideUserData->setSubscriptionId($subscription_id);
253
+ return $this;
254
+ }
255
+ /**
256
+ * Sets FbLogin ID for the user in this transaction.
257
+ * ID issued by Facebook when a person first logs into an instance of an app.
258
+ * This is also known as App-Scoped ID.
259
+ * @param string $fb_login_id The Fb_Login_Id for the user in this transaction.
260
+ * @return $this
261
+ */
262
+ public function setFbLoginId($fb_login_id)
263
+ {
264
+ $this->serverSideUserData->setFbLoginId($fb_login_id);
265
+ return $this;
266
+ }
267
+ /**
268
+ * Sets lead_id for the user in this transaction.
269
+ * A lead_id is associated with a lead generated by Facebook's Lead Ads.
270
+ * @param string $lead_id The lead_id for the user in this transaction.
271
+ * @return $this
272
+ */
273
+ public function setLeadId($lead_id)
274
+ {
275
+ $this->serverSideUserData->setLeadId($lead_id);
276
+ return $this;
277
+ }
278
+ /**
279
+ * Sets the first 5 letters of the first name.
280
+ * @param string $f5first The first 5 letters of the first name.
281
+ * @return $this
282
+ */
283
+ public function setF5first($f5first)
284
+ {
285
+ $this->serverSideUserData->setF5first($f5first);
286
+ return $this;
287
+ }
288
+ /**
289
+ * Sets the first 5 letters of the last name.
290
+ * @param string $f5last The first 5 letters of the last name.
291
+ * @return $this
292
+ */
293
+ public function setF5last($f5last)
294
+ {
295
+ $this->serverSideUserData->setF5last($f5last);
296
+ return $this;
297
+ }
298
+ /**
299
+ * Sets the first initial.
300
+ * @param string $fi The first initial.
301
+ * @return $this
302
+ */
303
+ public function setFi($fi)
304
+ {
305
+ $this->serverSideUserData->setFi($fi);
306
+ return $this;
307
+ }
308
+ /**
309
+ * Sets the date of birth day.
310
+ * @param string $dobd The date of birth day.
311
+ * @return $this
312
+ */
313
+ public function setDobd($dobd)
314
+ {
315
+ $this->serverSideUserData->setDobd($dobd);
316
+ return $this;
317
+ }
318
+ /**
319
+ * Sets the date of birth month.
320
+ * @param string $dobm The date of birth month.
321
+ * @return $this
322
+ */
323
+ public function setDobm($dobm)
324
+ {
325
+ $this->serverSideUserData->setDobm($dobm);
326
+ return $this;
327
+ }
328
+ /**
329
+ * Sets the date of birth year.
330
+ * @param string $doby The date of birth year.
331
+ * @return $this
332
+ */
333
+ public function setDoby($doby)
334
+ {
335
+ $this->serverSideUserData->setDoby($doby);
336
+ return $this;
337
+ }
338
+ /**
339
+ * Sets physical address.
340
+ * @param string $address The physical address.
341
+ * @return $this
342
+ */
343
+ public function setAddress($address)
344
+ {
345
+ $this->businessDataUserData->setAddress($address);
346
+ return $this;
347
+ }
348
+ /**
349
+ * Gets an email address, in lowercase.
350
+ * @return array
351
+ */
352
+ public function getEmail()
353
+ {
354
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getEmail(), $this->businessDataUserData->getEmail());
355
+ }
356
+ /**
357
+ * Gets a phone number
358
+ * @return array
359
+ */
360
+ public function getPhone()
361
+ {
362
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getPhone(), $this->businessDataUserData->getPhone());
363
+ }
364
+ /**
365
+ * Gets gender.
366
+ * @return array
367
+ */
368
+ public function getGender()
369
+ {
370
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getGender(), null);
371
+ }
372
+ /**
373
+ * Gets Date Of Birth.
374
+ * @return array
375
+ */
376
+ public function getDateOfBirth()
377
+ {
378
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getDateOfBirth(), $this->businessDataUserData->getDateOfBirth());
379
+ }
380
+ /**
381
+ * Gets Last Name.
382
+ * @return array
383
+ */
384
+ public function getLastName()
385
+ {
386
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getLastName(), $this->businessDataUserData->getLastName());
387
+ }
388
+ /**
389
+ * Gets First Name.
390
+ * @return array
391
+ */
392
+ public function getFirstName()
393
+ {
394
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getFirstName(), $this->businessDataUserData->getFirstName());
395
+ }
396
+ /**
397
+ * Gets city.
398
+ * @return array
399
+ */
400
+ public function getCity()
401
+ {
402
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getCity(), $this->businessDataUserData->getCity());
403
+ }
404
+ /**
405
+ * Gets state.
406
+ * @return array
407
+ */
408
+ public function getState()
409
+ {
410
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getState(), $this->businessDataUserData->getState());
411
+ }
412
+ /**
413
+ * Gets zip code
414
+ * @return array
415
+ */
416
+ public function getZipCode()
417
+ {
418
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getZipCode(), $this->businessDataUserData->getZipCode());
419
+ }
420
+ /**
421
+ * Gets country code.
422
+ * @return array
423
+ */
424
+ public function getCountryCode()
425
+ {
426
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getCountryCode(), $this->businessDataUserData->getCountryCode());
427
+ }
428
+ /**
429
+ * Gets Any unique ID from the advertiser, such as loyalty membership IDs, user IDs, and external cookie IDs.
430
+ * @return array
431
+ */
432
+ public function getExternalId()
433
+ {
434
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getExternalId(), $this->businessDataUserData->getExternalId());
435
+ }
436
+ /**
437
+ * Gets IP address of the browser corresponding to the event.
438
+ * @return array
439
+ */
440
+ public function getClientIpAddress()
441
+ {
442
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getClientIpAddress(), null);
443
+ }
444
+ /**
445
+ * Gets user agent for the browser corresponding to the event.
446
+ * @return array
447
+ */
448
+ public function getClientUserAgent()
449
+ {
450
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getClientUserAgent(), null);
451
+ }
452
+ /**
453
+ * Gets the Facebook click ID value stored in the _fbc browser cookie under your domain.
454
+ * @return array
455
+ */
456
+ public function getFbc()
457
+ {
458
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getFbc(), null);
459
+ }
460
+ /**
461
+ * Gets the Facebook browser ID value stored in the _fbp browser cookie under your domain.
462
+ * @return array
463
+ */
464
+ public function getFbp()
465
+ {
466
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getFbp(), null);
467
+ }
468
+ /**
469
+ * Gets the subscription ID for the user in this transaction.
470
+ * @return array
471
+ */
472
+ public function getSubscriptionId()
473
+ {
474
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getSubscriptionId(), null);
475
+ }
476
+ /**
477
+ * Gets the FbLogin ID for the user in this transaction.
478
+ * @return array
479
+ */
480
+ public function getFbLoginId()
481
+ {
482
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getFbLoginId(), null);
483
+ }
484
+ /**
485
+ * Gets the lead_id for the user in this transaction.
486
+ * @return array
487
+ */
488
+ public function getLeadId()
489
+ {
490
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getLeadId(), null);
491
+ }
492
+ /**
493
+ * Gets the first 5 letters of the first name.
494
+ * @return array
495
+ */
496
+ public function getF5first()
497
+ {
498
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getF5first(), null);
499
+ }
500
+ /**
501
+ * Gets the first 5 letters of the last name.
502
+ * @return array
503
+ */
504
+ public function getF5last()
505
+ {
506
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getF5last(), null);
507
+ }
508
+ /**
509
+ * Gets the first initial.
510
+ * @return array
511
+ */
512
+ public function getFi()
513
+ {
514
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getFi(), null);
515
+ }
516
+ /**
517
+ * Gets the date of birth day.
518
+ * @return array
519
+ */
520
+ public function getDobd()
521
+ {
522
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getDobd(), null);
523
+ }
524
+ /**
525
+ * Gets the date of birth month.
526
+ * @return array
527
+ */
528
+ public function getDobm()
529
+ {
530
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getDobm(), null);
531
+ }
532
+ /**
533
+ * Gets the date of birth year.
534
+ * @return array
535
+ */
536
+ public function getDoby()
537
+ {
538
+ return \PYS_PRO_GLOBAL\Util::constructResponse($this->serverSideUserData->getDoby(), null);
539
+ }
540
+ /**
541
+ * Gets physical address
542
+ * @return array
543
+ */
544
+ public function getAddress()
545
+ {
546
+ return \PYS_PRO_GLOBAL\Util::constructResponse(null, $this->businessDataUserData->getAddress());
547
+ }
548
+ /**
549
+ * Gets user data for Business Data API
550
+ * @return BusinessDataUserData
551
+ */
552
+ public function getBusinessDataUserData()
553
+ {
554
+ return $this->businessDataUserData;
555
+ }
556
+ /**
557
+ * Gets user data for Conversion API
558
+ * @return ServerSideUserData
559
+ */
560
+ public function getServerSideUserData()
561
+ {
562
+ return $this->serverSideUserData;
563
+ }
564
+ }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/Util.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
+ *
6
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
+ * use, copy, modify, and distribute this software in source code or binary
8
+ * form for use in connection with the web services and APIs provided by
9
+ * Facebook.
10
+ *
11
+ * As with any software that integrates with the Facebook platform, your use
12
+ * of this software is subject to the Facebook Developer Principles and
13
+ * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
+ * shall be included in all copies or substantial portions of the software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ * DEALINGS IN THE SOFTWARE.
23
+ *
24
+ */
25
+ namespace PYS_PRO_GLOBAL\FacebookAds\Object\Signal;
26
+
27
+ class Util
28
+ {
29
+ /**
30
+ * @param capi_data conversion api data
31
+ * @param bdapi_data business data api data
32
+ * @return array
33
+ */
34
+ public static function constructResponse($capi_data, $bdapi_data)
35
+ {
36
+ $response = array();
37
+ $response['business_data_api'] = $bdapi_data;
38
+ $response['conversion_api'] = $capi_data;
39
+ return $response;
40
+ }
41
+ }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/User.php CHANGED
@@ -282,16 +282,6 @@ class User extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
282
  $request->addFields($fields);
283
  return $pending ? $request : $request->execute();
284
  }
285
- public function getCustomLabels(array $fields = array(), array $params = array(), $pending = \false)
286
- {
287
- $this->assureId();
288
- $param_types = array();
289
- $enums = array();
290
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/custom_labels', new \PYS_PRO_GLOBAL\FacebookAds\Object\PageUserMessageThreadLabel(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\PageUserMessageThreadLabel::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
291
- $request->addParams($params);
292
- $request->addFields($fields);
293
- return $pending ? $request : $request->execute();
294
- }
295
  public function getEvents(array $fields = array(), array $params = array(), $pending = \false)
296
  {
297
  $this->assureId();
@@ -472,12 +462,12 @@ class User extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
472
  $request->addFields($fields);
473
  return $pending ? $request : $request->execute();
474
  }
475
- public function getOwnedProductCatalogs(array $fields = array(), array $params = array(), $pending = \false)
476
  {
477
  $this->assureId();
478
  $param_types = array();
479
  $enums = array();
480
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/owned_product_catalogs', new \PYS_PRO_GLOBAL\FacebookAds\Object\ProductCatalog(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\ProductCatalog::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
481
  $request->addParams($params);
482
  $request->addFields($fields);
483
  return $pending ? $request : $request->execute();
@@ -542,6 +532,16 @@ class User extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
542
  $request->addFields($fields);
543
  return $pending ? $request : $request->execute();
544
  }
 
 
 
 
 
 
 
 
 
 
545
  public function getRichMediaDocuments(array $fields = array(), array $params = array(), $pending = \false)
546
  {
547
  $this->assureId();
282
  $request->addFields($fields);
283
  return $pending ? $request : $request->execute();
284
  }
 
 
 
 
 
 
 
 
 
 
285
  public function getEvents(array $fields = array(), array $params = array(), $pending = \false)
286
  {
287
  $this->assureId();
462
  $request->addFields($fields);
463
  return $pending ? $request : $request->execute();
464
  }
465
+ public function getPaymentTransactions(array $fields = array(), array $params = array(), $pending = \false)
466
  {
467
  $this->assureId();
468
  $param_types = array();
469
  $enums = array();
470
+ $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/payment_transactions', new \PYS_PRO_GLOBAL\FacebookAds\Object\PaymentEnginePayment(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\PaymentEnginePayment::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
471
  $request->addParams($params);
472
  $request->addFields($fields);
473
  return $pending ? $request : $request->execute();
532
  $request->addFields($fields);
533
  return $pending ? $request : $request->execute();
534
  }
535
+ public function getPosts(array $fields = array(), array $params = array(), $pending = \false)
536
+ {
537
+ $this->assureId();
538
+ $param_types = array('include_hidden' => 'bool', 'q' => 'string', 'show_expired' => 'bool', 'since' => 'datetime', 'until' => 'datetime', 'with' => 'string');
539
+ $enums = array();
540
+ $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/posts', new \PYS_PRO_GLOBAL\FacebookAds\Object\Post(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\Post::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
541
+ $request->addParams($params);
542
+ $request->addFields($fields);
543
+ return $pending ? $request : $request->execute();
544
+ }
545
  public function getRichMediaDocuments(array $fields = array(), array $params = array(), $pending = \false)
546
  {
547
  $this->assureId();
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountDeliveryEstimateOptimizationGoalValues.php CHANGED
@@ -54,6 +54,7 @@ class AdAccountDeliveryEstimateOptimizationGoalValues extends \PYS_PRO_GLOBAL\Fa
54
  const PAGE_ENGAGEMENT = 'PAGE_ENGAGEMENT';
55
  const PAGE_LIKES = 'PAGE_LIKES';
56
  const POST_ENGAGEMENT = 'POST_ENGAGEMENT';
 
57
  const QUALITY_LEAD = 'QUALITY_LEAD';
58
  const REACH = 'REACH';
59
  const REPLIES = 'REPLIES';
54
  const PAGE_ENGAGEMENT = 'PAGE_ENGAGEMENT';
55
  const PAGE_LIKES = 'PAGE_LIKES';
56
  const POST_ENGAGEMENT = 'POST_ENGAGEMENT';
57
+ const QUALITY_CALL = 'QUALITY_CALL';
58
  const QUALITY_LEAD = 'QUALITY_LEAD';
59
  const REACH = 'REACH';
60
  const REPLIES = 'REPLIES';
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountMatchedSearchApplicationsEdgeDataAppStoreValues.php CHANGED
@@ -41,6 +41,7 @@ class AdAccountMatchedSearchApplicationsEdgeDataAppStoreValues extends \PYS_PRO_
41
  const FB_ANDROID_STORE = 'FB_ANDROID_STORE';
42
  const FB_CANVAS = 'FB_CANVAS';
43
  const FB_GAMEROOM = 'FB_GAMEROOM';
 
44
  const GOOGLE_PLAY = 'GOOGLE_PLAY';
45
  const INSTANT_GAME = 'INSTANT_GAME';
46
  const ITUNES = 'ITUNES';
41
  const FB_ANDROID_STORE = 'FB_ANDROID_STORE';
42
  const FB_CANVAS = 'FB_CANVAS';
43
  const FB_GAMEROOM = 'FB_GAMEROOM';
44
+ const GALAXY_STORE = 'GALAXY_STORE';
45
  const GOOGLE_PLAY = 'GOOGLE_PLAY';
46
  const INSTANT_GAME = 'INSTANT_GAME';
47
  const ITUNES = 'ITUNES';
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountPermittedTasksValues.php CHANGED
@@ -38,5 +38,6 @@ class AdAccountPermittedTasksValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\Abs
38
  {
39
  const ADVERTISE = 'ADVERTISE';
40
  const ANALYZE = 'ANALYZE';
 
41
  const MANAGE = 'MANAGE';
42
  }
38
  {
39
  const ADVERTISE = 'ADVERTISE';
40
  const ANALYZE = 'ANALYZE';
41
+ const DRAFT = 'DRAFT';
42
  const MANAGE = 'MANAGE';
43
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountTargetingUnifiedAppStoreValues.php CHANGED
@@ -41,6 +41,7 @@ class AdAccountTargetingUnifiedAppStoreValues extends \PYS_PRO_GLOBAL\FacebookAd
41
  const FB_ANDROID_STORE = 'fb_android_store';
42
  const FB_CANVAS = 'fb_canvas';
43
  const FB_GAMEROOM = 'fb_gameroom';
 
44
  const GOOGLE_PLAY = 'google_play';
45
  const INSTANT_GAME = 'instant_game';
46
  const ITUNES = 'itunes';
41
  const FB_ANDROID_STORE = 'fb_android_store';
42
  const FB_CANVAS = 'fb_canvas';
43
  const FB_GAMEROOM = 'fb_gameroom';
44
+ const GALAXY_STORE = 'galaxy_store';
45
  const GOOGLE_PLAY = 'google_play';
46
  const INSTANT_GAME = 'instant_game';
47
  const ITUNES = 'itunes';
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountTasksValues.php CHANGED
@@ -38,5 +38,6 @@ class AdAccountTasksValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
38
  {
39
  const ADVERTISE = 'ADVERTISE';
40
  const ANALYZE = 'ANALYZE';
 
41
  const MANAGE = 'MANAGE';
42
  }
38
  {
39
  const ADVERTISE = 'ADVERTISE';
40
  const ANALYZE = 'ANALYZE';
41
+ const DRAFT = 'DRAFT';
42
  const MANAGE = 'MANAGE';
43
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAssetFeedSpecCallToActionTypesValues.php CHANGED
@@ -94,6 +94,7 @@ class AdAssetFeedSpecCallToActionTypesValues extends \PYS_PRO_GLOBAL\FacebookAds
94
  const USE_APP = 'USE_APP';
95
  const USE_MOBILE_APP = 'USE_MOBILE_APP';
96
  const VIDEO_ANNOTATION = 'VIDEO_ANNOTATION';
 
97
  const VISIT_PAGES_FEED = 'VISIT_PAGES_FEED';
98
  const WATCH_MORE = 'WATCH_MORE';
99
  const WATCH_VIDEO = 'WATCH_VIDEO';
94
  const USE_APP = 'USE_APP';
95
  const USE_MOBILE_APP = 'USE_MOBILE_APP';
96
  const VIDEO_ANNOTATION = 'VIDEO_ANNOTATION';
97
+ const VIDEO_CALL = 'VIDEO_CALL';
98
  const VISIT_PAGES_FEED = 'VISIT_PAGES_FEED';
99
  const WATCH_MORE = 'WATCH_MORE';
100
  const WATCH_VIDEO = 'WATCH_VIDEO';
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCampaignActivityBidStrategyNewValues.php CHANGED
@@ -39,5 +39,4 @@ class AdCampaignActivityBidStrategyNewValues extends \PYS_PRO_GLOBAL\FacebookAds
39
  const COST_CAP = 'COST_CAP';
40
  const LOWEST_COST_WITHOUT_CAP = 'LOWEST_COST_WITHOUT_CAP';
41
  const LOWEST_COST_WITH_BID_CAP = 'LOWEST_COST_WITH_BID_CAP';
42
- const TARGET_COST = 'TARGET_COST';
43
  }
39
  const COST_CAP = 'COST_CAP';
40
  const LOWEST_COST_WITHOUT_CAP = 'LOWEST_COST_WITHOUT_CAP';
41
  const LOWEST_COST_WITH_BID_CAP = 'LOWEST_COST_WITH_BID_CAP';
 
42
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCampaignActivityBidStrategyOldValues.php CHANGED
@@ -39,5 +39,4 @@ class AdCampaignActivityBidStrategyOldValues extends \PYS_PRO_GLOBAL\FacebookAds
39
  const COST_CAP = 'COST_CAP';
40
  const LOWEST_COST_WITHOUT_CAP = 'LOWEST_COST_WITHOUT_CAP';
41
  const LOWEST_COST_WITH_BID_CAP = 'LOWEST_COST_WITH_BID_CAP';
42
- const TARGET_COST = 'TARGET_COST';
43
  }
39
  const COST_CAP = 'COST_CAP';
40
  const LOWEST_COST_WITHOUT_CAP = 'LOWEST_COST_WITHOUT_CAP';
41
  const LOWEST_COST_WITH_BID_CAP = 'LOWEST_COST_WITH_BID_CAP';
 
42
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCampaignActivityOptimizationGoalNewValues.php CHANGED
@@ -54,6 +54,7 @@ class AdCampaignActivityOptimizationGoalNewValues extends \PYS_PRO_GLOBAL\Facebo
54
  const PAGE_ENGAGEMENT = 'PAGE_ENGAGEMENT';
55
  const PAGE_LIKES = 'PAGE_LIKES';
56
  const POST_ENGAGEMENT = 'POST_ENGAGEMENT';
 
57
  const QUALITY_LEAD = 'QUALITY_LEAD';
58
  const REACH = 'REACH';
59
  const REPLIES = 'REPLIES';
54
  const PAGE_ENGAGEMENT = 'PAGE_ENGAGEMENT';
55
  const PAGE_LIKES = 'PAGE_LIKES';
56
  const POST_ENGAGEMENT = 'POST_ENGAGEMENT';
57
+ const QUALITY_CALL = 'QUALITY_CALL';
58
  const QUALITY_LEAD = 'QUALITY_LEAD';
59
  const REACH = 'REACH';
60
  const REPLIES = 'REPLIES';
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCampaignActivityOptimizationGoalOldValues.php CHANGED
@@ -54,6 +54,7 @@ class AdCampaignActivityOptimizationGoalOldValues extends \PYS_PRO_GLOBAL\Facebo
54
  const PAGE_ENGAGEMENT = 'PAGE_ENGAGEMENT';
55
  const PAGE_LIKES = 'PAGE_LIKES';
56
  const POST_ENGAGEMENT = 'POST_ENGAGEMENT';
 
57
  const QUALITY_LEAD = 'QUALITY_LEAD';
58
  const REACH = 'REACH';
59
  const REPLIES = 'REPLIES';
54
  const PAGE_ENGAGEMENT = 'PAGE_ENGAGEMENT';
55
  const PAGE_LIKES = 'PAGE_LIKES';
56
  const POST_ENGAGEMENT = 'POST_ENGAGEMENT';
57
+ const QUALITY_CALL = 'QUALITY_CALL';
58
  const QUALITY_LEAD = 'QUALITY_LEAD';
59
  const REACH = 'REACH';
60
  const REPLIES = 'REPLIES';
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCampaignDeliveryEstimateOptimizationGoalValues.php CHANGED
@@ -54,6 +54,7 @@ class AdCampaignDeliveryEstimateOptimizationGoalValues extends \PYS_PRO_GLOBAL\F
54
  const PAGE_ENGAGEMENT = 'PAGE_ENGAGEMENT';
55
  const PAGE_LIKES = 'PAGE_LIKES';
56
  const POST_ENGAGEMENT = 'POST_ENGAGEMENT';
 
57
  const QUALITY_LEAD = 'QUALITY_LEAD';
58
  const REACH = 'REACH';
59
  const REPLIES = 'REPLIES';
54
  const PAGE_ENGAGEMENT = 'PAGE_ENGAGEMENT';
55
  const PAGE_LIKES = 'PAGE_LIKES';
56
  const POST_ENGAGEMENT = 'POST_ENGAGEMENT';
57
+ const QUALITY_CALL = 'QUALITY_CALL';
58
  const QUALITY_LEAD = 'QUALITY_LEAD';
59
  const REACH = 'REACH';
60
  const REPLIES = 'REPLIES';
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCreativeCallToActionTypeValues.php CHANGED
@@ -94,6 +94,7 @@ class AdCreativeCallToActionTypeValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\
94
  const USE_APP = 'USE_APP';
95
  const USE_MOBILE_APP = 'USE_MOBILE_APP';
96
  const VIDEO_ANNOTATION = 'VIDEO_ANNOTATION';
 
97
  const VISIT_PAGES_FEED = 'VISIT_PAGES_FEED';
98
  const WATCH_MORE = 'WATCH_MORE';
99
  const WATCH_VIDEO = 'WATCH_VIDEO';
94
  const USE_APP = 'USE_APP';
95
  const USE_MOBILE_APP = 'USE_MOBILE_APP';
96
  const VIDEO_ANNOTATION = 'VIDEO_ANNOTATION';
97
+ const VIDEO_CALL = 'VIDEO_CALL';
98
  const VISIT_PAGES_FEED = 'VISIT_PAGES_FEED';
99
  const WATCH_MORE = 'WATCH_MORE';
100
  const WATCH_VIDEO = 'WATCH_VIDEO';
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCreativeLinkDataCallToActionTypeValues.php CHANGED
@@ -94,6 +94,7 @@ class AdCreativeLinkDataCallToActionTypeValues extends \PYS_PRO_GLOBAL\FacebookA
94
  const USE_APP = 'USE_APP';
95
  const USE_MOBILE_APP = 'USE_MOBILE_APP';
96
  const VIDEO_ANNOTATION = 'VIDEO_ANNOTATION';
 
97
  const VISIT_PAGES_FEED = 'VISIT_PAGES_FEED';
98
  const WATCH_MORE = 'WATCH_MORE';
99
  const WATCH_VIDEO = 'WATCH_VIDEO';
94
  const USE_APP = 'USE_APP';
95
  const USE_MOBILE_APP = 'USE_MOBILE_APP';
96
  const VIDEO_ANNOTATION = 'VIDEO_ANNOTATION';
97
+ const VIDEO_CALL = 'VIDEO_CALL';
98
  const VISIT_PAGES_FEED = 'VISIT_PAGES_FEED';
99
  const WATCH_MORE = 'WATCH_MORE';
100
  const WATCH_VIDEO = 'WATCH_VIDEO';
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdSetBidStrategyValues.php CHANGED
@@ -39,5 +39,4 @@ class AdSetBidStrategyValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEn
39
  const COST_CAP = 'COST_CAP';
40
  const LOWEST_COST_WITHOUT_CAP = 'LOWEST_COST_WITHOUT_CAP';
41
  const LOWEST_COST_WITH_BID_CAP = 'LOWEST_COST_WITH_BID_CAP';
42
- const TARGET_COST = 'TARGET_COST';
43
  }
39
  const COST_CAP = 'COST_CAP';
40
  const LOWEST_COST_WITHOUT_CAP = 'LOWEST_COST_WITHOUT_CAP';
41
  const LOWEST_COST_WITH_BID_CAP = 'LOWEST_COST_WITH_BID_CAP';
 
42
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdSetOptimizationGoalValues.php CHANGED
@@ -54,6 +54,7 @@ class AdSetOptimizationGoalValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\Abstr
54
  const PAGE_ENGAGEMENT = 'PAGE_ENGAGEMENT';
55
  const PAGE_LIKES = 'PAGE_LIKES';
56
  const POST_ENGAGEMENT = 'POST_ENGAGEMENT';
 
57
  const QUALITY_LEAD = 'QUALITY_LEAD';
58
  const REACH = 'REACH';
59
  const REPLIES = 'REPLIES';
54
  const PAGE_ENGAGEMENT = 'PAGE_ENGAGEMENT';
55
  const PAGE_LIKES = 'PAGE_LIKES';
56
  const POST_ENGAGEMENT = 'POST_ENGAGEMENT';
57
+ const QUALITY_CALL = 'QUALITY_CALL';
58
  const QUALITY_LEAD = 'QUALITY_LEAD';
59
  const REACH = 'REACH';
60
  const REPLIES = 'REPLIES';
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdVideoContainerTypeValues.php CHANGED
@@ -73,6 +73,7 @@ class AdVideoContainerTypeValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\Abstra
73
  const EVENT_TOUR = 'EVENT_TOUR';
74
  const FACECAST_DVR = 'FACECAST_DVR';
75
  const FB_SHORTS = 'FB_SHORTS';
 
76
  const FUNDRAISER_COVER_VIDEO = 'FUNDRAISER_COVER_VIDEO';
77
  const GAME_CLIP = 'GAME_CLIP';
78
  const GAMING_UPDATE_VIDEO = 'GAMING_UPDATE_VIDEO';
73
  const EVENT_TOUR = 'EVENT_TOUR';
74
  const FACECAST_DVR = 'FACECAST_DVR';
75
  const FB_SHORTS = 'FB_SHORTS';
76
+ const FB_SHORTS_POST = 'FB_SHORTS_POST';
77
  const FUNDRAISER_COVER_VIDEO = 'FUNDRAISER_COVER_VIDEO';
78
  const GAME_CLIP = 'GAME_CLIP';
79
  const GAMING_UPDATE_VIDEO = 'GAMING_UPDATE_VIDEO';
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/ApplicationSupportedPlatformsValues.php CHANGED
@@ -45,6 +45,7 @@ class ApplicationSupportedPlatformsValues extends \PYS_PRO_GLOBAL\FacebookAds\En
45
  const IPHONE = 'IPHONE';
46
  const MOBILE_WEB = 'MOBILE_WEB';
47
  const OCULUS = 'OCULUS';
 
48
  const SUPPLEMENTARY_IMAGES = 'SUPPLEMENTARY_IMAGES';
49
  const WEB = 'WEB';
50
  const WINDOWS = 'WINDOWS';
45
  const IPHONE = 'IPHONE';
46
  const MOBILE_WEB = 'MOBILE_WEB';
47
  const OCULUS = 'OCULUS';
48
+ const SAMSUNG = 'SAMSUNG';
49
  const SUPPLEMENTARY_IMAGES = 'SUPPLEMENTARY_IMAGES';
50
  const WEB = 'WEB';
51
  const WINDOWS = 'WINDOWS';
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/BusinessAssetGroupAdaccountTasksValues.php CHANGED
@@ -38,5 +38,6 @@ class BusinessAssetGroupAdaccountTasksValues extends \PYS_PRO_GLOBAL\FacebookAds
38
  {
39
  const ADVERTISE = 'ADVERTISE';
40
  const ANALYZE = 'ANALYZE';
 
41
  const MANAGE = 'MANAGE';
42
  }
38
  {
39
  const ADVERTISE = 'ADVERTISE';
40
  const ANALYZE = 'ANALYZE';
41
+ const DRAFT = 'DRAFT';
42
  const MANAGE = 'MANAGE';
43
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/BusinessPermittedTasksValues.php CHANGED
@@ -38,5 +38,6 @@ class BusinessPermittedTasksValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\Abst
38
  {
39
  const ADVERTISE = 'ADVERTISE';
40
  const ANALYZE = 'ANALYZE';
 
41
  const MANAGE = 'MANAGE';
42
  }
38
  {
39
  const ADVERTISE = 'ADVERTISE';
40
  const ANALYZE = 'ANALYZE';
41
+ const DRAFT = 'DRAFT';
42
  const MANAGE = 'MANAGE';
43
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/CampaignBidStrategyValues.php CHANGED
@@ -39,5 +39,4 @@ class CampaignBidStrategyValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\Abstrac
39
  const COST_CAP = 'COST_CAP';
40
  const LOWEST_COST_WITHOUT_CAP = 'LOWEST_COST_WITHOUT_CAP';
41
  const LOWEST_COST_WITH_BID_CAP = 'LOWEST_COST_WITH_BID_CAP';
42
- const TARGET_COST = 'TARGET_COST';
43
  }
39
  const COST_CAP = 'COST_CAP';
40
  const LOWEST_COST_WITHOUT_CAP = 'LOWEST_COST_WITHOUT_CAP';
41
  const LOWEST_COST_WITH_BID_CAP = 'LOWEST_COST_WITH_BID_CAP';
 
42
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/GroupGroupTypeValues.php CHANGED
@@ -45,6 +45,7 @@ class GroupGroupTypeValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
45
  const DEALS = 'DEALS';
46
  const EPHEMERAL = 'EPHEMERAL';
47
  const EVENT_PLANNING = 'EVENT_PLANNING';
 
48
  const FAMILY = 'FAMILY';
49
  const FITNESS = 'FITNESS';
50
  const FOR_SALE = 'FOR_SALE';
45
  const DEALS = 'DEALS';
46
  const EPHEMERAL = 'EPHEMERAL';
47
  const EVENT_PLANNING = 'EVENT_PLANNING';
48
+ const FAITH = 'FAITH';
49
  const FAMILY = 'FAMILY';
50
  const FITNESS = 'FITNESS';
51
  const FOR_SALE = 'FOR_SALE';
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/GroupPurposeValues.php CHANGED
@@ -45,6 +45,7 @@ class GroupPurposeValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
45
  const DEALS = 'DEALS';
46
  const EPHEMERAL = 'EPHEMERAL';
47
  const EVENT_PLANNING = 'EVENT_PLANNING';
 
48
  const FAMILY = 'FAMILY';
49
  const FITNESS = 'FITNESS';
50
  const FOR_SALE = 'FOR_SALE';
45
  const DEALS = 'DEALS';
46
  const EPHEMERAL = 'EPHEMERAL';
47
  const EVENT_PLANNING = 'EVENT_PLANNING';
48
+ const FAITH = 'FAITH';
49
  const FAMILY = 'FAMILY';
50
  const FITNESS = 'FITNESS';
51
  const FOR_SALE = 'FOR_SALE';
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/LiveVideoBroadcastStatusValues.php CHANGED
@@ -36,13 +36,13 @@ use PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum;
36
  */
37
  class LiveVideoBroadcastStatusValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
38
  {
39
- const LIVE = 'live';
40
- const LIVE_STOPPED = 'live_stopped';
41
- const PROCESSING = 'processing';
42
- const SCHEDULED_CANCELED = 'scheduled_canceled';
43
- const SCHEDULED_EXPIRED = 'scheduled_expired';
44
- const SCHEDULED_LIVE = 'scheduled_live';
45
- const SCHEDULED_UNPUBLISHED = 'scheduled_unpublished';
46
- const UNPUBLISHED = 'unpublished';
47
- const VOD = 'vod';
48
  }
36
  */
37
  class LiveVideoBroadcastStatusValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
38
  {
39
+ const LIVE = 'LIVE';
40
+ const LIVE_STOPPED = 'LIVE_STOPPED';
41
+ const PROCESSING = 'PROCESSING';
42
+ const SCHEDULED_CANCELED = 'SCHEDULED_CANCELED';
43
+ const SCHEDULED_EXPIRED = 'SCHEDULED_EXPIRED';
44
+ const SCHEDULED_LIVE = 'SCHEDULED_LIVE';
45
+ const SCHEDULED_UNPUBLISHED = 'SCHEDULED_UNPUBLISHED';
46
+ const UNPUBLISHED = 'UNPUBLISHED';
47
+ const VOD = 'VOD';
48
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PaymentEnginePaymentReasonValues.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
5
+ *
6
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to
7
+ * use, copy, modify, and distribute this software in source code or binary
8
+ * form for use in connection with the web services and APIs provided by
9
+ * Facebook.
10
+ *
11
+ * As with any software that integrates with the Facebook platform, your use
12
+ * of this software is subject to the Facebook Developer Principles and
13
+ * Policies [http://developers.facebook.com/policy/]. This copyright notice
14
+ * shall be included in all copies or substantial portions of the software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ * DEALINGS IN THE SOFTWARE.
23
+ *
24
+ */
25
+ namespace PYS_PRO_GLOBAL\FacebookAds\Object\Values;
26
+
27
+ use PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum;
28
+ /**
29
+ * This class is auto-generated.
30
+ *
31
+ * For any issues or feature requests related to this class, please let us know
32
+ * on github and we'll fix in our codegen framework. We'll not be able to accept
33
+ * pull request for this class.
34
+ *
35
+ * @method static PaymentEnginePaymentReasonValues getInstance()
36
+ */
37
+ class PaymentEnginePaymentReasonValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
38
+ {
39
+ const BANNED_USER = 'BANNED_USER';
40
+ const DENIED_REFUND = 'DENIED_REFUND';
41
+ const GRANTED_REPLACEMENT_ITEM = 'GRANTED_REPLACEMENT_ITEM';
42
+ }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/TargetingDevicePlatformsValues.php CHANGED
@@ -36,7 +36,6 @@ use PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum;
36
  */
37
  class TargetingDevicePlatformsValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
38
  {
39
- const CONNECTED_TV = 'connected_tv';
40
  const DESKTOP = 'desktop';
41
  const MOBILE = 'mobile';
42
  }
36
  */
37
  class TargetingDevicePlatformsValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
38
  {
 
39
  const DESKTOP = 'desktop';
40
  const MOBILE = 'mobile';
41
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/TargetingEffectiveDevicePlatformsValues.php CHANGED
@@ -36,7 +36,6 @@ use PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum;
36
  */
37
  class TargetingEffectiveDevicePlatformsValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
38
  {
39
- const CONNECTED_TV = 'connected_tv';
40
  const DESKTOP = 'desktop';
41
  const MOBILE = 'mobile';
42
  }
36
  */
37
  class TargetingEffectiveDevicePlatformsValues extends \PYS_PRO_GLOBAL\FacebookAds\Enum\AbstractEnum
38
  {
 
39
  const DESKTOP = 'desktop';
40
  const MOBILE = 'mobile';
41
  }
vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/{AdAccountCreationRequest.php → WhatsAppBusinessProfile.php} RENAMED
@@ -28,7 +28,7 @@ use PYS_PRO_GLOBAL\FacebookAds\ApiRequest;
28
  use PYS_PRO_GLOBAL\FacebookAds\Cursor;
29
  use PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface;
30
  use PYS_PRO_GLOBAL\FacebookAds\TypeChecker;
31
- use PYS_PRO_GLOBAL\FacebookAds\Object\Fields\AdAccountCreationRequestFields;
32
  /**
33
  * This class is auto-generated.
34
  *
@@ -37,36 +37,36 @@ use PYS_PRO_GLOBAL\FacebookAds\Object\Fields\AdAccountCreationRequestFields;
37
  * pull request for this class.
38
  *
39
  */
40
- class AdAccountCreationRequest extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
41
  {
42
  /**
43
- * @return AdAccountCreationRequestFields
44
  */
45
  public static function getFieldsEnum()
46
  {
47
- return \PYS_PRO_GLOBAL\FacebookAds\Object\Fields\AdAccountCreationRequestFields::getInstance();
48
  }
49
  protected static function getReferencedEnums()
50
  {
51
  $ref_enums = array();
52
  return $ref_enums;
53
  }
54
- public function getAdAccounts(array $fields = array(), array $params = array(), $pending = \false)
55
  {
56
  $this->assureId();
57
  $param_types = array();
58
  $enums = array();
59
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/adaccounts', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdAccount(), 'EDGE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdAccount::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
60
  $request->addParams($params);
61
  $request->addFields($fields);
62
  return $pending ? $request : $request->execute();
63
  }
64
- public function getSelf(array $fields = array(), array $params = array(), $pending = \false)
65
  {
66
  $this->assureId();
67
  $param_types = array();
68
  $enums = array();
69
- $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/', new \PYS_PRO_GLOBAL\FacebookAds\Object\AdAccountCreationRequest(), 'NODE', \PYS_PRO_GLOBAL\FacebookAds\Object\AdAccountCreationRequest::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
70
  $request->addParams($params);
71
  $request->addFields($fields);
72
  return $pending ? $request : $request->execute();
28
  use PYS_PRO_GLOBAL\FacebookAds\Cursor;
29
  use PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface;
30
  use PYS_PRO_GLOBAL\FacebookAds\TypeChecker;
31
+ use PYS_PRO_GLOBAL\FacebookAds\Object\Fields\WhatsAppBusinessProfileFields;
32
  /**
33
  * This class is auto-generated.
34
  *
37
  * pull request for this class.
38
  *
39
  */
40
+ class WhatsAppBusinessProfile extends \PYS_PRO_GLOBAL\FacebookAds\Object\AbstractCrudObject
41
  {
42
  /**
43
+ * @return WhatsAppBusinessProfileFields
44
  */
45
  public static function getFieldsEnum()
46
  {
47
+ return \PYS_PRO_GLOBAL\FacebookAds\Object\Fields\WhatsAppBusinessProfileFields::getInstance();
48
  }
49
  protected static function getReferencedEnums()
50
  {
51
  $ref_enums = array();
52
  return $ref_enums;
53
  }
54
+ public function getSelf(array $fields = array(), array $params = array(), $pending = \false)
55
  {
56
  $this->assureId();
57
  $param_types = array();
58
  $enums = array();
59
+ $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_GET, '/', new \PYS_PRO_GLOBAL\FacebookAds\Object\WhatsAppBusinessProfile(), 'NODE', \PYS_PRO_GLOBAL\FacebookAds\Object\WhatsAppBusinessProfile::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
60
  $request->addParams($params);
61
  $request->addFields($fields);
62
  return $pending ? $request : $request->execute();
63
  }
64
+ public function updateSelf(array $fields = array(), array $params = array(), $pending = \false)
65
  {
66
  $this->assureId();
67
  $param_types = array();
68
  $enums = array();
69
+ $request = new \PYS_PRO_GLOBAL\FacebookAds\ApiRequest($this->api, $this->data['id'], \PYS_PRO_GLOBAL\FacebookAds\Http\RequestInterface::METHOD_POST, '/', new \PYS_PRO_GLOBAL\FacebookAds\Object\WhatsAppBusinessProfile(), 'NODE', \PYS_PRO_GLOBAL\FacebookAds\Object\WhatsAppBusinessProfile::getFieldsEnum()->getValues(), new \PYS_PRO_GLOBAL\FacebookAds\TypeChecker($param_types, $enums));
70
  $request->addParams($params);
71
  $request->addFields($fields);
72
  return $pending ? $request : $request->execute();
vendor_prefix/guzzlehttp/guzzle/Dockerfile ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM composer:latest as setup
2
+
3
+ RUN mkdir /guzzle
4
+
5
+ WORKDIR /guzzle
6
+
7
+ RUN set -xe \
8
+ && composer init --name=guzzlehttp/test --description="Simple project for testing Guzzle scripts" --author="Márk Sági-Kazár <mark.sagikazar@gmail.com>" --no-interaction \
9
+ && composer require guzzlehttp/guzzle
10
+
11
+
12
+ FROM php:7.3
13
+
14
+ RUN mkdir /guzzle
15
+
16
+ WORKDIR /guzzle
17
+
18
+ COPY --from=setup /guzzle /guzzle
vendor_prefix/guzzlehttp/guzzle/src/BodySummarizer.php DELETED
@@ -1,23 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
-
5
- use PYS_PRO_GLOBAL\Psr\Http\Message\MessageInterface;
6
- final class BodySummarizer implements \PYS_PRO_GLOBAL\GuzzleHttp\BodySummarizerInterface
7
- {
8
- /**
9
- * @var int|null
10
- */
11
- private $truncateAt;
12
- public function __construct(int $truncateAt = null)
13
- {
14
- $this->truncateAt = $truncateAt;
15
- }
16
- /**
17
- * Returns a summarized message body.
18
- */
19
- public function summarize(\PYS_PRO_GLOBAL\Psr\Http\Message\MessageInterface $message) : ?string
20
- {
21
- return $this->truncateAt === null ? \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Message::bodySummary($message) : \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Message::bodySummary($message, $this->truncateAt);
22
- }
23
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/guzzlehttp/guzzle/src/BodySummarizerInterface.php DELETED
@@ -1,12 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
-
5
- use PYS_PRO_GLOBAL\Psr\Http\Message\MessageInterface;
6
- interface BodySummarizerInterface
7
- {
8
- /**
9
- * Returns a summarized message body.
10
- */
11
- public function summarize(\PYS_PRO_GLOBAL\Psr\Http\Message\MessageInterface $message) : ?string;
12
- }
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/guzzlehttp/guzzle/src/Client.php CHANGED
@@ -4,21 +4,28 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\GuzzleException;
7
- use PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException;
8
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
9
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
10
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
11
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
12
  use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
13
  /**
14
- * @final
 
 
 
 
 
 
 
 
 
 
 
15
  */
16
- class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLOBAL\Psr\Http\Client\ClientInterface
17
  {
18
- use ClientTrait;
19
- /**
20
- * @var array Default request options
21
- */
22
  private $config;
23
  /**
24
  * Clients accept an array of constructor parameters.
@@ -56,11 +63,11 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
56
  if (!isset($config['handler'])) {
57
  $config['handler'] = \PYS_PRO_GLOBAL\GuzzleHttp\HandlerStack::create();
58
  } elseif (!\is_callable($config['handler'])) {
59
- throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('handler must be a callable');
60
  }
61
  // Convert the base_uri to a UriInterface
62
  if (isset($config['base_uri'])) {
63
- $config['base_uri'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::uriFor($config['base_uri']);
64
  }
65
  $this->configureDefaults($config);
66
  }
@@ -68,17 +75,15 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
68
  * @param string $method
69
  * @param array $args
70
  *
71
- * @return PromiseInterface|ResponseInterface
72
- *
73
- * @deprecated Client::__call will be removed in guzzlehttp/guzzle:8.0.
74
  */
75
  public function __call($method, $args)
76
  {
77
  if (\count($args) < 1) {
78
- throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('Magic request methods require a URI and optional options array');
79
  }
80
  $uri = $args[0];
81
- $opts = $args[1] ?? [];
82
  return \substr($method, -5) === 'Async' ? $this->requestAsync(\substr($method, 0, -5), $uri, $opts) : $this->request($method, $uri, $opts);
83
  }
84
  /**
@@ -86,8 +91,10 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
86
  *
87
  * @param array $options Request options to apply to the given
88
  * request and to the transfer. See \GuzzleHttp\RequestOptions.
 
 
89
  */
90
- public function sendAsync(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
91
  {
92
  // Merge the base URI into the request URI if needed.
93
  $options = $this->prepareDefaults($options);
@@ -99,23 +106,12 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
99
  * @param array $options Request options to apply to the given
100
  * request and to the transfer. See \GuzzleHttp\RequestOptions.
101
  *
 
102
  * @throws GuzzleException
103
  */
104
- public function send(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
105
- {
106
- $options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::SYNCHRONOUS] = \true;
107
- return $this->sendAsync($request, $options)->wait();
108
- }
109
- /**
110
- * The HttpClient PSR (PSR-18) specify this method.
111
- *
112
- * @inheritDoc
113
- */
114
- public function sendRequest(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
115
  {
116
  $options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::SYNCHRONOUS] = \true;
117
- $options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::ALLOW_REDIRECTS] = \false;
118
- $options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::HTTP_ERRORS] = \false;
119
  return $this->sendAsync($request, $options)->wait();
120
  }
121
  /**
@@ -129,18 +125,20 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
129
  * @param string $method HTTP method
130
  * @param string|UriInterface $uri URI object or string.
131
  * @param array $options Request options to apply. See \GuzzleHttp\RequestOptions.
 
 
132
  */
133
- public function requestAsync(string $method, $uri = '', array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
134
  {
135
  $options = $this->prepareDefaults($options);
136
  // Remove request modifying parameter because it can be done up-front.
137
- $headers = $options['headers'] ?? [];
138
- $body = $options['body'] ?? null;
139
- $version = $options['version'] ?? '1.1';
140
  // Merge the URI into the base URI.
141
- $uri = $this->buildUri(\PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::uriFor($uri), $options);
142
  if (\is_array($body)) {
143
- throw $this->invalidBody();
144
  }
145
  $request = new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Request($method, $uri, $headers, $body, $version);
146
  // Remove the option so that they are not doubly-applied.
@@ -158,9 +156,10 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
158
  * @param string|UriInterface $uri URI object or string.
159
  * @param array $options Request options to apply. See \GuzzleHttp\RequestOptions.
160
  *
 
161
  * @throws GuzzleException
162
  */
163
- public function request(string $method, $uri = '', array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
164
  {
165
  $options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::SYNCHRONOUS] = \true;
166
  return $this->requestAsync($method, $uri, $options)->wait();
@@ -175,17 +174,22 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
175
  * @param string|null $option The config option to retrieve.
176
  *
177
  * @return mixed
178
- *
179
- * @deprecated Client::getConfig will be removed in guzzlehttp/guzzle:8.0.
180
  */
181
- public function getConfig(?string $option = null)
182
  {
183
  return $option === null ? $this->config : (isset($this->config[$option]) ? $this->config[$option] : null);
184
  }
185
- private function buildUri(\PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface $uri, array $config) : \PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface
 
 
 
 
 
186
  {
 
 
187
  if (isset($config['base_uri'])) {
188
- $uri = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\UriResolver::resolve(\PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::uriFor($config['base_uri']), $uri);
189
  }
190
  if (isset($config['idn_conversion']) && $config['idn_conversion'] !== \false) {
191
  $idnOptions = $config['idn_conversion'] === \true ? \IDNA_DEFAULT : $config['idn_conversion'];
@@ -195,21 +199,24 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
195
  }
196
  /**
197
  * Configures the default options for a client.
 
 
 
198
  */
199
- private function configureDefaults(array $config) : void
200
  {
201
- $defaults = ['allow_redirects' => \PYS_PRO_GLOBAL\GuzzleHttp\RedirectMiddleware::$defaultSettings, 'http_errors' => \true, 'decode_content' => \true, 'verify' => \true, 'cookies' => \false, 'idn_conversion' => \false];
202
  // Use the standard Linux HTTP_PROXY and HTTPS_PROXY if set.
203
  // We can only trust the HTTP_PROXY environment variable in a CLI
204
  // process due to the fact that PHP has no reliable mechanism to
205
  // get environment variables that start with "HTTP_".
206
- if (\PHP_SAPI === 'cli' && ($proxy = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::getenv('HTTP_PROXY'))) {
207
- $defaults['proxy']['http'] = $proxy;
208
  }
209
- if ($proxy = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::getenv('HTTPS_PROXY')) {
210
  $defaults['proxy']['https'] = $proxy;
211
  }
212
- if ($noProxy = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::getenv('NO_PROXY')) {
213
  $cleanedNoProxy = \str_replace(' ', '', $noProxy);
214
  $defaults['proxy']['no'] = \explode(',', $cleanedNoProxy);
215
  }
@@ -219,7 +226,7 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
219
  }
220
  // Add the default user-agent header.
221
  if (!isset($this->config['headers'])) {
222
- $this->config['headers'] = ['User-Agent' => \PYS_PRO_GLOBAL\GuzzleHttp\Utils::defaultUserAgent()];
223
  } else {
224
  // Add the User-Agent header if one was not already set.
225
  foreach (\array_keys($this->config['headers']) as $name) {
@@ -227,15 +234,17 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
227
  return;
228
  }
229
  }
230
- $this->config['headers']['User-Agent'] = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::defaultUserAgent();
231
  }
232
  }
233
  /**
234
  * Merges default options into the array.
235
  *
236
  * @param array $options Options to modify by reference
 
 
237
  */
238
- private function prepareDefaults(array $options) : array
239
  {
240
  $defaults = $this->config;
241
  if (!empty($defaults['headers'])) {
@@ -251,7 +260,7 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
251
  $defaults['_conditional'] = [];
252
  unset($options['headers']);
253
  } elseif (!\is_array($options['headers'])) {
254
- throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('headers must be an array');
255
  }
256
  }
257
  // Shallow merge defaults underneath options.
@@ -271,22 +280,39 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
271
  * as-is without merging in default options.
272
  *
273
  * @param array $options See \GuzzleHttp\RequestOptions.
 
 
274
  */
275
- private function transfer(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
276
  {
 
 
 
 
 
 
 
 
 
 
277
  $request = $this->applyOptions($request, $options);
278
  /** @var HandlerStack $handler */
279
  $handler = $options['handler'];
280
  try {
281
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::promiseFor($handler($request, $options));
282
  } catch (\Exception $e) {
283
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($e);
284
  }
285
  }
286
  /**
287
  * Applies the array of request options to a request.
 
 
 
 
 
288
  */
289
- private function applyOptions(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options) : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface
290
  {
291
  $modify = ['set_headers' => []];
292
  if (isset($options['headers'])) {
@@ -295,12 +321,12 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
295
  }
296
  if (isset($options['form_params'])) {
297
  if (isset($options['multipart'])) {
298
- throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('You cannot use ' . 'form_params and multipart at the same time. Use the ' . 'form_params option if you want to send application/' . 'x-www-form-urlencoded requests, and the multipart ' . 'option to send multipart/form-data requests.');
299
  }
300
  $options['body'] = \http_build_query($options['form_params'], '', '&');
301
  unset($options['form_params']);
302
  // Ensure that we don't have the header in different case and set the new value.
303
- $options['_conditional'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::caselessRemove(['Content-Type'], $options['_conditional']);
304
  $options['_conditional']['Content-Type'] = 'application/x-www-form-urlencoded';
305
  }
306
  if (isset($options['multipart'])) {
@@ -308,22 +334,22 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
308
  unset($options['multipart']);
309
  }
310
  if (isset($options['json'])) {
311
- $options['body'] = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::jsonEncode($options['json']);
312
  unset($options['json']);
313
  // Ensure that we don't have the header in different case and set the new value.
314
- $options['_conditional'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::caselessRemove(['Content-Type'], $options['_conditional']);
315
  $options['_conditional']['Content-Type'] = 'application/json';
316
  }
317
  if (!empty($options['decode_content']) && $options['decode_content'] !== \true) {
318
  // Ensure that we don't have the header in different case and set the new value.
319
- $options['_conditional'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::caselessRemove(['Accept-Encoding'], $options['_conditional']);
320
  $modify['set_headers']['Accept-Encoding'] = $options['decode_content'];
321
  }
322
  if (isset($options['body'])) {
323
  if (\is_array($options['body'])) {
324
- throw $this->invalidBody();
325
  }
326
- $modify['body'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::streamFor($options['body']);
327
  unset($options['body']);
328
  }
329
  if (!empty($options['auth']) && \is_array($options['auth'])) {
@@ -332,7 +358,7 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
332
  switch ($type) {
333
  case 'basic':
334
  // Ensure that we don't have the header in different case and set the new value.
335
- $modify['set_headers'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::caselessRemove(['Authorization'], $modify['set_headers']);
336
  $modify['set_headers']['Authorization'] = 'Basic ' . \base64_encode("{$value[0]}:{$value[1]}");
337
  break;
338
  case 'digest':
@@ -349,10 +375,10 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
349
  if (isset($options['query'])) {
350
  $value = $options['query'];
351
  if (\is_array($value)) {
352
- $value = \http_build_query($value, '', '&', \PHP_QUERY_RFC3986);
353
  }
354
  if (!\is_string($value)) {
355
- throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('query must be a string or array');
356
  }
357
  $modify['query'] = $value;
358
  unset($options['query']);
@@ -361,14 +387,14 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
361
  if (isset($options['sink'])) {
362
  // TODO: Add more sink validation?
363
  if (\is_bool($options['sink'])) {
364
- throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('sink must not be a boolean');
365
  }
366
  }
367
- $request = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::modifyRequest($request, $modify);
368
  if ($request->getBody() instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\MultipartStream) {
369
  // Use a multipart/form-data POST if a Content-Type is not set.
370
  // Ensure that we don't have the header in different case and set the new value.
371
- $options['_conditional'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::caselessRemove(['Content-Type'], $options['_conditional']);
372
  $options['_conditional']['Content-Type'] = 'multipart/form-data; boundary=' . $request->getBody()->getBoundary();
373
  }
374
  // Merge in conditional headers if they are not present.
@@ -380,17 +406,19 @@ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface, \PYS_PRO_GLO
380
  $modify['set_headers'][$k] = $v;
381
  }
382
  }
383
- $request = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::modifyRequest($request, $modify);
384
  // Don't pass this internal value along to middleware/handlers.
385
  unset($options['_conditional']);
386
  }
387
  return $request;
388
  }
389
  /**
390
- * Return an InvalidArgumentException with pre-set message.
 
 
391
  */
392
- private function invalidBody() : \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException
393
  {
394
- return new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('Passing in the "body" request ' . 'option as an array to send a request is not supported. ' . 'Please use the "form_params" request option to send a ' . 'application/x-www-form-urlencoded request, or the "multipart" ' . 'request option to send a multipart/form-data request.');
395
  }
396
  }
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\GuzzleException;
7
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise;
8
+ use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
 
9
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
10
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
11
  use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
12
  /**
13
+ * @method ResponseInterface get(string|UriInterface $uri, array $options = [])
14
+ * @method ResponseInterface head(string|UriInterface $uri, array $options = [])
15
+ * @method ResponseInterface put(string|UriInterface $uri, array $options = [])
16
+ * @method ResponseInterface post(string|UriInterface $uri, array $options = [])
17
+ * @method ResponseInterface patch(string|UriInterface $uri, array $options = [])
18
+ * @method ResponseInterface delete(string|UriInterface $uri, array $options = [])
19
+ * @method Promise\PromiseInterface getAsync(string|UriInterface $uri, array $options = [])
20
+ * @method Promise\PromiseInterface headAsync(string|UriInterface $uri, array $options = [])
21
+ * @method Promise\PromiseInterface putAsync(string|UriInterface $uri, array $options = [])
22
+ * @method Promise\PromiseInterface postAsync(string|UriInterface $uri, array $options = [])
23
+ * @method Promise\PromiseInterface patchAsync(string|UriInterface $uri, array $options = [])
24
+ * @method Promise\PromiseInterface deleteAsync(string|UriInterface $uri, array $options = [])
25
  */
26
+ class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
27
  {
28
+ /** @var array Default request options */
 
 
 
29
  private $config;
30
  /**
31
  * Clients accept an array of constructor parameters.
63
  if (!isset($config['handler'])) {
64
  $config['handler'] = \PYS_PRO_GLOBAL\GuzzleHttp\HandlerStack::create();
65
  } elseif (!\is_callable($config['handler'])) {
66
+ throw new \InvalidArgumentException('handler must be a callable');
67
  }
68
  // Convert the base_uri to a UriInterface
69
  if (isset($config['base_uri'])) {
70
+ $config['base_uri'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\uri_for($config['base_uri']);
71
  }
72
  $this->configureDefaults($config);
73
  }
75
  * @param string $method
76
  * @param array $args
77
  *
78
+ * @return Promise\PromiseInterface
 
 
79
  */
80
  public function __call($method, $args)
81
  {
82
  if (\count($args) < 1) {
83
+ throw new \InvalidArgumentException('Magic request methods require a URI and optional options array');
84
  }
85
  $uri = $args[0];
86
+ $opts = isset($args[1]) ? $args[1] : [];
87
  return \substr($method, -5) === 'Async' ? $this->requestAsync(\substr($method, 0, -5), $uri, $opts) : $this->request($method, $uri, $opts);
88
  }
89
  /**
91
  *
92
  * @param array $options Request options to apply to the given
93
  * request and to the transfer. See \GuzzleHttp\RequestOptions.
94
+ *
95
+ * @return Promise\PromiseInterface
96
  */
97
+ public function sendAsync(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = [])
98
  {
99
  // Merge the base URI into the request URI if needed.
100
  $options = $this->prepareDefaults($options);
106
  * @param array $options Request options to apply to the given
107
  * request and to the transfer. See \GuzzleHttp\RequestOptions.
108
  *
109
+ * @return ResponseInterface
110
  * @throws GuzzleException
111
  */
112
+ public function send(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = [])
 
 
 
 
 
 
 
 
 
 
113
  {
114
  $options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::SYNCHRONOUS] = \true;
 
 
115
  return $this->sendAsync($request, $options)->wait();
116
  }
117
  /**
125
  * @param string $method HTTP method
126
  * @param string|UriInterface $uri URI object or string.
127
  * @param array $options Request options to apply. See \GuzzleHttp\RequestOptions.
128
+ *
129
+ * @return Promise\PromiseInterface
130
  */
131
+ public function requestAsync($method, $uri = '', array $options = [])
132
  {
133
  $options = $this->prepareDefaults($options);
134
  // Remove request modifying parameter because it can be done up-front.
135
+ $headers = isset($options['headers']) ? $options['headers'] : [];
136
+ $body = isset($options['body']) ? $options['body'] : null;
137
+ $version = isset($options['version']) ? $options['version'] : '1.1';
138
  // Merge the URI into the base URI.
139
+ $uri = $this->buildUri($uri, $options);
140
  if (\is_array($body)) {
141
+ $this->invalidBody();
142
  }
143
  $request = new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Request($method, $uri, $headers, $body, $version);
144
  // Remove the option so that they are not doubly-applied.
156
  * @param string|UriInterface $uri URI object or string.
157
  * @param array $options Request options to apply. See \GuzzleHttp\RequestOptions.
158
  *
159
+ * @return ResponseInterface
160
  * @throws GuzzleException
161
  */
162
+ public function request($method, $uri = '', array $options = [])
163
  {
164
  $options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::SYNCHRONOUS] = \true;
165
  return $this->requestAsync($method, $uri, $options)->wait();
174
  * @param string|null $option The config option to retrieve.
175
  *
176
  * @return mixed
 
 
177
  */
178
+ public function getConfig($option = null)
179
  {
180
  return $option === null ? $this->config : (isset($this->config[$option]) ? $this->config[$option] : null);
181
  }
182
+ /**
183
+ * @param string|null $uri
184
+ *
185
+ * @return UriInterface
186
+ */
187
+ private function buildUri($uri, array $config)
188
  {
189
+ // for BC we accept null which would otherwise fail in uri_for
190
+ $uri = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\uri_for($uri === null ? '' : $uri);
191
  if (isset($config['base_uri'])) {
192
+ $uri = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\UriResolver::resolve(\PYS_PRO_GLOBAL\GuzzleHttp\Psr7\uri_for($config['base_uri']), $uri);
193
  }
194
  if (isset($config['idn_conversion']) && $config['idn_conversion'] !== \false) {
195
  $idnOptions = $config['idn_conversion'] === \true ? \IDNA_DEFAULT : $config['idn_conversion'];
199
  }
200
  /**
201
  * Configures the default options for a client.
202
+ *
203
+ * @param array $config
204
+ * @return void
205
  */
206
+ private function configureDefaults(array $config)
207
  {
208
+ $defaults = ['allow_redirects' => \PYS_PRO_GLOBAL\GuzzleHttp\RedirectMiddleware::$defaultSettings, 'http_errors' => \true, 'decode_content' => \true, 'verify' => \true, 'cookies' => \false, 'idn_conversion' => \true];
209
  // Use the standard Linux HTTP_PROXY and HTTPS_PROXY if set.
210
  // We can only trust the HTTP_PROXY environment variable in a CLI
211
  // process due to the fact that PHP has no reliable mechanism to
212
  // get environment variables that start with "HTTP_".
213
+ if (\php_sapi_name() === 'cli' && \getenv('HTTP_PROXY')) {
214
+ $defaults['proxy']['http'] = \getenv('HTTP_PROXY');
215
  }
216
+ if ($proxy = \getenv('HTTPS_PROXY')) {
217
  $defaults['proxy']['https'] = $proxy;
218
  }
219
+ if ($noProxy = \getenv('NO_PROXY')) {
220
  $cleanedNoProxy = \str_replace(' ', '', $noProxy);
221
  $defaults['proxy']['no'] = \explode(',', $cleanedNoProxy);
222
  }
226
  }
227
  // Add the default user-agent header.
228
  if (!isset($this->config['headers'])) {
229
+ $this->config['headers'] = ['User-Agent' => default_user_agent()];
230
  } else {
231
  // Add the User-Agent header if one was not already set.
232
  foreach (\array_keys($this->config['headers']) as $name) {
234
  return;
235
  }
236
  }
237
+ $this->config['headers']['User-Agent'] = default_user_agent();
238
  }
239
  }
240
  /**
241
  * Merges default options into the array.
242
  *
243
  * @param array $options Options to modify by reference
244
+ *
245
+ * @return array
246
  */
247
+ private function prepareDefaults(array $options)
248
  {
249
  $defaults = $this->config;
250
  if (!empty($defaults['headers'])) {
260
  $defaults['_conditional'] = [];
261
  unset($options['headers']);
262
  } elseif (!\is_array($options['headers'])) {
263
+ throw new \InvalidArgumentException('headers must be an array');
264
  }
265
  }
266
  // Shallow merge defaults underneath options.
280
  * as-is without merging in default options.
281
  *
282
  * @param array $options See \GuzzleHttp\RequestOptions.
283
+ *
284
+ * @return Promise\PromiseInterface
285
  */
286
+ private function transfer(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
287
  {
288
+ // save_to -> sink
289
+ if (isset($options['save_to'])) {
290
+ $options['sink'] = $options['save_to'];
291
+ unset($options['save_to']);
292
+ }
293
+ // exceptions -> http_errors
294
+ if (isset($options['exceptions'])) {
295
+ $options['http_errors'] = $options['exceptions'];
296
+ unset($options['exceptions']);
297
+ }
298
  $request = $this->applyOptions($request, $options);
299
  /** @var HandlerStack $handler */
300
  $handler = $options['handler'];
301
  try {
302
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\promise_for($handler($request, $options));
303
  } catch (\Exception $e) {
304
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($e);
305
  }
306
  }
307
  /**
308
  * Applies the array of request options to a request.
309
+ *
310
+ * @param RequestInterface $request
311
+ * @param array $options
312
+ *
313
+ * @return RequestInterface
314
  */
315
+ private function applyOptions(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options)
316
  {
317
  $modify = ['set_headers' => []];
318
  if (isset($options['headers'])) {
321
  }
322
  if (isset($options['form_params'])) {
323
  if (isset($options['multipart'])) {
324
+ throw new \InvalidArgumentException('You cannot use ' . 'form_params and multipart at the same time. Use the ' . 'form_params option if you want to send application/' . 'x-www-form-urlencoded requests, and the multipart ' . 'option to send multipart/form-data requests.');
325
  }
326
  $options['body'] = \http_build_query($options['form_params'], '', '&');
327
  unset($options['form_params']);
328
  // Ensure that we don't have the header in different case and set the new value.
329
+ $options['_conditional'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\_caseless_remove(['Content-Type'], $options['_conditional']);
330
  $options['_conditional']['Content-Type'] = 'application/x-www-form-urlencoded';
331
  }
332
  if (isset($options['multipart'])) {
334
  unset($options['multipart']);
335
  }
336
  if (isset($options['json'])) {
337
+ $options['body'] = \PYS_PRO_GLOBAL\GuzzleHttp\json_encode($options['json']);
338
  unset($options['json']);
339
  // Ensure that we don't have the header in different case and set the new value.
340
+ $options['_conditional'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\_caseless_remove(['Content-Type'], $options['_conditional']);
341
  $options['_conditional']['Content-Type'] = 'application/json';
342
  }
343
  if (!empty($options['decode_content']) && $options['decode_content'] !== \true) {
344
  // Ensure that we don't have the header in different case and set the new value.
345
+ $options['_conditional'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\_caseless_remove(['Accept-Encoding'], $options['_conditional']);
346
  $modify['set_headers']['Accept-Encoding'] = $options['decode_content'];
347
  }
348
  if (isset($options['body'])) {
349
  if (\is_array($options['body'])) {
350
+ $this->invalidBody();
351
  }
352
+ $modify['body'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\stream_for($options['body']);
353
  unset($options['body']);
354
  }
355
  if (!empty($options['auth']) && \is_array($options['auth'])) {
358
  switch ($type) {
359
  case 'basic':
360
  // Ensure that we don't have the header in different case and set the new value.
361
+ $modify['set_headers'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\_caseless_remove(['Authorization'], $modify['set_headers']);
362
  $modify['set_headers']['Authorization'] = 'Basic ' . \base64_encode("{$value[0]}:{$value[1]}");
363
  break;
364
  case 'digest':
375
  if (isset($options['query'])) {
376
  $value = $options['query'];
377
  if (\is_array($value)) {
378
+ $value = \http_build_query($value, null, '&', \PHP_QUERY_RFC3986);
379
  }
380
  if (!\is_string($value)) {
381
+ throw new \InvalidArgumentException('query must be a string or array');
382
  }
383
  $modify['query'] = $value;
384
  unset($options['query']);
387
  if (isset($options['sink'])) {
388
  // TODO: Add more sink validation?
389
  if (\is_bool($options['sink'])) {
390
+ throw new \InvalidArgumentException('sink must not be a boolean');
391
  }
392
  }
393
+ $request = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\modify_request($request, $modify);
394
  if ($request->getBody() instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\MultipartStream) {
395
  // Use a multipart/form-data POST if a Content-Type is not set.
396
  // Ensure that we don't have the header in different case and set the new value.
397
+ $options['_conditional'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\_caseless_remove(['Content-Type'], $options['_conditional']);
398
  $options['_conditional']['Content-Type'] = 'multipart/form-data; boundary=' . $request->getBody()->getBoundary();
399
  }
400
  // Merge in conditional headers if they are not present.
406
  $modify['set_headers'][$k] = $v;
407
  }
408
  }
409
+ $request = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\modify_request($request, $modify);
410
  // Don't pass this internal value along to middleware/handlers.
411
  unset($options['_conditional']);
412
  }
413
  return $request;
414
  }
415
  /**
416
+ * Throw Exception with pre-set message.
417
+ * @return void
418
+ * @throws \InvalidArgumentException Invalid body.
419
  */
420
+ private function invalidBody()
421
  {
422
+ throw new \InvalidArgumentException('Passing in the "body" request ' . 'option as an array to send a POST request has been deprecated. ' . 'Please use the "form_params" request option to send a ' . 'application/x-www-form-urlencoded request, or the "multipart" ' . 'request option to send a multipart/form-data request.');
423
  }
424
  }
vendor_prefix/guzzlehttp/guzzle/src/ClientInterface.php CHANGED
@@ -13,9 +13,9 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
13
  interface ClientInterface
14
  {
15
  /**
16
- * The Guzzle major version.
17
  */
18
- const MAJOR_VERSION = 7;
19
  /**
20
  * Send an HTTP request.
21
  *
@@ -23,17 +23,20 @@ interface ClientInterface
23
  * @param array $options Request options to apply to the given
24
  * request and to the transfer.
25
  *
 
26
  * @throws GuzzleException
27
  */
28
- public function send(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
29
  /**
30
  * Asynchronously send an HTTP request.
31
  *
32
  * @param RequestInterface $request Request to send
33
  * @param array $options Request options to apply to the given
34
  * request and to the transfer.
 
 
35
  */
36
- public function sendAsync(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
37
  /**
38
  * Create and send an HTTP request.
39
  *
@@ -45,9 +48,10 @@ interface ClientInterface
45
  * @param string|UriInterface $uri URI object or string.
46
  * @param array $options Request options to apply.
47
  *
 
48
  * @throws GuzzleException
49
  */
50
- public function request(string $method, $uri, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
51
  /**
52
  * Create and send an asynchronous HTTP request.
53
  *
@@ -59,8 +63,10 @@ interface ClientInterface
59
  * @param string $method HTTP method
60
  * @param string|UriInterface $uri URI object or string.
61
  * @param array $options Request options to apply.
 
 
62
  */
63
- public function requestAsync(string $method, $uri, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
64
  /**
65
  * Get a client configuration option.
66
  *
@@ -71,8 +77,6 @@ interface ClientInterface
71
  * @param string|null $option The config option to retrieve.
72
  *
73
  * @return mixed
74
- *
75
- * @deprecated ClientInterface::getConfig will be removed in guzzlehttp/guzzle:8.0.
76
  */
77
- public function getConfig(?string $option = null);
78
  }
13
  interface ClientInterface
14
  {
15
  /**
16
+ * @deprecated Will be removed in Guzzle 7.0.0
17
  */
18
+ const VERSION = '6.5.5';
19
  /**
20
  * Send an HTTP request.
21
  *
23
  * @param array $options Request options to apply to the given
24
  * request and to the transfer.
25
  *
26
+ * @return ResponseInterface
27
  * @throws GuzzleException
28
  */
29
+ public function send(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = []);
30
  /**
31
  * Asynchronously send an HTTP request.
32
  *
33
  * @param RequestInterface $request Request to send
34
  * @param array $options Request options to apply to the given
35
  * request and to the transfer.
36
+ *
37
+ * @return PromiseInterface
38
  */
39
+ public function sendAsync(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = []);
40
  /**
41
  * Create and send an HTTP request.
42
  *
48
  * @param string|UriInterface $uri URI object or string.
49
  * @param array $options Request options to apply.
50
  *
51
+ * @return ResponseInterface
52
  * @throws GuzzleException
53
  */
54
+ public function request($method, $uri, array $options = []);
55
  /**
56
  * Create and send an asynchronous HTTP request.
57
  *
63
  * @param string $method HTTP method
64
  * @param string|UriInterface $uri URI object or string.
65
  * @param array $options Request options to apply.
66
+ *
67
+ * @return PromiseInterface
68
  */
69
+ public function requestAsync($method, $uri, array $options = []);
70
  /**
71
  * Get a client configuration option.
72
  *
77
  * @param string|null $option The config option to retrieve.
78
  *
79
  * @return mixed
 
 
80
  */
81
+ public function getConfig($option = null);
82
  }
vendor_prefix/guzzlehttp/guzzle/src/ClientTrait.php DELETED
@@ -1,227 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
-
5
- use PYS_PRO_GLOBAL\GuzzleHttp\Exception\GuzzleException;
6
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
7
- use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
8
- use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
9
- /**
10
- * Client interface for sending HTTP requests.
11
- */
12
- trait ClientTrait
13
- {
14
- /**
15
- * Create and send an HTTP request.
16
- *
17
- * Use an absolute path to override the base path of the client, or a
18
- * relative path to append to the base path of the client. The URL can
19
- * contain the query string as well.
20
- *
21
- * @param string $method HTTP method.
22
- * @param string|UriInterface $uri URI object or string.
23
- * @param array $options Request options to apply.
24
- *
25
- * @throws GuzzleException
26
- */
27
- public abstract function request(string $method, $uri, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
28
- /**
29
- * Create and send an HTTP GET request.
30
- *
31
- * Use an absolute path to override the base path of the client, or a
32
- * relative path to append to the base path of the client. The URL can
33
- * contain the query string as well.
34
- *
35
- * @param string|UriInterface $uri URI object or string.
36
- * @param array $options Request options to apply.
37
- *
38
- * @throws GuzzleException
39
- */
40
- public function get($uri, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
41
- {
42
- return $this->request('GET', $uri, $options);
43
- }
44
- /**
45
- * Create and send an HTTP HEAD request.
46
- *
47
- * Use an absolute path to override the base path of the client, or a
48
- * relative path to append to the base path of the client. The URL can
49
- * contain the query string as well.
50
- *
51
- * @param string|UriInterface $uri URI object or string.
52
- * @param array $options Request options to apply.
53
- *
54
- * @throws GuzzleException
55
- */
56
- public function head($uri, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
57
- {
58
- return $this->request('HEAD', $uri, $options);
59
- }
60
- /**
61
- * Create and send an HTTP PUT request.
62
- *
63
- * Use an absolute path to override the base path of the client, or a
64
- * relative path to append to the base path of the client. The URL can
65
- * contain the query string as well.
66
- *
67
- * @param string|UriInterface $uri URI object or string.
68
- * @param array $options Request options to apply.
69
- *
70
- * @throws GuzzleException
71
- */
72
- public function put($uri, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
73
- {
74
- return $this->request('PUT', $uri, $options);
75
- }
76
- /**
77
- * Create and send an HTTP POST request.
78
- *
79
- * Use an absolute path to override the base path of the client, or a
80
- * relative path to append to the base path of the client. The URL can
81
- * contain the query string as well.
82
- *
83
- * @param string|UriInterface $uri URI object or string.
84
- * @param array $options Request options to apply.
85
- *
86
- * @throws GuzzleException
87
- */
88
- public function post($uri, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
89
- {
90
- return $this->request('POST', $uri, $options);
91
- }
92
- /**
93
- * Create and send an HTTP PATCH request.
94
- *
95
- * Use an absolute path to override the base path of the client, or a
96
- * relative path to append to the base path of the client. The URL can
97
- * contain the query string as well.
98
- *
99
- * @param string|UriInterface $uri URI object or string.
100
- * @param array $options Request options to apply.
101
- *
102
- * @throws GuzzleException
103
- */
104
- public function patch($uri, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
105
- {
106
- return $this->request('PATCH', $uri, $options);
107
- }
108
- /**
109
- * Create and send an HTTP DELETE request.
110
- *
111
- * Use an absolute path to override the base path of the client, or a
112
- * relative path to append to the base path of the client. The URL can
113
- * contain the query string as well.
114
- *
115
- * @param string|UriInterface $uri URI object or string.
116
- * @param array $options Request options to apply.
117
- *
118
- * @throws GuzzleException
119
- */
120
- public function delete($uri, array $options = []) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
121
- {
122
- return $this->request('DELETE', $uri, $options);
123
- }
124
- /**
125
- * Create and send an asynchronous HTTP request.
126
- *
127
- * Use an absolute path to override the base path of the client, or a
128
- * relative path to append to the base path of the client. The URL can
129
- * contain the query string as well. Use an array to provide a URL
130
- * template and additional variables to use in the URL template expansion.
131
- *
132
- * @param string $method HTTP method
133
- * @param string|UriInterface $uri URI object or string.
134
- * @param array $options Request options to apply.
135
- */
136
- public abstract function requestAsync(string $method, $uri, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
137
- /**
138
- * Create and send an asynchronous HTTP GET request.
139
- *
140
- * Use an absolute path to override the base path of the client, or a
141
- * relative path to append to the base path of the client. The URL can
142
- * contain the query string as well. Use an array to provide a URL
143
- * template and additional variables to use in the URL template expansion.
144
- *
145
- * @param string|UriInterface $uri URI object or string.
146
- * @param array $options Request options to apply.
147
- */
148
- public function getAsync($uri, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
149
- {
150
- return $this->requestAsync('GET', $uri, $options);
151
- }
152
- /**
153
- * Create and send an asynchronous HTTP HEAD request.
154
- *
155
- * Use an absolute path to override the base path of the client, or a
156
- * relative path to append to the base path of the client. The URL can
157
- * contain the query string as well. Use an array to provide a URL
158
- * template and additional variables to use in the URL template expansion.
159
- *
160
- * @param string|UriInterface $uri URI object or string.
161
- * @param array $options Request options to apply.
162
- */
163
- public function headAsync($uri, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
164
- {
165
- return $this->requestAsync('HEAD', $uri, $options);
166
- }
167
- /**
168
- * Create and send an asynchronous HTTP PUT request.
169
- *
170
- * Use an absolute path to override the base path of the client, or a
171
- * relative path to append to the base path of the client. The URL can
172
- * contain the query string as well. Use an array to provide a URL
173
- * template and additional variables to use in the URL template expansion.
174
- *
175
- * @param string|UriInterface $uri URI object or string.
176
- * @param array $options Request options to apply.
177
- */
178
- public function putAsync($uri, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
179
- {
180
- return $this->requestAsync('PUT', $uri, $options);
181
- }
182
- /**
183
- * Create and send an asynchronous HTTP POST request.
184
- *
185
- * Use an absolute path to override the base path of the client, or a
186
- * relative path to append to the base path of the client. The URL can
187
- * contain the query string as well. Use an array to provide a URL
188
- * template and additional variables to use in the URL template expansion.
189
- *
190
- * @param string|UriInterface $uri URI object or string.
191
- * @param array $options Request options to apply.
192
- */
193
- public function postAsync($uri, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
194
- {
195
- return $this->requestAsync('POST', $uri, $options);
196
- }
197
- /**
198
- * Create and send an asynchronous HTTP PATCH request.
199
- *
200
- * Use an absolute path to override the base path of the client, or a
201
- * relative path to append to the base path of the client. The URL can
202
- * contain the query string as well. Use an array to provide a URL
203
- * template and additional variables to use in the URL template expansion.
204
- *
205
- * @param string|UriInterface $uri URI object or string.
206
- * @param array $options Request options to apply.
207
- */
208
- public function patchAsync($uri, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
209
- {
210
- return $this->requestAsync('PATCH', $uri, $options);
211
- }
212
- /**
213
- * Create and send an asynchronous HTTP DELETE request.
214
- *
215
- * Use an absolute path to override the base path of the client, or a
216
- * relative path to append to the base path of the client. The URL can
217
- * contain the query string as well. Use an array to provide a URL
218
- * template and additional variables to use in the URL template expansion.
219
- *
220
- * @param string|UriInterface $uri URI object or string.
221
- * @param array $options Request options to apply.
222
- */
223
- public function deleteAsync($uri, array $options = []) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
224
- {
225
- return $this->requestAsync('DELETE', $uri, $options);
226
- }
227
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJar.php CHANGED
@@ -9,22 +9,18 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
9
  */
10
  class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
11
  {
12
- /**
13
- * @var SetCookie[] Loaded cookie data
14
- */
15
  private $cookies = [];
16
- /**
17
- * @var bool
18
- */
19
  private $strictMode;
20
  /**
21
- * @param bool $strictMode Set to true to throw exceptions when invalid
22
  * cookies are added to the cookie jar.
23
  * @param array $cookieArray Array of SetCookie objects or a hash of
24
  * arrays that can be used with the SetCookie
25
  * constructor
26
  */
27
- public function __construct(bool $strictMode = \false, array $cookieArray = [])
28
  {
29
  $this->strictMode = $strictMode;
30
  foreach ($cookieArray as $cookie) {
@@ -39,8 +35,10 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
39
  *
40
  * @param array $cookies Cookies to create the jar from
41
  * @param string $domain Domain to set the cookies to
 
 
42
  */
43
- public static function fromArray(array $cookies, string $domain) : self
44
  {
45
  $cookieJar = new self();
46
  foreach ($cookies as $name => $value) {
@@ -48,14 +46,22 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
48
  }
49
  return $cookieJar;
50
  }
 
 
 
 
 
 
 
51
  /**
52
  * Evaluate if this cookie should be persisted to storage
53
  * that survives between requests.
54
  *
55
- * @param SetCookie $cookie Being evaluated.
56
- * @param bool $allowSessionCookies If we should persist session cookies
 
57
  */
58
- public static function shouldPersist(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie, bool $allowSessionCookies = \false) : bool
59
  {
60
  if ($cookie->getExpires() || $allowSessionCookies) {
61
  if (!$cookie->getDiscard()) {
@@ -68,11 +74,14 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
68
  * Finds and returns the cookie based on the name
69
  *
70
  * @param string $name cookie name to search for
71
- *
72
  * @return SetCookie|null cookie that was found or null if not found
73
  */
74
- public function getCookieByName(string $name) : ?\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie
75
  {
 
 
 
 
76
  foreach ($this->cookies as $cookie) {
77
  if ($cookie->getName() !== null && \strcasecmp($cookie->getName(), $name) === 0) {
78
  return $cookie;
@@ -80,50 +89,38 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
80
  }
81
  return null;
82
  }
83
- /**
84
- * @inheritDoc
85
- */
86
- public function toArray() : array
87
  {
88
- return \array_map(static function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) : array {
89
  return $cookie->toArray();
90
  }, $this->getIterator()->getArrayCopy());
91
  }
92
- /**
93
- * @inheritDoc
94
- */
95
- public function clear(?string $domain = null, ?string $path = null, ?string $name = null) : void
96
  {
97
  if (!$domain) {
98
  $this->cookies = [];
99
  return;
100
  } elseif (!$path) {
101
- $this->cookies = \array_filter($this->cookies, static function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) use($domain) : bool {
102
  return !$cookie->matchesDomain($domain);
103
  });
104
  } elseif (!$name) {
105
- $this->cookies = \array_filter($this->cookies, static function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) use($path, $domain) : bool {
106
  return !($cookie->matchesPath($path) && $cookie->matchesDomain($domain));
107
  });
108
  } else {
109
- $this->cookies = \array_filter($this->cookies, static function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) use($path, $domain, $name) {
110
  return !($cookie->getName() == $name && $cookie->matchesPath($path) && $cookie->matchesDomain($domain));
111
  });
112
  }
113
  }
114
- /**
115
- * @inheritDoc
116
- */
117
- public function clearSessionCookies() : void
118
  {
119
- $this->cookies = \array_filter($this->cookies, static function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) : bool {
120
  return !$cookie->getDiscard() && $cookie->getExpires();
121
  });
122
  }
123
- /**
124
- * @inheritDoc
125
- */
126
- public function setCookie(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) : bool
127
  {
128
  // If the name string is empty (but not 0), ignore the set-cookie
129
  // string entirely.
@@ -136,9 +133,10 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
136
  if ($result !== \true) {
137
  if ($this->strictMode) {
138
  throw new \RuntimeException('Invalid cookie: ' . $result);
 
 
 
139
  }
140
- $this->removeCookieIfEmpty($cookie);
141
- return \false;
142
  }
143
  // Resolve conflicts with previously set cookies
144
  foreach ($this->cookies as $i => $c) {
@@ -170,18 +168,15 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
170
  $this->cookies[] = $cookie;
171
  return \true;
172
  }
173
- public function count() : int
174
  {
175
  return \count($this->cookies);
176
  }
177
- /**
178
- * @return \ArrayIterator<int, SetCookie>
179
- */
180
- public function getIterator() : \ArrayIterator
181
  {
182
  return new \ArrayIterator(\array_values($this->cookies));
183
  }
184
- public function extractCookies(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response) : void
185
  {
186
  if ($cookieHeader = $response->getHeader('Set-Cookie')) {
187
  foreach ($cookieHeader as $cookie) {
@@ -200,8 +195,11 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
200
  * Computes cookie path following RFC 6265 section 5.1.4
201
  *
202
  * @link https://tools.ietf.org/html/rfc6265#section-5.1.4
 
 
 
203
  */
204
- private function getCookiePathFromRequest(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request) : string
205
  {
206
  $uriPath = $request->getUri()->getPath();
207
  if ('' === $uriPath) {
@@ -213,13 +211,12 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
213
  if ('/' === $uriPath) {
214
  return '/';
215
  }
216
- $lastSlashPos = \strrpos($uriPath, '/');
217
- if (0 === $lastSlashPos || \false === $lastSlashPos) {
218
  return '/';
219
  }
220
  return \substr($uriPath, 0, $lastSlashPos);
221
  }
222
- public function withCookieHeader(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request) : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface
223
  {
224
  $values = [];
225
  $uri = $request->getUri();
@@ -236,8 +233,10 @@ class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
236
  /**
237
  * If a cookie already exists and the server asks to set it again with a
238
  * null value, the cookie must be deleted.
 
 
239
  */
240
- private function removeCookieIfEmpty(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) : void
241
  {
242
  $cookieValue = $cookie->getValue();
243
  if ($cookieValue === null || $cookieValue === '') {
9
  */
10
  class CookieJar implements \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface
11
  {
12
+ /** @var SetCookie[] Loaded cookie data */
 
 
13
  private $cookies = [];
14
+ /** @var bool */
 
 
15
  private $strictMode;
16
  /**
17
+ * @param bool $strictMode Set to true to throw exceptions when invalid
18
  * cookies are added to the cookie jar.
19
  * @param array $cookieArray Array of SetCookie objects or a hash of
20
  * arrays that can be used with the SetCookie
21
  * constructor
22
  */
23
+ public function __construct($strictMode = \false, $cookieArray = [])
24
  {
25
  $this->strictMode = $strictMode;
26
  foreach ($cookieArray as $cookie) {
35
  *
36
  * @param array $cookies Cookies to create the jar from
37
  * @param string $domain Domain to set the cookies to
38
+ *
39
+ * @return self
40
  */
41
+ public static function fromArray(array $cookies, $domain)
42
  {
43
  $cookieJar = new self();
44
  foreach ($cookies as $name => $value) {
46
  }
47
  return $cookieJar;
48
  }
49
+ /**
50
+ * @deprecated
51
+ */
52
+ public static function getCookieValue($value)
53
+ {
54
+ return $value;
55
+ }
56
  /**
57
  * Evaluate if this cookie should be persisted to storage
58
  * that survives between requests.
59
  *
60
+ * @param SetCookie $cookie Being evaluated.
61
+ * @param bool $allowSessionCookies If we should persist session cookies
62
+ * @return bool
63
  */
64
+ public static function shouldPersist(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie, $allowSessionCookies = \false)
65
  {
66
  if ($cookie->getExpires() || $allowSessionCookies) {
67
  if (!$cookie->getDiscard()) {
74
  * Finds and returns the cookie based on the name
75
  *
76
  * @param string $name cookie name to search for
 
77
  * @return SetCookie|null cookie that was found or null if not found
78
  */
79
+ public function getCookieByName($name)
80
  {
81
+ // don't allow a non string name
82
+ if ($name === null || !\is_scalar($name)) {
83
+ return null;
84
+ }
85
  foreach ($this->cookies as $cookie) {
86
  if ($cookie->getName() !== null && \strcasecmp($cookie->getName(), $name) === 0) {
87
  return $cookie;
89
  }
90
  return null;
91
  }
92
+ public function toArray()
 
 
 
93
  {
94
+ return \array_map(function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) {
95
  return $cookie->toArray();
96
  }, $this->getIterator()->getArrayCopy());
97
  }
98
+ public function clear($domain = null, $path = null, $name = null)
 
 
 
99
  {
100
  if (!$domain) {
101
  $this->cookies = [];
102
  return;
103
  } elseif (!$path) {
104
+ $this->cookies = \array_filter($this->cookies, function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) use($domain) {
105
  return !$cookie->matchesDomain($domain);
106
  });
107
  } elseif (!$name) {
108
+ $this->cookies = \array_filter($this->cookies, function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) use($path, $domain) {
109
  return !($cookie->matchesPath($path) && $cookie->matchesDomain($domain));
110
  });
111
  } else {
112
+ $this->cookies = \array_filter($this->cookies, function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) use($path, $domain, $name) {
113
  return !($cookie->getName() == $name && $cookie->matchesPath($path) && $cookie->matchesDomain($domain));
114
  });
115
  }
116
  }
117
+ public function clearSessionCookies()
 
 
 
118
  {
119
+ $this->cookies = \array_filter($this->cookies, function (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) {
120
  return !$cookie->getDiscard() && $cookie->getExpires();
121
  });
122
  }
123
+ public function setCookie(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie)
 
 
 
124
  {
125
  // If the name string is empty (but not 0), ignore the set-cookie
126
  // string entirely.
133
  if ($result !== \true) {
134
  if ($this->strictMode) {
135
  throw new \RuntimeException('Invalid cookie: ' . $result);
136
+ } else {
137
+ $this->removeCookieIfEmpty($cookie);
138
+ return \false;
139
  }
 
 
140
  }
141
  // Resolve conflicts with previously set cookies
142
  foreach ($this->cookies as $i => $c) {
168
  $this->cookies[] = $cookie;
169
  return \true;
170
  }
171
+ public function count()
172
  {
173
  return \count($this->cookies);
174
  }
175
+ public function getIterator()
 
 
 
176
  {
177
  return new \ArrayIterator(\array_values($this->cookies));
178
  }
179
+ public function extractCookies(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response)
180
  {
181
  if ($cookieHeader = $response->getHeader('Set-Cookie')) {
182
  foreach ($cookieHeader as $cookie) {
195
  * Computes cookie path following RFC 6265 section 5.1.4
196
  *
197
  * @link https://tools.ietf.org/html/rfc6265#section-5.1.4
198
+ *
199
+ * @param RequestInterface $request
200
+ * @return string
201
  */
202
+ private function getCookiePathFromRequest(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request)
203
  {
204
  $uriPath = $request->getUri()->getPath();
205
  if ('' === $uriPath) {
211
  if ('/' === $uriPath) {
212
  return '/';
213
  }
214
+ if (0 === ($lastSlashPos = \strrpos($uriPath, '/'))) {
 
215
  return '/';
216
  }
217
  return \substr($uriPath, 0, $lastSlashPos);
218
  }
219
+ public function withCookieHeader(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request)
220
  {
221
  $values = [];
222
  $uri = $request->getUri();
233
  /**
234
  * If a cookie already exists and the server asks to set it again with a
235
  * null value, the cookie must be deleted.
236
+ *
237
+ * @param SetCookie $cookie
238
  */
239
+ private function removeCookieIfEmpty(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie)
240
  {
241
  $cookieValue = $cookie->getValue();
242
  if ($cookieValue === null || $cookieValue === '') {
vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php CHANGED
@@ -12,8 +12,7 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
12
  * necessary. Subclasses are also responsible for storing and retrieving
13
  * cookies from a file, database, etc.
14
  *
15
- * @link https://docs.python.org/2/library/cookielib.html Inspiration
16
- * @extends \IteratorAggregate<SetCookie>
17
  */
18
  interface CookieJarInterface extends \Countable, \IteratorAggregate
19
  {
@@ -27,14 +26,14 @@ interface CookieJarInterface extends \Countable, \IteratorAggregate
27
  *
28
  * @return RequestInterface returns the modified request.
29
  */
30
- public function withCookieHeader(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request) : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
31
  /**
32
  * Extract cookies from an HTTP response and store them in the CookieJar.
33
  *
34
  * @param RequestInterface $request Request that was sent
35
  * @param ResponseInterface $response Response that was received
36
  */
37
- public function extractCookies(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response) : void;
38
  /**
39
  * Sets a cookie in the cookie jar.
40
  *
@@ -42,7 +41,7 @@ interface CookieJarInterface extends \Countable, \IteratorAggregate
42
  *
43
  * @return bool Returns true on success or false on failure
44
  */
45
- public function setCookie(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie) : bool;
46
  /**
47
  * Remove cookies currently held in the cookie jar.
48
  *
@@ -56,8 +55,10 @@ interface CookieJarInterface extends \Countable, \IteratorAggregate
56
  * @param string|null $domain Clears cookies matching a domain
57
  * @param string|null $path Clears cookies matching a domain and path
58
  * @param string|null $name Clears cookies matching a domain, path, and name
 
 
59
  */
60
- public function clear(?string $domain = null, ?string $path = null, ?string $name = null) : void;
61
  /**
62
  * Discard all sessions cookies.
63
  *
@@ -65,9 +66,11 @@ interface CookieJarInterface extends \Countable, \IteratorAggregate
65
  * field set to true. To be called when the user agent shuts down according
66
  * to RFC 2965.
67
  */
68
- public function clearSessionCookies() : void;
69
  /**
70
  * Converts the cookie jar to an array.
 
 
71
  */
72
- public function toArray() : array;
73
  }
12
  * necessary. Subclasses are also responsible for storing and retrieving
13
  * cookies from a file, database, etc.
14
  *
15
+ * @link http://docs.python.org/2/library/cookielib.html Inspiration
 
16
  */
17
  interface CookieJarInterface extends \Countable, \IteratorAggregate
18
  {
26
  *
27
  * @return RequestInterface returns the modified request.
28
  */
29
+ public function withCookieHeader(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request);
30
  /**
31
  * Extract cookies from an HTTP response and store them in the CookieJar.
32
  *
33
  * @param RequestInterface $request Request that was sent
34
  * @param ResponseInterface $response Response that was received
35
  */
36
+ public function extractCookies(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response);
37
  /**
38
  * Sets a cookie in the cookie jar.
39
  *
41
  *
42
  * @return bool Returns true on success or false on failure
43
  */
44
+ public function setCookie(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie);
45
  /**
46
  * Remove cookies currently held in the cookie jar.
47
  *
55
  * @param string|null $domain Clears cookies matching a domain
56
  * @param string|null $path Clears cookies matching a domain and path
57
  * @param string|null $name Clears cookies matching a domain, path, and name
58
+ *
59
+ * @return CookieJarInterface
60
  */
61
+ public function clear($domain = null, $path = null, $name = null);
62
  /**
63
  * Discard all sessions cookies.
64
  *
66
  * field set to true. To be called when the user agent shuts down according
67
  * to RFC 2965.
68
  */
69
+ public function clearSessionCookies();
70
  /**
71
  * Converts the cookie jar to an array.
72
+ *
73
+ * @return array
74
  */
75
+ public function toArray();
76
  }
vendor_prefix/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php CHANGED
@@ -2,30 +2,25 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Cookie;
4
 
5
- use PYS_PRO_GLOBAL\GuzzleHttp\Utils;
6
  /**
7
  * Persists non-session cookies using a JSON formatted file
8
  */
9
  class FileCookieJar extends \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar
10
  {
11
- /**
12
- * @var string filename
13
- */
14
  private $filename;
15
- /**
16
- * @var bool Control whether to persist session cookies or not.
17
- */
18
  private $storeSessionCookies;
19
  /**
20
  * Create a new FileCookieJar object
21
  *
22
- * @param string $cookieFile File to store the cookie data
23
- * @param bool $storeSessionCookies Set to true to store session cookies
24
- * in the cookie jar.
25
  *
26
  * @throws \RuntimeException if the file cannot be found or created
27
  */
28
- public function __construct(string $cookieFile, bool $storeSessionCookies = \false)
29
  {
30
  parent::__construct();
31
  $this->filename = $cookieFile;
@@ -45,19 +40,18 @@ class FileCookieJar extends \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar
45
  * Saves the cookies to a file.
46
  *
47
  * @param string $filename File to save
48
- *
49
  * @throws \RuntimeException if the file cannot be found or created
50
  */
51
- public function save(string $filename) : void
52
  {
53
  $json = [];
54
- /** @var SetCookie $cookie */
55
  foreach ($this as $cookie) {
 
56
  if (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) {
57
  $json[] = $cookie->toArray();
58
  }
59
  }
60
- $jsonStr = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::jsonEncode($json);
61
  if (\false === \file_put_contents($filename, $jsonStr, \LOCK_EX)) {
62
  throw new \RuntimeException("Unable to save file {$filename}");
63
  }
@@ -68,24 +62,22 @@ class FileCookieJar extends \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar
68
  * Old cookies are kept unless overwritten by newly loaded ones.
69
  *
70
  * @param string $filename Cookie file to load.
71
- *
72
  * @throws \RuntimeException if the file cannot be loaded.
73
  */
74
- public function load(string $filename) : void
75
  {
76
  $json = \file_get_contents($filename);
77
  if (\false === $json) {
78
  throw new \RuntimeException("Unable to load file {$filename}");
79
- }
80
- if ($json === '') {
81
  return;
82
  }
83
- $data = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::jsonDecode($json, \true);
84
  if (\is_array($data)) {
85
- foreach ($data as $cookie) {
86
  $this->setCookie(new \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie($cookie));
87
  }
88
- } elseif (\is_scalar($data) && !empty($data)) {
89
  throw new \RuntimeException("Invalid cookie file: {$filename}");
90
  }
91
  }
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Cookie;
4
 
 
5
  /**
6
  * Persists non-session cookies using a JSON formatted file
7
  */
8
  class FileCookieJar extends \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar
9
  {
10
+ /** @var string filename */
 
 
11
  private $filename;
12
+ /** @var bool Control whether to persist session cookies or not. */
 
 
13
  private $storeSessionCookies;
14
  /**
15
  * Create a new FileCookieJar object
16
  *
17
+ * @param string $cookieFile File to store the cookie data
18
+ * @param bool $storeSessionCookies Set to true to store session cookies
19
+ * in the cookie jar.
20
  *
21
  * @throws \RuntimeException if the file cannot be found or created
22
  */
23
+ public function __construct($cookieFile, $storeSessionCookies = \false)
24
  {
25
  parent::__construct();
26
  $this->filename = $cookieFile;
40
  * Saves the cookies to a file.
41
  *
42
  * @param string $filename File to save
 
43
  * @throws \RuntimeException if the file cannot be found or created
44
  */
45
+ public function save($filename)
46
  {
47
  $json = [];
 
48
  foreach ($this as $cookie) {
49
+ /** @var SetCookie $cookie */
50
  if (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) {
51
  $json[] = $cookie->toArray();
52
  }
53
  }
54
+ $jsonStr = \PYS_PRO_GLOBAL\GuzzleHttp\json_encode($json);
55
  if (\false === \file_put_contents($filename, $jsonStr, \LOCK_EX)) {
56
  throw new \RuntimeException("Unable to save file {$filename}");
57
  }
62
  * Old cookies are kept unless overwritten by newly loaded ones.
63
  *
64
  * @param string $filename Cookie file to load.
 
65
  * @throws \RuntimeException if the file cannot be loaded.
66
  */
67
+ public function load($filename)
68
  {
69
  $json = \file_get_contents($filename);
70
  if (\false === $json) {
71
  throw new \RuntimeException("Unable to load file {$filename}");
72
+ } elseif ($json === '') {
 
73
  return;
74
  }
75
+ $data = \PYS_PRO_GLOBAL\GuzzleHttp\json_decode($json, \true);
76
  if (\is_array($data)) {
77
+ foreach (\json_decode($json, \true) as $cookie) {
78
  $this->setCookie(new \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie($cookie));
79
  }
80
+ } elseif (\strlen($data)) {
81
  throw new \RuntimeException("Invalid cookie file: {$filename}");
82
  }
83
  }
vendor_prefix/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php CHANGED
@@ -7,23 +7,19 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp\Cookie;
7
  */
8
  class SessionCookieJar extends \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar
9
  {
10
- /**
11
- * @var string session key
12
- */
13
  private $sessionKey;
14
- /**
15
- * @var bool Control whether to persist session cookies or not.
16
- */
17
  private $storeSessionCookies;
18
  /**
19
  * Create a new SessionCookieJar object
20
  *
21
- * @param string $sessionKey Session key name to store the cookie
22
- * data in session
23
- * @param bool $storeSessionCookies Set to true to store session cookies
24
- * in the cookie jar.
25
  */
26
- public function __construct(string $sessionKey, bool $storeSessionCookies = \false)
27
  {
28
  parent::__construct();
29
  $this->sessionKey = $sessionKey;
@@ -40,11 +36,11 @@ class SessionCookieJar extends \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar
40
  /**
41
  * Save cookies to the client session
42
  */
43
- public function save() : void
44
  {
45
  $json = [];
46
- /** @var SetCookie $cookie */
47
  foreach ($this as $cookie) {
 
48
  if (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) {
49
  $json[] = $cookie->toArray();
50
  }
@@ -54,7 +50,7 @@ class SessionCookieJar extends \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar
54
  /**
55
  * Load the contents of the client session into the data array
56
  */
57
- protected function load() : void
58
  {
59
  if (!isset($_SESSION[$this->sessionKey])) {
60
  return;
7
  */
8
  class SessionCookieJar extends \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar
9
  {
10
+ /** @var string session key */
 
 
11
  private $sessionKey;
12
+ /** @var bool Control whether to persist session cookies or not. */
 
 
13
  private $storeSessionCookies;
14
  /**
15
  * Create a new SessionCookieJar object
16
  *
17
+ * @param string $sessionKey Session key name to store the cookie
18
+ * data in session
19
+ * @param bool $storeSessionCookies Set to true to store session cookies
20
+ * in the cookie jar.
21
  */
22
+ public function __construct($sessionKey, $storeSessionCookies = \false)
23
  {
24
  parent::__construct();
25
  $this->sessionKey = $sessionKey;
36
  /**
37
  * Save cookies to the client session
38
  */
39
+ public function save()
40
  {
41
  $json = [];
 
42
  foreach ($this as $cookie) {
43
+ /** @var SetCookie $cookie */
44
  if (\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) {
45
  $json[] = $cookie->toArray();
46
  }
50
  /**
51
  * Load the contents of the client session into the data array
52
  */
53
+ protected function load()
54
  {
55
  if (!isset($_SESSION[$this->sessionKey])) {
56
  return;
vendor_prefix/guzzlehttp/guzzle/src/Cookie/SetCookie.php CHANGED
@@ -7,27 +7,25 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp\Cookie;
7
  */
8
  class SetCookie
9
  {
10
- /**
11
- * @var array
12
- */
13
  private static $defaults = ['Name' => null, 'Value' => null, 'Domain' => null, 'Path' => '/', 'Max-Age' => null, 'Expires' => null, 'Secure' => \false, 'Discard' => \false, 'HttpOnly' => \false];
14
- /**
15
- * @var array Cookie data
16
- */
17
  private $data;
18
  /**
19
- * Create a new SetCookie object from a string.
20
  *
21
  * @param string $cookie Set-Cookie header string
 
 
22
  */
23
- public static function fromString(string $cookie) : self
24
  {
25
  // Create the default return array
26
  $data = self::$defaults;
27
  // Explode the cookie string using a series of semicolons
28
  $pieces = \array_filter(\array_map('trim', \explode(';', $cookie)));
29
  // The name of the cookie (first kvp) must exist and include an equal sign.
30
- if (!isset($pieces[0]) || \strpos($pieces[0], '=') === \false) {
31
  return new self($data);
32
  }
33
  // Add the cookie pieces into the parsed data array
@@ -36,7 +34,7 @@ class SetCookie
36
  $key = \trim($cookieParts[0]);
37
  $value = isset($cookieParts[1]) ? \trim($cookieParts[1], " \n\r\t\0\v") : \true;
38
  // Only check for non-cookies when cookies have been found
39
- if (!isset($data['Name'])) {
40
  $data['Name'] = $key;
41
  $data['Value'] = $value;
42
  } else {
@@ -56,18 +54,13 @@ class SetCookie
56
  */
57
  public function __construct(array $data = [])
58
  {
59
- /** @var array|null $replaced will be null in case of replace error */
60
- $replaced = \array_replace(self::$defaults, $data);
61
- if ($replaced === null) {
62
- throw new \InvalidArgumentException('Unable to replace the default values for the Cookie.');
63
- }
64
- $this->data = $replaced;
65
  // Extract the Expires value and turn it into a UNIX timestamp if needed
66
  if (!$this->getExpires() && $this->getMaxAge()) {
67
  // Calculate the Expires date
68
  $this->setExpires(\time() + $this->getMaxAge());
69
- } elseif (null !== ($expires = $this->getExpires()) && !\is_numeric($expires)) {
70
- $this->setExpires($expires);
71
  }
72
  }
73
  public function __toString()
@@ -84,12 +77,12 @@ class SetCookie
84
  }
85
  return \rtrim($str, '; ');
86
  }
87
- public function toArray() : array
88
  {
89
  return $this->data;
90
  }
91
  /**
92
- * Get the cookie name.
93
  *
94
  * @return string
95
  */
@@ -98,34 +91,34 @@ class SetCookie
98
  return $this->data['Name'];
99
  }
100
  /**
101
- * Set the cookie name.
102
  *
103
  * @param string $name Cookie name
104
  */
105
- public function setName($name) : void
106
  {
107
  $this->data['Name'] = $name;
108
  }
109
  /**
110
- * Get the cookie value.
111
  *
112
- * @return string|null
113
  */
114
  public function getValue()
115
  {
116
  return $this->data['Value'];
117
  }
118
  /**
119
- * Set the cookie value.
120
  *
121
  * @param string $value Cookie value
122
  */
123
- public function setValue($value) : void
124
  {
125
  $this->data['Value'] = $value;
126
  }
127
  /**
128
- * Get the domain.
129
  *
130
  * @return string|null
131
  */
@@ -134,16 +127,16 @@ class SetCookie
134
  return $this->data['Domain'];
135
  }
136
  /**
137
- * Set the domain of the cookie.
138
  *
139
  * @param string $domain
140
  */
141
- public function setDomain($domain) : void
142
  {
143
  $this->data['Domain'] = $domain;
144
  }
145
  /**
146
- * Get the path.
147
  *
148
  * @return string
149
  */
@@ -152,16 +145,16 @@ class SetCookie
152
  return $this->data['Path'];
153
  }
154
  /**
155
- * Set the path of the cookie.
156
  *
157
  * @param string $path Path of the cookie
158
  */
159
- public function setPath($path) : void
160
  {
161
  $this->data['Path'] = $path;
162
  }
163
  /**
164
- * Maximum lifetime of the cookie in seconds.
165
  *
166
  * @return int|null
167
  */
@@ -170,34 +163,34 @@ class SetCookie
170
  return $this->data['Max-Age'];
171
  }
172
  /**
173
- * Set the max-age of the cookie.
174
  *
175
  * @param int $maxAge Max age of the cookie in seconds
176
  */
177
- public function setMaxAge($maxAge) : void
178
  {
179
  $this->data['Max-Age'] = $maxAge;
180
  }
181
  /**
182
- * The UNIX timestamp when the cookie Expires.
183
  *
184
- * @return string|int|null
185
  */
186
  public function getExpires()
187
  {
188
  return $this->data['Expires'];
189
  }
190
  /**
191
- * Set the unix timestamp for which the cookie will expire.
192
  *
193
- * @param int|string $timestamp Unix timestamp or any English textual datetime description.
194
  */
195
- public function setExpires($timestamp) : void
196
  {
197
  $this->data['Expires'] = \is_numeric($timestamp) ? (int) $timestamp : \strtotime($timestamp);
198
  }
199
  /**
200
- * Get whether or not this is a secure cookie.
201
  *
202
  * @return bool|null
203
  */
@@ -206,16 +199,16 @@ class SetCookie
206
  return $this->data['Secure'];
207
  }
208
  /**
209
- * Set whether or not the cookie is secure.
210
  *
211
  * @param bool $secure Set to true or false if secure
212
  */
213
- public function setSecure($secure) : void
214
  {
215
  $this->data['Secure'] = $secure;
216
  }
217
  /**
218
- * Get whether or not this is a session cookie.
219
  *
220
  * @return bool|null
221
  */
@@ -224,16 +217,16 @@ class SetCookie
224
  return $this->data['Discard'];
225
  }
226
  /**
227
- * Set whether or not this is a session cookie.
228
  *
229
  * @param bool $discard Set to true or false if this is a session cookie
230
  */
231
- public function setDiscard($discard) : void
232
  {
233
  $this->data['Discard'] = $discard;
234
  }
235
  /**
236
- * Get whether or not this is an HTTP only cookie.
237
  *
238
  * @return bool
239
  */
@@ -242,11 +235,11 @@ class SetCookie
242
  return $this->data['HttpOnly'];
243
  }
244
  /**
245
- * Set whether or not this is an HTTP only cookie.
246
  *
247
  * @param bool $httpOnly Set to true or false if this is HTTP only
248
  */
249
- public function setHttpOnly($httpOnly) : void
250
  {
251
  $this->data['HttpOnly'] = $httpOnly;
252
  }
@@ -264,8 +257,10 @@ class SetCookie
264
  * path is a %x2F ("/") character.
265
  *
266
  * @param string $requestPath Path to check against
 
 
267
  */
268
- public function matchesPath(string $requestPath) : bool
269
  {
270
  $cookiePath = $this->getPath();
271
  // Match on exact matches or when path is the default empty "/"
@@ -284,62 +279,63 @@ class SetCookie
284
  return \substr($requestPath, \strlen($cookiePath), 1) === '/';
285
  }
286
  /**
287
- * Check if the cookie matches a domain value.
288
  *
289
  * @param string $domain Domain to check against
 
 
290
  */
291
- public function matchesDomain(string $domain) : bool
292
  {
293
- $cookieDomain = $this->getDomain();
294
- if (null === $cookieDomain) {
295
- return \true;
296
- }
297
  // Remove the leading '.' as per spec in RFC 6265.
298
- // https://tools.ietf.org/html/rfc6265#section-5.2.3
299
- $cookieDomain = \ltrim($cookieDomain, '.');
300
  // Domain not set or exact match.
301
  if (!$cookieDomain || !\strcasecmp($domain, $cookieDomain)) {
302
  return \true;
303
  }
304
  // Matching the subdomain according to RFC 6265.
305
- // https://tools.ietf.org/html/rfc6265#section-5.1.3
306
  if (\filter_var($domain, \FILTER_VALIDATE_IP)) {
307
  return \false;
308
  }
309
  return (bool) \preg_match('/\\.' . \preg_quote($cookieDomain, '/') . '$/', $domain);
310
  }
311
  /**
312
- * Check if the cookie is expired.
 
 
313
  */
314
- public function isExpired() : bool
315
  {
316
  return $this->getExpires() !== null && \time() > $this->getExpires();
317
  }
318
  /**
319
- * Check if the cookie is valid according to RFC 6265.
320
  *
321
  * @return bool|string Returns true if valid or an error message if invalid
322
  */
323
  public function validate()
324
  {
 
325
  $name = $this->getName();
326
- if ($name === '') {
327
  return 'The cookie name must not be empty';
328
  }
329
  // Check if any of the invalid characters are present in the cookie name
330
  if (\preg_match('/[\\x00-\\x20\\x22\\x28-\\x29\\x2c\\x2f\\x3a-\\x40\\x5c\\x7b\\x7d\\x7f]/', $name)) {
331
  return 'Cookie name must not contain invalid characters: ASCII ' . 'Control characters (0-31;127), space, tab and the ' . 'following characters: ()<>@,;:\\"/?={}';
332
  }
333
- // Value must not be null. 0 and empty string are valid. Empty strings
334
- // are technically against RFC 6265, but known to happen in the wild.
335
  $value = $this->getValue();
336
- if ($value === null) {
337
  return 'The cookie value must not be empty';
338
  }
339
- // Domains must not be empty, but can be 0. "0" is not a valid internet
340
- // domain, but may be used as server name in a private network.
 
341
  $domain = $this->getDomain();
342
- if ($domain === null || $domain === '') {
343
  return 'The cookie domain must not be empty';
344
  }
345
  return \true;
7
  */
8
  class SetCookie
9
  {
10
+ /** @var array */
 
 
11
  private static $defaults = ['Name' => null, 'Value' => null, 'Domain' => null, 'Path' => '/', 'Max-Age' => null, 'Expires' => null, 'Secure' => \false, 'Discard' => \false, 'HttpOnly' => \false];
12
+ /** @var array Cookie data */
 
 
13
  private $data;
14
  /**
15
+ * Create a new SetCookie object from a string
16
  *
17
  * @param string $cookie Set-Cookie header string
18
+ *
19
+ * @return self
20
  */
21
+ public static function fromString($cookie)
22
  {
23
  // Create the default return array
24
  $data = self::$defaults;
25
  // Explode the cookie string using a series of semicolons
26
  $pieces = \array_filter(\array_map('trim', \explode(';', $cookie)));
27
  // The name of the cookie (first kvp) must exist and include an equal sign.
28
+ if (empty($pieces[0]) || !\strpos($pieces[0], '=')) {
29
  return new self($data);
30
  }
31
  // Add the cookie pieces into the parsed data array
34
  $key = \trim($cookieParts[0]);
35
  $value = isset($cookieParts[1]) ? \trim($cookieParts[1], " \n\r\t\0\v") : \true;
36
  // Only check for non-cookies when cookies have been found
37
+ if (empty($data['Name'])) {
38
  $data['Name'] = $key;
39
  $data['Value'] = $value;
40
  } else {
54
  */
55
  public function __construct(array $data = [])
56
  {
57
+ $this->data = \array_replace(self::$defaults, $data);
 
 
 
 
 
58
  // Extract the Expires value and turn it into a UNIX timestamp if needed
59
  if (!$this->getExpires() && $this->getMaxAge()) {
60
  // Calculate the Expires date
61
  $this->setExpires(\time() + $this->getMaxAge());
62
+ } elseif ($this->getExpires() && !\is_numeric($this->getExpires())) {
63
+ $this->setExpires($this->getExpires());
64
  }
65
  }
66
  public function __toString()
77
  }
78
  return \rtrim($str, '; ');
79
  }
80
+ public function toArray()
81
  {
82
  return $this->data;
83
  }
84
  /**
85
+ * Get the cookie name
86
  *
87
  * @return string
88
  */
91
  return $this->data['Name'];
92
  }
93
  /**
94
+ * Set the cookie name
95
  *
96
  * @param string $name Cookie name
97
  */
98
+ public function setName($name)
99
  {
100
  $this->data['Name'] = $name;
101
  }
102
  /**
103
+ * Get the cookie value
104
  *
105
+ * @return string
106
  */
107
  public function getValue()
108
  {
109
  return $this->data['Value'];
110
  }
111
  /**
112
+ * Set the cookie value
113
  *
114
  * @param string $value Cookie value
115
  */
116
+ public function setValue($value)
117
  {
118
  $this->data['Value'] = $value;
119
  }
120
  /**
121
+ * Get the domain
122
  *
123
  * @return string|null
124
  */
127
  return $this->data['Domain'];
128
  }
129
  /**
130
+ * Set the domain of the cookie
131
  *
132
  * @param string $domain
133
  */
134
+ public function setDomain($domain)
135
  {
136
  $this->data['Domain'] = $domain;
137
  }
138
  /**
139
+ * Get the path
140
  *
141
  * @return string
142
  */
145
  return $this->data['Path'];
146
  }
147
  /**
148
+ * Set the path of the cookie
149
  *
150
  * @param string $path Path of the cookie
151
  */
152
+ public function setPath($path)
153
  {
154
  $this->data['Path'] = $path;
155
  }
156
  /**
157
+ * Maximum lifetime of the cookie in seconds
158
  *
159
  * @return int|null
160
  */
163
  return $this->data['Max-Age'];
164
  }
165
  /**
166
+ * Set the max-age of the cookie
167
  *
168
  * @param int $maxAge Max age of the cookie in seconds
169
  */
170
+ public function setMaxAge($maxAge)
171
  {
172
  $this->data['Max-Age'] = $maxAge;
173
  }
174
  /**
175
+ * The UNIX timestamp when the cookie Expires
176
  *
177
+ * @return mixed
178
  */
179
  public function getExpires()
180
  {
181
  return $this->data['Expires'];
182
  }
183
  /**
184
+ * Set the unix timestamp for which the cookie will expire
185
  *
186
+ * @param int $timestamp Unix timestamp
187
  */
188
+ public function setExpires($timestamp)
189
  {
190
  $this->data['Expires'] = \is_numeric($timestamp) ? (int) $timestamp : \strtotime($timestamp);
191
  }
192
  /**
193
+ * Get whether or not this is a secure cookie
194
  *
195
  * @return bool|null
196
  */
199
  return $this->data['Secure'];
200
  }
201
  /**
202
+ * Set whether or not the cookie is secure
203
  *
204
  * @param bool $secure Set to true or false if secure
205
  */
206
+ public function setSecure($secure)
207
  {
208
  $this->data['Secure'] = $secure;
209
  }
210
  /**
211
+ * Get whether or not this is a session cookie
212
  *
213
  * @return bool|null
214
  */
217
  return $this->data['Discard'];
218
  }
219
  /**
220
+ * Set whether or not this is a session cookie
221
  *
222
  * @param bool $discard Set to true or false if this is a session cookie
223
  */
224
+ public function setDiscard($discard)
225
  {
226
  $this->data['Discard'] = $discard;
227
  }
228
  /**
229
+ * Get whether or not this is an HTTP only cookie
230
  *
231
  * @return bool
232
  */
235
  return $this->data['HttpOnly'];
236
  }
237
  /**
238
+ * Set whether or not this is an HTTP only cookie
239
  *
240
  * @param bool $httpOnly Set to true or false if this is HTTP only
241
  */
242
+ public function setHttpOnly($httpOnly)
243
  {
244
  $this->data['HttpOnly'] = $httpOnly;
245
  }
257
  * path is a %x2F ("/") character.
258
  *
259
  * @param string $requestPath Path to check against
260
+ *
261
+ * @return bool
262
  */
263
+ public function matchesPath($requestPath)
264
  {
265
  $cookiePath = $this->getPath();
266
  // Match on exact matches or when path is the default empty "/"
279
  return \substr($requestPath, \strlen($cookiePath), 1) === '/';
280
  }
281
  /**
282
+ * Check if the cookie matches a domain value
283
  *
284
  * @param string $domain Domain to check against
285
+ *
286
+ * @return bool
287
  */
288
+ public function matchesDomain($domain)
289
  {
 
 
 
 
290
  // Remove the leading '.' as per spec in RFC 6265.
291
+ // http://tools.ietf.org/html/rfc6265#section-5.2.3
292
+ $cookieDomain = \ltrim($this->getDomain(), '.');
293
  // Domain not set or exact match.
294
  if (!$cookieDomain || !\strcasecmp($domain, $cookieDomain)) {
295
  return \true;
296
  }
297
  // Matching the subdomain according to RFC 6265.
298
+ // http://tools.ietf.org/html/rfc6265#section-5.1.3
299
  if (\filter_var($domain, \FILTER_VALIDATE_IP)) {
300
  return \false;
301
  }
302
  return (bool) \preg_match('/\\.' . \preg_quote($cookieDomain, '/') . '$/', $domain);
303
  }
304
  /**
305
+ * Check if the cookie is expired
306
+ *
307
+ * @return bool
308
  */
309
+ public function isExpired()
310
  {
311
  return $this->getExpires() !== null && \time() > $this->getExpires();
312
  }
313
  /**
314
+ * Check if the cookie is valid according to RFC 6265
315
  *
316
  * @return bool|string Returns true if valid or an error message if invalid
317
  */
318
  public function validate()
319
  {
320
+ // Names must not be empty, but can be 0
321
  $name = $this->getName();
322
+ if (empty($name) && !\is_numeric($name)) {
323
  return 'The cookie name must not be empty';
324
  }
325
  // Check if any of the invalid characters are present in the cookie name
326
  if (\preg_match('/[\\x00-\\x20\\x22\\x28-\\x29\\x2c\\x2f\\x3a-\\x40\\x5c\\x7b\\x7d\\x7f]/', $name)) {
327
  return 'Cookie name must not contain invalid characters: ASCII ' . 'Control characters (0-31;127), space, tab and the ' . 'following characters: ()<>@,;:\\"/?={}';
328
  }
329
+ // Value must not be empty, but can be 0
 
330
  $value = $this->getValue();
331
+ if (empty($value) && !\is_numeric($value)) {
332
  return 'The cookie value must not be empty';
333
  }
334
+ // Domains must not be empty, but can be 0
335
+ // A "0" is not a valid internet domain, but may be used as server name
336
+ // in a private network.
337
  $domain = $this->getDomain();
338
+ if (empty($domain) && !\is_numeric($domain)) {
339
  return 'The cookie domain must not be empty';
340
  }
341
  return \true;
vendor_prefix/guzzlehttp/guzzle/src/Exception/BadResponseException.php CHANGED
@@ -9,23 +9,11 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
9
  */
10
  class BadResponseException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException
11
  {
12
- public function __construct(string $message, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response, \Throwable $previous = null, array $handlerContext = [])
13
  {
 
 
 
14
  parent::__construct($message, $request, $response, $previous, $handlerContext);
15
  }
16
- /**
17
- * Current exception and the ones that extend it will always have a response.
18
- */
19
- public function hasResponse() : bool
20
- {
21
- return \true;
22
- }
23
- /**
24
- * This function narrows the return type from the parent class and does not allow it to be nullable.
25
- */
26
- public function getResponse() : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
27
- {
28
- /** @var ResponseInterface */
29
- return parent::getResponse();
30
- }
31
  }
9
  */
10
  class BadResponseException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException
11
  {
12
+ public function __construct($message, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, \Exception $previous = null, array $handlerContext = [])
13
  {
14
+ if (null === $response) {
15
+ @\trigger_error('Instantiating the ' . __CLASS__ . ' class without a Response is deprecated since version 6.3 and will be removed in 7.0.', \E_USER_DEPRECATED);
16
+ }
17
  parent::__construct($message, $request, $response, $previous, $handlerContext);
18
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  }
vendor_prefix/guzzlehttp/guzzle/src/Exception/ConnectException.php CHANGED
@@ -2,46 +2,30 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Exception;
4
 
5
- use PYS_PRO_GLOBAL\Psr\Http\Client\NetworkExceptionInterface;
6
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
7
  /**
8
  * Exception thrown when a connection cannot be established.
9
  *
10
  * Note that no response is present for a ConnectException
11
  */
12
- class ConnectException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TransferException implements \PYS_PRO_GLOBAL\Psr\Http\Client\NetworkExceptionInterface
13
  {
14
- /**
15
- * @var RequestInterface
16
- */
17
- private $request;
18
- /**
19
- * @var array
20
- */
21
- private $handlerContext;
22
- public function __construct(string $message, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \Throwable $previous = null, array $handlerContext = [])
23
  {
24
- parent::__construct($message, 0, $previous);
25
- $this->request = $request;
26
- $this->handlerContext = $handlerContext;
27
  }
28
  /**
29
- * Get the request that caused the exception
30
  */
31
- public function getRequest() : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface
32
  {
33
- return $this->request;
34
  }
35
  /**
36
- * Get contextual information about the error from the underlying handler.
37
- *
38
- * The contents of this array will vary depending on which handler you are
39
- * using. It may also be just an empty array. Relying on this data will
40
- * couple you to a specific handler, but can give more debug information
41
- * when needed.
42
  */
43
- public function getHandlerContext() : array
44
  {
45
- return $this->handlerContext;
46
  }
47
  }
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Exception;
4
 
 
5
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
6
  /**
7
  * Exception thrown when a connection cannot be established.
8
  *
9
  * Note that no response is present for a ConnectException
10
  */
11
+ class ConnectException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException
12
  {
13
+ public function __construct($message, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \Exception $previous = null, array $handlerContext = [])
 
 
 
 
 
 
 
 
14
  {
15
+ parent::__construct($message, $request, null, $previous, $handlerContext);
 
 
16
  }
17
  /**
18
+ * @return null
19
  */
20
+ public function getResponse()
21
  {
22
+ return null;
23
  }
24
  /**
25
+ * @return bool
 
 
 
 
 
26
  */
27
+ public function hasResponse()
28
  {
29
+ return \false;
30
  }
31
  }
vendor_prefix/guzzlehttp/guzzle/src/Exception/GuzzleException.php CHANGED
@@ -2,7 +2,22 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Exception;
4
 
5
- use PYS_PRO_GLOBAL\Psr\Http\Client\ClientExceptionInterface;
6
- interface GuzzleException extends \PYS_PRO_GLOBAL\Psr\Http\Client\ClientExceptionInterface
7
- {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  }
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Exception;
4
 
5
+ use Throwable;
6
+ if (\interface_exists(\Throwable::class)) {
7
+ interface GuzzleException extends \Throwable
8
+ {
9
+ }
10
+ } else {
11
+ /**
12
+ * @method string getMessage()
13
+ * @method \Throwable|null getPrevious()
14
+ * @method mixed getCode()
15
+ * @method string getFile()
16
+ * @method int getLine()
17
+ * @method array getTrace()
18
+ * @method string getTraceAsString()
19
+ */
20
+ interface GuzzleException
21
+ {
22
+ }
23
  }
vendor_prefix/guzzlehttp/guzzle/src/Exception/RequestException.php CHANGED
@@ -2,33 +2,25 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Exception;
4
 
5
- use PYS_PRO_GLOBAL\GuzzleHttp\BodySummarizer;
6
- use PYS_PRO_GLOBAL\GuzzleHttp\BodySummarizerInterface;
7
- use PYS_PRO_GLOBAL\Psr\Http\Client\RequestExceptionInterface;
8
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
9
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
10
  use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
11
  /**
12
  * HTTP Request exception
13
  */
14
- class RequestException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TransferException implements \PYS_PRO_GLOBAL\Psr\Http\Client\RequestExceptionInterface
15
  {
16
- /**
17
- * @var RequestInterface
18
- */
19
  private $request;
20
- /**
21
- * @var ResponseInterface|null
22
- */
23
  private $response;
24
- /**
25
- * @var array
26
- */
27
  private $handlerContext;
28
- public function __construct(string $message, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, \Throwable $previous = null, array $handlerContext = [])
29
  {
30
  // Set the code of the exception if the response is set and not future.
31
- $code = $response ? $response->getStatusCode() : 0;
32
  parent::__construct($message, $code, $previous);
33
  $this->request = $request;
34
  $this->response = $response;
@@ -36,24 +28,30 @@ class RequestException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TransferExce
36
  }
37
  /**
38
  * Wrap non-RequestExceptions with a RequestException
 
 
 
 
 
39
  */
40
- public static function wrapException(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \Throwable $e) : \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException
41
  {
42
  return $e instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException ? $e : new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException($e->getMessage(), $request, null, $e);
43
  }
44
  /**
45
  * Factory method to create a new exception with a normalized error message
46
  *
47
- * @param RequestInterface $request Request sent
48
- * @param ResponseInterface $response Response received
49
- * @param \Throwable|null $previous Previous exception
50
- * @param array $handlerContext Optional handler context
51
- * @param BodySummarizerInterface|null $bodySummarizer Optional body summarizer
 
52
  */
53
- public static function create(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, \Throwable $previous = null, array $handlerContext = [], \PYS_PRO_GLOBAL\GuzzleHttp\BodySummarizerInterface $bodySummarizer = null) : self
54
  {
55
  if (!$response) {
56
- return new self('Error completing request', $request, null, $previous, $handlerContext);
57
  }
58
  $level = (int) \floor($response->getStatusCode() / 100);
59
  if ($level === 4) {
@@ -71,16 +69,33 @@ class RequestException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TransferExce
71
  // Client Error: `GET /` resulted in a `404 Not Found` response:
72
  // <html> ... (truncated)
73
  $message = \sprintf('%s: `%s %s` resulted in a `%s %s` response', $label, $request->getMethod(), $uri, $response->getStatusCode(), $response->getReasonPhrase());
74
- $summary = ($bodySummarizer ?? new \PYS_PRO_GLOBAL\GuzzleHttp\BodySummarizer())->summarize($response);
75
  if ($summary !== null) {
76
  $message .= ":\n{$summary}\n";
77
  }
78
- return new $className($message, $request, $response, $previous, $handlerContext);
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  }
80
  /**
81
  * Obfuscates URI if there is a username and a password present
 
 
 
 
82
  */
83
- private static function obfuscateUri(\PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface $uri) : \PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface
84
  {
85
  $userInfo = $uri->getUserInfo();
86
  if (\false !== ($pos = \strpos($userInfo, ':'))) {
@@ -90,22 +105,28 @@ class RequestException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TransferExce
90
  }
91
  /**
92
  * Get the request that caused the exception
 
 
93
  */
94
- public function getRequest() : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface
95
  {
96
  return $this->request;
97
  }
98
  /**
99
  * Get the associated response
 
 
100
  */
101
- public function getResponse() : ?\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
102
  {
103
  return $this->response;
104
  }
105
  /**
106
  * Check if a response was received
 
 
107
  */
108
- public function hasResponse() : bool
109
  {
110
  return $this->response !== null;
111
  }
@@ -116,8 +137,10 @@ class RequestException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TransferExce
116
  * using. It may also be just an empty array. Relying on this data will
117
  * couple you to a specific handler, but can give more debug information
118
  * when needed.
 
 
119
  */
120
- public function getHandlerContext() : array
121
  {
122
  return $this->handlerContext;
123
  }
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Exception;
4
 
5
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
 
 
6
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
7
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
8
  use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
9
  /**
10
  * HTTP Request exception
11
  */
12
+ class RequestException extends \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TransferException
13
  {
14
+ /** @var RequestInterface */
 
 
15
  private $request;
16
+ /** @var ResponseInterface|null */
 
 
17
  private $response;
18
+ /** @var array */
 
 
19
  private $handlerContext;
20
+ public function __construct($message, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, \Exception $previous = null, array $handlerContext = [])
21
  {
22
  // Set the code of the exception if the response is set and not future.
23
+ $code = $response && !$response instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface ? $response->getStatusCode() : 0;
24
  parent::__construct($message, $code, $previous);
25
  $this->request = $request;
26
  $this->response = $response;
28
  }
29
  /**
30
  * Wrap non-RequestExceptions with a RequestException
31
+ *
32
+ * @param RequestInterface $request
33
+ * @param \Exception $e
34
+ *
35
+ * @return RequestException
36
  */
37
+ public static function wrapException(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \Exception $e)
38
  {
39
  return $e instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException ? $e : new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException($e->getMessage(), $request, null, $e);
40
  }
41
  /**
42
  * Factory method to create a new exception with a normalized error message
43
  *
44
+ * @param RequestInterface $request Request
45
+ * @param ResponseInterface $response Response received
46
+ * @param \Exception $previous Previous exception
47
+ * @param array $ctx Optional handler context.
48
+ *
49
+ * @return self
50
  */
51
+ public static function create(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, \Exception $previous = null, array $ctx = [])
52
  {
53
  if (!$response) {
54
+ return new self('Error completing request', $request, null, $previous, $ctx);
55
  }
56
  $level = (int) \floor($response->getStatusCode() / 100);
57
  if ($level === 4) {
69
  // Client Error: `GET /` resulted in a `404 Not Found` response:
70
  // <html> ... (truncated)
71
  $message = \sprintf('%s: `%s %s` resulted in a `%s %s` response', $label, $request->getMethod(), $uri, $response->getStatusCode(), $response->getReasonPhrase());
72
+ $summary = static::getResponseBodySummary($response);
73
  if ($summary !== null) {
74
  $message .= ":\n{$summary}\n";
75
  }
76
+ return new $className($message, $request, $response, $previous, $ctx);
77
+ }
78
+ /**
79
+ * Get a short summary of the response
80
+ *
81
+ * Will return `null` if the response is not printable.
82
+ *
83
+ * @param ResponseInterface $response
84
+ *
85
+ * @return string|null
86
+ */
87
+ public static function getResponseBodySummary(\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response)
88
+ {
89
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\get_message_body_summary($response);
90
  }
91
  /**
92
  * Obfuscates URI if there is a username and a password present
93
+ *
94
+ * @param UriInterface $uri
95
+ *
96
+ * @return UriInterface
97
  */
98
+ private static function obfuscateUri(\PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface $uri)
99
  {
100
  $userInfo = $uri->getUserInfo();
101
  if (\false !== ($pos = \strpos($userInfo, ':'))) {
105
  }
106
  /**
107
  * Get the request that caused the exception
108
+ *
109
+ * @return RequestInterface
110
  */
111
+ public function getRequest()
112
  {
113
  return $this->request;
114
  }
115
  /**
116
  * Get the associated response
117
+ *
118
+ * @return ResponseInterface|null
119
  */
120
+ public function getResponse()
121
  {
122
  return $this->response;
123
  }
124
  /**
125
  * Check if a response was received
126
+ *
127
+ * @return bool
128
  */
129
+ public function hasResponse()
130
  {
131
  return $this->response !== null;
132
  }
137
  * using. It may also be just an empty array. Relying on this data will
138
  * couple you to a specific handler, but can give more debug information
139
  * when needed.
140
+ *
141
+ * @return array
142
  */
143
+ public function getHandlerContext()
144
  {
145
  return $this->handlerContext;
146
  }
vendor_prefix/guzzlehttp/guzzle/src/Exception/SeekException.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL\GuzzleHttp\Exception;
4
+
5
+ use PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface;
6
+ /**
7
+ * Exception thrown when a seek fails on a stream.
8
+ */
9
+ class SeekException extends \RuntimeException implements \PYS_PRO_GLOBAL\GuzzleHttp\Exception\GuzzleException
10
+ {
11
+ private $stream;
12
+ public function __construct(\PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface $stream, $pos = 0, $msg = '')
13
+ {
14
+ $this->stream = $stream;
15
+ $msg = $msg ?: 'Could not seek the stream to position ' . $pos;
16
+ parent::__construct($msg);
17
+ }
18
+ /**
19
+ * @return StreamInterface
20
+ */
21
+ public function getStream()
22
+ {
23
+ return $this->stream;
24
+ }
25
+ }
vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlFactory.php CHANGED
@@ -4,41 +4,30 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException;
7
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
8
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\FulfilledPromise;
9
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
10
  use PYS_PRO_GLOBAL\GuzzleHttp\Psr7\LazyOpenStream;
11
  use PYS_PRO_GLOBAL\GuzzleHttp\TransferStats;
12
- use PYS_PRO_GLOBAL\GuzzleHttp\Utils;
13
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
14
  /**
15
  * Creates curl resources from a request
16
- *
17
- * @final
18
  */
19
  class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInterface
20
  {
21
- public const CURL_VERSION_STR = 'curl_version';
22
- /**
23
- * @deprecated
24
- */
25
- public const LOW_CURL_VERSION_NUMBER = '7.21.2';
26
- /**
27
- * @var resource[]|\CurlHandle[]
28
- */
29
  private $handles = [];
30
- /**
31
- * @var int Total number of idle handles to keep in cache
32
- */
33
  private $maxHandles;
34
  /**
35
  * @param int $maxHandles Maximum number of idle handles.
36
  */
37
- public function __construct(int $maxHandles)
38
  {
39
  $this->maxHandles = $maxHandles;
40
  }
41
- public function create(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle
42
  {
43
  if (isset($options['curl']['body_as_string'])) {
44
  $options['_body_as_string'] = $options['curl']['body_as_string'];
@@ -61,7 +50,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
61
  \curl_setopt_array($easy->handle, $conf);
62
  return $easy;
63
  }
64
- public function release(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy) : void
65
  {
66
  $resource = $easy->handle;
67
  unset($easy->handle);
@@ -84,10 +73,13 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
84
  * Completes a cURL transaction, either returning a response promise or a
85
  * rejected promise.
86
  *
87
- * @param callable(RequestInterface, array): PromiseInterface $handler
88
- * @param CurlFactoryInterface $factory Dictates how the handle is released
 
 
 
89
  */
90
- public static function finish(callable $handler, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInterface $factory) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
91
  {
92
  if (isset($easy->options['on_stats'])) {
93
  self::invokeStats($easy);
@@ -104,17 +96,14 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
104
  }
105
  return new \PYS_PRO_GLOBAL\GuzzleHttp\Promise\FulfilledPromise($easy->response);
106
  }
107
- private static function invokeStats(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy) : void
108
  {
109
  $curlStats = \curl_getinfo($easy->handle);
110
  $curlStats['appconnect_time'] = \curl_getinfo($easy->handle, \CURLINFO_APPCONNECT_TIME);
111
  $stats = new \PYS_PRO_GLOBAL\GuzzleHttp\TransferStats($easy->request, $easy->response, $curlStats['total_time'], $easy->errno, $curlStats);
112
- $easy->options['on_stats']($stats);
113
  }
114
- /**
115
- * @param callable(RequestInterface, array): PromiseInterface $handler
116
- */
117
- private static function finishError(callable $handler, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInterface $factory) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
118
  {
119
  // Get error information and release the handle to the factory.
120
  $ctx = ['errno' => $easy->errno, 'error' => \curl_error($easy->handle), 'appconnect_time' => \curl_getinfo($easy->handle, \CURLINFO_APPCONNECT_TIME)] + \curl_getinfo($easy->handle);
@@ -126,30 +115,24 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
126
  }
127
  return self::createRejection($easy, $ctx);
128
  }
129
- private static function createRejection(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array $ctx) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
130
  {
131
  static $connectionErrors = [\CURLE_OPERATION_TIMEOUTED => \true, \CURLE_COULDNT_RESOLVE_HOST => \true, \CURLE_COULDNT_CONNECT => \true, \CURLE_SSL_CONNECT_ERROR => \true, \CURLE_GOT_NOTHING => \true];
132
- if ($easy->createResponseException) {
133
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor(new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException('An error was encountered while creating the response', $easy->request, $easy->response, $easy->createResponseException, $ctx));
134
- }
135
  // If an exception was encountered during the onHeaders event, then
136
  // return a rejected promise that wraps that exception.
137
  if ($easy->onHeadersException) {
138
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor(new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException('An error was encountered during the on_headers event', $easy->request, $easy->response, $easy->onHeadersException, $ctx));
139
  }
140
- $message = \sprintf('cURL error %s: %s (%s)', $ctx['errno'], $ctx['error'], 'see https://curl.haxx.se/libcurl/c/libcurl-errors.html');
141
- $uriString = (string) $easy->request->getUri();
142
- if ($uriString !== '' && \false === \strpos($ctx['error'], $uriString)) {
143
- $message .= \sprintf(' for %s', $uriString);
144
  }
145
  // Create a connection exception if it was a specific error code.
146
  $error = isset($connectionErrors[$easy->errno]) ? new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException($message, $easy->request, null, $ctx) : new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException($message, $easy->request, $easy->response, null, $ctx);
147
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($error);
148
  }
149
- /**
150
- * @return array<int|string, mixed>
151
- */
152
- private function getDefaultConf(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy) : array
153
  {
154
  $conf = ['_headers' => $easy->request->getHeaders(), \CURLOPT_CUSTOMREQUEST => $easy->request->getMethod(), \CURLOPT_URL => (string) $easy->request->getUri()->withFragment(''), \CURLOPT_RETURNTRANSFER => \false, \CURLOPT_HEADER => \false, \CURLOPT_CONNECTTIMEOUT => 150];
155
  if (\defined('CURLOPT_PROTOCOLS')) {
@@ -165,7 +148,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
165
  }
166
  return $conf;
167
  }
168
- private function applyMethod(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array &$conf) : void
169
  {
170
  $body = $easy->request->getBody();
171
  $size = $body->getSize();
@@ -175,7 +158,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
175
  }
176
  $method = $easy->request->getMethod();
177
  if ($method === 'PUT' || $method === 'POST') {
178
- // See https://tools.ietf.org/html/rfc7230#section-3.3.2
179
  if (!$easy->request->hasHeader('Content-Length')) {
180
  $conf[\CURLOPT_HTTPHEADER][] = 'Content-Length: 0';
181
  }
@@ -184,7 +167,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
184
  unset($conf[\CURLOPT_WRITEFUNCTION], $conf[\CURLOPT_READFUNCTION], $conf[\CURLOPT_FILE], $conf[\CURLOPT_INFILE]);
185
  }
186
  }
187
- private function applyBody(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, array &$conf) : void
188
  {
189
  $size = $request->hasHeader('Content-Length') ? (int) $request->getHeaderLine('Content-Length') : null;
190
  // Send the body as a string if the size is less than 1MB OR if the
@@ -204,7 +187,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
204
  if ($body->isSeekable()) {
205
  $body->rewind();
206
  }
207
- $conf[\CURLOPT_READFUNCTION] = static function ($ch, $fd, $length) use($body) {
208
  return $body->read($length);
209
  };
210
  }
@@ -217,7 +200,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
217
  $conf[\CURLOPT_HTTPHEADER][] = 'Content-Type:';
218
  }
219
  }
220
- private function applyHeaders(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array &$conf) : void
221
  {
222
  foreach ($conf['_headers'] as $name => $values) {
223
  foreach ($values as $value) {
@@ -242,7 +225,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
242
  * @param string $name Case-insensitive header to remove
243
  * @param array $options Array of options to modify
244
  */
245
- private function removeHeader(string $name, array &$options) : void
246
  {
247
  foreach (\array_keys($options['_headers']) as $key) {
248
  if (!\strcasecmp($key, $name)) {
@@ -251,7 +234,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
251
  }
252
  }
253
  }
254
- private function applyHandlerOptions(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array &$conf) : void
255
  {
256
  $options = $easy->options;
257
  if (isset($options['verify'])) {
@@ -269,7 +252,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
269
  }
270
  // If it's a directory or a link to a directory use CURLOPT_CAPATH.
271
  // If not, it's probably a file, or a link to a file, so use CURLOPT_CAINFO.
272
- if (\is_dir($options['verify']) || \is_link($options['verify']) === \true && ($verifyLink = \readlink($options['verify'])) !== \false && \is_dir($verifyLink)) {
273
  $conf[\CURLOPT_CAPATH] = $options['verify'];
274
  } else {
275
  $conf[\CURLOPT_CAINFO] = $options['verify'];
@@ -277,7 +260,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
277
  }
278
  }
279
  }
280
- if (!isset($options['curl'][\CURLOPT_ENCODING]) && !empty($options['decode_content'])) {
281
  $accept = $easy->request->getHeaderLine('Accept-Encoding');
282
  if ($accept) {
283
  $conf[\CURLOPT_ENCODING] = $accept;
@@ -287,23 +270,25 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
287
  $conf[\CURLOPT_HTTPHEADER][] = 'Accept-Encoding:';
288
  }
289
  }
290
- if (!isset($options['sink'])) {
291
- // Use a default temp stream if no sink was set.
292
- $options['sink'] = \fopen('php://temp', 'w+');
293
- }
294
- $sink = $options['sink'];
295
- if (!\is_string($sink)) {
296
- $sink = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\stream_for($sink);
297
- } elseif (!\is_dir(\dirname($sink))) {
298
- // Ensure that the directory exists before failing in curl.
299
- throw new \RuntimeException(\sprintf('Directory %s does not exist for sink value of %s', \dirname($sink), $sink));
 
 
 
 
300
  } else {
301
- $sink = new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\LazyOpenStream($sink, 'w+');
 
 
302
  }
303
- $easy->sink = $sink;
304
- $conf[\CURLOPT_WRITEFUNCTION] = static function ($ch, $write) use($sink) : int {
305
- return $sink->write($write);
306
- };
307
  $timeoutRequiresNoSignal = \false;
308
  if (isset($options['timeout'])) {
309
  $timeoutRequiresNoSignal |= $options['timeout'] < 1;
@@ -331,7 +316,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
331
  $scheme = $easy->request->getUri()->getScheme();
332
  if (isset($options['proxy'][$scheme])) {
333
  $host = $easy->request->getUri()->getHost();
334
- if (!isset($options['proxy']['no']) || !\PYS_PRO_GLOBAL\GuzzleHttp\Utils::isHostInNoProxy($host, $options['proxy']['no'])) {
335
  $conf[\CURLOPT_PROXY] = $options['proxy'][$scheme];
336
  }
337
  }
@@ -351,12 +336,12 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
351
  if (isset($options['ssl_key'])) {
352
  if (\is_array($options['ssl_key'])) {
353
  if (\count($options['ssl_key']) === 2) {
354
- [$sslKey, $conf[\CURLOPT_SSLKEYPASSWD]] = $options['ssl_key'];
355
  } else {
356
- [$sslKey] = $options['ssl_key'];
357
  }
358
  }
359
- $sslKey = $sslKey ?? $options['ssl_key'];
360
  if (!\file_exists($sslKey)) {
361
  throw new \InvalidArgumentException("SSL private key not found: {$sslKey}");
362
  }
@@ -368,12 +353,17 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
368
  throw new \InvalidArgumentException('progress client option must be callable');
369
  }
370
  $conf[\CURLOPT_NOPROGRESS] = \false;
371
- $conf[\CURLOPT_PROGRESSFUNCTION] = static function ($resource, int $downloadSize, int $downloaded, int $uploadSize, int $uploaded) use($progress) {
372
- $progress($downloadSize, $downloaded, $uploadSize, $uploaded);
 
 
 
 
 
373
  };
374
  }
375
  if (!empty($options['debug'])) {
376
- $conf[\CURLOPT_STDERR] = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::debugResource($options['debug']);
377
  $conf[\CURLOPT_VERBOSE] = \true;
378
  }
379
  }
@@ -385,10 +375,8 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
385
  * stream, and then encountered a "necessary data rewind wasn't possible"
386
  * error, causing the request to be sent through curl_multi_info_read()
387
  * without an error status.
388
- *
389
- * @param callable(RequestInterface, array): PromiseInterface $handler
390
  */
391
- private static function retryFailedRewind(callable $handler, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array $ctx) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
392
  {
393
  try {
394
  // Only rewind if the body has been read from.
@@ -411,7 +399,7 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
411
  }
412
  return $handler($easy->request, $easy->options);
413
  }
414
- private function createHeaderFn(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy) : callable
415
  {
416
  if (isset($easy->options['on_headers'])) {
417
  $onHeaders = $easy->options['on_headers'];
@@ -421,16 +409,11 @@ class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInter
421
  } else {
422
  $onHeaders = null;
423
  }
424
- return static function ($ch, $h) use($onHeaders, $easy, &$startingResponse) {
425
  $value = \trim($h);
426
  if ($value === '') {
427
  $startingResponse = \true;
428
- try {
429
- $easy->createResponse();
430
- } catch (\Exception $e) {
431
- $easy->createResponseException = $e;
432
- return -1;
433
- }
434
  if ($onHeaders !== null) {
435
  try {
436
  $onHeaders($easy->response);
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException;
 
7
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\FulfilledPromise;
8
+ use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
9
  use PYS_PRO_GLOBAL\GuzzleHttp\Psr7\LazyOpenStream;
10
  use PYS_PRO_GLOBAL\GuzzleHttp\TransferStats;
 
11
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
12
  /**
13
  * Creates curl resources from a request
 
 
14
  */
15
  class CurlFactory implements \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInterface
16
  {
17
+ const CURL_VERSION_STR = 'curl_version';
18
+ const LOW_CURL_VERSION_NUMBER = '7.21.2';
19
+ /** @var array */
 
 
 
 
 
20
  private $handles = [];
21
+ /** @var int Total number of idle handles to keep in cache */
 
 
22
  private $maxHandles;
23
  /**
24
  * @param int $maxHandles Maximum number of idle handles.
25
  */
26
+ public function __construct($maxHandles)
27
  {
28
  $this->maxHandles = $maxHandles;
29
  }
30
+ public function create(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
31
  {
32
  if (isset($options['curl']['body_as_string'])) {
33
  $options['_body_as_string'] = $options['curl']['body_as_string'];
50
  \curl_setopt_array($easy->handle, $conf);
51
  return $easy;
52
  }
53
+ public function release(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy)
54
  {
55
  $resource = $easy->handle;
56
  unset($easy->handle);
73
  * Completes a cURL transaction, either returning a response promise or a
74
  * rejected promise.
75
  *
76
+ * @param callable $handler
77
+ * @param EasyHandle $easy
78
+ * @param CurlFactoryInterface $factory Dictates how the handle is released
79
+ *
80
+ * @return \GuzzleHttp\Promise\PromiseInterface
81
  */
82
+ public static function finish(callable $handler, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInterface $factory)
83
  {
84
  if (isset($easy->options['on_stats'])) {
85
  self::invokeStats($easy);
96
  }
97
  return new \PYS_PRO_GLOBAL\GuzzleHttp\Promise\FulfilledPromise($easy->response);
98
  }
99
+ private static function invokeStats(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy)
100
  {
101
  $curlStats = \curl_getinfo($easy->handle);
102
  $curlStats['appconnect_time'] = \curl_getinfo($easy->handle, \CURLINFO_APPCONNECT_TIME);
103
  $stats = new \PYS_PRO_GLOBAL\GuzzleHttp\TransferStats($easy->request, $easy->response, $curlStats['total_time'], $easy->errno, $curlStats);
104
+ \call_user_func($easy->options['on_stats'], $stats);
105
  }
106
+ private static function finishError(callable $handler, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInterface $factory)
 
 
 
107
  {
108
  // Get error information and release the handle to the factory.
109
  $ctx = ['errno' => $easy->errno, 'error' => \curl_error($easy->handle), 'appconnect_time' => \curl_getinfo($easy->handle, \CURLINFO_APPCONNECT_TIME)] + \curl_getinfo($easy->handle);
115
  }
116
  return self::createRejection($easy, $ctx);
117
  }
118
+ private static function createRejection(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array $ctx)
119
  {
120
  static $connectionErrors = [\CURLE_OPERATION_TIMEOUTED => \true, \CURLE_COULDNT_RESOLVE_HOST => \true, \CURLE_COULDNT_CONNECT => \true, \CURLE_SSL_CONNECT_ERROR => \true, \CURLE_GOT_NOTHING => \true];
 
 
 
121
  // If an exception was encountered during the onHeaders event, then
122
  // return a rejected promise that wraps that exception.
123
  if ($easy->onHeadersException) {
124
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for(new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException('An error was encountered during the on_headers event', $easy->request, $easy->response, $easy->onHeadersException, $ctx));
125
  }
126
+ if (\version_compare($ctx[self::CURL_VERSION_STR], self::LOW_CURL_VERSION_NUMBER)) {
127
+ $message = \sprintf('cURL error %s: %s (%s)', $ctx['errno'], $ctx['error'], 'see https://curl.haxx.se/libcurl/c/libcurl-errors.html');
128
+ } else {
129
+ $message = \sprintf('cURL error %s: %s (%s) for %s', $ctx['errno'], $ctx['error'], 'see https://curl.haxx.se/libcurl/c/libcurl-errors.html', $easy->request->getUri());
130
  }
131
  // Create a connection exception if it was a specific error code.
132
  $error = isset($connectionErrors[$easy->errno]) ? new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException($message, $easy->request, null, $ctx) : new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException($message, $easy->request, $easy->response, null, $ctx);
133
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($error);
134
  }
135
+ private function getDefaultConf(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy)
 
 
 
136
  {
137
  $conf = ['_headers' => $easy->request->getHeaders(), \CURLOPT_CUSTOMREQUEST => $easy->request->getMethod(), \CURLOPT_URL => (string) $easy->request->getUri()->withFragment(''), \CURLOPT_RETURNTRANSFER => \false, \CURLOPT_HEADER => \false, \CURLOPT_CONNECTTIMEOUT => 150];
138
  if (\defined('CURLOPT_PROTOCOLS')) {
148
  }
149
  return $conf;
150
  }
151
+ private function applyMethod(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array &$conf)
152
  {
153
  $body = $easy->request->getBody();
154
  $size = $body->getSize();
158
  }
159
  $method = $easy->request->getMethod();
160
  if ($method === 'PUT' || $method === 'POST') {
161
+ // See http://tools.ietf.org/html/rfc7230#section-3.3.2
162
  if (!$easy->request->hasHeader('Content-Length')) {
163
  $conf[\CURLOPT_HTTPHEADER][] = 'Content-Length: 0';
164
  }
167
  unset($conf[\CURLOPT_WRITEFUNCTION], $conf[\CURLOPT_READFUNCTION], $conf[\CURLOPT_FILE], $conf[\CURLOPT_INFILE]);
168
  }
169
  }
170
+ private function applyBody(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, array &$conf)
171
  {
172
  $size = $request->hasHeader('Content-Length') ? (int) $request->getHeaderLine('Content-Length') : null;
173
  // Send the body as a string if the size is less than 1MB OR if the
187
  if ($body->isSeekable()) {
188
  $body->rewind();
189
  }
190
+ $conf[\CURLOPT_READFUNCTION] = function ($ch, $fd, $length) use($body) {
191
  return $body->read($length);
192
  };
193
  }
200
  $conf[\CURLOPT_HTTPHEADER][] = 'Content-Type:';
201
  }
202
  }
203
+ private function applyHeaders(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array &$conf)
204
  {
205
  foreach ($conf['_headers'] as $name => $values) {
206
  foreach ($values as $value) {
225
  * @param string $name Case-insensitive header to remove
226
  * @param array $options Array of options to modify
227
  */
228
+ private function removeHeader($name, array &$options)
229
  {
230
  foreach (\array_keys($options['_headers']) as $key) {
231
  if (!\strcasecmp($key, $name)) {
234
  }
235
  }
236
  }
237
+ private function applyHandlerOptions(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array &$conf)
238
  {
239
  $options = $easy->options;
240
  if (isset($options['verify'])) {
252
  }
253
  // If it's a directory or a link to a directory use CURLOPT_CAPATH.
254
  // If not, it's probably a file, or a link to a file, so use CURLOPT_CAINFO.
255
+ if (\is_dir($options['verify']) || \is_link($options['verify']) && \is_dir(\readlink($options['verify']))) {
256
  $conf[\CURLOPT_CAPATH] = $options['verify'];
257
  } else {
258
  $conf[\CURLOPT_CAINFO] = $options['verify'];
260
  }
261
  }
262
  }
263
+ if (!empty($options['decode_content'])) {
264
  $accept = $easy->request->getHeaderLine('Accept-Encoding');
265
  if ($accept) {
266
  $conf[\CURLOPT_ENCODING] = $accept;
270
  $conf[\CURLOPT_HTTPHEADER][] = 'Accept-Encoding:';
271
  }
272
  }
273
+ if (isset($options['sink'])) {
274
+ $sink = $options['sink'];
275
+ if (!\is_string($sink)) {
276
+ $sink = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\stream_for($sink);
277
+ } elseif (!\is_dir(\dirname($sink))) {
278
+ // Ensure that the directory exists before failing in curl.
279
+ throw new \RuntimeException(\sprintf('Directory %s does not exist for sink value of %s', \dirname($sink), $sink));
280
+ } else {
281
+ $sink = new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\LazyOpenStream($sink, 'w+');
282
+ }
283
+ $easy->sink = $sink;
284
+ $conf[\CURLOPT_WRITEFUNCTION] = function ($ch, $write) use($sink) {
285
+ return $sink->write($write);
286
+ };
287
  } else {
288
+ // Use a default temp stream if no sink was set.
289
+ $conf[\CURLOPT_FILE] = \fopen('php://temp', 'w+');
290
+ $easy->sink = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\stream_for($conf[\CURLOPT_FILE]);
291
  }
 
 
 
 
292
  $timeoutRequiresNoSignal = \false;
293
  if (isset($options['timeout'])) {
294
  $timeoutRequiresNoSignal |= $options['timeout'] < 1;
316
  $scheme = $easy->request->getUri()->getScheme();
317
  if (isset($options['proxy'][$scheme])) {
318
  $host = $easy->request->getUri()->getHost();
319
+ if (!isset($options['proxy']['no']) || !\PYS_PRO_GLOBAL\GuzzleHttp\is_host_in_noproxy($host, $options['proxy']['no'])) {
320
  $conf[\CURLOPT_PROXY] = $options['proxy'][$scheme];
321
  }
322
  }
336
  if (isset($options['ssl_key'])) {
337
  if (\is_array($options['ssl_key'])) {
338
  if (\count($options['ssl_key']) === 2) {
339
+ list($sslKey, $conf[\CURLOPT_SSLKEYPASSWD]) = $options['ssl_key'];
340
  } else {
341
+ list($sslKey) = $options['ssl_key'];
342
  }
343
  }
344
+ $sslKey = isset($sslKey) ? $sslKey : $options['ssl_key'];
345
  if (!\file_exists($sslKey)) {
346
  throw new \InvalidArgumentException("SSL private key not found: {$sslKey}");
347
  }
353
  throw new \InvalidArgumentException('progress client option must be callable');
354
  }
355
  $conf[\CURLOPT_NOPROGRESS] = \false;
356
+ $conf[\CURLOPT_PROGRESSFUNCTION] = function () use($progress) {
357
+ $args = \func_get_args();
358
+ // PHP 5.5 pushed the handle onto the start of the args
359
+ if (\is_resource($args[0])) {
360
+ \array_shift($args);
361
+ }
362
+ \call_user_func_array($progress, $args);
363
  };
364
  }
365
  if (!empty($options['debug'])) {
366
+ $conf[\CURLOPT_STDERR] = \PYS_PRO_GLOBAL\GuzzleHttp\debug_resource($options['debug']);
367
  $conf[\CURLOPT_VERBOSE] = \true;
368
  }
369
  }
375
  * stream, and then encountered a "necessary data rewind wasn't possible"
376
  * error, causing the request to be sent through curl_multi_info_read()
377
  * without an error status.
 
 
378
  */
379
+ private static function retryFailedRewind(callable $handler, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, array $ctx)
380
  {
381
  try {
382
  // Only rewind if the body has been read from.
399
  }
400
  return $handler($easy->request, $easy->options);
401
  }
402
+ private function createHeaderFn(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy)
403
  {
404
  if (isset($easy->options['on_headers'])) {
405
  $onHeaders = $easy->options['on_headers'];
409
  } else {
410
  $onHeaders = null;
411
  }
412
+ return function ($ch, $h) use($onHeaders, $easy, &$startingResponse) {
413
  $value = \trim($h);
414
  if ($value === '') {
415
  $startingResponse = \true;
416
+ $easy->createResponse();
 
 
 
 
 
417
  if ($onHeaders !== null) {
418
  try {
419
  $onHeaders($easy->response);
vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php CHANGED
@@ -11,13 +11,16 @@ interface CurlFactoryInterface
11
  * @param RequestInterface $request Request
12
  * @param array $options Transfer options
13
  *
 
14
  * @throws \RuntimeException when an option cannot be applied
15
  */
16
- public function create(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle;
17
  /**
18
  * Release an easy handle, allowing it to be reused or closed.
19
  *
20
  * This function must call unset on the easy handle's "handle" property.
 
 
21
  */
22
- public function release(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy) : void;
23
  }
11
  * @param RequestInterface $request Request
12
  * @param array $options Transfer options
13
  *
14
+ * @return EasyHandle
15
  * @throws \RuntimeException when an option cannot be applied
16
  */
17
+ public function create(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options);
18
  /**
19
  * Release an easy handle, allowing it to be reused or closed.
20
  *
21
  * This function must call unset on the easy handle's "handle" property.
22
+ *
23
+ * @param EasyHandle $easy
24
  */
25
+ public function release(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy);
26
  }
vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlHandler.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
6
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
7
  /**
8
  * HTTP handler that uses cURL easy handles as a transport layer.
@@ -10,14 +10,10 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
10
  * When using the CurlHandler, custom curl options can be specified as an
11
  * associative array of curl option constants mapping to values in the
12
  * **curl** key of the "client" key of the request.
13
- *
14
- * @final
15
  */
16
  class CurlHandler
17
  {
18
- /**
19
- * @var CurlFactoryInterface
20
- */
21
  private $factory;
22
  /**
23
  * Accepts an associative array of options:
@@ -28,9 +24,9 @@ class CurlHandler
28
  */
29
  public function __construct(array $options = [])
30
  {
31
- $this->factory = $options['handle_factory'] ?? new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactory(3);
32
  }
33
- public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
34
  {
35
  if (isset($options['delay'])) {
36
  \usleep($options['delay'] * 1000);
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
+ use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
6
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
7
  /**
8
  * HTTP handler that uses cURL easy handles as a transport layer.
10
  * When using the CurlHandler, custom curl options can be specified as an
11
  * associative array of curl option constants mapping to values in the
12
  * **curl** key of the "client" key of the request.
 
 
13
  */
14
  class CurlHandler
15
  {
16
+ /** @var CurlFactoryInterface */
 
 
17
  private $factory;
18
  /**
19
  * Accepts an associative array of options:
24
  */
25
  public function __construct(array $options = [])
26
  {
27
+ $this->factory = isset($options['handle_factory']) ? $options['handle_factory'] : new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactory(3);
28
  }
29
+ public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
30
  {
31
  if (isset($options['delay'])) {
32
  \usleep($options['delay'] * 1000);
vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php CHANGED
@@ -4,7 +4,6 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\Promise;
7
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
8
  use PYS_PRO_GLOBAL\GuzzleHttp\Utils;
9
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
10
  /**
@@ -14,39 +13,16 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
14
  * associative array of curl option constants mapping to values in the
15
  * **curl** key of the provided request options.
16
  *
17
- * @property resource|\CurlMultiHandle $_mh Internal use only. Lazy loaded multi-handle.
18
- *
19
- * @final
20
  */
21
  class CurlMultiHandler
22
  {
23
- /**
24
- * @var CurlFactoryInterface
25
- */
26
  private $factory;
27
- /**
28
- * @var int
29
- */
30
  private $selectTimeout;
31
- /**
32
- * @var resource|\CurlMultiHandle|null the currently executing resource in `curl_multi_exec`.
33
- */
34
  private $active;
35
- /**
36
- * @var array Request entry handles, indexed by handle id in `addRequest`.
37
- *
38
- * @see CurlMultiHandler::addRequest
39
- */
40
  private $handles = [];
41
- /**
42
- * @var array<int, float> An array of delay times, indexed by handle id in `addRequest`.
43
- *
44
- * @see CurlMultiHandler::addRequest
45
- */
46
  private $delays = [];
47
- /**
48
- * @var array<mixed> An associative array of CURLMOPT_* options and corresponding values for curl_multi_setopt()
49
- */
50
  private $options = [];
51
  /**
52
  * This handler accepts the following options:
@@ -56,43 +32,34 @@ class CurlMultiHandler
56
  * out while selecting curl handles. Defaults to 1 second.
57
  * - options: An associative array of CURLMOPT_* options and
58
  * corresponding values for curl_multi_setopt()
 
 
59
  */
60
  public function __construct(array $options = [])
61
  {
62
- $this->factory = $options['handle_factory'] ?? new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactory(50);
63
  if (isset($options['select_timeout'])) {
64
  $this->selectTimeout = $options['select_timeout'];
65
- } elseif ($selectTimeout = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::getenv('GUZZLE_CURL_SELECT_TIMEOUT')) {
66
- @\trigger_error('Since guzzlehttp/guzzle 7.2.0: Using environment variable GUZZLE_CURL_SELECT_TIMEOUT is deprecated. Use option "select_timeout" instead.', \E_USER_DEPRECATED);
67
- $this->selectTimeout = (int) $selectTimeout;
68
  } else {
69
  $this->selectTimeout = 1;
70
  }
71
- $this->options = $options['options'] ?? [];
72
  }
73
- /**
74
- * @param string $name
75
- *
76
- * @return resource|\CurlMultiHandle
77
- *
78
- * @throws \BadMethodCallException when another field as `_mh` will be gotten
79
- * @throws \RuntimeException when curl can not initialize a multi handle
80
- */
81
  public function __get($name)
82
  {
83
- if ($name !== '_mh') {
84
- throw new \BadMethodCallException("Can not get other property as '_mh'.");
85
- }
86
- $multiHandle = \curl_multi_init();
87
- if (\false === $multiHandle) {
88
- throw new \RuntimeException('Can not initialize curl multi handle.');
89
- }
90
- $this->_mh = $multiHandle;
91
- foreach ($this->options as $option => $value) {
92
- // A warning is raised in case of a wrong option.
93
- \curl_multi_setopt($this->_mh, $option, $value);
94
  }
95
- return $this->_mh;
96
  }
97
  public function __destruct()
98
  {
@@ -101,7 +68,7 @@ class CurlMultiHandler
101
  unset($this->_mh);
102
  }
103
  }
104
- public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
105
  {
106
  $easy = $this->factory->create($request, $options);
107
  $id = (int) $easy->handle;
@@ -114,7 +81,7 @@ class CurlMultiHandler
114
  /**
115
  * Ticks the curl event loop.
116
  */
117
- public function tick() : void
118
  {
119
  // Add any delayed handles if needed.
120
  if ($this->delays) {
@@ -127,7 +94,7 @@ class CurlMultiHandler
127
  }
128
  }
129
  // Step through the task queue which may add additional requests.
130
- \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Utils::queue()->run();
131
  if ($this->active && \curl_multi_select($this->_mh, $this->selectTimeout) === -1) {
132
  // Perform a usleep if a select returns -1.
133
  // See: https://bugs.php.net/bug.php?id=61141
@@ -140,9 +107,9 @@ class CurlMultiHandler
140
  /**
141
  * Runs until all outstanding connections have completed.
142
  */
143
- public function execute() : void
144
  {
145
- $queue = \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Utils::queue();
146
  while ($this->handles || !$queue->isEmpty()) {
147
  // If there are no transfers, then sleep for the next delay
148
  if (!$this->active && $this->delays) {
@@ -151,7 +118,7 @@ class CurlMultiHandler
151
  $this->tick();
152
  }
153
  }
154
- private function addRequest(array $entry) : void
155
  {
156
  $easy = $entry['easy'];
157
  $id = (int) $easy->handle;
@@ -169,7 +136,7 @@ class CurlMultiHandler
169
  *
170
  * @return bool True on success, false on failure.
171
  */
172
- private function cancel($id) : bool
173
  {
174
  // Cannot cancel if it has been processed.
175
  if (!isset($this->handles[$id])) {
@@ -181,7 +148,7 @@ class CurlMultiHandler
181
  \curl_close($handle);
182
  return \true;
183
  }
184
- private function processMessages() : void
185
  {
186
  while ($done = \curl_multi_info_read($this->_mh)) {
187
  $id = (int) $done['handle'];
@@ -196,7 +163,7 @@ class CurlMultiHandler
196
  $entry['deferred']->resolve(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactory::finish($this, $entry['easy'], $this->factory));
197
  }
198
  }
199
- private function timeToNext() : int
200
  {
201
  $currentTime = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::currentTime();
202
  $nextTime = \PHP_INT_MAX;
@@ -205,6 +172,6 @@ class CurlMultiHandler
205
  $nextTime = $time;
206
  }
207
  }
208
- return (int) \max(0, $nextTime - $currentTime) * 1000000;
209
  }
210
  }
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\Promise;
 
7
  use PYS_PRO_GLOBAL\GuzzleHttp\Utils;
8
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
9
  /**
13
  * associative array of curl option constants mapping to values in the
14
  * **curl** key of the provided request options.
15
  *
16
+ * @property resource $_mh Internal use only. Lazy loaded multi-handle.
 
 
17
  */
18
  class CurlMultiHandler
19
  {
20
+ /** @var CurlFactoryInterface */
 
 
21
  private $factory;
 
 
 
22
  private $selectTimeout;
 
 
 
23
  private $active;
 
 
 
 
 
24
  private $handles = [];
 
 
 
 
 
25
  private $delays = [];
 
 
 
26
  private $options = [];
27
  /**
28
  * This handler accepts the following options:
32
  * out while selecting curl handles. Defaults to 1 second.
33
  * - options: An associative array of CURLMOPT_* options and
34
  * corresponding values for curl_multi_setopt()
35
+ *
36
+ * @param array $options
37
  */
38
  public function __construct(array $options = [])
39
  {
40
+ $this->factory = isset($options['handle_factory']) ? $options['handle_factory'] : new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactory(50);
41
  if (isset($options['select_timeout'])) {
42
  $this->selectTimeout = $options['select_timeout'];
43
+ } elseif ($selectTimeout = \getenv('GUZZLE_CURL_SELECT_TIMEOUT')) {
44
+ $this->selectTimeout = $selectTimeout;
 
45
  } else {
46
  $this->selectTimeout = 1;
47
  }
48
+ $this->options = isset($options['options']) ? $options['options'] : [];
49
  }
 
 
 
 
 
 
 
 
50
  public function __get($name)
51
  {
52
+ if ($name === '_mh') {
53
+ $this->_mh = \curl_multi_init();
54
+ foreach ($this->options as $option => $value) {
55
+ // A warning is raised in case of a wrong option.
56
+ \curl_multi_setopt($this->_mh, $option, $value);
57
+ }
58
+ // Further calls to _mh will return the value directly, without entering the
59
+ // __get() method at all.
60
+ return $this->_mh;
 
 
61
  }
62
+ throw new \BadMethodCallException();
63
  }
64
  public function __destruct()
65
  {
68
  unset($this->_mh);
69
  }
70
  }
71
+ public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
72
  {
73
  $easy = $this->factory->create($request, $options);
74
  $id = (int) $easy->handle;
81
  /**
82
  * Ticks the curl event loop.
83
  */
84
+ public function tick()
85
  {
86
  // Add any delayed handles if needed.
87
  if ($this->delays) {
94
  }
95
  }
96
  // Step through the task queue which may add additional requests.
97
+ \PYS_PRO_GLOBAL\GuzzleHttp\Promise\queue()->run();
98
  if ($this->active && \curl_multi_select($this->_mh, $this->selectTimeout) === -1) {
99
  // Perform a usleep if a select returns -1.
100
  // See: https://bugs.php.net/bug.php?id=61141
107
  /**
108
  * Runs until all outstanding connections have completed.
109
  */
110
+ public function execute()
111
  {
112
+ $queue = \PYS_PRO_GLOBAL\GuzzleHttp\Promise\queue();
113
  while ($this->handles || !$queue->isEmpty()) {
114
  // If there are no transfers, then sleep for the next delay
115
  if (!$this->active && $this->delays) {
118
  $this->tick();
119
  }
120
  }
121
+ private function addRequest(array $entry)
122
  {
123
  $easy = $entry['easy'];
124
  $id = (int) $easy->handle;
136
  *
137
  * @return bool True on success, false on failure.
138
  */
139
+ private function cancel($id)
140
  {
141
  // Cannot cancel if it has been processed.
142
  if (!isset($this->handles[$id])) {
148
  \curl_close($handle);
149
  return \true;
150
  }
151
+ private function processMessages()
152
  {
153
  while ($done = \curl_multi_info_read($this->_mh)) {
154
  $id = (int) $done['handle'];
163
  $entry['deferred']->resolve(\PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactory::finish($this, $entry['easy'], $this->factory));
164
  }
165
  }
166
+ private function timeToNext()
167
  {
168
  $currentTime = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::currentTime();
169
  $nextTime = \PHP_INT_MAX;
172
  $nextTime = $time;
173
  }
174
  }
175
+ return \max(0, $nextTime - $currentTime) * 1000000;
176
  }
177
  }
vendor_prefix/guzzlehttp/guzzle/src/Handler/EasyHandle.php CHANGED
@@ -3,7 +3,6 @@
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Response;
6
- use PYS_PRO_GLOBAL\GuzzleHttp\Utils;
7
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
8
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
9
  use PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface;
@@ -14,56 +13,36 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface;
14
  */
15
  final class EasyHandle
16
  {
17
- /**
18
- * @var resource|\CurlHandle cURL resource
19
- */
20
  public $handle;
21
- /**
22
- * @var StreamInterface Where data is being written
23
- */
24
  public $sink;
25
- /**
26
- * @var array Received HTTP headers so far
27
- */
28
  public $headers = [];
29
- /**
30
- * @var ResponseInterface|null Received response (if any)
31
- */
32
  public $response;
33
- /**
34
- * @var RequestInterface Request being sent
35
- */
36
  public $request;
37
- /**
38
- * @var array Request options
39
- */
40
  public $options = [];
41
- /**
42
- * @var int cURL error number (if any)
43
- */
44
  public $errno = 0;
45
- /**
46
- * @var \Throwable|null Exception during on_headers (if any)
47
- */
48
  public $onHeadersException;
49
- /**
50
- * @var \Exception|null Exception during createResponse (if any)
51
- */
52
- public $createResponseException;
53
  /**
54
  * Attach a response to the easy handle based on the received headers.
55
  *
56
  * @throws \RuntimeException if no headers have been received.
57
  */
58
- public function createResponse() : void
59
  {
60
  if (empty($this->headers)) {
61
  throw new \RuntimeException('No headers have been received');
62
  }
63
  // HTTP-version SP status-code SP reason-phrase
64
  $startLine = \explode(' ', \array_shift($this->headers), 3);
65
- $headers = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::headersFromLines($this->headers);
66
- $normalizedKeys = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::normalizeHeaderKeys($headers);
67
  if (!empty($this->options['decode_content']) && isset($normalizedKeys['content-encoding'])) {
68
  $headers['x-encoded-content-encoding'] = $headers[$normalizedKeys['content-encoding']];
69
  unset($headers[$normalizedKeys['content-encoding']]);
@@ -77,17 +56,9 @@ final class EasyHandle
77
  }
78
  }
79
  }
80
- $statusCode = (int) $startLine[1];
81
  // Attach a response to the easy handle with the parsed headers.
82
- $this->response = new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Response($statusCode, $headers, $this->sink, \substr($startLine[0], 5), isset($startLine[2]) ? (string) $startLine[2] : null);
83
  }
84
- /**
85
- * @param string $name
86
- *
87
- * @return void
88
- *
89
- * @throws \BadMethodCallException
90
- */
91
  public function __get($name)
92
  {
93
  $msg = $name === 'handle' ? 'The EasyHandle has been released' : 'Invalid property: ' . $name;
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Response;
 
6
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
7
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
8
  use PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface;
13
  */
14
  final class EasyHandle
15
  {
16
+ /** @var resource cURL resource */
 
 
17
  public $handle;
18
+ /** @var StreamInterface Where data is being written */
 
 
19
  public $sink;
20
+ /** @var array Received HTTP headers so far */
 
 
21
  public $headers = [];
22
+ /** @var ResponseInterface Received response (if any) */
 
 
23
  public $response;
24
+ /** @var RequestInterface Request being sent */
 
 
25
  public $request;
26
+ /** @var array Request options */
 
 
27
  public $options = [];
28
+ /** @var int cURL error number (if any) */
 
 
29
  public $errno = 0;
30
+ /** @var \Exception Exception during on_headers (if any) */
 
 
31
  public $onHeadersException;
 
 
 
 
32
  /**
33
  * Attach a response to the easy handle based on the received headers.
34
  *
35
  * @throws \RuntimeException if no headers have been received.
36
  */
37
+ public function createResponse()
38
  {
39
  if (empty($this->headers)) {
40
  throw new \RuntimeException('No headers have been received');
41
  }
42
  // HTTP-version SP status-code SP reason-phrase
43
  $startLine = \explode(' ', \array_shift($this->headers), 3);
44
+ $headers = \PYS_PRO_GLOBAL\GuzzleHttp\headers_from_lines($this->headers);
45
+ $normalizedKeys = \PYS_PRO_GLOBAL\GuzzleHttp\normalize_header_keys($headers);
46
  if (!empty($this->options['decode_content']) && isset($normalizedKeys['content-encoding'])) {
47
  $headers['x-encoded-content-encoding'] = $headers[$normalizedKeys['content-encoding']];
48
  unset($headers[$normalizedKeys['content-encoding']]);
56
  }
57
  }
58
  }
 
59
  // Attach a response to the easy handle with the parsed headers.
60
+ $this->response = new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Response($startLine[1], $headers, $this->sink, \substr($startLine[0], 5), isset($startLine[2]) ? (string) $startLine[2] : null);
61
  }
 
 
 
 
 
 
 
62
  public function __get($name)
63
  {
64
  $msg = $name === 'handle' ? 'The EasyHandle has been released' : 'Invalid property: ' . $name;
vendor_prefix/guzzlehttp/guzzle/src/Handler/MockHandler.php CHANGED
@@ -4,77 +4,59 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\HandlerStack;
7
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
8
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
 
9
  use PYS_PRO_GLOBAL\GuzzleHttp\TransferStats;
10
- use PYS_PRO_GLOBAL\GuzzleHttp\Utils;
11
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
12
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
13
- use PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface;
14
  /**
15
  * Handler that returns responses or throw exceptions from a queue.
16
- *
17
- * @final
18
  */
19
  class MockHandler implements \Countable
20
  {
21
- /**
22
- * @var array
23
- */
24
  private $queue = [];
25
- /**
26
- * @var RequestInterface|null
27
- */
28
  private $lastRequest;
29
- /**
30
- * @var array
31
- */
32
- private $lastOptions = [];
33
- /**
34
- * @var callable|null
35
- */
36
  private $onFulfilled;
37
- /**
38
- * @var callable|null
39
- */
40
  private $onRejected;
41
  /**
42
  * Creates a new MockHandler that uses the default handler stack list of
43
  * middlewares.
44
  *
45
- * @param array|null $queue Array of responses, callables, or exceptions.
46
- * @param callable|null $onFulfilled Callback to invoke when the return value is fulfilled.
47
- * @param callable|null $onRejected Callback to invoke when the return value is rejected.
 
 
48
  */
49
- public static function createWithMiddleware(array $queue = null, callable $onFulfilled = null, callable $onRejected = null) : \PYS_PRO_GLOBAL\GuzzleHttp\HandlerStack
50
  {
51
  return \PYS_PRO_GLOBAL\GuzzleHttp\HandlerStack::create(new self($queue, $onFulfilled, $onRejected));
52
  }
53
  /**
54
  * The passed in value must be an array of
55
- * {@see \Psr\Http\Message\ResponseInterface} objects, Exceptions,
56
  * callables, or Promises.
57
  *
58
- * @param array<int, mixed>|null $queue The parameters to be passed to the append function, as an indexed array.
59
- * @param callable|null $onFulfilled Callback to invoke when the return value is fulfilled.
60
- * @param callable|null $onRejected Callback to invoke when the return value is rejected.
61
  */
62
  public function __construct(array $queue = null, callable $onFulfilled = null, callable $onRejected = null)
63
  {
64
  $this->onFulfilled = $onFulfilled;
65
  $this->onRejected = $onRejected;
66
  if ($queue) {
67
- // array_values included for BC
68
- $this->append(...\array_values($queue));
69
  }
70
  }
71
- public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
72
  {
73
  if (!$this->queue) {
74
  throw new \OutOfBoundsException('Mock queue is empty');
75
  }
76
  if (isset($options['delay']) && \is_numeric($options['delay'])) {
77
- \usleep((int) $options['delay'] * 1000);
78
  }
79
  $this->lastRequest = $request;
80
  $this->lastOptions = $options;
@@ -91,15 +73,15 @@ class MockHandler implements \Countable
91
  }
92
  }
93
  if (\is_callable($response)) {
94
- $response = $response($request, $options);
95
  }
96
- $response = $response instanceof \Throwable ? \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($response) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::promiseFor($response);
97
- return $response->then(function (?\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $value) use($request, $options) {
98
  $this->invokeStats($request, $options, $value);
99
  if ($this->onFulfilled) {
100
- ($this->onFulfilled)($value);
101
  }
102
- if ($value !== null && isset($options['sink'])) {
103
  $contents = (string) $value->getBody();
104
  $sink = $options['sink'];
105
  if (\is_resource($sink)) {
@@ -114,61 +96,62 @@ class MockHandler implements \Countable
114
  }, function ($reason) use($request, $options) {
115
  $this->invokeStats($request, $options, null, $reason);
116
  if ($this->onRejected) {
117
- ($this->onRejected)($reason);
118
  }
119
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($reason);
120
  });
121
  }
122
  /**
123
  * Adds one or more variadic requests, exceptions, callables, or promises
124
  * to the queue.
125
- *
126
- * @param mixed ...$values
127
  */
128
- public function append(...$values) : void
129
  {
130
- foreach ($values as $value) {
131
- if ($value instanceof \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface || $value instanceof \Throwable || $value instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface || \is_callable($value)) {
132
  $this->queue[] = $value;
133
  } else {
134
- throw new \TypeError('Expected a Response, Promise, Throwable or callable. Found ' . \PYS_PRO_GLOBAL\GuzzleHttp\Utils::describeType($value));
135
  }
136
  }
137
  }
138
  /**
139
  * Get the last received request.
 
 
140
  */
141
- public function getLastRequest() : ?\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface
142
  {
143
  return $this->lastRequest;
144
  }
145
  /**
146
  * Get the last received request options.
 
 
147
  */
148
- public function getLastOptions() : array
149
  {
150
  return $this->lastOptions;
151
  }
152
  /**
153
  * Returns the number of remaining items in the queue.
 
 
154
  */
155
- public function count() : int
156
  {
157
  return \count($this->queue);
158
  }
159
- public function reset() : void
160
  {
161
  $this->queue = [];
162
  }
163
- /**
164
- * @param mixed $reason Promise or reason.
165
- */
166
- private function invokeStats(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, $reason = null) : void
167
  {
168
  if (isset($options['on_stats'])) {
169
- $transferTime = $options['transfer_time'] ?? 0;
170
  $stats = new \PYS_PRO_GLOBAL\GuzzleHttp\TransferStats($request, $response, $transferTime, $reason);
171
- $options['on_stats']($stats);
172
  }
173
  }
174
  }
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\HandlerStack;
 
7
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
8
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise\RejectedPromise;
9
  use PYS_PRO_GLOBAL\GuzzleHttp\TransferStats;
 
10
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
11
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
 
12
  /**
13
  * Handler that returns responses or throw exceptions from a queue.
 
 
14
  */
15
  class MockHandler implements \Countable
16
  {
 
 
 
17
  private $queue = [];
 
 
 
18
  private $lastRequest;
19
+ private $lastOptions;
 
 
 
 
 
 
20
  private $onFulfilled;
 
 
 
21
  private $onRejected;
22
  /**
23
  * Creates a new MockHandler that uses the default handler stack list of
24
  * middlewares.
25
  *
26
+ * @param array $queue Array of responses, callables, or exceptions.
27
+ * @param callable $onFulfilled Callback to invoke when the return value is fulfilled.
28
+ * @param callable $onRejected Callback to invoke when the return value is rejected.
29
+ *
30
+ * @return HandlerStack
31
  */
32
+ public static function createWithMiddleware(array $queue = null, callable $onFulfilled = null, callable $onRejected = null)
33
  {
34
  return \PYS_PRO_GLOBAL\GuzzleHttp\HandlerStack::create(new self($queue, $onFulfilled, $onRejected));
35
  }
36
  /**
37
  * The passed in value must be an array of
38
+ * {@see Psr7\Http\Message\ResponseInterface} objects, Exceptions,
39
  * callables, or Promises.
40
  *
41
+ * @param array $queue
42
+ * @param callable $onFulfilled Callback to invoke when the return value is fulfilled.
43
+ * @param callable $onRejected Callback to invoke when the return value is rejected.
44
  */
45
  public function __construct(array $queue = null, callable $onFulfilled = null, callable $onRejected = null)
46
  {
47
  $this->onFulfilled = $onFulfilled;
48
  $this->onRejected = $onRejected;
49
  if ($queue) {
50
+ \call_user_func_array([$this, 'append'], $queue);
 
51
  }
52
  }
53
+ public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
54
  {
55
  if (!$this->queue) {
56
  throw new \OutOfBoundsException('Mock queue is empty');
57
  }
58
  if (isset($options['delay']) && \is_numeric($options['delay'])) {
59
+ \usleep($options['delay'] * 1000);
60
  }
61
  $this->lastRequest = $request;
62
  $this->lastOptions = $options;
73
  }
74
  }
75
  if (\is_callable($response)) {
76
+ $response = \call_user_func($response, $request, $options);
77
  }
78
+ $response = $response instanceof \Exception ? \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($response) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\promise_for($response);
79
+ return $response->then(function ($value) use($request, $options) {
80
  $this->invokeStats($request, $options, $value);
81
  if ($this->onFulfilled) {
82
+ \call_user_func($this->onFulfilled, $value);
83
  }
84
+ if (isset($options['sink'])) {
85
  $contents = (string) $value->getBody();
86
  $sink = $options['sink'];
87
  if (\is_resource($sink)) {
96
  }, function ($reason) use($request, $options) {
97
  $this->invokeStats($request, $options, null, $reason);
98
  if ($this->onRejected) {
99
+ \call_user_func($this->onRejected, $reason);
100
  }
101
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($reason);
102
  });
103
  }
104
  /**
105
  * Adds one or more variadic requests, exceptions, callables, or promises
106
  * to the queue.
 
 
107
  */
108
+ public function append()
109
  {
110
+ foreach (\func_get_args() as $value) {
111
+ if ($value instanceof \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface || $value instanceof \Exception || $value instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface || \is_callable($value)) {
112
  $this->queue[] = $value;
113
  } else {
114
+ throw new \InvalidArgumentException('Expected a response or ' . 'exception. Found ' . \PYS_PRO_GLOBAL\GuzzleHttp\describe_type($value));
115
  }
116
  }
117
  }
118
  /**
119
  * Get the last received request.
120
+ *
121
+ * @return RequestInterface
122
  */
123
+ public function getLastRequest()
124
  {
125
  return $this->lastRequest;
126
  }
127
  /**
128
  * Get the last received request options.
129
+ *
130
+ * @return array
131
  */
132
+ public function getLastOptions()
133
  {
134
  return $this->lastOptions;
135
  }
136
  /**
137
  * Returns the number of remaining items in the queue.
138
+ *
139
+ * @return int
140
  */
141
+ public function count()
142
  {
143
  return \count($this->queue);
144
  }
145
+ public function reset()
146
  {
147
  $this->queue = [];
148
  }
149
+ private function invokeStats(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, $reason = null)
 
 
 
150
  {
151
  if (isset($options['on_stats'])) {
152
+ $transferTime = isset($options['transfer_time']) ? $options['transfer_time'] : 0;
153
  $stats = new \PYS_PRO_GLOBAL\GuzzleHttp\TransferStats($request, $response, $transferTime, $reason);
154
+ \call_user_func($options['on_stats'], $stats);
155
  }
156
  }
157
  }
vendor_prefix/guzzlehttp/guzzle/src/Handler/Proxy.php CHANGED
@@ -2,13 +2,10 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions;
7
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
8
  /**
9
  * Provides basic proxies for handlers.
10
- *
11
- * @final
12
  */
13
  class Proxy
14
  {
@@ -16,14 +13,14 @@ class Proxy
16
  * Sends synchronous requests to a specific handler while sending all other
17
  * requests to another handler.
18
  *
19
- * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $default Handler used for normal responses
20
- * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $sync Handler used for synchronous responses.
21
  *
22
- * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the composed handler.
23
  */
24
- public static function wrapSync(callable $default, callable $sync) : callable
25
  {
26
- return static function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) use($default, $sync) : PromiseInterface {
27
  return empty($options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::SYNCHRONOUS]) ? $default($request, $options) : $sync($request, $options);
28
  };
29
  }
@@ -35,14 +32,14 @@ class Proxy
35
  * performance benefits of curl while still supporting true streaming
36
  * through the StreamHandler.
37
  *
38
- * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $default Handler used for non-streaming responses
39
- * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $streaming Handler used for streaming responses
40
  *
41
- * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the composed handler.
42
  */
43
- public static function wrapStreaming(callable $default, callable $streaming) : callable
44
  {
45
- return static function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) use($default, $streaming) : PromiseInterface {
46
  return empty($options['stream']) ? $default($request, $options) : $streaming($request, $options);
47
  };
48
  }
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions;
6
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
7
  /**
8
  * Provides basic proxies for handlers.
 
 
9
  */
10
  class Proxy
11
  {
13
  * Sends synchronous requests to a specific handler while sending all other
14
  * requests to another handler.
15
  *
16
+ * @param callable $default Handler used for normal responses
17
+ * @param callable $sync Handler used for synchronous responses.
18
  *
19
+ * @return callable Returns the composed handler.
20
  */
21
+ public static function wrapSync(callable $default, callable $sync)
22
  {
23
+ return function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) use($default, $sync) {
24
  return empty($options[\PYS_PRO_GLOBAL\GuzzleHttp\RequestOptions::SYNCHRONOUS]) ? $default($request, $options) : $sync($request, $options);
25
  };
26
  }
32
  * performance benefits of curl while still supporting true streaming
33
  * through the StreamHandler.
34
  *
35
+ * @param callable $default Handler used for non-streaming responses
36
+ * @param callable $streaming Handler used for streaming responses
37
  *
38
+ * @return callable Returns the composed handler.
39
  */
40
+ public static function wrapStreaming(callable $default, callable $streaming)
41
  {
42
+ return function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) use($default, $streaming) {
43
  return empty($options['stream']) ? $default($request, $options) : $streaming($request, $options);
44
  };
45
  }
vendor_prefix/guzzlehttp/guzzle/src/Handler/StreamHandler.php CHANGED
@@ -4,7 +4,6 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp\Handler;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException;
7
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
8
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\FulfilledPromise;
9
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
10
  use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
@@ -13,25 +12,21 @@ use PYS_PRO_GLOBAL\GuzzleHttp\Utils;
13
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
14
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
15
  use PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface;
16
- use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
17
  /**
18
  * HTTP handler that uses PHP's HTTP stream wrapper.
19
- *
20
- * @final
21
  */
22
  class StreamHandler
23
  {
24
- /**
25
- * @var array
26
- */
27
  private $lastHeaders = [];
28
  /**
29
  * Sends an HTTP request.
30
  *
31
  * @param RequestInterface $request Request to send.
32
  * @param array $options Request transfer options.
 
 
33
  */
34
- public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
35
  {
36
  // Sleep if there is a delay specified.
37
  if (isset($options['delay'])) {
@@ -53,36 +48,32 @@ class StreamHandler
53
  // Determine if the error was a networking error.
54
  $message = $e->getMessage();
55
  // This list can probably get more comprehensive.
56
- if (\false !== \strpos($message, 'getaddrinfo') || \false !== \strpos($message, 'Connection refused') || \false !== \strpos($message, "couldn't connect to host") || \false !== \strpos($message, "connection attempt failed")) {
57
  $e = new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException($e->getMessage(), $request, $e);
58
- } else {
59
- $e = \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException::wrapException($request, $e);
60
  }
 
61
  $this->invokeStats($options, $request, $startTime, null, $e);
62
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($e);
63
  }
64
  }
65
- private function invokeStats(array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, ?float $startTime, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, \Throwable $error = null) : void
66
  {
67
  if (isset($options['on_stats'])) {
68
  $stats = new \PYS_PRO_GLOBAL\GuzzleHttp\TransferStats($request, $response, \PYS_PRO_GLOBAL\GuzzleHttp\Utils::currentTime() - $startTime, $error, []);
69
- $options['on_stats']($stats);
70
  }
71
  }
72
- /**
73
- * @param resource $stream
74
- */
75
- private function createResponse(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, $stream, ?float $startTime) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
76
  {
77
  $hdrs = $this->lastHeaders;
78
  $this->lastHeaders = [];
79
  $parts = \explode(' ', \array_shift($hdrs), 3);
80
  $ver = \explode('/', $parts[0])[1];
81
- $status = (int) $parts[1];
82
- $reason = $parts[2] ?? null;
83
- $headers = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::headersFromLines($hdrs);
84
- [$stream, $headers] = $this->checkDecode($options, $headers, $stream);
85
- $stream = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::streamFor($stream);
86
  $sink = $stream;
87
  if (\strcasecmp('HEAD', $request->getMethod())) {
88
  $sink = $this->createSink($stream, $options);
@@ -94,7 +85,7 @@ class StreamHandler
94
  } catch (\Exception $e) {
95
  $msg = 'An error was encountered during the on_headers event';
96
  $ex = new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException($msg, $request, $response, $e);
97
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($ex);
98
  }
99
  }
100
  // Do not drain when the request is a HEAD request because they have
@@ -105,26 +96,23 @@ class StreamHandler
105
  $this->invokeStats($options, $request, $startTime, $response, null);
106
  return new \PYS_PRO_GLOBAL\GuzzleHttp\Promise\FulfilledPromise($response);
107
  }
108
- private function createSink(\PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface $stream, array $options) : \PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface
109
  {
110
  if (!empty($options['stream'])) {
111
  return $stream;
112
  }
113
- $sink = $options['sink'] ?? \fopen('php://temp', 'r+');
114
- return \is_string($sink) ? new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\LazyOpenStream($sink, 'w+') : \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::streamFor($sink);
115
  }
116
- /**
117
- * @param resource $stream
118
- */
119
- private function checkDecode(array $options, array $headers, $stream) : array
120
  {
121
  // Automatically decode responses when instructed.
122
  if (!empty($options['decode_content'])) {
123
- $normalizedKeys = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::normalizeHeaderKeys($headers);
124
  if (isset($normalizedKeys['content-encoding'])) {
125
  $encoding = $headers[$normalizedKeys['content-encoding']];
126
  if ($encoding[0] === 'gzip' || $encoding[0] === 'deflate') {
127
- $stream = new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\InflateStream(\PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::streamFor($stream));
128
  $headers['x-encoded-content-encoding'] = $headers[$normalizedKeys['content-encoding']];
129
  // Remove content-encoding header
130
  unset($headers[$normalizedKeys['content-encoding']]);
@@ -146,18 +134,21 @@ class StreamHandler
146
  /**
147
  * Drains the source stream into the "sink" client option.
148
  *
149
- * @param string $contentLength Header specifying the amount of
150
- * data to read.
 
 
151
  *
 
152
  * @throws \RuntimeException when the sink option is invalid.
153
  */
154
- private function drain(\PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface $source, \PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface $sink, string $contentLength) : \PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface
155
  {
156
  // If a content-length header is provided, then stop reading once
157
  // that number of bytes has been read. This can prevent infinitely
158
  // reading from a stream when dealing with servers that do not honor
159
  // Connection: Close headers.
160
- \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::copyToStream($source, $sink, \strlen($contentLength) > 0 && (int) $contentLength > 0 ? (int) $contentLength : -1);
161
  $sink->seek(0);
162
  $source->close();
163
  return $sink;
@@ -168,13 +159,12 @@ class StreamHandler
168
  * @param callable $callback Callable that returns stream resource
169
  *
170
  * @return resource
171
- *
172
  * @throws \RuntimeException on error
173
  */
174
  private function createResource(callable $callback)
175
  {
176
- $errors = [];
177
- \set_error_handler(static function ($_, $msg, $file, $line) use(&$errors) : bool {
178
  $errors[] = ['message' => $msg, 'file' => $file, 'line' => $line];
179
  return \true;
180
  });
@@ -191,9 +181,6 @@ class StreamHandler
191
  }
192
  return $resource;
193
  }
194
- /**
195
- * @return resource
196
- */
197
  private function createStream(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
198
  {
199
  static $methods;
@@ -229,19 +216,16 @@ class StreamHandler
229
  $context = \array_replace_recursive($context, $options['stream_context']);
230
  }
231
  // Microsoft NTLM authentication only supported with curl handler
232
- if (isset($options['auth'][2]) && 'ntlm' === $options['auth'][2]) {
233
  throw new \InvalidArgumentException('Microsoft NTLM authentication only supported with curl handler');
234
  }
235
  $uri = $this->resolveHost($request, $options);
236
- $contextResource = $this->createResource(static function () use($context, $params) {
237
  return \stream_context_create($context, $params);
238
  });
239
- return $this->createResource(function () use($uri, &$http_response_header, $contextResource, $context, $options, $request) {
240
- $resource = \fopen((string) $uri, 'r', \false, $contextResource);
241
  $this->lastHeaders = $http_response_header;
242
- if (\false === $resource) {
243
- throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException(\sprintf('Connection refused for URI %s', $uri), $request, null, $context);
244
- }
245
  if (isset($options['read_timeout'])) {
246
  $readTimeout = $options['read_timeout'];
247
  $sec = (int) $readTimeout;
@@ -251,28 +235,27 @@ class StreamHandler
251
  return $resource;
252
  });
253
  }
254
- private function resolveHost(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface
255
  {
256
  $uri = $request->getUri();
257
  if (isset($options['force_ip_resolve']) && !\filter_var($uri->getHost(), \FILTER_VALIDATE_IP)) {
258
  if ('v4' === $options['force_ip_resolve']) {
259
  $records = \dns_get_record($uri->getHost(), \DNS_A);
260
- if (\false === $records || !isset($records[0]['ip'])) {
261
  throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException(\sprintf("Could not resolve IPv4 address for host '%s'", $uri->getHost()), $request);
262
  }
263
- return $uri->withHost($records[0]['ip']);
264
- }
265
- if ('v6' === $options['force_ip_resolve']) {
266
  $records = \dns_get_record($uri->getHost(), \DNS_AAAA);
267
- if (\false === $records || !isset($records[0]['ipv6'])) {
268
  throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException(\sprintf("Could not resolve IPv6 address for host '%s'", $uri->getHost()), $request);
269
  }
270
- return $uri->withHost('[' . $records[0]['ipv6'] . ']');
271
  }
272
  }
273
  return $uri;
274
  }
275
- private function getDefaultContext(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request) : array
276
  {
277
  $headers = '';
278
  foreach ($request->getHeaders() as $name => $value) {
@@ -292,57 +275,50 @@ class StreamHandler
292
  $context['http']['header'] = \rtrim($context['http']['header']);
293
  return $context;
294
  }
295
- /**
296
- * @param mixed $value as passed via Request transfer options.
297
- */
298
- private function add_proxy(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params) : void
299
  {
300
  if (!\is_array($value)) {
301
  $options['http']['proxy'] = $value;
302
  } else {
303
  $scheme = $request->getUri()->getScheme();
304
  if (isset($value[$scheme])) {
305
- if (!isset($value['no']) || !\PYS_PRO_GLOBAL\GuzzleHttp\Utils::isHostInNoProxy($request->getUri()->getHost(), $value['no'])) {
306
  $options['http']['proxy'] = $value[$scheme];
307
  }
308
  }
309
  }
310
  }
311
- /**
312
- * @param mixed $value as passed via Request transfer options.
313
- */
314
- private function add_timeout(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params) : void
315
  {
316
  if ($value > 0) {
317
  $options['http']['timeout'] = $value;
318
  }
319
  }
320
- /**
321
- * @param mixed $value as passed via Request transfer options.
322
- */
323
- private function add_verify(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params) : void
324
  {
325
- if ($value === \false) {
326
- $options['ssl']['verify_peer'] = \false;
327
- $options['ssl']['verify_peer_name'] = \false;
328
- return;
329
- }
330
- if (\is_string($value)) {
 
331
  $options['ssl']['cafile'] = $value;
332
  if (!\file_exists($value)) {
333
  throw new \RuntimeException("SSL CA bundle not found: {$value}");
334
  }
335
- } elseif ($value !== \true) {
 
 
 
 
336
  throw new \InvalidArgumentException('Invalid verify request option');
337
  }
338
  $options['ssl']['verify_peer'] = \true;
339
  $options['ssl']['verify_peer_name'] = \true;
340
  $options['ssl']['allow_self_signed'] = \false;
341
  }
342
- /**
343
- * @param mixed $value as passed via Request transfer options.
344
- */
345
- private function add_cert(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params) : void
346
  {
347
  if (\is_array($value)) {
348
  $options['ssl']['passphrase'] = $value[1];
@@ -353,30 +329,26 @@ class StreamHandler
353
  }
354
  $options['ssl']['local_cert'] = $value;
355
  }
356
- /**
357
- * @param mixed $value as passed via Request transfer options.
358
- */
359
- private function add_progress(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params) : void
360
  {
361
- self::addNotification($params, static function ($code, $a, $b, $c, $transferred, $total) use($value) {
362
  if ($code == \STREAM_NOTIFY_PROGRESS) {
363
  $value($total, $transferred, null, null);
364
  }
365
  });
366
  }
367
- /**
368
- * @param mixed $value as passed via Request transfer options.
369
- */
370
- private function add_debug(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options, $value, array &$params) : void
371
  {
372
  if ($value === \false) {
373
  return;
374
  }
375
  static $map = [\STREAM_NOTIFY_CONNECT => 'CONNECT', \STREAM_NOTIFY_AUTH_REQUIRED => 'AUTH_REQUIRED', \STREAM_NOTIFY_AUTH_RESULT => 'AUTH_RESULT', \STREAM_NOTIFY_MIME_TYPE_IS => 'MIME_TYPE_IS', \STREAM_NOTIFY_FILE_SIZE_IS => 'FILE_SIZE_IS', \STREAM_NOTIFY_REDIRECTED => 'REDIRECTED', \STREAM_NOTIFY_PROGRESS => 'PROGRESS', \STREAM_NOTIFY_FAILURE => 'FAILURE', \STREAM_NOTIFY_COMPLETED => 'COMPLETED', \STREAM_NOTIFY_RESOLVE => 'RESOLVE'];
376
  static $args = ['severity', 'message', 'message_code', 'bytes_transferred', 'bytes_max'];
377
- $value = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::debugResource($value);
378
  $ident = $request->getMethod() . ' ' . $request->getUri()->withFragment('');
379
- self::addNotification($params, static function (int $code, ...$passed) use($ident, $value, $map, $args) : void {
 
 
380
  \fprintf($value, '<%s> [%s] ', $ident, $map[$code]);
381
  foreach (\array_filter($passed) as $i => $v) {
382
  \fwrite($value, $args[$i] . ': "' . $v . '" ');
@@ -384,20 +356,21 @@ class StreamHandler
384
  \fwrite($value, "\n");
385
  });
386
  }
387
- private static function addNotification(array &$params, callable $notify) : void
388
  {
389
  // Wrap the existing function if needed.
390
  if (!isset($params['notification'])) {
391
  $params['notification'] = $notify;
392
  } else {
393
- $params['notification'] = self::callArray([$params['notification'], $notify]);
394
  }
395
  }
396
- private static function callArray(array $functions) : callable
397
  {
398
- return static function (...$args) use($functions) {
 
399
  foreach ($functions as $fn) {
400
- $fn(...$args);
401
  }
402
  };
403
  }
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException;
 
7
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\FulfilledPromise;
8
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
9
  use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
12
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
13
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
14
  use PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface;
 
15
  /**
16
  * HTTP handler that uses PHP's HTTP stream wrapper.
 
 
17
  */
18
  class StreamHandler
19
  {
 
 
 
20
  private $lastHeaders = [];
21
  /**
22
  * Sends an HTTP request.
23
  *
24
  * @param RequestInterface $request Request to send.
25
  * @param array $options Request transfer options.
26
+ *
27
+ * @return PromiseInterface
28
  */
29
+ public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
30
  {
31
  // Sleep if there is a delay specified.
32
  if (isset($options['delay'])) {
48
  // Determine if the error was a networking error.
49
  $message = $e->getMessage();
50
  // This list can probably get more comprehensive.
51
+ if (\strpos($message, 'getaddrinfo') || \strpos($message, 'Connection refused') || \strpos($message, "couldn't connect to host") || \strpos($message, "connection attempt failed")) {
52
  $e = new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException($e->getMessage(), $request, $e);
 
 
53
  }
54
+ $e = \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException::wrapException($request, $e);
55
  $this->invokeStats($options, $request, $startTime, null, $e);
56
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($e);
57
  }
58
  }
59
+ private function invokeStats(array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, $startTime, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, $error = null)
60
  {
61
  if (isset($options['on_stats'])) {
62
  $stats = new \PYS_PRO_GLOBAL\GuzzleHttp\TransferStats($request, $response, \PYS_PRO_GLOBAL\GuzzleHttp\Utils::currentTime() - $startTime, $error, []);
63
+ \call_user_func($options['on_stats'], $stats);
64
  }
65
  }
66
+ private function createResponse(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, $stream, $startTime)
 
 
 
67
  {
68
  $hdrs = $this->lastHeaders;
69
  $this->lastHeaders = [];
70
  $parts = \explode(' ', \array_shift($hdrs), 3);
71
  $ver = \explode('/', $parts[0])[1];
72
+ $status = $parts[1];
73
+ $reason = isset($parts[2]) ? $parts[2] : null;
74
+ $headers = \PYS_PRO_GLOBAL\GuzzleHttp\headers_from_lines($hdrs);
75
+ list($stream, $headers) = $this->checkDecode($options, $headers, $stream);
76
+ $stream = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\stream_for($stream);
77
  $sink = $stream;
78
  if (\strcasecmp('HEAD', $request->getMethod())) {
79
  $sink = $this->createSink($stream, $options);
85
  } catch (\Exception $e) {
86
  $msg = 'An error was encountered during the on_headers event';
87
  $ex = new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException($msg, $request, $response, $e);
88
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($ex);
89
  }
90
  }
91
  // Do not drain when the request is a HEAD request because they have
96
  $this->invokeStats($options, $request, $startTime, $response, null);
97
  return new \PYS_PRO_GLOBAL\GuzzleHttp\Promise\FulfilledPromise($response);
98
  }
99
+ private function createSink(\PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface $stream, array $options)
100
  {
101
  if (!empty($options['stream'])) {
102
  return $stream;
103
  }
104
+ $sink = isset($options['sink']) ? $options['sink'] : \fopen('php://temp', 'r+');
105
+ return \is_string($sink) ? new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\LazyOpenStream($sink, 'w+') : \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\stream_for($sink);
106
  }
107
+ private function checkDecode(array $options, array $headers, $stream)
 
 
 
108
  {
109
  // Automatically decode responses when instructed.
110
  if (!empty($options['decode_content'])) {
111
+ $normalizedKeys = \PYS_PRO_GLOBAL\GuzzleHttp\normalize_header_keys($headers);
112
  if (isset($normalizedKeys['content-encoding'])) {
113
  $encoding = $headers[$normalizedKeys['content-encoding']];
114
  if ($encoding[0] === 'gzip' || $encoding[0] === 'deflate') {
115
+ $stream = new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\InflateStream(\PYS_PRO_GLOBAL\GuzzleHttp\Psr7\stream_for($stream));
116
  $headers['x-encoded-content-encoding'] = $headers[$normalizedKeys['content-encoding']];
117
  // Remove content-encoding header
118
  unset($headers[$normalizedKeys['content-encoding']]);
134
  /**
135
  * Drains the source stream into the "sink" client option.
136
  *
137
+ * @param StreamInterface $source
138
+ * @param StreamInterface $sink
139
+ * @param string $contentLength Header specifying the amount of
140
+ * data to read.
141
  *
142
+ * @return StreamInterface
143
  * @throws \RuntimeException when the sink option is invalid.
144
  */
145
+ private function drain(\PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface $source, \PYS_PRO_GLOBAL\Psr\Http\Message\StreamInterface $sink, $contentLength)
146
  {
147
  // If a content-length header is provided, then stop reading once
148
  // that number of bytes has been read. This can prevent infinitely
149
  // reading from a stream when dealing with servers that do not honor
150
  // Connection: Close headers.
151
+ \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\copy_to_stream($source, $sink, \strlen($contentLength) > 0 && (int) $contentLength > 0 ? (int) $contentLength : -1);
152
  $sink->seek(0);
153
  $source->close();
154
  return $sink;
159
  * @param callable $callback Callable that returns stream resource
160
  *
161
  * @return resource
 
162
  * @throws \RuntimeException on error
163
  */
164
  private function createResource(callable $callback)
165
  {
166
+ $errors = null;
167
+ \set_error_handler(function ($_, $msg, $file, $line) use(&$errors) {
168
  $errors[] = ['message' => $msg, 'file' => $file, 'line' => $line];
169
  return \true;
170
  });
181
  }
182
  return $resource;
183
  }
 
 
 
184
  private function createStream(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
185
  {
186
  static $methods;
216
  $context = \array_replace_recursive($context, $options['stream_context']);
217
  }
218
  // Microsoft NTLM authentication only supported with curl handler
219
+ if (isset($options['auth']) && \is_array($options['auth']) && isset($options['auth'][2]) && 'ntlm' == $options['auth'][2]) {
220
  throw new \InvalidArgumentException('Microsoft NTLM authentication only supported with curl handler');
221
  }
222
  $uri = $this->resolveHost($request, $options);
223
+ $context = $this->createResource(function () use($context, $params) {
224
  return \stream_context_create($context, $params);
225
  });
226
+ return $this->createResource(function () use($uri, &$http_response_header, $context, $options) {
227
+ $resource = \fopen((string) $uri, 'r', null, $context);
228
  $this->lastHeaders = $http_response_header;
 
 
 
229
  if (isset($options['read_timeout'])) {
230
  $readTimeout = $options['read_timeout'];
231
  $sec = (int) $readTimeout;
235
  return $resource;
236
  });
237
  }
238
+ private function resolveHost(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
239
  {
240
  $uri = $request->getUri();
241
  if (isset($options['force_ip_resolve']) && !\filter_var($uri->getHost(), \FILTER_VALIDATE_IP)) {
242
  if ('v4' === $options['force_ip_resolve']) {
243
  $records = \dns_get_record($uri->getHost(), \DNS_A);
244
+ if (!isset($records[0]['ip'])) {
245
  throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException(\sprintf("Could not resolve IPv4 address for host '%s'", $uri->getHost()), $request);
246
  }
247
+ $uri = $uri->withHost($records[0]['ip']);
248
+ } elseif ('v6' === $options['force_ip_resolve']) {
 
249
  $records = \dns_get_record($uri->getHost(), \DNS_AAAA);
250
+ if (!isset($records[0]['ipv6'])) {
251
  throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException(\sprintf("Could not resolve IPv6 address for host '%s'", $uri->getHost()), $request);
252
  }
253
+ $uri = $uri->withHost('[' . $records[0]['ipv6'] . ']');
254
  }
255
  }
256
  return $uri;
257
  }
258
+ private function getDefaultContext(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request)
259
  {
260
  $headers = '';
261
  foreach ($request->getHeaders() as $name => $value) {
275
  $context['http']['header'] = \rtrim($context['http']['header']);
276
  return $context;
277
  }
278
+ private function add_proxy(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params)
 
 
 
279
  {
280
  if (!\is_array($value)) {
281
  $options['http']['proxy'] = $value;
282
  } else {
283
  $scheme = $request->getUri()->getScheme();
284
  if (isset($value[$scheme])) {
285
+ if (!isset($value['no']) || !\PYS_PRO_GLOBAL\GuzzleHttp\is_host_in_noproxy($request->getUri()->getHost(), $value['no'])) {
286
  $options['http']['proxy'] = $value[$scheme];
287
  }
288
  }
289
  }
290
  }
291
+ private function add_timeout(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params)
 
 
 
292
  {
293
  if ($value > 0) {
294
  $options['http']['timeout'] = $value;
295
  }
296
  }
297
+ private function add_verify(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params)
 
 
 
298
  {
299
+ if ($value === \true) {
300
+ // PHP 5.6 or greater will find the system cert by default. When
301
+ // < 5.6, use the Guzzle bundled cacert.
302
+ if (\PHP_VERSION_ID < 50600) {
303
+ $options['ssl']['cafile'] = \PYS_PRO_GLOBAL\GuzzleHttp\default_ca_bundle();
304
+ }
305
+ } elseif (\is_string($value)) {
306
  $options['ssl']['cafile'] = $value;
307
  if (!\file_exists($value)) {
308
  throw new \RuntimeException("SSL CA bundle not found: {$value}");
309
  }
310
+ } elseif ($value === \false) {
311
+ $options['ssl']['verify_peer'] = \false;
312
+ $options['ssl']['verify_peer_name'] = \false;
313
+ return;
314
+ } else {
315
  throw new \InvalidArgumentException('Invalid verify request option');
316
  }
317
  $options['ssl']['verify_peer'] = \true;
318
  $options['ssl']['verify_peer_name'] = \true;
319
  $options['ssl']['allow_self_signed'] = \false;
320
  }
321
+ private function add_cert(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params)
 
 
 
322
  {
323
  if (\is_array($value)) {
324
  $options['ssl']['passphrase'] = $value[1];
329
  }
330
  $options['ssl']['local_cert'] = $value;
331
  }
332
+ private function add_progress(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params)
 
 
 
333
  {
334
+ $this->addNotification($params, function ($code, $a, $b, $c, $transferred, $total) use($value) {
335
  if ($code == \STREAM_NOTIFY_PROGRESS) {
336
  $value($total, $transferred, null, null);
337
  }
338
  });
339
  }
340
+ private function add_debug(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, &$options, $value, &$params)
 
 
 
341
  {
342
  if ($value === \false) {
343
  return;
344
  }
345
  static $map = [\STREAM_NOTIFY_CONNECT => 'CONNECT', \STREAM_NOTIFY_AUTH_REQUIRED => 'AUTH_REQUIRED', \STREAM_NOTIFY_AUTH_RESULT => 'AUTH_RESULT', \STREAM_NOTIFY_MIME_TYPE_IS => 'MIME_TYPE_IS', \STREAM_NOTIFY_FILE_SIZE_IS => 'FILE_SIZE_IS', \STREAM_NOTIFY_REDIRECTED => 'REDIRECTED', \STREAM_NOTIFY_PROGRESS => 'PROGRESS', \STREAM_NOTIFY_FAILURE => 'FAILURE', \STREAM_NOTIFY_COMPLETED => 'COMPLETED', \STREAM_NOTIFY_RESOLVE => 'RESOLVE'];
346
  static $args = ['severity', 'message', 'message_code', 'bytes_transferred', 'bytes_max'];
347
+ $value = \PYS_PRO_GLOBAL\GuzzleHttp\debug_resource($value);
348
  $ident = $request->getMethod() . ' ' . $request->getUri()->withFragment('');
349
+ $this->addNotification($params, function () use($ident, $value, $map, $args) {
350
+ $passed = \func_get_args();
351
+ $code = \array_shift($passed);
352
  \fprintf($value, '<%s> [%s] ', $ident, $map[$code]);
353
  foreach (\array_filter($passed) as $i => $v) {
354
  \fwrite($value, $args[$i] . ': "' . $v . '" ');
356
  \fwrite($value, "\n");
357
  });
358
  }
359
+ private function addNotification(array &$params, callable $notify)
360
  {
361
  // Wrap the existing function if needed.
362
  if (!isset($params['notification'])) {
363
  $params['notification'] = $notify;
364
  } else {
365
+ $params['notification'] = $this->callArray([$params['notification'], $notify]);
366
  }
367
  }
368
+ private function callArray(array $functions)
369
  {
370
+ return function () use($functions) {
371
+ $args = \func_get_args();
372
  foreach ($functions as $fn) {
373
+ \call_user_func_array($fn, $args);
374
  }
375
  };
376
  }
vendor_prefix/guzzlehttp/guzzle/src/HandlerStack.php CHANGED
@@ -8,22 +8,14 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
8
  /**
9
  * Creates a composed Guzzle handler function by stacking middlewares on top of
10
  * an HTTP handler function.
11
- *
12
- * @final
13
  */
14
  class HandlerStack
15
  {
16
- /**
17
- * @var null|callable(RequestInterface, array): PromiseInterface
18
- */
19
  private $handler;
20
- /**
21
- * @var array{(callable(callable(RequestInterface, array): PromiseInterface): callable), (string|null)}[]
22
- */
23
  private $stack = [];
24
- /**
25
- * @var null|callable(RequestInterface, array): PromiseInterface
26
- */
27
  private $cached;
28
  /**
29
  * Creates a default handler stack that can be used by clients.
@@ -36,13 +28,15 @@ class HandlerStack
36
  * The returned handler stack can be passed to a client in the "handler"
37
  * option.
38
  *
39
- * @param null|callable(RequestInterface, array): PromiseInterface $handler HTTP handler function to use with the stack. If no
40
- * handler is provided, the best handler for your
41
- * system will be utilized.
 
 
42
  */
43
- public static function create(?callable $handler = null) : self
44
  {
45
- $stack = new self($handler ?: \PYS_PRO_GLOBAL\GuzzleHttp\Utils::chooseHandler());
46
  $stack->push(\PYS_PRO_GLOBAL\GuzzleHttp\Middleware::httpErrors(), 'http_errors');
47
  $stack->push(\PYS_PRO_GLOBAL\GuzzleHttp\Middleware::redirect(), 'allow_redirects');
48
  $stack->push(\PYS_PRO_GLOBAL\GuzzleHttp\Middleware::cookies(), 'cookies');
@@ -50,7 +44,7 @@ class HandlerStack
50
  return $stack;
51
  }
52
  /**
53
- * @param null|callable(RequestInterface, array): PromiseInterface $handler Underlying HTTP handler.
54
  */
55
  public function __construct(callable $handler = null)
56
  {
@@ -59,6 +53,9 @@ class HandlerStack
59
  /**
60
  * Invokes the handler stack as a composed handler
61
  *
 
 
 
62
  * @return ResponseInterface|PromiseInterface
63
  */
64
  public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
@@ -75,7 +72,7 @@ class HandlerStack
75
  {
76
  $depth = 0;
77
  $stack = [];
78
- if ($this->handler !== null) {
79
  $stack[] = "0) Handler: " . $this->debugCallable($this->handler);
80
  }
81
  $result = '';
@@ -94,28 +91,30 @@ class HandlerStack
94
  /**
95
  * Set the HTTP handler that actually returns a promise.
96
  *
97
- * @param callable(RequestInterface, array): PromiseInterface $handler Accepts a request and array of options and
98
- * returns a Promise.
99
  */
100
- public function setHandler(callable $handler) : void
101
  {
102
  $this->handler = $handler;
103
  $this->cached = null;
104
  }
105
  /**
106
  * Returns true if the builder has a handler.
 
 
107
  */
108
- public function hasHandler() : bool
109
  {
110
- return $this->handler !== null;
111
  }
112
  /**
113
  * Unshift a middleware to the bottom of the stack.
114
  *
115
- * @param callable(callable): callable $middleware Middleware function
116
- * @param string $name Name to register for this middleware.
117
  */
118
- public function unshift(callable $middleware, ?string $name = null) : void
119
  {
120
  \array_unshift($this->stack, [$middleware, $name]);
121
  $this->cached = null;
@@ -123,10 +122,10 @@ class HandlerStack
123
  /**
124
  * Push a middleware to the top of the stack.
125
  *
126
- * @param callable(callable): callable $middleware Middleware function
127
- * @param string $name Name to register for this middleware.
128
  */
129
- public function push(callable $middleware, string $name = '') : void
130
  {
131
  $this->stack[] = [$middleware, $name];
132
  $this->cached = null;
@@ -134,22 +133,22 @@ class HandlerStack
134
  /**
135
  * Add a middleware before another middleware by name.
136
  *
137
- * @param string $findName Middleware to find
138
- * @param callable(callable): callable $middleware Middleware function
139
- * @param string $withName Name to register for this middleware.
140
  */
141
- public function before(string $findName, callable $middleware, string $withName = '') : void
142
  {
143
  $this->splice($findName, $withName, $middleware, \true);
144
  }
145
  /**
146
  * Add a middleware after another middleware by name.
147
  *
148
- * @param string $findName Middleware to find
149
- * @param callable(callable): callable $middleware Middleware function
150
- * @param string $withName Name to register for this middleware.
151
  */
152
- public function after(string $findName, callable $middleware, string $withName = '') : void
153
  {
154
  $this->splice($findName, $withName, $middleware, \false);
155
  }
@@ -158,34 +157,37 @@ class HandlerStack
158
  *
159
  * @param callable|string $remove Middleware to remove by instance or name.
160
  */
161
- public function remove($remove) : void
162
  {
163
  $this->cached = null;
164
  $idx = \is_callable($remove) ? 0 : 1;
165
- $this->stack = \array_values(\array_filter($this->stack, static function ($tuple) use($idx, $remove) {
166
  return $tuple[$idx] !== $remove;
167
  }));
168
  }
169
  /**
170
  * Compose the middleware and handler into a single callable function.
171
  *
172
- * @return callable(RequestInterface, array): PromiseInterface
173
  */
174
- public function resolve() : callable
175
  {
176
- if ($this->cached === null) {
177
- if (($prev = $this->handler) === null) {
178
  throw new \LogicException('No handler has been specified');
179
  }
180
  foreach (\array_reverse($this->stack) as $fn) {
181
- /** @var callable(RequestInterface, array): PromiseInterface $prev */
182
  $prev = $fn[0]($prev);
183
  }
184
  $this->cached = $prev;
185
  }
186
  return $this->cached;
187
  }
188
- private function findByName(string $name) : int
 
 
 
 
189
  {
190
  foreach ($this->stack as $k => $v) {
191
  if ($v[1] === $name) {
@@ -196,8 +198,13 @@ class HandlerStack
196
  }
197
  /**
198
  * Splices a function into the middleware list at a specific position.
 
 
 
 
 
199
  */
200
- private function splice(string $findName, string $withName, callable $middleware, bool $before) : void
201
  {
202
  $this->cached = null;
203
  $idx = $this->findByName($findName);
@@ -219,9 +226,11 @@ class HandlerStack
219
  /**
220
  * Provides a debug string for a given callable.
221
  *
222
- * @param callable $fn Function to write as a string.
 
 
223
  */
224
- private function debugCallable($fn) : string
225
  {
226
  if (\is_string($fn)) {
227
  return "callable({$fn})";
@@ -229,7 +238,6 @@ class HandlerStack
229
  if (\is_array($fn)) {
230
  return \is_string($fn[0]) ? "callable({$fn[0]}::{$fn[1]})" : "callable(['" . \get_class($fn[0]) . "', '{$fn[1]}'])";
231
  }
232
- /** @var object $fn */
233
  return 'callable(' . \spl_object_hash($fn) . ')';
234
  }
235
  }
8
  /**
9
  * Creates a composed Guzzle handler function by stacking middlewares on top of
10
  * an HTTP handler function.
 
 
11
  */
12
  class HandlerStack
13
  {
14
+ /** @var callable|null */
 
 
15
  private $handler;
16
+ /** @var array */
 
 
17
  private $stack = [];
18
+ /** @var callable|null */
 
 
19
  private $cached;
20
  /**
21
  * Creates a default handler stack that can be used by clients.
28
  * The returned handler stack can be passed to a client in the "handler"
29
  * option.
30
  *
31
+ * @param callable $handler HTTP handler function to use with the stack. If no
32
+ * handler is provided, the best handler for your
33
+ * system will be utilized.
34
+ *
35
+ * @return HandlerStack
36
  */
37
+ public static function create(callable $handler = null)
38
  {
39
+ $stack = new self($handler ?: choose_handler());
40
  $stack->push(\PYS_PRO_GLOBAL\GuzzleHttp\Middleware::httpErrors(), 'http_errors');
41
  $stack->push(\PYS_PRO_GLOBAL\GuzzleHttp\Middleware::redirect(), 'allow_redirects');
42
  $stack->push(\PYS_PRO_GLOBAL\GuzzleHttp\Middleware::cookies(), 'cookies');
44
  return $stack;
45
  }
46
  /**
47
+ * @param callable $handler Underlying HTTP handler.
48
  */
49
  public function __construct(callable $handler = null)
50
  {
53
  /**
54
  * Invokes the handler stack as a composed handler
55
  *
56
+ * @param RequestInterface $request
57
+ * @param array $options
58
+ *
59
  * @return ResponseInterface|PromiseInterface
60
  */
61
  public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
72
  {
73
  $depth = 0;
74
  $stack = [];
75
+ if ($this->handler) {
76
  $stack[] = "0) Handler: " . $this->debugCallable($this->handler);
77
  }
78
  $result = '';
91
  /**
92
  * Set the HTTP handler that actually returns a promise.
93
  *
94
+ * @param callable $handler Accepts a request and array of options and
95
+ * returns a Promise.
96
  */
97
+ public function setHandler(callable $handler)
98
  {
99
  $this->handler = $handler;
100
  $this->cached = null;
101
  }
102
  /**
103
  * Returns true if the builder has a handler.
104
+ *
105
+ * @return bool
106
  */
107
+ public function hasHandler()
108
  {
109
+ return (bool) $this->handler;
110
  }
111
  /**
112
  * Unshift a middleware to the bottom of the stack.
113
  *
114
+ * @param callable $middleware Middleware function
115
+ * @param string $name Name to register for this middleware.
116
  */
117
+ public function unshift(callable $middleware, $name = null)
118
  {
119
  \array_unshift($this->stack, [$middleware, $name]);
120
  $this->cached = null;
122
  /**
123
  * Push a middleware to the top of the stack.
124
  *
125
+ * @param callable $middleware Middleware function
126
+ * @param string $name Name to register for this middleware.
127
  */
128
+ public function push(callable $middleware, $name = '')
129
  {
130
  $this->stack[] = [$middleware, $name];
131
  $this->cached = null;
133
  /**
134
  * Add a middleware before another middleware by name.
135
  *
136
+ * @param string $findName Middleware to find
137
+ * @param callable $middleware Middleware function
138
+ * @param string $withName Name to register for this middleware.
139
  */
140
+ public function before($findName, callable $middleware, $withName = '')
141
  {
142
  $this->splice($findName, $withName, $middleware, \true);
143
  }
144
  /**
145
  * Add a middleware after another middleware by name.
146
  *
147
+ * @param string $findName Middleware to find
148
+ * @param callable $middleware Middleware function
149
+ * @param string $withName Name to register for this middleware.
150
  */
151
+ public function after($findName, callable $middleware, $withName = '')
152
  {
153
  $this->splice($findName, $withName, $middleware, \false);
154
  }
157
  *
158
  * @param callable|string $remove Middleware to remove by instance or name.
159
  */
160
+ public function remove($remove)
161
  {
162
  $this->cached = null;
163
  $idx = \is_callable($remove) ? 0 : 1;
164
+ $this->stack = \array_values(\array_filter($this->stack, function ($tuple) use($idx, $remove) {
165
  return $tuple[$idx] !== $remove;
166
  }));
167
  }
168
  /**
169
  * Compose the middleware and handler into a single callable function.
170
  *
171
+ * @return callable
172
  */
173
+ public function resolve()
174
  {
175
+ if (!$this->cached) {
176
+ if (!($prev = $this->handler)) {
177
  throw new \LogicException('No handler has been specified');
178
  }
179
  foreach (\array_reverse($this->stack) as $fn) {
 
180
  $prev = $fn[0]($prev);
181
  }
182
  $this->cached = $prev;
183
  }
184
  return $this->cached;
185
  }
186
+ /**
187
+ * @param string $name
188
+ * @return int
189
+ */
190
+ private function findByName($name)
191
  {
192
  foreach ($this->stack as $k => $v) {
193
  if ($v[1] === $name) {
198
  }
199
  /**
200
  * Splices a function into the middleware list at a specific position.
201
+ *
202
+ * @param string $findName
203
+ * @param string $withName
204
+ * @param callable $middleware
205
+ * @param bool $before
206
  */
207
+ private function splice($findName, $withName, callable $middleware, $before)
208
  {
209
  $this->cached = null;
210
  $idx = $this->findByName($findName);
226
  /**
227
  * Provides a debug string for a given callable.
228
  *
229
+ * @param array|callable $fn Function to write as a string.
230
+ *
231
+ * @return string
232
  */
233
+ private function debugCallable($fn)
234
  {
235
  if (\is_string($fn)) {
236
  return "callable({$fn})";
238
  if (\is_array($fn)) {
239
  return \is_string($fn[0]) ? "callable({$fn[0]}::{$fn[1]})" : "callable(['" . \get_class($fn[0]) . "', '{$fn[1]}'])";
240
  }
 
241
  return 'callable(' . \spl_object_hash($fn) . ')';
242
  }
243
  }
vendor_prefix/guzzlehttp/guzzle/src/MessageFormatter.php CHANGED
@@ -31,43 +31,38 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
31
  * - {res_headers}: Response headers
32
  * - {req_body}: Request body
33
  * - {res_body}: Response body
34
- *
35
- * @final
36
  */
37
- class MessageFormatter implements \PYS_PRO_GLOBAL\GuzzleHttp\MessageFormatterInterface
38
  {
39
  /**
40
  * Apache Common Log Format.
41
- *
42
- * @link https://httpd.apache.org/docs/2.4/logs.html#common
43
- *
44
  * @var string
45
  */
46
- public const CLF = "{hostname} {req_header_User-Agent} - [{date_common_log}] \"{method} {target} HTTP/{version}\" {code} {res_header_Content-Length}";
47
- public const DEBUG = ">>>>>>>>\n{request}\n<<<<<<<<\n{response}\n--------\n{error}";
48
- public const SHORT = '[{ts}] "{method} {target} HTTP/{version}" {code}';
49
- /**
50
- * @var string Template used to format log messages
51
- */
52
  private $template;
53
  /**
54
  * @param string $template Log message template
55
  */
56
- public function __construct(?string $template = self::CLF)
57
  {
58
  $this->template = $template ?: self::CLF;
59
  }
60
  /**
61
  * Returns a formatted message string.
62
  *
63
- * @param RequestInterface $request Request that was sent
64
- * @param ResponseInterface|null $response Response that was received
65
- * @param \Throwable|null $error Exception that was received
 
 
66
  */
67
- public function format(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, ?\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, ?\Throwable $error = null) : string
68
  {
69
  $cache = [];
70
- /** @var string */
71
  return \preg_replace_callback('/{\\s*([A-Za-z_\\-\\.0-9]+)\\s*}/', function (array $matches) use($request, $response, $error, &$cache) {
72
  if (isset($cache[$matches[1]])) {
73
  return $cache[$matches[1]];
@@ -75,10 +70,10 @@ class MessageFormatter implements \PYS_PRO_GLOBAL\GuzzleHttp\MessageFormatterInt
75
  $result = '';
76
  switch ($matches[1]) {
77
  case 'request':
78
- $result = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Message::toString($request);
79
  break;
80
  case 'response':
81
- $result = $response ? \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Message::toString($response) : '';
82
  break;
83
  case 'req_headers':
84
  $result = \trim($request->getMethod() . ' ' . $request->getRequestTarget()) . ' HTTP/' . $request->getProtocolVersion() . "\r\n" . $this->headers($request);
@@ -87,19 +82,10 @@ class MessageFormatter implements \PYS_PRO_GLOBAL\GuzzleHttp\MessageFormatterInt
87
  $result = $response ? \sprintf('HTTP/%s %d %s', $response->getProtocolVersion(), $response->getStatusCode(), $response->getReasonPhrase()) . "\r\n" . $this->headers($response) : 'NULL';
88
  break;
89
  case 'req_body':
90
- $result = $request->getBody()->__toString();
91
  break;
92
  case 'res_body':
93
- if (!$response instanceof \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface) {
94
- $result = 'NULL';
95
- break;
96
- }
97
- $body = $response->getBody();
98
- if (!$body->isSeekable()) {
99
- $result = 'RESPONSE_NOT_LOGGEABLE';
100
- break;
101
- }
102
- $result = $response->getBody()->__toString();
103
  break;
104
  case 'ts':
105
  case 'date_iso_8601':
@@ -156,8 +142,10 @@ class MessageFormatter implements \PYS_PRO_GLOBAL\GuzzleHttp\MessageFormatterInt
156
  }
157
  /**
158
  * Get headers from message as string
 
 
159
  */
160
- private function headers(\PYS_PRO_GLOBAL\Psr\Http\Message\MessageInterface $message) : string
161
  {
162
  $result = '';
163
  foreach ($message->getHeaders() as $name => $values) {
31
  * - {res_headers}: Response headers
32
  * - {req_body}: Request body
33
  * - {res_body}: Response body
 
 
34
  */
35
+ class MessageFormatter
36
  {
37
  /**
38
  * Apache Common Log Format.
39
+ * @link http://httpd.apache.org/docs/2.4/logs.html#common
 
 
40
  * @var string
41
  */
42
+ const CLF = "{hostname} {req_header_User-Agent} - [{date_common_log}] \"{method} {target} HTTP/{version}\" {code} {res_header_Content-Length}";
43
+ const DEBUG = ">>>>>>>>\n{request}\n<<<<<<<<\n{response}\n--------\n{error}";
44
+ const SHORT = '[{ts}] "{method} {target} HTTP/{version}" {code}';
45
+ /** @var string Template used to format log messages */
 
 
46
  private $template;
47
  /**
48
  * @param string $template Log message template
49
  */
50
+ public function __construct($template = self::CLF)
51
  {
52
  $this->template = $template ?: self::CLF;
53
  }
54
  /**
55
  * Returns a formatted message string.
56
  *
57
+ * @param RequestInterface $request Request that was sent
58
+ * @param ResponseInterface $response Response that was received
59
+ * @param \Exception $error Exception that was received
60
+ *
61
+ * @return string
62
  */
63
+ public function format(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, \Exception $error = null)
64
  {
65
  $cache = [];
 
66
  return \preg_replace_callback('/{\\s*([A-Za-z_\\-\\.0-9]+)\\s*}/', function (array $matches) use($request, $response, $error, &$cache) {
67
  if (isset($cache[$matches[1]])) {
68
  return $cache[$matches[1]];
70
  $result = '';
71
  switch ($matches[1]) {
72
  case 'request':
73
+ $result = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\str($request);
74
  break;
75
  case 'response':
76
+ $result = $response ? \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\str($response) : '';
77
  break;
78
  case 'req_headers':
79
  $result = \trim($request->getMethod() . ' ' . $request->getRequestTarget()) . ' HTTP/' . $request->getProtocolVersion() . "\r\n" . $this->headers($request);
82
  $result = $response ? \sprintf('HTTP/%s %d %s', $response->getProtocolVersion(), $response->getStatusCode(), $response->getReasonPhrase()) . "\r\n" . $this->headers($response) : 'NULL';
83
  break;
84
  case 'req_body':
85
+ $result = $request->getBody();
86
  break;
87
  case 'res_body':
88
+ $result = $response ? $response->getBody() : 'NULL';
 
 
 
 
 
 
 
 
 
89
  break;
90
  case 'ts':
91
  case 'date_iso_8601':
142
  }
143
  /**
144
  * Get headers from message as string
145
+ *
146
+ * @return string
147
  */
148
+ private function headers(\PYS_PRO_GLOBAL\Psr\Http\Message\MessageInterface $message)
149
  {
150
  $result = '';
151
  foreach ($message->getHeaders() as $name => $values) {
vendor_prefix/guzzlehttp/guzzle/src/MessageFormatterInterface.php DELETED
@@ -1,17 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
-
5
- use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
6
- use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
7
- interface MessageFormatterInterface
8
- {
9
- /**
10
- * Returns a formatted message string.
11
- *
12
- * @param RequestInterface $request Request that was sent
13
- * @param ResponseInterface|null $response Response that was received
14
- * @param \Throwable|null $error Exception that was received
15
- */
16
- public function format(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, ?\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, ?\Throwable $error = null) : string;
17
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/guzzlehttp/guzzle/src/Middleware.php CHANGED
@@ -4,9 +4,8 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException;
7
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
8
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
9
- use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
10
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
11
  use PYS_PRO_GLOBAL\Psr\Log\LoggerInterface;
12
  /**
@@ -22,10 +21,10 @@ final class Middleware
22
  *
23
  * @return callable Returns a function that accepts the next handler.
24
  */
25
- public static function cookies() : callable
26
  {
27
- return static function (callable $handler) : callable {
28
- return static function ($request, array $options) use($handler) {
29
  if (empty($options['cookies'])) {
30
  return $handler($request, $options);
31
  } elseif (!$options['cookies'] instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface) {
@@ -33,7 +32,7 @@ final class Middleware
33
  }
34
  $cookieJar = $options['cookies'];
35
  $request = $cookieJar->withCookieHeader($request);
36
- return $handler($request, $options)->then(static function (\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response) use($cookieJar, $request) : ResponseInterface {
37
  $cookieJar->extractCookies($request, $response);
38
  return $response;
39
  });
@@ -44,23 +43,21 @@ final class Middleware
44
  * Middleware that throws exceptions for 4xx or 5xx responses when the
45
  * "http_error" request option is set to true.
46
  *
47
- * @param BodySummarizerInterface|null $bodySummarizer The body summarizer to use in exception messages.
48
- *
49
- * @return callable(callable): callable Returns a function that accepts the next handler.
50
  */
51
- public static function httpErrors(\PYS_PRO_GLOBAL\GuzzleHttp\BodySummarizerInterface $bodySummarizer = null) : callable
52
  {
53
- return static function (callable $handler) use($bodySummarizer) : callable {
54
- return static function ($request, array $options) use($handler, $bodySummarizer) {
55
  if (empty($options['http_errors'])) {
56
  return $handler($request, $options);
57
  }
58
- return $handler($request, $options)->then(static function (\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response) use($request, $bodySummarizer) {
59
  $code = $response->getStatusCode();
60
  if ($code < 400) {
61
  return $response;
62
  }
63
- throw \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException::create($request, $response, null, [], $bodySummarizer);
64
  });
65
  };
66
  };
@@ -68,25 +65,24 @@ final class Middleware
68
  /**
69
  * Middleware that pushes history data to an ArrayAccess container.
70
  *
71
- * @param array|\ArrayAccess<int, array> $container Container to hold the history (by reference).
72
- *
73
- * @return callable(callable): callable Returns a function that accepts the next handler.
74
  *
 
75
  * @throws \InvalidArgumentException if container is not an array or ArrayAccess.
76
  */
77
- public static function history(&$container) : callable
78
  {
79
  if (!\is_array($container) && !$container instanceof \ArrayAccess) {
80
  throw new \InvalidArgumentException('history container must be an array or object implementing ArrayAccess');
81
  }
82
- return static function (callable $handler) use(&$container) : callable {
83
- return static function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) use($handler, &$container) {
84
- return $handler($request, $options)->then(static function ($value) use($request, &$container, $options) {
85
  $container[] = ['request' => $request, 'response' => $value, 'error' => null, 'options' => $options];
86
  return $value;
87
- }, static function ($reason) use($request, &$container, $options) {
88
  $container[] = ['request' => $request, 'response' => null, 'error' => $reason, 'options' => $options];
89
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($reason);
90
  });
91
  };
92
  };
@@ -104,10 +100,10 @@ final class Middleware
104
  *
105
  * @return callable Returns a function that accepts the next handler.
106
  */
107
- public static function tap(callable $before = null, callable $after = null) : callable
108
  {
109
- return static function (callable $handler) use($before, $after) : callable {
110
- return static function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) use($handler, $before, $after) {
111
  if ($before) {
112
  $before($request, $options);
113
  }
@@ -124,9 +120,9 @@ final class Middleware
124
  *
125
  * @return callable Returns a function that accepts the next handler.
126
  */
127
- public static function redirect() : callable
128
  {
129
- return static function (callable $handler) : RedirectMiddleware {
130
  return new \PYS_PRO_GLOBAL\GuzzleHttp\RedirectMiddleware($handler);
131
  };
132
  }
@@ -145,9 +141,9 @@ final class Middleware
145
  *
146
  * @return callable Returns a function that accepts the next handler.
147
  */
148
- public static function retry(callable $decider, callable $delay = null) : callable
149
  {
150
- return static function (callable $handler) use($decider, $delay) : RetryMiddleware {
151
  return new \PYS_PRO_GLOBAL\GuzzleHttp\RetryMiddleware($decider, $handler, $delay);
152
  };
153
  }
@@ -155,31 +151,25 @@ final class Middleware
155
  * Middleware that logs requests, responses, and errors using a message
156
  * formatter.
157
  *
158
- * @phpstan-param \Psr\Log\LogLevel::* $logLevel Level at which to log requests.
159
- *
160
- * @param LoggerInterface $logger Logs messages.
161
- * @param MessageFormatterInterface|MessageFormatter $formatter Formatter used to create message strings.
162
- * @param string $logLevel Level at which to log requests.
163
  *
164
  * @return callable Returns a function that accepts the next handler.
165
  */
166
- public static function log(\PYS_PRO_GLOBAL\Psr\Log\LoggerInterface $logger, $formatter, string $logLevel = 'info') : callable
167
  {
168
- // To be compatible with Guzzle 7.1.x we need to allow users to pass a MessageFormatter
169
- if (!$formatter instanceof \PYS_PRO_GLOBAL\GuzzleHttp\MessageFormatter && !$formatter instanceof \PYS_PRO_GLOBAL\GuzzleHttp\MessageFormatterInterface) {
170
- throw new \LogicException(\sprintf('Argument 2 to %s::log() must be of type %s', self::class, \PYS_PRO_GLOBAL\GuzzleHttp\MessageFormatterInterface::class));
171
- }
172
- return static function (callable $handler) use($logger, $formatter, $logLevel) : callable {
173
- return static function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options = []) use($handler, $logger, $formatter, $logLevel) {
174
- return $handler($request, $options)->then(static function ($response) use($logger, $request, $formatter, $logLevel) : ResponseInterface {
175
  $message = $formatter->format($request, $response);
176
  $logger->log($logLevel, $message);
177
  return $response;
178
- }, static function ($reason) use($logger, $request, $formatter) : PromiseInterface {
179
  $response = $reason instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException ? $reason->getResponse() : null;
180
- $message = $formatter->format($request, $response, \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::exceptionFor($reason));
181
- $logger->error($message);
182
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($reason);
183
  });
184
  };
185
  };
@@ -187,10 +177,12 @@ final class Middleware
187
  /**
188
  * This middleware adds a default content-type if possible, a default
189
  * content-length or transfer-encoding header, and the expect header.
 
 
190
  */
191
- public static function prepareBody() : callable
192
  {
193
- return static function (callable $handler) : PrepareBodyMiddleware {
194
  return new \PYS_PRO_GLOBAL\GuzzleHttp\PrepareBodyMiddleware($handler);
195
  };
196
  }
@@ -200,11 +192,12 @@ final class Middleware
200
  *
201
  * @param callable $fn Function that accepts a RequestInterface and returns
202
  * a RequestInterface.
 
203
  */
204
- public static function mapRequest(callable $fn) : callable
205
  {
206
- return static function (callable $handler) use($fn) : callable {
207
- return static function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) use($handler, $fn) {
208
  return $handler($fn($request), $options);
209
  };
210
  };
@@ -215,11 +208,12 @@ final class Middleware
215
  *
216
  * @param callable $fn Function that accepts a ResponseInterface and
217
  * returns a ResponseInterface.
 
218
  */
219
- public static function mapResponse(callable $fn) : callable
220
  {
221
- return static function (callable $handler) use($fn) : callable {
222
- return static function (\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) use($handler, $fn) {
223
  return $handler($request, $options)->then($fn);
224
  };
225
  };
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException;
7
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise\RejectedPromise;
8
+ use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
 
9
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
10
  use PYS_PRO_GLOBAL\Psr\Log\LoggerInterface;
11
  /**
21
  *
22
  * @return callable Returns a function that accepts the next handler.
23
  */
24
+ public static function cookies()
25
  {
26
+ return function (callable $handler) {
27
+ return function ($request, array $options) use($handler) {
28
  if (empty($options['cookies'])) {
29
  return $handler($request, $options);
30
  } elseif (!$options['cookies'] instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\CookieJarInterface) {
32
  }
33
  $cookieJar = $options['cookies'];
34
  $request = $cookieJar->withCookieHeader($request);
35
+ return $handler($request, $options)->then(function ($response) use($cookieJar, $request) {
36
  $cookieJar->extractCookies($request, $response);
37
  return $response;
38
  });
43
  * Middleware that throws exceptions for 4xx or 5xx responses when the
44
  * "http_error" request option is set to true.
45
  *
46
+ * @return callable Returns a function that accepts the next handler.
 
 
47
  */
48
+ public static function httpErrors()
49
  {
50
+ return function (callable $handler) {
51
+ return function ($request, array $options) use($handler) {
52
  if (empty($options['http_errors'])) {
53
  return $handler($request, $options);
54
  }
55
+ return $handler($request, $options)->then(function (\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response) use($request) {
56
  $code = $response->getStatusCode();
57
  if ($code < 400) {
58
  return $response;
59
  }
60
+ throw \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException::create($request, $response);
61
  });
62
  };
63
  };
65
  /**
66
  * Middleware that pushes history data to an ArrayAccess container.
67
  *
68
+ * @param array|\ArrayAccess $container Container to hold the history (by reference).
 
 
69
  *
70
+ * @return callable Returns a function that accepts the next handler.
71
  * @throws \InvalidArgumentException if container is not an array or ArrayAccess.
72
  */
73
+ public static function history(&$container)
74
  {
75
  if (!\is_array($container) && !$container instanceof \ArrayAccess) {
76
  throw new \InvalidArgumentException('history container must be an array or object implementing ArrayAccess');
77
  }
78
+ return function (callable $handler) use(&$container) {
79
+ return function ($request, array $options) use($handler, &$container) {
80
+ return $handler($request, $options)->then(function ($value) use($request, &$container, $options) {
81
  $container[] = ['request' => $request, 'response' => $value, 'error' => null, 'options' => $options];
82
  return $value;
83
+ }, function ($reason) use($request, &$container, $options) {
84
  $container[] = ['request' => $request, 'response' => null, 'error' => $reason, 'options' => $options];
85
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($reason);
86
  });
87
  };
88
  };
100
  *
101
  * @return callable Returns a function that accepts the next handler.
102
  */
103
+ public static function tap(callable $before = null, callable $after = null)
104
  {
105
+ return function (callable $handler) use($before, $after) {
106
+ return function ($request, array $options) use($handler, $before, $after) {
107
  if ($before) {
108
  $before($request, $options);
109
  }
120
  *
121
  * @return callable Returns a function that accepts the next handler.
122
  */
123
+ public static function redirect()
124
  {
125
+ return function (callable $handler) {
126
  return new \PYS_PRO_GLOBAL\GuzzleHttp\RedirectMiddleware($handler);
127
  };
128
  }
141
  *
142
  * @return callable Returns a function that accepts the next handler.
143
  */
144
+ public static function retry(callable $decider, callable $delay = null)
145
  {
146
+ return function (callable $handler) use($decider, $delay) {
147
  return new \PYS_PRO_GLOBAL\GuzzleHttp\RetryMiddleware($decider, $handler, $delay);
148
  };
149
  }
151
  * Middleware that logs requests, responses, and errors using a message
152
  * formatter.
153
  *
154
+ * @param LoggerInterface $logger Logs messages.
155
+ * @param MessageFormatter $formatter Formatter used to create message strings.
156
+ * @param string $logLevel Level at which to log requests.
 
 
157
  *
158
  * @return callable Returns a function that accepts the next handler.
159
  */
160
+ public static function log(\PYS_PRO_GLOBAL\Psr\Log\LoggerInterface $logger, \PYS_PRO_GLOBAL\GuzzleHttp\MessageFormatter $formatter, $logLevel = 'info')
161
  {
162
+ return function (callable $handler) use($logger, $formatter, $logLevel) {
163
+ return function ($request, array $options) use($handler, $logger, $formatter, $logLevel) {
164
+ return $handler($request, $options)->then(function ($response) use($logger, $request, $formatter, $logLevel) {
 
 
 
 
165
  $message = $formatter->format($request, $response);
166
  $logger->log($logLevel, $message);
167
  return $response;
168
+ }, function ($reason) use($logger, $request, $formatter) {
169
  $response = $reason instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException ? $reason->getResponse() : null;
170
+ $message = $formatter->format($request, $response, $reason);
171
+ $logger->notice($message);
172
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($reason);
173
  });
174
  };
175
  };
177
  /**
178
  * This middleware adds a default content-type if possible, a default
179
  * content-length or transfer-encoding header, and the expect header.
180
+ *
181
+ * @return callable
182
  */
183
+ public static function prepareBody()
184
  {
185
+ return function (callable $handler) {
186
  return new \PYS_PRO_GLOBAL\GuzzleHttp\PrepareBodyMiddleware($handler);
187
  };
188
  }
192
  *
193
  * @param callable $fn Function that accepts a RequestInterface and returns
194
  * a RequestInterface.
195
+ * @return callable
196
  */
197
+ public static function mapRequest(callable $fn)
198
  {
199
+ return function (callable $handler) use($fn) {
200
+ return function ($request, array $options) use($handler, $fn) {
201
  return $handler($fn($request), $options);
202
  };
203
  };
208
  *
209
  * @param callable $fn Function that accepts a ResponseInterface and
210
  * returns a ResponseInterface.
211
+ * @return callable
212
  */
213
+ public static function mapResponse(callable $fn)
214
  {
215
+ return function (callable $handler) use($fn) {
216
+ return function ($request, array $options) use($handler, $fn) {
217
  return $handler($request, $options)->then($fn);
218
  };
219
  };
vendor_prefix/guzzlehttp/guzzle/src/Pool.php CHANGED
@@ -2,7 +2,6 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\EachPromise;
7
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
8
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromisorInterface;
@@ -17,28 +16,27 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
17
  * When a function is yielded by the iterator, the function is provided the
18
  * "request_options" array that should be merged on top of any existing
19
  * options, and the function MUST then return a wait-able promise.
20
- *
21
- * @final
22
  */
23
  class Pool implements \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromisorInterface
24
  {
25
- /**
26
- * @var EachPromise
27
- */
28
  private $each;
29
  /**
30
  * @param ClientInterface $client Client used to send the requests.
31
  * @param array|\Iterator $requests Requests or functions that return
32
  * requests to send concurrently.
33
  * @param array $config Associative array of options
34
- * - concurrency: (int) Maximum number of requests to send concurrently
35
- * - options: Array of request options to apply to each request.
36
- * - fulfilled: (callable) Function to invoke when a request completes.
37
- * - rejected: (callable) Function to invoke when a request is rejected.
38
  */
39
  public function __construct(\PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface $client, $requests, array $config = [])
40
  {
41
- if (!isset($config['concurrency'])) {
 
 
 
42
  $config['concurrency'] = 25;
43
  }
44
  if (isset($config['options'])) {
@@ -47,15 +45,15 @@ class Pool implements \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromisorInterface
47
  } else {
48
  $opts = [];
49
  }
50
- $iterable = \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::iterFor($requests);
51
- $requests = static function () use($iterable, $client, $opts) {
52
  foreach ($iterable as $key => $rfn) {
53
  if ($rfn instanceof \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface) {
54
  (yield $key => $client->sendAsync($rfn, $opts));
55
  } elseif (\is_callable($rfn)) {
56
  (yield $key => $rfn($opts));
57
  } else {
58
- throw new \InvalidArgumentException('Each value yielded by the iterator must be a Psr7\\Http\\Message\\RequestInterface or a callable that returns a promise that fulfills with a Psr7\\Message\\Http\\ResponseInterface object.');
59
  }
60
  }
61
  };
@@ -63,8 +61,10 @@ class Pool implements \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromisorInterface
63
  }
64
  /**
65
  * Get promise
 
 
66
  */
67
- public function promise() : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
68
  {
69
  return $this->each->promise();
70
  }
@@ -79,14 +79,13 @@ class Pool implements \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromisorInterface
79
  * @param ClientInterface $client Client used to send the requests
80
  * @param array|\Iterator $requests Requests to send concurrently.
81
  * @param array $options Passes through the options available in
82
- * {@see \GuzzleHttp\Pool::__construct}
83
  *
84
  * @return array Returns an array containing the response or an exception
85
  * in the same order that the requests were sent.
86
- *
87
  * @throws \InvalidArgumentException if the event format is incorrect.
88
  */
89
- public static function batch(\PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface $client, $requests, array $options = []) : array
90
  {
91
  $res = [];
92
  self::cmpCallback($options, 'fulfilled', $res);
@@ -98,16 +97,18 @@ class Pool implements \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromisorInterface
98
  }
99
  /**
100
  * Execute callback(s)
 
 
101
  */
102
- private static function cmpCallback(array &$options, string $name, array &$results) : void
103
  {
104
  if (!isset($options[$name])) {
105
- $options[$name] = static function ($v, $k) use(&$results) {
106
  $results[$k] = $v;
107
  };
108
  } else {
109
  $currentFn = $options[$name];
110
- $options[$name] = static function ($v, $k) use(&$results, $currentFn) {
111
  $currentFn($v, $k);
112
  $results[$k] = $v;
113
  };
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\EachPromise;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
7
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromisorInterface;
16
  * When a function is yielded by the iterator, the function is provided the
17
  * "request_options" array that should be merged on top of any existing
18
  * options, and the function MUST then return a wait-able promise.
 
 
19
  */
20
  class Pool implements \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromisorInterface
21
  {
22
+ /** @var EachPromise */
 
 
23
  private $each;
24
  /**
25
  * @param ClientInterface $client Client used to send the requests.
26
  * @param array|\Iterator $requests Requests or functions that return
27
  * requests to send concurrently.
28
  * @param array $config Associative array of options
29
+ * - concurrency: (int) Maximum number of requests to send concurrently
30
+ * - options: Array of request options to apply to each request.
31
+ * - fulfilled: (callable) Function to invoke when a request completes.
32
+ * - rejected: (callable) Function to invoke when a request is rejected.
33
  */
34
  public function __construct(\PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface $client, $requests, array $config = [])
35
  {
36
+ // Backwards compatibility.
37
+ if (isset($config['pool_size'])) {
38
+ $config['concurrency'] = $config['pool_size'];
39
+ } elseif (!isset($config['concurrency'])) {
40
  $config['concurrency'] = 25;
41
  }
42
  if (isset($config['options'])) {
45
  } else {
46
  $opts = [];
47
  }
48
+ $iterable = \PYS_PRO_GLOBAL\GuzzleHttp\Promise\iter_for($requests);
49
+ $requests = function () use($iterable, $client, $opts) {
50
  foreach ($iterable as $key => $rfn) {
51
  if ($rfn instanceof \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface) {
52
  (yield $key => $client->sendAsync($rfn, $opts));
53
  } elseif (\is_callable($rfn)) {
54
  (yield $key => $rfn($opts));
55
  } else {
56
+ throw new \InvalidArgumentException('Each value yielded by ' . 'the iterator must be a Psr7\\Http\\Message\\RequestInterface ' . 'or a callable that returns a promise that fulfills ' . 'with a Psr7\\Message\\Http\\ResponseInterface object.');
57
  }
58
  }
59
  };
61
  }
62
  /**
63
  * Get promise
64
+ *
65
+ * @return PromiseInterface
66
  */
67
+ public function promise()
68
  {
69
  return $this->each->promise();
70
  }
79
  * @param ClientInterface $client Client used to send the requests
80
  * @param array|\Iterator $requests Requests to send concurrently.
81
  * @param array $options Passes through the options available in
82
+ * {@see GuzzleHttp\Pool::__construct}
83
  *
84
  * @return array Returns an array containing the response or an exception
85
  * in the same order that the requests were sent.
 
86
  * @throws \InvalidArgumentException if the event format is incorrect.
87
  */
88
+ public static function batch(\PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface $client, $requests, array $options = [])
89
  {
90
  $res = [];
91
  self::cmpCallback($options, 'fulfilled', $res);
97
  }
98
  /**
99
  * Execute callback(s)
100
+ *
101
+ * @return void
102
  */
103
+ private static function cmpCallback(array &$options, $name, array &$results)
104
  {
105
  if (!isset($options[$name])) {
106
+ $options[$name] = function ($v, $k) use(&$results) {
107
  $results[$k] = $v;
108
  };
109
  } else {
110
  $currentFn = $options[$name];
111
+ $options[$name] = function ($v, $k) use(&$results, $currentFn) {
112
  $currentFn($v, $k);
113
  $results[$k] = $v;
114
  };
vendor_prefix/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php CHANGED
@@ -3,27 +3,30 @@
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
 
6
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
7
  /**
8
  * Prepares requests that contain a body, adding the Content-Length,
9
  * Content-Type, and Expect headers.
10
- *
11
- * @final
12
  */
13
  class PrepareBodyMiddleware
14
  {
15
- /**
16
- * @var callable(RequestInterface, array): PromiseInterface
17
- */
18
  private $nextHandler;
19
  /**
20
- * @param callable(RequestInterface, array): PromiseInterface $nextHandler Next handler to invoke.
21
  */
22
  public function __construct(callable $nextHandler)
23
  {
24
  $this->nextHandler = $nextHandler;
25
  }
26
- public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
 
 
 
 
 
 
27
  {
28
  $fn = $this->nextHandler;
29
  // Don't do anything if the request has no body.
@@ -34,7 +37,7 @@ class PrepareBodyMiddleware
34
  // Add a default content-type if possible.
35
  if (!$request->hasHeader('Content-Type')) {
36
  if ($uri = $request->getBody()->getMetadata('uri')) {
37
- if (\is_string($uri) && ($type = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\MimeType::fromFilename($uri))) {
38
  $modify['set_headers']['Content-Type'] = $type;
39
  }
40
  }
@@ -50,18 +53,20 @@ class PrepareBodyMiddleware
50
  }
51
  // Add the expect header if needed.
52
  $this->addExpectHeader($request, $options, $modify);
53
- return $fn(\PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::modifyRequest($request, $modify), $options);
54
  }
55
  /**
56
  * Add expect header
 
 
57
  */
58
- private function addExpectHeader(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, array &$modify) : void
59
  {
60
  // Determine if the Expect header should be used
61
  if ($request->hasHeader('Expect')) {
62
  return;
63
  }
64
- $expect = $options['expect'] ?? null;
65
  // Return if disabled or if you're not using HTTP/1.1 or HTTP/2.0
66
  if ($expect === \false || $request->getProtocolVersion() < 1.1) {
67
  return;
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
6
+ use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
7
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
8
  /**
9
  * Prepares requests that contain a body, adding the Content-Length,
10
  * Content-Type, and Expect headers.
 
 
11
  */
12
  class PrepareBodyMiddleware
13
  {
14
+ /** @var callable */
 
 
15
  private $nextHandler;
16
  /**
17
+ * @param callable $nextHandler Next handler to invoke.
18
  */
19
  public function __construct(callable $nextHandler)
20
  {
21
  $this->nextHandler = $nextHandler;
22
  }
23
+ /**
24
+ * @param RequestInterface $request
25
+ * @param array $options
26
+ *
27
+ * @return PromiseInterface
28
+ */
29
+ public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
30
  {
31
  $fn = $this->nextHandler;
32
  // Don't do anything if the request has no body.
37
  // Add a default content-type if possible.
38
  if (!$request->hasHeader('Content-Type')) {
39
  if ($uri = $request->getBody()->getMetadata('uri')) {
40
+ if ($type = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\mimetype_from_filename($uri)) {
41
  $modify['set_headers']['Content-Type'] = $type;
42
  }
43
  }
53
  }
54
  // Add the expect header if needed.
55
  $this->addExpectHeader($request, $options, $modify);
56
+ return $fn(\PYS_PRO_GLOBAL\GuzzleHttp\Psr7\modify_request($request, $modify), $options);
57
  }
58
  /**
59
  * Add expect header
60
+ *
61
+ * @return void
62
  */
63
+ private function addExpectHeader(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, array &$modify)
64
  {
65
  // Determine if the Expect header should be used
66
  if ($request->hasHeader('Expect')) {
67
  return;
68
  }
69
+ $expect = isset($options['expect']) ? $options['expect'] : null;
70
  // Return if disabled or if you're not using HTTP/1.1 or HTTP/2.0
71
  if ($expect === \false || $request->getProtocolVersion() < 1.1) {
72
  return;
vendor_prefix/guzzlehttp/guzzle/src/RedirectMiddleware.php CHANGED
@@ -5,6 +5,7 @@ namespace PYS_PRO_GLOBAL\GuzzleHttp;
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\BadResponseException;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\TooManyRedirectsException;
7
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
 
8
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
9
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
10
  use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
@@ -13,29 +14,28 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
13
  *
14
  * Apply this middleware like other middleware using
15
  * {@see \GuzzleHttp\Middleware::redirect()}.
16
- *
17
- * @final
18
  */
19
  class RedirectMiddleware
20
  {
21
- public const HISTORY_HEADER = 'X-Guzzle-Redirect-History';
22
- public const STATUS_HISTORY_HEADER = 'X-Guzzle-Redirect-Status-History';
23
- /**
24
- * @var array
25
- */
26
  public static $defaultSettings = ['max' => 5, 'protocols' => ['http', 'https'], 'strict' => \false, 'referer' => \false, 'track_redirects' => \false];
27
- /**
28
- * @var callable(RequestInterface, array): PromiseInterface
29
- */
30
  private $nextHandler;
31
  /**
32
- * @param callable(RequestInterface, array): PromiseInterface $nextHandler Next handler to invoke.
33
  */
34
  public function __construct(callable $nextHandler)
35
  {
36
  $this->nextHandler = $nextHandler;
37
  }
38
- public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
 
 
 
 
 
 
39
  {
40
  $fn = $this->nextHandler;
41
  if (empty($options['allow_redirects'])) {
@@ -57,18 +57,23 @@ class RedirectMiddleware
57
  });
58
  }
59
  /**
 
 
 
 
60
  * @return ResponseInterface|PromiseInterface
61
  */
62
  public function checkRedirect(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response)
63
  {
64
- if (\strpos((string) $response->getStatusCode(), '3') !== 0 || !$response->hasHeader('Location')) {
65
  return $response;
66
  }
67
- $this->guardMax($request, $response, $options);
68
  $nextRequest = $this->modifyRequest($request, $options, $response);
69
  if (isset($options['allow_redirects']['on_redirect'])) {
70
- $options['allow_redirects']['on_redirect']($request, $response, $nextRequest->getUri());
71
  }
 
72
  $promise = $this($nextRequest, $options);
73
  // Add headers to be able to track history of redirects.
74
  if (!empty($options['allow_redirects']['track_redirects'])) {
@@ -78,35 +83,46 @@ class RedirectMiddleware
78
  }
79
  /**
80
  * Enable tracking on promise.
 
 
81
  */
82
- private function withTracking(\PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface $promise, string $uri, int $statusCode) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
83
  {
84
- return $promise->then(static function (\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response) use($uri, $statusCode) {
85
  // Note that we are pushing to the front of the list as this
86
  // would be an earlier response than what is currently present
87
  // in the history header.
88
  $historyHeader = $response->getHeader(self::HISTORY_HEADER);
89
  $statusHeader = $response->getHeader(self::STATUS_HISTORY_HEADER);
90
  \array_unshift($historyHeader, $uri);
91
- \array_unshift($statusHeader, (string) $statusCode);
92
  return $response->withHeader(self::HISTORY_HEADER, $historyHeader)->withHeader(self::STATUS_HISTORY_HEADER, $statusHeader);
93
  });
94
  }
95
  /**
96
  * Check for too many redirects
97
  *
 
 
98
  * @throws TooManyRedirectsException Too many redirects.
99
  */
100
- private function guardMax(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response, array &$options) : void
101
  {
102
- $current = $options['__redirect_count'] ?? 0;
103
  $options['__redirect_count'] = $current + 1;
104
  $max = $options['allow_redirects']['max'];
105
  if ($options['__redirect_count'] > $max) {
106
- throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TooManyRedirectsException("Will not follow more than {$max} redirects", $request, $response);
107
  }
108
  }
109
- public function modifyRequest(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response) : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface
 
 
 
 
 
 
 
110
  {
111
  // Request modifications to apply.
112
  $modify = [];
@@ -116,9 +132,7 @@ class RedirectMiddleware
116
  // would do.
117
  $statusCode = $response->getStatusCode();
118
  if ($statusCode == 303 || $statusCode <= 302 && !$options['allow_redirects']['strict']) {
119
- $safeMethods = ['GET', 'HEAD', 'OPTIONS'];
120
- $requestMethod = $request->getMethod();
121
- $modify['method'] = \in_array($requestMethod, $safeMethods) ? $requestMethod : 'GET';
122
  $modify['body'] = '';
123
  }
124
  $uri = $this->redirectUri($request, $response, $protocols);
@@ -127,7 +141,7 @@ class RedirectMiddleware
127
  $uri = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::idnUriConvert($uri, $idnOptions);
128
  }
129
  $modify['uri'] = $uri;
130
- \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Message::rewindBody($request);
131
  // Add the Referer header if it is told to do so and only
132
  // add the header if we are not redirecting from https to http.
133
  if ($options['allow_redirects']['referer'] && $modify['uri']->getScheme() === $request->getUri()->getScheme()) {
@@ -140,12 +154,18 @@ class RedirectMiddleware
140
  if ($request->getUri()->getHost() !== $modify['uri']->getHost()) {
141
  $modify['remove_headers'][] = 'Authorization';
142
  }
143
- return \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Utils::modifyRequest($request, $modify);
144
  }
145
  /**
146
  * Set the appropriate URL on the request based on the location header
 
 
 
 
 
 
147
  */
148
- private function redirectUri(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response, array $protocols) : \PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface
149
  {
150
  $location = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\UriResolver::resolve($request->getUri(), new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Uri($response->getHeaderLine('Location')));
151
  // Ensure that the redirect URI is allowed based on the protocols.
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\BadResponseException;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\TooManyRedirectsException;
7
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
8
+ use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
9
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
10
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
11
  use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
14
  *
15
  * Apply this middleware like other middleware using
16
  * {@see \GuzzleHttp\Middleware::redirect()}.
 
 
17
  */
18
  class RedirectMiddleware
19
  {
20
+ const HISTORY_HEADER = 'X-Guzzle-Redirect-History';
21
+ const STATUS_HISTORY_HEADER = 'X-Guzzle-Redirect-Status-History';
 
 
 
22
  public static $defaultSettings = ['max' => 5, 'protocols' => ['http', 'https'], 'strict' => \false, 'referer' => \false, 'track_redirects' => \false];
23
+ /** @var callable */
 
 
24
  private $nextHandler;
25
  /**
26
+ * @param callable $nextHandler Next handler to invoke.
27
  */
28
  public function __construct(callable $nextHandler)
29
  {
30
  $this->nextHandler = $nextHandler;
31
  }
32
+ /**
33
+ * @param RequestInterface $request
34
+ * @param array $options
35
+ *
36
+ * @return PromiseInterface
37
+ */
38
+ public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
39
  {
40
  $fn = $this->nextHandler;
41
  if (empty($options['allow_redirects'])) {
57
  });
58
  }
59
  /**
60
+ * @param RequestInterface $request
61
+ * @param array $options
62
+ * @param ResponseInterface $response
63
+ *
64
  * @return ResponseInterface|PromiseInterface
65
  */
66
  public function checkRedirect(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response)
67
  {
68
+ if (\substr($response->getStatusCode(), 0, 1) != '3' || !$response->hasHeader('Location')) {
69
  return $response;
70
  }
71
+ $this->guardMax($request, $options);
72
  $nextRequest = $this->modifyRequest($request, $options, $response);
73
  if (isset($options['allow_redirects']['on_redirect'])) {
74
+ \call_user_func($options['allow_redirects']['on_redirect'], $request, $response, $nextRequest->getUri());
75
  }
76
+ /** @var PromiseInterface|ResponseInterface $promise */
77
  $promise = $this($nextRequest, $options);
78
  // Add headers to be able to track history of redirects.
79
  if (!empty($options['allow_redirects']['track_redirects'])) {
83
  }
84
  /**
85
  * Enable tracking on promise.
86
+ *
87
+ * @return PromiseInterface
88
  */
89
+ private function withTracking(\PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface $promise, $uri, $statusCode)
90
  {
91
+ return $promise->then(function (\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response) use($uri, $statusCode) {
92
  // Note that we are pushing to the front of the list as this
93
  // would be an earlier response than what is currently present
94
  // in the history header.
95
  $historyHeader = $response->getHeader(self::HISTORY_HEADER);
96
  $statusHeader = $response->getHeader(self::STATUS_HISTORY_HEADER);
97
  \array_unshift($historyHeader, $uri);
98
+ \array_unshift($statusHeader, $statusCode);
99
  return $response->withHeader(self::HISTORY_HEADER, $historyHeader)->withHeader(self::STATUS_HISTORY_HEADER, $statusHeader);
100
  });
101
  }
102
  /**
103
  * Check for too many redirects
104
  *
105
+ * @return void
106
+ *
107
  * @throws TooManyRedirectsException Too many redirects.
108
  */
109
+ private function guardMax(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array &$options)
110
  {
111
+ $current = isset($options['__redirect_count']) ? $options['__redirect_count'] : 0;
112
  $options['__redirect_count'] = $current + 1;
113
  $max = $options['allow_redirects']['max'];
114
  if ($options['__redirect_count'] > $max) {
115
+ throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\TooManyRedirectsException("Will not follow more than {$max} redirects", $request);
116
  }
117
  }
118
+ /**
119
+ * @param RequestInterface $request
120
+ * @param array $options
121
+ * @param ResponseInterface $response
122
+ *
123
+ * @return RequestInterface
124
+ */
125
+ public function modifyRequest(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response)
126
  {
127
  // Request modifications to apply.
128
  $modify = [];
132
  // would do.
133
  $statusCode = $response->getStatusCode();
134
  if ($statusCode == 303 || $statusCode <= 302 && !$options['allow_redirects']['strict']) {
135
+ $modify['method'] = 'GET';
 
 
136
  $modify['body'] = '';
137
  }
138
  $uri = $this->redirectUri($request, $response, $protocols);
141
  $uri = \PYS_PRO_GLOBAL\GuzzleHttp\Utils::idnUriConvert($uri, $idnOptions);
142
  }
143
  $modify['uri'] = $uri;
144
+ \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\rewind_body($request);
145
  // Add the Referer header if it is told to do so and only
146
  // add the header if we are not redirecting from https to http.
147
  if ($options['allow_redirects']['referer'] && $modify['uri']->getScheme() === $request->getUri()->getScheme()) {
154
  if ($request->getUri()->getHost() !== $modify['uri']->getHost()) {
155
  $modify['remove_headers'][] = 'Authorization';
156
  }
157
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\modify_request($request, $modify);
158
  }
159
  /**
160
  * Set the appropriate URL on the request based on the location header
161
+ *
162
+ * @param RequestInterface $request
163
+ * @param ResponseInterface $response
164
+ * @param array $protocols
165
+ *
166
+ * @return UriInterface
167
  */
168
+ private function redirectUri(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response, array $protocols)
169
  {
170
  $location = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\UriResolver::resolve($request->getUri(), new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\Uri($response->getHeaderLine('Location')));
171
  // Ensure that the redirect URI is allowed based on the protocols.
vendor_prefix/guzzlehttp/guzzle/src/RequestOptions.php CHANGED
@@ -32,7 +32,7 @@ final class RequestOptions
32
  * response that was received, and the effective URI. Any return value
33
  * from the on_redirect function is ignored.
34
  */
35
- public const ALLOW_REDIRECTS = 'allow_redirects';
36
  /**
37
  * auth: (array) Pass an array of HTTP authentication parameters to use
38
  * with the request. The array must contain the username in index [0],
@@ -40,12 +40,12 @@ final class RequestOptions
40
  * authentication type in index [2]. Pass null to disable authentication
41
  * for a request.
42
  */
43
- public const AUTH = 'auth';
44
  /**
45
  * body: (resource|string|null|int|float|StreamInterface|callable|\Iterator)
46
  * Body to send in the request.
47
  */
48
- public const BODY = 'body';
49
  /**
50
  * cert: (string|array) Set to a string to specify the path to a file
51
  * containing a PEM formatted SSL client side certificate. If a password
@@ -53,37 +53,37 @@ final class RequestOptions
53
  * file in the first array element followed by the certificate password
54
  * in the second array element.
55
  */
56
- public const CERT = 'cert';
57
  /**
58
  * cookies: (bool|GuzzleHttp\Cookie\CookieJarInterface, default=false)
59
  * Specifies whether or not cookies are used in a request or what cookie
60
  * jar to use or what cookies to send. This option only works if your
61
  * handler has the `cookie` middleware. Valid values are `false` and
62
- * an instance of {@see \GuzzleHttp\Cookie\CookieJarInterface}.
63
  */
64
- public const COOKIES = 'cookies';
65
  /**
66
  * connect_timeout: (float, default=0) Float describing the number of
67
  * seconds to wait while trying to connect to a server. Use 0 to wait
68
  * indefinitely (the default behavior).
69
  */
70
- public const CONNECT_TIMEOUT = 'connect_timeout';
71
  /**
72
  * debug: (bool|resource) Set to true or set to a PHP stream returned by
73
  * fopen() enable debug output with the HTTP handler used to send a
74
  * request.
75
  */
76
- public const DEBUG = 'debug';
77
  /**
78
  * decode_content: (bool, default=true) Specify whether or not
79
  * Content-Encoding responses (gzip, deflate, etc.) are automatically
80
  * decoded.
81
  */
82
- public const DECODE_CONTENT = 'decode_content';
83
  /**
84
  * delay: (int) The amount of time to delay before sending in milliseconds.
85
  */
86
- public const DELAY = 'delay';
87
  /**
88
  * expect: (bool|integer) Controls the behavior of the
89
  * "Expect: 100-Continue" header.
@@ -100,39 +100,39 @@ final class RequestOptions
100
  * size of the body of a request is greater than 1 MB and a request is
101
  * using HTTP/1.1.
102
  */
103
- public const EXPECT = 'expect';
104
  /**
105
  * form_params: (array) Associative array of form field names to values
106
  * where each value is a string or array of strings. Sets the Content-Type
107
  * header to application/x-www-form-urlencoded when no Content-Type header
108
  * is already present.
109
  */
110
- public const FORM_PARAMS = 'form_params';
111
  /**
112
  * headers: (array) Associative array of HTTP headers. Each value MUST be
113
  * a string or array of strings.
114
  */
115
- public const HEADERS = 'headers';
116
  /**
117
  * http_errors: (bool, default=true) Set to false to disable exceptions
118
  * when a non- successful HTTP response is received. By default,
119
  * exceptions will be thrown for 4xx and 5xx responses. This option only
120
  * works if your handler has the `httpErrors` middleware.
121
  */
122
- public const HTTP_ERRORS = 'http_errors';
123
  /**
124
  * idn: (bool|int, default=true) A combination of IDNA_* constants for
125
  * idn_to_ascii() PHP's function (see "options" parameter). Set to false to
126
  * disable IDN support completely, or to true to use the default
127
  * configuration (IDNA_DEFAULT constant).
128
  */
129
- public const IDN_CONVERSION = 'idn_conversion';
130
  /**
131
  * json: (mixed) Adds JSON data to a request. The provided value is JSON
132
  * encoded and a Content-Type header of application/json will be added to
133
  * the request if no Content-Type header is already present.
134
  */
135
- public const JSON = 'json';
136
  /**
137
  * multipart: (array) Array of associative arrays, each containing a
138
  * required "name" key mapping to the form field, name, a required
@@ -142,13 +142,13 @@ final class RequestOptions
142
  * the part. If no "filename" key is present, then no "filename" attribute
143
  * will be added to the part.
144
  */
145
- public const MULTIPART = 'multipart';
146
  /**
147
  * on_headers: (callable) A callable that is invoked when the HTTP headers
148
  * of the response have been received but the body has not yet begun to
149
  * download.
150
  */
151
- public const ON_HEADERS = 'on_headers';
152
  /**
153
  * on_stats: (callable) allows you to get access to transfer statistics of
154
  * a request and access the lower level transfer details of the handler
@@ -158,7 +158,7 @@ final class RequestOptions
158
  * the error encountered. Included in the data is the total amount of time
159
  * taken to send the request.
160
  */
161
- public const ON_STATS = 'on_stats';
162
  /**
163
  * progress: (callable) Defines a function to invoke when transfer
164
  * progress is made. The function accepts the following positional
@@ -166,45 +166,45 @@ final class RequestOptions
166
  * number of bytes downloaded so far, the number of bytes expected to be
167
  * uploaded, the number of bytes uploaded so far.
168
  */
169
- public const PROGRESS = 'progress';
170
  /**
171
  * proxy: (string|array) Pass a string to specify an HTTP proxy, or an
172
  * array to specify different proxies for different protocols (where the
173
  * key is the protocol and the value is a proxy string).
174
  */
175
- public const PROXY = 'proxy';
176
  /**
177
  * query: (array|string) Associative array of query string values to add
178
  * to the request. This option uses PHP's http_build_query() to create
179
  * the string representation. Pass a string value if you need more
180
  * control than what this method provides
181
  */
182
- public const QUERY = 'query';
183
  /**
184
  * sink: (resource|string|StreamInterface) Where the data of the
185
  * response is written to. Defaults to a PHP temp stream. Providing a
186
  * string will write data to a file by the given name.
187
  */
188
- public const SINK = 'sink';
189
  /**
190
  * synchronous: (bool) Set to true to inform HTTP handlers that you intend
191
  * on waiting on the response. This can be useful for optimizations. Note
192
  * that a promise is still returned if you are using one of the async
193
  * client methods.
194
  */
195
- public const SYNCHRONOUS = 'synchronous';
196
  /**
197
  * ssl_key: (array|string) Specify the path to a file containing a private
198
  * SSL key in PEM format. If a password is required, then set to an array
199
  * containing the path to the SSL key in the first array element followed
200
  * by the password required for the certificate in the second element.
201
  */
202
- public const SSL_KEY = 'ssl_key';
203
  /**
204
  * stream: Set to true to attempt to stream a response rather than
205
  * download it all up-front.
206
  */
207
- public const STREAM = 'stream';
208
  /**
209
  * verify: (bool|string, default=true) Describes the SSL certificate
210
  * verification behavior of a request. Set to true to enable SSL
@@ -213,23 +213,23 @@ final class RequestOptions
213
  * is insecure!). Set to a string to provide the path to a CA bundle on
214
  * disk to enable verification using a custom certificate.
215
  */
216
- public const VERIFY = 'verify';
217
  /**
218
  * timeout: (float, default=0) Float describing the timeout of the
219
  * request in seconds. Use 0 to wait indefinitely (the default behavior).
220
  */
221
- public const TIMEOUT = 'timeout';
222
  /**
223
  * read_timeout: (float, default=default_socket_timeout ini setting) Float describing
224
  * the body read timeout, for stream requests.
225
  */
226
- public const READ_TIMEOUT = 'read_timeout';
227
  /**
228
  * version: (float) Specifies the HTTP protocol version to attempt to use.
229
  */
230
- public const VERSION = 'version';
231
  /**
232
  * force_ip_resolve: (bool) Force client to use only ipv4 or ipv6 protocol
233
  */
234
- public const FORCE_IP_RESOLVE = 'force_ip_resolve';
235
  }
32
  * response that was received, and the effective URI. Any return value
33
  * from the on_redirect function is ignored.
34
  */
35
+ const ALLOW_REDIRECTS = 'allow_redirects';
36
  /**
37
  * auth: (array) Pass an array of HTTP authentication parameters to use
38
  * with the request. The array must contain the username in index [0],
40
  * authentication type in index [2]. Pass null to disable authentication
41
  * for a request.
42
  */
43
+ const AUTH = 'auth';
44
  /**
45
  * body: (resource|string|null|int|float|StreamInterface|callable|\Iterator)
46
  * Body to send in the request.
47
  */
48
+ const BODY = 'body';
49
  /**
50
  * cert: (string|array) Set to a string to specify the path to a file
51
  * containing a PEM formatted SSL client side certificate. If a password
53
  * file in the first array element followed by the certificate password
54
  * in the second array element.
55
  */
56
+ const CERT = 'cert';
57
  /**
58
  * cookies: (bool|GuzzleHttp\Cookie\CookieJarInterface, default=false)
59
  * Specifies whether or not cookies are used in a request or what cookie
60
  * jar to use or what cookies to send. This option only works if your
61
  * handler has the `cookie` middleware. Valid values are `false` and
62
+ * an instance of {@see GuzzleHttp\Cookie\CookieJarInterface}.
63
  */
64
+ const COOKIES = 'cookies';
65
  /**
66
  * connect_timeout: (float, default=0) Float describing the number of
67
  * seconds to wait while trying to connect to a server. Use 0 to wait
68
  * indefinitely (the default behavior).
69
  */
70
+ const CONNECT_TIMEOUT = 'connect_timeout';
71
  /**
72
  * debug: (bool|resource) Set to true or set to a PHP stream returned by
73
  * fopen() enable debug output with the HTTP handler used to send a
74
  * request.
75
  */
76
+ const DEBUG = 'debug';
77
  /**
78
  * decode_content: (bool, default=true) Specify whether or not
79
  * Content-Encoding responses (gzip, deflate, etc.) are automatically
80
  * decoded.
81
  */
82
+ const DECODE_CONTENT = 'decode_content';
83
  /**
84
  * delay: (int) The amount of time to delay before sending in milliseconds.
85
  */
86
+ const DELAY = 'delay';
87
  /**
88
  * expect: (bool|integer) Controls the behavior of the
89
  * "Expect: 100-Continue" header.
100
  * size of the body of a request is greater than 1 MB and a request is
101
  * using HTTP/1.1.
102
  */
103
+ const EXPECT = 'expect';
104
  /**
105
  * form_params: (array) Associative array of form field names to values
106
  * where each value is a string or array of strings. Sets the Content-Type
107
  * header to application/x-www-form-urlencoded when no Content-Type header
108
  * is already present.
109
  */
110
+ const FORM_PARAMS = 'form_params';
111
  /**
112
  * headers: (array) Associative array of HTTP headers. Each value MUST be
113
  * a string or array of strings.
114
  */
115
+ const HEADERS = 'headers';
116
  /**
117
  * http_errors: (bool, default=true) Set to false to disable exceptions
118
  * when a non- successful HTTP response is received. By default,
119
  * exceptions will be thrown for 4xx and 5xx responses. This option only
120
  * works if your handler has the `httpErrors` middleware.
121
  */
122
+ const HTTP_ERRORS = 'http_errors';
123
  /**
124
  * idn: (bool|int, default=true) A combination of IDNA_* constants for
125
  * idn_to_ascii() PHP's function (see "options" parameter). Set to false to
126
  * disable IDN support completely, or to true to use the default
127
  * configuration (IDNA_DEFAULT constant).
128
  */
129
+ const IDN_CONVERSION = 'idn_conversion';
130
  /**
131
  * json: (mixed) Adds JSON data to a request. The provided value is JSON
132
  * encoded and a Content-Type header of application/json will be added to
133
  * the request if no Content-Type header is already present.
134
  */
135
+ const JSON = 'json';
136
  /**
137
  * multipart: (array) Array of associative arrays, each containing a
138
  * required "name" key mapping to the form field, name, a required
142
  * the part. If no "filename" key is present, then no "filename" attribute
143
  * will be added to the part.
144
  */
145
+ const MULTIPART = 'multipart';
146
  /**
147
  * on_headers: (callable) A callable that is invoked when the HTTP headers
148
  * of the response have been received but the body has not yet begun to
149
  * download.
150
  */
151
+ const ON_HEADERS = 'on_headers';
152
  /**
153
  * on_stats: (callable) allows you to get access to transfer statistics of
154
  * a request and access the lower level transfer details of the handler
158
  * the error encountered. Included in the data is the total amount of time
159
  * taken to send the request.
160
  */
161
+ const ON_STATS = 'on_stats';
162
  /**
163
  * progress: (callable) Defines a function to invoke when transfer
164
  * progress is made. The function accepts the following positional
166
  * number of bytes downloaded so far, the number of bytes expected to be
167
  * uploaded, the number of bytes uploaded so far.
168
  */
169
+ const PROGRESS = 'progress';
170
  /**
171
  * proxy: (string|array) Pass a string to specify an HTTP proxy, or an
172
  * array to specify different proxies for different protocols (where the
173
  * key is the protocol and the value is a proxy string).
174
  */
175
+ const PROXY = 'proxy';
176
  /**
177
  * query: (array|string) Associative array of query string values to add
178
  * to the request. This option uses PHP's http_build_query() to create
179
  * the string representation. Pass a string value if you need more
180
  * control than what this method provides
181
  */
182
+ const QUERY = 'query';
183
  /**
184
  * sink: (resource|string|StreamInterface) Where the data of the
185
  * response is written to. Defaults to a PHP temp stream. Providing a
186
  * string will write data to a file by the given name.
187
  */
188
+ const SINK = 'sink';
189
  /**
190
  * synchronous: (bool) Set to true to inform HTTP handlers that you intend
191
  * on waiting on the response. This can be useful for optimizations. Note
192
  * that a promise is still returned if you are using one of the async
193
  * client methods.
194
  */
195
+ const SYNCHRONOUS = 'synchronous';
196
  /**
197
  * ssl_key: (array|string) Specify the path to a file containing a private
198
  * SSL key in PEM format. If a password is required, then set to an array
199
  * containing the path to the SSL key in the first array element followed
200
  * by the password required for the certificate in the second element.
201
  */
202
+ const SSL_KEY = 'ssl_key';
203
  /**
204
  * stream: Set to true to attempt to stream a response rather than
205
  * download it all up-front.
206
  */
207
+ const STREAM = 'stream';
208
  /**
209
  * verify: (bool|string, default=true) Describes the SSL certificate
210
  * verification behavior of a request. Set to true to enable SSL
213
  * is insecure!). Set to a string to provide the path to a CA bundle on
214
  * disk to enable verification using a custom certificate.
215
  */
216
+ const VERIFY = 'verify';
217
  /**
218
  * timeout: (float, default=0) Float describing the timeout of the
219
  * request in seconds. Use 0 to wait indefinitely (the default behavior).
220
  */
221
+ const TIMEOUT = 'timeout';
222
  /**
223
  * read_timeout: (float, default=default_socket_timeout ini setting) Float describing
224
  * the body read timeout, for stream requests.
225
  */
226
+ const READ_TIMEOUT = 'read_timeout';
227
  /**
228
  * version: (float) Specifies the HTTP protocol version to attempt to use.
229
  */
230
+ const VERSION = 'version';
231
  /**
232
  * force_ip_resolve: (bool) Force client to use only ipv4 or ipv6 protocol
233
  */
234
+ const FORCE_IP_RESOLVE = 'force_ip_resolve';
235
  }
vendor_prefix/guzzlehttp/guzzle/src/RetryMiddleware.php CHANGED
@@ -2,39 +2,32 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
- use PYS_PRO_GLOBAL\GuzzleHttp\Promise as P;
6
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
 
 
7
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
8
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
9
  /**
10
  * Middleware that retries requests based on the boolean result of
11
  * invoking the provided "decider" function.
12
- *
13
- * @final
14
  */
15
  class RetryMiddleware
16
  {
17
- /**
18
- * @var callable(RequestInterface, array): PromiseInterface
19
- */
20
  private $nextHandler;
21
- /**
22
- * @var callable
23
- */
24
  private $decider;
25
- /**
26
- * @var callable(int)
27
- */
28
  private $delay;
29
  /**
30
- * @param callable $decider Function that accepts the number of retries,
31
- * a request, [response], and [exception] and
32
- * returns true if the request is to be
33
- * retried.
34
- * @param callable(RequestInterface, array): PromiseInterface $nextHandler Next handler to invoke.
35
- * @param null|callable(int): int $delay Function that accepts the number of retries
36
- * and returns the number of
37
- * milliseconds to delay.
38
  */
39
  public function __construct(callable $decider, callable $nextHandler, callable $delay = null)
40
  {
@@ -45,13 +38,21 @@ class RetryMiddleware
45
  /**
46
  * Default exponential backoff delay function.
47
  *
 
 
48
  * @return int milliseconds.
49
  */
50
- public static function exponentialDelay(int $retries) : int
51
  {
52
  return (int) \pow(2, $retries - 1) * 1000;
53
  }
54
- public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
 
 
 
 
 
 
55
  {
56
  if (!isset($options['retries'])) {
57
  $options['retries'] = 0;
@@ -61,31 +62,38 @@ class RetryMiddleware
61
  }
62
  /**
63
  * Execute fulfilled closure
 
 
64
  */
65
- private function onFulfilled(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options) : callable
66
  {
67
- return function ($value) use($request, $options) {
68
- if (!($this->decider)($options['retries'], $request, $value, null)) {
69
  return $value;
70
  }
71
- return $this->doRetry($request, $options, $value);
72
  };
73
  }
74
  /**
75
  * Execute rejected closure
 
 
76
  */
77
- private function onRejected(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $req, array $options) : callable
78
  {
79
  return function ($reason) use($req, $options) {
80
- if (!($this->decider)($options['retries'], $req, null, $reason)) {
81
- return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\Create::rejectionFor($reason);
82
  }
83
  return $this->doRetry($req, $options);
84
  };
85
  }
86
- private function doRetry(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null) : \PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface
 
 
 
87
  {
88
- $options['delay'] = ($this->delay)(++$options['retries'], $response);
89
  return $this($request, $options);
90
  }
91
  }
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Promise\PromiseInterface;
6
+ use PYS_PRO_GLOBAL\GuzzleHttp\Promise\RejectedPromise;
7
+ use PYS_PRO_GLOBAL\GuzzleHttp\Psr7;
8
  use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
9
  use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
10
  /**
11
  * Middleware that retries requests based on the boolean result of
12
  * invoking the provided "decider" function.
 
 
13
  */
14
  class RetryMiddleware
15
  {
16
+ /** @var callable */
 
 
17
  private $nextHandler;
18
+ /** @var callable */
 
 
19
  private $decider;
20
+ /** @var callable */
 
 
21
  private $delay;
22
  /**
23
+ * @param callable $decider Function that accepts the number of retries,
24
+ * a request, [response], and [exception] and
25
+ * returns true if the request is to be
26
+ * retried.
27
+ * @param callable $nextHandler Next handler to invoke.
28
+ * @param callable $delay Function that accepts the number of retries
29
+ * and [response] and returns the number of
30
+ * milliseconds to delay.
31
  */
32
  public function __construct(callable $decider, callable $nextHandler, callable $delay = null)
33
  {
38
  /**
39
  * Default exponential backoff delay function.
40
  *
41
+ * @param int $retries
42
+ *
43
  * @return int milliseconds.
44
  */
45
+ public static function exponentialDelay($retries)
46
  {
47
  return (int) \pow(2, $retries - 1) * 1000;
48
  }
49
+ /**
50
+ * @param RequestInterface $request
51
+ * @param array $options
52
+ *
53
+ * @return PromiseInterface
54
+ */
55
+ public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
56
  {
57
  if (!isset($options['retries'])) {
58
  $options['retries'] = 0;
62
  }
63
  /**
64
  * Execute fulfilled closure
65
+ *
66
+ * @return mixed
67
  */
68
+ private function onFulfilled(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $req, array $options)
69
  {
70
+ return function ($value) use($req, $options) {
71
+ if (!\call_user_func($this->decider, $options['retries'], $req, $value, null)) {
72
  return $value;
73
  }
74
+ return $this->doRetry($req, $options, $value);
75
  };
76
  }
77
  /**
78
  * Execute rejected closure
79
+ *
80
+ * @return callable
81
  */
82
+ private function onRejected(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $req, array $options)
83
  {
84
  return function ($reason) use($req, $options) {
85
+ if (!\call_user_func($this->decider, $options['retries'], $req, null, $reason)) {
86
+ return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\rejection_for($reason);
87
  }
88
  return $this->doRetry($req, $options);
89
  };
90
  }
91
+ /**
92
+ * @return self
93
+ */
94
+ private function doRetry(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null)
95
  {
96
+ $options['delay'] = \call_user_func($this->delay, ++$options['retries'], $response);
97
  return $this($request, $options);
98
  }
99
  }
vendor_prefix/guzzlehttp/guzzle/src/TransferStats.php CHANGED
@@ -11,25 +11,10 @@ use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
11
  */
12
  final class TransferStats
13
  {
14
- /**
15
- * @var RequestInterface
16
- */
17
  private $request;
18
- /**
19
- * @var ResponseInterface|null
20
- */
21
  private $response;
22
- /**
23
- * @var float|null
24
- */
25
  private $transferTime;
26
- /**
27
- * @var array
28
- */
29
  private $handlerStats;
30
- /**
31
- * @var mixed|null
32
- */
33
  private $handlerErrorData;
34
  /**
35
  * @param RequestInterface $request Request that was sent.
@@ -38,7 +23,7 @@ final class TransferStats
38
  * @param mixed $handlerErrorData Handler error data.
39
  * @param array $handlerStats Handler specific stats.
40
  */
41
- public function __construct(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, ?\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, ?float $transferTime = null, $handlerErrorData = null, array $handlerStats = [])
42
  {
43
  $this->request = $request;
44
  $this->response = $response;
@@ -46,21 +31,28 @@ final class TransferStats
46
  $this->handlerErrorData = $handlerErrorData;
47
  $this->handlerStats = $handlerStats;
48
  }
49
- public function getRequest() : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface
 
 
 
50
  {
51
  return $this->request;
52
  }
53
  /**
54
  * Returns the response that was received (if any).
 
 
55
  */
56
- public function getResponse() : ?\PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface
57
  {
58
  return $this->response;
59
  }
60
  /**
61
  * Returns true if a response was received.
 
 
62
  */
63
- public function hasResponse() : bool
64
  {
65
  return $this->response !== null;
66
  }
@@ -79,8 +71,10 @@ final class TransferStats
79
  }
80
  /**
81
  * Get the effective URI the request was sent to.
 
 
82
  */
83
- public function getEffectiveUri() : \PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface
84
  {
85
  return $this->request->getUri();
86
  }
@@ -89,14 +83,16 @@ final class TransferStats
89
  *
90
  * @return float|null Time in seconds.
91
  */
92
- public function getTransferTime() : ?float
93
  {
94
  return $this->transferTime;
95
  }
96
  /**
97
  * Gets an array of all of the handler specific transfer data.
 
 
98
  */
99
- public function getHandlerStats() : array
100
  {
101
  return $this->handlerStats;
102
  }
@@ -107,7 +103,7 @@ final class TransferStats
107
  *
108
  * @return mixed|null
109
  */
110
- public function getHandlerStat(string $stat)
111
  {
112
  return isset($this->handlerStats[$stat]) ? $this->handlerStats[$stat] : null;
113
  }
11
  */
12
  final class TransferStats
13
  {
 
 
 
14
  private $request;
 
 
 
15
  private $response;
 
 
 
16
  private $transferTime;
 
 
 
17
  private $handlerStats;
 
 
 
18
  private $handlerErrorData;
19
  /**
20
  * @param RequestInterface $request Request that was sent.
23
  * @param mixed $handlerErrorData Handler error data.
24
  * @param array $handlerStats Handler specific stats.
25
  */
26
+ public function __construct(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, $transferTime = null, $handlerErrorData = null, $handlerStats = [])
27
  {
28
  $this->request = $request;
29
  $this->response = $response;
31
  $this->handlerErrorData = $handlerErrorData;
32
  $this->handlerStats = $handlerStats;
33
  }
34
+ /**
35
+ * @return RequestInterface
36
+ */
37
+ public function getRequest()
38
  {
39
  return $this->request;
40
  }
41
  /**
42
  * Returns the response that was received (if any).
43
+ *
44
+ * @return ResponseInterface|null
45
  */
46
+ public function getResponse()
47
  {
48
  return $this->response;
49
  }
50
  /**
51
  * Returns true if a response was received.
52
+ *
53
+ * @return bool
54
  */
55
+ public function hasResponse()
56
  {
57
  return $this->response !== null;
58
  }
71
  }
72
  /**
73
  * Get the effective URI the request was sent to.
74
+ *
75
+ * @return UriInterface
76
  */
77
+ public function getEffectiveUri()
78
  {
79
  return $this->request->getUri();
80
  }
83
  *
84
  * @return float|null Time in seconds.
85
  */
86
+ public function getTransferTime()
87
  {
88
  return $this->transferTime;
89
  }
90
  /**
91
  * Gets an array of all of the handler specific transfer data.
92
+ *
93
+ * @return array
94
  */
95
+ public function getHandlerStats()
96
  {
97
  return $this->handlerStats;
98
  }
103
  *
104
  * @return mixed|null
105
  */
106
+ public function getHandlerStat($stat)
107
  {
108
  return isset($this->handlerStats[$stat]) ? $this->handlerStats[$stat] : null;
109
  }
vendor_prefix/guzzlehttp/guzzle/src/UriTemplate.php ADDED
@@ -0,0 +1,191 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
+
5
+ /**
6
+ * Expands URI templates. Userland implementation of PECL uri_template.
7
+ *
8
+ * @link http://tools.ietf.org/html/rfc6570
9
+ */
10
+ class UriTemplate
11
+ {
12
+ /** @var string URI template */
13
+ private $template;
14
+ /** @var array Variables to use in the template expansion */
15
+ private $variables;
16
+ /** @var array Hash for quick operator lookups */
17
+ private static $operatorHash = ['' => ['prefix' => '', 'joiner' => ',', 'query' => \false], '+' => ['prefix' => '', 'joiner' => ',', 'query' => \false], '#' => ['prefix' => '#', 'joiner' => ',', 'query' => \false], '.' => ['prefix' => '.', 'joiner' => '.', 'query' => \false], '/' => ['prefix' => '/', 'joiner' => '/', 'query' => \false], ';' => ['prefix' => ';', 'joiner' => ';', 'query' => \true], '?' => ['prefix' => '?', 'joiner' => '&', 'query' => \true], '&' => ['prefix' => '&', 'joiner' => '&', 'query' => \true]];
18
+ /** @var array Delimiters */
19
+ private static $delims = [':', '/', '?', '#', '[', ']', '@', '!', '$', '&', '\'', '(', ')', '*', '+', ',', ';', '='];
20
+ /** @var array Percent encoded delimiters */
21
+ private static $delimsPct = ['%3A', '%2F', '%3F', '%23', '%5B', '%5D', '%40', '%21', '%24', '%26', '%27', '%28', '%29', '%2A', '%2B', '%2C', '%3B', '%3D'];
22
+ public function expand($template, array $variables)
23
+ {
24
+ if (\false === \strpos($template, '{')) {
25
+ return $template;
26
+ }
27
+ $this->template = $template;
28
+ $this->variables = $variables;
29
+ return \preg_replace_callback('/\\{([^\\}]+)\\}/', [$this, 'expandMatch'], $this->template);
30
+ }
31
+ /**
32
+ * Parse an expression into parts
33
+ *
34
+ * @param string $expression Expression to parse
35
+ *
36
+ * @return array Returns an associative array of parts
37
+ */
38
+ private function parseExpression($expression)
39
+ {
40
+ $result = [];
41
+ if (isset(self::$operatorHash[$expression[0]])) {
42
+ $result['operator'] = $expression[0];
43
+ $expression = \substr($expression, 1);
44
+ } else {
45
+ $result['operator'] = '';
46
+ }
47
+ foreach (\explode(',', $expression) as $value) {
48
+ $value = \trim($value);
49
+ $varspec = [];
50
+ if ($colonPos = \strpos($value, ':')) {
51
+ $varspec['value'] = \substr($value, 0, $colonPos);
52
+ $varspec['modifier'] = ':';
53
+ $varspec['position'] = (int) \substr($value, $colonPos + 1);
54
+ } elseif (\substr($value, -1) === '*') {
55
+ $varspec['modifier'] = '*';
56
+ $varspec['value'] = \substr($value, 0, -1);
57
+ } else {
58
+ $varspec['value'] = (string) $value;
59
+ $varspec['modifier'] = '';
60
+ }
61
+ $result['values'][] = $varspec;
62
+ }
63
+ return $result;
64
+ }
65
+ /**
66
+ * Process an expansion
67
+ *
68
+ * @param array $matches Matches met in the preg_replace_callback
69
+ *
70
+ * @return string Returns the replacement string
71
+ */
72
+ private function expandMatch(array $matches)
73
+ {
74
+ static $rfc1738to3986 = ['+' => '%20', '%7e' => '~'];
75
+ $replacements = [];
76
+ $parsed = self::parseExpression($matches[1]);
77
+ $prefix = self::$operatorHash[$parsed['operator']]['prefix'];
78
+ $joiner = self::$operatorHash[$parsed['operator']]['joiner'];
79
+ $useQuery = self::$operatorHash[$parsed['operator']]['query'];
80
+ foreach ($parsed['values'] as $value) {
81
+ if (!isset($this->variables[$value['value']])) {
82
+ continue;
83
+ }
84
+ $variable = $this->variables[$value['value']];
85
+ $actuallyUseQuery = $useQuery;
86
+ $expanded = '';
87
+ if (\is_array($variable)) {
88
+ $isAssoc = $this->isAssoc($variable);
89
+ $kvp = [];
90
+ foreach ($variable as $key => $var) {
91
+ if ($isAssoc) {
92
+ $key = \rawurlencode($key);
93
+ $isNestedArray = \is_array($var);
94
+ } else {
95
+ $isNestedArray = \false;
96
+ }
97
+ if (!$isNestedArray) {
98
+ $var = \rawurlencode($var);
99
+ if ($parsed['operator'] === '+' || $parsed['operator'] === '#') {
100
+ $var = $this->decodeReserved($var);
101
+ }
102
+ }
103
+ if ($value['modifier'] === '*') {
104
+ if ($isAssoc) {
105
+ if ($isNestedArray) {
106
+ // Nested arrays must allow for deeply nested
107
+ // structures.
108
+ $var = \strtr(\http_build_query([$key => $var]), $rfc1738to3986);
109
+ } else {
110
+ $var = $key . '=' . $var;
111
+ }
112
+ } elseif ($key > 0 && $actuallyUseQuery) {
113
+ $var = $value['value'] . '=' . $var;
114
+ }
115
+ }
116
+ $kvp[$key] = $var;
117
+ }
118
+ if (empty($variable)) {
119
+ $actuallyUseQuery = \false;
120
+ } elseif ($value['modifier'] === '*') {
121
+ $expanded = \implode($joiner, $kvp);
122
+ if ($isAssoc) {
123
+ // Don't prepend the value name when using the explode
124
+ // modifier with an associative array.
125
+ $actuallyUseQuery = \false;
126
+ }
127
+ } else {
128
+ if ($isAssoc) {
129
+ // When an associative array is encountered and the
130
+ // explode modifier is not set, then the result must be
131
+ // a comma separated list of keys followed by their
132
+ // respective values.
133
+ foreach ($kvp as $k => &$v) {
134
+ $v = $k . ',' . $v;
135
+ }
136
+ }
137
+ $expanded = \implode(',', $kvp);
138
+ }
139
+ } else {
140
+ if ($value['modifier'] === ':') {
141
+ $variable = \substr($variable, 0, $value['position']);
142
+ }
143
+ $expanded = \rawurlencode($variable);
144
+ if ($parsed['operator'] === '+' || $parsed['operator'] === '#') {
145
+ $expanded = $this->decodeReserved($expanded);
146
+ }
147
+ }
148
+ if ($actuallyUseQuery) {
149
+ if (!$expanded && $joiner !== '&') {
150
+ $expanded = $value['value'];
151
+ } else {
152
+ $expanded = $value['value'] . '=' . $expanded;
153
+ }
154
+ }
155
+ $replacements[] = $expanded;
156
+ }
157
+ $ret = \implode($joiner, $replacements);
158
+ if ($ret && $prefix) {
159
+ return $prefix . $ret;
160
+ }
161
+ return $ret;
162
+ }
163
+ /**
164
+ * Determines if an array is associative.
165
+ *
166
+ * This makes the assumption that input arrays are sequences or hashes.
167
+ * This assumption is a tradeoff for accuracy in favor of speed, but it
168
+ * should work in almost every case where input is supplied for a URI
169
+ * template.
170
+ *
171
+ * @param array $array Array to check
172
+ *
173
+ * @return bool
174
+ */
175
+ private function isAssoc(array $array)
176
+ {
177
+ return $array && \array_keys($array)[0] !== 0;
178
+ }
179
+ /**
180
+ * Removes percent encoding on reserved characters (used with + and #
181
+ * modifiers).
182
+ *
183
+ * @param string $string String to fix
184
+ *
185
+ * @return string
186
+ */
187
+ private function decodeReserved($string)
188
+ {
189
+ return \str_replace(self::$delimsPct, self::$delims, $string);
190
+ }
191
+ }
vendor_prefix/guzzlehttp/guzzle/src/Utils.php CHANGED
@@ -3,300 +3,37 @@
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException;
6
- use PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlHandler;
7
- use PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlMultiHandler;
8
- use PYS_PRO_GLOBAL\GuzzleHttp\Handler\Proxy;
9
- use PYS_PRO_GLOBAL\GuzzleHttp\Handler\StreamHandler;
10
  use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
 
11
  final class Utils
12
  {
13
- /**
14
- * Debug function used to describe the provided value type and class.
15
- *
16
- * @param mixed $input
17
- *
18
- * @return string Returns a string containing the type of the variable and
19
- * if a class is provided, the class name.
20
- */
21
- public static function describeType($input) : string
22
- {
23
- switch (\gettype($input)) {
24
- case 'object':
25
- return 'object(' . \get_class($input) . ')';
26
- case 'array':
27
- return 'array(' . \count($input) . ')';
28
- default:
29
- \ob_start();
30
- \var_dump($input);
31
- // normalize float vs double
32
- /** @var string $varDumpContent */
33
- $varDumpContent = \ob_get_clean();
34
- return \str_replace('double(', 'float(', \rtrim($varDumpContent));
35
- }
36
- }
37
- /**
38
- * Parses an array of header lines into an associative array of headers.
39
- *
40
- * @param iterable $lines Header lines array of strings in the following
41
- * format: "Name: Value"
42
- */
43
- public static function headersFromLines(iterable $lines) : array
44
- {
45
- $headers = [];
46
- foreach ($lines as $line) {
47
- $parts = \explode(':', $line, 2);
48
- $headers[\trim($parts[0])][] = isset($parts[1]) ? \trim($parts[1]) : null;
49
- }
50
- return $headers;
51
- }
52
- /**
53
- * Returns a debug stream based on the provided variable.
54
- *
55
- * @param mixed $value Optional value
56
- *
57
- * @return resource
58
- */
59
- public static function debugResource($value = null)
60
- {
61
- if (\is_resource($value)) {
62
- return $value;
63
- }
64
- if (\defined('STDOUT')) {
65
- return \STDOUT;
66
- }
67
- $resource = \fopen('php://output', 'w');
68
- if (\false === $resource) {
69
- throw new \RuntimeException('Can not open php output for writing to debug the resource.');
70
- }
71
- return $resource;
72
- }
73
- /**
74
- * Chooses and creates a default handler to use based on the environment.
75
- *
76
- * The returned handler is not wrapped by any default middlewares.
77
- *
78
- * @throws \RuntimeException if no viable Handler is available.
79
- *
80
- * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the best handler for the given system.
81
- */
82
- public static function chooseHandler() : callable
83
- {
84
- $handler = null;
85
- if (\function_exists('curl_multi_exec') && \function_exists('curl_exec')) {
86
- $handler = \PYS_PRO_GLOBAL\GuzzleHttp\Handler\Proxy::wrapSync(new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlMultiHandler(), new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlHandler());
87
- } elseif (\function_exists('curl_exec')) {
88
- $handler = new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlHandler();
89
- } elseif (\function_exists('curl_multi_exec')) {
90
- $handler = new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlMultiHandler();
91
- }
92
- if (\ini_get('allow_url_fopen')) {
93
- $handler = $handler ? \PYS_PRO_GLOBAL\GuzzleHttp\Handler\Proxy::wrapStreaming($handler, new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\StreamHandler()) : new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\StreamHandler();
94
- } elseif (!$handler) {
95
- throw new \RuntimeException('GuzzleHttp requires cURL, the allow_url_fopen ini setting, or a custom HTTP handler.');
96
- }
97
- return $handler;
98
- }
99
- /**
100
- * Get the default User-Agent string to use with Guzzle.
101
- */
102
- public static function defaultUserAgent() : string
103
- {
104
- return \sprintf('GuzzleHttp/%d', \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface::MAJOR_VERSION);
105
- }
106
- /**
107
- * Returns the default cacert bundle for the current system.
108
- *
109
- * First, the openssl.cafile and curl.cainfo php.ini settings are checked.
110
- * If those settings are not configured, then the common locations for
111
- * bundles found on Red Hat, CentOS, Fedora, Ubuntu, Debian, FreeBSD, OS X
112
- * and Windows are checked. If any of these file locations are found on
113
- * disk, they will be utilized.
114
- *
115
- * Note: the result of this function is cached for subsequent calls.
116
- *
117
- * @throws \RuntimeException if no bundle can be found.
118
- *
119
- * @deprecated Utils::defaultCaBundle will be removed in guzzlehttp/guzzle:8.0. This method is not needed in PHP 5.6+.
120
- */
121
- public static function defaultCaBundle() : string
122
- {
123
- static $cached = null;
124
- static $cafiles = [
125
- // Red Hat, CentOS, Fedora (provided by the ca-certificates package)
126
- '/etc/pki/tls/certs/ca-bundle.crt',
127
- // Ubuntu, Debian (provided by the ca-certificates package)
128
- '/etc/ssl/certs/ca-certificates.crt',
129
- // FreeBSD (provided by the ca_root_nss package)
130
- '/usr/local/share/certs/ca-root-nss.crt',
131
- // SLES 12 (provided by the ca-certificates package)
132
- '/var/lib/ca-certificates/ca-bundle.pem',
133
- // OS X provided by homebrew (using the default path)
134
- '/usr/local/etc/openssl/cert.pem',
135
- // Google app engine
136
- '/etc/ca-certificates.crt',
137
- // Windows?
138
- 'C:\\windows\\system32\\curl-ca-bundle.crt',
139
- 'C:\\windows\\curl-ca-bundle.crt',
140
- ];
141
- if ($cached) {
142
- return $cached;
143
- }
144
- if ($ca = \ini_get('openssl.cafile')) {
145
- return $cached = $ca;
146
- }
147
- if ($ca = \ini_get('curl.cainfo')) {
148
- return $cached = $ca;
149
- }
150
- foreach ($cafiles as $filename) {
151
- if (\file_exists($filename)) {
152
- return $cached = $filename;
153
- }
154
- }
155
- throw new \RuntimeException(<<<EOT
156
- No system CA bundle could be found in any of the the common system locations.
157
- PHP versions earlier than 5.6 are not properly configured to use the system's
158
- CA bundle by default. In order to verify peer certificates, you will need to
159
- supply the path on disk to a certificate bundle to the 'verify' request
160
- option: http://docs.guzzlephp.org/en/latest/clients.html#verify. If you do not
161
- need a specific certificate bundle, then Mozilla provides a commonly used CA
162
- bundle which can be downloaded here (provided by the maintainer of cURL):
163
- https://curl.haxx.se/ca/cacert.pem. Once
164
- you have a CA bundle available on disk, you can set the 'openssl.cafile' PHP
165
- ini setting to point to the path to the file, allowing you to omit the 'verify'
166
- request option. See https://curl.haxx.se/docs/sslcerts.html for more
167
- information.
168
- EOT
169
- );
170
- }
171
- /**
172
- * Creates an associative array of lowercase header names to the actual
173
- * header casing.
174
- */
175
- public static function normalizeHeaderKeys(array $headers) : array
176
- {
177
- $result = [];
178
- foreach (\array_keys($headers) as $key) {
179
- $result[\strtolower($key)] = $key;
180
- }
181
- return $result;
182
- }
183
- /**
184
- * Returns true if the provided host matches any of the no proxy areas.
185
- *
186
- * This method will strip a port from the host if it is present. Each pattern
187
- * can be matched with an exact match (e.g., "foo.com" == "foo.com") or a
188
- * partial match: (e.g., "foo.com" == "baz.foo.com" and ".foo.com" ==
189
- * "baz.foo.com", but ".foo.com" != "foo.com").
190
- *
191
- * Areas are matched in the following cases:
192
- * 1. "*" (without quotes) always matches any hosts.
193
- * 2. An exact match.
194
- * 3. The area starts with "." and the area is the last part of the host. e.g.
195
- * '.mit.edu' will match any host that ends with '.mit.edu'.
196
- *
197
- * @param string $host Host to check against the patterns.
198
- * @param string[] $noProxyArray An array of host patterns.
199
- *
200
- * @throws InvalidArgumentException
201
- */
202
- public static function isHostInNoProxy(string $host, array $noProxyArray) : bool
203
- {
204
- if (\strlen($host) === 0) {
205
- throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('Empty host provided');
206
- }
207
- // Strip port if present.
208
- if (\strpos($host, ':')) {
209
- /** @var string[] $hostParts will never be false because of the checks above */
210
- $hostParts = \explode($host, ':', 2);
211
- $host = $hostParts[0];
212
- }
213
- foreach ($noProxyArray as $area) {
214
- // Always match on wildcards.
215
- if ($area === '*') {
216
- return \true;
217
- } elseif (empty($area)) {
218
- // Don't match on empty values.
219
- continue;
220
- } elseif ($area === $host) {
221
- // Exact matches.
222
- return \true;
223
- }
224
- // Special match if the area when prefixed with ".". Remove any
225
- // existing leading "." and add a new leading ".".
226
- $area = '.' . \ltrim($area, '.');
227
- if (\substr($host, -\strlen($area)) === $area) {
228
- return \true;
229
- }
230
- }
231
- return \false;
232
- }
233
- /**
234
- * Wrapper for json_decode that throws when an error occurs.
235
- *
236
- * @param string $json JSON data to parse
237
- * @param bool $assoc When true, returned objects will be converted
238
- * into associative arrays.
239
- * @param int $depth User specified recursion depth.
240
- * @param int $options Bitmask of JSON decode options.
241
- *
242
- * @return object|array|string|int|float|bool|null
243
- *
244
- * @throws InvalidArgumentException if the JSON cannot be decoded.
245
- *
246
- * @link https://www.php.net/manual/en/function.json-decode.php
247
- */
248
- public static function jsonDecode(string $json, bool $assoc = \false, int $depth = 512, int $options = 0)
249
- {
250
- $data = \json_decode($json, $assoc, $depth, $options);
251
- if (\JSON_ERROR_NONE !== \json_last_error()) {
252
- throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('json_decode error: ' . \json_last_error_msg());
253
- }
254
- return $data;
255
- }
256
- /**
257
- * Wrapper for JSON encoding that throws when an error occurs.
258
- *
259
- * @param mixed $value The value being encoded
260
- * @param int $options JSON encode option bitmask
261
- * @param int $depth Set the maximum depth. Must be greater than zero.
262
- *
263
- * @throws InvalidArgumentException if the JSON cannot be encoded.
264
- *
265
- * @link https://www.php.net/manual/en/function.json-encode.php
266
- */
267
- public static function jsonEncode($value, int $options = 0, int $depth = 512) : string
268
- {
269
- $json = \json_encode($value, $options, $depth);
270
- if (\JSON_ERROR_NONE !== \json_last_error()) {
271
- throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('json_encode error: ' . \json_last_error_msg());
272
- }
273
- /** @var string */
274
- return $json;
275
- }
276
  /**
277
  * Wrapper for the hrtime() or microtime() functions
278
  * (depending on the PHP version, one of the two is used)
279
  *
280
- * @return float UNIX timestamp
281
  *
282
  * @internal
283
  */
284
- public static function currentTime() : float
285
  {
286
- return (float) \function_exists('hrtime') ? \hrtime(\true) / 1000000000.0 : \microtime(\true);
287
  }
288
  /**
 
 
 
289
  * @throws InvalidArgumentException
290
  *
291
  * @internal
292
  */
293
- public static function idnUriConvert(\PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface $uri, int $options = 0) : \PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface
294
  {
295
  if ($uri->getHost()) {
296
  $asciiHost = self::idnToAsci($uri->getHost(), $options, $info);
297
  if ($asciiHost === \false) {
298
- $errorBitSet = $info['errors'] ?? 0;
299
- $errorConstants = \array_filter(\array_keys(\get_defined_constants()), static function ($name) {
300
  return \substr($name, 0, 11) === 'IDNA_ERROR_';
301
  });
302
  $errors = [];
@@ -310,35 +47,36 @@ EOT
310
  $errorMessage .= ' (errors: ' . \implode(', ', $errors) . ')';
311
  }
312
  throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException($errorMessage);
313
- }
314
- if ($uri->getHost() !== $asciiHost) {
315
- // Replace URI only if the ASCII version is different
316
- $uri = $uri->withHost($asciiHost);
 
317
  }
318
  }
319
  return $uri;
320
  }
321
  /**
322
- * @internal
323
- */
324
- public static function getenv(string $name) : ?string
325
- {
326
- if (isset($_SERVER[$name])) {
327
- return (string) $_SERVER[$name];
328
- }
329
- if (\PHP_SAPI === 'cli' && ($value = \getenv($name)) !== \false && $value !== null) {
330
- return (string) $value;
331
- }
332
- return null;
333
- }
334
- /**
335
  * @return string|false
336
  */
337
- private static function idnToAsci(string $domain, int $options, ?array &$info = [])
338
  {
339
- if (\function_exists('idn_to_ascii') && \defined('INTL_IDNA_VARIANT_UTS46')) {
 
 
 
340
  return \idn_to_ascii($domain, $options, \INTL_IDNA_VARIANT_UTS46, $info);
341
  }
342
- throw new \Error('ext-idn or symfony/polyfill-intl-idn not loaded or too old');
 
 
 
 
 
 
343
  }
344
  }
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
  use PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException;
 
 
 
 
6
  use PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface;
7
+ use PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Idn;
8
  final class Utils
9
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  /**
11
  * Wrapper for the hrtime() or microtime() functions
12
  * (depending on the PHP version, one of the two is used)
13
  *
14
+ * @return float|mixed UNIX timestamp
15
  *
16
  * @internal
17
  */
18
+ public static function currentTime()
19
  {
20
+ return \function_exists('hrtime') ? \hrtime(\true) / 1000000000.0 : \microtime(\true);
21
  }
22
  /**
23
+ * @param int $options
24
+ *
25
+ * @return UriInterface
26
  * @throws InvalidArgumentException
27
  *
28
  * @internal
29
  */
30
+ public static function idnUriConvert(\PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface $uri, $options = 0)
31
  {
32
  if ($uri->getHost()) {
33
  $asciiHost = self::idnToAsci($uri->getHost(), $options, $info);
34
  if ($asciiHost === \false) {
35
+ $errorBitSet = isset($info['errors']) ? $info['errors'] : 0;
36
+ $errorConstants = \array_filter(\array_keys(\get_defined_constants()), function ($name) {
37
  return \substr($name, 0, 11) === 'IDNA_ERROR_';
38
  });
39
  $errors = [];
47
  $errorMessage .= ' (errors: ' . \implode(', ', $errors) . ')';
48
  }
49
  throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException($errorMessage);
50
+ } else {
51
+ if ($uri->getHost() !== $asciiHost) {
52
+ // Replace URI only if the ASCII version is different
53
+ $uri = $uri->withHost($asciiHost);
54
+ }
55
  }
56
  }
57
  return $uri;
58
  }
59
  /**
60
+ * @param string $domain
61
+ * @param int $options
62
+ * @param array $info
63
+ *
 
 
 
 
 
 
 
 
 
64
  * @return string|false
65
  */
66
+ private static function idnToAsci($domain, $options, &$info = [])
67
  {
68
+ if (\preg_match('%^[ -~]+$%', $domain) === 1) {
69
+ return $domain;
70
+ }
71
+ if (\extension_loaded('intl') && \defined('INTL_IDNA_VARIANT_UTS46')) {
72
  return \idn_to_ascii($domain, $options, \INTL_IDNA_VARIANT_UTS46, $info);
73
  }
74
+ /*
75
+ * The Idn class is marked as @internal. Verify that class and method exists.
76
+ */
77
+ if (\method_exists(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Idn::class, 'idn_to_ascii')) {
78
+ return \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Idn::idn_to_ascii($domain, $options, \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Idn::INTL_IDNA_VARIANT_UTS46, $info);
79
+ }
80
+ throw new \RuntimeException('ext-intl or symfony/polyfill-intl-idn not loaded or too old');
81
  }
82
  }
vendor_prefix/guzzlehttp/guzzle/src/functions.php CHANGED
@@ -2,32 +2,68 @@
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  /**
6
  * Debug function used to describe the provided value type and class.
7
  *
8
- * @param mixed $input Any type of variable to describe the type of. This
9
- * parameter misses a typehint because of that.
10
  *
11
  * @return string Returns a string containing the type of the variable and
12
  * if a class is provided, the class name.
13
- *
14
- * @deprecated describe_type will be removed in guzzlehttp/guzzle:8.0. Use Utils::describeType instead.
15
  */
16
- function describe_type($input) : string
17
  {
18
- return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::describeType($input);
 
 
 
 
 
 
 
 
 
 
19
  }
20
  /**
21
  * Parses an array of header lines into an associative array of headers.
22
  *
23
  * @param iterable $lines Header lines array of strings in the following
24
- * format: "Name: Value"
25
- *
26
- * @deprecated headers_from_lines will be removed in guzzlehttp/guzzle:8.0. Use Utils::headersFromLines instead.
27
  */
28
- function headers_from_lines(iterable $lines) : array
29
  {
30
- return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::headersFromLines($lines);
 
 
 
 
 
31
  }
32
  /**
33
  * Returns a debug stream based on the provided variable.
@@ -35,36 +71,57 @@ function headers_from_lines(iterable $lines) : array
35
  * @param mixed $value Optional value
36
  *
37
  * @return resource
38
- *
39
- * @deprecated debug_resource will be removed in guzzlehttp/guzzle:8.0. Use Utils::debugResource instead.
40
  */
41
  function debug_resource($value = null)
42
  {
43
- return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::debugResource($value);
 
 
 
 
 
44
  }
45
  /**
46
  * Chooses and creates a default handler to use based on the environment.
47
  *
48
  * The returned handler is not wrapped by any default middlewares.
49
  *
 
50
  * @throws \RuntimeException if no viable Handler is available.
51
- *
52
- * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the best handler for the given system.
53
- *
54
- * @deprecated choose_handler will be removed in guzzlehttp/guzzle:8.0. Use Utils::chooseHandler instead.
55
  */
56
- function choose_handler() : callable
57
  {
58
- return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::chooseHandler();
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  }
60
  /**
61
- * Get the default User-Agent string to use with Guzzle.
62
  *
63
- * @deprecated default_user_agent will be removed in guzzlehttp/guzzle:8.0. Use Utils::defaultUserAgent instead.
64
  */
65
- function default_user_agent() : string
66
  {
67
- return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::defaultUserAgent();
 
 
 
 
 
 
 
 
68
  }
69
  /**
70
  * Returns the default cacert bundle for the current system.
@@ -77,23 +134,74 @@ function default_user_agent() : string
77
  *
78
  * Note: the result of this function is cached for subsequent calls.
79
  *
 
80
  * @throws \RuntimeException if no bundle can be found.
81
- *
82
- * @deprecated default_ca_bundle will be removed in guzzlehttp/guzzle:8.0. This function is not needed in PHP 5.6+.
83
  */
84
- function default_ca_bundle() : string
85
  {
86
- return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::defaultCaBundle();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  }
88
  /**
89
  * Creates an associative array of lowercase header names to the actual
90
  * header casing.
91
  *
92
- * @deprecated normalize_header_keys will be removed in guzzlehttp/guzzle:8.0. Use Utils::normalizeHeaderKeys instead.
 
 
93
  */
94
- function normalize_header_keys(array $headers) : array
95
  {
96
- return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::normalizeHeaderKeys($headers);
 
 
 
 
97
  }
98
  /**
99
  * Returns true if the provided host matches any of the no proxy areas.
@@ -109,50 +217,78 @@ function normalize_header_keys(array $headers) : array
109
  * 3. The area starts with "." and the area is the last part of the host. e.g.
110
  * '.mit.edu' will match any host that ends with '.mit.edu'.
111
  *
112
- * @param string $host Host to check against the patterns.
113
- * @param string[] $noProxyArray An array of host patterns.
114
  *
115
- * @throws Exception\InvalidArgumentException
116
- *
117
- * @deprecated is_host_in_noproxy will be removed in guzzlehttp/guzzle:8.0. Use Utils::isHostInNoProxy instead.
118
  */
119
- function is_host_in_noproxy(string $host, array $noProxyArray) : bool
120
  {
121
- return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::isHostInNoProxy($host, $noProxyArray);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  }
123
  /**
124
  * Wrapper for json_decode that throws when an error occurs.
125
  *
126
  * @param string $json JSON data to parse
127
- * @param bool $assoc When true, returned objects will be converted
128
  * into associative arrays.
129
  * @param int $depth User specified recursion depth.
130
  * @param int $options Bitmask of JSON decode options.
131
  *
132
- * @return object|array|string|int|float|bool|null
133
- *
134
  * @throws Exception\InvalidArgumentException if the JSON cannot be decoded.
135
- *
136
- * @link https://www.php.net/manual/en/function.json-decode.php
137
- * @deprecated json_decode will be removed in guzzlehttp/guzzle:8.0. Use Utils::jsonDecode instead.
138
  */
139
- function json_decode(string $json, bool $assoc = \false, int $depth = 512, int $options = 0)
140
  {
141
- return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::jsonDecode($json, $assoc, $depth, $options);
 
 
 
 
142
  }
143
  /**
144
  * Wrapper for JSON encoding that throws when an error occurs.
145
  *
146
  * @param mixed $value The value being encoded
147
- * @param int $options JSON encode option bitmask
148
- * @param int $depth Set the maximum depth. Must be greater than zero.
149
  *
 
150
  * @throws Exception\InvalidArgumentException if the JSON cannot be encoded.
151
- *
152
- * @link https://www.php.net/manual/en/function.json-encode.php
153
- * @deprecated json_encode will be removed in guzzlehttp/guzzle:8.0. Use Utils::jsonEncode instead.
154
  */
155
- function json_encode($value, int $options = 0, int $depth = 512) : string
156
  {
157
- return \PYS_PRO_GLOBAL\GuzzleHttp\Utils::jsonEncode($value, $options, $depth);
 
 
 
 
158
  }
2
 
3
  namespace PYS_PRO_GLOBAL\GuzzleHttp;
4
 
5
+ use PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlHandler;
6
+ use PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlMultiHandler;
7
+ use PYS_PRO_GLOBAL\GuzzleHttp\Handler\Proxy;
8
+ use PYS_PRO_GLOBAL\GuzzleHttp\Handler\StreamHandler;
9
+ /**
10
+ * Expands a URI template
11
+ *
12
+ * @param string $template URI template
13
+ * @param array $variables Template variables
14
+ *
15
+ * @return string
16
+ */
17
+ function uri_template($template, array $variables)
18
+ {
19
+ if (\extension_loaded('uri_template')) {
20
+ // @codeCoverageIgnoreStart
21
+ return \PYS_PRO_GLOBAL\uri_template($template, $variables);
22
+ // @codeCoverageIgnoreEnd
23
+ }
24
+ static $uriTemplate;
25
+ if (!$uriTemplate) {
26
+ $uriTemplate = new \PYS_PRO_GLOBAL\GuzzleHttp\UriTemplate();
27
+ }
28
+ return $uriTemplate->expand($template, $variables);
29
+ }
30
  /**
31
  * Debug function used to describe the provided value type and class.
32
  *
33
+ * @param mixed $input
 
34
  *
35
  * @return string Returns a string containing the type of the variable and
36
  * if a class is provided, the class name.
 
 
37
  */
38
+ function describe_type($input)
39
  {
40
+ switch (\gettype($input)) {
41
+ case 'object':
42
+ return 'object(' . \get_class($input) . ')';
43
+ case 'array':
44
+ return 'array(' . \count($input) . ')';
45
+ default:
46
+ \ob_start();
47
+ \var_dump($input);
48
+ // normalize float vs double
49
+ return \str_replace('double(', 'float(', \rtrim(\ob_get_clean()));
50
+ }
51
  }
52
  /**
53
  * Parses an array of header lines into an associative array of headers.
54
  *
55
  * @param iterable $lines Header lines array of strings in the following
56
+ * format: "Name: Value"
57
+ * @return array
 
58
  */
59
+ function headers_from_lines($lines)
60
  {
61
+ $headers = [];
62
+ foreach ($lines as $line) {
63
+ $parts = \explode(':', $line, 2);
64
+ $headers[\trim($parts[0])][] = isset($parts[1]) ? \trim($parts[1]) : null;
65
+ }
66
+ return $headers;
67
  }
68
  /**
69
  * Returns a debug stream based on the provided variable.
71
  * @param mixed $value Optional value
72
  *
73
  * @return resource
 
 
74
  */
75
  function debug_resource($value = null)
76
  {
77
+ if (\is_resource($value)) {
78
+ return $value;
79
+ } elseif (\defined('STDOUT')) {
80
+ return \STDOUT;
81
+ }
82
+ return \fopen('php://output', 'w');
83
  }
84
  /**
85
  * Chooses and creates a default handler to use based on the environment.
86
  *
87
  * The returned handler is not wrapped by any default middlewares.
88
  *
89
+ * @return callable Returns the best handler for the given system.
90
  * @throws \RuntimeException if no viable Handler is available.
 
 
 
 
91
  */
92
+ function choose_handler()
93
  {
94
+ $handler = null;
95
+ if (\function_exists('curl_multi_exec') && \function_exists('curl_exec')) {
96
+ $handler = \PYS_PRO_GLOBAL\GuzzleHttp\Handler\Proxy::wrapSync(new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlMultiHandler(), new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlHandler());
97
+ } elseif (\function_exists('curl_exec')) {
98
+ $handler = new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlHandler();
99
+ } elseif (\function_exists('curl_multi_exec')) {
100
+ $handler = new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlMultiHandler();
101
+ }
102
+ if (\ini_get('allow_url_fopen')) {
103
+ $handler = $handler ? \PYS_PRO_GLOBAL\GuzzleHttp\Handler\Proxy::wrapStreaming($handler, new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\StreamHandler()) : new \PYS_PRO_GLOBAL\GuzzleHttp\Handler\StreamHandler();
104
+ } elseif (!$handler) {
105
+ throw new \RuntimeException('GuzzleHttp requires cURL, the ' . 'allow_url_fopen ini setting, or a custom HTTP handler.');
106
+ }
107
+ return $handler;
108
  }
109
  /**
110
+ * Get the default User-Agent string to use with Guzzle
111
  *
112
+ * @return string
113
  */
114
+ function default_user_agent()
115
  {
116
+ static $defaultAgent = '';
117
+ if (!$defaultAgent) {
118
+ $defaultAgent = 'GuzzleHttp/' . \PYS_PRO_GLOBAL\GuzzleHttp\Client::VERSION;
119
+ if (\extension_loaded('curl') && \function_exists('curl_version')) {
120
+ $defaultAgent .= ' curl/' . \curl_version()['version'];
121
+ }
122
+ $defaultAgent .= ' PHP/' . \PHP_VERSION;
123
+ }
124
+ return $defaultAgent;
125
  }
126
  /**
127
  * Returns the default cacert bundle for the current system.
134
  *
135
  * Note: the result of this function is cached for subsequent calls.
136
  *
137
+ * @return string
138
  * @throws \RuntimeException if no bundle can be found.
 
 
139
  */
140
+ function default_ca_bundle()
141
  {
142
+ static $cached = null;
143
+ static $cafiles = [
144
+ // Red Hat, CentOS, Fedora (provided by the ca-certificates package)
145
+ '/etc/pki/tls/certs/ca-bundle.crt',
146
+ // Ubuntu, Debian (provided by the ca-certificates package)
147
+ '/etc/ssl/certs/ca-certificates.crt',
148
+ // FreeBSD (provided by the ca_root_nss package)
149
+ '/usr/local/share/certs/ca-root-nss.crt',
150
+ // SLES 12 (provided by the ca-certificates package)
151
+ '/var/lib/ca-certificates/ca-bundle.pem',
152
+ // OS X provided by homebrew (using the default path)
153
+ '/usr/local/etc/openssl/cert.pem',
154
+ // Google app engine
155
+ '/etc/ca-certificates.crt',
156
+ // Windows?
157
+ 'C:\\windows\\system32\\curl-ca-bundle.crt',
158
+ 'C:\\windows\\curl-ca-bundle.crt',
159
+ ];
160
+ if ($cached) {
161
+ return $cached;
162
+ }
163
+ if ($ca = \ini_get('openssl.cafile')) {
164
+ return $cached = $ca;
165
+ }
166
+ if ($ca = \ini_get('curl.cainfo')) {
167
+ return $cached = $ca;
168
+ }
169
+ foreach ($cafiles as $filename) {
170
+ if (\file_exists($filename)) {
171
+ return $cached = $filename;
172
+ }
173
+ }
174
+ throw new \RuntimeException(<<<EOT
175
+ No system CA bundle could be found in any of the the common system locations.
176
+ PHP versions earlier than 5.6 are not properly configured to use the system's
177
+ CA bundle by default. In order to verify peer certificates, you will need to
178
+ supply the path on disk to a certificate bundle to the 'verify' request
179
+ option: http://docs.guzzlephp.org/en/latest/clients.html#verify. If you do not
180
+ need a specific certificate bundle, then Mozilla provides a commonly used CA
181
+ bundle which can be downloaded here (provided by the maintainer of cURL):
182
+ https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt. Once
183
+ you have a CA bundle available on disk, you can set the 'openssl.cafile' PHP
184
+ ini setting to point to the path to the file, allowing you to omit the 'verify'
185
+ request option. See http://curl.haxx.se/docs/sslcerts.html for more
186
+ information.
187
+ EOT
188
+ );
189
  }
190
  /**
191
  * Creates an associative array of lowercase header names to the actual
192
  * header casing.
193
  *
194
+ * @param array $headers
195
+ *
196
+ * @return array
197
  */
198
+ function normalize_header_keys(array $headers)
199
  {
200
+ $result = [];
201
+ foreach (\array_keys($headers) as $key) {
202
+ $result[\strtolower($key)] = $key;
203
+ }
204
+ return $result;
205
  }
206
  /**
207
  * Returns true if the provided host matches any of the no proxy areas.
217
  * 3. The area starts with "." and the area is the last part of the host. e.g.
218
  * '.mit.edu' will match any host that ends with '.mit.edu'.
219
  *
220
+ * @param string $host Host to check against the patterns.
221
+ * @param array $noProxyArray An array of host patterns.
222
  *
223
+ * @return bool
 
 
224
  */
225
+ function is_host_in_noproxy($host, array $noProxyArray)
226
  {
227
+ if (\strlen($host) === 0) {
228
+ throw new \InvalidArgumentException('Empty host provided');
229
+ }
230
+ // Strip port if present.
231
+ if (\strpos($host, ':')) {
232
+ $host = \explode($host, ':', 2)[0];
233
+ }
234
+ foreach ($noProxyArray as $area) {
235
+ // Always match on wildcards.
236
+ if ($area === '*') {
237
+ return \true;
238
+ } elseif (empty($area)) {
239
+ // Don't match on empty values.
240
+ continue;
241
+ } elseif ($area === $host) {
242
+ // Exact matches.
243
+ return \true;
244
+ } else {
245
+ // Special match if the area when prefixed with ".". Remove any
246
+ // existing leading "." and add a new leading ".".
247
+ $area = '.' . \ltrim($area, '.');
248
+ if (\substr($host, -\strlen($area)) === $area) {
249
+ return \true;
250
+ }
251
+ }
252
+ }
253
+ return \false;
254
  }
255
  /**
256
  * Wrapper for json_decode that throws when an error occurs.
257
  *
258
  * @param string $json JSON data to parse
259
+ * @param bool $assoc When true, returned objects will be converted
260
  * into associative arrays.
261
  * @param int $depth User specified recursion depth.
262
  * @param int $options Bitmask of JSON decode options.
263
  *
264
+ * @return mixed
 
265
  * @throws Exception\InvalidArgumentException if the JSON cannot be decoded.
266
+ * @link http://www.php.net/manual/en/function.json-decode.php
 
 
267
  */
268
+ function json_decode($json, $assoc = \false, $depth = 512, $options = 0)
269
  {
270
+ $data = \json_decode($json, $assoc, $depth, $options);
271
+ if (\JSON_ERROR_NONE !== \json_last_error()) {
272
+ throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('json_decode error: ' . \json_last_error_msg());
273
+ }
274
+ return $data;
275
  }
276
  /**
277
  * Wrapper for JSON encoding that throws when an error occurs.
278
  *
279
  * @param mixed $value The value being encoded
280
+ * @param int $options JSON encode option bitmask
281
+ * @param int $depth Set the maximum depth. Must be greater than zero.
282
  *
283
+ * @return string
284
  * @throws Exception\InvalidArgumentException if the JSON cannot be encoded.
285
+ * @link http://www.php.net/manual/en/function.json-encode.php
 
 
286
  */
287
+ function json_encode($value, $options = 0, $depth = 512)
288
  {
289
+ $json = \json_encode($value, $options, $depth);
290
+ if (\JSON_ERROR_NONE !== \json_last_error()) {
291
+ throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\InvalidArgumentException('json_encode error: ' . \json_last_error_msg());
292
+ }
293
+ return $json;
294
  }
vendor_prefix/guzzlehttp/guzzle/src/functions_include.php CHANGED
@@ -3,6 +3,6 @@
3
  namespace PYS_PRO_GLOBAL;
4
 
5
  // Don't redefine the functions if included multiple times.
6
- if (!\function_exists('PYS_PRO_GLOBAL\\GuzzleHttp\\describe_type')) {
7
  require __DIR__ . '/functions.php';
8
  }
3
  namespace PYS_PRO_GLOBAL;
4
 
5
  // Don't redefine the functions if included multiple times.
6
+ if (!\function_exists('PYS_PRO_GLOBAL\\GuzzleHttp\\uri_template')) {
7
  require __DIR__ . '/functions.php';
8
  }
vendor_prefix/paragonie/random_compat/dist/random_compat.phar.pubkey ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ -----BEGIN PUBLIC KEY-----
2
+ MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEEd+wCqJDrx5B4OldM0dQE0ZMX+lx1ZWm
3
+ pui0SUqD4G29L3NGsz9UhJ/0HjBdbnkhIK5xviT0X5vtjacF6ajgcCArbTB+ds+p
4
+ +h7Q084NuSuIpNb6YPfoUFgC/CL9kAoc
5
+ -----END PUBLIC KEY-----
vendor_prefix/paragonie/random_compat/dist/random_compat.phar.pubkey.asc ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ -----BEGIN PGP SIGNATURE-----
2
+ Version: GnuPG v2.0.22 (MingW32)
3
+
4
+ iQEcBAABAgAGBQJWtW1hAAoJEGuXocKCZATaJf0H+wbZGgskK1dcRTsuVJl9IWip
5
+ QwGw/qIKI280SD6/ckoUMxKDCJiFuPR14zmqnS36k7N5UNPnpdTJTS8T11jttSpg
6
+ 1LCmgpbEIpgaTah+cELDqFCav99fS+bEiAL5lWDAHBTE/XPjGVCqeehyPYref4IW
7
+ NDBIEsvnHPHPLsn6X5jq4+Yj5oUixgxaMPiR+bcO4Sh+RzOVB6i2D0upWfRXBFXA
8
+ NNnsg9/zjvoC7ZW73y9uSH+dPJTt/Vgfeiv52/v41XliyzbUyLalf02GNPY+9goV
9
+ JHG1ulEEBJOCiUD9cE1PUIJwHA/HqyhHIvV350YoEFiHl8iSwm7SiZu5kPjaq74=
10
+ =B6+8
11
+ -----END PGP SIGNATURE-----
vendor_prefix/paragonie/random_compat/lib/byte_safe_strings.php ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL;
4
+
5
+ /**
6
+ * Random_* Compatibility Library
7
+ * for using the new PHP 7 random_* API in PHP 5 projects
8
+ *
9
+ * The MIT License (MIT)
10
+ *
11
+ * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ * copies of the Software, and to permit persons to whom the Software is
18
+ * furnished to do so, subject to the following conditions:
19
+ *
20
+ * The above copyright notice and this permission notice shall be included in
21
+ * all copies or substantial portions of the Software.
22
+ *
23
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
+ * SOFTWARE.
30
+ */
31
+ if (!\is_callable('RandomCompat_strlen')) {
32
+ if (\defined('MB_OVERLOAD_STRING') && (int) \ini_get('mbstring.func_overload') & \MB_OVERLOAD_STRING) {
33
+ /**
34
+ * strlen() implementation that isn't brittle to mbstring.func_overload
35
+ *
36
+ * This version uses mb_strlen() in '8bit' mode to treat strings as raw
37
+ * binary rather than UTF-8, ISO-8859-1, etc
38
+ *
39
+ * @param string $binary_string
40
+ *
41
+ * @throws TypeError
42
+ *
43
+ * @return int
44
+ */
45
+ function RandomCompat_strlen($binary_string)
46
+ {
47
+ if (!\is_string($binary_string)) {
48
+ throw new \TypeError('RandomCompat_strlen() expects a string');
49
+ }
50
+ return (int) \mb_strlen($binary_string, '8bit');
51
+ }
52
+ } else {
53
+ /**
54
+ * strlen() implementation that isn't brittle to mbstring.func_overload
55
+ *
56
+ * This version just used the default strlen()
57
+ *
58
+ * @param string $binary_string
59
+ *
60
+ * @throws TypeError
61
+ *
62
+ * @return int
63
+ */
64
+ function RandomCompat_strlen($binary_string)
65
+ {
66
+ if (!\is_string($binary_string)) {
67
+ throw new \TypeError('RandomCompat_strlen() expects a string');
68
+ }
69
+ return (int) \strlen($binary_string);
70
+ }
71
+ }
72
+ }
73
+ if (!\is_callable('RandomCompat_substr')) {
74
+ if (\defined('MB_OVERLOAD_STRING') && (int) \ini_get('mbstring.func_overload') & \MB_OVERLOAD_STRING) {
75
+ /**
76
+ * substr() implementation that isn't brittle to mbstring.func_overload
77
+ *
78
+ * This version uses mb_substr() in '8bit' mode to treat strings as raw
79
+ * binary rather than UTF-8, ISO-8859-1, etc
80
+ *
81
+ * @param string $binary_string
82
+ * @param int $start
83
+ * @param int|null $length (optional)
84
+ *
85
+ * @throws TypeError
86
+ *
87
+ * @return string
88
+ */
89
+ function RandomCompat_substr($binary_string, $start, $length = null)
90
+ {
91
+ if (!\is_string($binary_string)) {
92
+ throw new \TypeError('RandomCompat_substr(): First argument should be a string');
93
+ }
94
+ if (!\is_int($start)) {
95
+ throw new \TypeError('RandomCompat_substr(): Second argument should be an integer');
96
+ }
97
+ if ($length === null) {
98
+ /**
99
+ * mb_substr($str, 0, NULL, '8bit') returns an empty string on
100
+ * PHP 5.3, so we have to find the length ourselves.
101
+ */
102
+ /** @var int $length */
103
+ $length = \PYS_PRO_GLOBAL\RandomCompat_strlen($binary_string) - $start;
104
+ } elseif (!\is_int($length)) {
105
+ throw new \TypeError('RandomCompat_substr(): Third argument should be an integer, or omitted');
106
+ }
107
+ // Consistency with PHP's behavior
108
+ if ($start === \PYS_PRO_GLOBAL\RandomCompat_strlen($binary_string) && $length === 0) {
109
+ return '';
110
+ }
111
+ if ($start > \PYS_PRO_GLOBAL\RandomCompat_strlen($binary_string)) {
112
+ return '';
113
+ }
114
+ return (string) \mb_substr((string) $binary_string, (int) $start, (int) $length, '8bit');
115
+ }
116
+ } else {
117
+ /**
118
+ * substr() implementation that isn't brittle to mbstring.func_overload
119
+ *
120
+ * This version just uses the default substr()
121
+ *
122
+ * @param string $binary_string
123
+ * @param int $start
124
+ * @param int|null $length (optional)
125
+ *
126
+ * @throws TypeError
127
+ *
128
+ * @return string
129
+ */
130
+ function RandomCompat_substr($binary_string, $start, $length = null)
131
+ {
132
+ if (!\is_string($binary_string)) {
133
+ throw new \TypeError('RandomCompat_substr(): First argument should be a string');
134
+ }
135
+ if (!\is_int($start)) {
136
+ throw new \TypeError('RandomCompat_substr(): Second argument should be an integer');
137
+ }
138
+ if ($length !== null) {
139
+ if (!\is_int($length)) {
140
+ throw new \TypeError('RandomCompat_substr(): Third argument should be an integer, or omitted');
141
+ }
142
+ return (string) \substr((string) $binary_string, (int) $start, (int) $length);
143
+ }
144
+ return (string) \substr((string) $binary_string, (int) $start);
145
+ }
146
+ }
147
+ }
vendor_prefix/paragonie/random_compat/lib/cast_to_int.php ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL;
4
+
5
+ /**
6
+ * Random_* Compatibility Library
7
+ * for using the new PHP 7 random_* API in PHP 5 projects
8
+ *
9
+ * The MIT License (MIT)
10
+ *
11
+ * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ * copies of the Software, and to permit persons to whom the Software is
18
+ * furnished to do so, subject to the following conditions:
19
+ *
20
+ * The above copyright notice and this permission notice shall be included in
21
+ * all copies or substantial portions of the Software.
22
+ *
23
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
+ * SOFTWARE.
30
+ */
31
+ if (!\is_callable('RandomCompat_intval')) {
32
+ /**
33
+ * Cast to an integer if we can, safely.
34
+ *
35
+ * If you pass it a float in the range (~PHP_INT_MAX, PHP_INT_MAX)
36
+ * (non-inclusive), it will sanely cast it to an int. If you it's equal to
37
+ * ~PHP_INT_MAX or PHP_INT_MAX, we let it fail as not an integer. Floats
38
+ * lose precision, so the <= and => operators might accidentally let a float
39
+ * through.
40
+ *
41
+ * @param int|float $number The number we want to convert to an int
42
+ * @param bool $fail_open Set to true to not throw an exception
43
+ *
44
+ * @return float|int
45
+ * @psalm-suppress InvalidReturnType
46
+ *
47
+ * @throws TypeError
48
+ */
49
+ function RandomCompat_intval($number, $fail_open = \false)
50
+ {
51
+ if (\is_int($number) || \is_float($number)) {
52
+ $number += 0;
53
+ } elseif (\is_numeric($number)) {
54
+ /** @psalm-suppress InvalidOperand */
55
+ $number += 0;
56
+ }
57
+ /** @var int|float $number */
58
+ if (\is_float($number) && $number > ~\PHP_INT_MAX && $number < \PHP_INT_MAX) {
59
+ $number = (int) $number;
60
+ }
61
+ if (\is_int($number)) {
62
+ return (int) $number;
63
+ } elseif (!$fail_open) {
64
+ throw new \TypeError('Expected an integer.');
65
+ }
66
+ return $number;
67
+ }
68
+ }
vendor_prefix/paragonie/random_compat/lib/error_polyfill.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL;
4
+
5
+ /**
6
+ * Random_* Compatibility Library
7
+ * for using the new PHP 7 random_* API in PHP 5 projects
8
+ *
9
+ * The MIT License (MIT)
10
+ *
11
+ * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ * copies of the Software, and to permit persons to whom the Software is
18
+ * furnished to do so, subject to the following conditions:
19
+ *
20
+ * The above copyright notice and this permission notice shall be included in
21
+ * all copies or substantial portions of the Software.
22
+ *
23
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
+ * SOFTWARE.
30
+ */
31
+ if (!\class_exists('Error', \false)) {
32
+ // We can't really avoid making this extend Exception in PHP 5.
33
+ class Error extends \Exception
34
+ {
35
+ }
36
+ }
37
+ if (!\class_exists('TypeError', \false)) {
38
+ if (\is_subclass_of('Error', 'Exception')) {
39
+ class TypeError extends \Error
40
+ {
41
+ }
42
+ } else {
43
+ class TypeError extends \Exception
44
+ {
45
+ }
46
+ }
47
+ }
vendor_prefix/paragonie/random_compat/lib/random.php ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL;
4
+
5
+ /**
6
+ * Random_* Compatibility Library
7
+ * for using the new PHP 7 random_* API in PHP 5 projects
8
+ *
9
+ * @version 2.0.17
10
+ * @released 2018-07-04
11
+ *
12
+ * The MIT License (MIT)
13
+ *
14
+ * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
15
+ *
16
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
17
+ * of this software and associated documentation files (the "Software"), to deal
18
+ * in the Software without restriction, including without limitation the rights
19
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
20
+ * copies of the Software, and to permit persons to whom the Software is
21
+ * furnished to do so, subject to the following conditions:
22
+ *
23
+ * The above copyright notice and this permission notice shall be included in
24
+ * all copies or substantial portions of the Software.
25
+ *
26
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
27
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
28
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
29
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
30
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
31
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
32
+ * SOFTWARE.
33
+ */
34
+ if (!\defined('PHP_VERSION_ID')) {
35
+ // This constant was introduced in PHP 5.2.7
36
+ $RandomCompatversion = \array_map('intval', \explode('.', \PHP_VERSION));
37
+ \define('PHP_VERSION_ID', $RandomCompatversion[0] * 10000 + $RandomCompatversion[1] * 100 + $RandomCompatversion[2]);
38
+ $RandomCompatversion = null;
39
+ }
40
+ /**
41
+ * PHP 7.0.0 and newer have these functions natively.
42
+ */
43
+ if (\PHP_VERSION_ID >= 70000) {
44
+ return;
45
+ }
46
+ if (!\defined('RANDOM_COMPAT_READ_BUFFER')) {
47
+ \define('RANDOM_COMPAT_READ_BUFFER', 8);
48
+ }
49
+ $RandomCompatDIR = \dirname(__FILE__);
50
+ require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'byte_safe_strings.php';
51
+ require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'cast_to_int.php';
52
+ require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'error_polyfill.php';
53
+ if (!\is_callable('random_bytes')) {
54
+ /**
55
+ * PHP 5.2.0 - 5.6.x way to implement random_bytes()
56
+ *
57
+ * We use conditional statements here to define the function in accordance
58
+ * to the operating environment. It's a micro-optimization.
59
+ *
60
+ * In order of preference:
61
+ * 1. Use libsodium if available.
62
+ * 2. fread() /dev/urandom if available (never on Windows)
63
+ * 3. mcrypt_create_iv($bytes, MCRYPT_DEV_URANDOM)
64
+ * 4. COM('CAPICOM.Utilities.1')->GetRandom()
65
+ *
66
+ * See RATIONALE.md for our reasoning behind this particular order
67
+ */
68
+ if (\extension_loaded('libsodium')) {
69
+ // See random_bytes_libsodium.php
70
+ if (\PHP_VERSION_ID >= 50300 && \is_callable('PYS_PRO_GLOBAL\\Sodium\\randombytes_buf')) {
71
+ require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'random_bytes_libsodium.php';
72
+ } elseif (\method_exists('Sodium', 'randombytes_buf')) {
73
+ require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'random_bytes_libsodium_legacy.php';
74
+ }
75
+ }
76
+ /**
77
+ * Reading directly from /dev/urandom:
78
+ */
79
+ if (\DIRECTORY_SEPARATOR === '/') {
80
+ // DIRECTORY_SEPARATOR === '/' on Unix-like OSes -- this is a fast
81
+ // way to exclude Windows.
82
+ $RandomCompatUrandom = \true;
83
+ $RandomCompat_basedir = \ini_get('open_basedir');
84
+ if (!empty($RandomCompat_basedir)) {
85
+ $RandomCompat_open_basedir = \explode(\PATH_SEPARATOR, \strtolower($RandomCompat_basedir));
86
+ $RandomCompatUrandom = array() !== \array_intersect(array('/dev', '/dev/', '/dev/urandom'), $RandomCompat_open_basedir);
87
+ $RandomCompat_open_basedir = null;
88
+ }
89
+ if (!\is_callable('random_bytes') && $RandomCompatUrandom && @\is_readable('/dev/urandom')) {
90
+ // Error suppression on is_readable() in case of an open_basedir
91
+ // or safe_mode failure. All we care about is whether or not we
92
+ // can read it at this point. If the PHP environment is going to
93
+ // panic over trying to see if the file can be read in the first
94
+ // place, that is not helpful to us here.
95
+ // See random_bytes_dev_urandom.php
96
+ require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'random_bytes_dev_urandom.php';
97
+ }
98
+ // Unset variables after use
99
+ $RandomCompat_basedir = null;
100
+ } else {
101
+ $RandomCompatUrandom = \false;
102
+ }
103
+ /**
104
+ * mcrypt_create_iv()
105
+ *
106
+ * We only want to use mcypt_create_iv() if:
107
+ *
108
+ * - random_bytes() hasn't already been defined
109
+ * - the mcrypt extensions is loaded
110
+ * - One of these two conditions is true:
111
+ * - We're on Windows (DIRECTORY_SEPARATOR !== '/')
112
+ * - We're not on Windows and /dev/urandom is readabale
113
+ * (i.e. we're not in a chroot jail)
114
+ * - Special case:
115
+ * - If we're not on Windows, but the PHP version is between
116
+ * 5.6.10 and 5.6.12, we don't want to use mcrypt. It will
117
+ * hang indefinitely. This is bad.
118
+ * - If we're on Windows, we want to use PHP >= 5.3.7 or else
119
+ * we get insufficient entropy errors.
120
+ */
121
+ if (!\is_callable('random_bytes') && (\DIRECTORY_SEPARATOR === '/' || \PHP_VERSION_ID >= 50307) && (\DIRECTORY_SEPARATOR !== '/' || (\PHP_VERSION_ID <= 50609 || \PHP_VERSION_ID >= 50613)) && \extension_loaded('mcrypt')) {
122
+ // See random_bytes_mcrypt.php
123
+ require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'random_bytes_mcrypt.php';
124
+ }
125
+ $RandomCompatUrandom = null;
126
+ /**
127
+ * This is a Windows-specific fallback, for when the mcrypt extension
128
+ * isn't loaded.
129
+ */
130
+ if (!\is_callable('random_bytes') && \extension_loaded('com_dotnet') && \class_exists('COM')) {
131
+ $RandomCompat_disabled_classes = \preg_split('#\\s*,\\s*#', \strtolower(\ini_get('disable_classes')));
132
+ if (!\in_array('com', $RandomCompat_disabled_classes)) {
133
+ try {
134
+ $RandomCompatCOMtest = new \COM('CAPICOM.Utilities.1');
135
+ if (\method_exists($RandomCompatCOMtest, 'GetRandom')) {
136
+ // See random_bytes_com_dotnet.php
137
+ require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'random_bytes_com_dotnet.php';
138
+ }
139
+ } catch (\com_exception $e) {
140
+ // Don't try to use it.
141
+ }
142
+ }
143
+ $RandomCompat_disabled_classes = null;
144
+ $RandomCompatCOMtest = null;
145
+ }
146
+ /**
147
+ * throw new Exception
148
+ */
149
+ if (!\is_callable('random_bytes')) {
150
+ /**
151
+ * We don't have any more options, so let's throw an exception right now
152
+ * and hope the developer won't let it fail silently.
153
+ *
154
+ * @param mixed $length
155
+ * @psalm-suppress InvalidReturnType
156
+ * @throws Exception
157
+ * @return string
158
+ */
159
+ function random_bytes($length)
160
+ {
161
+ unset($length);
162
+ // Suppress "variable not used" warnings.
163
+ throw new \Exception('There is no suitable CSPRNG installed on your system');
164
+ return '';
165
+ }
166
+ }
167
+ }
168
+ if (!\is_callable('random_int')) {
169
+ require_once $RandomCompatDIR . \DIRECTORY_SEPARATOR . 'random_int.php';
170
+ }
171
+ $RandomCompatDIR = null;
vendor_prefix/paragonie/random_compat/lib/random_bytes_com_dotnet.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL;
4
+
5
+ /**
6
+ * Random_* Compatibility Library
7
+ * for using the new PHP 7 random_* API in PHP 5 projects
8
+ *
9
+ * The MIT License (MIT)
10
+ *
11
+ * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ * copies of the Software, and to permit persons to whom the Software is
18
+ * furnished to do so, subject to the following conditions:
19
+ *
20
+ * The above copyright notice and this permission notice shall be included in
21
+ * all copies or substantial portions of the Software.
22
+ *
23
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
+ * SOFTWARE.
30
+ */
31
+ if (!\is_callable('random_bytes')) {
32
+ /**
33
+ * Windows with PHP < 5.3.0 will not have the function
34
+ * openssl_random_pseudo_bytes() available, so let's use
35
+ * CAPICOM to work around this deficiency.
36
+ *
37
+ * @param int $bytes
38
+ *
39
+ * @throws Exception
40
+ *
41
+ * @return string
42
+ */
43
+ function random_bytes($bytes)
44
+ {
45
+ try {
46
+ /** @var int $bytes */
47
+ $bytes = \PYS_PRO_GLOBAL\RandomCompat_intval($bytes);
48
+ } catch (\TypeError $ex) {
49
+ throw new \TypeError('random_bytes(): $bytes must be an integer');
50
+ }
51
+ if ($bytes < 1) {
52
+ throw new \Error('Length must be greater than 0');
53
+ }
54
+ /** @var string $buf */
55
+ $buf = '';
56
+ if (!\class_exists('COM')) {
57
+ throw new \Error('COM does not exist');
58
+ }
59
+ /** @var COM $util */
60
+ $util = new \COM('CAPICOM.Utilities.1');
61
+ $execCount = 0;
62
+ /**
63
+ * Let's not let it loop forever. If we run N times and fail to
64
+ * get N bytes of random data, then CAPICOM has failed us.
65
+ */
66
+ do {
67
+ $buf .= \base64_decode((string) $util->GetRandom($bytes, 0));
68
+ if (\PYS_PRO_GLOBAL\RandomCompat_strlen($buf) >= $bytes) {
69
+ /**
70
+ * Return our random entropy buffer here:
71
+ */
72
+ return (string) \PYS_PRO_GLOBAL\RandomCompat_substr($buf, 0, $bytes);
73
+ }
74
+ ++$execCount;
75
+ } while ($execCount < $bytes);
76
+ /**
77
+ * If we reach here, PHP has failed us.
78
+ */
79
+ throw new \Exception('Could not gather sufficient random data');
80
+ }
81
+ }
vendor_prefix/paragonie/random_compat/lib/random_bytes_dev_urandom.php ADDED
@@ -0,0 +1,173 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL;
4
+
5
+ /**
6
+ * Random_* Compatibility Library
7
+ * for using the new PHP 7 random_* API in PHP 5 projects
8
+ *
9
+ * The MIT License (MIT)
10
+ *
11
+ * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ * copies of the Software, and to permit persons to whom the Software is
18
+ * furnished to do so, subject to the following conditions:
19
+ *
20
+ * The above copyright notice and this permission notice shall be included in
21
+ * all copies or substantial portions of the Software.
22
+ *
23
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
+ * SOFTWARE.
30
+ */
31
+ if (!\defined('RANDOM_COMPAT_READ_BUFFER')) {
32
+ \define('RANDOM_COMPAT_READ_BUFFER', 8);
33
+ }
34
+ if (!\is_callable('random_bytes')) {
35
+ /**
36
+ * Unless open_basedir is enabled, use /dev/urandom for
37
+ * random numbers in accordance with best practices
38
+ *
39
+ * Why we use /dev/urandom and not /dev/random
40
+ * @ref https://www.2uo.de/myths-about-urandom
41
+ * @ref http://sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers
42
+ *
43
+ * @param int $bytes
44
+ *
45
+ * @throws Exception
46
+ *
47
+ * @return string
48
+ */
49
+ function random_bytes($bytes)
50
+ {
51
+ /** @var resource $fp */
52
+ static $fp = null;
53
+ /**
54
+ * This block should only be run once
55
+ */
56
+ if (empty($fp)) {
57
+ /**
58
+ * We don't want to ever read C:\dev\random, only /dev/urandom on
59
+ * Unix-like operating systems. While we guard against this
60
+ * condition in random.php, it doesn't hurt to be defensive in depth
61
+ * here.
62
+ *
63
+ * To that end, we only try to open /dev/urandom if we're on a Unix-
64
+ * like operating system (which means the directory separator is set
65
+ * to "/" not "\".
66
+ */
67
+ if (\DIRECTORY_SEPARATOR === '/') {
68
+ if (!\is_readable('/dev/urandom')) {
69
+ throw new \Exception('Environment misconfiguration: ' . '/dev/urandom cannot be read.');
70
+ }
71
+ /**
72
+ * We use /dev/urandom if it is a char device.
73
+ * We never fall back to /dev/random
74
+ */
75
+ /** @var resource|bool $fp */
76
+ $fp = \fopen('/dev/urandom', 'rb');
77
+ if (\is_resource($fp)) {
78
+ /** @var array<string, int> $st */
79
+ $st = \fstat($fp);
80
+ if (($st['mode'] & 0170000) !== 020000) {
81
+ \fclose($fp);
82
+ $fp = \false;
83
+ }
84
+ }
85
+ }
86
+ if (\is_resource($fp)) {
87
+ /**
88
+ * stream_set_read_buffer() does not exist in HHVM
89
+ *
90
+ * If we don't set the stream's read buffer to 0, PHP will
91
+ * internally buffer 8192 bytes, which can waste entropy
92
+ *
93
+ * stream_set_read_buffer returns 0 on success
94
+ */
95
+ if (\is_callable('stream_set_read_buffer')) {
96
+ \stream_set_read_buffer($fp, \RANDOM_COMPAT_READ_BUFFER);
97
+ }
98
+ if (\is_callable('stream_set_chunk_size')) {
99
+ \stream_set_chunk_size($fp, \RANDOM_COMPAT_READ_BUFFER);
100
+ }
101
+ }
102
+ }
103
+ try {
104
+ /** @var int $bytes */
105
+ $bytes = \PYS_PRO_GLOBAL\RandomCompat_intval($bytes);
106
+ } catch (\TypeError $ex) {
107
+ throw new \TypeError('random_bytes(): $bytes must be an integer');
108
+ }
109
+ if ($bytes < 1) {
110
+ throw new \Error('Length must be greater than 0');
111
+ }
112
+ /**
113
+ * This if() block only runs if we managed to open a file handle
114
+ *
115
+ * It does not belong in an else {} block, because the above
116
+ * if (empty($fp)) line is logic that should only be run once per
117
+ * page load.
118
+ */
119
+ if (\is_resource($fp)) {
120
+ /**
121
+ * @var int
122
+ */
123
+ $remaining = $bytes;
124
+ /**
125
+ * @var string|bool
126
+ */
127
+ $buf = '';
128
+ /**
129
+ * We use fread() in a loop to protect against partial reads
130
+ */
131
+ do {
132
+ /**
133
+ * @var string|bool
134
+ */
135
+ $read = \fread($fp, $remaining);
136
+ if (!\is_string($read)) {
137
+ /**
138
+ * We cannot safely read from the file. Exit the
139
+ * do-while loop and trigger the exception condition
140
+ *
141
+ * @var string|bool
142
+ */
143
+ $buf = \false;
144
+ break;
145
+ }
146
+ /**
147
+ * Decrease the number of bytes returned from remaining
148
+ */
149
+ $remaining -= \PYS_PRO_GLOBAL\RandomCompat_strlen($read);
150
+ /**
151
+ * @var string $buf
152
+ */
153
+ $buf .= $read;
154
+ } while ($remaining > 0);
155
+ /**
156
+ * Is our result valid?
157
+ * @var string|bool $buf
158
+ */
159
+ if (\is_string($buf)) {
160
+ if (\PYS_PRO_GLOBAL\RandomCompat_strlen($buf) === $bytes) {
161
+ /**
162
+ * Return our random entropy buffer here:
163
+ */
164
+ return $buf;
165
+ }
166
+ }
167
+ }
168
+ /**
169
+ * If we reach here, PHP has failed us.
170
+ */
171
+ throw new \Exception('Error reading from source device');
172
+ }
173
+ }
vendor_prefix/paragonie/random_compat/lib/random_bytes_libsodium.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL;
4
+
5
+ /**
6
+ * Random_* Compatibility Library
7
+ * for using the new PHP 7 random_* API in PHP 5 projects
8
+ *
9
+ * The MIT License (MIT)
10
+ *
11
+ * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ * copies of the Software, and to permit persons to whom the Software is
18
+ * furnished to do so, subject to the following conditions:
19
+ *
20
+ * The above copyright notice and this permission notice shall be included in
21
+ * all copies or substantial portions of the Software.
22
+ *
23
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
+ * SOFTWARE.
30
+ */
31
+ if (!\is_callable('random_bytes')) {
32
+ /**
33
+ * If the libsodium PHP extension is loaded, we'll use it above any other
34
+ * solution.
35
+ *
36
+ * libsodium-php project:
37
+ * @ref https://github.com/jedisct1/libsodium-php
38
+ *
39
+ * @param int $bytes
40
+ *
41
+ * @throws Exception
42
+ *
43
+ * @return string
44
+ */
45
+ function random_bytes($bytes)
46
+ {
47
+ try {
48
+ /** @var int $bytes */
49
+ $bytes = \PYS_PRO_GLOBAL\RandomCompat_intval($bytes);
50
+ } catch (\TypeError $ex) {
51
+ throw new \TypeError('random_bytes(): $bytes must be an integer');
52
+ }
53
+ if ($bytes < 1) {
54
+ throw new \Error('Length must be greater than 0');
55
+ }
56
+ /**
57
+ * \Sodium\randombytes_buf() doesn't allow more than 2147483647 bytes to be
58
+ * generated in one invocation.
59
+ */
60
+ /** @var string|bool $buf */
61
+ if ($bytes > 2147483647) {
62
+ $buf = '';
63
+ for ($i = 0; $i < $bytes; $i += 1073741824) {
64
+ $n = $bytes - $i > 1073741824 ? 1073741824 : $bytes - $i;
65
+ $buf .= \PYS_PRO_GLOBAL\Sodium\randombytes_buf($n);
66
+ }
67
+ } else {
68
+ /** @var string|bool $buf */
69
+ $buf = \PYS_PRO_GLOBAL\Sodium\randombytes_buf($bytes);
70
+ }
71
+ if (\is_string($buf)) {
72
+ if (\PYS_PRO_GLOBAL\RandomCompat_strlen($buf) === $bytes) {
73
+ return $buf;
74
+ }
75
+ }
76
+ /**
77
+ * If we reach here, PHP has failed us.
78
+ */
79
+ throw new \Exception('Could not gather sufficient random data');
80
+ }
81
+ }
vendor_prefix/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL;
4
+
5
+ /**
6
+ * Random_* Compatibility Library
7
+ * for using the new PHP 7 random_* API in PHP 5 projects
8
+ *
9
+ * The MIT License (MIT)
10
+ *
11
+ * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ * copies of the Software, and to permit persons to whom the Software is
18
+ * furnished to do so, subject to the following conditions:
19
+ *
20
+ * The above copyright notice and this permission notice shall be included in
21
+ * all copies or substantial portions of the Software.
22
+ *
23
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
+ * SOFTWARE.
30
+ */
31
+ if (!\is_callable('random_bytes')) {
32
+ /**
33
+ * If the libsodium PHP extension is loaded, we'll use it above any other
34
+ * solution.
35
+ *
36
+ * libsodium-php project:
37
+ * @ref https://github.com/jedisct1/libsodium-php
38
+ *
39
+ * @param int $bytes
40
+ *
41
+ * @throws Exception
42
+ *
43
+ * @return string
44
+ */
45
+ function random_bytes($bytes)
46
+ {
47
+ try {
48
+ /** @var int $bytes */
49
+ $bytes = \PYS_PRO_GLOBAL\RandomCompat_intval($bytes);
50
+ } catch (\TypeError $ex) {
51
+ throw new \TypeError('random_bytes(): $bytes must be an integer');
52
+ }
53
+ if ($bytes < 1) {
54
+ throw new \Error('Length must be greater than 0');
55
+ }
56
+ /**
57
+ * @var string
58
+ */
59
+ $buf = '';
60
+ /**
61
+ * \Sodium\randombytes_buf() doesn't allow more than 2147483647 bytes to be
62
+ * generated in one invocation.
63
+ */
64
+ if ($bytes > 2147483647) {
65
+ for ($i = 0; $i < $bytes; $i += 1073741824) {
66
+ $n = $bytes - $i > 1073741824 ? 1073741824 : $bytes - $i;
67
+ $buf .= \PYS_PRO_GLOBAL\Sodium::randombytes_buf((int) $n);
68
+ }
69
+ } else {
70
+ $buf .= \PYS_PRO_GLOBAL\Sodium::randombytes_buf((int) $bytes);
71
+ }
72
+ if (\is_string($buf)) {
73
+ if (\PYS_PRO_GLOBAL\RandomCompat_strlen($buf) === $bytes) {
74
+ return $buf;
75
+ }
76
+ }
77
+ /**
78
+ * If we reach here, PHP has failed us.
79
+ */
80
+ throw new \Exception('Could not gather sufficient random data');
81
+ }
82
+ }
vendor_prefix/paragonie/random_compat/lib/random_bytes_mcrypt.php ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL;
4
+
5
+ /**
6
+ * Random_* Compatibility Library
7
+ * for using the new PHP 7 random_* API in PHP 5 projects
8
+ *
9
+ * The MIT License (MIT)
10
+ *
11
+ * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ * copies of the Software, and to permit persons to whom the Software is
18
+ * furnished to do so, subject to the following conditions:
19
+ *
20
+ * The above copyright notice and this permission notice shall be included in
21
+ * all copies or substantial portions of the Software.
22
+ *
23
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
+ * SOFTWARE.
30
+ */
31
+ if (!\is_callable('random_bytes')) {
32
+ /**
33
+ * Powered by ext/mcrypt (and thankfully NOT libmcrypt)
34
+ *
35
+ * @ref https://bugs.php.net/bug.php?id=55169
36
+ * @ref https://github.com/php/php-src/blob/c568ffe5171d942161fc8dda066bce844bdef676/ext/mcrypt/mcrypt.c#L1321-L1386
37
+ *
38
+ * @param int $bytes
39
+ *
40
+ * @throws Exception
41
+ *
42
+ * @return string
43
+ */
44
+ function random_bytes($bytes)
45
+ {
46
+ try {
47
+ /** @var int $bytes */
48
+ $bytes = \PYS_PRO_GLOBAL\RandomCompat_intval($bytes);
49
+ } catch (\TypeError $ex) {
50
+ throw new \TypeError('random_bytes(): $bytes must be an integer');
51
+ }
52
+ if ($bytes < 1) {
53
+ throw new \Error('Length must be greater than 0');
54
+ }
55
+ /** @var string|bool $buf */
56
+ $buf = @\mcrypt_create_iv((int) $bytes, (int) \MCRYPT_DEV_URANDOM);
57
+ if (\is_string($buf) && \PYS_PRO_GLOBAL\RandomCompat_strlen($buf) === $bytes) {
58
+ /**
59
+ * Return our random entropy buffer here:
60
+ */
61
+ return $buf;
62
+ }
63
+ /**
64
+ * If we reach here, PHP has failed us.
65
+ */
66
+ throw new \Exception('Could not gather sufficient random data');
67
+ }
68
+ }
vendor_prefix/paragonie/random_compat/lib/random_int.php ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL;
4
+
5
+ if (!\is_callable('random_int')) {
6
+ /**
7
+ * Random_* Compatibility Library
8
+ * for using the new PHP 7 random_* API in PHP 5 projects
9
+ *
10
+ * The MIT License (MIT)
11
+ *
12
+ * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises
13
+ *
14
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
15
+ * of this software and associated documentation files (the "Software"), to deal
16
+ * in the Software without restriction, including without limitation the rights
17
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
18
+ * copies of the Software, and to permit persons to whom the Software is
19
+ * furnished to do so, subject to the following conditions:
20
+ *
21
+ * The above copyright notice and this permission notice shall be included in
22
+ * all copies or substantial portions of the Software.
23
+ *
24
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
29
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30
+ * SOFTWARE.
31
+ */
32
+ /**
33
+ * Fetch a random integer between $min and $max inclusive
34
+ *
35
+ * @param int $min
36
+ * @param int $max
37
+ *
38
+ * @throws Exception
39
+ *
40
+ * @return int
41
+ */
42
+ function random_int($min, $max)
43
+ {
44
+ /**
45
+ * Type and input logic checks
46
+ *
47
+ * If you pass it a float in the range (~PHP_INT_MAX, PHP_INT_MAX)
48
+ * (non-inclusive), it will sanely cast it to an int. If you it's equal to
49
+ * ~PHP_INT_MAX or PHP_INT_MAX, we let it fail as not an integer. Floats
50
+ * lose precision, so the <= and => operators might accidentally let a float
51
+ * through.
52
+ */
53
+ try {
54
+ /** @var int $min */
55
+ $min = \PYS_PRO_GLOBAL\RandomCompat_intval($min);
56
+ } catch (\TypeError $ex) {
57
+ throw new \TypeError('random_int(): $min must be an integer');
58
+ }
59
+ try {
60
+ /** @var int $max */
61
+ $max = \PYS_PRO_GLOBAL\RandomCompat_intval($max);
62
+ } catch (\TypeError $ex) {
63
+ throw new \TypeError('random_int(): $max must be an integer');
64
+ }
65
+ /**
66
+ * Now that we've verified our weak typing system has given us an integer,
67
+ * let's validate the logic then we can move forward with generating random
68
+ * integers along a given range.
69
+ */
70
+ if ($min > $max) {
71
+ throw new \Error('Minimum value must be less than or equal to the maximum value');
72
+ }
73
+ if ($max === $min) {
74
+ return (int) $min;
75
+ }
76
+ /**
77
+ * Initialize variables to 0
78
+ *
79
+ * We want to store:
80
+ * $bytes => the number of random bytes we need
81
+ * $mask => an integer bitmask (for use with the &) operator
82
+ * so we can minimize the number of discards
83
+ */
84
+ $attempts = $bits = $bytes = $mask = $valueShift = 0;
85
+ /** @var int $attempts */
86
+ /** @var int $bits */
87
+ /** @var int $bytes */
88
+ /** @var int $mask */
89
+ /** @var int $valueShift */
90
+ /**
91
+ * At this point, $range is a positive number greater than 0. It might
92
+ * overflow, however, if $max - $min > PHP_INT_MAX. PHP will cast it to
93
+ * a float and we will lose some precision.
94
+ *
95
+ * @var int|float $range
96
+ */
97
+ $range = $max - $min;
98
+ /**
99
+ * Test for integer overflow:
100
+ */
101
+ if (!\is_int($range)) {
102
+ /**
103
+ * Still safely calculate wider ranges.
104
+ * Provided by @CodesInChaos, @oittaa
105
+ *
106
+ * @ref https://gist.github.com/CodesInChaos/03f9ea0b58e8b2b8d435
107
+ *
108
+ * We use ~0 as a mask in this case because it generates all 1s
109
+ *
110
+ * @ref https://eval.in/400356 (32-bit)
111
+ * @ref http://3v4l.org/XX9r5 (64-bit)
112
+ */
113
+ $bytes = \PHP_INT_SIZE;
114
+ /** @var int $mask */
115
+ $mask = ~0;
116
+ } else {
117
+ /**
118
+ * $bits is effectively ceil(log($range, 2)) without dealing with
119
+ * type juggling
120
+ */
121
+ while ($range > 0) {
122
+ if ($bits % 8 === 0) {
123
+ ++$bytes;
124
+ }
125
+ ++$bits;
126
+ $range >>= 1;
127
+ /** @var int $mask */
128
+ $mask = $mask << 1 | 1;
129
+ }
130
+ $valueShift = $min;
131
+ }
132
+ /** @var int $val */
133
+ $val = 0;
134
+ /**
135
+ * Now that we have our parameters set up, let's begin generating
136
+ * random integers until one falls between $min and $max
137
+ */
138
+ /** @psalm-suppress RedundantCondition */
139
+ do {
140
+ /**
141
+ * The rejection probability is at most 0.5, so this corresponds
142
+ * to a failure probability of 2^-128 for a working RNG
143
+ */
144
+ if ($attempts > 128) {
145
+ throw new \Exception('random_int: RNG is broken - too many rejections');
146
+ }
147
+ /**
148
+ * Let's grab the necessary number of random bytes
149
+ */
150
+ $randomByteString = \random_bytes($bytes);
151
+ /**
152
+ * Let's turn $randomByteString into an integer
153
+ *
154
+ * This uses bitwise operators (<< and |) to build an integer
155
+ * out of the values extracted from ord()
156
+ *
157
+ * Example: [9F] | [6D] | [32] | [0C] =>
158
+ * 159 + 27904 + 3276800 + 201326592 =>
159
+ * 204631455
160
+ */
161
+ $val &= 0;
162
+ for ($i = 0; $i < $bytes; ++$i) {
163
+ $val |= \ord($randomByteString[$i]) << $i * 8;
164
+ }
165
+ /** @var int $val */
166
+ /**
167
+ * Apply mask
168
+ */
169
+ $val &= $mask;
170
+ $val += $valueShift;
171
+ ++$attempts;
172
+ /**
173
+ * If $val overflows to a floating point number,
174
+ * ... or is larger than $max,
175
+ * ... or smaller than $min,
176
+ * then try again.
177
+ */
178
+ } while (!\is_int($val) || $val > $max || $val < $min);
179
+ return (int) $val;
180
+ }
181
+ }
vendor_prefix/paragonie/random_compat/phpunit-autoload.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL;
4
+
5
+ require_once __DIR__ . '/psalm-autoload.php';
6
+ /**
7
+ * This is necessary for PHPUnit on PHP >= 5.3
8
+ *
9
+ * Class PHPUnit_Framework_TestCase
10
+ */
11
+ if (\PHP_VERSION_ID >= 50300) {
12
+ if (!\class_exists('PYS_PRO_GLOBAL\\PHPUnit_Framework_TestCase')) {
13
+ require_once __DIR__ . '/other/phpunit-shim.php';
14
+ }
15
+ }
vendor_prefix/psr/http-client/src/ClientExceptionInterface.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL\Psr\Http\Client;
4
-
5
- /**
6
- * Every HTTP client related exception MUST implement this interface.
7
- */
8
- interface ClientExceptionInterface extends \Throwable
9
- {
10
- }
 
 
 
 
 
 
 
 
 
 
vendor_prefix/psr/http-client/src/ClientInterface.php DELETED
@@ -1,19 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL\Psr\Http\Client;
4
-
5
- use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
6
- use PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
7
- interface ClientInterface
8
- {
9
- /**
10
- * Sends a PSR-7 request and returns a PSR-7 response.
11
- *
12
- * @param RequestInterface $request
13
- *
14
- * @return ResponseInterface
15
- *
16
- * @throws \Psr\Http\Client\ClientExceptionInterface If an error happens while processing the request.
17
- */
18
- public function sendRequest(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request) : \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface;
19
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/psr/http-client/src/NetworkExceptionInterface.php DELETED
@@ -1,23 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL\Psr\Http\Client;
4
-
5
- use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
6
- /**
7
- * Thrown when the request cannot be completed because of network issues.
8
- *
9
- * There is no response object as this exception is thrown when no response has been received.
10
- *
11
- * Example: the target host name can not be resolved or the connection failed.
12
- */
13
- interface NetworkExceptionInterface extends \PYS_PRO_GLOBAL\Psr\Http\Client\ClientExceptionInterface
14
- {
15
- /**
16
- * Returns the request.
17
- *
18
- * The request object MAY be a different object from the one passed to ClientInterface::sendRequest()
19
- *
20
- * @return RequestInterface
21
- */
22
- public function getRequest() : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
23
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/psr/http-client/src/RequestExceptionInterface.php DELETED
@@ -1,23 +0,0 @@
1
- <?php
2
-
3
- namespace PYS_PRO_GLOBAL\Psr\Http\Client;
4
-
5
- use PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
6
- /**
7
- * Exception for when a request failed.
8
- *
9
- * Examples:
10
- * - Request is invalid (e.g. method is missing)
11
- * - Runtime request errors (e.g. the body stream is not seekable)
12
- */
13
- interface RequestExceptionInterface extends \PYS_PRO_GLOBAL\Psr\Http\Client\ClientExceptionInterface
14
- {
15
- /**
16
- * Returns the request.
17
- *
18
- * The request object MAY be a different object from the one passed to ClientInterface::sendRequest()
19
- *
20
- * @return RequestInterface
21
- */
22
- public function getRequest() : \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface;
23
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor_prefix/symfony/polyfill-intl-idn/Idn.php ADDED
@@ -0,0 +1,716 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of the Symfony package.
5
+ *
6
+ * (c) Fabien Potencier <fabien@symfony.com> and Trevor Rowbotham <trevor.rowbotham@pm.me>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+ namespace PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn;
12
+
13
+ use Exception;
14
+ use Normalizer;
15
+ use PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\DisallowedRanges;
16
+ use PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex;
17
+ /**
18
+ * @see https://www.unicode.org/reports/tr46/
19
+ *
20
+ * @internal
21
+ */
22
+ final class Idn
23
+ {
24
+ const ERROR_EMPTY_LABEL = 1;
25
+ const ERROR_LABEL_TOO_LONG = 2;
26
+ const ERROR_DOMAIN_NAME_TOO_LONG = 4;
27
+ const ERROR_LEADING_HYPHEN = 8;
28
+ const ERROR_TRAILING_HYPHEN = 0x10;
29
+ const ERROR_HYPHEN_3_4 = 0x20;
30
+ const ERROR_LEADING_COMBINING_MARK = 0x40;
31
+ const ERROR_DISALLOWED = 0x80;
32
+ const ERROR_PUNYCODE = 0x100;
33
+ const ERROR_LABEL_HAS_DOT = 0x200;
34
+ const ERROR_INVALID_ACE_LABEL = 0x400;
35
+ const ERROR_BIDI = 0x800;
36
+ const ERROR_CONTEXTJ = 0x1000;
37
+ const ERROR_CONTEXTO_PUNCTUATION = 0x2000;
38
+ const ERROR_CONTEXTO_DIGITS = 0x4000;
39
+ const INTL_IDNA_VARIANT_2003 = 0;
40
+ const INTL_IDNA_VARIANT_UTS46 = 1;
41
+ const IDNA_DEFAULT = 0;
42
+ const IDNA_ALLOW_UNASSIGNED = 1;
43
+ const IDNA_USE_STD3_RULES = 2;
44
+ const IDNA_CHECK_BIDI = 4;
45
+ const IDNA_CHECK_CONTEXTJ = 8;
46
+ const IDNA_NONTRANSITIONAL_TO_ASCII = 16;
47
+ const IDNA_NONTRANSITIONAL_TO_UNICODE = 32;
48
+ const MAX_DOMAIN_SIZE = 253;
49
+ const MAX_LABEL_SIZE = 63;
50
+ const BASE = 36;
51
+ const TMIN = 1;
52
+ const TMAX = 26;
53
+ const SKEW = 38;
54
+ const DAMP = 700;
55
+ const INITIAL_BIAS = 72;
56
+ const INITIAL_N = 128;
57
+ const DELIMITER = '-';
58
+ const MAX_INT = 2147483647;
59
+ /**
60
+ * Contains the numeric value of a basic code point (for use in representing integers) in the
61
+ * range 0 to BASE-1, or -1 if b is does not represent a value.
62
+ *
63
+ * @var array<int, int>
64
+ */
65
+ private static $basicToDigit = array(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
66
+ /**
67
+ * @var array<int, int>
68
+ */
69
+ private static $virama;
70
+ /**
71
+ * @var array<int, string>
72
+ */
73
+ private static $mapped;
74
+ /**
75
+ * @var array<int, bool>
76
+ */
77
+ private static $ignored;
78
+ /**
79
+ * @var array<int, string>
80
+ */
81
+ private static $deviation;
82
+ /**
83
+ * @var array<int, bool>
84
+ */
85
+ private static $disallowed;
86
+ /**
87
+ * @var array<int, string>
88
+ */
89
+ private static $disallowed_STD3_mapped;
90
+ /**
91
+ * @var array<int, bool>
92
+ */
93
+ private static $disallowed_STD3_valid;
94
+ /**
95
+ * @var bool
96
+ */
97
+ private static $mappingTableLoaded = \false;
98
+ /**
99
+ * @see https://www.unicode.org/reports/tr46/#ToASCII
100
+ *
101
+ * @param string $domainName
102
+ * @param int $options
103
+ * @param int $variant
104
+ * @param array $idna_info
105
+ *
106
+ * @return string|false
107
+ */
108
+ public static function idn_to_ascii($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = array())
109
+ {
110
+ if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) {
111
+ @\trigger_error('idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED);
112
+ }
113
+ $options = array('CheckHyphens' => \true, 'CheckBidi' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 !== ($options & self::IDNA_CHECK_BIDI), 'CheckJoiners' => self::INTL_IDNA_VARIANT_UTS46 === $variant && 0 !== ($options & self::IDNA_CHECK_CONTEXTJ), 'UseSTD3ASCIIRules' => 0 !== ($options & self::IDNA_USE_STD3_RULES), 'Transitional_Processing' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 === ($options & self::IDNA_NONTRANSITIONAL_TO_ASCII), 'VerifyDnsLength' => \true);
114
+ $info = new \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Info();
115
+ $labels = self::process((string) $domainName, $options, $info);
116
+ foreach ($labels as $i => $label) {
117
+ // Only convert labels to punycode that contain non-ASCII code points
118
+ if (1 === \preg_match('/[^\\x00-\\x7F]/', $label)) {
119
+ try {
120
+ $label = 'xn--' . self::punycodeEncode($label);
121
+ } catch (\Exception $e) {
122
+ $info->errors |= self::ERROR_PUNYCODE;
123
+ }
124
+ $labels[$i] = $label;
125
+ }
126
+ }
127
+ if ($options['VerifyDnsLength']) {
128
+ self::validateDomainAndLabelLength($labels, $info);
129
+ }
130
+ $idna_info = array('result' => \implode('.', $labels), 'isTransitionalDifferent' => $info->transitionalDifferent, 'errors' => $info->errors);
131
+ return 0 === $info->errors ? $idna_info['result'] : \false;
132
+ }
133
+ /**
134
+ * @see https://www.unicode.org/reports/tr46/#ToUnicode
135
+ *
136
+ * @param string $domainName
137
+ * @param int $options
138
+ * @param int $variant
139
+ * @param array $idna_info
140
+ *
141
+ * @return string|false
142
+ */
143
+ public static function idn_to_utf8($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = array())
144
+ {
145
+ if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) {
146
+ @\trigger_error('idn_to_utf8(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED);
147
+ }
148
+ $info = new \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Info();
149
+ $labels = self::process((string) $domainName, array('CheckHyphens' => \true, 'CheckBidi' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 !== ($options & self::IDNA_CHECK_BIDI), 'CheckJoiners' => self::INTL_IDNA_VARIANT_UTS46 === $variant && 0 !== ($options & self::IDNA_CHECK_CONTEXTJ), 'UseSTD3ASCIIRules' => 0 !== ($options & self::IDNA_USE_STD3_RULES), 'Transitional_Processing' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 === ($options & self::IDNA_NONTRANSITIONAL_TO_UNICODE)), $info);
150
+ $idna_info = array('result' => \implode('.', $labels), 'isTransitionalDifferent' => $info->transitionalDifferent, 'errors' => $info->errors);
151
+ return 0 === $info->errors ? $idna_info['result'] : \false;
152
+ }
153
+ /**
154
+ * @param string $label
155
+ *
156
+ * @return bool
157
+ */
158
+ private static function isValidContextJ(array $codePoints, $label)
159
+ {
160
+ if (!isset(self::$virama)) {
161
+ self::$virama = (require __DIR__ . \DIRECTORY_SEPARATOR . 'Resources' . \DIRECTORY_SEPARATOR . 'unidata' . \DIRECTORY_SEPARATOR . 'virama.php');
162
+ }
163
+ $offset = 0;
164
+ foreach ($codePoints as $i => $codePoint) {
165
+ if (0x200c !== $codePoint && 0x200d !== $codePoint) {
166
+ continue;
167
+ }
168
+ if (!isset($codePoints[$i - 1])) {
169
+ return \false;
170
+ }
171
+ // If Canonical_Combining_Class(Before(cp)) .eq. Virama Then True;
172
+ if (isset(self::$virama[$codePoints[$i - 1]])) {
173
+ continue;
174
+ }
175
+ // If RegExpMatch((Joining_Type:{L,D})(Joining_Type:T)*\u200C(Joining_Type:T)*(Joining_Type:{R,D})) Then
176
+ // True;
177
+ // Generated RegExp = ([Joining_Type:{L,D}][Joining_Type:T]*\u200C[Joining_Type:T]*)[Joining_Type:{R,D}]
178
+ if (0x200c === $codePoint && 1 === \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::ZWNJ, $label, $matches, \PREG_OFFSET_CAPTURE, $offset)) {
179
+ $offset += \strlen($matches[1][0]);
180
+ continue;
181
+ }
182
+ return \false;
183
+ }
184
+ return \true;
185
+ }
186
+ /**
187
+ * @see https://www.unicode.org/reports/tr46/#ProcessingStepMap
188
+ *
189
+ * @param string $input
190
+ * @param array<string, bool> $options
191
+ *
192
+ * @return string
193
+ */
194
+ private static function mapCodePoints($input, array $options, \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Info $info)
195
+ {
196
+ $str = '';
197
+ $useSTD3ASCIIRules = $options['UseSTD3ASCIIRules'];
198
+ $transitional = $options['Transitional_Processing'];
199
+ foreach (self::utf8Decode($input) as $codePoint) {
200
+ $data = self::lookupCodePointStatus($codePoint, $useSTD3ASCIIRules);
201
+ switch ($data['status']) {
202
+ case 'disallowed':
203
+ $info->errors |= self::ERROR_DISALLOWED;
204
+ // no break.
205
+ case 'valid':
206
+ $str .= \mb_chr($codePoint, 'utf-8');
207
+ break;
208
+ case 'ignored':
209
+ // Do nothing.
210
+ break;
211
+ case 'mapped':
212
+ $str .= $data['mapping'];
213
+ break;
214
+ case 'deviation':
215
+ $info->transitionalDifferent = \true;
216
+ $str .= $transitional ? $data['mapping'] : \mb_chr($codePoint, 'utf-8');
217
+ break;
218
+ }
219
+ }
220
+ return $str;
221
+ }
222
+ /**
223
+ * @see https://www.unicode.org/reports/tr46/#Processing
224
+ *
225
+ * @param string $domain
226
+ * @param array<string, bool> $options
227
+ *
228
+ * @return array<int, string>
229
+ */
230
+ private static function process($domain, array $options, \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Info $info)
231
+ {
232
+ // If VerifyDnsLength is not set, we are doing ToUnicode otherwise we are doing ToASCII and
233
+ // we need to respect the VerifyDnsLength option.
234
+ $checkForEmptyLabels = !isset($options['VerifyDnsLength']) || $options['VerifyDnsLength'];
235
+ if ($checkForEmptyLabels && '' === $domain) {
236
+ $info->errors |= self::ERROR_EMPTY_LABEL;
237
+ return array($domain);
238
+ }
239
+ // Step 1. Map each code point in the domain name string
240
+ $domain = self::mapCodePoints($domain, $options, $info);
241
+ // Step 2. Normalize the domain name string to Unicode Normalization Form C.
242
+ if (!\Normalizer::isNormalized($domain, \Normalizer::FORM_C)) {
243
+ $domain = \Normalizer::normalize($domain, \Normalizer::FORM_C);
244
+ }
245
+ // Step 3. Break the string into labels at U+002E (.) FULL STOP.
246
+ $labels = \explode('.', $domain);
247
+ $lastLabelIndex = \count($labels) - 1;
248
+ // Step 4. Convert and validate each label in the domain name string.
249
+ foreach ($labels as $i => $label) {
250
+ $validationOptions = $options;
251
+ if ('xn--' === \substr($label, 0, 4)) {
252
+ try {
253
+ $label = self::punycodeDecode(\substr($label, 4));
254
+ } catch (\Exception $e) {
255
+ $info->errors |= self::ERROR_PUNYCODE;
256
+ continue;
257
+ }
258
+ $validationOptions['Transitional_Processing'] = \false;
259
+ $labels[$i] = $label;
260
+ }
261
+ self::validateLabel($label, $info, $validationOptions, $i > 0 && $i === $lastLabelIndex);
262
+ }
263
+ if ($info->bidiDomain && !$info->validBidiDomain) {
264
+ $info->errors |= self::ERROR_BIDI;
265
+ }
266
+ // Any input domain name string that does not record an error has been successfully
267
+ // processed according to this specification. Conversely, if an input domain_name string
268
+ // causes an error, then the processing of the input domain_name string fails. Determining
269
+ // what to do with error input is up to the caller, and not in the scope of this document.
270
+ return $labels;
271
+ }
272
+ /**
273
+ * @see https://tools.ietf.org/html/rfc5893#section-2
274
+ *
275
+ * @param string $label
276
+ */
277
+ private static function validateBidiLabel($label, \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Info $info)
278
+ {
279
+ if (1 === \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::RTL_LABEL, $label)) {
280
+ $info->bidiDomain = \true;
281
+ // Step 1. The first character must be a character with Bidi property L, R, or AL.
282
+ // If it has the R or AL property, it is an RTL label
283
+ if (1 !== \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::BIDI_STEP_1_RTL, $label)) {
284
+ $info->validBidiDomain = \false;
285
+ return;
286
+ }
287
+ // Step 2. In an RTL label, only characters with the Bidi properties R, AL, AN, EN, ES,
288
+ // CS, ET, ON, BN, or NSM are allowed.
289
+ if (1 === \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::BIDI_STEP_2, $label)) {
290
+ $info->validBidiDomain = \false;
291
+ return;
292
+ }
293
+ // Step 3. In an RTL label, the end of the label must be a character with Bidi property
294
+ // R, AL, EN, or AN, followed by zero or more characters with Bidi property NSM.
295
+ if (1 !== \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::BIDI_STEP_3, $label)) {
296
+ $info->validBidiDomain = \false;
297
+ return;
298
+ }
299
+ // Step 4. In an RTL label, if an EN is present, no AN may be present, and vice versa.
300
+ if (1 === \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::BIDI_STEP_4_AN, $label) && 1 === \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::BIDI_STEP_4_EN, $label)) {
301
+ $info->validBidiDomain = \false;
302
+ return;
303
+ }
304
+ return;
305
+ }
306
+ // We are a LTR label
307
+ // Step 1. The first character must be a character with Bidi property L, R, or AL.
308
+ // If it has the L property, it is an LTR label.
309
+ if (1 !== \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::BIDI_STEP_1_LTR, $label)) {
310
+ $info->validBidiDomain = \false;
311
+ return;
312
+ }
313
+ // Step 5. In an LTR label, only characters with the Bidi properties L, EN,
314
+ // ES, CS, ET, ON, BN, or NSM are allowed.
315
+ if (1 === \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::BIDI_STEP_5, $label)) {
316
+ $info->validBidiDomain = \false;
317
+ return;
318
+ }
319
+ // Step 6.In an LTR label, the end of the label must be a character with Bidi property L or
320
+ // EN, followed by zero or more characters with Bidi property NSM.
321
+ if (1 !== \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::BIDI_STEP_6, $label)) {
322
+ $info->validBidiDomain = \false;
323
+ return;
324
+ }
325
+ }
326
+ /**
327
+ * @param array<int, string> $labels
328
+ */
329
+ private static function validateDomainAndLabelLength(array $labels, \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Info $info)
330
+ {
331
+ $maxDomainSize = self::MAX_DOMAIN_SIZE;
332
+ $length = \count($labels);
333
+ // Number of "." delimiters.
334
+ $domainLength = $length - 1;
335
+ // If the last label is empty and it is not the first label, then it is the root label.
336
+ // Increase the max size by 1, making it 254, to account for the root label's "."
337
+ // delimiter. This also means we don't need to check the last label's length for being too
338
+ // long.
339
+ if ($length > 1 && '' === $labels[$length - 1]) {
340
+ ++$maxDomainSize;
341
+ --$length;
342
+ }
343
+ for ($i = 0; $i < $length; ++$i) {
344
+ $bytes = \strlen($labels[$i]);
345
+ $domainLength += $bytes;
346
+ if ($bytes > self::MAX_LABEL_SIZE) {
347
+ $info->errors |= self::ERROR_LABEL_TOO_LONG;
348
+ }
349
+ }
350
+ if ($domainLength > $maxDomainSize) {
351
+ $info->errors |= self::ERROR_DOMAIN_NAME_TOO_LONG;
352
+ }
353
+ }
354
+ /**
355
+ * @see https://www.unicode.org/reports/tr46/#Validity_Criteria
356
+ *
357
+ * @param string $label
358
+ * @param array<string, bool> $options
359
+ * @param bool $canBeEmpty
360
+ */
361
+ private static function validateLabel($label, \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Info $info, array $options, $canBeEmpty)
362
+ {
363
+ if ('' === $label) {
364
+ if (!$canBeEmpty && (!isset($options['VerifyDnsLength']) || $options['VerifyDnsLength'])) {
365
+ $info->errors |= self::ERROR_EMPTY_LABEL;
366
+ }
367
+ return;
368
+ }
369
+ // Step 1. The label must be in Unicode Normalization Form C.
370
+ if (!\Normalizer::isNormalized($label, \Normalizer::FORM_C)) {
371
+ $info->errors |= self::ERROR_INVALID_ACE_LABEL;
372
+ }
373
+ $codePoints = self::utf8Decode($label);
374
+ if ($options['CheckHyphens']) {
375
+ // Step 2. If CheckHyphens, the label must not contain a U+002D HYPHEN-MINUS character
376
+ // in both the thrid and fourth positions.
377
+ if (isset($codePoints[2], $codePoints[3]) && 0x2d === $codePoints[2] && 0x2d === $codePoints[3]) {
378
+ $info->errors |= self::ERROR_HYPHEN_3_4;
379
+ }
380
+ // Step 3. If CheckHyphens, the label must neither begin nor end with a U+002D
381
+ // HYPHEN-MINUS character.
382
+ if ('-' === \substr($label, 0, 1)) {
383
+ $info->errors |= self::ERROR_LEADING_HYPHEN;
384
+ }
385
+ if ('-' === \substr($label, -1, 1)) {
386
+ $info->errors |= self::ERROR_TRAILING_HYPHEN;
387
+ }
388
+ }
389
+ // Step 4. The label must not contain a U+002E (.) FULL STOP.
390
+ if (\false !== \strpos($label, '.')) {
391
+ $info->errors |= self::ERROR_LABEL_HAS_DOT;
392
+ }
393
+ // Step 5. The label must not begin with a combining mark, that is: General_Category=Mark.
394
+ if (1 === \preg_match(\PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex::COMBINING_MARK, $label)) {
395
+ $info->errors |= self::ERROR_LEADING_COMBINING_MARK;
396
+ }
397
+ // Step 6. Each code point in the label must only have certain status values according to
398
+ // Section 5, IDNA Mapping Table:
399
+ $transitional = $options['Transitional_Processing'];
400
+ $useSTD3ASCIIRules = $options['UseSTD3ASCIIRules'];
401
+ foreach ($codePoints as $codePoint) {
402
+ $data = self::lookupCodePointStatus($codePoint, $useSTD3ASCIIRules);
403
+ $status = $data['status'];
404
+ if ('valid' === $status || !$transitional && 'deviation' === $status) {
405
+ continue;
406
+ }
407
+ $info->errors |= self::ERROR_DISALLOWED;
408
+ break;
409
+ }
410
+ // Step 7. If CheckJoiners, the label must satisify the ContextJ rules from Appendix A, in
411
+ // The Unicode Code Points and Internationalized Domain Names for Applications (IDNA)
412
+ // [IDNA2008].
413
+ if ($options['CheckJoiners'] && !self::isValidContextJ($codePoints, $label)) {
414
+ $info->errors |= self::ERROR_CONTEXTJ;
415
+ }
416
+ // Step 8. If CheckBidi, and if the domain name is a Bidi domain name, then the label must
417
+ // satisfy all six of the numbered conditions in [IDNA2008] RFC 5893, Section 2.
418
+ if ($options['CheckBidi'] && (!$info->bidiDomain || $info->validBidiDomain)) {
419
+ self::validateBidiLabel($label, $info);
420
+ }
421
+ }
422
+ /**
423
+ * @see https://tools.ietf.org/html/rfc3492#section-6.2
424
+ *
425
+ * @param string $input
426
+ *
427
+ * @return string
428
+ */
429
+ private static function punycodeDecode($input)
430
+ {
431
+ $n = self::INITIAL_N;
432
+ $out = 0;
433
+ $i = 0;
434
+ $bias = self::INITIAL_BIAS;
435
+ $lastDelimIndex = \strrpos($input, self::DELIMITER);
436
+ $b = \false === $lastDelimIndex ? 0 : $lastDelimIndex;
437
+ $inputLength = \strlen($input);
438
+ $output = array();
439
+ $bytes = \array_map('ord', \str_split($input));
440
+ for ($j = 0; $j < $b; ++$j) {
441
+ if ($bytes[$j] > 0x7f) {
442
+ throw new \Exception('Invalid input');
443
+ }
444
+ $output[$out++] = $input[$j];
445
+ }
446
+ if ($b > 0) {
447
+ ++$b;
448
+ }
449
+ for ($in = $b; $in < $inputLength; ++$out) {
450
+ $oldi = $i;
451
+ $w = 1;
452
+ for ($k = self::BASE;; $k += self::BASE) {
453
+ if ($in >= $inputLength) {
454
+ throw new \Exception('Invalid input');
455
+ }
456
+ $digit = self::$basicToDigit[$bytes[$in++] & 0xff];
457
+ if ($digit < 0) {
458
+ throw new \Exception('Invalid input');
459
+ }
460
+ if ($digit > \intdiv(self::MAX_INT - $i, $w)) {
461
+ throw new \Exception('Integer overflow');
462
+ }
463
+ $i += $digit * $w;
464
+ if ($k <= $bias) {
465
+ $t = self::TMIN;
466
+ } elseif ($k >= $bias + self::TMAX) {
467
+ $t = self::TMAX;
468
+ } else {
469
+ $t = $k - $bias;
470
+ }
471
+ if ($digit < $t) {
472
+ break;
473
+ }
474
+ $baseMinusT = self::BASE - $t;
475
+ if ($w > \intdiv(self::MAX_INT, $baseMinusT)) {
476
+ throw new \Exception('Integer overflow');
477
+ }
478
+ $w *= $baseMinusT;
479
+ }
480
+ $outPlusOne = $out + 1;
481
+ $bias = self::adaptBias($i - $oldi, $outPlusOne, 0 === $oldi);
482
+ if (\intdiv($i, $outPlusOne) > self::MAX_INT - $n) {
483
+ throw new \Exception('Integer overflow');
484
+ }
485
+ $n += \intdiv($i, $outPlusOne);
486
+ $i %= $outPlusOne;
487
+ \array_splice($output, $i++, 0, array(\mb_chr($n, 'utf-8')));
488
+ }
489
+ return \implode('', $output);
490
+ }
491
+ /**
492
+ * @see https://tools.ietf.org/html/rfc3492#section-6.3
493
+ *
494
+ * @param string $input
495
+ *
496
+ * @return string
497
+ */
498
+ private static function punycodeEncode($input)
499
+ {
500
+ $n = self::INITIAL_N;
501
+ $delta = 0;
502
+ $out = 0;
503
+ $bias = self::INITIAL_BIAS;
504
+ $inputLength = 0;
505
+ $output = '';
506
+ $iter = self::utf8Decode($input);
507
+ foreach ($iter as $codePoint) {
508
+ ++$inputLength;
509
+ if ($codePoint < 0x80) {
510
+ $output .= \chr($codePoint);
511
+ ++$out;
512
+ }
513
+ }
514
+ $h = $out;
515
+ $b = $out;
516
+ if ($b > 0) {
517
+ $output .= self::DELIMITER;
518
+ ++$out;
519
+ }
520
+ while ($h < $inputLength) {
521
+ $m = self::MAX_INT;
522
+ foreach ($iter as $codePoint) {
523
+ if ($codePoint >= $n && $codePoint < $m) {
524
+ $m = $codePoint;
525
+ }
526
+ }
527
+ if ($m - $n > \intdiv(self::MAX_INT - $delta, $h + 1)) {
528
+ throw new \Exception('Integer overflow');
529
+ }
530
+ $delta += ($m - $n) * ($h + 1);
531
+ $n = $m;
532
+ foreach ($iter as $codePoint) {
533
+ if ($codePoint < $n && 0 === ++$delta) {
534
+ throw new \Exception('Integer overflow');
535
+ } elseif ($codePoint === $n) {
536
+ $q = $delta;
537
+ for ($k = self::BASE;; $k += self::BASE) {
538
+ if ($k <= $bias) {
539
+ $t = self::TMIN;
540
+ } elseif ($k >= $bias + self::TMAX) {
541
+ $t = self::TMAX;
542
+ } else {
543
+ $t = $k - $bias;
544
+ }
545
+ if ($q < $t) {
546
+ break;
547
+ }
548
+ $qMinusT = $q - $t;
549
+ $baseMinusT = self::BASE - $t;
550
+ $output .= self::encodeDigit($t + $qMinusT % $baseMinusT, \false);
551
+ ++$out;
552
+ $q = \intdiv($qMinusT, $baseMinusT);
553
+ }
554
+ $output .= self::encodeDigit($q, \false);
555
+ ++$out;
556
+ $bias = self::adaptBias($delta, $h + 1, $h === $b);
557
+ $delta = 0;
558
+ ++$h;
559
+ }
560
+ }
561
+ ++$delta;
562
+ ++$n;
563
+ }
564
+ return $output;
565
+ }
566
+ /**
567
+ * @see https://tools.ietf.org/html/rfc3492#section-6.1
568
+ *
569
+ * @param int $delta
570
+ * @param int $numPoints
571
+ * @param bool $firstTime
572
+ *
573
+ * @return int
574
+ */
575
+ private static function adaptBias($delta, $numPoints, $firstTime)
576
+ {
577
+ // xxx >> 1 is a faster way of doing intdiv(xxx, 2)
578
+ $delta = $firstTime ? \intdiv($delta, self::DAMP) : $delta >> 1;
579
+ $delta += \intdiv($delta, $numPoints);
580
+ $k = 0;
581
+ while ($delta > (self::BASE - self::TMIN) * self::TMAX >> 1) {
582
+ $delta = \intdiv($delta, self::BASE - self::TMIN);
583
+ $k += self::BASE;
584
+ }
585
+ return $k + \intdiv((self::BASE - self::TMIN + 1) * $delta, $delta + self::SKEW);
586
+ }
587
+ /**
588
+ * @param int $d
589
+ * @param bool $flag
590
+ *
591
+ * @return string
592
+ */
593
+ private static function encodeDigit($d, $flag)
594
+ {
595
+ return \chr($d + 22 + 75 * ($d < 26 ? 1 : 0) - (($flag ? 1 : 0) << 5));
596
+ }
597
+ /**
598
+ * Takes a UTF-8 encoded string and converts it into a series of integer code points. Any
599
+ * invalid byte sequences will be replaced by a U+FFFD replacement code point.
600
+ *
601
+ * @see https://encoding.spec.whatwg.org/#utf-8-decoder
602
+ *
603
+ * @param string $input
604
+ *
605
+ * @return array<int, int>
606
+ */
607
+ private static function utf8Decode($input)
608
+ {
609
+ $bytesSeen = 0;
610
+ $bytesNeeded = 0;
611
+ $lowerBoundary = 0x80;
612
+ $upperBoundary = 0xbf;
613
+ $codePoint = 0;
614
+ $codePoints = array();
615
+ $length = \strlen($input);
616
+ for ($i = 0; $i < $length; ++$i) {
617
+ $byte = \ord($input[$i]);
618
+ if (0 === $bytesNeeded) {
619
+ if ($byte >= 0x0 && $byte <= 0x7f) {
620
+ $codePoints[] = $byte;
621
+ continue;
622
+ }
623
+ if ($byte >= 0xc2 && $byte <= 0xdf) {
624
+ $bytesNeeded = 1;
625
+ $codePoint = $byte & 0x1f;
626
+ } elseif ($byte >= 0xe0 && $byte <= 0xef) {
627
+ if (0xe0 === $byte) {
628
+ $lowerBoundary = 0xa0;
629
+ } elseif (0xed === $byte) {
630
+ $upperBoundary = 0x9f;
631
+ }
632
+ $bytesNeeded = 2;
633
+ $codePoint = $byte & 0xf;
634
+ } elseif ($byte >= 0xf0 && $byte <= 0xf4) {
635
+ if (0xf0 === $byte) {
636
+ $lowerBoundary = 0x90;
637
+ } elseif (0xf4 === $byte) {
638
+ $upperBoundary = 0x8f;
639
+ }
640
+ $bytesNeeded = 3;
641
+ $codePoint = $byte & 0x7;
642
+ } else {
643
+ $codePoints[] = 0xfffd;
644
+ }
645
+ continue;
646
+ }
647
+ if ($byte < $lowerBoundary || $byte > $upperBoundary) {
648
+ $codePoint = 0;
649
+ $bytesNeeded = 0;
650
+ $bytesSeen = 0;
651
+ $lowerBoundary = 0x80;
652
+ $upperBoundary = 0xbf;
653
+ --$i;
654
+ $codePoints[] = 0xfffd;
655
+ continue;
656
+ }
657
+ $lowerBoundary = 0x80;
658
+ $upperBoundary = 0xbf;
659
+ $codePoint = $codePoint << 6 | $byte & 0x3f;
660
+ if (++$bytesSeen !== $bytesNeeded) {
661
+ continue;
662
+ }
663
+ $codePoints[] = $codePoint;
664
+ $codePoint = 0;
665
+ $bytesNeeded = 0;
666
+ $bytesSeen = 0;
667
+ }
668
+ // String unexpectedly ended, so append a U+FFFD code point.
669
+ if (0 !== $bytesNeeded) {
670
+ $codePoints[] = 0xfffd;
671
+ }
672
+ return $codePoints;
673
+ }
674
+ /**
675
+ * @param int $codePoint
676
+ * @param bool $useSTD3ASCIIRules
677
+ *
678
+ * @return array{status: string, mapping?: string}
679
+ */
680
+ private static function lookupCodePointStatus($codePoint, $useSTD3ASCIIRules)
681
+ {
682
+ if (!self::$mappingTableLoaded) {
683
+ self::$mappingTableLoaded = \true;
684
+ self::$mapped = (require __DIR__ . '/Resources/unidata/mapped.php');
685
+ self::$ignored = (require __DIR__ . '/Resources/unidata/ignored.php');
686
+ self::$deviation = (require __DIR__ . '/Resources/unidata/deviation.php');
687
+ self::$disallowed = (require __DIR__ . '/Resources/unidata/disallowed.php');
688
+ self::$disallowed_STD3_mapped = (require __DIR__ . '/Resources/unidata/disallowed_STD3_mapped.php');
689
+ self::$disallowed_STD3_valid = (require __DIR__ . '/Resources/unidata/disallowed_STD3_valid.php');
690
+ }
691
+ if (isset(self::$mapped[$codePoint])) {
692
+ return array('status' => 'mapped', 'mapping' => self::$mapped[$codePoint]);
693
+ }
694
+ if (isset(self::$ignored[$codePoint])) {
695
+ return array('status' => 'ignored');
696
+ }
697
+ if (isset(self::$deviation[$codePoint])) {
698
+ return array('status' => 'deviation', 'mapping' => self::$deviation[$codePoint]);
699
+ }
700
+ if (isset(self::$disallowed[$codePoint]) || \PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata\DisallowedRanges::inRange($codePoint)) {
701
+ return array('status' => 'disallowed');
702
+ }
703
+ $isDisallowedMapped = isset(self::$disallowed_STD3_mapped[$codePoint]);
704
+ if ($isDisallowedMapped || isset(self::$disallowed_STD3_valid[$codePoint])) {
705
+ $status = 'disallowed';
706
+ if (!$useSTD3ASCIIRules) {
707
+ $status = $isDisallowedMapped ? 'mapped' : 'valid';
708
+ }
709
+ if ($isDisallowedMapped) {
710
+ return array('status' => $status, 'mapping' => self::$disallowed_STD3_mapped[$codePoint]);
711
+ }
712
+ return array('status' => $status);
713
+ }
714
+ return array('status' => 'valid');
715
+ }
716
+ }
vendor_prefix/symfony/polyfill-intl-idn/Info.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of the Symfony package.
5
+ *
6
+ * (c) Fabien Potencier <fabien@symfony.com> and Trevor Rowbotham <trevor.rowbotham@pm.me>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+ namespace PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn;
12
+
13
+ /**
14
+ * @internal
15
+ */
16
+ class Info
17
+ {
18
+ public $bidiDomain = \false;
19
+ public $errors = 0;
20
+ public $validBidiDomain = \true;
21
+ public $transitionalDifferent = \false;
22
+ }
vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php ADDED
@@ -0,0 +1,286 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata;
4
+
5
+ /**
6
+ * @internal
7
+ */
8
+ final class DisallowedRanges
9
+ {
10
+ /**
11
+ * @param int $codePoint
12
+ *
13
+ * @return bool
14
+ */
15
+ public static function inRange($codePoint)
16
+ {
17
+ if ($codePoint >= 128 && $codePoint <= 159) {
18
+ return \true;
19
+ }
20
+ if ($codePoint >= 2155 && $codePoint <= 2207) {
21
+ return \true;
22
+ }
23
+ if ($codePoint >= 3676 && $codePoint <= 3712) {
24
+ return \true;
25
+ }
26
+ if ($codePoint >= 3808 && $codePoint <= 3839) {
27
+ return \true;
28
+ }
29
+ if ($codePoint >= 4059 && $codePoint <= 4095) {
30
+ return \true;
31
+ }
32
+ if ($codePoint >= 4256 && $codePoint <= 4293) {
33
+ return \true;
34
+ }
35
+ if ($codePoint >= 6849 && $codePoint <= 6911) {
36
+ return \true;
37
+ }
38
+ if ($codePoint >= 11859 && $codePoint <= 11903) {
39
+ return \true;
40
+ }
41
+ if ($codePoint >= 42955 && $codePoint <= 42996) {
42
+ return \true;
43
+ }
44
+ if ($codePoint >= 55296 && $codePoint <= 57343) {
45
+ return \true;
46
+ }
47
+ if ($codePoint >= 57344 && $codePoint <= 63743) {
48
+ return \true;
49
+ }
50
+ if ($codePoint >= 64218 && $codePoint <= 64255) {
51
+ return \true;
52
+ }
53
+ if ($codePoint >= 64976 && $codePoint <= 65007) {
54
+ return \true;
55
+ }
56
+ if ($codePoint >= 65630 && $codePoint <= 65663) {
57
+ return \true;
58
+ }
59
+ if ($codePoint >= 65953 && $codePoint <= 65999) {
60
+ return \true;
61
+ }
62
+ if ($codePoint >= 66046 && $codePoint <= 66175) {
63
+ return \true;
64
+ }
65
+ if ($codePoint >= 66518 && $codePoint <= 66559) {
66
+ return \true;
67
+ }
68
+ if ($codePoint >= 66928 && $codePoint <= 67071) {
69
+ return \true;
70
+ }
71
+ if ($codePoint >= 67432 && $codePoint <= 67583) {
72
+ return \true;
73
+ }
74
+ if ($codePoint >= 67760 && $codePoint <= 67807) {
75
+ return \true;
76
+ }
77
+ if ($codePoint >= 67904 && $codePoint <= 67967) {
78
+ return \true;
79
+ }
80
+ if ($codePoint >= 68256 && $codePoint <= 68287) {
81
+ return \true;
82
+ }
83
+ if ($codePoint >= 68528 && $codePoint <= 68607) {
84
+ return \true;
85
+ }
86
+ if ($codePoint >= 68681 && $codePoint <= 68735) {
87
+ return \true;
88
+ }
89
+ if ($codePoint >= 68922 && $codePoint <= 69215) {
90
+ return \true;
91
+ }
92
+ if ($codePoint >= 69298 && $codePoint <= 69375) {
93
+ return \true;
94
+ }
95
+ if ($codePoint >= 69466 && $codePoint <= 69551) {
96
+ return \true;
97
+ }
98
+ if ($codePoint >= 70207 && $codePoint <= 70271) {
99
+ return \true;
100
+ }
101
+ if ($codePoint >= 70517 && $codePoint <= 70655) {
102
+ return \true;
103
+ }
104
+ if ($codePoint >= 70874 && $codePoint <= 71039) {
105
+ return \true;
106
+ }
107
+ if ($codePoint >= 71134 && $codePoint <= 71167) {
108
+ return \true;
109
+ }
110
+ if ($codePoint >= 71370 && $codePoint <= 71423) {
111
+ return \true;
112
+ }
113
+ if ($codePoint >= 71488 && $codePoint <= 71679) {
114
+ return \true;
115
+ }
116
+ if ($codePoint >= 71740 && $codePoint <= 71839) {
117
+ return \true;
118
+ }
119
+ if ($codePoint >= 72026 && $codePoint <= 72095) {
120
+ return \true;
121
+ }
122
+ if ($codePoint >= 72441 && $codePoint <= 72703) {
123
+ return \true;
124
+ }
125
+ if ($codePoint >= 72887 && $codePoint <= 72959) {
126
+ return \true;
127
+ }
128
+ if ($codePoint >= 73130 && $codePoint <= 73439) {
129
+ return \true;
130
+ }
131
+ if ($codePoint >= 73465 && $codePoint <= 73647) {
132
+ return \true;
133
+ }
134
+ if ($codePoint >= 74650 && $codePoint <= 74751) {
135
+ return \true;
136
+ }
137
+ if ($codePoint >= 75076 && $codePoint <= 77823) {
138
+ return \true;
139
+ }
140
+ if ($codePoint >= 78905 && $codePoint <= 82943) {
141
+ return \true;
142
+ }
143
+ if ($codePoint >= 83527 && $codePoint <= 92159) {
144
+ return \true;
145
+ }
146
+ if ($codePoint >= 92784 && $codePoint <= 92879) {
147
+ return \true;
148
+ }
149
+ if ($codePoint >= 93072 && $codePoint <= 93759) {
150
+ return \true;
151
+ }
152
+ if ($codePoint >= 93851 && $codePoint <= 93951) {
153
+ return \true;
154
+ }
155
+ if ($codePoint >= 94112 && $codePoint <= 94175) {
156
+ return \true;
157
+ }
158
+ if ($codePoint >= 101590 && $codePoint <= 101631) {
159
+ return \true;
160
+ }
161
+ if ($codePoint >= 101641 && $codePoint <= 110591) {
162
+ return \true;
163
+ }
164
+ if ($codePoint >= 110879 && $codePoint <= 110927) {
165
+ return \true;
166
+ }
167
+ if ($codePoint >= 111356 && $codePoint <= 113663) {
168
+ return \true;
169
+ }
170
+ if ($codePoint >= 113828 && $codePoint <= 118783) {
171
+ return \true;
172
+ }
173
+ if ($codePoint >= 119366 && $codePoint <= 119519) {
174
+ return \true;
175
+ }
176
+ if ($codePoint >= 119673 && $codePoint <= 119807) {
177
+ return \true;
178
+ }
179
+ if ($codePoint >= 121520 && $codePoint <= 122879) {
180
+ return \true;
181
+ }
182
+ if ($codePoint >= 122923 && $codePoint <= 123135) {
183
+ return \true;
184
+ }
185
+ if ($codePoint >= 123216 && $codePoint <= 123583) {
186
+ return \true;
187
+ }
188
+ if ($codePoint >= 123648 && $codePoint <= 124927) {
189
+ return \true;
190
+ }
191
+ if ($codePoint >= 125143 && $codePoint <= 125183) {
192
+ return \true;
193
+ }
194
+ if ($codePoint >= 125280 && $codePoint <= 126064) {
195
+ return \true;
196
+ }
197
+ if ($codePoint >= 126133 && $codePoint <= 126208) {
198
+ return \true;
199
+ }
200
+ if ($codePoint >= 126270 && $codePoint <= 126463) {
201
+ return \true;
202
+ }
203
+ if ($codePoint >= 126652 && $codePoint <= 126703) {
204
+ return \true;
205
+ }
206
+ if ($codePoint >= 126706 && $codePoint <= 126975) {
207
+ return \true;
208
+ }
209
+ if ($codePoint >= 127406 && $codePoint <= 127461) {
210
+ return \true;
211
+ }
212
+ if ($codePoint >= 127590 && $codePoint <= 127743) {
213
+ return \true;
214
+ }
215
+ if ($codePoint >= 129202 && $codePoint <= 129279) {
216
+ return \true;
217
+ }
218
+ if ($codePoint >= 129751 && $codePoint <= 129791) {
219
+ return \true;
220
+ }
221
+ if ($codePoint >= 129995 && $codePoint <= 130031) {
222
+ return \true;
223
+ }
224
+ if ($codePoint >= 130042 && $codePoint <= 131069) {
225
+ return \true;
226
+ }
227
+ if ($codePoint >= 173790 && $codePoint <= 173823) {
228
+ return \true;
229
+ }
230
+ if ($codePoint >= 191457 && $codePoint <= 194559) {
231
+ return \true;
232
+ }
233
+ if ($codePoint >= 195102 && $codePoint <= 196605) {
234
+ return \true;
235
+ }
236
+ if ($codePoint >= 201547 && $codePoint <= 262141) {
237
+ return \true;
238
+ }
239
+ if ($codePoint >= 262144 && $codePoint <= 327677) {
240
+ return \true;
241
+ }
242
+ if ($codePoint >= 327680 && $codePoint <= 393213) {
243
+ return \true;
244
+ }
245
+ if ($codePoint >= 393216 && $codePoint <= 458749) {
246
+ return \true;
247
+ }
248
+ if ($codePoint >= 458752 && $codePoint <= 524285) {
249
+ return \true;
250
+ }
251
+ if ($codePoint >= 524288 && $codePoint <= 589821) {
252
+ return \true;
253
+ }
254
+ if ($codePoint >= 589824 && $codePoint <= 655357) {
255
+ return \true;
256
+ }
257
+ if ($codePoint >= 655360 && $codePoint <= 720893) {
258
+ return \true;
259
+ }
260
+ if ($codePoint >= 720896 && $codePoint <= 786429) {
261
+ return \true;
262
+ }
263
+ if ($codePoint >= 786432 && $codePoint <= 851965) {
264
+ return \true;
265
+ }
266
+ if ($codePoint >= 851968 && $codePoint <= 917501) {
267
+ return \true;
268
+ }
269
+ if ($codePoint >= 917536 && $codePoint <= 917631) {
270
+ return \true;
271
+ }
272
+ if ($codePoint >= 917632 && $codePoint <= 917759) {
273
+ return \true;
274
+ }
275
+ if ($codePoint >= 918000 && $codePoint <= 983037) {
276
+ return \true;
277
+ }
278
+ if ($codePoint >= 983040 && $codePoint <= 1048573) {
279
+ return \true;
280
+ }
281
+ if ($codePoint >= 1048576 && $codePoint <= 1114109) {
282
+ return \true;
283
+ }
284
+ return \false;
285
+ }
286
+ }
vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/Regex.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PYS_PRO_GLOBAL\Symfony\Polyfill\Intl\Idn\Resources\unidata;
4
+
5
+ /**
6
+ * @internal
7
+ */
8
+ final class Regex
9
+ {
10
+ const COMBINING_MARK = '/^[\\x{0300}-\\x{036F}\\x{0483}-\\x{0487}\\x{0488}-\\x{0489}\\x{0591}-\\x{05BD}\\x{05BF}\\x{05C1}-\\x{05C2}\\x{05C4}-\\x{05C5}\\x{05C7}\\x{0610}-\\x{061A}\\x{064B}-\\x{065F}\\x{0670}\\x{06D6}-\\x{06DC}\\x{06DF}-\\x{06E4}\\x{06E7}-\\x{06E8}\\x{06EA}-\\x{06ED}\\x{0711}\\x{0730}-\\x{074A}\\x{07A6}-\\x{07B0}\\x{07EB}-\\x{07F3}\\x{07FD}\\x{0816}-\\x{0819}\\x{081B}-\\x{0823}\\x{0825}-\\x{0827}\\x{0829}-\\x{082D}\\x{0859}-\\x{085B}\\x{08D3}-\\x{08E1}\\x{08E3}-\\x{0902}\\x{0903}\\x{093A}\\x{093B}\\x{093C}\\x{093E}-\\x{0940}\\x{0941}-\\x{0948}\\x{0949}-\\x{094C}\\x{094D}\\x{094E}-\\x{094F}\\x{0951}-\\x{0957}\\x{0962}-\\x{0963}\\x{0981}\\x{0982}-\\x{0983}\\x{09BC}\\x{09BE}-\\x{09C0}\\x{09C1}-\\x{09C4}\\x{09C7}-\\x{09C8}\\x{09CB}-\\x{09CC}\\x{09CD}\\x{09D7}\\x{09E2}-\\x{09E3}\\x{09FE}\\x{0A01}-\\x{0A02}\\x{0A03}\\x{0A3C}\\x{0A3E}-\\x{0A40}\\x{0A41}-\\x{0A42}\\x{0A47}-\\x{0A48}\\x{0A4B}-\\x{0A4D}\\x{0A51}\\x{0A70}-\\x{0A71}\\x{0A75}\\x{0A81}-\\x{0A82}\\x{0A83}\\x{0ABC}\\x{0ABE}-\\x{0AC0}\\x{0AC1}-\\x{0AC5}\\x{0AC7}-\\x{0AC8}\\x{0AC9}\\x{0ACB}-\\x{0ACC}\\x{0ACD}\\x{0AE2}-\\x{0AE3}\\x{0AFA}-\\x{0AFF}\\x{0B01}\\x{0B02}-\\x{0B03}\\x{0B3C}\\x{0B3E}\\x{0B3F}\\x{0B40}\\x{0B41}-\\x{0B44}\\x{0B47}-\\x{0B48}\\x{0B4B}-\\x{0B4C}\\x{0B4D}\\x{0B55}-\\x{0B56}\\x{0B57}\\x{0B62}-\\x{0B63}\\x{0B82}\\x{0BBE}-\\x{0BBF}\\x{0BC0}\\x{0BC1}-\\x{0BC2}\\x{0BC6}-\\x{0BC8}\\x{0BCA}-\\x{0BCC}\\x{0BCD}\\x{0BD7}\\x{0C00}\\x{0C01}-\\x{0C03}\\x{0C04}\\x{0C3E}-\\x{0C40}\\x{0C41}-\\x{0C44}\\x{0C46}-\\x{0C48}\\x{0C4A}-\\x{0C4D}\\x{0C55}-\\x{0C56}\\x{0C62}-\\x{0C63}\\x{0C81}\\x{0C82}-\\x{0C83}\\x{0CBC}\\x{0CBE}\\x{0CBF}\\x{0CC0}-\\x{0CC4}\\x{0CC6}\\x{0CC7}-\\x{0CC8}\\x{0CCA}-\\x{0CCB}\\x{0CCC}-\\x{0CCD}\\x{0CD5}-\\x{0CD6}\\x{0CE2}-\\x{0CE3}\\x{0D00}-\\x{0D01}\\x{0D02}-\\x{0D03}\\x{0D3B}-\\x{0D3C}\\x{0D3E}-\\x{0D40}\\x{0D41}-\\x{0D44}\\x{0D46}-\\x{0D48}\\x{0D4A}-\\x{0D4C}\\x{0D4D}\\x{0D57}\\x{0D62}-\\x{0D63}\\x{0D81}\\x{0D82}-\\x{0D83}\\x{0DCA}\\x{0DCF}-\\x{0DD1}\\x{0DD2}-\\x{0DD4}\\x{0DD6}\\x{0DD8}-\\x{0DDF}\\x{0DF2}-\\x{0DF3}\\x{0E31}\\x{0E34}-\\x{0E3A}\\x{0E47}-\\x{0E4E}\\x{0EB1}\\x{0EB4}-\\x{0EBC}\\x{0EC8}-\\x{0ECD}\\x{0F18}-\\x{0F19}\\x{0F35}\\x{0F37}\\x{0F39}\\x{0F3E}-\\x{0F3F}\\x{0F71}-\\x{0F7E}\\x{0F7F}\\x{0F80}-\\x{0F84}\\x{0F86}-\\x{0F87}\\x{0F8D}-\\x{0F97}\\x{0F99}-\\x{0FBC}\\x{0FC6}\\x{102B}-\\x{102C}\\x{102D}-\\x{1030}\\x{1031}\\x{1032}-\\x{1037}\\x{1038}\\x{1039}-\\x{103A}\\x{103B}-\\x{103C}\\x{103D}-\\x{103E}\\x{1056}-\\x{1057}\\x{1058}-\\x{1059}\\x{105E}-\\x{1060}\\x{1062}-\\x{1064}\\x{1067}-\\x{106D}\\x{1071}-\\x{1074}\\x{1082}\\x{1083}-\\x{1084}\\x{1085}-\\x{1086}\\x{1087}-\\x{108C}\\x{108D}\\x{108F}\\x{109A}-\\x{109C}\\x{109D}\\x{135D}-\\x{135F}\\x{1712}-\\x{1714}\\x{1732}-\\x{1734}\\x{1752}-\\x{1753}\\x{1772}-\\x{1773}\\x{17B4}-\\x{17B5}\\x{17B6}\\x{17B7}-\\x{17BD}\\x{17BE}-\\x{17C5}\\x{17C6}\\x{17C7}-\\x{17C8}\\x{17C9}-\\x{17D3}\\x{17DD}\\x{180B}-\\x{180D}\\x{1885}-\\x{1886}\\x{18A9}\\x{1920}-\\x{1922}\\x{1923}-\\x{1926}\\x{1927}-\\x{1928}\\x{1929}-\\x{192B}\\x{1930}-\\x{1931}\\x{1932}\\x{1933}-\\x{1938}\\x{1939}-\\x{193B}\\x{1A17}-\\x{1A18}\\x{1A19}-\\x{1A1A}\\x{1A1B}\\x{1A55}\\x{1A56}\\x{1A57}\\x{1A58}-\\x{1A5E}\\x{1A60}\\x{1A61}\\x{1A62}\\x{1A63}-\\x{1A64}\\x{1A65}-\\x{1A6C}\\x{1A6D}-\\x{1A72}\\x{1A73}-\\x{1A7C}\\x{1A7F}\\x{1AB0}-\\x{1ABD}\\x{1ABE}\\x{1ABF}-\\x{1AC0}\\x{1B00}-\\x{1B03}\\x{1B04}\\x{1B34}\\x{1B35}\\x{1B36}-\\x{1B3A}\\x{1B3B}\\x{1B3C}\\x{1B3D}-\\x{1B41}\\x{1B42}\\x{1B43}-\\x{1B44}\\x{1B6B}-\\x{1B73}\\x{1B80}-\\x{1B81}\\x{1B82}\\x{1BA1}\\x{1BA2}-\\x{1BA5}\\x{1BA6}-\\x{1BA7}\\x{1BA8}-\\x{1BA9}\\x{1BAA}\\x{1BAB}-\\x{1BAD}\\x{1BE6}\\x{1BE7}\\x{1BE8}-\\x{1BE9}\\x{1BEA}-\\x{1BEC}\\x{1BED}\\x{1BEE}\\x{1BEF}-\\x{1BF1}\\x{1BF2}-\\x{1BF3}\\x{1C24}-\\x{1C2B}\\x{1C2C}-\\x{1C33}\\x{1C34}-\\x{1C35}\\x{1C36}-\\x{1C37}\\x{1CD0}-\\x{1CD2}\\x{1CD4}-\\x{1CE0}\\x{1CE1}\\x{1CE2}-\\x{1CE8}\\x{1CED}\\x{1CF4}\\x{1CF7}\\x{1CF8}-\\x{1CF9}\\x{1DC0}-\\x{1DF9}\\x{1DFB}-\\x{1DFF}\\x{20D0}-\\x{20DC}\\x{20DD}-\\x{20E0}\\x{20E1}\\x{20E2}-\\x{20E4}\\x{20E5}-\\x{20F0}\\x{2CEF}-\\x{2CF1}\\x{2D7F}\\x{2DE0}-\\x{2DFF}\\x{302A}-\\x{302D}\\x{302E}-\\x{302F}\\x{3099}-\\x{309A}\\x{A66F}\\x{A670}-\\x{A672}\\x{A674}-\\x{A67D}\\x{A69E}-\\x{A69F}\\x{A6F0}-\\x{A6F1}\\x{A802}\\x{A806}\\x{A80B}\\x{A823}-\\x{A824}\\x{A825}-\\x{A826}\\x{A827}\\x{A82C}\\x{A880}-\\x{A881}\\x{A8B4}-\\x{A8C3}\\x{A8C4}-\\x{A8C5}\\x{A8E0}-\\x{A8F1}\\x{A8FF}\\x{A926}-\\x{A92D}\\x{A947}-\\x{A951}\\x{A952}-\\x{A953}\\x{A980}-\\x{A982}\\x{A983}\\x{A9B3}\\x{A9B4}-\\x{A9B5}\\x{A9B6}-\\x{A9B9}\\x{A9BA}-\\x{A9BB}\\x{A9BC}-\\x{A9BD}\\x{A9BE}-\\x{A9C0}\\x{A9E5}\\x{AA29}-\\x{AA2E}\\x{AA2F}-\\x{AA30}\\x{AA31}-\\x{AA32}\\x{AA33}-\\x{AA34}\\x{AA35}-\\x{AA36}\\x{AA43}\\x{AA4C}\\x{AA4D}\\x{AA7B}\\x{AA7C}\\x{AA7D}\\x{AAB0}\\x{AAB2}-\\x{AAB4}\\x{AAB7}-\\x{AAB8}\\x{AABE}-\\x{AABF}\\x{AAC1}\\x{AAEB}\\x{AAEC}-\\x{AAED}\\x{AAEE}-\\x{AAEF}\\x{AAF5}\\x{AAF6}\\x{ABE3}-\\x{ABE4}\\x{ABE5}\\x{ABE6}-\\x{ABE7}\\x{ABE8}\\x{ABE9}-\\x{ABEA}\\x{ABEC}\\x{ABED}\\x{FB1E}\\x{FE00}-\\x{FE0F}\\x{FE20}-\\x{FE2F}\\x{101FD}\\x{102E0}\\x{10376}-\\x{1037A}\\x{10A01}-\\x{10A03}\\x{10A05}-\\x{10A06}\\x{10A0C}-\\x{10A0F}\\x{10A38}-\\x{10A3A}\\x{10A3F}\\x{10AE5}-\\x{10AE6}\\x{10D24}-\\x{10D27}\\x{10EAB}-\\x{10EAC}\\x{10F46}-\\x{10F50}\\x{11000}\\x{11001}\\x{11002}\\x{11038}-\\x{11046}\\x{1107F}-\\x{11081}\\x{11082}\\x{110B0}-\\x{110B2}\\x{110B3}-\\x{110B6}\\x{110B7}-\\x{110B8}\\x{110B9}-\\x{110BA}\\x{11100}-\\x{11102}\\x{11127}-\\x{1112B}\\x{1112C}\\x{1112D}-\\x{11134}\\x{11145}-\\x{11146}\\x{11173}\\x{11180}-\\x{11181}\\x{11182}\\x{111B3}-\\x{111B5}\\x{111B6}-\\x{111BE}\\x{111BF}-\\x{111C0}\\x{111C9}-\\x{111CC}\\x{111CE}\\x{111CF}\\x{1122C}-\\x{1122E}\\x{1122F}-\\x{11231}\\x{11232}-\\x{11233}\\x{11234}\\x{11235}\\x{11236}-\\x{11237}\\x{1123E}\\x{112DF}\\x{112E0}-\\x{112E2}\\x{112E3}-\\x{112EA}\\x{11300}-\\x{11301}\\x{11302}-\\x{11303}\\x{1133B}-\\x{1133C}\\x{1133E}-\\x{1133F}\\x{11340}\\x{11341}-\\x{11344}\\x{11347}-\\x{11348}\\x{1134B}-\\x{1134D}\\x{11357}\\x{11362}-\\x{11363}\\x{11366}-\\x{1136C}\\x{11370}-\\x{11374}\\x{11435}-\\x{11437}\\x{11438}-\\x{1143F}\\x{11440}-\\x{11441}\\x{11442}-\\x{11444}\\x{11445}\\x{11446}\\x{1145E}\\x{114B0}-\\x{114B2}\\x{114B3}-\\x{114B8}\\x{114B9}\\x{114BA}\\x{114BB}-\\x{114BE}\\x{114BF}-\\x{114C0}\\x{114C1}\\x{114C2}-\\x{114C3}\\x{115AF}-\\x{115B1}\\x{115B2}-\\x{115B5}\\x{115B8}-\\x{115BB}\\x{115BC}-\\x{115BD}\\x{115BE}\\x{115BF}-\\x{115C0}\\x{115DC}-\\x{115DD}\\x{11630}-\\x{11632}\\x{11633}-\\x{1163A}\\x{1163B}-\\x{1163C}\\x{1163D}\\x{1163E}\\x{1163F}-\\x{11640}\\x{116AB}\\x{116AC}\\x{116AD}\\x{116AE}-\\x{116AF}\\x{116B0}-\\x{116B5}\\x{116B6}\\x{116B7}\\x{1171D}-\\x{1171F}\\x{11720}-\\x{11721}\\x{11722}-\\x{11725}\\x{11726}\\x{11727}-\\x{1172B}\\x{1182C}-\\x{1182E}\\x{1182F}-\\x{11837}\\x{11838}\\x{11839}-\\x{1183A}\\x{11930}-\\x{11935}\\x{11937}-\\x{11938}\\x{1193B}-\\x{1193C}\\x{1193D}\\x{1193E}\\x{11940}\\x{11942}\\x{11943}\\x{119D1}-\\x{119D3}\\x{119D4}-\\x{119D7}\\x{119DA}-\\x{119DB}\\x{119DC}-\\x{119DF}\\x{119E0}\\x{119E4}\\x{11A01}-\\x{11A0A}\\x{11A33}-\\x{11A38}\\x{11A39}\\x{11A3B}-\\x{11A3E}\\x{11A47}\\x{11A51}-\\x{11A56}\\x{11A57}-\\x{11A58}\\x{11A59}-\\x{11A5B}\\x{11A8A}-\\x{11A96}\\x{11A97}\\x{11A98}-\\x{11A99}\\x{11C2F}\\x{11C30}-\\x{11C36}\\x{11C38}-\\x{11C3D}\\x{11C3E}\\x{11C3F}\\x{11C92}-\\x{11CA7}\\x{11CA9}\\x{11CAA}-\\x{11CB0}\\x{11CB1}\\x{11CB2}-\\x{11CB3}\\x{11CB4}\\x{11CB5}-\\x{11CB6}\\x{11D31}-\\x{11D36}\\x{11D3A}\\x{11D3C}-\\x{11D3D}\\x{11D3F}-\\x{11D45}\\x{11D47}\\x{11D8A}-\\x{11D8E}\\x{11D90}-\\x{11D91}\\x{11D93}-\\x{11D94}\\x{11D95}\\x{11D96}\\x{11D97}\\x{11EF3}-\\x{11EF4}\\x{11EF5}-\\x{11EF6}\\x{16AF0}-\\x{16AF4}\\x{16B30}-\\x{16B36}\\x{16F4F}\\x{16F51}-\\x{16F87}\\x{16F8F}-\\x{16F92}\\x{16FE4}\\x{16FF0}-\\x{16FF1}\\x{1BC9D}-\\x{1BC9E}\\x{1D165}-\\x{1D166}\\x{1D167}-\\x{1D169}\\x{1D16D}-\\x{1D172}\\x{1D17B}-\\x{1D182}\\x{1D185}-\\x{1D18B}\\x{1D1AA}-\\x{1D1AD}\\x{1D242}-\\x{1D244}\\x{1DA00}-\\x{1DA36}\\x{1DA3B}-\\x{1DA6C}\\x{1DA75}\\x{1DA84}\\x{1DA9B}-\\x{1DA9F}\\x{1DAA1}-\\x{1DAAF}\\x{1E000}-\\x{1E006}\\x{1E008}-\\x{1E018}\\x{1E01B}-\\x{1E021}\\x{1E023}-\\x{1E024}\\x{1E026}-\\x{1E02A}\\x{1E130}-\\x{1E136}\\x{1E2EC}-\\x{1E2EF}\\x{1E8D0}-\\x{1E8D6}\\x{1E944}-\\x{1E94A}\\x{E0100}-\\x{E01EF}]/u';
11
+ const RTL_LABEL = '/[\\x{0590}\\x{05BE}\\x{05C0}\\x{05C3}\\x{05C6}\\x{05C8}-\\x{05CF}\\x{05D0}-\\x{05EA}\\x{05EB}-\\x{05EE}\\x{05EF}-\\x{05F2}\\x{05F3}-\\x{05F4}\\x{05F5}-\\x{05FF}\\x{0600}-\\x{0605}\\x{0608}\\x{060B}\\x{060D}\\x{061B}\\x{061C}\\x{061D}\\x{061E}-\\x{061F}\\x{0620}-\\x{063F}\\x{0640}\\x{0641}-\\x{064A}\\x{0660}-\\x{0669}\\x{066B}-\\x{066C}\\x{066D}\\x{066E}-\\x{066F}\\x{0671}-\\x{06D3}\\x{06D4}\\x{06D5}\\x{06DD}\\x{06E5}-\\x{06E6}\\x{06EE}-\\x{06EF}\\x{06FA}-\\x{06FC}\\x{06FD}-\\x{06FE}\\x{06FF}\\x{0700}-\\x{070D}\\x{070E}\\x{070F}\\x{0710}\\x{0712}-\\x{072F}\\x{074B}-\\x{074C}\\x{074D}-\\x{07A5}\\x{07B1}\\x{07B2}-\\x{07BF}\\x{07C0}-\\x{07C9}\\x{07CA}-\\x{07EA}\\x{07F4}-\\x{07F5}\\x{07FA}\\x{07FB}-\\x{07FC}\\x{07FE}-\\x{07FF}\\x{0800}-\\x{0815}\\x{081A}\\x{0824}\\x{0828}\\x{082E}-\\x{082F}\\x{0830}-\\x{083E}\\x{083F}\\x{0840}-\\x{0858}\\x{085C}-\\x{085D}\\x{085E}\\x{085F}\\x{0860}-\\x{086A}\\x{086B}-\\x{086F}\\x{0870}-\\x{089F}\\x{08A0}-\\x{08B4}\\x{08B5}\\x{08B6}-\\x{08C7}\\x{08C8}-\\x{08D2}\\x{08E2}\\x{200F}\\x{FB1D}\\x{FB1F}-\\x{FB28}\\x{FB2A}-\\x{FB36}\\x{FB37}\\x{FB38}-\\x{FB3C}\\x{FB3D}\\x{FB3E}\\x{FB3F}\\x{FB40}-\\x{FB41}\\x{FB42}\\x{FB43}-\\x{FB44}\\x{FB45}\\x{FB46}-\\x{FB4F}\\x{FB50}-\\x{FBB1}\\x{FBB2}-\\x{FBC1}\\x{FBC2}-\\x{FBD2}\\x{FBD3}-\\x{FD3D}\\x{FD40}-\\x{FD4F}\\x{FD50}-\\x{FD8F}\\x{FD90}-\\x{FD91}\\x{FD92}-\\x{FDC7}\\x{FDC8}-\\x{FDCF}\\x{FDF0}-\\x{FDFB}\\x{FDFC}\\x{FDFE}-\\x{FDFF}\\x{FE70}-\\x{FE74}\\x{FE75}\\x{FE76}-\\x{FEFC}\\x{FEFD}-\\x{FEFE}\\x{10800}-\\x{10805}\\x{10806}-\\x{10807}\\x{10808}\\x{10809}\\x{1080A}-\\x{10835}\\x{10836}\\x{10837}-\\x{10838}\\x{10839}-\\x{1083B}\\x{1083C}\\x{1083D}-\\x{1083E}\\x{1083F}-\\x{10855}\\x{10856}\\x{10857}\\x{10858}-\\x{1085F}\\x{10860}-\\x{10876}\\x{10877}-\\x{10878}\\x{10879}-\\x{1087F}\\x{10880}-\\x{1089E}\\x{1089F}-\\x{108A6}\\x{108A7}-\\x{108AF}\\x{108B0}-\\x{108DF}\\x{108E0}-\\x{108F2}\\x{108F3}\\x{108F4}-\\x{108F5}\\x{108F6}-\\x{108FA}\\x{108FB}-\\x{108FF}\\x{10900}-\\x{10915}\\x{10916}-\\x{1091B}\\x{1091C}-\\x{1091E}\\x{10920}-\\x{10939}\\x{1093A}-\\x{1093E}\\x{1093F}\\x{10940}-\\x{1097F}\\x{10980}-\\x{109B7}\\x{109B8}-\\x{109BB}\\x{109BC}-\\x{109BD}\\x{109BE}-\\x{109BF}\\x{109C0}-\\x{109CF}\\x{109D0}-\\x{109D1}\\x{109D2}-\\x{109FF}\\x{10A00}\\x{10A04}\\x{10A07}-\\x{10A0B}\\x{10A10}-\\x{10A13}\\x{10A14}\\x{10A15}-\\x{10A17}\\x{10A18}\\x{10A19}-\\x{10A35}\\x{10A36}-\\x{10A37}\\x{10A3B}-\\x{10A3E}\\x{10A40}-\\x{10A48}\\x{10A49}-\\x{10A4F}\\x{10A50}-\\x{10A58}\\x{10A59}-\\x{10A5F}\\x{10A60}-\\x{10A7C}\\x{10A7D}-\\x{10A7E}\\x{10A7F}\\x{10A80}-\\x{10A9C}\\x{10A9D}-\\x{10A9F}\\x{10AA0}-\\x{10ABF}\\x{10AC0}-\\x{10AC7}\\x{10AC8}\\x{10AC9}-\\x{10AE4}\\x{10AE7}-\\x{10AEA}\\x{10AEB}-\\x{10AEF}\\x{10AF0}-\\x{10AF6}\\x{10AF7}-\\x{10AFF}\\x{10B00}-\\x{10B35}\\x{10B36}-\\x{10B38}\\x{10B40}-\\x{10B55}\\x{10B56}-\\x{10B57}\\x{10B58}-\\x{10B5F}\\x{10B60}-\\x{10B72}\\x{10B73}-\\x{10B77}\\x{10B78}-\\x{10B7F}\\x{10B80}-\\x{10B91}\\x{10B92}-\\x{10B98}\\x{10B99}-\\x{10B9C}\\x{10B9D}-\\x{10BA8}\\x{10BA9}-\\x{10BAF}\\x{10BB0}-\\x{10BFF}\\x{10C00}-\\x{10C48}\\x{10C49}-\\x{10C7F}\\x{10C80}-\\x{10CB2}\\x{10CB3}-\\x{10CBF}\\x{10CC0}-\\x{10CF2}\\x{10CF3}-\\x{10CF9}\\x{10CFA}-\\x{10CFF}\\x{10D00}-\\x{10D23}\\x{10D28}-\\x{10D2F}\\x{10D30}-\\x{10D39}\\x{10D3A}-\\x{10D3F}\\x{10D40}-\\x{10E5F}\\x{10E60}-\\x{10E7E}\\x{10E7F}\\x{10E80}-\\x{10EA9}\\x{10EAA}\\x{10EAD}\\x{10EAE}-\\x{10EAF}\\x{10EB0}-\\x{10EB1}\\x{10EB2}-\\x{10EFF}\\x{10F00}-\\x{10F1C}\\x{10F1D}-\\x{10F26}\\x{10F27}\\x{10F28}-\\x{10F2F}\\x{10F30}-\\x{10F45}\\x{10F51}-\\x{10F54}\\x{10F55}-\\x{10F59}\\x{10F5A}-\\x{10F6F}\\x{10F70}-\\x{10FAF}\\x{10FB0}-\\x{10FC4}\\x{10FC5}-\\x{10FCB}\\x{10FCC}-\\x{10FDF}\\x{10FE0}-\\x{10FF6}\\x{10FF7}-\\x{10FFF}\\x{1E800}-\\x{1E8C4}\\x{1E8C5}-\\x{1E8C6}\\x{1E8C7}-\\x{1E8CF}\\x{1E8D7}-\\x{1E8FF}\\x{1E900}-\\x{1E943}\\x{1E94B}\\x{1E94C}-\\x{1E94F}\\x{1E950}-\\x{1E959}\\x{1E95A}-\\x{1E95D}\\x{1E95E}-\\x{1E95F}\\x{1E960}-\\x{1EC6F}\\x{1EC70}\\x{1EC71}-\\x{1ECAB}\\x{1ECAC}\\x{1ECAD}-\\x{1ECAF}\\x{1ECB0}\\x{1ECB1}-\\x{1ECB4}\\x{1ECB5}-\\x{1ECBF}\\x{1ECC0}-\\x{1ECFF}\\x{1ED00}\\x{1ED01}-\\x{1ED2D}\\x{1ED2E}\\x{1ED2F}-\\x{1ED3D}\\x{1ED3E}-\\x{1ED4F}\\x{1ED50}-\\x{1EDFF}\\x{1EE00}-\\x{1EE03}\\x{1EE04}\\x{1EE05}-\\x{1EE1F}\\x{1EE20}\\x{1EE21}-\\x{1EE22}\\x{1EE23}\\x{1EE24}\\x{1EE25}-\\x{1EE26}\\x{1EE27}\\x{1EE28}\\x{1EE29}-\\x{1EE32}\\x{1EE33}\\x{1EE34}-\\x{1EE37}\\x{1EE38}\\x{1EE39}\\x{1EE3A}\\x{1EE3B}\\x{1EE3C}-\\x{1EE41}\\x{1EE42}\\x{1EE43}-\\x{1EE46}\\x{1EE47}\\x{1EE48}\\x{1EE49}\\x{1EE4A}\\x{1EE4B}\\x{1EE4C}\\x{1EE4D}-\\x{1EE4F}\\x{1EE50}\\x{1EE51}-\\x{1EE52}\\x{1EE53}\\x{1EE54}\\x{1EE55}-\\x{1EE56}\\x{1EE57}\\x{1EE58}\\x{1EE59}\\x{1EE5A}\\x{1EE5B}\\x{1EE5C}\\x{1EE5D}\\x{1EE5E}\\x{1EE5F}\\x{1EE60}\\x{1EE61}-\\x{1EE62}\\x{1EE63}\\x{1EE64}\\x{1EE65}-\\x{1EE66}\\x{1EE67}-\\x{1EE6A}\\x{1EE6B}\\x{1EE6C}-\\x{1EE72}\\x{1EE73}\\x{1EE74}-\\x{1EE77}\\x{1EE78}\\x{1EE79}-\\x{1EE7C}\\x{1EE7D}\\x{1EE7E}\\x{1EE7F}\\x{1EE80}-\\x{1EE89}\\x{1EE8A}\\x{1EE8B}-\\x{1EE9B}\\x{1EE9C}-\\x{1EEA0}\\x{1EEA1}-\\x{1EEA3}\\x{1EEA4}\\x{1EEA5}-\\x{1EEA9}\\x{1EEAA}\\x{1EEAB}-\\x{1EEBB}\\x{1EEBC}-\\x{1EEEF}\\x{1EEF2}-\\x{1EEFF}\\x{1EF00}-\\x{1EFFF}]/u';
12
+ const BIDI_STEP_1_LTR = '/^[^\\x{0000}-\\x{0008}\\x{0009}\\x{000A}\\x{000B}\\x{000C}\\x{000D}\\x{000E}-\\x{001B}\\x{001C}-\\x{001E}\\x{001F}\\x{0020}\\x{0021}-\\x{0022}\\x{0023}\\x{0024}\\x{0025}\\x{0026}-\\x{0027}\\x{0028}\\x{0029}\\x{002A}\\x{002B}\\x{002C}\\x{002D}\\x{002E}-\\x{002F}\\x{0030}-\\x{0039}\\x{003A}\\x{003B}\\x{003C}-\\x{003E}\\x{003F}-\\x{0040}\\x{005B}\\x{005C}\\x{005D}\\x{005E}\\x{005F}\\x{0060}\\x{007B}\\x{007C}\\x{007D}\\x{007E}\\x{007F}-\\x{0084}\\x{0085}\\x{0086}-\\x{009F}\\x{00A0}\\x{00A1}\\x{00A2}-\\x{00A5}\\x{00A6}\\x{00A7}\\x{00A8}\\x{00A9}\\x{00AB}\\x{00AC}\\x{00AD}\\x{00AE}\\x{00AF}\\x{00B0}\\x{00B1}\\x{00B2}-\\x{00B3}\\x{00B4}\\x{00B6}-\\x{00B7}\\x{00B8}\\x{00B9}\\x{00BB}\\x{00BC}-\\x{00BE}\\x{00BF}\\x{00D7}\\x{00F7}\\x{02B9}-\\x{02BA}\\x{02C2}-\\x{02C5}\\x{02C6}-\\x{02CF}\\x{02D2}-\\x{02DF}\\x{02E5}-\\x{02EB}\\x{02EC}\\x{02ED}\\x{02EF}-\\x{02FF}\\x{0300}-\\x{036F}\\x{0374}\\x{0375}\\x{037E}\\x{0384}-\\x{0385}\\x{0387}\\x{03F6}\\x{0483}-\\x{0487}\\x{0488}-\\x{0489}\\x{058A}\\x{058D}-\\x{058E}\\x{058F}\\x{0590}\\x{0591}-\\x{05BD}\\x{05BE}\\x{05BF}\\x{05C0}\\x{05C1}-\\x{05C2}\\x{05C3}\\x{05C4}-\\x{05C5}\\x{05C6}\\x{05C7}\\x{05C8}-\\x{05CF}\\x{05D0}-\\x{05EA}\\x{05EB}-\\x{05EE}\\x{05EF}-\\x{05F2}\\x{05F3}-\\x{05F4}\\x{05F5}-\\x{05FF}\\x{0600}-\\x{0605}\\x{0606}-\\x{0607}\\x{0608}\\x{0609}-\\x{060A}\\x{060B}\\x{060C}\\x{060D}\\x{060E}-\\x{060F}\\x{0610}-\\x{061A}\\x{061B}\\x{061C}\\x{061D}\\x{061E}-\\x{061F}\\x{0620}-\\x{063F}\\x{0640}\\x{0641}-\\x{064A}\\x{064B}-\\x{065F}\\x{0660}-\\x{0669}\\x{066A}\\x{066B}-\\x{066C}\\x{066D}\\x{066E}-\\x{066F}\\x{0670}\\x{0671}-\\x{06D3}\\x{06D4}\\x{06D5}\\x{06D6}-\\x{06DC}\\x{06DD}\\x{06DE}\\x{06DF}-\\x{06E4}\\x{06E5}-\\x{06E6}\\x{06E7}-\\x{06E8}\\x{06E9}\\x{06EA}-\\x{06ED}\\x{06EE}-\\x{06EF}\\x{06F0}-\\x{06F9}\\x{06FA}-\\x{06FC}\\x{06FD}-\\x{06FE}\\x{06FF}\\x{0700}-\\x{070D}\\x{070E}\\x{070F}\\x{0710}\\x{0711}\\x{0712}-\\x{072F}\\x{0730}-\\x{074A}\\x{074B}-\\x{074C}\\x{074D}-\\x{07A5}\\x{07A6}-\\x{07B0}\\x{07B1}\\x{07B2}-\\x{07BF}\\x{07C0}-\\x{07C9}\\x{07CA}-\\x{07EA}\\x{07EB}-\\x{07F3}\\x{07F4}-\\x{07F5}\\x{07F6}\\x{07F7}-\\x{07F9}\\x{07FA}\\x{07FB}-\\x{07FC}\\x{07FD}\\x{07FE}-\\x{07FF}\\x{0800}-\\x{0815}\\x{0816}-\\x{0819}\\x{081A}\\x{081B}-\\x{0823}\\x{0824}\\x{0825}-\\x{0827}\\x{0828}\\x{0829}-\\x{082D}\\x{082E}-\\x{082F}\\x{0830}-\\x{083E}\\x{083F}\\x{0840}-\\x{0858}\\x{0859}-\\x{085B}\\x{085C}-\\x{085D}\\x{085E}\\x{085F}\\x{0860}-\\x{086A}\\x{086B}-\\x{086F}\\x{0870}-\\x{089F}\\x{08A0}-\\x{08B4}\\x{08B5}\\x{08B6}-\\x{08C7}\\x{08C8}-\\x{08D2}\\x{08D3}-\\x{08E1}\\x{08E2}\\x{08E3}-\\x{0902}\\x{093A}\\x{093C}\\x{0941}-\\x{0948}\\x{094D}\\x{0951}-\\x{0957}\\x{0962}-\\x{0963}\\x{0981}\\x{09BC}\\x{09C1}-\\x{09C4}\\x{09CD}\\x{09E2}-\\x{09E3}\\x{09F2}-\\x{09F3}\\x{09FB}\\x{09FE}\\x{0A01}-\\x{0A02}\\x{0A3C}\\x{0A41}-\\x{0A42}\\x{0A47}-\\x{0A48}\\x{0A4B}-\\x{0A4D}\\x{0A51}\\x{0A70}-\\x{0A71}\\x{0A75}\\x{0A81}-\\x{0A82}\\x{0ABC}\\x{0AC1}-\\x{0AC5}\\x{0AC7}-\\x{0AC8}\\x{0ACD}\\x{0AE2}-\\x{0AE3}\\x{0AF1}\\x{0AFA}-\\x{0AFF}\\x{0B01}\\x{0B3C}\\x{0B3F}\\x{0B41}-\\x{0B44}\\x{0B4D}\\x{0B55}-\\x{0B56}\\x{0B62}-\\x{0B63}\\x{0B82}\\x{0BC0}\\x{0BCD}\\x{0BF3}-\\x{0BF8}\\x{0BF9}\\x{0BFA}\\x{0C00}\\x{0C04}\\x{0C3E}-\\x{0C40}\\x{0C46}-\\x{0C48}\\x{0C4A}-\\x{0C4D}\\x{0C55}-\\x{0C56}\\x{0C62}-\\x{0C63}\\x{0C78}-\\x{0C7E}\\x{0C81}\\x{0CBC}\\x{0CCC}-\\x{0CCD}\\x{0CE2}-\\x{0CE3}\\x{0D00}-\\x{0D01}\\x{0D3B}-\\x{0D3C}\\x{0D41}-\\x{0D44}\\x{0D4D}\\x{0D62}-\\x{0D63}\\x{0D81}\\x{0DCA}\\x{0DD2}-\\x{0DD4}\\x{0DD6}\\x{0E31}\\x{0E34}-\\x{0E3A}\\x{0E3F}\\x{0E47}-\\x{0E4E}\\x{0EB1}\\x{0EB4}-\\x{0EBC}\\x{0EC8}-\\x{0ECD}\\x{0F18}-\\x{0F19}\\x{0F35}\\x{0F37}\\x{0F39}\\x{0F3A}\\x{0F3B}\\x{0F3C}\\x{0F3D}\\x{0F71}-\\x{0F7E}\\x{0F80}-\\x{0F84}\\x{0F86}-\\x{0F87}\\x{0F8D}-\\x{0F97}\\x{0F99}-\\x{0FBC}\\x{0FC6}\\x{102D}-\\x{1030}\\x{1032}-\\x{1037}\\x{1039}-\\x{103A}\\x{103D}-\\x{103E}\\x{1058}-\\x{1059}\\x{105E}-\\x{1060}\\x{1071}-\\x{1074}\\x{1082}\\x{1085}-\\x{1086}\\x{108D}\\x{109D}\\x{135D}-\\x{135F}\\x{1390}-\\x{1399}\\x{1400}\\x{1680}\\x{169B}\\x{169C}\\x{1712}-\\x{1714}\\x{1732}-\\x{1734}\\x{1752}-\\x{1753}\\x{1772}-\\x{1773}\\x{17B4}-\\x{17B5}\\x{17B7}-\\x{17BD}\\x{17C6}\\x{17C9}-\\x{17D3}\\x{17DB}\\x{17DD}\\x{17F0}-\\x{17F9}\\x{1800}-\\x{1805}\\x{1806}\\x{1807}-\\x{180A}\\x{180B}-\\x{180D}\\x{180E}\\x{1885}-\\x{1886}\\x{18A9}\\x{1920}-\\x{1922}\\x{1927}-\\x{1928}\\x{1932}\\x{1939}-\\x{193B}\\x{1940}\\x{1944}-\\x{1945}\\x{19DE}-\\x{19FF}\\x{1A17}-\\x{1A18}\\x{1A1B}\\x{1A56}\\x{1A58}-\\x{1A5E}\\x{1A60}\\x{1A62}\\x{1A65}-\\x{1A6C}\\x{1A73}-\\x{1A7C}\\x{1A7F}\\x{1AB0}-\\x{1ABD}\\x{1ABE}\\x{1ABF}-\\x{1AC0}\\x{1B00}-\\x{1B03}\\x{1B34}\\x{1B36}-\\x{1B3A}\\x{1B3C}\\x{1B42}\\x{1B6B}-\\x{1B73}\\x{1B80}-\\x{1B81}\\x{1BA2}-\\x{1BA5}\\x{1BA8}-\\x{1BA9}\\x{1BAB}-\\x{1BAD}\\x{1BE6}\\x{1BE8}-\\x{1BE9}\\x{1BED}\\x{1BEF}-\\x{1BF1}\\x{1C2C}-\\x{1C33}\\x{1C36}-\\x{1C37}\\x{1CD0}-\\x{1CD2}\\x{1CD4}-\\x{1CE0}\\x{1CE2}-\\x{1CE8}\\x{1CED}\\x{1CF4}\\x{1CF8}-\\x{1CF9}\\x{1DC0}-\\x{1DF9}\\x{1DFB}-\\x{1DFF}\\x{1FBD}\\x{1FBF}-\\x{1FC1}\\x{1FCD}-\\x{1FCF}\\x{1FDD}-\\x{1FDF}\\x{1FED}-\\x{1FEF}\\x{1FFD}-\\x{1FFE}\\x{2000}-\\x{200A}\\x{200B}-\\x{200D}\\x{200F}\\x{2010}-\\x{2015}\\x{2016}-\\x{2017}\\x{2018}\\x{2019}\\x{201A}\\x{201B}-\\x{201C}\\x{201D}\\x{201E}\\x{201F}\\x{2020}-\\x{2027}\\x{2028}\\x{2029}\\x{202A}\\x{202B}\\x{202C}\\x{202D}\\x{202E}\\x{202F}\\x{2030}-\\x{2034}\\x{2035}-\\x{2038}\\x{2039}\\x{203A}\\x{203B}-\\x{203E}\\x{203F}-\\x{2040}\\x{2041}-\\x{2043}\\x{2044}\\x{2045}\\x{2046}\\x{2047}-\\x{2051}\\x{2052}\\x{2053}\\x{2054}\\x{2055}-\\x{205E}\\x{205F}\\x{2060}-\\x{2064}\\x{2065}\\x{2066}\\x{2067}\\x{2068}\\x{2069}\\x{206A}-\\x{206F}\\x{2070}\\x{2074}-\\x{2079}\\x{207A}-\\x{207B}\\x{207C}\\x{207D}\\x{207E}\\x{2080}-\\x{2089}\\x{208A}-\\x{208B}\\x{208C}\\x{208D}\\x{208E}\\x{20A0}-\\x{20BF}\\x{20C0}-\\x{20CF}\\x{20D0}-\\x{20DC}\\x{20DD}-\\x{20E0}\\x{20E1}\\x{20E2}-\\x{20E4}\\x{20E5}-\\x{20F0}\\x{2100}-\\x{2101}\\x{2103}-\\x{2106}\\x{2108}-\\x{2109}\\x{2114}\\x{2116}-\\x{2117}\\x{2118}\\x{211E}-\\x{2123}\\x{2125}\\x{2127}\\x{2129}\\x{212E}\\x{213A}-\\x{213B}\\x{2140}-\\x{2144}\\x{214A}\\x{214B}\\x{214C}-\\x{214D}\\x{2150}-\\x{215F}\\x{2189}\\x{218A}-\\x{218B}\\x{2190}-\\x{2194}\\x{2195}-\\x{2199}\\x{219A}-\\x{219B}\\x{219C}-\\x{219F}\\x{21A0}\\x{21A1}-\\x{21A2}\\x{21A3}\\x{21A4}-\\x{21A5}\\x{21A6}\\x{21A7}-\\x{21AD}\\x{21AE}\\x{21AF}-\\x{21CD}\\x{21CE}-\\x{21CF}\\x{21D0}-\\x{21D1}\\x{21D2}\\x{21D3}\\x{21D4}\\x{21D5}-\\x{21F3}\\x{21F4}-\\x{2211}\\x{2212}\\x{2213}\\x{2214}-\\x{22FF}\\x{2300}-\\x{2307}\\x{2308}\\x{2309}\\x{230A}\\x{230B}\\x{230C}-\\x{231F}\\x{2320}-\\x{2321}\\x{2322}-\\x{2328}\\x{2329}\\x{232A}\\x{232B}-\\x{2335}\\x{237B}\\x{237C}\\x{237D}-\\x{2394}\\x{2396}-\\x{239A}\\x{239B}-\\x{23B3}\\x{23B4}-\\x{23DB}\\x{23DC}-\\x{23E1}\\x{23E2}-\\x{2426}\\x{2440}-\\x{244A}\\x{2460}-\\x{2487}\\x{2488}-\\x{249B}\\x{24EA}-\\x{24FF}\\x{2500}-\\x{25B6}\\x{25B7}\\x{25B8}-\\x{25C0}\\x{25C1}\\x{25C2}-\\x{25F7}\\x{25F8}-\\x{25FF}\\x{2600}-\\x{266E}\\x{266F}\\x{2670}-\\x{26AB}\\x{26AD}-\\x{2767}\\x{2768}\\x{2769}\\x{276A}\\x{276B}\\x{276C}\\x{276D}\\x{276E}\\x{276F}\\x{2770}\\x{2771}\\x{2772}\\x{2773}\\x{2774}\\x{2775}\\x{2776}-\\x{2793}\\x{2794}-\\x{27BF}\\x{27C0}-\\x{27C4}\\x{27C5}\\x{27C6}\\x{27C7}-\\x{27E5}\\x{27E6}\\x{27E7}\\x{27E8}\\x{27E9}\\x{27EA}\\x{27EB}\\x{27EC}\\x{27ED}\\x{27EE}\\x{27EF}\\x{27F0}-\\x{27FF}\\x{2900}-\\x{2982}\\x{2983}\\x{2984}\\x{2985}\\x{2986}\\x{2987}\\x{2988}\\x{2989}\\x{298A}\\x{298B}\\x{298C}\\x{298D}\\x{298E}\\x{298F}\\x{2990}\\x{2991}\\x{2992}\\x{2993}\\x{2994}\\x{2995}\\x{2996}\\x{2997}\\x{2998}\\x{2999}-\\x{29D7}\\x{29D8}\\x{29D9}\\x{29DA}\\x{29DB}\\x{29DC}-\\x{29FB}\\x{29FC}\\x{29FD}\\x{29FE}-\\x{2AFF}\\x{2B00}-\\x{2B2F}\\x{2B30}-\\x{2B44}\\x{2B45}-\\x{2B46}\\x{2B47}-\\x{2B4C}\\x{2B4D}-\\x{2B73}\\x{2B76}-\\x{2B95}\\x{2B97}-\\x{2BFF}\\x{2CE5}-\\x{2CEA}\\x{2CEF}-\\x{2CF1}\\x{2CF9}-\\x{2CFC}\\x{2CFD}\\x{2CFE}-\\x{2CFF}\\x{2D7F}\\x{2DE0}-\\x{2DFF}\\x{2E00}-\\x{2E01}\\x{2E02}\\x{2E03}\\x{2E04}\\x{2E05}\\x{2E06}-\\x{2E08}\\x{2E09}\\x{2E0A}\\x{2E0B}\\x{2E0C}\\x{2E0D}\\x{2E0E}-\\x{2E16}\\x{2E17}\\x{2E18}-\\x{2E19}\\x{2E1A}\\x{2E1B}\\x{2E1C}\\x{2E1D}\\x{2E1E}-\\x{2E1F}\\x{2E20}\\x{2E21}\\x{2E22}\\x{2E23}\\x{2E24}\\x{2E25}\\x{2E26}\\x{2E27}\\x{2E28}\\x{2E29}\\x{2E2A}-\\x{2E2E}\\x{2E2F}\\x{2E30}-\\x{2E39}\\x{2E3A}-\\x{2E3B}\\x{2E3C}-\\x{2E3F}\\x{2E40}\\x{2E41}\\x{2E42}\\x{2E43}-\\x{2E4F}\\x{2E50}-\\x{2E51}\\x{2E52}\\x{2E80}-\\x{2E99}\\x{2E9B}-\\x{2EF3}\\x{2F00}-\\x{2FD5}\\x{2FF0}-\\x{2FFB}\\x{3000}\\x{3001}-\\x{3003}\\x{3004}\\x{3008}\\x{3009}\\x{300A}\\x{300B}\\x{300C}\\x{300D}\\x{300E}\\x{300F}\\x{3010}\\x{3011}\\x{3012}-\\x{3013}\\x{3014}\\x{3015}\\x{3016}\\x{3017}\\x{3018}\\x{3019}\\x{301A}\\x{301B}\\x{301C}\\x{301D}\\x{301E}-\\x{301F}\\x{3020}\\x{302A}-\\x{302D}\\x{3030}\\x{3036}-\\x{3037}\\x{303D}\\x{303E}-\\x{303F}\\x{3099}-\\x{309A}\\x{309B}-\\x{309C}\\x{30A0}\\x{30FB}\\x{31C0}-\\x{31E3}\\x{321D}-\\x{321E}\\x{3250}\\x{3251}-\\x{325F}\\x{327C}-\\x{327E}\\x{32B1}-\\x{32BF}\\x{32CC}-\\x{32CF}\\x{3377}-\\x{337A}\\x{33DE}-\\x{33DF}\\x{33FF}\\x{4DC0}-\\x{4DFF}\\x{A490}-\\x{A4C6}\\x{A60D}-\\x{A60F}\\x{A66F}\\x{A670}-\\x{A672}\\x{A673}\\x{A674}-\\x{A67D}\\x{A67E}\\x{A67F}\\x{A69E}-\\x{A69F}\\x{A6F0}-\\x{A6F1}\\x{A700}-\\x{A716}\\x{A717}-\\x{A71F}\\x{A720}-\\x{A721}\\x{A788}\\x{A802}\\x{A806}\\x{A80B}\\x{A825}-\\x{A826}\\x{A828}-\\x{A82B}\\x{A82C}\\x{A838}\\x{A839}\\x{A874}-\\x{A877}\\x{A8C4}-\\x{A8C5}\\x{A8E0}-\\x{A8F1}\\x{A8FF}\\x{A926}-\\x{A92D}\\x{A947}-\\x{A951}\\x{A980}-\\x{A982}\\x{A9B3}\\x{A9B6}-\\x{A9B9}\\x{A9BC}-\\x{A9BD}\\x{A9E5}\\x{AA29}-\\x{AA2E}\\x{AA31}-\\x{AA32}\\x{AA35}-\\x{AA36}\\x{AA43}\\x{AA4C}\\x{AA7C}\\x{AAB0}\\x{AAB2}-\\x{AAB4}\\x{AAB7}-\\x{AAB8}\\x{AABE}-\\x{AABF}\\x{AAC1}\\x{AAEC}-\\x{AAED}\\x{AAF6}\\x{AB6A}-\\x{AB6B}\\x{ABE5}\\x{ABE8}\\x{ABED}\\x{FB1D}\\x{FB1E}\\x{FB1F}-\\x{FB28}\\x{FB29}\\x{FB2A}-\\x{FB36}\\x{FB37}\\x{FB38}-\\x{FB3C}\\x{FB3D}\\x{FB3E}\\x{FB3F}\\x{FB40}-\\x{FB41}\\x{FB42}\\x{FB43}-\\x{FB44}\\x{FB45}\\x{FB46}-\\x{FB4F}\\x{FB50}-\\x{FBB1}\\x{FBB2}-\\x{FBC1}\\x{FBC2}-\\x{FBD2}\\x{FBD3}-\\x{FD3D}\\x{FD3E}\\x{FD3F}\\x{FD40}-\\x{FD4F}\\x{FD50}-\\x{FD8F}\\x{FD90}-\\x{FD91}\\x{FD92}-\\x{FDC7}\\x{FDC8}-\\x{FDCF}\\x{FDD0}-\\x{FDEF}\\x{FDF0}-\\x{FDFB}\\x{FDFC}\\x{FDFD}\\x{FDFE}-\\x{FDFF}\\x{FE00}-\\x{FE0F}\\x{FE10}-\\x{FE16}\\x{FE17}\\x{FE18}\\x{FE19}\\x{FE20}-\\x{FE2F}\\x{FE30}\\x{FE31}-\\x{FE32}\\x{FE33}-\\x{FE34}\\x{FE35}\\x{FE36}\\x{FE37}\\x{FE38}\\x{FE39}\\x{FE3A}\\x{FE3B}\\x{FE3C}\\x{FE3D}\\x{FE3E}\\x{FE3F}\\x{FE40}\\x{FE41}\\x{FE42}\\x{FE43}\\x{FE44}\\x{FE45}-\\x{FE46}\\x{FE47}\\x{FE48}\\x{FE49}-\\x{FE4C}\\x{FE4D}-\\x{FE4F}\\x{FE50}\\x{FE51}\\x{FE52}\\x{FE54}\\x{FE55}\\x{FE56}-\\x{FE57}\\x{FE58}\\x{FE59}\\x{FE5A}\\x{FE5B}\\x{FE5C}\\x{FE5D}\\x{FE5E}\\x{FE5F}\\x{FE60}-\\x{FE61}\\x{FE62}\\x{FE63}\\x{FE64}-\\x{FE66}\\x{FE68}\\x{FE69}\\x{FE6A}\\x{FE6B}\\x{FE70}-\\x{FE74}\\x{FE75}\\x{FE76}-\\x{FEFC}\\x{FEFD}-\\x{FEFE}\\x{FEFF}\\x{FF01}-\\x{FF02}\\x{FF03}\\x{FF04}\\x{FF05}\\x{FF06}-\\x{FF07}\\x{FF08}\\x{FF09}\\x{FF0A}\\x{FF0B}\\x{FF0C}\\x{FF0D}\\x{FF0E}-\\x{FF0F}\\x{FF10}-\\x{FF19}\\x{FF1A}\\x{FF1B}\\x{FF1C}-\\x{FF1E}\\x{FF1F}-\\x{FF20}\\x{FF3B}\\x{FF3C}\\x{FF3D}\\x{FF3E}\\x{FF3F}\\x{FF40}\\x{FF5B}\\x{FF5C}\\x{FF5D}\\x{FF5E}\\x{FF5F}\\x{FF60}\\x{FF61}\\x{FF62}\\x{FF63}\\x{FF64}-\\x{FF65}\\x{FFE0}-\\x{FFE1}\\x{FFE2}\\x{FFE3}\\x{FFE4}\\x{FFE5}-\\x{FFE6}\\x{FFE8}\\x{FFE9}-\\x{FFEC}\\x{FFED}-\\x{FFEE}\\x{FFF0}-\\x{FFF8}\\x{FFF9}-\\x{FFFB}\\x{FFFC}-\\x{FFFD}\\x{FFFE}-\\x{FFFF}\\x{10101}\\x{10140}-\\x{10174}\\x{10175}-\\x{10178}\\x{10179}-\\x{10189}\\x{1018A}-\\x{1018B}\\x{1018C}\\x{10190}-\\x{1019C}\\x{101A0}\\x{101FD}\\x{102E0}\\x{102E1}-\\x{102FB}\\x{10376}-\\x{1037A}\\x{10800}-\\x{10805}\\x{10806}-\\x{10807}\\x{10808}\\x{10809}\\x{1080A}-\\x{10835}\\x{10836}\\x{10837}-\\x{10838}\\x{10839}-\\x{1083B}\\x{1083C}\\x{1083D}-\\x{1083E}\\x{1083F}-\\x{10855}\\x{10856}\\x{10857}\\x{10858}-\\x{1085F}\\x{10860}-\\x{10876}\\x{10877}-\\x{10878}\\x{10879}-\\x{1087F}\\x{10880}-\\x{1089E}\\x{1089F}-\\x{108A6}\\x{108A7}-\\x{108AF}\\x{108B0}-\\x{108DF}\\x{108E0}-\\x{108F2}\\x{108F3}\\x{108F4}-\\x{108F5}\\x{108F6}-\\x{108FA}\\x{108FB}-\\x{108FF}\\x{10900}-\\x{10915}\\x{10916}-\\x{1091B}\\x{1091C}-\\x{1091E}\\x{1091F}\\x{10920}-\\x{10939}\\x{1093A}-\\x{1093E}\\x{1093F}\\x{10940}-\\x{1097F}\\x{10980}-\\x{109B7}\\x{109B8}-\\x{109BB}\\x{109BC}-\\x{109BD}\\x{109BE}-\\x{109BF}\\x{109C0}-\\x{109CF}\\x{109D0}-\\x{109D1}\\x{109D2}-\\x{109FF}\\x{10A00}\\x{10A01}-\\x{10A03}\\x{10A04}\\x{10A05}-\\x{10A06}\\x{10A07}-\\x{10A0B}\\x{10A0C}-\\x{10A0F}\\x{10A10}-\\x{10A13}\\x{10A14}\\x{10A15}-\\x{10A17}\\x{10A18}\\x{10A19}-\\x{10A35}\\x{10A36}-\\x{10A37}\\x{10A38}-\\x{10A3A}\\x{10A3B}-\\x{10A3E}\\x{10A3F}\\x{10A40}-\\x{10A48}\\x{10A49}-\\x{10A4F}\\x{10A50}-\\x{10A58}\\x{10A59}-\\x{10A5F}\\x{10A60}-\\x{10A7C}\\x{10A7D}-\\x{10A7E}\\x{10A7F}\\x{10A80}-\\x{10A9C}\\x{10A9D}-\\x{10A9F}\\x{10AA0}-\\x{10ABF}\\x{10AC0}-\\x{10AC7}\\x{10AC8}\\x{10AC9}-\\x{10AE4}\\x{10AE5}-\\x{10AE6}\\x{10AE7}-\\x{10AEA}\\x{10AEB}-\\x{10AEF}\\x{10AF0}-\\x{10AF6}\\x{10AF7}-\\x{10AFF}\\x{10B00}-\\x{10B35}\\x{10B36}-\\x{10B38}\\x{10B39}-\\x{10B3F}\\x{10B40}-\\x{10B55}\\x{10B56}-\\x{10B57}\\x{10B58}-\\x{10B5F}\\x{10B60}-\\x{10B72}\\x{10B73}-\\x{10B77}\\x{10B78}-\\x{10B7F}\\x{10B80}-\\x{10B91}\\x{10B92}-\\x{10B98}\\x{10B99}-\\x{10B9C}\\x{10B9D}-\\x{10BA8}\\x{10BA9}-\\x{10BAF}\\x{10BB0}-\\x{10BFF}\\x{10C00}-\\x{10C48}\\x{10C49}-\\x{10C7F}\\x{10C80}-\\x{10CB2}\\x{10CB3}-\\x{10CBF}\\x{10CC0}-\\x{10CF2}\\x{10CF3}-\\x{10CF9}\\x{10CFA}-\\x{10CFF}\\x{10D00}-\\x{10D23}\\x{10D24}-\\x{10D27}\\x{10D28}-\\x{10D2F}\\x{10D30}-\\x{10D39}\\x{10D3A}-\\x{10D3F}\\x{10D40}-\\x{10E5F}\\x{10E60}-\\x{10E7E}\\x{10E7F}\\x{10E80}-\\x{10EA9}\\x{10EAA}\\x{10EAB}-\\x{10EAC}\\x{10EAD}\\x{10EAE}-\\x{10EAF}\\x{10EB0}-\\x{10EB1}\\x{10EB2}-\\x{10EFF}\\x{10F00}-\\x{10F1C}\\x{10F1D}-\\x{10F26}\\x{10F27}\\x{10F28}-\\x{10F2F}\\x{10F30}-\\x{10F45}\\x{10F46}-\\x{10F50}\\x{10F51}-\\x{10F54}\\x{10F55}-\\x{10F59}\\x{10F5A}-\\x{10F6F}\\x{10F70}-\\x{10FAF}\\x{10FB0}-\\x{10FC4}\\x{10FC5}-\\x{10FCB}\\x{10FCC}-\\x{10FDF}\\x{10FE0}-\\x{10FF6}\\x{10FF7}-\\x{10FFF}\\x{11001}\\x{11038}-\\x{11046}\\x{11052}-\\x{11065}\\x{1107F}-\\x{11081}\\x{110B3}-\\x{110B6}\\x{110B9}-\\x{110BA}\\x{11100}-\\x{11102}\\x{11127}-\\x{1112B}\\x{1112D}-\\x{11134}\\x{11173}\\x{11180}-\\x{11181}\\x{111B6}-\\x{111BE}\\x{111C9}-\\x{111CC}\\x{111CF}\\x{1122F}-\\x{11231}\\x{11234}\\x{11236}-\\x{11237}\\x{1123E}\\x{112DF}\\x{112E3}-\\x{112EA}\\x{11300}-\\x{11301}\\x{1133B}-\\x{1133C}\\x{11340}\\x{11366}-\\x{1136C}\\x{11370}-\\x{11374}\\x{11438}-\\x{1143F}\\x{11442}-\\x{11444}\\x{11446}\\x{1145E}\\x{114B3}-\\x{114B8}\\x{114BA}\\x{114BF}-\\x{114C0}\\x{114C2}-\\x{114C3}\\x{115B2}-\\x{115B5}\\x{115BC}-\\x{115BD}\\x{115BF}-\\x{115C0}\\x{115DC}-\\x{115DD}\\x{11633}-\\x{1163A}\\x{1163D}\\x{1163F}-\\x{11640}\\x{11660}-\\x{1166C}\\x{116AB}\\x{116AD}\\x{116B0}-\\x{116B5}\\x{116B7}\\x{1171D}-\\x{1171F}\\x{11722}-\\x{11725}\\x{11727}-\\x{1172B}\\x{1182F}-\\x{11837}\\x{11839}-\\x{1183A}\\x{1193B}-\\x{1193C}\\x{1193E}\\x{11943}\\x{119D4}-\\x{119D7}\\x{119DA}-\\x{119DB}\\x{119E0}\\x{11A01}-\\x{11A06}\\x{11A09}-\\x{11A0A}\\x{11A33}-\\x{11A38}\\x{11A3B}-\\x{11A3E}\\x{11A47}\\x{11A51}-\\x{11A56}\\x{11A59}-\\x{11A5B}\\x{11A8A}-\\x{11A96}\\x{11A98}-\\x{11A99}\\x{11C30}-\\x{11C36}\\x{11C38}-\\x{11C3D}\\x{11C92}-\\x{11CA7}\\x{11CAA}-\\x{11CB0}\\x{11CB2}-\\x{11CB3}\\x{11CB5}-\\x{11CB6}\\x{11D31}-\\x{11D36}\\x{11D3A}\\x{11D3C}-\\x{11D3D}\\x{11D3F}-\\x{11D45}\\x{11D47}\\x{11D90}-\\x{11D91}\\x{11D95}\\x{11D97}\\x{11EF3}-\\x{11EF4}\\x{11FD5}-\\x{11FDC}\\x{11FDD}-\\x{11FE0}\\x{11FE1}-\\x{11FF1}\\x{16AF0}-\\x{16AF4}\\x{16B30}-\\x{16B36}\\x{16F4F}\\x{16F8F}-\\x{16F92}\\x{16FE2}\\x{16FE4}\\x{1BC9D}-\\x{1BC9E}\\x{1BCA0}-\\x{1BCA3}\\x{1D167}-\\x{1D169}\\x{1D173}-\\x{1D17A}\\x{1D17B}-\\x{1D182}\\x{1D185}-\\x{1D18B}\\x{1D1AA}-\\x{1D1AD}\\x{1D200}-\\x{1D241}\\x{1D242}-\\x{1D244}\\x{1D245}\\x{1D300}-\\x{1D356}\\x{1D6DB}\\x{1D715}\\x{1D74F}\\x{1D789}\\x{1D7C3}\\x{1D7CE}-\\x{1D7FF}\\x{1DA00}-\\x{1DA36}\\x{1DA3B}-\\x{1DA6C}\\x{1DA75}\\x{1DA84}\\x{1DA9B}-\\x{1DA9F}\\x{1DAA1}-\\x{1DAAF}\\x{1E000}-\\x{1E006}\\x{1E008}-\\x{1E018}\\x{1E01B}-\\x{1E021}\\x{1E023}-\\x{1E024}\\x{1E026}-\\x{1E02A}\\x{1E130}-\\x{1E136}\\x{1E2EC}-\\x{1E2EF}\\x{1E2FF}\\x{1E800}-\\x{1E8C4}\\x{1E8C5}-\\x{1E8C6}\\x{1E8C7}-\\x{1E8CF}\\x{1E8D0}-\\x{1E8D6}\\x{1E8D7}-\\x{1E8FF}\\x{1E900}-\\x{1E943}\\x{1E944}-\\x{1E94A}\\x{1E94B}\\x{1E94C}-\\x{1E94F}\\x{1E950}-\\x{1E959}\\x{1E95A}-\\x{1E95D}\\x{1E95E}-\\x{1E95F}\\x{1E960}-\\x{1EC6F}\\x{1EC70}\\x{1EC71}-\\x{1ECAB}\\x{1ECAC}\\x{1ECAD}-\\x{1ECAF}\\x{1ECB0}\\x{1ECB1}-\\x{1ECB4}\\x{1ECB5}-\\x{1ECBF}\\x{1ECC0}-\\x{1ECFF}\\x{1ED00}\\x{1ED01}-\\x{1ED2D}\\x{1ED2E}\\x{1ED2F}-\\x{1ED3D}\\x{1ED3E}-\\x{1ED4F}\\x{1ED50}-\\x{1EDFF}\\x{1EE00}-\\x{1EE03}\\x{1EE04}\\x{1EE05}-\\x{1EE1F}\\x{1EE20}\\x{1EE21}-\\x{1EE22}\\x{1EE23}\\x{1EE24}\\x{1EE25}-\\x{1EE26}\\x{1EE27}\\x{1EE28}\\x{1EE29}-\\x{1EE32}\\x{1EE33}\\x{1EE34}-\\x{1EE37}\\x{1EE38}\\x{1EE39}\\x{1EE3A}\\x{1EE3B}\\x{1EE3C}-\\x{1EE41}\\x{1EE42}\\x{1EE43}-\\x{1EE46}\\x{1EE47}\\x{1EE48}\\x{1EE49}\\x{1EE4A}\\x{1EE4B}\\x{1EE4C}\\x{1EE4D}-\\x{1EE4F}\\x{1EE50}\\x{1EE51}-\\x{1EE52}\\x{1EE53}\\x{1EE54}\\x{1EE55}-\\x{1EE56}\\x{1EE57}\\x{1EE58}\\x{1EE59}\\x{1EE5A}\\x{1EE5B}\\x{1EE5C}\\x{1EE5D}\\x{1EE5E}\\x{1EE5F}\\x{1EE60}\\x{1EE61}-\\x{1EE62}\\x{1EE63}\\x{1EE64}\\x{1EE65}-\\x{1EE66}\\x{1EE67}-\\x{1EE6A}\\x{1EE6B}\\x{1EE6C}-\\x{1EE72}\\x{1EE73}\\x{1EE74}-\\x{1EE77}\\x{1EE78}\\x{1EE79}-\\x{1EE7C}\\x{1EE7D}\\x{1EE7E}\\x{1EE7F}\\x{1EE80}-\\x{1EE89}\\x{1EE8A}\\x{1EE8B}-\\x{1EE9B}\\x{1EE9C}-\\x{1EEA0}\\x{1EEA1}-\\x{1EEA3}\\x{1EEA4}\\x{1EEA5}-\\x{1EEA9}\\x{1EEAA}\\x{1EEAB}-\\x{1EEBB}\\x{1EEBC}-\\x{1EEEF}\\x{1EEF0}-\\x{1EEF1}\\x{1EEF2}-\\x{1EEFF}\\x{1EF00}-\\x{1EFFF}\\x{1F000}-\\x{1F02B}\\x{1F030}-\\x{1F093}\\x{1F0A0}-\\x{1F0AE}\\x{1F0B1}-\\x{1F0BF}\\x{1F0C1}-\\x{1F0CF}\\x{1F0D1}-\\x{1F0F5}\\x{1F100}-\\x{1F10A}\\x{1F10B}-\\x{1F10C}\\x{1F10D}-\\x{1F10F}\\x{1F12F}\\x{1F16A}-\\x{1F16F}\\x{1F1AD}\\x{1F260}-\\x{1F265}\\x{1F300}-\\x{1F3FA}\\x{1F3FB}-\\x{1F3FF}\\x{1F400}-\\x{1F6D7}\\x{1F6E0}-\\x{1F6EC}\\x{1F6F0}-\\x{1F6FC}\\x{1F700}-\\x{1F773}\\x{1F780}-\\x{1F7D8}\\x{1F7E0}-\\x{1F7EB}\\x{1F800}-\\x{1F80B}\\x{1F810}-\\x{1F847}\\x{1F850}-\\x{1F859}\\x{1F860}-\\x{1F887}\\x{1F890}-\\x{1F8AD}\\x{1F8B0}-\\x{1F8B1}\\x{1F900}-\\x{1F978}\\x{1F97A}-\\x{1F9CB}\\x{1F9CD}-\\x{1FA53}\\x{1FA60}-\\x{1FA6D}\\x{1FA70}-\\x{1FA74}\\x{1FA78}-\\x{1FA7A}\\x{1FA80}-\\x{1FA86}\\x{1FA90}-\\x{1FAA8}\\x{1FAB0}-\\x{1FAB6}\\x{1FAC0}-\\x{1FAC2}\\x{1FAD0}-\\x{1FAD6}\\x{1FB00}-\\x{1FB92}\\x{1FB94}-\\x{1FBCA}\\x{1FBF0}-\\x{1FBF9}\\x{1FFFE}-\\x{1FFFF}\\x{2FFFE}-\\x{2FFFF}\\x{3FFFE}-\\x{3FFFF}\\x{4FFFE}-\\x{4FFFF}\\x{5FFFE}-\\x{5FFFF}\\x{6FFFE}-\\x{6FFFF}\\x{7FFFE}-\\x{7FFFF}\\x{8FFFE}-\\x{8FFFF}\\x{9FFFE}-\\x{9FFFF}\\x{AFFFE}-\\x{AFFFF}\\x{BFFFE}-\\x{BFFFF}\\x{CFFFE}-\\x{CFFFF}\\x{DFFFE}-\\x{E0000}\\x{E0001}\\x{E0002}-\\x{E001F}\\x{E0020}-\\x{E007F}\\x{E0080}-\\x{E00FF}\\x{E0100}-\\x{E01EF}\\x{E01F0}-\\x{E0FFF}\\x{EFFFE}-\\x{EFFFF}\\x{FFFFE}-\\x{FFFFF}\\x{10FFFE}-\\x{10FFFF}]/u';
13
+ const BIDI_STEP_1_RTL = '/^[\\x{0590}\\x{05BE}\\x{05C0}\\x{05C3}\\x{05C6}\\x{05C8}-\\x{05CF}\\x{05D0}-\\x{05EA}\\x{05EB}-\\x{05EE}\\x{05EF}-\\x{05F2}\\x{05F3}-\\x{05F4}\\x{05F5}-\\x{05FF}\\x{0608}\\x{060B}\\x{060D}\\x{061B}\\x{061C}\\x{061D}\\x{061E}-\\x{061F}\\x{0620}-\\x{063F}\\x{0640}\\x{0641}-\\x{064A}\\x{066D}\\x{066E}-\\x{066F}\\x{0671}-\\x{06D3}\\x{06D4}\\x{06D5}\\x{06E5}-\\x{06E6}\\x{06EE}-\\x{06EF}\\x{06FA}-\\x{06FC}\\x{06FD}-\\x{06FE}\\x{06FF}\\x{0700}-\\x{070D}\\x{070E}\\x{070F}\\x{0710}\\x{0712}-\\x{072F}\\x{074B}-\\x{074C}\\x{074D}-\\x{07A5}\\x{07B1}\\x{07B2}-\\x{07BF}\\x{07C0}-\\x{07C9}\\x{07CA}-\\x{07EA}\\x{07F4}-\\x{07F5}\\x{07FA}\\x{07FB}-\\x{07FC}\\x{07FE}-\\x{07FF}\\x{0800}-\\x{0815}\\x{081A}\\x{0824}\\x{0828}\\x{082E}-\\x{082F}\\x{0830}-\\x{083E}\\x{083F}\\x{0840}-\\x{0858}\\x{085C}-\\x{085D}\\x{085E}\\x{085F}\\x{0860}-\\x{086A}\\x{086B}-\\x{086F}\\x{0870}-\\x{089F}\\x{08A0}-\\x{08B4}\\x{08B5}\\x{08B6}-\\x{08C7}\\x{08C8}-\\x{08D2}\\x{200F}\\x{FB1D}\\x{FB1F}-\\x{FB28}\\x{FB2A}-\\x{FB36}\\x{FB37}\\x{FB38}-\\x{FB3C}\\x{FB3D}\\x{FB3E}\\x{FB3F}\\x{FB40}-\\x{FB41}\\x{FB42}\\x{FB43}-\\x{FB44}\\x{FB45}\\x{FB46}-\\x{FB4F}\\x{FB50}-\\x{FBB1}\\x{FBB2}-\\x{FBC1}\\x{FBC2}-\\x{FBD2}\\x{FBD3}-\\x{FD3D}\\x{FD40}-\\x{FD4F}\\x{FD50}-\\x{FD8F}\\x{FD90}-\\x{FD91}\\x{FD92}-\\x{FDC7}\\x{FDC8}-\\x{FDCF}\\x{FDF0}-\\x{FDFB}\\x{FDFC}\\x{FDFE}-\\x{FDFF}\\x{FE70}-\\x{FE74}\\x{FE75}\\x{FE76}-\\x{FEFC}\\x{FEFD}-\\x{FEFE}\\x{10800}-\\x{10805}\\x{10806}-\\x{10807}\\x{10808}\\x{10809}\\x{1080A}-\\x{10835}\\x{10836}\\x{10837}-\\x{10838}\\x{10839}-\\x{1083B}\\x{1083C}\\x{1083D}-\\x{1083E}\\x{1083F}-\\x{10855}\\x{10856}\\x{10857}\\x{10858}-\\x{1085F}\\x{10860}-\\x{10876}\\x{10877}-\\x{10878}\\x{10879}-\\x{1087F}\\x{10880}-\\x{1089E}\\x{1089F}-\\x{108A6}\\x{108A7}-\\x{108AF}\\x{108B0}-\\x{108DF}\\x{108E0}-\\x{108F2}\\x{108F3}\\x{108F4}-\\x{108F5}\\x{108F6}-\\x{108FA}\\x{108FB}-\\x{108FF}\\x{10900}-\\x{10915}\\x{10916}-\\x{1091B}\\x{1091C}-\\x{1091E}\\x{10920}-\\x{10939}\\x{1093A}-\\x{1093E}\\x{1093F}\\x{10940}-\\x{1097F}\\x{10980}-\\x{109B7}\\x{109B8}-\\x{109BB}\\x{109BC}-\\x{109BD}\\x{109BE}-\\x{109BF}\\x{109C0}-\\x{109CF}\\x{109D0}-\\x{109D1}\\x{109D2}-\\x{109FF}\\x{10A00}\\x{10A04}\\x{10A07}-\\x{10A0B}\\x{10A10}-\\x{10A13}\\x{10A14}\\x{10A15}-\\x{10A17}\\x{10A18}\\x{10A19}-\\x{10A35}\\x{10A36}-\\x{10A37}\\x{10A3B}-\\x{10A3E}\\x{10A40}-\\x{10A48}\\x{10A49}-\\x{10A4F}\\x{10A50}-\\x{10A58}\\x{10A59}-\\x{10A5F}\\x{10A60}-\\x{10A7C}\\x{10A7D}-\\x{10A7E}\\x{10A7F}\\x{10A80}-\\x{10A9C}\\x{10A9D}-\\x{10A9F}\\x{10AA0}-\\x{10ABF}\\x{10AC0}-\\x{10AC7}\\x{10AC8}\\x{10AC9}-\\x{10AE4}\\x{10AE7}-\\x{10AEA}\\x{10AEB}-\\x{10AEF}\\x{10AF0}-\\x{10AF6}\\x{10AF7}-\\x{10AFF}\\x{10B00}-\\x{10B35}\\x{10B36}-\\x{10B38}\\x{10B40}-\\x{10B55}\\x{10B56}-\\x{10B57}\\x{10B58}-\\x{10B5F}\\x{10B60}-\\x{10B72}\\x{10B73}-\\x{10B77}\\x{10B78}-\\x{10B7F}\\x{10B80}-\\x{10B91}\\x{10B92}-\\x{10B98}\\x{10B99}-\\x{10B9C}\\x{10B9D}-\\x{10BA8}\\x{10BA9}-\\x{10BAF}\\x{10BB0}-\\x{10BFF}\\x{10C00}-\\x{10C48}\\x{10C49}-\\x{10C7F}\\x{10C80}-\\x{10CB2}\\x{10CB3}-\\x{10CBF}\\x{10CC0}-\\x{10CF2}\\x{10CF3}-\\x{10CF9}\\x{10CFA}-\\x{10CFF}\\x{10D00}-\\x{10D23}\\x{10D28}-\\x{10D2F}\\x{10D3A}-\\x{10D3F}\\x{10D40}-\\x{10E5F}\\x{10E7F}\\x{10E80}-\\x{10EA9}\\x{10EAA}\\x{10EAD}\\x{10EAE}-\\x{10EAF}\\x{10EB0}-\\x{10EB1}\\x{10EB2}-\\x{10EFF}\\x{10F00}-\\x{10F1C}\\x{10F1D}-\\x{10F26}\\x{10F27}\\x{10F28}-\\x{10F2F}\\x{10F30}-\\x{10F45}\\x{10F51}-\\x{10F54}\\x{10F55}-\\x{10F59}\\x{10F5A}-\\x{10F6F}\\x{10F70}-\\x{10FAF}\\x{10FB0}-\\x{10FC4}\\x{10FC5}-\\x{10FCB}\\x{10FCC}-\\x{10FDF}\\x{10FE0}-\\x{10FF6}\\x{10FF7}-\\x{10FFF}\\x{1E800}-\\x{1E8C4}\\x{1E8C5}-\\x{1E8C6}\\x{1E8C7}-\\x{1E8CF}\\x{1E8D7}-\\x{1E8FF}\\x{1E900}-\\x{1E943}\\x{1E94B}\\x{1E94C}-\\x{1E94F}\\x{1E950}-\\x{1E959}\\x{1E95A}-\\x{1E95D}\\x{1E95E}-\\x{1E95F}\\x{1E960}-\\x{1EC6F}\\x{1EC70}\\x{1EC71}-\\x{1ECAB}\\x{1ECAC}\\x{1ECAD}-\\x{1ECAF}\\x{1ECB0}\\x{1ECB1}-\\x{1ECB4}\\x{1ECB5}-\\x{1ECBF}\\x{1ECC0}-\\x{1ECFF}\\x{1ED00}\\x{1ED01}-\\x{1ED2D}\\x{1ED2E}\\x{1ED2F}-\\x{1ED3D}\\x{1ED3E}-\\x{1ED4F}\\x{1ED50}-\\x{1EDFF}\\x{1EE00}-\\x{1EE03}\\x{1EE04}\\x{1EE05}-\\x{1EE1F}\\x{1EE20}\\x{1EE21}-\\x{1EE22}\\x{1EE23}\\x{1EE24}\\x{1EE25}-\\x{1EE26}\\x{1EE27}\\x{1EE28}\\x{1EE29}-\\x{1EE32}\\x{1EE33}\\x{1EE34}-\\x{1EE37}\\x{1EE38}\\x{1EE39}\\x{1EE3A}\\x{1EE3B}\\x{1EE3C}-\\x{1EE41}\\x{1EE42}\\x{1EE43}-\\x{1EE46}\\x{1EE47}\\x{1EE48}\\x{1EE49}\\x{1EE4A}\\x{1EE4B}\\x{1EE4C}\\x{1EE4D}-\\x{1EE4F}\\x{1EE50}\\x{1EE51}-\\x{1EE52}\\x{1EE53}\\x{1EE54}\\x{1EE55}-\\x{1EE56}\\x{1EE57}\\x{1EE58}\\x{1EE59}\\x{1EE5A}\\x{1EE5B}\\x{1EE5C}\\x{1EE5D}\\x{1EE5E}\\x{1EE5F}\\x{1EE60}\\x{1EE61}-\\x{1EE62}\\x{1EE63}\\x{1EE64}\\x{1EE65}-\\x{1EE66}\\x{1EE67}-\\x{1EE6A}\\x{1EE6B}\\x{1EE6C}-\\x{1EE72}\\x{1EE73}\\x{1EE74}-\\x{1EE77}\\x{1EE78}\\x{1EE79}-\\x{1EE7C}\\x{1EE7D}\\x{1EE7E}\\x{1EE7F}\\x{1EE80}-\\x{1EE89}\\x{1EE8A}\\x{1EE8B}-\\x{1EE9B}\\x{1EE9C}-\\x{1EEA0}\\x{1EEA1}-\\x{1EEA3}\\x{1EEA4}\\x{1EEA5}-\\x{1EEA9}\\x{1EEAA}\\x{1EEAB}-\\x{1EEBB}\\x{1EEBC}-\\x{1EEEF}\\x{1EEF2}-\\x{1EEFF}\\x{1EF00}-\\x{1EFFF}]/u';
14
+ const BIDI_STEP_2 = '/[^\\x{0000}-\\x{0008}\\x{000E}-\\x{001B}\\x{0021}-\\x{0022}\\x{0023}\\x{0024}\\x{0025}\\x{0026}-\\x{0027}\\x{0028}\\x{0029}\\x{002A}\\x{002B}\\x{002C}\\x{002D}\\x{002E}-\\x{002F}\\x{0030}-\\x{0039}\\x{003A}\\x{003B}\\x{003C}-\\x{003E}\\x{003F}-\\x{0040}\\x{005B}\\x{005C}\\x{005D}\\x{005E}\\x{005F}\\x{0060}\\x{007B}\\x{007C}\\x{007D}\\x{007E}\\x{007F}-\\x{0084}\\x{0086}-\\x{009F}\\x{00A0}\\x{00A1}\\x{00A2}-\\x{00A5}\\x{00A6}\\x{00A7}\\x{00A8}\\x{00A9}\\x{00AB}\\x{00AC}\\x{00AD}\\x{00AE}\\x{00AF}\\x{00B0}\\x{00B1}\\x{00B2}-\\x{00B3}\\x{00B4}\\x{00B6}-\\x{00B7}\\x{00B8}\\x{00B9}\\x{00BB}\\x{00BC}-\\x{00BE}\\x{00BF}\\x{00D7}\\x{00F7}\\x{02B9}-\\x{02BA}\\x{02C2}-\\x{02C5}\\x{02C6}-\\x{02CF}\\x{02D2}-\\x{02DF}\\x{02E5}-\\x{02EB}\\x{02EC}\\x{02ED}\\x{02EF}-\\x{02FF}\\x{0300}-\\x{036F}\\x{0374}\\x{0375}\\x{037E}\\x{0384}-\\x{0385}\\x{0387}\\x{03F6}\\x{0483}-\\x{0487}\\x{0488}-\\x{0489}\\x{058A}\\x{058D}-\\x{058E}\\x{058F}\\x{0590}\\x{0591}-\\x{05BD}\\x{05BE}\\x{05BF}\\x{05C0}\\x{05C1}-\\x{05C2}\\x{05C3}\\x{05C4}-\\x{05C5}\\x{05C6}\\x{05C7}\\x{05C8}-\\x{05CF}\\x{05D0}-\\x{05EA}\\x{05EB}-\\x{05EE}\\x{05EF}-\\x{05F2}\\x{05F3}-\\x{05F4}\\x{05F5}-\\x{05FF}\\x{0600}-\\x{0605}\\x{0606}-\\x{0607}\\x{0608}\\x{0609}-\\x{060A}\\x{060B}\\x{060C}\\x{060D}\\x{060E}-\\x{060F}\\x{0610}-\\x{061A}\\x{061B}\\x{061C}\\x{061D}\\x{061E}-\\x{061F}\\x{0620}-\\x{063F}\\x{0640}\\x{0641}-\\x{064A}\\x{064B}-\\x{065F}\\x{0660}-\\x{0669}\\x{066A}\\x{066B}-\\x{066C}\\x{066D}\\x{066E}-\\x{066F}\\x{0670}\\x{0671}-\\x{06D3}\\x{06D4}\\x{06D5}\\x{06D6}-\\x{06DC}\\x{06DD}\\x{06DE}\\x{06DF}-\\x{06E4}\\x{06E5}-\\x{06E6}\\x{06E7}-\\x{06E8}\\x{06E9}\\x{06EA}-\\x{06ED}\\x{06EE}-\\x{06EF}\\x{06F0}-\\x{06F9}\\x{06FA}-\\x{06FC}\\x{06FD}-\\x{06FE}\\x{06FF}\\x{0700}-\\x{070D}\\x{070E}\\x{070F}\\x{0710}\\x{0711}\\x{0712}-\\x{072F}\\x{0730}-\\x{074A}\\x{074B}-\\x{074C}\\x{074D}-\\x{07A5}\\x{07A6}-\\x{07B0}\\x{07B1}\\x{07B2}-\\x{07BF}\\x{07C0}-\\x{07C9}\\x{07CA}-\\x{07EA}\\x{07EB}-\\x{07F3}\\x{07F4}-\\x{07F5}\\x{07F6}\\x{07F7}-\\x{07F9}\\x{07FA}\\x{07FB}-\\x{07FC}\\x{07FD}\\x{07FE}-\\x{07FF}\\x{0800}-\\x{0815}\\x{0816}-\\x{0819}\\x{081A}\\x{081B}-\\x{0823}\\x{0824}\\x{0825}-\\x{0827}\\x{0828}\\x{0829}-\\x{082D}\\x{082E}-\\x{082F}\\x{0830}-\\x{083E}\\x{083F}\\x{0840}-\\x{0858}\\x{0859}-\\x{085B}\\x{085C}-\\x{085D}\\x{085E}\\x{085F}\\x{0860}-\\x{086A}\\x{086B}-\\x{086F}\\x{0870}-\\x{089F}\\x{08A0}-\\x{08B4}\\x{08B5}\\x{08B6}-\\x{08C7}\\x{08C8}-\\x{08D2}\\x{08D3}-\\x{08E1}\\x{08E2}\\x{08E3}-\\x{0902}\\x{093A}\\x{093C}\\x{0941}-\\x{0948}\\x{094D}\\x{0951}-\\x{0957}\\x{0962}-\\x{0963}\\x{0981}\\x{09BC}\\x{09C1}-\\x{09C4}\\x{09CD}\\x{09E2}-\\x{09E3}\\x{09F2}-\\x{09F3}\\x{09FB}\\x{09FE}\\x{0A01}-\\x{0A02}\\x{0A3C}\\x{0A41}-\\x{0A42}\\x{0A47}-\\x{0A48}\\x{0A4B}-\\x{0A4D}\\x{0A51}\\x{0A70}-\\x{0A71}\\x{0A75}\\x{0A81}-\\x{0A82}\\x{0ABC}\\x{0AC1}-\\x{0AC5}\\x{0AC7}-\\x{0AC8}\\x{0ACD}\\x{0AE2}-\\x{0AE3}\\x{0AF1}\\x{0AFA}-\\x{0AFF}\\x{0B01}\\x{0B3C}\\x{0B3F}\\x{0B41}-\\x{0B44}\\x{0B4D}\\x{0B55}-\\x{0B56}\\x{0B62}-\\x{0B63}\\x{0B82}\\x{0BC0}\\x{0BCD}\\x{0BF3}-\\x{0BF8}\\x{0BF9}\\x{0BFA}\\x{0C00}\\x{0C04}\\x{0C3E}-\\x{0C40}\\x{0C46}-\\x{0C48}\\x{0C4A}-\\x{0C4D}\\x{0C55}-\\x{0C56}\\x{0C62}-\\x{0C63}\\x{0C78}-\\x{0C7E}\\x{0C81}\\x{0CBC}\\x{0CCC}-\\x{0CCD}\\x{0CE2}-\\x{0CE3}\\x{0D00}-\\x{0D01}\\x{0D3B}-\\x{0D3C}\\x{0D41}-\\x{0D44}\\x{0D4D}\\x{0D62}-\\x{0D63}\\x{0D81}\\x{0DCA}\\x{0DD2}-\\x{0DD4}\\x{0DD6}\\x{0E31}\\x{0E34}-\\x{0E3A}\\x{0E3F}\\x{0E47}-\\x{0E4E}\\x{0EB1}\\x{0EB4}-\\x{0EBC}\\x{0EC8}-\\x{0ECD}\\x{0F18}-\\x{0F19}\\x{0F35}\\x{0F37}\\x{0F39}\\x{0F3A}\\x{0F3B}\\x{0F3C}\\x{0F3D}\\x{0F71}-\\x{0F7E}\\x{0F80}-\\x{0F84}\\x{0F86}-\\x{0F87}\\x{0F8D}-\\x{0F97}\\x{0F99}-\\x{0FBC}\\x{0FC6}\\x{102D}-\\x{1030}\\x{1032}-\\x{1037}\\x{1039}-\\x{103A}\\x{103D}-\\x{103E}\\x{1058}-\\x{1059}\\x{105E}-\\x{1060}\\x{1071}-\\x{1074}\\x{1082}\\x{1085}-\\x{1086}\\x{108D}\\x{109D}\\x{135D}-\\x{135F}\\x{1390}-\\x{1399}\\x{1400}\\x{169B}\\x{169C}\\x{1712}-\\x{1714}\\x{1732}-\\x{1734}\\x{1752}-\\x{1753}\\x{1772}-\\x{1773}\\x{17B4}-\\x{17B5}\\x{17B7}-\\x{17BD}\\x{17C6}\\x{17C9}-\\x{17D3}\\x{17DB}\\x{17DD}\\x{17F0}-\\x{17F9}\\x{1800}-\\x{1805}\\x{1806}\\x{1807}-\\x{180A}\\x{180B}-\\x{180D}\\x{180E}\\x{1885}-\\x{1886}\\x{18A9}\\x{1920}-\\x{1922}\\x{1927}-\\x{1928}\\x{1932}\\x{1939}-\\x{193B}\\x{1940}\\x{1944}-\\x{1945}\\x{19DE}-\\x{19FF}\\x{1A17}-\\x{1A18}\\x{1A1B}\\x{1A56}\\x{1A58}-\\x{1A5E}\\x{1A60}\\x{1A62}\\x{1A65}-\\x{1A6C}\\x{1A73}-\\x{1A7C}\\x{1A7F}\\x{1AB0}-\\x{1ABD}\\x{1ABE}\\x{1ABF}-\\x{1AC0}\\x{1B00}-\\x{1B03}\\x{1B34}\\x{1B36}-\\x{1B3A}\\x{1B3C}\\x{1B42}\\x{1B6B}-\\x{1B73}\\x{1B80}-\\x{1B81}\\x{1BA2}-\\x{1BA5}\\x{1BA8}-\\x{1BA9}\\x{1BAB}-\\x{1BAD}\\x{1BE6}\\x{1BE8}-\\x{1BE9}\\x{1BED}\\x{1BEF}-\\x{1BF1}\\x{1C2C}-\\x{1C33}\\x{1C36}-\\x{1C37}\\x{1CD0}-\\x{1CD2}\\x{1CD4}-\\x{1CE0}\\x{1CE2}-\\x{1CE8}\\x{1CED}\\x{1CF4}\\x{1CF8}-\\x{1CF9}\\x{1DC0}-\\x{1DF9}\\x{1DFB}-\\x{1DFF}\\x{1FBD}\\x{1FBF}-\\x{1FC1}\\x{1FCD}-\\x{1FCF}\\x{1FDD}-\\x{1FDF}\\x{1FED}-\\x{1FEF}\\x{1FFD}-\\x{1FFE}\\x{200B}-\\x{200D}\\x{200F}\\x{2010}-\\x{2015}\\x{2016}-\\x{2017}\\x{2018}\\x{2019}\\x{201A}\\x{201B}-\\x{201C}\\x{201D}\\x{201E}\\x{201F}\\x{2020}-\\x{2027}\\x{202F}\\x{2030}-\\x{2034}\\x{2035}-\\x{2038}\\x{2039}\\x{203A}\\x{203B}-\\x{203E}\\x{203F}-\\x{2040}\\x{2041}-\\x{2043}\\x{2044}\\x{2045}\\x{2046}\\x{2047}-\\x{2051}\\x{2052}\\x{2053}\\x{2054}\\x{2055}-\\x{205E}\\x{2060}-\\x{2064}\\x{2065}\\x{206A}-\\x{206F}\\x{2070}\\x{2074}-\\x{2079}\\x{207A}-\\x{207B}\\x{207C}\\x{207D}\\x{207E}\\x{2080}-\\x{2089}\\x{208A}-\\x{208B}\\x{208C}\\x{208D}\\x{208E}\\x{20A0}-\\x{20BF}\\x{20C0}-\\x{20CF}\\x{20D0}-\\x{20DC}\\x{20DD}-\\x{20E0}\\x{20E1}\\x{20E2}-\\x{20E4}\\x{20E5}-\\x{20F0}\\x{2100}-\\x{2101}\\x{2103}-\\x{2106}\\x{2108}-\\x{2109}\\x{2114}\\x{2116}-\\x{2117}\\x{2118}\\x{211E}-\\x{2123}\\x{2125}\\x{2127}\\x{2129}\\x{212E}\\x{213A}-\\x{213B}\\x{2140}-\\x{2144}\\x{214A}\\x{214B}\\x{214C}-\\x{214D}\\x{2150}-\\x{215F}\\x{2189}\\x{218A}-\\x{218B}\\x{2190}-\\x{2194}\\x{2195}-\\x{2199}\\x{219A}-\\x{219B}\\x{219C}-\\x{219F}\\x{21A0}\\x{21A1}-\\x{21A2}\\x{21A3}\\x{21A4}-\\x{21A5}\\x{21A6}\\x{21A7}-\\x{21AD}\\x{21AE}\\x{21AF}-\\x{21CD}\\x{21CE}-\\x{21CF}\\x{21D0}-\\x{21D1}\\x{21D2}\\x{21D3}\\x{21D4}\\x{21D5}-\\x{21F3}\\x{21F4}-\\x{2211}\\x{2212}\\x{2213}\\x{2214}-\\x{22FF}\\x{2300}-\\x{2307}\\x{2308}\\x{2309}\\x{230A}\\x{230B}\\x{230C}-\\x{231F}\\x{2320}-\\x{2321}\\x{2322}-\\x{2328}\\x{2329}\\x{232A}\\x{232B}-\\x{2335}\\x{237B}\\x{237C}\\x{237D}-\\x{2394}\\x{2396}-\\x{239A}\\x{239B}-\\x{23B3}\\x{23B4}-\\x{23DB}\\x{23DC}-\\x{23E1}\\x{23E2}-\\x{2426}\\x{2440}-\\x{244A}\\x{2460}-\\x{2487}\\x{2488}-\\x{249B}\\x{24EA}-\\x{24FF}\\x{2500}-\\x{25B6}\\x{25B7}\\x{25B8}-\\x{25C0}\\x{25C1}\\x{25C2}-\\x{25F7}\\x{25F8}-\\x{25FF}\\x{2600}-\\x{266E}\\x{266F}\\x{2670}-\\x{26AB}\\x{26AD}-\\x{2767}\\x{2768}\\x{2769}\\x{276A}\\x{276B}\\x{276C}\\x{276D}\\x{276E}\\x{276F}\\x{2770}\\x{2771}\\x{2772}\\x{2773}\\x{2774}\\x{2775}\\x{2776}-\\x{2793}\\x{2794}-\\x{27BF}\\x{27C0}-\\x{27C4}\\x{27C5}\\x{27C6}\\x{27C7}-\\x{27E5}\\x{27E6}\\x{27E7}\\x{27E8}\\x{27E9}\\x{27EA}\\x{27EB}\\x{27EC}\\x{27ED}\\x{27EE}\\x{27EF}\\x{27F0}-\\x{27FF}\\x{2900}-\\x{2982}\\x{2983}\\x{2984}\\x{2985}\\x{2986}\\x{2987}\\x{2988}\\x{2989}\\x{298A}\\x{298B}\\x{298C}\\x{298D}\\x{298E}\\x{298F}\\x{2990}\\x{2991}\\x{2992}\\x{2993}\\x{2994}\\x{2995}\\x{2996}\\x{2997}\\x{2998}\\x{2999}-\\x{29D7}\\x{29D8}\\x{29D9}\\x{29DA}\\x{29DB}\\x{29DC}-\\x{29FB}\\x{29FC}\\x{29FD}\\x{29FE}-\\x{2AFF}\\x{2B00}-\\x{2B2F}\\x{2B30}-\\x{2B44}\\x{2B45}-\\x{2B46}\\x{2B47}-\\x{2B4C}\\x{2B4D}-\\x{2B73}\\x{2B76}-\\x{2B95}\\x{2B97}-\\x{2BFF}\\x{2CE5}-\\x{2CEA}\\x{2CEF}-\\x{2CF1}\\x{2CF9}-\\x{2CFC}\\x{2CFD}\\x{2CFE}-\\x{2CFF}\\x{2D7F}\\x{2DE0}-\\x{2DFF}\\x{2E00}-\\x{2E01}\\x{2E02}\\x{2E03}\\x{2E04}\\x{2E05}\\x{2E06}-\\x{2E08}\\x{2E09}\\x{2E0A}\\x{2E0B}\\x{2E0C}\\x{2E0D}\\x{2E0E}-\\x{2E16}\\x{2E17}\\x{2E18}-\\x{2E19}\\x{2E1A}\\x{2E1B}\\x{2E1C}\\x{2E1D}\\x{2E1E}-\\x{2E1F}\\x{2E20}\\x{2E21}\\x{2E22}\\x{2E23}\\x{2E24}\\x{2E25}\\x{2E26}\\x{2E27}\\x{2E28}\\x{2E29}\\x{2E2A}-\\x{2E2E}\\x{2E2F}\\x{2E30}-\\x{2E39}\\x{2E3A}-\\x{2E3B}\\x{2E3C}-\\x{2E3F}\\x{2E40}\\x{2E41}\\x{2E42}\\x{2E43}-\\x{2E4F}\\x{2E50}-\\x{2E51}\\x{2E52}\\x{2E80}-\\x{2E99}\\x{2E9B}-\\x{2EF3}\\x{2F00}-\\x{2FD5}\\x{2FF0}-\\x{2FFB}\\x{3001}-\\x{3003}\\x{3004}\\x{3008}\\x{3009}\\x{300A}\\x{300B}\\x{300C}\\x{300D}\\x{300E}\\x{300F}\\x{3010}\\x{3011}\\x{3012}-\\x{3013}\\x{3014}\\x{3015}\\x{3016}\\x{3017}\\x{3018}\\x{3019}\\x{301A}\\x{301B}\\x{301C}\\x{301D}\\x{301E}-\\x{301F}\\x{3020}\\x{302A}-\\x{302D}\\x{3030}\\x{3036}-\\x{3037}\\x{303D}\\x{303E}-\\x{303F}\\x{3099}-\\x{309A}\\x{309B}-\\x{309C}\\x{30A0}\\x{30FB}\\x{31C0}-\\x{31E3}\\x{321D}-\\x{321E}\\x{3250}\\x{3251}-\\x{325F}\\x{327C}-\\x{327E}\\x{32B1}-\\x{32BF}\\x{32CC}-\\x{32CF}\\x{3377}-\\x{337A}\\x{33DE}-\\x{33DF}\\x{33FF}\\x{4DC0}-\\x{4DFF}\\x{A490}-\\x{A4C6}\\x{A60D}-\\x{A60F}\\x{A66F}\\x{A670}-\\x{A672}\\x{A673}\\x{A674}-\\x{A67D}\\x{A67E}\\x{A67F}\\x{A69E}-\\x{A69F}\\x{A6F0}-\\x{A6F1}\\x{A700}-\\x{A716}\\x{A717}-\\x{A71F}\\x{A720}-\\x{A721}\\x{A788}\\x{A802}\\x{A806}\\x{A80B}\\x{A825}-\\x{A826}\\x{A828}-\\x{A82B}\\x{A82C}\\x{A838}\\x{A839}\\x{A874}-\\x{A877}\\x{A8C4}-\\x{A8C5}\\x{A8E0}-\\x{A8F1}\\x{A8FF}\\x{A926}-\\x{A92D}\\x{A947}-\\x{A951}\\x{A980}-\\x{A982}\\x{A9B3}\\x{A9B6}-\\x{A9B9}\\x{A9BC}-\\x{A9BD}\\x{A9E5}\\x{AA29}-\\x{AA2E}\\x{AA31}-\\x{AA32}\\x{AA35}-\\x{AA36}\\x{AA43}\\x{AA4C}\\x{AA7C}\\x{AAB0}\\x{AAB2}-\\x{AAB4}\\x{AAB7}-\\x{AAB8}\\x{AABE}-\\x{AABF}\\x{AAC1}\\x{AAEC}-\\x{AAED}\\x{AAF6}\\x{AB6A}-\\x{AB6B}\\x{ABE5}\\x{ABE8}\\x{ABED}\\x{FB1D}\\x{FB1E}\\x{FB1F}-\\x{FB28}\\x{FB29}\\x{FB2A}-\\x{FB36}\\x{FB37}\\x{FB38}-\\x{FB3C}\\x{FB3D}\\x{FB3E}\\x{FB3F}\\x{FB40}-\\x{FB41}\\x{FB42}\\x{FB43}-\\x{FB44}\\x{FB45}\\x{FB46}-\\x{FB4F}\\x{FB50}-\\x{FBB1}\\x{FBB2}-\\x{FBC1}\\x{FBC2}-\\x{FBD2}\\x{FBD3}-\\x{FD3D}\\x{FD3E}\\x{FD3F}\\x{FD40}-\\x{FD4F}\\x{FD50}-\\x{FD8F}\\x{FD90}-\\x{FD91}\\x{FD92}-\\x{FDC7}\\x{FDC8}-\\x{FDCF}\\x{FDD0}-\\x{FDEF}\\x{FDF0}-\\x{FDFB}\\x{FDFC}\\x{FDFD}\\x{FDFE}-\\x{FDFF}\\x{FE00}-\\x{FE0F}\\x{FE10}-\\x{FE16}\\x{FE17}\\x{FE18}\\x{FE19}\\x{FE20}-\\x{FE2F}\\x{FE30}\\x{FE31}-\\x{FE32}\\x{FE33}-\\x{FE34}\\x{FE35}\\x{FE36}\\x{FE37}\\x{FE38}\\x{FE39}\\x{FE3A}\\x{FE3B}\\x{FE3C}\\x{FE3D}\\x{FE3E}\\x{FE3F}\\x{FE40}\\x{FE41}\\x{FE42}\\x{FE43}\\x{FE44}\\x{FE45}-\\x{FE46}\\x{FE47}\\x{FE48}\\x{FE49}-\\x{FE4C}\\x{FE4D}-\\x{FE4F}\\x{FE50}\\x{FE51}\\x{FE52}\\x{FE54}\\x{FE55}\\x{FE56}-\\x{FE57}\\x{FE58}\\x{FE59}\\x{FE5A}\\x{FE5B}\\x{FE5C}\\x{FE5D}\\x{FE5E}\\x{FE5F}\\x{FE60}-\\x{FE61}\\x{FE62}\\x{FE63}\\x{FE64}-\\x{FE66}\\x{FE68}\\x{FE69}\\x{FE6A}\\x{FE6B}\\x{FE70}-\\x{FE74}\\x{FE75}\\x{FE76}-\\x{FEFC}\\x{FEFD}-\\x{FEFE}\\x{FEFF}\\x{FF01}-\\x{FF02}\\x{FF03}\\x{FF04}\\x{FF05}\\x{FF06}-\\x{FF07}\\x{FF08}\\x{FF09}\\x{FF0A}\\x{FF0B}\\x{FF0C}\\x{FF0D}\\x{FF0E}-\\x{FF0F}\\x{FF10}-\\x{FF19}\\x{FF1A}\\x{FF1B}\\x{FF1C}-\\x{FF1E}\\x{FF1F}-\\x{FF20}\\x{FF3B}\\x{FF3C}\\x{FF3D}\\x{FF3E}\\x{FF3F}\\x{FF40}\\x{FF5B}\\x{FF5C}\\x{FF5D}\\x{FF5E}\\x{FF5F}\\x{FF60}\\x{FF61}\\x{FF62}\\x{FF63}\\x{FF64}-\\x{FF65}\\x{FFE0}-\\x{FFE1}\\x{FFE2}\\x{FFE3}\\x{FFE4}\\x{FFE5}-\\x{FFE6}\\x{FFE8}\\x{FFE9}-\\x{FFEC}\\x{FFED}-\\x{FFEE}\\x{FFF0}-\\x{FFF8}\\x{FFF9}-\\x{FFFB}\\x{FFFC}-\\x{FFFD}\\x{FFFE}-\\x{FFFF}\\x{10101}\\x{10140}-\\x{10174}\\x{10175}-\\x{10178}\\x{10179}-\\x{10189}\\x{1018A}-\\x{1018B}\\x{1018C}\\x{10190}-\\x{1019C}\\x{101A0}\\x{101FD}\\x{102E0}\\x{102E1}-\\x{102FB}\\x{10376}-\\x{1037A}\\x{10800}-\\x{10805}\\x{10806}-\\x{10807}\\x{10808}\\x{10809}\\x{1080A}-\\x{10835}\\x{10836}\\x{10837}-\\x{10838}\\x{10839}-\\x{1083B}\\x{1083C}\\x{1083D}-\\x{1083E}\\x{1083F}-\\x{10855}\\x{10856}\\x{10857}\\x{10858}-\\x{1085F}\\x{10860}-\\x{10876}\\x{10877}-\\x{10878}\\x{10879}-\\x{1087F}\\x{10880}-\\x{1089E}\\x{1089F}-\\x{108A6}\\x{108A7}-\\x{108AF}\\x{108B0}-\\x{108DF}\\x{108E0}-\\x{108F2}\\x{108F3}\\x{108F4}-\\x{108F5}\\x{108F6}-\\x{108FA}\\x{108FB}-\\x{108FF}\\x{10900}-\\x{10915}\\x{10916}-\\x{1091B}\\x{1091C}-\\x{1091E}\\x{1091F}\\x{10920}-\\x{10939}\\x{1093A}-\\x{1093E}\\x{1093F}\\x{10940}-\\x{1097F}\\x{10980}-\\x{109B7}\\x{109B8}-\\x{109BB}\\x{109BC}-\\x{109BD}\\x{109BE}-\\x{109BF}\\x{109C0}-\\x{109CF}\\x{109D0}-\\x{109D1}\\x{109D2}-\\x{109FF}\\x{10A00}\\x{10A01}-\\x{10A03}\\x{10A04}\\x{10A05}-\\x{10A06}\\x{10A07}-\\x{10A0B}\\x{10A0C}-\\x{10A0F}\\x{10A10}-\\x{10A13}\\x{10A14}\\x{10A15}-\\x{10A17}\\x{10A18}\\x{10A19}-\\x{10A35}\\x{10A36}-\\x{10A37}\\x{10A38}-\\x{10A3A}\\x{10A3B}-\\x{10A3E}\\x{10A3F}\\x{10A40}-\\x{10A48}\\x{10A49}-\\x{10A4F}\\x{10A50}-\\x{10A58}\\x{10A59}-\\x{10A5F}\\x{10A60}-\\x{10A7C}\\x{10A7D}-\\x{10A7E}\\x{10A7F}\\x{10A80}-\\x{10A9C}\\x{10A9D}-\\x{10A9F}\\x{10AA0}-\\x{10ABF}\\x{10AC0}-\\x{10AC7}\\x{10AC8}\\x{10AC9}-\\x{10AE4}\\x{10AE5}-\\x{10AE6}\\x{10AE7}-\\x{10AEA}\\x{10AEB}-\\x{10AEF}\\x{10AF0}-\\x{10AF6}\\x{10AF7}-\\x{10AFF}\\x{10B00}-\\x{10B35}\\x{10B36}-\\x{10B38}\\x{10B39}-\\x{10B3F}\\x{10B40}-\\x{10B55}\\x{10B56}-\\x{10B57}\\x{10B58}-\\x{10B5F}\\x{10B60}-\\x{10B72}\\x{10B73}-\\x{10B77}\\x{10B78}-\\x{10B7F}\\x{10B80}-\\x{10B91}\\x{10B92}-\\x{10B98}\\x{10B99}-\\x{10B9C}\\x{10B9D}-\\x{10BA8}\\x{10BA9}-\\x{10BAF}\\x{10BB0}-\\x{10BFF}\\x{10C00}-\\x{10C48}\\x{10C49}-\\x{10C7F}\\x{10C80}-\\x{10CB2}\\x{10CB3}-\\x{10CBF}\\x{10CC0}-\\x{10CF2}\\x{10CF3}-\\x{10CF9}\\x{10CFA}-\\x{10CFF}\\x{10D00}-\\x{10D23}\\x{10D24}-\\x{10D27}\\x{10D28}-\\x{10D2F}\\x{10D30}-\\x{10D39}\\x{10D3A}-\\x{10D3F}\\x{10D40}-\\x{10E5F}\\x{10E60}-\\x{10E7E}\\x{10E7F}\\x{10E80}-\\x{10EA9}\\x{10EAA}\\x{10EAB}-\\x{10EAC}\\x{10EAD}\\x{10EAE}-\\x{10EAF}\\x{10EB0}-\\x{10EB1}\\x{10EB2}-\\x{10EFF}\\x{10F00}-\\x{10F1C}\\x{10F1D}-\\x{10F26}\\x{10F27}\\x{10F28}-\\x{10F2F}\\x{10F30}-\\x{10F45}\\x{10F46}-\\x{10F50}\\x{10F51}-\\x{10F54}\\x{10F55}-\\x{10F59}\\x{10F5A}-\\x{10F6F}\\x{10F70}-\\x{10FAF}\\x{10FB0}-\\x{10FC4}\\x{10FC5}-\\x{10FCB}\\x{10FCC}-\\x{10FDF}\\x{10FE0}-\\x{10FF6}\\x{10FF7}-\\x{10FFF}\\x{11001}\\x{11038}-\\x{11046}\\x{11052}-\\x{11065}\\x{1107F}-\\x{11081}\\x{110B3}-\\x{110B6}\\x{110B9}-\\x{110BA}\\x{11100}-\\x{11102}\\x{11127}-\\x{1112B}\\x{1112D}-\\x{11134}\\x{11173}\\x{11180}-\\x{11181}\\x{111B6}-\\x{111BE}\\x{111C9}-\\x{111CC}\\x{111CF}\\x{1122F}-\\x{11231}\\x{11234}\\x{11236}-\\x{11237}\\x{1123E}\\x{112DF}\\x{112E3}-\\x{112EA}\\x{11300}-\\x{11301}\\x{1133B}-\\x{1133C}\\x{11340}\\x{11366}-\\x{1136C}\\x{11370}-\\x{11374}\\x{11438}-\\x{1143F}\\x{11442}-\\x{11444}\\x{11446}\\x{1145E}\\x{114B3}-\\x{114B8}\\x{114BA}\\x{114BF}-\\x{114C0}\\x{114C2}-\\x{114C3}\\x{115B2}-\\x{115B5}\\x{115BC}-\\x{115BD}\\x{115BF}-\\x{115C0}\\x{115DC}-\\x{115DD}\\x{11633}-\\x{1163A}\\x{1163D}\\x{1163F}-\\x{11640}\\x{11660}-\\x{1166C}\\x{116AB}\\x{116AD}\\x{116B0}-\\x{116B5}\\x{116B7}\\x{1171D}-\\x{1171F}\\x{11722}-\\x{11725}\\x{11727}-\\x{1172B}\\x{1182F}-\\x{11837}\\x{11839}-\\x{1183A}\\x{1193B}-\\x{1193C}\\x{1193E}\\x{11943}\\x{119D4}-\\x{119D7}\\x{119DA}-\\x{119DB}\\x{119E0}\\x{11A01}-\\x{11A06}\\x{11A09}-\\x{11A0A}\\x{11A33}-\\x{11A38}\\x{11A3B}-\\x{11A3E}\\x{11A47}\\x{11A51}-\\x{11A56}\\x{11A59}-\\x{11A5B}\\x{11A8A}-\\x{11A96}\\x{11A98}-\\x{11A99}\\x{11C30}-\\x{11C36}\\x{11C38}-\\x{11C3D}\\x{11C92}-\\x{11CA7}\\x{11CAA}-\\x{11CB0}\\x{11CB2}-\\x{11CB3}\\x{11CB5}-\\x{11CB6}\\x{11D31}-\\x{11D36}\\x{11D3A}\\x{11D3C}-\\x{11D3D}\\x{11D3F}-\\x{11D45}\\x{11D47}\\x{11D90}-\\x{11D91}\\x{11D95}\\x{11D97}\\x{11EF3}-\\x{11EF4}\\x{11FD5}-\\x{11FDC}\\x{11FDD}-\\x{11FE0}\\x{11FE1}-\\x{11FF1}\\x{16AF0}-\\x{16AF4}\\x{16B30}-\\x{16B36}\\x{16F4F}\\x{16F8F}-\\x{16F92}\\x{16FE2}\\x{16FE4}\\x{1BC9D}-\\x{1BC9E}\\x{1BCA0}-\\x{1BCA3}\\x{1D167}-\\x{1D169}\\x{1D173}-\\x{1D17A}\\x{1D17B}-\\x{1D182}\\x{1D185}-\\x{1D18B}\\x{1D1AA}-\\x{1D1AD}\\x{1D200}-\\x{1D241}\\x{1D242}-\\x{1D244}\\x{1D245}\\x{1D300}-\\x{1D356}\\x{1D6DB}\\x{1D715}\\x{1D74F}\\x{1D789}\\x{1D7C3}\\x{1D7CE}-\\x{1D7FF}\\x{1DA00}-\\x{1DA36}\\x{1DA3B}-\\x{1DA6C}\\x{1DA75}\\x{1DA84}\\x{1DA9B}-\\x{1DA9F}\\x{1DAA1}-\\x{1DAAF}\\x{1E000}-\\x{1E006}\\x{1E008}-\\x{1E018}\\x{1E01B}-\\x{1E021}\\x{1E023}-\\x{1E024}\\x{1E026}-\\x{1E02A}\\x{1E130}-\\x{1E136}\\x{1E2EC}-\\x{1E2EF}\\x{1E2FF}\\x{1E800}-\\x{1E8C4}\\x{1E8C5}-\\x{1E8C6}\\x{1E8C7}-\\x{1E8CF}\\x{1E8D0}-\\x{1E8D6}\\x{1E8D7}-\\x{1E8FF}\\x{1E900}-\\x{1E943}\\x{1E944}-\\x{1E94A}\\x{1E94B}\\x{1E94C}-\\x{1E94F}\\x{1E950}-\\x{1E959}\\x{1E95A}-\\x{1E95D}\\x{1E95E}-\\x{1E95F}\\x{1E960}-\\x{1EC6F}\\x{1EC70}\\x{1EC71}-\\x{1ECAB}\\x{1ECAC}\\x{1ECAD}-\\x{1ECAF}\\x{1ECB0}\\x{1ECB1}-\\x{1ECB4}\\x{1ECB5}-\\x{1ECBF}\\x{1ECC0}-\\x{1ECFF}\\x{1ED00}\\x{1ED01}-\\x{1ED2D}\\x{1ED2E}\\x{1ED2F}-\\x{1ED3D}\\x{1ED3E}-\\x{1ED4F}\\x{1ED50}-\\x{1EDFF}\\x{1EE00}-\\x{1EE03}\\x{1EE04}\\x{1EE05}-\\x{1EE1F}\\x{1EE20}\\x{1EE21}-\\x{1EE22}\\x{1EE23}\\x{1EE24}\\x{1EE25}-\\x{1EE26}\\x{1EE27}\\x{1EE28}\\x{1EE29}-\\x{1EE32}\\x{1EE33}\\x{1EE34}-\\x{1EE37}\\x{1EE38}\\x{1EE39}\\x{1EE3A}\\x{1EE3B}\\x{1EE3C}-\\x{1EE41}\\x{1EE42}\\x{1EE43}-\\x{1EE46}\\x{1EE47}\\x{1EE48}\\x{1EE49}\\x{1EE4A}\\x{1EE4B}\\x{1EE4C}\\x{1EE4D}-\\x{1EE4F}\\x{1EE50}\\x{1EE51}-\\x{1EE52}\\x{1EE53}\\x{1EE54}\\x{1EE55}-\\x{1EE56}\\x{1EE57}\\x{1EE58}\\x{1EE59}\\x{1EE5A}\\x{1EE5B}\\x{1EE5C}\\x{1EE5D}\\x{1EE5E}\\x{1EE5F}\\x{1EE60}\\x{1EE61}-\\x{1EE62}\\x{1EE63}\\x{1EE64}\\x{1EE65}-\\x{1EE66}\\x{1EE67}-\\x{1EE6A}\\x{1EE6B}\\x{1EE6C}-\\x{1EE72}\\x{1EE73}\\x{1EE74}-\\x{1EE77}\\x{1EE78}\\x{1EE79}-\\x{1EE7C}\\x{1EE7D}\\x{1EE7E}\\x{1EE7F}\\x{1EE80}-\\x{1EE89}\\x{1EE8A}\\x{1EE8B}-\\x{1EE9B}\\x{1EE9C}-\\x{1EEA0}\\x{1EEA1}-\\x{1EEA3}\\x{1EEA4}\\x{1EEA5}-\\x{1EEA9}\\x{1EEAA}\\x{1EEAB}-\\x{1EEBB}\\x{1EEBC}-\\x{1EEEF}\\x{1EEF0}-\\x{1EEF1}\\x{1EEF2}-\\x{1EEFF}\\x{1EF00}-\\x{1EFFF}\\x{1F000}-\\x{1F02B}\\x{1F030}-\\x{1F093}\\x{1F0A0}-\\x{1F0AE}\\x{1F0B1}-\\x{1F0BF}\\x{1F0C1}-\\x{1F0CF}\\x{1F0D1}-\\x{1F0F5}\\x{1F100}-\\x{1F10A}\\x{1F10B}-\\x{1F10C}\\x{1F10D}-\\x{1F10F}\\x{1F12F}\\x{1F16A}-\\x{1F16F}\\x{1F1AD}\\x{1F260}-\\x{1F265}\\x{1F300}-\\x{1F3FA}\\x{1F3FB}-\\x{1F3FF}\\x{1F400}-\\x{1F6D7}\\x{1F6E0}-\\x{1F6EC}\\x{1F6F0}-\\x{1F6FC}\\x{1F700}-\\x{1F773}\\x{1F780}-\\x{1F7D8}\\x{1F7E0}-\\x{1F7EB}\\x{1F800}-\\x{1F80B}\\x{1F810}-\\x{1F847}\\x{1F850}-\\x{1F859}\\x{1F860}-\\x{1F887}\\x{1F890}-\\x{1F8AD}\\x{1F8B0}-\\x{1F8B1}\\x{1F900}-\\x{1F978}\\x{1F97A}-\\x{1F9CB}\\x{1F9CD}-\\x{1FA53}\\x{1FA60}-\\x{1FA6D}\\x{1FA70}-\\x{1FA74}\\x{1FA78}-\\x{1FA7A}\\x{1FA80}-\\x{1FA86}\\x{1FA90}-\\x{1FAA8}\\x{1FAB0}-\\x{1FAB6}\\x{1FAC0}-\\x{1FAC2}\\x{1FAD0}-\\x{1FAD6}\\x{1FB00}-\\x{1FB92}\\x{1FB94}-\\x{1FBCA}\\x{1FBF0}-\\x{1FBF9}\\x{1FFFE}-\\x{1FFFF}\\x{2FFFE}-\\x{2FFFF}\\x{3FFFE}-\\x{3FFFF}\\x{4FFFE}-\\x{4FFFF}\\x{5FFFE}-\\x{5FFFF}\\x{6FFFE}-\\x{6FFFF}\\x{7FFFE}-\\x{7FFFF}\\x{8FFFE}-\\x{8FFFF}\\x{9FFFE}-\\x{9FFFF}\\x{AFFFE}-\\x{AFFFF}\\x{BFFFE}-\\x{BFFFF}\\x{CFFFE}-\\x{CFFFF}\\x{DFFFE}-\\x{E0000}\\x{E0001}\\x{E0002}-\\x{E001F}\\x{E0020}-\\x{E007F}\\x{E0080}-\\x{E00FF}\\x{E0100}-\\x{E01EF}\\x{E01F0}-\\x{E0FFF}\\x{EFFFE}-\\x{EFFFF}\\x{FFFFE}-\\x{FFFFF}\\x{10FFFE}-\\x{10FFFF}]/u';
15
+ const BIDI_STEP_3 = '/[\\x{0030}-\\x{0039}\\x{00B2}-\\x{00B3}\\x{00B9}\\x{0590}\\x{05BE}\\x{05C0}\\x{05C3}\\x{05C6}\\x{05C8}-\\x{05CF}\\x{05D0}-\\x{05EA}\\x{05EB}-\\x{05EE}\\x{05EF}-\\x{05F2}\\x{05F3}-\\x{05F4}\\x{05F5}-\\x{05FF}\\x{0600}-\\x{0605}\\x{0608}\\x{060B}\\x{060D}\\x{061B}\\x{061C}\\x{061D}\\x{061E}-\\x{061F}\\x{0620}-\\x{063F}\\x{0640}\\x{0641}-\\x{064A}\\x{0660}-\\x{0669}\\x{066B}-\\x{066C}\\x{066D}\\x{066E}-\\x{066F}\\x{0671}-\\x{06D3}\\x{06D4}\\x{06D5}\\x{06DD}\\x{06E5}-\\x{06E6}\\x{06EE}-\\x{06EF}\\x{06F0}-\\x{06F9}\\x{06FA}-\\x{06FC}\\x{06FD}-\\x{06FE}\\x{06FF}\\x{0700}-\\x{070D}\\x{070E}\\x{070F}\\x{0710}\\x{0712}-\\x{072F}\\x{074B}-\\x{074C}\\x{074D}-\\x{07A5}\\x{07B1}\\x{07B2}-\\x{07BF}\\x{07C0}-\\x{07C9}\\x{07CA}-\\x{07EA}\\x{07F4}-\\x{07F5}\\x{07FA}\\x{07FB}-\\x{07FC}\\x{07FE}-\\x{07FF}\\x{0800}-\\x{0815}\\x{081A}\\x{0824}\\x{0828}\\x{082E}-\\x{082F}\\x{0830}-\\x{083E}\\x{083F}\\x{0840}-\\x{0858}\\x{085C}-\\x{085D}\\x{085E}\\x{085F}\\x{0860}-\\x{086A}\\x{086B}-\\x{086F}\\x{0870}-\\x{089F}\\x{08A0}-\\x{08B4}\\x{08B5}\\x{08B6}-\\x{08C7}\\x{08C8}-\\x{08D2}\\x{08E2}\\x{200F}\\x{2070}\\x{2074}-\\x{2079}\\x{2080}-\\x{2089}\\x{2488}-\\x{249B}\\x{FB1D}\\x{FB1F}-\\x{FB28}\\x{FB2A}-\\x{FB36}\\x{FB37}\\x{FB38}-\\x{FB3C}\\x{FB3D}\\x{FB3E}\\x{FB3F}\\x{FB40}-\\x{FB41}\\x{FB42}\\x{FB43}-\\x{FB44}\\x{FB45}\\x{FB46}-\\x{FB4F}\\x{FB50}-\\x{FBB1}\\x{FBB2}-\\x{FBC1}\\x{FBC2}-\\x{FBD2}\\x{FBD3}-\\x{FD3D}\\x{FD40}-\\x{FD4F}\\x{FD50}-\\x{FD8F}\\x{FD90}-\\x{FD91}\\x{FD92}-\\x{FDC7}\\x{FDC8}-\\x{FDCF}\\x{FDF0}-\\x{FDFB}\\x{FDFC}\\x{FDFE}-\\x{FDFF}\\x{FE70}-\\x{FE74}\\x{FE75}\\x{FE76}-\\x{FEFC}\\x{FEFD}-\\x{FEFE}\\x{FF10}-\\x{FF19}\\x{102E1}-\\x{102FB}\\x{10800}-\\x{10805}\\x{10806}-\\x{10807}\\x{10808}\\x{10809}\\x{1080A}-\\x{10835}\\x{10836}\\x{10837}-\\x{10838}\\x{10839}-\\x{1083B}\\x{1083C}\\x{1083D}-\\x{1083E}\\x{1083F}-\\x{10855}\\x{10856}\\x{10857}\\x{10858}-\\x{1085F}\\x{10860}-\\x{10876}\\x{10877}-\\x{10878}\\x{10879}-\\x{1087F}\\x{10880}-\\x{1089E}\\x{1089F}-\\x{108A6}\\x{108A7}-\\x{108AF}\\x{108B0}-\\x{108DF}\\x{108E0}-\\x{108F2}\\x{108F3}\\x{108F4}-\\x{108F5}\\x{108F6}-\\x{108FA}\\x{108FB}-\\x{108FF}\\x{10900}-\\x{10915}\\x{10916}-\\x{1091B}\\x{1091C}-\\x{1091E}\\x{10920}-\\x{10939}\\x{1093A}-\\x{1093E}\\x{1093F}\\x{10940}-\\x{1097F}\\x{10980}-\\x{109B7}\\x{109B8}-\\x{109BB}\\x{109BC}-\\x{109BD}\\x{109BE}-\\x{109BF}\\x{109C0}-\\x{109CF}\\x{109D0}-\\x{109D1}\\x{109D2}-\\x{109FF}\\x{10A00}\\x{10A04}\\x{10A07}-\\x{10A0B}\\x{10A10}-\\x{10A13}\\x{10A14}\\x{10A15}-\\x{10A17}\\x{10A18}\\x{10A19}-\\x{10A35}\\x{10A36}-\\x{10A37}\\x{10A3B}-\\x{10A3E}\\x{10A40}-\\x{10A48}\\x{10A49}-\\x{10A4F}\\x{10A50}-\\x{10A58}\\x{10A59}-\\x{10A5F}\\x{10A60}-\\x{10A7C}\\x{10A7D}-\\x{10A7E}\\x{10A7F}\\x{10A80}-\\x{10A9C}\\x{10A9D}-\\x{10A9F}\\x{10AA0}-\\x{10ABF}\\x{10AC0}-\\x{10AC7}\\x{10AC8}\\x{10AC9}-\\x{10AE4}\\x{10AE7}-\\x{10AEA}\\x{10AEB}-\\x{10AEF}\\x{10AF0}-\\x{10AF6}\\x{10AF7}-\\x{10AFF}\\x{10B00}-\\x{10B35}\\x{10B36}-\\x{10B38}\\x{10B40}-\\x{10B55}\\x{10B56}-\\x{10B57}\\x{10B58}-\\x{10B5F}\\x{10B60}-\\x{10B72}\\x{10B73}-\\x{10B77}\\x{10B78}-\\x{10B7F}\\x{10B80}-\\x{10B91}\\x{10B92}-\\x{10B98}\\x{10B99}-\\x{10B9C}\\x{10B9D}-\\x{10BA8}\\x{10BA9}-\\x{10BAF}\\x{10BB0}-\\x{10BFF}\\x{10C00}-\\x{10C48}\\x{10C49}-\\x{10C7F}\\x{10C80}-\\x{10CB2}\\x{10CB3}-\\x{10CBF}\\x{10CC0}-\\x{10CF2}\\x{10CF3}-\\x{10CF9}\\x{10CFA}-\\x{10CFF}\\x{10D00}-\\x{10D23}\\x{10D28}-\\x{10D2F}\\x{10D30}-\\x{10D39}\\x{10D3A}-\\x{10D3F}\\x{10D40}-\\x{10E5F}\\x{10E60}-\\x{10E7E}\\x{10E7F}\\x{10E80}-\\x{10EA9}\\x{10EAA}\\x{10EAD}\\x{10EAE}-\\x{10EAF}\\x{10EB0}-\\x{10EB1}\\x{10EB2}-\\x{10EFF}\\x{10F00}-\\x{10F1C}\\x{10F1D}-\\x{10F26}\\x{10F27}\\x{10F28}-\\x{10F2F}\\x{10F30}-\\x{10F45}\\x{10F51}-\\x{10F54}\\x{10F55}-\\x{10F59}\\x{10F5A}-\\x{10F6F}\\x{10F70}-\\x{10FAF}\\x{10FB0}-\\x{10FC4}\\x{10FC5}-\\x{10FCB}\\x{10FCC}-\\x{10FDF}\\x{10FE0}-\\x{10FF6}\\x{10FF7}-\\x{10FFF}\\x{1D7CE}-\\x{1D7FF}\\x{1E800}-\\x{1E8C4}\\x{1E8C5}-\\x{1E8C6}\\x{1E8C7}-\\x{1E8CF}\\x{1E8D7}-\\x{1E8FF}\\x{1E900}-\\x{1E943}\\x{1E94B}\\x{1E94C}-\\x{1E94F}\\x{1E950}-\\x{1E959}\\x{1E95A}-\\x{1E95D}\\x{1E95E}-\\x{1E95F}\\x{1E960}-\\x{1EC6F}\\x{1EC70}\\x{1EC71}-\\x{1ECAB}\\x{1ECAC}\\x{1ECAD}-\\x{1ECAF}\\x{1ECB0}\\x{1ECB1}-\\x{1ECB4}\\x{1ECB5}-\\x{1ECBF}\\x{1ECC0}-\\x{1ECFF}\\x{1ED00}\\x{1ED01}-\\x{1ED2D}\\x{1ED2E}\\x{1ED2F}-\\x{1ED3D}\\x{1ED3E}-\\x{1ED4F}\\x{1ED50}-\\x{1EDFF}\\x{1EE00}-\\x{1EE03}\\x{1EE04}\\x{1EE05}-\\x{1EE1F}\\x{1EE20}\\x{1EE21}-\\x{1EE22}\\x{1EE23}\\x{1EE24}\\x{1EE25}-\\x{1EE26}\\x{1EE27}\\x{1EE28}\\x{1EE29}-\\x{1EE32}\\x{1EE33}\\x{1EE34}-\\x{1EE37}\\x{1EE38}\\x{1EE39}\\x{1EE3A}\\x{1EE3B}\\x{1EE3C}-\\x{1EE41}\\x{1EE42}\\x{1EE43}-\\x{1EE46}\\x{1EE47}\\x{1EE48}\\x{1EE49}\\x{1EE4A}\\x{1EE4B}\\x{1EE4C}\\x{1EE4D}-\\x{1EE4F}\\x{1EE50}\\x{1EE51}-\\x{1EE52}\\x{1EE53}\\x{1EE54}\\x{1EE55}-\\x{1EE56}\\x{1EE57}\\x{1EE58}\\x{1EE59}\\x{1EE5A}\\x{1EE5B}\\x{1EE5C}\\x{1EE5D}\\x{1EE5E}\\x{1EE5F}\\x{1EE60}\\x{1EE61}-\\x{1EE62}\\x{1EE63}\\x{1EE64}\\x{1EE65}-\\x{1EE66}\\x{1EE67}-\\x{1EE6A}\\x{1EE6B}\\x{1EE6C}-\\x{1EE72}\\x{1EE73}\\x{1EE74}-\\x{1EE77}\\x{1EE78}\\x{1EE79}-\\x{1EE7C}\\x{1EE7D}\\x{1EE7E}\\x{1EE7F}\\x{1EE80}-\\x{1EE89}\\x{1EE8A}\\x{1EE8B}-\\x{1EE9B}\\x{1EE9C}-\\x{1EEA0}\\x{1EEA1}-\\x{1EEA3}\\x{1EEA4}\\x{1EEA5}-\\x{1EEA9}\\x{1EEAA}\\x{1EEAB}-\\x{1EEBB}\\x{1EEBC}-\\x{1EEEF}\\x{1EEF2}-\\x{1EEFF}\\x{1EF00}-\\x{1EFFF}\\x{1F100}-\\x{1F10A}\\x{1FBF0}-\\x{1FBF9}][\\x{0300}-\\x{036F}\\x{0483}-\\x{0487}\\x{0488}-\\x{0489}\\x{0591}-\\x{05BD}\\x{05BF}\\x{05C1}-\\x{05C2}\\x{05C4}-\\x{05C5}\\x{05C7}\\x{0610}-\\x{061A}\\x{064B}-\\x{065F}\\x{0670}\\x{06D6}-\\x{06DC}\\x{06DF}-\\x{06E4}\\x{06E7}-\\x{06E8}\\x{06EA}-\\x{06ED}\\x{0711}\\x{0730}-\\x{074A}\\x{07A6}-\\x{07B0}\\x{07EB}-\\x{07F3}\\x{07FD}\\x{0816}-\\x{0819}\\x{081B}-\\x{0823}\\x{0825}-\\x{0827}\\x{0829}-\\x{082D}\\x{0859}-\\x{085B}\\x{08D3}-\\x{08E1}\\x{08E3}-\\x{0902}\\x{093A}\\x{093C}\\x{0941}-\\x{0948}\\x{094D}\\x{0951}-\\x{0957}\\x{0962}-\\x{0963}\\x{0981}\\x{09BC}\\x{09C1}-\\x{09C4}\\x{09CD}\\x{09E2}-\\x{09E3}\\x{09FE}\\x{0A01}-\\x{0A02}\\x{0A3C}\\x{0A41}-\\x{0A42}\\x{0A47}-\\x{0A48}\\x{0A4B}-\\x{0A4D}\\x{0A51}\\x{0A70}-\\x{0A71}\\x{0A75}\\x{0A81}-\\x{0A82}\\x{0ABC}\\x{0AC1}-\\x{0AC5}\\x{0AC7}-\\x{0AC8}\\x{0ACD}\\x{0AE2}-\\x{0AE3}\\x{0AFA}-\\x{0AFF}\\x{0B01}\\x{0B3C}\\x{0B3F}\\x{0B41}-\\x{0B44}\\x{0B4D}\\x{0B55}-\\x{0B56}\\x{0B62}-\\x{0B63}\\x{0B82}\\x{0BC0}\\x{0BCD}\\x{0C00}\\x{0C04}\\x{0C3E}-\\x{0C40}\\x{0C46}-\\x{0C48}\\x{0C4A}-\\x{0C4D}\\x{0C55}-\\x{0C56}\\x{0C62}-\\x{0C63}\\x{0C81}\\x{0CBC}\\x{0CCC}-\\x{0CCD}\\x{0CE2}-\\x{0CE3}\\x{0D00}-\\x{0D01}\\x{0D3B}-\\x{0D3C}\\x{0D41}-\\x{0D44}\\x{0D4D}\\x{0D62}-\\x{0D63}\\x{0D81}\\x{0DCA}\\x{0DD2}-\\x{0DD4}\\x{0DD6}\\x{0E31}\\x{0E34}-\\x{0E3A}\\x{0E47}-\\x{0E4E}\\x{0EB1}\\x{0EB4}-\\x{0EBC}\\x{0EC8}-\\x{0ECD}\\x{0F18}-\\x{0F19}\\x{0F35}\\x{0F37}\\x{0F39}\\x{0F71}-\\x{0F7E}\\x{0F80}-\\x{0F84}\\x{0F86}-\\x{0F87}\\x{0F8D}-\\x{0F97}\\x{0F99}-\\x{0FBC}\\x{0FC6}\\x{102D}-\\x{1030}\\x{1032}-\\x{1037}\\x{1039}-\\x{103A}\\x{103D}-\\x{103E}\\x{1058}-\\x{1059}\\x{105E}-\\x{1060}\\x{1071}-\\x{1074}\\x{1082}\\x{1085}-\\x{1086}\\x{108D}\\x{109D}\\x{135D}-\\x{135F}\\x{1712}-\\x{1714}\\x{1732}-\\x{1734}\\x{1752}-\\x{1753}\\x{1772}-\\x{1773}\\x{17B4}-\\x{17B5}\\x{17B7}-\\x{17BD}\\x{17C6}\\x{17C9}-\\x{17D3}\\x{17DD}\\x{180B}-\\x{180D}\\x{1885}-\\x{1886}\\x{18A9}\\x{1920}-\\x{1922}\\x{1927}-\\x{1928}\\x{1932}\\x{1939}-\\x{193B}\\x{1A17}-\\x{1A18}\\x{1A1B}\\x{1A56}\\x{1A58}-\\x{1A5E}\\x{1A60}\\x{1A62}\\x{1A65}-\\x{1A6C}\\x{1A73}-\\x{1A7C}\\x{1A7F}\\x{1AB0}-\\x{1ABD}\\x{1ABE}\\x{1ABF}-\\x{1AC0}\\x{1B00}-\\x{1B03}\\x{1B34}\\x{1B36}-\\x{1B3A}\\x{1B3C}\\x{1B42}\\x{1B6B}-\\x{1B73}\\x{1B80}-\\x{1B81}\\x{1BA2}-\\x{1BA5}\\x{1BA8}-\\x{1BA9}\\x{1BAB}-\\x{1BAD}\\x{1BE6}\\x{1BE8}-\\x{1BE9}\\x{1BED}\\x{1BEF}-\\x{1BF1}\\x{1C2C}-\\x{1C33}\\x{1C36}-\\x{1C37}\\x{1CD0}-\\x{1CD2}\\x{1CD4}-\\x{1CE0}\\x{1CE2}-\\x{1CE8}\\x{1CED}\\x{1CF4}\\x{1CF8}-\\x{1CF9}\\x{1DC0}-\\x{1DF9}\\x{1DFB}-\\x{1DFF}\\x{20D0}-\\x{20DC}\\x{20DD}-\\x{20E0}\\x{20E1}\\x{20E2}-\\x{20E4}\\x{20E5}-\\x{20F0}\\x{2CEF}-\\x{2CF1}\\x{2D7F}\\x{2DE0}-\\x{2DFF}\\x{302A}-\\x{302D}\\x{3099}-\\x{309A}\\x{A66F}\\x{A670}-\\x{A672}\\x{A674}-\\x{A67D}\\x{A69E}-\\x{A69F}\\x{A6F0}-\\x{A6F1}\\x{A802}\\x{A806}\\x{A80B}\\x{A825}-\\x{A826}\\x{A82C}\\x{A8C4}-\\x{A8C5}\\x{A8E0}-\\x{A8F1}\\x{A8FF}\\x{A926}-\\x{A92D}\\x{A947}-\\x{A951}\\x{A980}-\\x{A982}\\x{A9B3}\\x{A9B6}-\\x{A9B9}\\x{A9BC}-\\x{A9BD}\\x{A9E5}\\x{AA29}-\\x{AA2E}\\x{AA31}-\\x{AA32}\\x{AA35}-\\x{AA36}\\x{AA43}\\x{AA4C}\\x{AA7C}\\x{AAB0}\\x{AAB2}-\\x{AAB4}\\x{AAB7}-\\x{AAB8}\\x{AABE}-\\x{AABF}\\x{AAC1}\\x{AAEC}-\\x{AAED}\\x{AAF6}\\x{ABE5}\\x{ABE8}\\x{ABED}\\x{FB1E}\\x{FE00}-\\x{FE0F}\\x{FE20}-\\x{FE2F}\\x{101FD}\\x{102E0}\\x{10376}-\\x{1037A}\\x{10A01}-\\x{10A03}\\x{10A05}-\\x{10A06}\\x{10A0C}-\\x{10A0F}\\x{10A38}-\\x{10A3A}\\x{10A3F}\\x{10AE5}-\\x{10AE6}\\x{10D24}-\\x{10D27}\\x{10EAB}-\\x{10EAC}\\x{10F46}-\\x{10F50}\\x{11001}\\x{11038}-\\x{11046}\\x{1107F}-\\x{11081}\\x{110B3}-\\x{110B6}\\x{110B9}-\\x{110BA}\\x{11100}-\\x{11102}\\x{11127}-\\x{1112B}\\x{1112D}-\\x{11134}\\x{11173}\\x{11180}-\\x{11181}\\x{111B6}-\\x{111BE}\\x{111C9}-\\x{111CC}\\x{111CF}\\x{1122F}-\\x{11231}\\x{11234}\\x{11236}-\\x{11237}\\x{1123E}\\x{112DF}\\x{112E3}-\\x{112EA}\\x{11300}-\\x{11301}\\x{1133B}-\\x{1133C}\\x{11340}\\x{11366}-\\x{1136C}\\x{11370}-\\x{11374}\\x{11438}-\\x{1143F}\\x{11442}-\\x{11444}\\x{11446}\\x{1145E}\\x{114B3}-\\x{114B8}\\x{114BA}\\x{114BF}-\\x{114C0}\\x{114C2}-\\x{114C3}\\x{115B2}-\\x{115B5}\\x{115BC}-\\x{115BD}\\x{115BF}-\\x{115C0}\\x{115DC}-\\x{115DD}\\x{11633}-\\x{1163A}\\x{1163D}\\x{1163F}-\\x{11640}\\x{116AB}\\x{116AD}\\x{116B0}-\\x{116B5}\\x{116B7}\\x{1171D}-\\x{1171F}\\x{11722}-\\x{11725}\\x{11727}-\\x{1172B}\\x{1182F}-\\x{11837}\\x{11839}-\\x{1183A}\\x{1193B}-\\x{1193C}\\x{1193E}\\x{11943}\\x{119D4}-\\x{119D7}\\x{119DA}-\\x{119DB}\\x{119E0}\\x{11A01}-\\x{11A06}\\x{11A09}-\\x{11A0A}\\x{11A33}-\\x{11A38}\\x{11A3B}-\\x{11A3E}\\x{11A47}\\x{11A51}-\\x{11A56}\\x{11A59}-\\x{11A5B}\\x{11A8A}-\\x{11A96}\\x{11A98}-\\x{11A99}\\x{11C30}-\\x{11C36}\\x{11C38}-\\x{11C3D}\\x{11C92}-\\x{11CA7}\\x{11CAA}-\\x{11CB0}\\x{11CB2}-\\x{11CB3}\\x{11CB5}-\\x{11CB6}\\x{11D31}-\\x{11D36}\\x{11D3A}\\x{11D3C}-\\x{11D3D}\\x{11D3F}-\\x{11D45}\\x{11D47}\\x{11D90}-\\x{11D91}\\x{11D95}\\x{11D97}\\x{11EF3}-\\x{11EF4}\\x{16AF0}-\\x{16AF4}\\x{16B30}-\\x{16B36}\\x{16F4F}\\x{16F8F}-\\x{16F92}\\x{16FE4}\\x{1BC9D}-\\x{1BC9E}\\x{1D167}-\\x{1D169}\\x{1D17B}-\\x{1D182}\\x{1D185}-\\x{1D18B}\\x{1D1AA}-\\x{1D1AD}\\x{1D242}-\\x{1D244}\\x{1DA00}-\\x{1DA36}\\x{1DA3B}-\\x{1DA6C}\\x{1DA75}\\x{1DA84}\\x{1DA9B}-\\x{1DA9F}\\x{1DAA1}-\\x{1DAAF}\\x{1E000}-\\x{1E006}\\x{1E008}-\\x{1E018}\\x{1E01B}-\\x{1E021}\\x{1E023}-\\x{1E024}\\x{1E026}-\\x{1E02A}\\x{1E130}-\\x{1E136}\\x{1E2EC}-\\x{1E2EF}\\x{1E8D0}-\\x{1E8D6}\\x{1E944}-\\x{1E94A}\\x{E0100}-\\x{E01EF}]*$/u';
16
+ const BIDI_STEP_4_AN = '/[\\x{0600}-\\x{0605}\\x{0660}-\\x{0669}\\x{066B}-\\x{066C}\\x{06DD}\\x{08E2}\\x{10D30}-\\x{10D39}\\x{10E60}-\\x{10E7E}]/u';
17
+ const BIDI_STEP_4_EN = '/[\\x{0030}-\\x{0039}\\x{00B2}-\\x{00B3}\\x{00B9}\\x{06F0}-\\x{06F9}\\x{2070}\\x{2074}-\\x{2079}\\x{2080}-\\x{2089}\\x{2488}-\\x{249B}\\x{FF10}-\\x{FF19}\\x{102E1}-\\x{102FB}\\x{1D7CE}-\\x{1D7FF}\\x{1F100}-\\x{1F10A}\\x{1FBF0}-\\x{1FBF9}]/u';
18
+ const BIDI_STEP_5 = '/[\\x{0009}\\x{000A}\\x{000B}\\x{000C}\\x{000D}\\x{001C}-\\x{001E}\\x{001F}\\x{0020}\\x{0085}\\x{0590}\\x{05BE}\\x{05C0}\\x{05C3}\\x{05C6}\\x{05C8}-\\x{05CF}\\x{05D0}-\\x{05EA}\\x{05EB}-\\x{05EE}\\x{05EF}-\\x{05F2}\\x{05F3}-\\x{05F4}\\x{05F5}-\\x{05FF}\\x{0600}-\\x{0605}\\x{0608}\\x{060B}\\x{060D}\\x{061B}\\x{061C}\\x{061D}\\x{061E}-\\x{061F}\\x{0620}-\\x{063F}\\x{0640}\\x{0641}-\\x{064A}\\x{0660}-\\x{0669}\\x{066B}-\\x{066C}\\x{066D}\\x{066E}-\\x{066F}\\x{0671}-\\x{06D3}\\x{06D4}\\x{06D5}\\x{06DD}\\x{06E5}-\\x{06E6}\\x{06EE}-\\x{06EF}\\x{06FA}-\\x{06FC}\\x{06FD}-\\x{06FE}\\x{06FF}\\x{0700}-\\x{070D}\\x{070E}\\x{070F}\\x{0710}\\x{0712}-\\x{072F}\\x{074B}-\\x{074C}\\x{074D}-\\x{07A5}\\x{07B1}\\x{07B2}-\\x{07BF}\\x{07C0}-\\x{07C9}\\x{07CA}-\\x{07EA}\\x{07F4}-\\x{07F5}\\x{07FA}\\x{07FB}-\\x{07FC}\\x{07FE}-\\x{07FF}\\x{0800}-\\x{0815}\\x{081A}\\x{0824}\\x{0828}\\x{082E}-\\x{082F}\\x{0830}-\\x{083E}\\x{083F}\\x{0840}-\\x{0858}\\x{085C}-\\x{085D}\\x{085E}\\x{085F}\\x{0860}-\\x{086A}\\x{086B}-\\x{086F}\\x{0870}-\\x{089F}\\x{08A0}-\\x{08B4}\\x{08B5}\\x{08B6}-\\x{08C7}\\x{08C8}-\\x{08D2}\\x{08E2}\\x{1680}\\x{2000}-\\x{200A}\\x{200F}\\x{2028}\\x{2029}\\x{202A}\\x{202B}\\x{202C}\\x{202D}\\x{202E}\\x{205F}\\x{2066}\\x{2067}\\x{2068}\\x{2069}\\x{3000}\\x{FB1D}\\x{FB1F}-\\x{FB28}\\x{FB2A}-\\x{FB36}\\x{FB37}\\x{FB38}-\\x{FB3C}\\x{FB3D}\\x{FB3E}\\x{FB3F}\\x{FB40}-\\x{FB41}\\x{FB42}\\x{FB43}-\\x{FB44}\\x{FB45}\\x{FB46}-\\x{FB4F}\\x{FB50}-\\x{FBB1}\\x{FBB2}-\\x{FBC1}\\x{FBC2}-\\x{FBD2}\\x{FBD3}-\\x{FD3D}\\x{FD40}-\\x{FD4F}\\x{FD50}-\\x{FD8F}\\x{FD90}-\\x{FD91}\\x{FD92}-\\x{FDC7}\\x{FDC8}-\\x{FDCF}\\x{FDF0}-\\x{FDFB}\\x{FDFC}\\x{FDFE}-\\x{FDFF}\\x{FE70}-\\x{FE74}\\x{FE75}\\x{FE76}-\\x{FEFC}\\x{FEFD}-\\x{FEFE}\\x{10800}-\\x{10805}\\x{10806}-\\x{10807}\\x{10808}\\x{10809}\\x{1080A}-\\x{10835}\\x{10836}\\x{10837}-\\x{10838}\\x{10839}-\\x{1083B}\\x{1083C}\\x{1083D}-\\x{1083E}\\x{1083F}-\\x{10855}\\x{10856}\\x{10857}\\x{10858}-\\x{1085F}\\x{10860}-\\x{10876}\\x{10877}-\\x{10878}\\x{10879}-\\x{1087F}\\x{10880}-\\x{1089E}\\x{1089F}-\\x{108A6}\\x{108A7}-\\x{108AF}\\x{108B0}-\\x{108DF}\\x{108E0}-\\x{108F2}\\x{108F3}\\x{108F4}-\\x{108F5}\\x{108F6}-\\x{108FA}\\x{108FB}-\\x{108FF}\\x{10900}-\\x{10915}\\x{10916}-\\x{1091B}\\x{1091C}-\\x{1091E}\\x{10920}-\\x{10939}\\x{1093A}-\\x{1093E}\\x{1093F}\\x{10940}-\\x{1097F}\\x{10980}-\\x{109B7}\\x{109B8}-\\x{109BB}\\x{109BC}-\\x{109BD}\\x{109BE}-\\x{109BF}\\x{109C0}-\\x{109CF}\\x{109D0}-\\x{109D1}\\x{109D2}-\\x{109FF}\\x{10A00}\\x{10A04}\\x{10A07}-\\x{10A0B}\\x{10A10}-\\x{10A13}\\x{10A14}\\x{10A15}-\\x{10A17}\\x{10A18}\\x{10A19}-\\x{10A35}\\x{10A36}-\\x{10A37}\\x{10A3B}-\\x{10A3E}\\x{10A40}-\\x{10A48}\\x{10A49}-\\x{10A4F}\\x{10A50}-\\x{10A58}\\x{10A59}-\\x{10A5F}\\x{10A60}-\\x{10A7C}\\x{10A7D}-\\x{10A7E}\\x{10A7F}\\x{10A80}-\\x{10A9C}\\x{10A9D}-\\x{10A9F}\\x{10AA0}-\\x{10ABF}\\x{10AC0}-\\x{10AC7}\\x{10AC8}\\x{10AC9}-\\x{10AE4}\\x{10AE7}-\\x{10AEA}\\x{10AEB}-\\x{10AEF}\\x{10AF0}-\\x{10AF6}\\x{10AF7}-\\x{10AFF}\\x{10B00}-\\x{10B35}\\x{10B36}-\\x{10B38}\\x{10B40}-\\x{10B55}\\x{10B56}-\\x{10B57}\\x{10B58}-\\x{10B5F}\\x{10B60}-\\x{10B72}\\x{10B73}-\\x{10B77}\\x{10B78}-\\x{10B7F}\\x{10B80}-\\x{10B91}\\x{10B92}-\\x{10B98}\\x{10B99}-\\x{10B9C}\\x{10B9D}-\\x{10BA8}\\x{10BA9}-\\x{10BAF}\\x{10BB0}-\\x{10BFF}\\x{10C00}-\\x{10C48}\\x{10C49}-\\x{10C7F}\\x{10C80}-\\x{10CB2}\\x{10CB3}-\\x{10CBF}\\x{10CC0}-\\x{10CF2}\\x{10CF3}-\\x{10CF9}\\x{10CFA}-\\x{10CFF}\\x{10D00}-\\x{10D23}\\x{10D28}-\\x{10D2F}\\x{10D30}-\\x{10D39}\\x{10D3A}-\\x{10D3F}\\x{10D40}-\\x{10E5F}\\x{10E60}-\\x{10E7E}\\x{10E7F}\\x{10E80}-\\x{10EA9}\\x{10EAA}\\x{10EAD}\\x{10EAE}-\\x{10EAF}\\x{10EB0}-\\x{10EB1}\\x{10EB2}-\\x{10EFF}\\x{10F00}-\\x{10F1C}\\x{10F1D}-\\x{10F26}\\x{10F27}\\x{10F28}-\\x{10F2F}\\x{10F30}-\\x{10F45}\\x{10F51}-\\x{10F54}\\x{10F55}-\\x{10F59}\\x{10F5A}-\\x{10F6F}\\x{10F70}-\\x{10FAF}\\x{10FB0}-\\x{10FC4}\\x{10FC5}-\\x{10FCB}\\x{10FCC}-\\x{10FDF}\\x{10FE0}-\\x{10FF6}\\x{10FF7}-\\x{10FFF}\\x{1E800}-\\x{1E8C4}\\x{1E8C5}-\\x{1E8C6}\\x{1E8C7}-\\x{1E8CF}\\x{1E8D7}-\\x{1E8FF}\\x{1E900}-\\x{1E943}\\x{1E94B}\\x{1E94C}-\\x{1E94F}\\x{1E950}-\\x{1E959}\\x{1E95A}-\\x{1E95D}\\x{1E95E}-\\x{1E95F}\\x{1E960}-\\x{1EC6F}\\x{1EC70}\\x{1EC71}-\\x{1ECAB}\\x{1ECAC}\\x{1ECAD}-\\x{1ECAF}\\x{1ECB0}\\x{1ECB1}-\\x{1ECB4}\\x{1ECB5}-\\x{1ECBF}\\x{1ECC0}-\\x{1ECFF}\\x{1ED00}\\x{1ED01}-\\x{1ED2D}\\x{1ED2E}\\x{1ED2F}-\\x{1ED3D}\\x{1ED3E}-\\x{1ED4F}\\x{1ED50}-\\x{1EDFF}\\x{1EE00}-\\x{1EE03}\\x{1EE04}\\x{1EE05}-\\x{1EE1F}\\x{1EE20}\\x{1EE21}-\\x{1EE22}\\x{1EE23}\\x{1EE24}\\x{1EE25}-\\x{1EE26}\\x{1EE27}\\x{1EE28}\\x{1EE29}-\\x{1EE32}\\x{1EE33}\\x{1EE34}-\\x{1EE37}\\x{1EE38}\\x{1EE39}\\x{1EE3A}\\x{1EE3B}\\x{1EE3C}-\\x{1EE41}\\x{1EE42}\\x{1EE43}-\\x{1EE46}\\x{1EE47}\\x{1EE48}\\x{1EE49}\\x{1EE4A}\\x{1EE4B}\\x{1EE4C}\\x{1EE4D}-\\x{1EE4F}\\x{1EE50}\\x{1EE51}-\\x{1EE52}\\x{1EE53}\\x{1EE54}\\x{1EE55}-\\x{1EE56}\\x{1EE57}\\x{1EE58}\\x{1EE59}\\x{1EE5A}\\x{1EE5B}\\x{1EE5C}\\x{1EE5D}\\x{1EE5E}\\x{1EE5F}\\x{1EE60}\\x{1EE61}-\\x{1EE62}\\x{1EE63}\\x{1EE64}\\x{1EE65}-\\x{1EE66}\\x{1EE67}-\\x{1EE6A}\\x{1EE6B}\\x{1EE6C}-\\x{1EE72}\\x{1EE73}\\x{1EE74}-\\x{1EE77}\\x{1EE78}\\x{1EE79}-\\x{1EE7C}\\x{1EE7D}\\x{1EE7E}\\x{1EE7F}\\x{1EE80}-\\x{1EE89}\\x{1EE8A}\\x{1EE8B}-\\x{1EE9B}\\x{1EE9C}-\\x{1EEA0}\\x{1EEA1}-\\x{1EEA3}\\x{1EEA4}\\x{1EEA5}-\\x{1EEA9}\\x{1EEAA}\\x{1EEAB}-\\x{1EEBB}\\x{1EEBC}-\\x{1EEEF}\\x{1EEF2}-\\x{1EEFF}\\x{1EF00}-\\x{1EFFF}]/u';
19
+ const BIDI_STEP_6 = '/[^\\x{0000}-\\x{0008}\\x{0009}\\x{000A}\\x{000B}\\x{000C}\\x{000D}\\x{000E}-\\x{001B}\\x{001C}-\\x{001E}\\x{001F}\\x{0020}\\x{0021}-\\x{0022}\\x{0023}\\x{0024}\\x{0025}\\x{0026}-\\x{0027}\\x{0028}\\x{0029}\\x{002A}\\x{002B}\\x{002C}\\x{002D}\\x{002E}-\\x{002F}\\x{003A}\\x{003B}\\x{003C}-\\x{003E}\\x{003F}-\\x{0040}\\x{005B}\\x{005C}\\x{005D}\\x{005E}\\x{005F}\\x{0060}\\x{007B}\\x{007C}\\x{007D}\\x{007E}\\x{007F}-\\x{0084}\\x{0085}\\x{0086}-\\x{009F}\\x{00A0}\\x{00A1}\\x{00A2}-\\x{00A5}\\x{00A6}\\x{00A7}\\x{00A8}\\x{00A9}\\x{00AB}\\x{00AC}\\x{00AD}\\x{00AE}\\x{00AF}\\x{00B0}\\x{00B1}\\x{00B4}\\x{00B6}-\\x{00B7}\\x{00B8}\\x{00BB}\\x{00BC}-\\x{00BE}\\x{00BF}\\x{00D7}\\x{00F7}\\x{02B9}-\\x{02BA}\\x{02C2}-\\x{02C5}\\x{02C6}-\\x{02CF}\\x{02D2}-\\x{02DF}\\x{02E5}-\\x{02EB}\\x{02EC}\\x{02ED}\\x{02EF}-\\x{02FF}\\x{0300}-\\x{036F}\\x{0374}\\x{0375}\\x{037E}\\x{0384}-\\x{0385}\\x{0387}\\x{03F6}\\x{0483}-\\x{0487}\\x{0488}-\\x{0489}\\x{058A}\\x{058D}-\\x{058E}\\x{058F}\\x{0590}\\x{0591}-\\x{05BD}\\x{05BE}\\x{05BF}\\x{05C0}\\x{05C1}-\\x{05C2}\\x{05C3}\\x{05C4}-\\x{05C5}\\x{05C6}\\x{05C7}\\x{05C8}-\\x{05CF}\\x{05D0}-\\x{05EA}\\x{05EB}-\\x{05EE}\\x{05EF}-\\x{05F2}\\x{05F3}-\\x{05F4}\\x{05F5}-\\x{05FF}\\x{0600}-\\x{0605}\\x{0606}-\\x{0607}\\x{0608}\\x{0609}-\\x{060A}\\x{060B}\\x{060C}\\x{060D}\\x{060E}-\\x{060F}\\x{0610}-\\x{061A}\\x{061B}\\x{061C}\\x{061D}\\x{061E}-\\x{061F}\\x{0620}-\\x{063F}\\x{0640}\\x{0641}-\\x{064A}\\x{064B}-\\x{065F}\\x{0660}-\\x{0669}\\x{066A}\\x{066B}-\\x{066C}\\x{066D}\\x{066E}-\\x{066F}\\x{0670}\\x{0671}-\\x{06D3}\\x{06D4}\\x{06D5}\\x{06D6}-\\x{06DC}\\x{06DD}\\x{06DE}\\x{06DF}-\\x{06E4}\\x{06E5}-\\x{06E6}\\x{06E7}-\\x{06E8}\\x{06E9}\\x{06EA}-\\x{06ED}\\x{06EE}-\\x{06EF}\\x{06FA}-\\x{06FC}\\x{06FD}-\\x{06FE}\\x{06FF}\\x{0700}-\\x{070D}\\x{070E}\\x{070F}\\x{0710}\\x{0711}\\x{0712}-\\x{072F}\\x{0730}-\\x{074A}\\x{074B}-\\x{074C}\\x{074D}-\\x{07A5}\\x{07A6}-\\x{07B0}\\x{07B1}\\x{07B2}-\\x{07BF}\\x{07C0}-\\x{07C9}\\x{07CA}-\\x{07EA}\\x{07EB}-\\x{07F3}\\x{07F4}-\\x{07F5}\\x{07F6}\\x{07F7}-\\x{07F9}\\x{07FA}\\x{07FB}-\\x{07FC}\\x{07FD}\\x{07FE}-\\x{07FF}\\x{0800}-\\x{0815}\\x{0816}-\\x{0819}\\x{081A}\\x{081B}-\\x{0823}\\x{0824}\\x{0825}-\\x{0827}\\x{0828}\\x{0829}-\\x{082D}\\x{082E}-\\x{082F}\\x{0830}-\\x{083E}\\x{083F}\\x{0840}-\\x{0858}\\x{0859}-\\x{085B}\\x{085C}-\\x{085D}\\x{085E}\\x{085F}\\x{0860}-\\x{086A}\\x{086B}-\\x{086F}\\x{0870}-\\x{089F}\\x{08A0}-\\x{08B4}\\x{08B5}\\x{08B6}-\\x{08C7}\\x{08C8}-\\x{08D2}\\x{08D3}-\\x{08E1}\\x{08E2}\\x{08E3}-\\x{0902}\\x{093A}\\x{093C}\\x{0941}-\\x{0948}\\x{094D}\\x{0951}-\\x{0957}\\x{0962}-\\x{0963}\\x{0981}\\x{09BC}\\x{09C1}-\\x{09C4}\\x{09CD}\\x{09E2}-\\x{09E3}\\x{09F2}-\\x{09F3}\\x{09FB}\\x{09FE}\\x{0A01}-\\x{0A02}\\x{0A3C}\\x{0A41}-\\x{0A42}\\x{0A47}-\\x{0A48}\\x{0A4B}-\\x{0A4D}\\x{0A51}\\x{0A70}-\\x{0A71}\\x{0A75}\\x{0A81}-\\x{0A82}\\x{0ABC}\\x{0AC1}-\\x{0AC5}\\x{0AC7}-\\x{0AC8}\\x{0ACD}\\x{0AE2}-\\x{0AE3}\\x{0AF1}\\x{0AFA}-\\x{0AFF}\\x{0B01}\\x{0B3C}\\x{0B3F}\\x{0B41}-\\x{0B44}\\x{0B4D}\\x{0B55}-\\x{0B56}\\x{0B62}-\\x{0B63}\\x{0B82}\\x{0BC0}\\x{0BCD}\\x{0BF3}-\\x{0BF8}\\x{0BF9}\\x{0BFA}\\x{0C00}\\x{0C04}\\x{0C3E}-\\x{0C40}\\x{0C46}-\\x{0C48}\\x{0C4A}-\\x{0C4D}\\x{0C55}-\\x{0C56}\\x{0C62}-\\x{0C63}\\x{0C78}-\\x{0C7E}\\x{0C81}\\x{0CBC}\\x{0CCC}-\\x{0CCD}\\x{0CE2}-\\x{0CE3}\\x{0D00}-\\x{0D01}\\x{0D3B}-\\x{0D3C}\\x{0D41}-\\x{0D44}\\x{0D4D}\\x{0D62}-\\x{0D63}\\x{0D81}\\x{0DCA}\\x{0DD2}-\\x{0DD4}\\x{0DD6}\\x{0E31}\\x{0E34}-\\x{0E3A}\\x{0E3F}\\x{0E47}-\\x{0E4E}\\x{0EB1}\\x{0EB4}-\\x{0EBC}\\x{0EC8}-\\x{0ECD}\\x{0F18}-\\x{0F19}\\x{0F35}\\x{0F37}\\x{0F39}\\x{0F3A}\\x{0F3B}\\x{0F3C}\\x{0F3D}\\x{0F71}-\\x{0F7E}\\x{0F80}-\\x{0F84}\\x{0F86}-\\x{0F87}\\x{0F8D}-\\x{0F97}\\x{0F99}-\\x{0FBC}\\x{0FC6}\\x{102D}-\\x{1030}\\x{1032}-\\x{1037}\\x{1039}-\\x{103A}\\x{103D}-\\x{103E}\\x{1058}-\\x{1059}\\x{105E}-\\x{1060}\\x{1071}-\\x{1074}\\x{1082}\\x{1085}-\\x{1086}\\x{108D}\\x{109D}\\x{135D}-\\x{135F}\\x{1390}-\\x{1399}\\x{1400}\\x{1680}\\x{169B}\\x{169C}\\x{1712}-\\x{1714}\\x{1732}-\\x{1734}\\x{1752}-\\x{1753}\\x{1772}-\\x{1773}\\x{17B4}-\\x{17B5}\\x{17B7}-\\x{17BD}\\x{17C6}\\x{17C9}-\\x{17D3}\\x{17DB}\\x{17DD}\\x{17F0}-\\x{17F9}\\x{1800}-\\x{1805}\\x{1806}\\x{1807}-\\x{180A}\\x{180B}-\\x{180D}\\x{180E}\\x{1885}-\\x{1886}\\x{18A9}\\x{1920}-\\x{1922}\\x{1927}-\\x{1928}\\x{1932}\\x{1939}-\\x{193B}\\x{1940}\\x{1944}-\\x{1945}\\x{19DE}-\\x{19FF}\\x{1A17}-\\x{1A18}\\x{1A1B}\\x{1A56}\\x{1A58}-\\x{1A5E}\\x{1A60}\\x{1A62}\\x{1A65}-\\x{1A6C}\\x{1A73}-\\x{1A7C}\\x{1A7F}\\x{1AB0}-\\x{1ABD}\\x{1ABE}\\x{1ABF}-\\x{1AC0}\\x{1B00}-\\x{1B03}\\x{1B34}\\x{1B36}-\\x{1B3A}\\x{1B3C}\\x{1B42}\\x{1B6B}-\\x{1B73}\\x{1B80}-\\x{1B81}\\x{1BA2}-\\x{1BA5}\\x{1BA8}-\\x{1BA9}\\x{1BAB}-\\x{1BAD}\\x{1BE6}\\x{1BE8}-\\x{1BE9}\\x{1BED}\\x{1BEF}-\\x{1BF1}\\x{1C2C}-\\x{1C33}\\x{1C36}-\\x{1C37}\\x{1CD0}-\\x{1CD2}\\x{1CD4}-\\x{1CE0}\\x{1CE2}-\\x{1CE8}\\x{1CED}\\x{1CF4}\\x{1CF8}-\\x{1CF9}\\x{1DC0}-\\x{1DF9}\\x{1DFB}-\\x{1DFF}\\x{1FBD}\\x{1FBF}-\\x{1FC1}\\x{1FCD}-\\x{1FCF}\\x{1FDD}-\\x{1FDF}\\x{1FED}-\\x{1FEF}\\x{1FFD}-\\x{1FFE}\\x{2000}-\\x{200A}\\x{200B}-\\x{200D}\\x{200F}\\x{2010}-\\x{2015}\\x{2016}-\\x{2017}\\x{2018}\\x{2019}\\x{201A}\\x{201B}-\\x{201C}\\x{201D}\\x{201E}\\x{201F}\\x{2020}-\\x{2027}\\x{2028}\\x{2029}\\x{202A}\\x{202B}\\x{202C}\\x{202D}\\x{202E}\\x{202F}\\x{2030}-\\x{2034}\\x{2035}-\\x{2038}\\x{2039}\\x{203A}\\x{203B}-\\x{203E}\\x{203F}-\\x{2040}\\x{2041}-\\x{2043}\\x{2044}\\x{2045}\\x{2046}\\x{2047}-\\x{2051}\\x{2052}\\x{2053}\\x{2054}\\x{2055}-\\x{205E}\\x{205F}\\x{2060}-\\x{2064}\\x{2065}\\x{2066}\\x{2067}\\x{2068}\\x{2069}\\x{206A}-\\x{206F}\\x{207A}-\\x{207B}\\x{207C}\\x{207D}\\x{207E}\\x{208A}-\\x{208B}\\x{208C}\\x{208D}\\x{208E}\\x{20A0}-\\x{20BF}\\x{20C0}-\\x{20CF}\\x{20D0}-\\x{20DC}\\x{20DD}-\\x{20E0}\\x{20E1}\\x{20E2}-\\x{20E4}\\x{20E5}-\\x{20F0}\\x{2100}-\\x{2101}\\x{2103}-\\x{2106}\\x{2108}-\\x{2109}\\x{2114}\\x{2116}-\\x{2117}\\x{2118}\\x{211E}-\\x{2123}\\x{2125}\\x{2127}\\x{2129}\\x{212E}\\x{213A}-\\x{213B}\\x{2140}-\\x{2144}\\x{214A}\\x{214B}\\x{214C}-\\x{214D}\\x{2150}-\\x{215F}\\x{2189}\\x{218A}-\\x{218B}\\x{2190}-\\x{2194}\\x{2195}-\\x{2199}\\x{219A}-\\x{219B}\\x{219C}-\\x{219F}\\x{21A0}\\x{21A1}-\\x{21A2}\\x{21A3}\\x{21A4}-\\x{21A5}\\x{21A6}\\x{21A7}-\\x{21AD}\\x{21AE}\\x{21AF}-\\x{21CD}\\x{21CE}-\\x{21CF}\\x{21D0}-\\x{21D1}\\x{21D2}\\x{21D3}\\x{21D4}\\x{21D5}-\\x{21F3}\\x{21F4}-\\x{2211}\\x{2212}\\x{2213}\\x{2214}-\\x{22FF}\\x{2300}-\\x{2307}\\x{2308}\\x{2309}\\x{230A}\\x{230B}\\x{230C}-\\x{231F}\\x{2320}-\\x{2321}\\x{2322}-\\x{2328}\\x{2329}\\x{232A}\\x{232B}-\\x{2335}\\x{237B}\\x{237C}\\x{237D}-\\x{2394}\\x{2396}-\\x{239A}\\x{239B}-\\x{23B3}\\x{23B4}-\\x{23DB}\\x{23DC}-\\x{23E1}\\x{23E2}-\\x{2426}\\x{2440}-\\x{244A}\\x{2460}-\\x{2487}\\x{24EA}-\\x{24FF}\\x{2500}-\\x{25B6}\\x{25B7}\\x{25B8}-\\x{25C0}\\x{25C1}\\x{25C2}-\\x{25F7}\\x{25F8}-\\x{25FF}\\x{2600}-\\x{266E}\\x{266F}\\x{2670}-\\x{26AB}\\x{26AD}-\\x{2767}\\x{2768}\\x{2769}\\x{276A}\\x{276B}\\x{276C}\\x{276D}\\x{276E}\\x{276F}\\x{2770}\\x{2771}\\x{2772}\\x{2773}\\x{2774}\\x{2775}\\x{2776}-\\x{2793}\\x{2794}-\\x{27BF}\\x{27C0}-\\x{27C4}\\x{27C5}\\x{27C6}\\x{27C7}-\\x{27E5}\\x{27E6}\\x{27E7}\\x{27E8}\\x{27E9}\\x{27EA}\\x{27EB}\\x{27EC}\\x{27ED}\\x{27EE}\\x{27EF}\\x{27F0}-\\x{27FF}\\x{2900}-\\x{2982}\\x{2983}\\x{2984}\\x{2985}\\x{2986}\\x{2987}\\x{2988}\\x{2989}\\x{298A}\\x{298B}\\x{298C}\\x{298D}\\x{298E}\\x{298F}\\x{2990}\\x{2991}\\x{2992}\\x{2993}\\x{2994}\\x{2995}\\x{2996}\\x{2997}\\x{2998}\\x{2999}-\\x{29D7}\\x{29D8}\\x{29D9}\\x{29DA}\\x{29DB}\\x{29DC}-\\x{29FB}\\x{29FC}\\x{29FD}\\x{29FE}-\\x{2AFF}\\x{2B00}-\\x{2B2F}\\x{2B30}-\\x{2B44}\\x{2B45}-\\x{2B46}\\x{2B47}-\\x{2B4C}\\x{2B4D}-\\x{2B73}\\x{2B76}-\\x{2B95}\\x{2B97}-\\x{2BFF}\\x{2CE5}-\\x{2CEA}\\x{2CEF}-\\x{2CF1}\\x{2CF9}-\\x{2CFC}\\x{2CFD}\\x{2CFE}-\\x{2CFF}\\x{2D7F}\\x{2DE0}-\\x{2DFF}\\x{2E00}-\\x{2E01}\\x{2E02}\\x{2E03}\\x{2E04}\\x{2E05}\\x{2E06}-\\x{2E08}\\x{2E09}\\x{2E0A}\\x{2E0B}\\x{2E0C}\\x{2E0D}\\x{2E0E}-\\x{2E16}\\x{2E17}\\x{2E18}-\\x{2E19}\\x{2E1A}\\x{2E1B}\\x{2E1C}\\x{2E1D}\\x{2E1E}-\\x{2E1F}\\x{2E20}\\x{2E21}\\x{2E22}\\x{2E23}\\x{2E24}\\x{2E25}\\x{2E26}\\x{2E27}\\x{2E28}\\x{2E29}\\x{2E2A}-\\x{2E2E}\\x{2E2F}\\x{2E30}-\\x{2E39}\\x{2E3A}-\\x{2E3B}\\x{2E3C}-\\x{2E3F}\\x{2E40}\\x{2E41}\\x{2E42}\\x{2E43}-\\x{2E4F}\\x{2E50}-\\x{2E51}\\x{2E52}\\x{2E80}-\\x{2E99}\\x{2E9B}-\\x{2EF3}\\x{2F00}-\\x{2FD5}\\x{2FF0}-\\x{2FFB}\\x{3000}\\x{3001}-\\x{3003}\\x{3004}\\x{3008}\\x{3009}\\x{300A}\\x{300B}\\x{300C}\\x{300D}\\x{300E}\\x{300F}\\x{3010}\\x{3011}\\x{3012}-\\x{3013}\\x{3014}\\x{3015}\\x{3016}\\x{3017}\\x{3018}\\x{3019}\\x{301A}\\x{301B}\\x{301C}\\x{301D}\\x{301E}-\\x{301F}\\x{3020}\\x{302A}-\\x{302D}\\x{3030}\\x{3036}-\\x{3037}\\x{303D}\\x{303E}-\\x{303F}\\x{3099}-\\x{309A}\\x{309B}-\\x{309C}\\x{30A0}\\x{30FB}\\x{31C0}-\\x{31E3}\\x{321D}-\\x{321E}\\x{3250}\\x{3251}-\\x{325F}\\x{327C}-\\x{327E}\\x{32B1}-\\x{32BF}\\x{32CC}-\\x{32CF}\\x{3377}-\\x{337A}\\x{33DE}-\\x{33DF}\\x{33FF}\\x{4DC0}-\\x{4DFF}\\x{A490}-\\x{A4C6}\\x{A60D}-\\x{A60F}\\x{A66F}\\x{A670}-\\x{A672}\\x{A673}\\x{A674}-\\x{A67D}\\x{A67E}\\x{A67F}\\x{A69E}-\\x{A69F}\\x{A6F0}-\\x{A6F1}\\x{A700}-\\x{A716}\\x{A717}-\\x{A71F}\\x{A720}-\\x{A721}\\x{A788}\\x{A802}\\x{A806}\\x{A80B}\\x{A825}-\\x{A826}\\x{A828}-\\x{A82B}\\x{A82C}\\x{A838}\\x{A839}\\x{A874}-\\x{A877}\\x{A8C4}-\\x{A8C5}\\x{A8E0}-\\x{A8F1}\\x{A8FF}\\x{A926}-\\x{A92D}\\x{A947}-\\x{A951}\\x{A980}-\\x{A982}\\x{A9B3}\\x{A9B6}-\\x{A9B9}\\x{A9BC}-\\x{A9BD}\\x{A9E5}\\x{AA29}-\\x{AA2E}\\x{AA31}-\\x{AA32}\\x{AA35}-\\x{AA36}\\x{AA43}\\x{AA4C}\\x{AA7C}\\x{AAB0}\\x{AAB2}-\\x{AAB4}\\x{AAB7}-\\x{AAB8}\\x{AABE}-\\x{AABF}\\x{AAC1}\\x{AAEC}-\\x{AAED}\\x{AAF6}\\x{AB6A}-\\x{AB6B}\\x{ABE5}\\x{ABE8}\\x{ABED}\\x{FB1D}\\x{FB1E}\\x{FB1F}-\\x{FB28}\\x{FB29}\\x{FB2A}-\\x{FB36}\\x{FB37}\\x{FB38}-\\x{FB3C}\\x{FB3D}\\x{FB3E}\\x{FB3F}\\x{FB40}-\\x{FB41}\\x{FB42}\\x{FB43}-\\x{FB44}\\x{FB45}\\x{FB46}-\\x{FB4F}\\x{FB50}-\\x{FBB1}\\x{FBB2}-\\x{FBC1}\\x{FBC2}-\\x{FBD2}\\x{FBD3}-\\x{FD3D}\\x{FD3E}\\x{FD3F}\\x{FD40}-\\x{FD4F}\\x{FD50}-\\x{FD8F}\\x{FD90}-\\x{FD91}\\x{FD92}-\\x{FDC7}\\x{FDC8}-\\x{FDCF}\\x{FDD0}-\\x{FDEF}\\x{FDF0}-\\x{FDFB}\\x{FDFC}\\x{FDFD}\\x{FDFE}-\\x{FDFF}\\x{FE00}-\\x{FE0F}\\x{FE10}-\\x{FE16}\\x{FE17}\\x{FE18}\\x{FE19}\\x{FE20}-\\x{FE2F}\\x{FE30}\\x{FE31}-\\x{FE32}\\x{FE33}-\\x{FE34}\\x{FE35}\\x{FE36}\\x{FE37}\\x{FE38}\\x{FE39}\\x{FE3A}\\x{FE3B}\\x{FE3C}\\x{FE3D}\\x{FE3E}\\x{FE3F}\\x{FE40}\\x{FE41}\\x{FE42}\\x{FE43}\\x{FE44}\\x{FE45}-\\x{FE46}\\x{FE47}\\x{FE48}\\x{FE49}-\\x{FE4C}\\x{FE4D}-\\x{FE4F}\\x{FE50}\\x{FE51}\\x{FE52}\\x{FE54}\\x{FE55}\\x{FE56}-\\x{FE57}\\x{FE58}\\x{FE59}\\x{FE5A}\\x{FE5B}\\x{FE5C}\\x{FE5D}\\x{FE5E}\\x{FE5F}\\x{FE60}-\\x{FE61}\\x{FE62}\\x{FE63}\\x{FE64}-\\x{FE66}\\x{FE68}\\x{FE69}\\x{FE6A}\\x{FE6B}\\x{FE70}-\\x{FE74}\\x{FE75}\\x{FE76}-\\x{FEFC}\\x{FEFD}-\\x{FEFE}\\x{FEFF}\\x{FF01}-\\x{FF02}\\x{FF03}\\x{FF04}\\x{FF05}\\x{FF06}-\\x{FF07}\\x{FF08}\\x{FF09}\\x{FF0A}\\x{FF0B}\\x{FF0C}\\x{FF0D}\\x{FF0E}-\\x{FF0F}\\x{FF1A}\\x{FF1B}\\x{FF1C}-\\x{FF1E}\\x{FF1F}-\\x{FF20}\\x{FF3B}\\x{FF3C}\\x{FF3D}\\x{FF3E}\\x{FF3F}\\x{FF40}\\x{FF5B}\\x{FF5C}\\x{FF5D}\\x{FF5E}\\x{FF5F}\\x{FF60}\\x{FF61}\\x{FF62}\\x{FF63}\\x{FF64}-\\x{FF65}\\x{FFE0}-\\x{FFE1}\\x{FFE2}\\x{FFE3}\\x{FFE4}\\x{FFE5}-\\x{FFE6}\\x{FFE8}\\x{FFE9}-\\x{FFEC}\\x{FFED}-\\x{FFEE}\\x{FFF0}-\\x{FFF8}\\x{FFF9}-\\x{FFFB}\\x{FFFC}-\\x{FFFD}\\x{FFFE}-\\x{FFFF}\\x{10101}\\x{10140}-\\x{10174}\\x{10175}-\\x{10178}\\x{10179}-\\x{10189}\\x{1018A}-\\x{1018B}\\x{1018C}\\x{10190}-\\x{1019C}\\x{101A0}\\x{101FD}\\x{102E0}\\x{10376}-\\x{1037A}\\x{10800}-\\x{10805}\\x{10806}-\\x{10807}\\x{10808}\\x{10809}\\x{1080A}-\\x{10835}\\x{10836}\\x{10837}-\\x{10838}\\x{10839}-\\x{1083B}\\x{1083C}\\x{1083D}-\\x{1083E}\\x{1083F}-\\x{10855}\\x{10856}\\x{10857}\\x{10858}-\\x{1085F}\\x{10860}-\\x{10876}\\x{10877}-\\x{10878}\\x{10879}-\\x{1087F}\\x{10880}-\\x{1089E}\\x{1089F}-\\x{108A6}\\x{108A7}-\\x{108AF}\\x{108B0}-\\x{108DF}\\x{108E0}-\\x{108F2}\\x{108F3}\\x{108F4}-\\x{108F5}\\x{108F6}-\\x{108FA}\\x{108FB}-\\x{108FF}\\x{10900}-\\x{10915}\\x{10916}-\\x{1091B}\\x{1091C}-\\x{1091E}\\x{1091F}\\x{10920}-\\x{10939}\\x{1093A}-\\x{1093E}\\x{1093F}\\x{10940}-\\x{1097F}\\x{10980}-\\x{109B7}\\x{109B8}-\\x{109BB}\\x{109BC}-\\x{109BD}\\x{109BE}-\\x{109BF}\\x{109C0}-\\x{109CF}\\x{109D0}-\\x{109D1}\\x{109D2}-\\x{109FF}\\x{10A00}\\x{10A01}-\\x{10A03}\\x{10A04}\\x{10A05}-\\x{10A06}\\x{10A07}-\\x{10A0B}\\x{10A0C}-\\x{10A0F}\\x{10A10}-\\x{10A13}\\x{10A14}\\x{10A15}-\\x{10A17}\\x{10A18}\\x{10A19}-\\x{10A35}\\x{10A36}-\\x{10A37}\\x{10A38}-\\x{10A3A}\\x{10A3B}-\\x{10A3E}\\x{10A3F}\\x{10A40}-\\x{10A48}\\x{10A49}-\\x{10A4F}\\x{10A50}-\\x{10A58}\\x{10A59}-\\x{10A5F}\\x{10A60}-\\x{10A7C}\\x{10A7D}-\\x{10A7E}\\x{10A7F}\\x{10A80}-\\x{10A9C}\\x{10A9D}-\\x{10A9F}\\x{10AA0}-\\x{10ABF}\\x{10AC0}-\\x{10AC7}\\x{10AC8}\\x{10AC9}-\\x{10AE4}\\x{10AE5}-\\x{10AE6}\\x{10AE7}-\\x{10AEA}\\x{10AEB}-\\x{10AEF}\\x{10AF0}-\\x{10AF6}\\x{10AF7}-\\x{10AFF}\\x{10B00}-\\x{10B35}\\x{10B36}-\\x{10B38}\\x{10B39}-\\x{10B3F}\\x{10B40}-\\x{10B55}\\x{10B56}-\\x{10B57}\\x{10B58}-\\x{10B5F}\\x{10B60}-\\x{10B72}\\x{10B73}-\\x{10B77}\\x{10B78}-\\x{10B7F}\\x{10B80}-\\x{10B91}\\x{10B92}-\\x{10B98}\\x{10B99}-\\x{10B9C}\\x{10B9D}-\\x{10BA8}\\x{10BA9}-\\x{10BAF}\\x{10BB0}-\\x{10BFF}\\x{10C00}-\\x{10C48}\\x{10C49}-\\x{10C7F}\\x{10C80}-\\x{10CB2}\\x{10CB3}-\\x{10CBF}\\x{10CC0}-\\x{10CF2}\\x{10CF3}-\\x{10CF9}\\x{10CFA}-\\x{10CFF}\\x{10D00}-\\x{10D23}\\x{10D24}-\\x{10D27}\\x{10D28}-\\x{10D2F}\\x{10D30}-\\x{10D39}\\x{10D3A}-\\x{10D3F}\\x{10D40}-\\x{10E5F}\\x{10E60}-\\x{10E7E}\\x{10E7F}\\x{10E80}-\\x{10EA9}\\x{10EAA}\\x{10EAB}-\\x{10EAC}\\x{10EAD}\\x{10EAE}-\\x{10EAF}\\x{10EB0}-\\x{10EB1}\\x{10EB2}-\\x{10EFF}\\x{10F00}-\\x{10F1C}\\x{10F1D}-\\x{10F26}\\x{10F27}\\x{10F28}-\\x{10F2F}\\x{10F30}-\\x{10F45}\\x{10F46}-\\x{10F50}\\x{10F51}-\\x{10F54}\\x{10F55}-\\x{10F59}\\x{10F5A}-\\x{10F6F}\\x{10F70}-\\x{10FAF}\\x{10FB0}-\\x{10FC4}\\x{10FC5}-\\x{10FCB}\\x{10FCC}-\\x{10FDF}\\x{10FE0}-\\x{10FF6}\\x{10FF7}-\\x{10FFF}\\x{11001}\\x{11038}-\\x{11046}\\x{11052}-\\x{11065}\\x{1107F}-\\x{11081}\\x{110B3}-\\x{110B6}\\x{110B9}-\\x{110BA}\\x{11100}-\\x{11102}\\x{11127}-\\x{1112B}\\x{1112D}-\\x{11134}\\x{11173}\\x{11180}-\\x{11181}\\x{111B6}-\\x{111BE}\\x{111C9}-\\x{111CC}\\x{111CF}\\x{1122F}-\\x{11231}\\x{11234}\\x{11236}-\\x{11237}\\x{1123E}\\x{112DF}\\x{112E3}-\\x{112EA}\\x{11300}-\\x{11301}\\x{1133B}-\\x{1133C}\\x{11340}\\x{11366}-\\x{1136C}\\x{11370}-\\x{11374}\\x{11438}-\\x{1143F}\\x{11442}-\\x{11444}\\x{11446}\\x{1145E}\\x{114B3}-\\x{114B8}\\x{114BA}\\x{114BF}-\\x{114C0}\\x{114C2}-\\x{114C3}\\x{115B2}-\\x{115B5}\\x{115BC}-\\x{115BD}\\x{115BF}-\\x{115C0}\\x{115DC}-\\x{115DD}\\x{11633}-\\x{1163A}\\x{1163D}\\x{1163F}-\\x{11640}\\x{11660}-\\x{1166C}\\x{116AB}\\x{116AD}\\x{116B0}-\\x{116B5}\\x{116B7}\\x{1171D}-\\x{1171F}\\x{11722}-\\x{11725}\\x{11727}-\\x{1172B}\\x{1182F}-\\x{11837}\\x{11839}-\\x{1183A}\\x{1193B}-\\x{1193C}\\x{1193E}\\x{11943}\\x{119D4}-\\x{119D7}\\x{119DA}-\\x{119DB}\\x{119E0}\\x{11A01}-\\x{11A06}\\x{11A09}-\\x{11A0A}\\x{11A33}-\\x{11A38}\\x{11A3B}-\\x{11A3E}\\x{11A47}\\x{11A51}-\\x{11A56}\\x{11A59}-\\x{11A5B}\\x{11A8A}-\\x{11A96}\\x{11A98}-\\x{11A99}\\x{11C30}-\\x{11C36}\\x{11C38}-\\x{11C3D}\\x{11C92}-\\x{11CA7}\\x{11CAA}-\\x{11CB0}\\x{11CB2}-\\x{11CB3}\\x{11CB5}-\\x{11CB6}\\x{11D31}-\\x{11D36}\\x{11D3A}\\x{11D3C}-\\x{11D3D}\\x{11D3F}-\\x{11D45}\\x{11D47}\\x{11D90}-\\x{11D91}\\x{11D95}\\x{11D97}\\x{11EF3}-\\x{11EF4}\\x{11FD5}-\\x{11FDC}\\x{11FDD}-\\x{11FE0}\\x{11FE1}-\\x{11FF1}\\x{16AF0}-\\x{16AF4}\\x{16B30}-\\x{16B36}\\x{16F4F}\\x{16F8F}-\\x{16F92}\\x{16FE2}\\x{16FE4}\\x{1BC9D}-\\x{1BC9E}\\x{1BCA0}-\\x{1BCA3}\\x{1D167}-\\x{1D169}\\x{1D173}-\\x{1D17A}\\x{1D17B}-\\x{1D182}\\x{1D185}-\\x{1D18B}\\x{1D1AA}-\\x{1D1AD}\\x{1D200}-\\x{1D241}\\x{1D242}-\\x{1D244}\\x{1D245}\\x{1D300}-\\x{1D356}\\x{1D6DB}\\x{1D715}\\x{1D74F}\\x{1D789}\\x{1D7C3}\\x{1DA00}-\\x{1DA36}\\x{1DA3B}-\\x{1DA6C}\\x{1DA75}\\x{1DA84}\\x{1DA9B}-\\x{1DA9F}\\x{1DAA1}-\\x{1DAAF}\\x{1E000}-\\x{1E006}\\x{1E008}-\\x{1E018}\\x{1E01B}-\\x{1E021}\\x{1E023}-\\x{1E024}\\x{1E026}-\\x{1E02A}\\x{1E130}-\\x{1E136}\\x{1E2EC}-\\x{1E2EF}\\x{1E2FF}\\x{1E800}-\\x{1E8C4}\\x{1E8C5}-\\x{1E8C6}\\x{1E8C7}-\\x{1E8CF}\\x{1E8D0}-\\x{1E8D6}\\x{1E8D7}-\\x{1E8FF}\\x{1E900}-\\x{1E943}\\x{1E944}-\\x{1E94A}\\x{1E94B}\\x{1E94C}-\\x{1E94F}\\x{1E950}-\\x{1E959}\\x{1E95A}-\\x{1E95D}\\x{1E95E}-\\x{1E95F}\\x{1E960}-\\x{1EC6F}\\x{1EC70}\\x{1EC71}-\\x{1ECAB}\\x{1ECAC}\\x{1ECAD}-\\x{1ECAF}\\x{1ECB0}\\x{1ECB1}-\\x{1ECB4}\\x{1ECB5}-\\x{1ECBF}\\x{1ECC0}-\\x{1ECFF}\\x{1ED00}\\x{1ED01}-\\x{1ED2D}\\x{1ED2E}\\x{1ED2F}-\\x{1ED3D}\\x{1ED3E}-\\x{1ED4F}\\x{1ED50}-\\x{1EDFF}\\x{1EE00}-\\x{1EE03}\\x{1EE04}\\x{1EE05}-\\x{1EE1F}\\x{1EE20}\\x{1EE21}-\\x{1EE22}\\x{1EE23}\\x{1EE24}\\x{1EE25}-\\x{1EE26}\\x{1EE27}\\x{1EE28}\\x{1EE29}-\\x{1EE32}\\x{1EE33}\\x{1EE34}-\\x{1EE37}\\x{1EE38}\\x{1EE39}\\x{1EE3A}\\x{1EE3B}\\x{1EE3C}-\\x{1EE41}\\x{1EE42}\\x{1EE43}-\\x{1EE46}\\x{1EE47}\\x{1EE48}\\x{1EE49}\\x{1EE4A}\\x{1EE4B}\\x{1EE4C}\\x{1EE4D}-\\x{1EE4F}\\x{1EE50}\\x{1EE51}-\\x{1EE52}\\x{1EE53}\\x{1EE54}\\x{1EE55}-\\x{1EE56}\\x{1EE57}\\x{1EE58}\\x{1EE59}\\x{1EE5A}\\x{1EE5B}\\x{1EE5C}\\x{1EE5D}\\x{1EE5E}\\x{1EE5F}\\x{1EE60}\\x{1EE61}-\\x{1EE62}\\x{1EE63}\\x{1EE64}\\x{1EE65}-\\x{1EE66}\\x{1EE67}-\\x{1EE6A}\\x{1EE6B}\\x{1EE6C}-\\x{1EE72}\\x{1EE73}\\x{1EE74}-\\x{1EE77}\\x{1EE78}\\x{1EE79}-\\x{1EE7C}\\x{1EE7D}\\x{1EE7E}\\x{1EE7F}\\x{1EE80}-\\x{1EE89}\\x{1EE8A}\\x{1EE8B}-\\x{1EE9B}\\x{1EE9C}-\\x{1EEA0}\\x{1EEA1}-\\x{1EEA3}\\x{1EEA4}\\x{1EEA5}-\\x{1EEA9}\\x{1EEAA}\\x{1EEAB}-\\x{1EEBB}\\x{1EEBC}-\\x{1EEEF}\\x{1EEF0}-\\x{1EEF1}\\x{1EEF2}-\\x{1EEFF}\\x{1EF00}-\\x{1EFFF}\\x{1F000}-\\x{1F02B}\\x{1F030}-\\x{1F093}\\x{1F0A0}-\\x{1F0AE}\\x{1F0B1}-\\x{1F0BF}\\x{1F0C1}-\\x{1F0CF}\\x{1F0D1}-\\x{1F0F5}\\x{1F10B}-\\x{1F10C}\\x{1F10D}-\\x{1F10F}\\x{1F12F}\\x{1F16A}-\\x{1F16F}\\x{1F1AD}\\x{1F260}-\\x{1F265}\\x{1F300}-\\x{1F3FA}\\x{1F3FB}-\\x{1F3FF}\\x{1F400}-\\x{1F6D7}\\x{1F6E0}-\\x{1F6EC}\\x{1F6F0}-\\x{1F6FC}\\x{1F700}-\\x{1F773}\\x{1F780}-\\x{1F7D8}\\x{1F7E0}-\\x{1F7EB}\\x{1F800}-\\x{1F80B}\\x{1F810}-\\x{1F847}\\x{1F850}-\\x{1F859}\\x{1F860}-\\x{1F887}\\x{1F890}-\\x{1F8AD}\\x{1F8B0}-\\x{1F8B1}\\x{1F900}-\\x{1F978}\\x{1F97A}-\\x{1F9CB}\\x{1F9CD}-\\x{1FA53}\\x{1FA60}-\\x{1FA6D}\\x{1FA70}-\\x{1FA74}\\x{1FA78}-\\x{1FA7A}\\x{1FA80}-\\x{1FA86}\\x{1FA90}-\\x{1FAA8}\\x{1FAB0}-\\x{1FAB6}\\x{1FAC0}-\\x{1FAC2}\\x{1FAD0}-\\x{1FAD6}\\x{1FB00}-\\x{1FB92}\\x{1FB94}-\\x{1FBCA}\\x{1FFFE}-\\x{1FFFF}\\x{2FFFE}-\\x{2FFFF}\\x{3FFFE}-\\x{3FFFF}\\x{4FFFE}-\\x{4FFFF}\\x{5FFFE}-\\x{5FFFF}\\x{6FFFE}-\\x{6FFFF}\\x{7FFFE}-\\x{7FFFF}\\x{8FFFE}-\\x{8FFFF}\\x{9FFFE}-\\x{9FFFF}\\x{AFFFE}-\\x{AFFFF}\\x{BFFFE}-\\x{BFFFF}\\x{CFFFE}-\\x{CFFFF}\\x{DFFFE}-\\x{E0000}\\x{E0001}\\x{E0002}-\\x{E001F}\\x{E0020}-\\x{E007F}\\x{E0080}-\\x{E00FF}\\x{E0100}-\\x{E01EF}\\x{E01F0}-\\x{E0FFF}\\x{EFFFE}-\\x{EFFFF}\\x{FFFFE}-\\x{FFFFF}\\x{10FFFE}-\\x{10FFFF}][\\x{0300}-\\x{036F}\\x{0483}-\\x{0487}\\x{0488}-\\x{0489}\\x{0591}-\\x{05BD}\\x{05BF}\\x{05C1}-\\x{05C2}\\x{05C4}-\\x{05C5}\\x{05C7}\\x{0610}-\\x{061A}\\x{064B}-\\x{065F}\\x{0670}\\x{06D6}-\\x{06DC}\\x{06DF}-\\x{06E4}\\x{06E7}-\\x{06E8}\\x{06EA}-\\x{06ED}\\x{0711}\\x{0730}-\\x{074A}\\x{07A6}-\\x{07B0}\\x{07EB}-\\x{07F3}\\x{07FD}\\x{0816}-\\x{0819}\\x{081B}-\\x{0823}\\x{0825}-\\x{0827}\\x{0829}-\\x{082D}\\x{0859}-\\x{085B}\\x{08D3}-\\x{08E1}\\x{08E3}-\\x{0902}\\x{093A}\\x{093C}\\x{0941}-\\x{0948}\\x{094D}\\x{0951}-\\x{0957}\\x{0962}-\\x{0963}\\x{0981}\\x{09BC}\\x{09C1}-\\x{09C4}\\x{09CD}\\x{09E2}-\\x{09E3}\\x{09FE}\\x{0A01}-\\x{0A02}\\x{0A3C}\\x{0A41}-\\x{0A42}\\x{0A47}-\\x{0A48}\\x{0A4B}-\\x{0A4D}\\x{0A51}\\x{0A70}-\\x{0A71}\\x{0A75}\\x{0A81}-\\x{0A82}\\x{0ABC}\\x{0AC1}-\\x{0AC5}\\x{0AC7}-\\x{0AC8}\\x{0ACD}\\x{0AE2}-\\x{0AE3}\\x{0AFA}-\\x{0AFF}\\x{0B01}\\x{0B3C}\\x{0B3F}\\x{0B41}-\\x{0B44}\\x{0B4D}\\x{0B55}-\\x{0B56}\\x{0B62}-\\x{0B63}\\x{0B82}\\x{0BC0}\\x{0BCD}\\x{0C00}\\x{0C04}\\x{0C3E}-\\x{0C40}\\x{0C46}-\\x{0C48}\\x{0C4A}-\\x{0C4D}\\x{0C55}-\\x{0C56}\\x{0C62}-\\x{0C63}\\x{0C81}\\x{0CBC}\\x{0CCC}-\\x{0CCD}\\x{0CE2}-\\x{0CE3}\\x{0D00}-\\x{0D01}\\x{0D3B}-\\x{0D3C}\\x{0D41}-\\x{0D44}\\x{0D4D}\\x{0D62}-\\x{0D63}\\x{0D81}\\x{0DCA}\\x{0DD2}-\\x{0DD4}\\x{0DD6}\\x{0E31}\\x{0E34}-\\x{0E3A}\\x{0E47}-\\x{0E4E}\\x{0EB1}\\x{0EB4}-\\x{0EBC}\\x{0EC8}-\\x{0ECD}\\x{0F18}-\\x{0F19}\\x{0F35}\\x{0F37}\\x{0F39}\\x{0F71}-\\x{0F7E}\\x{0F80}-\\x{0F84}\\x{0F86}-\\x{0F87}\\x{0F8D}-\\x{0F97}\\x{0F99}-\\x{0FBC}\\x{0FC6}\\x{102D}-\\x{1030}\\x{1032}-\\x{1037}\\x{1039}-\\x{103A}\\x{103D}-\\x{103E}\\x{1058}-\\x{1059}\\x{105E}-\\x{1060}\\x{1071}-\\x{1074}\\x{1082}\\x{1085}-\\x{1086}\\x{108D}\\x{109D}\\x{135D}-\\x{135F}\\x{1712}-\\x{1714}\\x{1732}-\\x{1734}\\x{1752}-\\x{1753}\\x{1772}-\\x{1773}\\x{17B4}-\\x{17B5}\\x{17B7}-\\x{17BD}\\x{17C6}\\x{17C9}-\\x{17D3}\\x{17DD}\\x{180B}-\\x{180D}\\x{1885}-\\x{1886}\\x{18A9}\\x{1920}-\\x{1922}\\x{1927}-\\x{1928}\\x{1932}\\x{1939}-\\x{193B}\\x{1A17}-\\x{1A18}\\x{1A1B}\\x{1A56}\\x{1A58}-\\x{1A5E}\\x{1A60}\\x{1A62}\\x{1A65}-\\x{1A6C}\\x{1A73}-\\x{1A7C}\\x{1A7F}\\x{1AB0}-\\x{1ABD}\\x{1ABE}\\x{1ABF}-\\x{1AC0}\\x{1B00}-\\x{1B03}\\x{1B34}\\x{1B36}-\\x{1B3A}\\x{1B3C}\\x{1B42}\\x{1B6B}-\\x{1B73}\\x{1B80}-\\x{1B81}\\x{1BA2}-\\x{1BA5}\\x{1BA8}-\\x{1BA9}\\x{1BAB}-\\x{1BAD}\\x{1BE6}\\x{1BE8}-\\x{1BE9}\\x{1BED}\\x{1BEF}-\\x{1BF1}\\x{1C2C}-\\x{1C33}\\x{1C36}-\\x{1C37}\\x{1CD0}-\\x{1CD2}\\x{1CD4}-\\x{1CE0}\\x{1CE2}-\\x{1CE8}\\x{1CED}\\x{1CF4}\\x{1CF8}-\\x{1CF9}\\x{1DC0}-\\x{1DF9}\\x{1DFB}-\\x{1DFF}\\x{20D0}-\\x{20DC}\\x{20DD}-\\x{20E0}\\x{20E1}\\x{20E2}-\\x{20E4}\\x{20E5}-\\x{20F0}\\x{2CEF}-\\x{2CF1}\\x{2D7F}\\x{2DE0}-\\x{2DFF}\\x{302A}-\\x{302D}\\x{3099}-\\x{309A}\\x{A66F}\\x{A670}-\\x{A672}\\x{A674}-\\x{A67D}\\x{A69E}-\\x{A69F}\\x{A6F0}-\\x{A6F1}\\x{A802}\\x{A806}\\x{A80B}\\x{A825}-\\x{A826}\\x{A82C}\\x{A8C4}-\\x{A8C5}\\x{A8E0}-\\x{A8F1}\\x{A8FF}\\x{A926}-\\x{A92D}\\x{A947}-\\x{A951}\\x{A980}-\\x{A982}\\x{A9B3}\\x{A9B6}-\\x{A9B9}\\x{A9BC}-\\x{A9BD}\\x{A9E5}\\x{AA29}-\\x{AA2E}\\x{AA31}-\\x{AA32}\\x{AA35}-\\x{AA36}\\x{AA43}\\x{AA4C}\\x{AA7C}\\x{AAB0}\\x{AAB2}-\\x{AAB4}\\x{AAB7}-\\x{AAB8}\\x{AABE}-\\x{AABF}\\x{AAC1}\\x{AAEC}-\\x{AAED}\\x{AAF6}\\x{ABE5}\\x{ABE8}\\x{ABED}\\x{FB1E}\\x{FE00}-\\x{FE0F}\\x{FE20}-\\x{FE2F}\\x{101FD}\\x{102E0}\\x{10376}-\\x{1037A}\\x{10A01}-\\x{10A03}\\x{10A05}-\\x{10A06}\\x{10A0C}-\\x{10A0F}\\x{10A38}-\\x{10A3A}\\x{10A3F}\\x{10AE5}-\\x{10AE6}\\x{10D24}-\\x{10D27}\\x{10EAB}-\\x{10EAC}\\x{10F46}-\\x{10F50}\\x{11001}\\x{11038}-\\x{11046}\\x{1107F}-\\x{11081}\\x{110B3}-\\x{110B6}\\x{110B9}-\\x{110BA}\\x{11100}-\\x{11102}\\x{11127}-\\x{1112B}\\x{1112D}-\\x{11134}\\x{11173}\\x{11180}-\\x{11181}\\x{111B6}-\\x{111BE}\\x{111C9}-\\x{111CC}\\x{111CF}\\x{1122F}-\\x{11231}\\x{11234}\\x{11236}-\\x{11237}\\x{1123E}\\x{112DF}\\x{112E3}-\\x{112EA}\\x{11300}-\\x{11301}\\x{1133B}-\\x{1133C}\\x{11340}\\x{11366}-\\x{1136C}\\x{11370}-\\x{11374}\\x{11438}-\\x{1143F}\\x{11442}-\\x{11444}\\x{11446}\\x{1145E}\\x{114B3}-\\x{114B8}\\x{114BA}\\x{114BF}-\\x{114C0}\\x{114C2}-\\x{114C3}\\x{115B2}-\\x{115B5}\\x{115BC}-\\x{115BD}\\x{115BF}-\\x{115C0}\\x{115DC}-\\x{115DD}\\x{11633}-\\x{1163A}\\x{1163D}\\x{1163F}-\\x{11640}\\x{116AB}\\x{116AD}\\x{116B0}-\\x{116B5}\\x{116B7}\\x{1171D}-\\x{1171F}\\x{11722}-\\x{11725}\\x{11727}-\\x{1172B}\\x{1182F}-\\x{11837}\\x{11839}-\\x{1183A}\\x{1193B}-\\x{1193C}\\x{1193E}\\x{11943}\\x{119D4}-\\x{119D7}\\x{119DA}-\\x{119DB}\\x{119E0}\\x{11A01}-\\x{11A06}\\x{11A09}-\\x{11A0A}\\x{11A33}-\\x{11A38}\\x{11A3B}-\\x{11A3E}\\x{11A47}\\x{11A51}-\\x{11A56}\\x{11A59}-\\x{11A5B}\\x{11A8A}-\\x{11A96}\\x{11A98}-\\x{11A99}\\x{11C30}-\\x{11C36}\\x{11C38}-\\x{11C3D}\\x{11C92}-\\x{11CA7}\\x{11CAA}-\\x{11CB0}\\x{11CB2}-\\x{11CB3}\\x{11CB5}-\\x{11CB6}\\x{11D31}-\\x{11D36}\\x{11D3A}\\x{11D3C}-\\x{11D3D}\\x{11D3F}-\\x{11D45}\\x{11D47}\\x{11D90}-\\x{11D91}\\x{11D95}\\x{11D97}\\x{11EF3}-\\x{11EF4}\\x{16AF0}-\\x{16AF4}\\x{16B30}-\\x{16B36}\\x{16F4F}\\x{16F8F}-\\x{16F92}\\x{16FE4}\\x{1BC9D}-\\x{1BC9E}\\x{1D167}-\\x{1D169}\\x{1D17B}-\\x{1D182}\\x{1D185}-\\x{1D18B}\\x{1D1AA}-\\x{1D1AD}\\x{1D242}-\\x{1D244}\\x{1DA00}-\\x{1DA36}\\x{1DA3B}-\\x{1DA6C}\\x{1DA75}\\x{1DA84}\\x{1DA9B}-\\x{1DA9F}\\x{1DAA1}-\\x{1DAAF}\\x{1E000}-\\x{1E006}\\x{1E008}-\\x{1E018}\\x{1E01B}-\\x{1E021}\\x{1E023}-\\x{1E024}\\x{1E026}-\\x{1E02A}\\x{1E130}-\\x{1E136}\\x{1E2EC}-\\x{1E2EF}\\x{1E8D0}-\\x{1E8D6}\\x{1E944}-\\x{1E94A}\\x{E0100}-\\x{E01EF}]*$/u';
20
+ const ZWNJ = '/([\\x{A872}\\x{10ACD}\\x{10AD7}\\x{10D00}\\x{10FCB}\\x{0620}\\x{0626}\\x{0628}\\x{062A}-\\x{062E}\\x{0633}-\\x{063F}\\x{0641}-\\x{0647}\\x{0649}-\\x{064A}\\x{066E}-\\x{066F}\\x{0678}-\\x{0687}\\x{069A}-\\x{06BF}\\x{06C1}-\\x{06C2}\\x{06CC}\\x{06CE}\\x{06D0}-\\x{06D1}\\x{06FA}-\\x{06FC}\\x{06FF}\\x{0712}-\\x{0714}\\x{071A}-\\x{071D}\\x{071F}-\\x{0727}\\x{0729}\\x{072B}\\x{072D}-\\x{072E}\\x{074E}-\\x{0758}\\x{075C}-\\x{076A}\\x{076D}-\\x{0770}\\x{0772}\\x{0775}-\\x{0777}\\x{077A}-\\x{077F}\\x{07CA}-\\x{07EA}\\x{0841}-\\x{0845}\\x{0848}\\x{084A}-\\x{0853}\\x{0855}\\x{0860}\\x{0862}-\\x{0865}\\x{0868}\\x{08A0}-\\x{08A9}\\x{08AF}-\\x{08B0}\\x{08B3}-\\x{08B4}\\x{08B6}-\\x{08B8}\\x{08BA}-\\x{08C7}\\x{1807}\\x{1820}-\\x{1842}\\x{1843}\\x{1844}-\\x{1878}\\x{1887}-\\x{18A8}\\x{18AA}\\x{A840}-\\x{A871}\\x{10AC0}-\\x{10AC4}\\x{10AD3}-\\x{10AD6}\\x{10AD8}-\\x{10ADC}\\x{10ADE}-\\x{10AE0}\\x{10AEB}-\\x{10AEE}\\x{10B80}\\x{10B82}\\x{10B86}-\\x{10B88}\\x{10B8A}-\\x{10B8B}\\x{10B8D}\\x{10B90}\\x{10BAD}-\\x{10BAE}\\x{10D01}-\\x{10D21}\\x{10D23}\\x{10F30}-\\x{10F32}\\x{10F34}-\\x{10F44}\\x{10F51}-\\x{10F53}\\x{10FB0}\\x{10FB2}-\\x{10FB3}\\x{10FB8}\\x{10FBB}-\\x{10FBC}\\x{10FBE}-\\x{10FBF}\\x{10FC1}\\x{10FC4}\\x{10FCA}\\x{1E900}-\\x{1E943}][\\x{00AD}\\x{0300}-\\x{036F}\\x{0483}-\\x{0487}\\x{0488}-\\x{0489}\\x{0591}-\\x{05BD}\\x{05BF}\\x{05C1}-\\x{05C2}\\x{05C4}-\\x{05C5}\\x{05C7}\\x{0610}-\\x{061A}\\x{061C}\\x{064B}-\\x{065F}\\x{0670}\\x{06D6}-\\x{06DC}\\x{06DF}-\\x{06E4}\\x{06E7}-\\x{06E8}\\x{06EA}-\\x{06ED}\\x{070F}\\x{0711}\\x{0730}-\\x{074A}\\x{07A6}-\\x{07B0}\\x{07EB}-\\x{07F3}\\x{07FD}\\x{0816}-\\x{0819}\\x{081B}-\\x{0823}\\x{0825}-\\x{0827}\\x{0829}-\\x{082D}\\x{0859}-\\x{085B}\\x{08D3}-\\x{08E1}\\x{08E3}-\\x{0902}\\x{093A}\\x{093C}\\x{0941}-\\x{0948}\\x{094D}\\x{0951}-\\x{0957}\\x{0962}-\\x{0963}\\x{0981}\\x{09BC}\\x{09C1}-\\x{09C4}\\x{09CD}\\x{09E2}-\\x{09E3}\\x{09FE}\\x{0A01}-\\x{0A02}\\x{0A3C}\\x{0A41}-\\x{0A42}\\x{0A47}-\\x{0A48}\\x{0A4B}-\\x{0A4D}\\x{0A51}\\x{0A70}-\\x{0A71}\\x{0A75}\\x{0A81}-\\x{0A82}\\x{0ABC}\\x{0AC1}-\\x{0AC5}\\x{0AC7}-\\x{0AC8}\\x{0ACD}\\x{0AE2}-\\x{0AE3}\\x{0AFA}-\\x{0AFF}\\x{0B01}\\x{0B3C}\\x{0B3F}\\x{0B41}-\\x{0B44}\\x{0B4D}\\x{0B55}-\\x{0B56}\\x{0B62}-\\x{0B63}\\x{0B82}\\x{0BC0}\\x{0BCD}\\x{0C00}\\x{0C04}\\x{0C3E}-\\x{0C40}\\x{0C46}-\\x{0C48}\\x{0C4A}-\\x{0C4D}\\x{0C55}-\\x{0C56}\\x{0C62}-\\x{0C63}\\x{0C81}\\x{0CBC}\\x{0CBF}\\x{0CC6}\\x{0CCC}-\\x{0CCD}\\x{0CE2}-\\x{0CE3}\\x{0D00}-\\x{0D01}\\x{0D3B}-\\x{0D3C}\\x{0D41}-\\x{0D44}\\x{0D4D}\\x{0D62}-\\x{0D63}\\x{0D81}\\x{0DCA}\\x{0DD2}-\\x{0DD4}\\x{0DD6}\\x{0E31}\\x{0E34}-\\x{0E3A}\\x{0E47}-\\x{0E4E}\\x{0EB1}\\x{0EB4}-\\x{0EBC}\\x{0EC8}-\\x{0ECD}\\x{0F18}-\\x{0F19}\\x{0F35}\\x{0F37}\\x{0F39}\\x{0F71}-\\x{0F7E}\\x{0F80}-\\x{0F84}\\x{0F86}-\\x{0F87}\\x{0F8D}-\\x{0F97}\\x{0F99}-\\x{0FBC}\\x{0FC6}\\x{102D}-\\x{1030}\\x{1032}-\\x{1037}\\x{1039}-\\x{103A}\\x{103D}-\\x{103E}\\x{1058}-\\x{1059}\\x{105E}-\\x{1060}\\x{1071}-\\x{1074}\\x{1082}\\x{1085}-\\x{1086}\\x{108D}\\x{109D}\\x{135D}-\\x{135F}\\x{1712}-\\x{1714}\\x{1732}-\\x{1734}\\x{1752}-\\x{1753}\\x{1772}-\\x{1773}\\x{17B4}-\\x{17B5}\\x{17B7}-\\x{17BD}\\x{17C6}\\x{17C9}-\\x{17D3}\\x{17DD}\\x{180B}-\\x{180D}\\x{1885}-\\x{1886}\\x{18A9}\\x{1920}-\\x{1922}\\x{1927}-\\x{1928}\\x{1932}\\x{1939}-\\x{193B}\\x{1A17}-\\x{1A18}\\x{1A1B}\\x{1A56}\\x{1A58}-\\x{1A5E}\\x{1A60}\\x{1A62}\\x{1A65}-\\x{1A6C}\\x{1A73}-\\x{1A7C}\\x{1A7F}\\x{1AB0}-\\x{1ABD}\\x{1ABE}\\x{1ABF}-\\x{1AC0}\\x{1B00}-\\x{1B03}\\x{1B34}\\x{1B36}-\\x{1B3A}\\x{1B3C}\\x{1B42}\\x{1B6B}-\\x{1B73}\\x{1B80}-\\x{1B81}\\x{1BA2}-\\x{1BA5}\\x{1BA8}-\\x{1BA9}\\x{1BAB}-\\x{1BAD}\\x{1BE6}\\x{1BE8}-\\x{1BE9}\\x{1BED}\\x{1BEF}-\\x{1BF1}\\x{1C2C}-\\x{1C33}\\x{1C36}-\\x{1C37}\\x{1CD0}-\\x{1CD2}\\x{1CD4}-\\x{1CE0}\\x{1CE2}-\\x{1CE8}\\x{1CED}\\x{1CF4}\\x{1CF8}-\\x{1CF9}\\x{1DC0}-\\x{1DF9}\\x{1DFB}-\\x{1DFF}\\x{200B}\\x{200E}-\\x{200F}\\x{202A}-\\x{202E}\\x{2060}-\\x{2064}\\x{206A}-\\x{206F}\\x{20D0}-\\x{20DC}\\x{20DD}-\\x{20E0}\\x{20E1}\\x{20E2}-\\x{20E4}\\x{20E5}-\\x{20F0}\\x{2CEF}-\\x{2CF1}\\x{2D7F}\\x{2DE0}-\\x{2DFF}\\x{302A}-\\x{302D}\\x{3099}-\\x{309A}\\x{A66F}\\x{A670}-\\x{A672}\\x{A674}-\\x{A67D}\\x{A69E}-\\x{A69F}\\x{A6F0}-\\x{A6F1}\\x{A802}\\x{A806}\\x{A80B}\\x{A825}-\\x{A826}\\x{A82C}\\x{A8C4}-\\x{A8C5}\\x{A8E0}-\\x{A8F1}\\x{A8FF}\\x{A926}-\\x{A92D}\\x{A947}-\\x{A951}\\x{A980}-\\x{A982}\\x{A9B3}\\x{A9B6}-\\x{A9B9}\\x{A9BC}-\\x{A9BD}\\x{A9E5}\\x{AA29}-\\x{AA2E}\\x{AA31}-\\x{AA32}\\x{AA35}-\\x{AA36}\\x{AA43}\\x{AA4C}\\x{AA7C}\\x{AAB0}\\x{AAB2}-\\x{AAB4}\\x{AAB7}-\\x{AAB8}\\x{AABE}-\\x{AABF}\\x{AAC1}\\x{AAEC}-\\x{AAED}\\x{AAF6}\\x{ABE5}\\x{ABE8}\\x{ABED}\\x{FB1E}\\x{FE00}-\\x{FE0F}\\x{FE20}-\\x{FE2F}\\x{FEFF}\\x{FFF9}-\\x{FFFB}\\x{101FD}\\x{102E0}\\x{10376}-\\x{1037A}\\x{10A01}-\\x{10A03}\\x{10A05}-\\x{10A06}\\x{10A0C}-\\x{10A0F}\\x{10A38}-\\x{10A3A}\\x{10A3F}\\x{10AE5}-\\x{10AE6}\\x{10D24}-\\x{10D27}\\x{10EAB}-\\x{10EAC}\\x{10F46}-\\x{10F50}\\x{11001}\\x{11038}-\\x{11046}\\x{1107F}-\\x{11081}\\x{110B3}-\\x{110B6}\\x{110B9}-\\x{110BA}\\x{11100}-\\x{11102}\\x{11127}-\\x{1112B}\\x{1112D}-\\x{11134}\\x{11173}\\x{11180}-\\x{11181}\\x{111B6}-\\x{111BE}\\x{111C9}-\\x{111CC}\\x{111CF}\\x{1122F}-\\x{11231}\\x{11234}\\x{11236}-\\x{11237}\\x{1123E}\\x{112DF}\\x{112E3}-\\x{112EA}\\x{11300}-\\x{11301}\\x{1133B}-\\x{1133C}\\x{11340}\\x{11366}-\\x{1136C}\\x{11370}-\\x{11374}\\x{11438}-\\x{1143F}\\x{11442}-\\x{11444}\\x{11446}\\x{1145E}\\x{114B3}-\\x{114B8}\\x{114BA}\\x{114BF}-\\x{114C0}\\x{114C2}-\\x{114C3}\\x{115B2}-\\x{115B5}\\x{115BC}-\\x{115BD}\\x{115BF}-\\x{115C0}\\x{115DC}-\\x{115DD}\\x{11633}-\\x{1163A}\\x{1163D}\\x{1163F}-\\x{11640}\\x{116AB}\\x{116AD}\\x{116B0}-\\x{116B5}\\x{116B7}\\x{1171D}-\\x{1171F}\\x{11722}-\\x{11725}\\x{11727}-\\x{1172B}\\x{1182F}-\\x{11837}\\x{11839}-\\x{1183A}\\x{1193B}-\\x{1193C}\\x{1193E}\\x{11943}\\x{119D4}-\\x{119D7}\\x{119DA}-\\x{119DB}\\x{119E0}\\x{11A01}-\\x{11A0A}\\x{11A33}-\\x{11A38}\\x{11A3B}-\\x{11A3E}\\x{11A47}\\x