Version Description
Download this release
Release Info
Developer | PixelYourSite |
Plugin | 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
- dist/scripts/public.js +422 -312
- dist/styles/admin.css +4 -0
- facebook-pixel-master.php +2 -2
- includes/class-events-manager.php +202 -433
- includes/events/class-event-grouped.php +26 -0
- includes/events/class-event-single.php +59 -0
- includes/events/class-event.php +30 -0
- includes/events/class-events-custom.php +81 -0
- includes/events/class-events-edd.php +204 -0
- includes/events/class-events-fdp.php +86 -0
- includes/events/class-events-signal.php +195 -0
- includes/events/class-events-woo.php +283 -0
- includes/events/interface-events.php +24 -0
- includes/functions-common.php +71 -4
- includes/functions-edd.php +2 -2
- includes/options_defaults.json +29 -1
- includes/options_fields.json +27 -1
- includes/views/html-main-edd.php +20 -74
- includes/views/html-main-events.php +17 -0
- includes/views/html-main-general.php +235 -631
- includes/views/html-main-woo.php +22 -76
- modules/facebook/PYSServerEventHelper.php +3 -3
- modules/facebook/facebook-server.php +8 -20
- modules/facebook/facebook.php +296 -97
- modules/facebook/function-helpers.php +4 -4
- modules/facebook/options_defaults.json +3 -1
- modules/facebook/options_fields.json +3 -1
- modules/google_analytics/ga.php +186 -49
- modules/google_analytics/options_defaults.json +3 -1
- modules/google_analytics/options_fields.json +3 -1
- pixelyoursite.php +13 -3
- readme.txt +37 -6
- vendor/composer/autoload_classmap.php +31 -20
- vendor/composer/autoload_static.php +31 -20
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/ApiConfig.php +1 -1
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AbstractCrudObject.php +1 -1
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Ad.php +3 -3
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdAccount.php +5 -15
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/{UserPaymentMethodsInfo.php → AdCreativeOmnichannelLinkSpec.php} +4 -4
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdSet.php +2 -2
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/AdVideo.php +0 -21
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Album.php +0 -21
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Application.php +0 -21
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/Content.php +141 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/CustomData.php +287 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/Event.php +232 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/EventRequest.php +131 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/EventResponse.php +115 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/BusinessDataAPI/UserData.php +307 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Campaign.php +3 -3
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/{UserPaymentModulesOptions.php → CatalogItemChannelsToIntegrityStatus.php} +4 -4
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/CustomAudience.php +10 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountCreationRequestFields.php +0 -75
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdAccountFields.php +1 -2
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{FriendListFields.php → AdCreativeOmnichannelLinkSpecFields.php} +4 -6
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdFields.php +2 -1
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/AdReportRunFields.php +2 -1
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/CampaignFields.php +3 -2
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{UserPaymentModulesOptionsFields.php → CatalogItemChannelsToIntegrityStatusFields.php} +4 -6
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/EventTourFields.php +0 -56
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/GroupFields.php +1 -2
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/IGMediaFields.php +1 -2
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/IGUserFields.php +1 -2
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/MessengerProfileFields.php +2 -1
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PagePostFields.php +1 -11
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{UserPaymentMethodsInfoFields.php → PaymentEnginePaymentFields.php} +20 -8
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PaymentSubscriptionFields.php +1 -1
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/PostFields.php +1 -11
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/ProductItemFields.php +2 -1
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UnifiedThreadFields.php +1 -2
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/UserFields.php +1 -11
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Fields/{OfflineTermsOfServiceFields.php → WhatsAppBusinessProfileFields.php} +3 -4
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/FriendList.php +0 -64
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Group.php +30 -2
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Link.php +0 -23
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/LiveVideo.php +1 -1
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/OfflineTermsOfService.php +0 -64
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Page.php +3 -13
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/{EventTour.php → PaymentEnginePayment.php} +15 -13
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Photo.php +0 -21
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Post.php +2 -12
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ProductFeedSchedule.php +0 -20
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ProductGroup.php +10 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ProductItem.php +20 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/ActionSource.php +69 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Event.php +27 -4
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/ServerSide/Normalizer.php +16 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/Content.php +231 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/CustomData.php +495 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/Event.php +255 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/EventRequest.php +223 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/UserData.php +564 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Signal/Util.php +41 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/User.php +12 -12
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountDeliveryEstimateOptimizationGoalValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountMatchedSearchApplicationsEdgeDataAppStoreValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountPermittedTasksValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountTargetingUnifiedAppStoreValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAccountTasksValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdAssetFeedSpecCallToActionTypesValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCampaignActivityBidStrategyNewValues.php +0 -1
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCampaignActivityBidStrategyOldValues.php +0 -1
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCampaignActivityOptimizationGoalNewValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCampaignActivityOptimizationGoalOldValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCampaignDeliveryEstimateOptimizationGoalValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCreativeCallToActionTypeValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdCreativeLinkDataCallToActionTypeValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdSetBidStrategyValues.php +0 -1
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdSetOptimizationGoalValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/AdVideoContainerTypeValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/ApplicationSupportedPlatformsValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/BusinessAssetGroupAdaccountTasksValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/BusinessPermittedTasksValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/CampaignBidStrategyValues.php +0 -1
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/GroupGroupTypeValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/GroupPurposeValues.php +1 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/LiveVideoBroadcastStatusValues.php +9 -9
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/PaymentEnginePaymentReasonValues.php +42 -0
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/TargetingDevicePlatformsValues.php +0 -1
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/Values/TargetingEffectiveDevicePlatformsValues.php +0 -1
- vendor_prefix/facebook/php-business-sdk/src/FacebookAds/Object/{AdAccountCreationRequest.php → WhatsAppBusinessProfile.php} +8 -8
- vendor_prefix/guzzlehttp/guzzle/Dockerfile +18 -0
- vendor_prefix/guzzlehttp/guzzle/src/BodySummarizer.php +0 -23
- vendor_prefix/guzzlehttp/guzzle/src/BodySummarizerInterface.php +0 -12
- vendor_prefix/guzzlehttp/guzzle/src/Client.php +101 -73
- vendor_prefix/guzzlehttp/guzzle/src/ClientInterface.php +13 -9
- vendor_prefix/guzzlehttp/guzzle/src/ClientTrait.php +0 -227
- vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJar.php +47 -48
- vendor_prefix/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php +11 -8
- vendor_prefix/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php +14 -22
- vendor_prefix/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php +10 -14
- vendor_prefix/guzzlehttp/guzzle/src/Cookie/SetCookie.php +65 -69
- vendor_prefix/guzzlehttp/guzzle/src/Exception/BadResponseException.php +4 -16
- vendor_prefix/guzzlehttp/guzzle/src/Exception/ConnectException.php +9 -25
- vendor_prefix/guzzlehttp/guzzle/src/Exception/GuzzleException.php +18 -3
- vendor_prefix/guzzlehttp/guzzle/src/Exception/RequestException.php +53 -30
- vendor_prefix/guzzlehttp/guzzle/src/Exception/SeekException.php +25 -0
- vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlFactory.php +67 -84
- vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php +5 -2
- vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlHandler.php +4 -8
- vendor_prefix/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php +28 -61
- vendor_prefix/guzzlehttp/guzzle/src/Handler/EasyHandle.php +12 -41
- vendor_prefix/guzzlehttp/guzzle/src/Handler/MockHandler.php +39 -56
- vendor_prefix/guzzlehttp/guzzle/src/Handler/Proxy.php +10 -13
- vendor_prefix/guzzlehttp/guzzle/src/Handler/StreamHandler.php +71 -98
- vendor_prefix/guzzlehttp/guzzle/src/HandlerStack.php +57 -49
- vendor_prefix/guzzlehttp/guzzle/src/MessageFormatter.php +20 -32
- vendor_prefix/guzzlehttp/guzzle/src/MessageFormatterInterface.php +0 -17
- vendor_prefix/guzzlehttp/guzzle/src/Middleware.php +50 -56
- vendor_prefix/guzzlehttp/guzzle/src/Pool.php +22 -21
- vendor_prefix/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php +16 -11
- vendor_prefix/guzzlehttp/guzzle/src/RedirectMiddleware.php +48 -28
- vendor_prefix/guzzlehttp/guzzle/src/RequestOptions.php +31 -31
- vendor_prefix/guzzlehttp/guzzle/src/RetryMiddleware.php +39 -31
- vendor_prefix/guzzlehttp/guzzle/src/TransferStats.php +19 -23
- vendor_prefix/guzzlehttp/guzzle/src/UriTemplate.php +191 -0
- vendor_prefix/guzzlehttp/guzzle/src/Utils.php +31 -293
- vendor_prefix/guzzlehttp/guzzle/src/functions.php +189 -53
- vendor_prefix/guzzlehttp/guzzle/src/functions_include.php +1 -1
- vendor_prefix/paragonie/random_compat/dist/random_compat.phar.pubkey +5 -0
- vendor_prefix/paragonie/random_compat/dist/random_compat.phar.pubkey.asc +11 -0
- vendor_prefix/paragonie/random_compat/lib/byte_safe_strings.php +147 -0
- vendor_prefix/paragonie/random_compat/lib/cast_to_int.php +68 -0
- vendor_prefix/paragonie/random_compat/lib/error_polyfill.php +47 -0
- vendor_prefix/paragonie/random_compat/lib/random.php +171 -0
- vendor_prefix/paragonie/random_compat/lib/random_bytes_com_dotnet.php +81 -0
- vendor_prefix/paragonie/random_compat/lib/random_bytes_dev_urandom.php +173 -0
- vendor_prefix/paragonie/random_compat/lib/random_bytes_libsodium.php +81 -0
- vendor_prefix/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php +82 -0
- vendor_prefix/paragonie/random_compat/lib/random_bytes_mcrypt.php +68 -0
- vendor_prefix/paragonie/random_compat/lib/random_int.php +181 -0
- vendor_prefix/paragonie/random_compat/phpunit-autoload.php +15 -0
- vendor_prefix/psr/http-client/src/ClientExceptionInterface.php +0 -10
- vendor_prefix/psr/http-client/src/ClientInterface.php +0 -19
- vendor_prefix/psr/http-client/src/NetworkExceptionInterface.php +0 -23
- vendor_prefix/psr/http-client/src/RequestExceptionInterface.php +0 -23
- vendor_prefix/symfony/polyfill-intl-idn/Idn.php +716 -0
- vendor_prefix/symfony/polyfill-intl-idn/Info.php +22 -0
- vendor_prefix/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php +286 -0
- 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 |
-
$(
|
264 |
-
Utils.
|
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.
|
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
|
306 |
|
307 |
var scrollPos = $(window).scrollTop();
|
308 |
|
@@ -320,39 +374,59 @@ if (!Array.prototype.includes) {
|
|
320 |
scrollPosThresholds[threshold] = null;
|
321 |
}
|
322 |
|
323 |
-
Utils.
|
324 |
|
325 |
});
|
326 |
|
327 |
});
|
328 |
|
|
|
329 |
},
|
330 |
setupCommentEvents : function (eventId,triggers) {
|
331 |
$('form.comment-form').on("submit",function () {
|
332 |
-
Utils.
|
333 |
});
|
334 |
},
|
335 |
|
336 |
/**
|
337 |
* Events
|
338 |
*/
|
|
|
339 |
|
340 |
-
|
341 |
-
|
342 |
-
if (!options.dynamicEventsParams.hasOwnProperty(eventId)) {
|
343 |
return;
|
344 |
}
|
345 |
|
346 |
var event = {};
|
|
|
347 |
|
348 |
-
if (
|
349 |
-
|
350 |
-
|
351 |
-
|
|
|
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 |
-
|
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 ||
|
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 ||
|
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 (
|
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 (
|
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 |
-
|
926 |
-
|
927 |
-
});
|
928 |
-
|
929 |
}
|
930 |
}
|
931 |
-
|
932 |
},
|
933 |
|
934 |
-
onWooAddToCartOnSingleEvent: function (product_id, qty,
|
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 (
|
942 |
product_id = parseInt($form.find('input[name="variation_id"]').val());
|
943 |
}
|
944 |
|
945 |
-
|
946 |
|
947 |
// maybe customize value option
|
948 |
if (options.woo.addToCartOnButtonValueEnabled && options.woo.addToCartOnButtonValueOption !== 'global') {
|
949 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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(
|
958 |
-
params: params
|
959 |
-
});
|
960 |
|
961 |
}
|
962 |
}
|
963 |
-
|
964 |
},
|
965 |
|
966 |
-
onWooRemoveFromCartEvent: function (
|
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 |
-
|
|
|
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 =
|
1004 |
contents[0].quantity = qty;
|
1005 |
-
params.contents =
|
1006 |
|
1007 |
-
this.fireEvent(
|
1008 |
-
params: params
|
1009 |
-
});
|
1010 |
|
1011 |
}
|
1012 |
}
|
@@ -1015,17 +1058,16 @@ if (!Array.prototype.includes) {
|
|
1015 |
|
1016 |
},
|
1017 |
|
1018 |
-
onEddRemoveFromCartEvent: function (
|
1019 |
-
|
1020 |
-
|
1021 |
-
|
1022 |
-
|
1023 |
-
|
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(
|
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(
|
1175 |
params: {
|
1176 |
-
event_category:
|
1177 |
-
|
1178 |
-
|
|
|
|
|
|
|
|
|
|
|
1179 |
}
|
1180 |
});
|
1181 |
}
|
1182 |
-
|
1183 |
-
|
1184 |
}
|
1185 |
|
1186 |
-
},
|
1187 |
|
1188 |
-
|
1189 |
|
1190 |
-
|
1191 |
|
|
|
1192 |
if(options.ga.isUse4Version) {
|
1193 |
-
|
1194 |
} else {
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
|
|
|
|
1201 |
});
|
1202 |
}
|
1203 |
}
|
1204 |
-
|
1205 |
},
|
1206 |
|
1207 |
-
onFormEvent: function (
|
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()
|
1215 |
|
1216 |
if(options.ga.isUse4Version) {
|
1217 |
-
this.fireEvent(
|
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 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
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(
|
1253 |
-
params: window.pysWooProductData[product_id]['ga']
|
1254 |
-
});
|
1255 |
-
|
1256 |
}
|
1257 |
}
|
1258 |
|
|
|
1259 |
},
|
1260 |
|
1261 |
-
onWooAddToCartOnSingleEvent: function (product_id, qty,
|
1262 |
|
1263 |
window.pysWooProductData = window.pysWooProductData || [];
|
1264 |
|
1265 |
-
if
|
|
|
|
|
|
|
|
|
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 |
-
|
1273 |
|
1274 |
// maybe customize value option
|
1275 |
if (options.woo.addToCartOnButtonValueEnabled && options.woo.addToCartOnButtonValueOption !== 'global') {
|
1276 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 (
|
1292 |
-
|
1293 |
-
window.pysWooRemoveFromCartData = window.pysWooRemoveFromCartData || [];
|
1294 |
-
|
1295 |
-
if (window.pysWooRemoveFromCartData[cart_item_hash].hasOwnProperty('ga')) {
|
1296 |
|
1297 |
-
|
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('
|
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(
|
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.
|
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 |
-
$('
|
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 |
-
|
1429 |
|
1430 |
var product_id;
|
1431 |
var qty;
|
1432 |
|
1433 |
-
if (
|
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,
|
1450 |
-
Analytics.onWooAddToCartOnSingleEvent(product_id, qty,
|
1451 |
-
|
1452 |
-
|
|
|
1453 |
|
1454 |
});
|
1455 |
|
1456 |
}
|
1457 |
|
1458 |
// WooCommerce RemoveFromCart
|
1459 |
-
if (options.
|
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 (
|
1476 |
-
|
1477 |
-
|
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.
|
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.
|
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 |
-
|
1590 |
-
|
1591 |
-
|
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.
|
1610 |
|
1611 |
$('form.comment-form').on("submit",function () {
|
1612 |
|
1613 |
-
|
1614 |
-
|
1615 |
-
|
1616 |
-
|
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.
|
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 |
-
|
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 |
-
|
1700 |
-
|
1701 |
-
|
1702 |
-
|
|
|
|
|
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 |
-
|
1712 |
};
|
1713 |
|
1714 |
-
|
1715 |
-
|
1716 |
-
|
1717 |
-
|
|
|
|
|
|
|
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:
|
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.
|
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 |
-
|
49 |
-
'
|
50 |
-
'
|
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 |
-
|
106 |
-
|
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 |
-
|
117 |
-
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
|
146 |
-
|
147 |
-
|
148 |
-
|
|
|
149 |
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
if ( PYS()->getOption( 'custom_events_enabled' ) ) {
|
155 |
-
$this->setupCustomEvents();
|
156 |
-
}
|
157 |
|
158 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
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 |
-
|
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 |
-
|
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 |
-
|
272 |
-
|
273 |
-
|
|
|
|
|
|
|
|
|
|
|
274 |
}
|
275 |
-
|
276 |
-
if
|
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 |
-
|
|
|
|
|
287 |
}
|
|
|
|
|
|
|
|
|
288 |
}
|
289 |
|
290 |
-
|
|
|
|
|
|
|
|
|
291 |
|
292 |
-
if(
|
|
|
|
|
|
|
|
|
293 |
|
294 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
295 |
|
296 |
-
foreach ( $pixel->getFDPEvents() as $event ) {
|
297 |
|
298 |
-
|
299 |
-
$this->
|
|
|
|
|
|
|
|
|
|
|
|
|
300 |
}
|
301 |
-
|
302 |
-
if
|
303 |
-
$
|
304 |
}
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
309 |
}
|
310 |
|
311 |
-
|
312 |
-
|
313 |
-
|
|
|
|
|
|
|
|
|
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($
|
413 |
-
$isEnabled = $this->isGdprPluginEnabled();
|
414 |
|
|
|
|
|
415 |
|
416 |
-
if( !$
|
417 |
$name = $eventData['name'];
|
418 |
-
$data = $eventData['
|
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" =>
|
427 |
}
|
428 |
}
|
429 |
|
@@ -556,162 +478,51 @@ class EventsManager {
|
|
556 |
|
557 |
}
|
558 |
|
559 |
-
|
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 |
-
|
674 |
|
675 |
if ( edd_has_variable_prices( $post->ID ) ) {
|
676 |
|
677 |
$prices = edd_get_variable_prices( $post->ID );
|
678 |
|
679 |
-
|
680 |
-
|
681 |
}
|
682 |
|
683 |
} else {
|
684 |
|
685 |
-
|
686 |
|
687 |
}
|
688 |
|
689 |
-
|
690 |
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
|
695 |
-
|
696 |
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
|
701 |
-
|
702 |
|
703 |
-
|
704 |
-
|
705 |
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
|
714 |
-
|
715 |
|
716 |
<script type="text/javascript">
|
717 |
/* <![CDATA[ */
|
@@ -720,49 +531,7 @@ class EventsManager {
|
|
720 |
/* ]]> */
|
721 |
</script>
|
722 |
|
723 |
-
|
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 |
-
|
692 |
-
|
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 ] =
|
705 |
}
|
706 |
|
707 |
}
|
@@ -1014,4 +1017,68 @@ function getPysCurrencySymbols() {
|
|
1014 |
'ZAR' => 'R',
|
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' => 'R',
|
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 |
-
|
48 |
</div>
|
49 |
<div class="card-body">
|
50 |
<div class="row">
|
51 |
-
<div class="col
|
52 |
-
<
|
53 |
-
<
|
54 |
-
|
55 |
-
|
56 |
-
|
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"
|
149 |
-
|
150 |
</div>
|
151 |
-
<div class="card-body">
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
<
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
|
|
181 |
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
192 |
|
193 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
<div class="col">
|
195 |
-
|
196 |
-
|
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 |
-
|
206 |
-
|
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
|
214 |
-
<h4 class="switcher-label">Enable
|
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
|
262 |
-
<div class="col">
|
263 |
-
|
264 |
-
|
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 |
-
|
290 |
<div class="row">
|
291 |
<div class="col">
|
292 |
-
<?php
|
293 |
-
<h4 class="switcher-label">Enable on
|
294 |
</div>
|
295 |
</div>
|
296 |
-
|
297 |
|
298 |
-
|
299 |
<div class="row">
|
300 |
<div class="col">
|
301 |
-
<?php
|
302 |
-
<h4 class="switcher-label">Enable on
|
303 |
-
<?php Pinterest()->renderAddonNotice(); ?>
|
304 |
</div>
|
305 |
</div>
|
306 |
<?php endif; ?>
|
307 |
|
308 |
-
<
|
|
|
|
|
|
|
309 |
<div class="col">
|
310 |
-
<?php
|
311 |
-
|
312 |
-
|
|
|
|
|
313 |
</div>
|
314 |
</div>
|
315 |
|
316 |
-
|
317 |
-
<div class="
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
</div>
|
323 |
</div>
|
324 |
-
|
325 |
|
326 |
-
<div class="row
|
327 |
-
<div class="col
|
328 |
-
|
329 |
-
|
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 |
-
|
|
|
339 |
</div>
|
340 |
</div>
|
341 |
|
342 |
-
<div class="row">
|
343 |
<div class="col">
|
344 |
-
|
345 |
-
<
|
|
|
|
|
346 |
</div>
|
347 |
</div>
|
348 |
-
<div class="row">
|
349 |
<div class="col">
|
350 |
-
|
351 |
-
|
352 |
</div>
|
353 |
</div>
|
354 |
-
<div class="row">
|
355 |
<div class="col">
|
356 |
-
|
357 |
-
<
|
|
|
|
|
|
|
|
|
358 |
</div>
|
359 |
</div>
|
360 |
|
361 |
-
|
362 |
-
|
363 |
-
|
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 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
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 |
-
|
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 |
-
|
400 |
-
|
401 |
-
|
402 |
-
<
|
403 |
</div>
|
404 |
-
</div>
|
405 |
|
406 |
-
|
|
|
407 |
|
408 |
-
|
409 |
-
<div class="
|
410 |
-
<div
|
411 |
-
|
412 |
-
|
|
|
413 |
</div>
|
|
|
414 |
</div>
|
415 |
-
|
|
|
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 |
-
|
431 |
</div>
|
432 |
</div>
|
433 |
|
434 |
-
|
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 |
-
|
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 |
-
|
453 |
-
|
454 |
</div>
|
455 |
</div>
|
456 |
-
|
457 |
|
458 |
<div class="row">
|
459 |
<div class="col">
|
460 |
-
|
461 |
<h4 class="switcher-label">Enable the search event on Google Ads</h4>
|
462 |
-
|
463 |
</div>
|
464 |
</div>
|
465 |
|
@@ -473,471 +408,140 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
473 |
</div>
|
474 |
<?php endif; ?>
|
475 |
|
476 |
-
|
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 |
-
|
482 |
</div>
|
483 |
</div>
|
484 |
-
|
485 |
</div>
|
486 |
</div>
|
487 |
|
488 |
-
<!--
|
489 |
-
<div class="card">
|
490 |
-
<div class="card-header">
|
491 |
-
|
492 |
</div>
|
493 |
<div class="card-body">
|
494 |
-
|
495 |
-
<div class="row">
|
496 |
<div class="col-11">
|
497 |
-
|
498 |
</div>
|
499 |
-
|
500 |
-
|
|
|
|
|
501 |
</div>
|
502 |
</div>
|
503 |
-
|
504 |
<?php if ( Facebook()->enabled() ) : ?>
|
505 |
-
<
|
|
|
506 |
<div class="col">
|
507 |
-
<?php Facebook()->render_switcher_input( '
|
508 |
-
<h4 class="switcher-label">
|
|
|
|
|
|
|
509 |
</div>
|
510 |
</div>
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
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 |
-
|
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 |
-
|
537 |
-
<div class="row">
|
538 |
<div class="col">
|
539 |
-
|
540 |
-
|
541 |
-
|
|
|
|
|
|
|
542 |
</div>
|
543 |
</div>
|
544 |
-
<?php endif; ?>
|
545 |
|
546 |
-
|
547 |
-
<div class="row">
|
548 |
<div class="col">
|
549 |
-
|
550 |
-
|
551 |
-
|
|
|
|
|
|
|
|
|
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 |
-
|
575 |
-
<div class="row">
|
576 |
<div class="col">
|
577 |
-
|
578 |
-
<h4 class="switcher-label">Enable the
|
579 |
</div>
|
580 |
</div>
|
581 |
-
|
582 |
-
|
583 |
-
<?php if ( GA()->enabled() ) : ?>
|
584 |
-
<div class="row mb-1">
|
585 |
<div class="col">
|
586 |
-
|
587 |
-
<h4 class="switcher-label">Enable the
|
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 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
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 |
-
|
617 |
-
|
618 |
-
|
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 |
-
|
630 |
-
<
|
631 |
-
|
632 |
-
|
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 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
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 |
-
|
671 |
-
|
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 |
-
|
681 |
-
|
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 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
|
|
|
|
|
|
|
|
|
|
924 |
|
925 |
-
|
926 |
-
|
927 |
-
<?php renderDummySwitcher(); ?>
|
928 |
-
<h4 class="switcher-label">Enable the ClickEvent on Bing</h4>
|
929 |
</div>
|
930 |
-
|
931 |
-
|
932 |
-
<?php if ( GA()->enabled() ) : ?>
|
933 |
-
<div class="row mt-3">
|
934 |
<div class="col">
|
935 |
-
<
|
936 |
-
|
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 |
-
|
55 |
</div>
|
56 |
<div class="card-body">
|
57 |
<div class="row">
|
58 |
-
<div class="col
|
59 |
-
<
|
60 |
-
<
|
61 |
-
|
62 |
-
|
63 |
-
|
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
|
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
|
128 |
-
$content['quantity'] = $c
|
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->
|
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(
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
$
|
63 |
-
|
64 |
-
$item["quantity"] = $quantity;
|
65 |
-
$d[]=(object)$item;
|
66 |
}
|
67 |
-
|
68 |
-
$
|
|
|
|
|
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'] =
|
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'] =
|
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'] =
|
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'] =
|
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'] =
|
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'] =
|
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'] =
|
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'] =
|
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 |
-
|
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' =>
|
723 |
);
|
724 |
|
725 |
// content_name, category_name
|
@@ -740,13 +939,13 @@ class Facebook extends Settings implements Pixel {
|
|
740 |
|
741 |
|
742 |
// contents
|
743 |
-
$params['contents'] =
|
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' =>
|
776 |
);
|
777 |
|
778 |
// content_name, category_name
|
@@ -792,13 +991,13 @@ class Facebook extends Settings implements Pixel {
|
|
792 |
}
|
793 |
|
794 |
// contents
|
795 |
-
$params['contents'] =
|
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'] =
|
904 |
$params['content_name'] = implode( ', ', $content_names );
|
905 |
$params['category_name'] = implode( ', ', $content_categories );
|
906 |
-
$params['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'] =
|
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'] =
|
996 |
|
997 |
return array(
|
998 |
'name' => 'ViewCategory',
|
@@ -1050,7 +1249,7 @@ class Facebook extends Settings implements Pixel {
|
|
1050 |
|
1051 |
|
1052 |
|
1053 |
-
private function
|
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'] =
|
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'] =
|
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' =>
|
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 |
-
|
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 |
-
|
122 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
|
124 |
-
|
125 |
-
$data = $this->getCustomEventData( $args );break;
|
126 |
|
127 |
-
|
128 |
-
$
|
|
|
|
|
|
|
|
|
|
|
129 |
|
130 |
-
|
131 |
-
$
|
|
|
|
|
|
|
|
|
|
|
132 |
|
133 |
-
|
134 |
-
|
135 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
|
137 |
-
|
138 |
-
$data = $this->getWooRemoveFromCartParams( $args );break;
|
139 |
|
140 |
-
|
141 |
-
$
|
|
|
142 |
|
143 |
-
|
144 |
-
$
|
|
|
|
|
|
|
|
|
|
|
145 |
|
146 |
-
case 'woo_purchase':
|
147 |
-
$data = $this->getWooPurchaseEventParams();break;
|
148 |
|
149 |
-
|
150 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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', '
|
8 |
-
define( 'PYS_FREE_PINTEREST_MIN_VERSION', '
|
9 |
-
define( 'PYS_FREE_BING_MIN_VERSION', '
|
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.
|
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
|
39 |
|
40 |
FANTASTIC WOOCOMMERCE INTEGRATION:
|
41 |
|
42 |
-
Facebook
|
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
|
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 |
-
*
|
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\\
|
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\\
|
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.
|
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\
|
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
|
41 |
{
|
42 |
/**
|
43 |
-
* @return
|
44 |
*/
|
45 |
public static function getFieldsEnum()
|
46 |
{
|
47 |
-
return \PYS_PRO_GLOBAL\FacebookAds\Object\Fields\
|
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\
|
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
|
41 |
{
|
42 |
/**
|
43 |
-
* @return
|
44 |
*/
|
45 |
public static function getFieldsEnum()
|
46 |
{
|
47 |
-
return \PYS_PRO_GLOBAL\FacebookAds\Object\Fields\
|
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', '
|
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
|
37 |
{
|
38 |
-
const
|
39 |
-
const
|
40 |
-
const NAME = 'name';
|
41 |
-
const OWNER = 'owner';
|
42 |
public function getFieldTypes()
|
43 |
{
|
44 |
-
return array('
|
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>', '
|
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
|
37 |
{
|
38 |
-
const
|
39 |
-
const
|
40 |
-
const COUNTRY = 'country';
|
41 |
-
const CURRENCY = 'currency';
|
42 |
public function getFieldTypes()
|
43 |
{
|
44 |
-
return array('
|
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', '
|
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('
|
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', '
|
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', '
|
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
|
37 |
{
|
38 |
-
const
|
39 |
-
const
|
40 |
-
const AVAILABLE_PAYMENT_METHODS = 'available_payment_methods';
|
41 |
-
const AVAILABLE_PAYMENT_METHODS_DETAILS = 'available_payment_methods_details';
|
42 |
const COUNTRY = 'country';
|
43 |
-
const
|
44 |
-
const
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
public function getFieldTypes()
|
46 |
{
|
47 |
-
return array('
|
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' => '
|
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', '
|
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', '
|
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', '
|
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
|
37 |
{
|
38 |
-
const ACCEPT_TIME = 'accept_time';
|
39 |
const ID = 'id';
|
40 |
-
const
|
41 |
public function getFieldTypes()
|
42 |
{
|
43 |
-
return array('
|
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' =>
|
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\
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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', '
|
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\
|
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\
|
|
|
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
|
41 |
{
|
42 |
/**
|
43 |
-
* @return
|
44 |
*/
|
45 |
public static function getFieldsEnum()
|
46 |
{
|
47 |
-
return \PYS_PRO_GLOBAL\FacebookAds\Object\Fields\
|
48 |
}
|
49 |
protected static function getReferencedEnums()
|
50 |
{
|
51 |
$ref_enums = array();
|
|
|
52 |
return $ref_enums;
|
53 |
}
|
54 |
-
public function
|
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::
|
60 |
$request->addParams($params);
|
61 |
$request->addFields($fields);
|
62 |
return $pending ? $request : $request->execute();
|
63 |
}
|
64 |
-
public function
|
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::
|
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\
|
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
|
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, '/
|
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 = '
|
40 |
-
const LIVE_STOPPED = '
|
41 |
-
const PROCESSING = '
|
42 |
-
const SCHEDULED_CANCELED = '
|
43 |
-
const SCHEDULED_EXPIRED = '
|
44 |
-
const SCHEDULED_LIVE = '
|
45 |
-
const SCHEDULED_UNPUBLISHED = '
|
46 |
-
const UNPUBLISHED = '
|
47 |
-
const 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\
|
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
|
41 |
{
|
42 |
/**
|
43 |
-
* @return
|
44 |
*/
|
45 |
public static function getFieldsEnum()
|
46 |
{
|
47 |
-
return \PYS_PRO_GLOBAL\FacebookAds\Object\Fields\
|
48 |
}
|
49 |
protected static function getReferencedEnums()
|
50 |
{
|
51 |
$ref_enums = array();
|
52 |
return $ref_enums;
|
53 |
}
|
54 |
-
public function
|
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, '/
|
60 |
$request->addParams($params);
|
61 |
$request->addFields($fields);
|
62 |
return $pending ? $request : $request->execute();
|
63 |
}
|
64 |
-
public function
|
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::
|
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\
|
8 |
-
use PYS_PRO_GLOBAL\GuzzleHttp\
|
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 |
-
* @
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
*/
|
16 |
-
class Client implements \PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface
|
17 |
{
|
18 |
-
|
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 \
|
60 |
}
|
61 |
// Convert the base_uri to a UriInterface
|
62 |
if (isset($config['base_uri'])) {
|
63 |
-
$config['base_uri'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\
|
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
|
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 \
|
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 = [])
|
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 = [])
|
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(
|
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']
|
139 |
-
$version = $options['version']
|
140 |
// Merge the URI into the base URI.
|
141 |
-
$uri = $this->buildUri(
|
142 |
if (\is_array($body)) {
|
143 |
-
|
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(
|
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(
|
182 |
{
|
183 |
return $option === null ? $this->config : (isset($this->config[$option]) ? $this->config[$option] : null);
|
184 |
}
|
185 |
-
|
|
|
|
|
|
|
|
|
|
|
186 |
{
|
|
|
|
|
187 |
if (isset($config['base_uri'])) {
|
188 |
-
$uri = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\UriResolver::resolve(\PYS_PRO_GLOBAL\GuzzleHttp\Psr7\
|
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)
|
200 |
{
|
201 |
-
$defaults = ['allow_redirects' => \PYS_PRO_GLOBAL\GuzzleHttp\RedirectMiddleware::$defaultSettings, 'http_errors' => \true, 'decode_content' => \true, 'verify' => \true, 'cookies' => \false, 'idn_conversion' => \
|
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 (\
|
207 |
-
$defaults['proxy']['http'] =
|
208 |
}
|
209 |
-
if ($proxy = \
|
210 |
$defaults['proxy']['https'] = $proxy;
|
211 |
}
|
212 |
-
if ($noProxy = \
|
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' =>
|
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'] =
|
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)
|
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 \
|
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)
|
276 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
277 |
$request = $this->applyOptions($request, $options);
|
278 |
/** @var HandlerStack $handler */
|
279 |
$handler = $options['handler'];
|
280 |
try {
|
281 |
-
return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\
|
282 |
} catch (\Exception $e) {
|
283 |
-
return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\
|
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)
|
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 \
|
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\
|
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\
|
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\
|
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\
|
320 |
$modify['set_headers']['Accept-Encoding'] = $options['decode_content'];
|
321 |
}
|
322 |
if (isset($options['body'])) {
|
323 |
if (\is_array($options['body'])) {
|
324 |
-
|
325 |
}
|
326 |
-
$modify['body'] = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\
|
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\
|
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,
|
353 |
}
|
354 |
if (!\is_string($value)) {
|
355 |
-
throw new \
|
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 \
|
365 |
}
|
366 |
}
|
367 |
-
$request = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\
|
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\
|
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\
|
384 |
// Don't pass this internal value along to middleware/handlers.
|
385 |
unset($options['_conditional']);
|
386 |
}
|
387 |
return $request;
|
388 |
}
|
389 |
/**
|
390 |
-
*
|
|
|
|
|
391 |
*/
|
392 |
-
private function invalidBody()
|
393 |
{
|
394 |
-
|
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 |
-
*
|
17 |
*/
|
18 |
-
const
|
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 = [])
|
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 = [])
|
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(
|
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(
|
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(
|
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
|
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(
|
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,
|
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
|
56 |
-
* @param bool
|
|
|
57 |
*/
|
58 |
-
public static function shouldPersist(\PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie $cookie,
|
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(
|
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(
|
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,
|
102 |
return !$cookie->matchesDomain($domain);
|
103 |
});
|
104 |
} elseif (!$name) {
|
105 |
-
$this->cookies = \array_filter($this->cookies,
|
106 |
return !($cookie->matchesPath($path) && $cookie->matchesDomain($domain));
|
107 |
});
|
108 |
} else {
|
109 |
-
$this->cookies = \array_filter($this->cookies,
|
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,
|
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()
|
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)
|
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)
|
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)
|
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)
|
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
|
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)
|
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)
|
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)
|
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(
|
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()
|
69 |
/**
|
70 |
* Converts the cookie jar to an array.
|
|
|
|
|
71 |
*/
|
72 |
-
public function toArray()
|
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
|
23 |
-
* @param bool
|
24 |
-
*
|
25 |
*
|
26 |
* @throws \RuntimeException if the file cannot be found or created
|
27 |
*/
|
28 |
-
public function __construct(
|
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(
|
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\
|
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(
|
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\
|
84 |
if (\is_array($data)) {
|
85 |
-
foreach ($
|
86 |
$this->setCookie(new \PYS_PRO_GLOBAL\GuzzleHttp\Cookie\SetCookie($cookie));
|
87 |
}
|
88 |
-
} elseif (\
|
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
|
22 |
-
*
|
23 |
-
* @param bool
|
24 |
-
*
|
25 |
*/
|
26 |
-
public function __construct(
|
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()
|
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()
|
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(
|
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 (
|
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 (
|
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 |
-
|
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 (
|
70 |
-
$this->setExpires($
|
71 |
}
|
72 |
}
|
73 |
public function __toString()
|
@@ -84,12 +77,12 @@ class SetCookie
|
|
84 |
}
|
85 |
return \rtrim($str, '; ');
|
86 |
}
|
87 |
-
public function toArray()
|
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)
|
106 |
{
|
107 |
$this->data['Name'] = $name;
|
108 |
}
|
109 |
/**
|
110 |
-
* Get the cookie value
|
111 |
*
|
112 |
-
* @return string
|
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)
|
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)
|
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)
|
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)
|
178 |
{
|
179 |
$this->data['Max-Age'] = $maxAge;
|
180 |
}
|
181 |
/**
|
182 |
-
* The UNIX timestamp when the cookie Expires
|
183 |
*
|
184 |
-
* @return
|
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
|
194 |
*/
|
195 |
-
public function setExpires($timestamp)
|
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)
|
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)
|
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)
|
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(
|
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(
|
292 |
{
|
293 |
-
$cookieDomain = $this->getDomain();
|
294 |
-
if (null === $cookieDomain) {
|
295 |
-
return \true;
|
296 |
-
}
|
297 |
// Remove the leading '.' as per spec in RFC 6265.
|
298 |
-
//
|
299 |
-
$cookieDomain = \ltrim($
|
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 |
-
//
|
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()
|
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
|
334 |
-
// are technically against RFC 6265, but known to happen in the wild.
|
335 |
$value = $this->getValue();
|
336 |
-
if ($value
|
337 |
return 'The cookie value must not be empty';
|
338 |
}
|
339 |
-
// Domains must not be empty, but can be 0
|
340 |
-
// domain, but may be used as server name
|
|
|
341 |
$domain = $this->getDomain();
|
342 |
-
if ($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(
|
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\
|
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,
|
25 |
-
$this->request = $request;
|
26 |
-
$this->handlerContext = $handlerContext;
|
27 |
}
|
28 |
/**
|
29 |
-
*
|
30 |
*/
|
31 |
-
public function
|
32 |
{
|
33 |
-
return
|
34 |
}
|
35 |
/**
|
36 |
-
*
|
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
|
44 |
{
|
45 |
-
return
|
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
|
6 |
-
|
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\
|
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
|
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(
|
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, \
|
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
|
48 |
-
* @param ResponseInterface
|
49 |
-
* @param \
|
50 |
-
* @param array
|
51 |
-
*
|
|
|
52 |
*/
|
53 |
-
public static function create(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface $response = null, \
|
54 |
{
|
55 |
if (!$response) {
|
56 |
-
return new self('Error completing request', $request, null, $previous, $
|
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 = ($
|
75 |
if ($summary !== null) {
|
76 |
$message .= ":\n{$summary}\n";
|
77 |
}
|
78 |
-
return new $className($message, $request, $response, $previous, $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
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()
|
95 |
{
|
96 |
return $this->request;
|
97 |
}
|
98 |
/**
|
99 |
* Get the associated response
|
|
|
|
|
100 |
*/
|
101 |
-
public function getResponse()
|
102 |
{
|
103 |
return $this->response;
|
104 |
}
|
105 |
/**
|
106 |
* Check if a response was received
|
|
|
|
|
107 |
*/
|
108 |
-
public function hasResponse()
|
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()
|
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\
|
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 |
-
|
22 |
-
|
23 |
-
|
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(
|
38 |
{
|
39 |
$this->maxHandles = $maxHandles;
|
40 |
}
|
41 |
-
public function create(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
|
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)
|
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
|
88 |
-
* @param
|
|
|
|
|
|
|
89 |
*/
|
90 |
-
public static function finish(callable $handler, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\EasyHandle $easy, \PYS_PRO_GLOBAL\GuzzleHttp\Handler\CurlFactoryInterface $factory)
|
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)
|
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']
|
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)
|
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\
|
139 |
}
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
$message
|
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\
|
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)
|
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
|
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)
|
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] =
|
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)
|
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(
|
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)
|
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'])
|
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 (!
|
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 (
|
291 |
-
|
292 |
-
$
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
|
|
|
|
|
|
|
|
300 |
} else {
|
301 |
-
|
|
|
|
|
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\
|
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 |
-
|
355 |
} else {
|
356 |
-
|
357 |
}
|
358 |
}
|
359 |
-
$sslKey = $sslKey
|
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] =
|
372 |
-
$
|
|
|
|
|
|
|
|
|
|
|
373 |
};
|
374 |
}
|
375 |
if (!empty($options['debug'])) {
|
376 |
-
$conf[\CURLOPT_STDERR] = \PYS_PRO_GLOBAL\GuzzleHttp\
|
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)
|
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)
|
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
|
425 |
$value = \trim($h);
|
426 |
if ($value === '') {
|
427 |
$startingResponse = \true;
|
428 |
-
|
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)
|
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)
|
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\
|
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']
|
32 |
}
|
33 |
-
public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
|
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
|
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']
|
63 |
if (isset($options['select_timeout'])) {
|
64 |
$this->selectTimeout = $options['select_timeout'];
|
65 |
-
} elseif ($selectTimeout = \
|
66 |
-
|
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
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
// A warning is raised in case of a wrong option.
|
93 |
-
\curl_multi_setopt($this->_mh, $option, $value);
|
94 |
}
|
95 |
-
|
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)
|
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()
|
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\
|
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()
|
144 |
{
|
145 |
-
$queue = \PYS_PRO_GLOBAL\GuzzleHttp\Promise\
|
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)
|
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)
|
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()
|
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()
|
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
|
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()
|
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\
|
66 |
-
$normalizedKeys = \PYS_PRO_GLOBAL\GuzzleHttp\
|
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($
|
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
|
46 |
-
* @param callable
|
47 |
-
* @param callable
|
|
|
|
|
48 |
*/
|
49 |
-
public static function createWithMiddleware(array $queue = null, callable $onFulfilled = null, callable $onRejected = null)
|
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 \
|
56 |
* callables, or Promises.
|
57 |
*
|
58 |
-
* @param array
|
59 |
-
* @param callable
|
60 |
-
* @param callable
|
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 |
-
|
68 |
-
$this->append(...\array_values($queue));
|
69 |
}
|
70 |
}
|
71 |
-
public function __invoke(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options)
|
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(
|
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
|
95 |
}
|
96 |
-
$response = $response instanceof \
|
97 |
-
return $response->then(function (
|
98 |
$this->invokeStats($request, $options, $value);
|
99 |
if ($this->onFulfilled) {
|
100 |
-
($this->onFulfilled
|
101 |
}
|
102 |
-
if (
|
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
|
118 |
}
|
119 |
-
return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\
|
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(
|
129 |
{
|
130 |
-
foreach (
|
131 |
-
if ($value instanceof \PYS_PRO_GLOBAL\Psr\Http\Message\ResponseInterface || $value instanceof \
|
132 |
$this->queue[] = $value;
|
133 |
} else {
|
134 |
-
throw new \
|
135 |
}
|
136 |
}
|
137 |
}
|
138 |
/**
|
139 |
* Get the last received request.
|
|
|
|
|
140 |
*/
|
141 |
-
public function getLastRequest()
|
142 |
{
|
143 |
return $this->lastRequest;
|
144 |
}
|
145 |
/**
|
146 |
* Get the last received request options.
|
|
|
|
|
147 |
*/
|
148 |
-
public function getLastOptions()
|
149 |
{
|
150 |
return $this->lastOptions;
|
151 |
}
|
152 |
/**
|
153 |
* Returns the number of remaining items in the queue.
|
|
|
|
|
154 |
*/
|
155 |
-
public function count()
|
156 |
{
|
157 |
return \count($this->queue);
|
158 |
}
|
159 |
-
public function reset()
|
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']
|
170 |
$stats = new \PYS_PRO_GLOBAL\GuzzleHttp\TransferStats($request, $response, $transferTime, $reason);
|
171 |
-
$options['on_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
|
20 |
-
* @param callable
|
21 |
*
|
22 |
-
* @return callable
|
23 |
*/
|
24 |
-
public static function wrapSync(callable $default, callable $sync)
|
25 |
{
|
26 |
-
return
|
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
|
39 |
-
* @param callable
|
40 |
*
|
41 |
-
* @return callable
|
42 |
*/
|
43 |
-
public static function wrapStreaming(callable $default, callable $streaming)
|
44 |
{
|
45 |
-
return
|
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)
|
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 (\
|
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\
|
63 |
}
|
64 |
}
|
65 |
-
private function invokeStats(array $options, \PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request,
|
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']
|
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 =
|
82 |
-
$reason = $parts[2]
|
83 |
-
$headers = \PYS_PRO_GLOBAL\GuzzleHttp\
|
84 |
-
|
85 |
-
$stream = \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\
|
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\
|
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)
|
109 |
{
|
110 |
if (!empty($options['stream'])) {
|
111 |
return $stream;
|
112 |
}
|
113 |
-
$sink = $options['sink']
|
114 |
-
return \is_string($sink) ? new \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\LazyOpenStream($sink, 'w+') : \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\
|
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\
|
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\
|
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
|
150 |
-
*
|
|
|
|
|
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,
|
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\
|
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(
|
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'
|
233 |
throw new \InvalidArgumentException('Microsoft NTLM authentication only supported with curl handler');
|
234 |
}
|
235 |
$uri = $this->resolveHost($request, $options);
|
236 |
-
$
|
237 |
return \stream_context_create($context, $params);
|
238 |
});
|
239 |
-
return $this->createResource(function () use($uri, &$http_response_header, $
|
240 |
-
$resource = \fopen((string) $uri, 'r',
|
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)
|
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 (
|
261 |
throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException(\sprintf("Could not resolve IPv4 address for host '%s'", $uri->getHost()), $request);
|
262 |
}
|
263 |
-
|
264 |
-
}
|
265 |
-
if ('v6' === $options['force_ip_resolve']) {
|
266 |
$records = \dns_get_record($uri->getHost(), \DNS_AAAA);
|
267 |
-
if (
|
268 |
throw new \PYS_PRO_GLOBAL\GuzzleHttp\Exception\ConnectException(\sprintf("Could not resolve IPv6 address for host '%s'", $uri->getHost()), $request);
|
269 |
}
|
270 |
-
|
271 |
}
|
272 |
}
|
273 |
return $uri;
|
274 |
}
|
275 |
-
private function getDefaultContext(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request)
|
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\
|
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 === \
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
|
|
331 |
$options['ssl']['cafile'] = $value;
|
332 |
if (!\file_exists($value)) {
|
333 |
throw new \RuntimeException("SSL CA bundle not found: {$value}");
|
334 |
}
|
335 |
-
} elseif ($value
|
|
|
|
|
|
|
|
|
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 |
-
|
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\
|
378 |
$ident = $request->getMethod() . ' ' . $request->getUri()->withFragment('');
|
379 |
-
|
|
|
|
|
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
|
388 |
{
|
389 |
// Wrap the existing function if needed.
|
390 |
if (!isset($params['notification'])) {
|
391 |
$params['notification'] = $notify;
|
392 |
} else {
|
393 |
-
$params['notification'] =
|
394 |
}
|
395 |
}
|
396 |
-
private
|
397 |
{
|
398 |
-
return
|
|
|
399 |
foreach ($functions as $fn) {
|
400 |
-
$fn
|
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
|
40 |
-
*
|
41 |
-
*
|
|
|
|
|
42 |
*/
|
43 |
-
public static function create(
|
44 |
{
|
45 |
-
$stack = new self($handler ?:
|
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
|
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
|
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
|
98 |
-
*
|
99 |
*/
|
100 |
-
public function setHandler(callable $handler)
|
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()
|
109 |
{
|
110 |
-
return $this->handler
|
111 |
}
|
112 |
/**
|
113 |
* Unshift a middleware to the bottom of the stack.
|
114 |
*
|
115 |
-
* @param callable
|
116 |
-
* @param string
|
117 |
*/
|
118 |
-
public function unshift(callable $middleware,
|
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
|
127 |
-
* @param string
|
128 |
*/
|
129 |
-
public function push(callable $middleware,
|
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
|
138 |
-
* @param callable
|
139 |
-
* @param string
|
140 |
*/
|
141 |
-
public function before(
|
142 |
{
|
143 |
$this->splice($findName, $withName, $middleware, \true);
|
144 |
}
|
145 |
/**
|
146 |
* Add a middleware after another middleware by name.
|
147 |
*
|
148 |
-
* @param string
|
149 |
-
* @param callable
|
150 |
-
* @param string
|
151 |
*/
|
152 |
-
public function after(
|
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)
|
162 |
{
|
163 |
$this->cached = null;
|
164 |
$idx = \is_callable($remove) ? 0 : 1;
|
165 |
-
$this->stack = \array_values(\array_filter($this->stack,
|
166 |
return $tuple[$idx] !== $remove;
|
167 |
}));
|
168 |
}
|
169 |
/**
|
170 |
* Compose the middleware and handler into a single callable function.
|
171 |
*
|
172 |
-
* @return callable
|
173 |
*/
|
174 |
-
public function resolve()
|
175 |
{
|
176 |
-
if (
|
177 |
-
if (($prev = $this->handler)
|
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 |
-
|
|
|
|
|
|
|
|
|
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(
|
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)
|
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
|
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 |
-
|
47 |
-
|
48 |
-
|
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(
|
57 |
{
|
58 |
$this->template = $template ?: self::CLF;
|
59 |
}
|
60 |
/**
|
61 |
* Returns a formatted message string.
|
62 |
*
|
63 |
-
* @param RequestInterface
|
64 |
-
* @param ResponseInterface
|
65 |
-
* @param \
|
|
|
|
|
66 |
*/
|
67 |
-
public function format(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request,
|
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\
|
79 |
break;
|
80 |
case 'response':
|
81 |
-
$result = $response ? \PYS_PRO_GLOBAL\GuzzleHttp\Psr7\
|
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()
|
91 |
break;
|
92 |
case 'res_body':
|
93 |
-
|
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)
|
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
|
8 |
-
use PYS_PRO_GLOBAL\GuzzleHttp\
|
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()
|
26 |
{
|
27 |
-
return
|
28 |
-
return
|
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(
|
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 |
-
* @
|
48 |
-
*
|
49 |
-
* @return callable(callable): callable Returns a function that accepts the next handler.
|
50 |
*/
|
51 |
-
public static function httpErrors(
|
52 |
{
|
53 |
-
return
|
54 |
-
return
|
55 |
if (empty($options['http_errors'])) {
|
56 |
return $handler($request, $options);
|
57 |
}
|
58 |
-
return $handler($request, $options)->then(
|
59 |
$code = $response->getStatusCode();
|
60 |
if ($code < 400) {
|
61 |
return $response;
|
62 |
}
|
63 |
-
throw \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException::create($request, $response
|
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
|
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)
|
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
|
83 |
-
return
|
84 |
-
return $handler($request, $options)->then(
|
85 |
$container[] = ['request' => $request, 'response' => $value, 'error' => null, 'options' => $options];
|
86 |
return $value;
|
87 |
-
},
|
88 |
$container[] = ['request' => $request, 'response' => null, 'error' => $reason, 'options' => $options];
|
89 |
-
return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\
|
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)
|
108 |
{
|
109 |
-
return
|
110 |
-
return
|
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()
|
128 |
{
|
129 |
-
return
|
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)
|
149 |
{
|
150 |
-
return
|
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 |
-
* @
|
159 |
-
*
|
160 |
-
* @param
|
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,
|
167 |
{
|
168 |
-
|
169 |
-
|
170 |
-
|
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 |
-
},
|
179 |
$response = $reason instanceof \PYS_PRO_GLOBAL\GuzzleHttp\Exception\RequestException ? $reason->getResponse() : null;
|
180 |
-
$message = $formatter->format($request, $response,
|
181 |
-
$logger->
|
182 |
-
return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\
|
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()
|
192 |
{
|
193 |
-
return
|
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)
|
205 |
{
|
206 |
-
return
|
207 |
-
return
|
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)
|
220 |
{
|
221 |
-
return
|
222 |
-
return
|
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 |
-
*
|
35 |
-
*
|
36 |
-
*
|
37 |
-
*
|
38 |
*/
|
39 |
public function __construct(\PYS_PRO_GLOBAL\GuzzleHttp\ClientInterface $client, $requests, array $config = [])
|
40 |
{
|
41 |
-
|
|
|
|
|
|
|
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\
|
51 |
-
$requests =
|
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()
|
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
|
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 = [])
|
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,
|
103 |
{
|
104 |
if (!isset($options[$name])) {
|
105 |
-
$options[$name] =
|
106 |
$results[$k] = $v;
|
107 |
};
|
108 |
} else {
|
109 |
$currentFn = $options[$name];
|
110 |
-
$options[$name] =
|
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
|
21 |
*/
|
22 |
public function __construct(callable $nextHandler)
|
23 |
{
|
24 |
$this->nextHandler = $nextHandler;
|
25 |
}
|
26 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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 (
|
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\
|
54 |
}
|
55 |
/**
|
56 |
* Add expect header
|
|
|
|
|
57 |
*/
|
58 |
-
private function addExpectHeader(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $request, array $options, array &$modify)
|
59 |
{
|
60 |
// Determine if the Expect header should be used
|
61 |
if ($request->hasHeader('Expect')) {
|
62 |
return;
|
63 |
}
|
64 |
-
$expect = $options['expect']
|
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 |
-
|
22 |
-
|
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
|
33 |
*/
|
34 |
public function __construct(callable $nextHandler)
|
35 |
{
|
36 |
$this->nextHandler = $nextHandler;
|
37 |
}
|
38 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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 (\
|
65 |
return $response;
|
66 |
}
|
67 |
-
$this->guardMax($request, $
|
68 |
$nextRequest = $this->modifyRequest($request, $options, $response);
|
69 |
if (isset($options['allow_redirects']['on_redirect'])) {
|
70 |
-
$options['allow_redirects']['on_redirect']
|
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,
|
83 |
{
|
84 |
-
return $promise->then(
|
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,
|
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,
|
101 |
{
|
102 |
-
$current = $options['__redirect_count']
|
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
|
107 |
}
|
108 |
}
|
109 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
$
|
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\
|
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\
|
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)
|
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 |
-
|
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 |
-
|
44 |
/**
|
45 |
* body: (resource|string|null|int|float|StreamInterface|callable|\Iterator)
|
46 |
* Body to send in the request.
|
47 |
*/
|
48 |
-
|
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 |
-
|
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
|
63 |
*/
|
64 |
-
|
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 |
-
|
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 |
-
|
77 |
/**
|
78 |
* decode_content: (bool, default=true) Specify whether or not
|
79 |
* Content-Encoding responses (gzip, deflate, etc.) are automatically
|
80 |
* decoded.
|
81 |
*/
|
82 |
-
|
83 |
/**
|
84 |
* delay: (int) The amount of time to delay before sending in milliseconds.
|
85 |
*/
|
86 |
-
|
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 |
-
|
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 |
-
|
111 |
/**
|
112 |
* headers: (array) Associative array of HTTP headers. Each value MUST be
|
113 |
* a string or array of strings.
|
114 |
*/
|
115 |
-
|
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 |
-
|
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 |
-
|
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 |
-
|
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 |
-
|
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 |
-
|
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 |
-
|
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 |
-
|
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 |
-
|
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 |
-
|
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 |
-
|
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 |
-
|
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 |
-
|
203 |
/**
|
204 |
* stream: Set to true to attempt to stream a response rather than
|
205 |
* download it all up-front.
|
206 |
*/
|
207 |
-
|
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 |
-
|
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 |
-
|
222 |
/**
|
223 |
* read_timeout: (float, default=default_socket_timeout ini setting) Float describing
|
224 |
* the body read timeout, for stream requests.
|
225 |
*/
|
226 |
-
|
227 |
/**
|
228 |
* version: (float) Specifies the HTTP protocol version to attempt to use.
|
229 |
*/
|
230 |
-
|
231 |
/**
|
232 |
* force_ip_resolve: (bool) Force client to use only ipv4 or ipv6 protocol
|
233 |
*/
|
234 |
-
|
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
|
31 |
-
*
|
32 |
-
*
|
33 |
-
*
|
34 |
-
* @param callable
|
35 |
-
* @param
|
36 |
-
*
|
37 |
-
*
|
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(
|
51 |
{
|
52 |
return (int) \pow(2, $retries - 1) * 1000;
|
53 |
}
|
54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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 $
|
66 |
{
|
67 |
-
return function ($value) use($
|
68 |
-
if (
|
69 |
return $value;
|
70 |
}
|
71 |
-
return $this->doRetry($
|
72 |
};
|
73 |
}
|
74 |
/**
|
75 |
* Execute rejected closure
|
|
|
|
|
76 |
*/
|
77 |
-
private function onRejected(\PYS_PRO_GLOBAL\Psr\Http\Message\RequestInterface $req, array $options)
|
78 |
{
|
79 |
return function ($reason) use($req, $options) {
|
80 |
-
if (
|
81 |
-
return \PYS_PRO_GLOBAL\GuzzleHttp\Promise\
|
82 |
}
|
83 |
return $this->doRetry($req, $options);
|
84 |
};
|
85 |
}
|
86 |
-
|
|
|
|
|
|
|
87 |
{
|
88 |
-
$options['delay'] = ($this->delay
|
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,
|
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 |
-
|
|
|
|
|
|
|
50 |
{
|
51 |
return $this->request;
|
52 |
}
|
53 |
/**
|
54 |
* Returns the response that was received (if any).
|
|
|
|
|
55 |
*/
|
56 |
-
public function getResponse()
|
57 |
{
|
58 |
return $this->response;
|
59 |
}
|
60 |
/**
|
61 |
* Returns true if a response was received.
|
|
|
|
|
62 |
*/
|
63 |
-
public function hasResponse()
|
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()
|
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()
|
93 |
{
|
94 |
return $this->transferTime;
|
95 |
}
|
96 |
/**
|
97 |
* Gets an array of all of the handler specific transfer data.
|
|
|
|
|
98 |
*/
|
99 |
-
public function getHandlerStats()
|
100 |
{
|
101 |
return $this->handlerStats;
|
102 |
}
|
@@ -107,7 +103,7 @@ final class TransferStats
|
|
107 |
*
|
108 |
* @return mixed|null
|
109 |
*/
|
110 |
-
public function getHandlerStat(
|
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()
|
285 |
{
|
286 |
-
return
|
287 |
}
|
288 |
/**
|
|
|
|
|
|
|
289 |
* @throws InvalidArgumentException
|
290 |
*
|
291 |
* @internal
|
292 |
*/
|
293 |
-
public static function idnUriConvert(\PYS_PRO_GLOBAL\Psr\Http\Message\UriInterface $uri,
|
294 |
{
|
295 |
if ($uri->getHost()) {
|
296 |
$asciiHost = self::idnToAsci($uri->getHost(), $options, $info);
|
297 |
if ($asciiHost === \false) {
|
298 |
-
$errorBitSet = $info['errors']
|
299 |
-
$errorConstants = \array_filter(\array_keys(\get_defined_constants()),
|
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 |
-
|
315 |
-
|
316 |
-
|
|
|
317 |
}
|
318 |
}
|
319 |
return $uri;
|
320 |
}
|
321 |
/**
|
322 |
-
* @
|
323 |
-
|
324 |
-
|
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(
|
338 |
{
|
339 |
-
if (\
|
|
|
|
|
|
|
340 |
return \idn_to_ascii($domain, $options, \INTL_IDNA_VARIANT_UTS46, $info);
|
341 |
}
|
342 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
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)
|
17 |
{
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
*
|
25 |
-
*
|
26 |
-
* @deprecated headers_from_lines will be removed in guzzlehttp/guzzle:8.0. Use Utils::headersFromLines instead.
|
27 |
*/
|
28 |
-
function headers_from_lines(
|
29 |
{
|
30 |
-
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
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()
|
57 |
{
|
58 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
}
|
60 |
/**
|
61 |
-
* Get the default User-Agent string to use with Guzzle
|
62 |
*
|
63 |
-
* @
|
64 |
*/
|
65 |
-
function default_user_agent()
|
66 |
{
|
67 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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()
|
85 |
{
|
86 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
}
|
88 |
/**
|
89 |
* Creates an associative array of lowercase header names to the actual
|
90 |
* header casing.
|
91 |
*
|
92 |
-
* @
|
|
|
|
|
93 |
*/
|
94 |
-
function normalize_header_keys(array $headers)
|
95 |
{
|
96 |
-
|
|
|
|
|
|
|
|
|
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
|
113 |
-
* @param
|
114 |
*
|
115 |
-
* @
|
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(
|
120 |
{
|
121 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
128 |
* into associative arrays.
|
129 |
* @param int $depth User specified recursion depth.
|
130 |
* @param int $options Bitmask of JSON decode options.
|
131 |
*
|
132 |
-
* @return
|
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(
|
140 |
{
|
141 |
-
|
|
|
|
|
|
|
|
|
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
|
148 |
-
* @param int
|
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,
|
156 |
{
|
157 |
-
|
|
|
|
|
|
|
|
|
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\\
|
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
|