Version Description
Download this release
Release Info
Developer | themeisle |
Plugin | Orbit Fox by ThemeIsle |
Version | 2.10.13 |
Comparing to | |
See all releases |
Code changes from version 2.10.12 to 2.10.13
- CHANGELOG.md +5 -0
- core/includes/class-orbit-fox.php +1 -1
- dashboard/build/dashboard.asset.php +1 -1
- dashboard/build/dashboard.js +1 -1
- dashboard/src/components/ModuleSettings.js +1 -1
- languages/themeisle-companion.pot +29 -29
- obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-clients-bar-section.php +3 -1
- obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php +33 -8
- obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php +5 -0
- obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php +5 -0
- readme.md +8 -0
- readme.txt +8 -0
- themeisle-companion.php +1 -1
- vendor/autoload.php +1 -1
- vendor/clue/stream-filter/CHANGELOG.md +11 -0
- vendor/clue/stream-filter/README.md +37 -34
- vendor/clue/stream-filter/src/CallbackFilter.php +6 -0
- vendor/clue/stream-filter/src/functions.php +14 -14
- vendor/codeinwp/themeisle-sdk/CHANGELOG.md +8 -0
- vendor/codeinwp/themeisle-sdk/load.php +1 -1
- vendor/codeinwp/themeisle-sdk/src/Modules/Licenser.php +4 -0
- vendor/codeinwp/themeisle-sdk/src/Modules/Rollback.php +17 -1
- vendor/codeinwp/themeisle-sdk/src/Product.php +9 -0
- vendor/composer/InstalledVersions.php +7 -7
- vendor/composer/autoload_classmap.php +1 -0
- vendor/composer/autoload_real.php +7 -7
- vendor/composer/autoload_static.php +5 -4
- vendor/composer/installed.json +22 -22
- vendor/composer/installed.php +31 -31
- vendor/guzzlehttp/psr7/CHANGELOG.md +20 -2
- vendor/guzzlehttp/psr7/README.md +22 -2
- vendor/guzzlehttp/psr7/src/MessageTrait.php +61 -5
- vendor/guzzlehttp/psr7/src/UriComparator.php +55 -0
CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
1 |
##### [Version 2.10.12](https://github.com/Codeinwp/themeisle-companion/compare/v2.10.11...v2.10.12) (2022-05-27)
|
2 |
|
3 |
- [Fix] Accessibility issue on social links.
|
1 |
+
##### [Version 2.10.13](https://github.com/Codeinwp/themeisle-companion/compare/v2.10.12...v2.10.13) (2022-07-01)
|
2 |
+
|
3 |
+
- [Fix] Add the "srcset" property for Hestia's free sections
|
4 |
+
- [Fix] Missing desktop position option from the social sharing module
|
5 |
+
|
6 |
##### [Version 2.10.12](https://github.com/Codeinwp/themeisle-companion/compare/v2.10.11...v2.10.12) (2022-05-27)
|
7 |
|
8 |
- [Fix] Accessibility issue on social links.
|
core/includes/class-orbit-fox.php
CHANGED
@@ -69,7 +69,7 @@ class Orbit_Fox {
|
|
69 |
|
70 |
$this->plugin_name = 'orbit-fox';
|
71 |
|
72 |
-
$this->version = '2.10.
|
73 |
|
74 |
$this->load_dependencies();
|
75 |
$this->set_locale();
|
69 |
|
70 |
$this->plugin_name = 'orbit-fox';
|
71 |
|
72 |
+
$this->version = '2.10.13';
|
73 |
|
74 |
$this->load_dependencies();
|
75 |
$this->set_locale();
|
dashboard/build/dashboard.asset.php
CHANGED
@@ -1 +1 @@
|
|
1 |
-
<?php return array('dependencies' => array('lodash', 'wp-components', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '
|
1 |
+
<?php return array('dependencies' => array('lodash', 'wp-components', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '408703dfb3200fde2b47582f202fd193');
|
dashboard/build/dashboard.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
(window.webpackJsonp_themeisle_companion=window.webpackJsonp_themeisle_companion||[]).push([[1],{6:function(e,t,n){}}]),function(e){function t(t){for(var a,o,l=t[0],r=t[1],i=t[2],m=0,d=[];m<l.length;m++)o=l[m],Object.prototype.hasOwnProperty.call(c,o)&&c[o]&&d.push(c[o][0]),c[o]=0;for(a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a]);for(u&&u(t);d.length;)d.shift()();return s.push.apply(s,i||[]),n()}function n(){for(var e,t=0;t<s.length;t++){for(var n=s[t],a=!0,l=1;l<n.length;l++){var r=n[l];0!==c[r]&&(a=!1)}a&&(s.splice(t--,1),e=o(o.s=n[0]))}return e}var a={},c={0:0},s=[];function o(t){if(a[t])return a[t].exports;var n=a[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,o),n.l=!0,n.exports}o.m=e,o.c=a,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)o.d(n,a,function(t){return e[t]}.bind(null,a));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="";var l=window.webpackJsonp_themeisle_companion=window.webpackJsonp_themeisle_companion||[],r=l.push.bind(l);l.push=t,l=l.slice();for(var i=0;i<l.length;i++)t(l[i]);var u=r;s.push([7,1]),n()}([function(e,t){e.exports=window.wp.element},function(e,t){e.exports=window.wp.i18n},function(e,t){e.exports=window.wp.components},function(e,t,n){var a;!function(){"use strict";var n={}.hasOwnProperty;function c(){for(var e=[],t=0;t<arguments.length;t++){var a=arguments[t];if(a){var s=typeof a;if("string"===s||"number"===s)e.push(a);else if(Array.isArray(a)){if(a.length){var o=c.apply(null,a);o&&e.push(o)}}else if("object"===s)if(a.toString===Object.prototype.toString)for(var l in a)n.call(a,l)&&a[l]&&e.push(l);else e.push(a.toString())}}return e.join(" ")}e.exports?(c.default=c,e.exports=c):void 0===(a=function(){return c}.apply(t,[]))||(e.exports=a)}()},function(e,t,n){"use strict";var a=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==a)return a;throw new Error("unable to locate global object")}();e.exports=t=a.fetch,a.fetch&&(t.default=a.fetch.bind(a)),t.Headers=a.Headers,t.Request=a.Request,t.Response=a.Response},function(e,t){e.exports=window.lodash},,function(e,t,n){"use strict";n.r(t);var a=n(0);n(6);const c=Object(a.createContext)(),s=Object(a.createContext)(),o=Object(a.createContext)();var l=n(4),r=n.n(l);const i=async(e,t=!1,n={},a=!1,c="POST")=>{const s={method:c,headers:{Accept:"application/json","Content-Type":a?"application/x-www-form-urlencoded":"application/json","x-wp-nonce":obfxDash.nonce}};return"POST"===c&&(s.body=a?n:JSON.stringify(n)),await r()(e,s).then(e=>t?e:e.json())};var u=n(3),m=n.n(u),d=n(5),b=n(2),p=n(1);const{options:O,root:j,setSettingsRoute:h}=obfxDash;var f=({slug:e})=>{const{modulesData:t,setModulesData:n}=Object(a.useContext)(c),{setToast:s}=Object(a.useContext)(o),[l,r]=Object(a.useState)(!1),[u,f]=Object(a.useState)(!1),v=t.module_settings[e]||{},[g,E]=Object(a.useState)({...v}),_=Object(a.createElement)(b.Dashicon,{size:18,icon:"update",className:"is-loading"}),y=(e,t)=>{const n=g;n[e]=t,E({...n})};return Object(a.createElement)("div",{className:m()(["module-settings",l?"open":"closed"])},Object(a.createElement)("button",{"aria-expanded":l,className:"accordion-header",onClick:()=>r(!l)},Object(a.createElement)("div",{className:"accordion-title"}," Settings "),Object(a.createElement)(b.Dashicon,{icon:l?"arrow-up-alt2":"arrow-down-alt2"})),l&&Object(a.createElement)("div",{className:m()(["accordion-content",u?"loading":""])},(()=>{const t=[];for(let n=0;n<O[e].length;n++){let c=O[e][n];if(c.title&&c.label&&t.push(Object(a.createElement)("p",{className:"title"}," ",c.title," ")),c.hasOwnProperty("before_wrap")){const o=[],l="1"===g[c.id]||!g[c.id]&&"1"===c.default;for(;o.push(P(c,g,y,s)),!c.hasOwnProperty("after_wrap");)c=O[e][++n];const r=m()(["settings-row",l&&"active"]);t.push(Object(a.createElement)("div",{className:r}," ",o," "))}else if("checkbox"!==c.type)t.push(P(c,g,y,s));else{const o=[];for(;"checkbox"===c.type;)o.push(P(c,g,y,s)),c=O[e][++n];t.push(Object(a.createElement)("div",{className:"checkboxes-row"}," ",o," "))}}return t})(),Object(a.createElement)("div",{className:"buttons-container"},Object(a.createElement)(b.Button,{isSecondary:!0,className:"obfx-button",onClick:()=>r(!1)},Object(p.__)("Close","themeisle-companion")),Object(a.createElement)(b.Button,{isPrimary:!0,disabled:Object(d.isEqual)(g,v),className:"obfx-button",onClick:()=>{f(!0),i(j+h,!1,{slug:e,value:g}).then(a=>{if("success"!==a.type)return E({...v}),f(!1),void s(Object(p.__)("Could not update options. Please try again.","themeisle-companion"));t.module_settings[e]={...g},n({...t}),f(!1),s(Object(p.__)("Options updated successfully.","themeisle-companion"))})}},u?_:Object(p.__)("Save","themeisle-companion")))))};const{root:v,toggleStateRoute:g,options:E}=obfxDash;var _=({slug:e,details:t})=>{const n=t.refresh_after_enabled,s=t.active_default,[l,r]=Object(a.useState)(!1),{modulesData:u,setModulesData:d}=Object(a.useContext)(c),{setToast:O}=Object(a.useContext)(o),j=u.module_status,h=j[e]&&void 0!==j[e].active?j[e].active:s,_=m()("module-card",{active:h});return Object(a.createElement)("div",{className:_},Object(a.createElement)("div",{className:"module-card-header"},Object(a.createElement)("h3",{className:"title"},t.name),Object(a.createElement)("div",{className:"toggle-wrap"},l&&Object(a.createElement)(b.Dashicon,{size:18,icon:"update",className:"is-loading"}),Object(a.createElement)(b.ToggleControl,{checked:h,onChange:a=>{r(!0),i(v+g,!1,{slug:e,value:a}).then(c=>{((a,c)=>{if("success"!==a.type)return r(!1),void O(Object(p.__)("Could not activate module. Please try again.","themeisle-companion"));n&&window.location.reload(),j[e]||(j[e]={}),j[e].active=c,d(u),r(!1),O((c?Object(p.__)("Module activated","themeisle-companion"):Object(p.__)("Module deactivated","themeisle-companion"))+` (${t.name})`)})(c,a)})}}))),Object(a.createElement)("div",{className:"module-card-content"},(e=>{const t=[];if(e.indexOf("neve-pro-notice")>=0)return Object(a.createElement)("p",{className:"description",dangerouslySetInnerHTML:{__html:e}});for(;e.indexOf("<a")>=0;){const n=e.indexOf("<a"),c=e.indexOf("</a>");t.push(e.slice(0,n));const s=e.indexOf('href="')+'href="'.length,o=e.indexOf('"',s),l=e.slice(s,o),r=e.slice(e.indexOf(">",n)+1,c);t.push(Object(a.renderToString)(Object(a.createElement)(b.ExternalLink,{href:l},r))),e=e.slice(c+"</a>".length)}return t.push(e),Object(a.createElement)("p",{className:"description",dangerouslySetInnerHTML:{__html:t.join(" ")}})})(t.description)),h&&E[e].length>0&&Object(a.createElement)(f,{slug:e}))};const{modules:y,data:w}=obfxDash;var x=()=>{const[e,t]=Object(a.useState)(""===w?{module_status:{},module_settings:{}}:{...w});return e.module_settings||t({...e,module_settings:{}}),e.module_status||t({...e,module_status:{}}),Object(a.createElement)(c.Provider,{value:{modulesData:e,setModulesData:t}},Object(a.createElement)("div",{className:"modules-container"},Object.entries(y).map(([e,t])=>Object(a.createElement)(_,{slug:e,details:t,key:e}))))};var N=({slug:e,data:t})=>{const{banner:n,name:c,description:l,version:r,author:u,url:d,premium:O}=t,{pluginsData:j,setPluginsData:h}=Object(a.useContext)(s),{setToast:f}=Object(a.useContext)(o),[v,g]=Object(a.useState)(!1),E=j[e].action,_=t=>{j[e].action=t,h(j)},y=Object(p.__)("Something went wrong. Please try again.","themeisle-companion"),w={install:{static:Object(p.__)("Install","themeisle-companion"),progress:Object(p.__)("Installing","themeisle-companion")},activate:{static:Object(p.__)("Activate","themeisle-companion"),progress:Object(p.__)("Activating","themeisle-companion")},deactivate:{static:Object(p.__)("Deactivate","themeisle-companion"),progress:Object(p.__)("Deactivating","themeisle-companion")},external:Object(p.__)("See more details","themeisle-companion")};return Object(a.createElement)("div",{className:m()(["card","plugin",e])},Object(a.createElement)("div",{className:"card-header"},Object(a.createElement)("img",{src:n,alt:Object(p.__)("Banner Image","name")}),O&&Object(a.createElement)("span",{className:"premium-label"},Object(p.__)("Premium","themeisle-companion"))),Object(a.createElement)("div",{className:"card-body"},Object(a.createElement)("h3",{className:"card-title"},c),Object(a.createElement)("p",{className:"card-description"},l)),Object(a.createElement)("div",{className:"card-footer"},Object(a.createElement)("div",{className:"plugin-data"},r&&Object(a.createElement)("span",{className:"version"},"v",r),u&&Object(a.createElement)("span",{className:"author"},u)),"external"!==E&&Object(a.createElement)(b.Button,{className:"plugin-action",isPrimary:["install","activate"].includes(E),isSecondary:"deactivate"===E,disabled:v,onClick:()=>{var n;g(!0),"install"!==E?(n=t[E],!0,i(n,!0,{},"GET")).then(e=>{if(!e.ok)return g(!1),void f(y);_("activate"===E?"deactivate":"activate"),g(!1)}):(e=>new Promise(t=>{wp.updates.ajax("install-plugin",{slug:e,success:()=>{t({success:!0})},error:()=>{t({success:!1})}})}))(e).then(e=>{if(!e.success)return g(!1),void f(y);_("activate"),g(!1)})}},!v&&w[E].static,v&&Object(a.createElement)("span",{style:{display:"flex",alignItems:"center"}},Object(a.createElement)(b.Dashicon,{icon:"update"}),w[E].progress+"...")),"external"===E&&Object(a.createElement)(b.ExternalLink,{href:d},w[E])))},S=()=>{const{plugins:e}=obfxDash,[t,n]=Object(a.useState)(e);return e?Object(a.createElement)(s.Provider,{value:{pluginsData:t,setPluginsData:n}},Object(a.createElement)("div",{className:"plugins-grid"},Object.keys(e).map(t=>Object(a.createElement)(N,{key:t,slug:t,data:e[t]})))):null};const C={modules:{label:Object(p.__)("Available Modules","themeisle-companion"),render:()=>Object(a.createElement)(x,null)},plugins:{label:Object(p.__)("Recommended Plugins","themeisle-companion"),render:()=>Object(a.createElement)(S,null)}},k=e=>{const t=document.createElement("textarea");return t.innerHTML=e,t.value},P=(e,t,n,c)=>{const s=void 0!==t[e.id]?t[e.id]:e.default;switch(e.type){case"checkbox":return Object(a.createElement)(b.CheckboxControl,{label:e.label,checked:"1"===s,onChange:t=>n(e.id,t?"1":"0")});case"radio":return Object(a.createElement)(b.RadioControl,{label:e.title,options:e.options.map((e,t)=>({label:e,value:t})),selected:parseInt(s),onChange:t=>n(e.id,t)});case"toggle":return Object(a.createElement)(b.ToggleControl,{label:Object(a.createElement)("div",{dangerouslySetInnerHTML:{__html:e.label}}),checked:"1"===s,onChange:t=>n(e.id,t?"1":"0")});case"select":return Object(a.createElement)("div",{className:"select-wrap"},Object(a.createElement)(b.SelectControl,{label:e.title,value:s,options:Object.entries(e.options).map(([e,t])=>({value:e,label:t})),onChange:t=>n(e.id,t)}));case"text":return Object(a.createElement)(b.TextControl,{label:e.title,value:k(s),onChange:t=>n(e.id,t)});case"link":const t="analytics_accounts_unregister"===e.id;return Object(a.createElement)("div",{className:"select-wrap"},Object(a.createElement)(b.Button,{isPrimary:!t,isDestructive:t,href:e.url?e.url:null,onClick:t&&(()=>{((e,t)=>{var n;(n=e,"deactivate=unregister",i(n,!1,"deactivate=unregister",!0)).then(e=>{!1!==e?window.location.reload():t(Object(p.__)("Could not unregister the site. Please try again.","themeisle-companion"))})})(e.unregisterURL,c)})},Object(a.createElement)("div",{dangerouslySetInnerHTML:{__html:e.text}})))}};var T=({activeTab:e,setActiveTab:t})=>Object(a.createElement)("header",null,Object(a.createElement)("div",{className:"container"},Object(a.createElement)("div",{className:"top"},Object(a.createElement)("img",{src:obfxDash.path+"assets/orbit-fox.png",alt:"logo"}),Object(a.createElement)("h1",null,"Orbit Fox")),Object(a.createElement)("nav",{className:"navigation"},Object.keys(C).map((n,c)=>Object(a.createElement)("li",{key:"tab"+c,className:n===e?"active":""},Object(a.createElement)("a",{href:"#"+n,onClick:()=>t(n)},C[n].label)))))),D=()=>{const{toast:e,setToast:t}=Object(a.useContext)(o);Object(a.useEffect)(()=>{setTimeout(()=>{t(null)},3e3)},[]);const n={opacity:null===e?0:1};return Object(a.createElement)("div",{style:n},Object(a.createElement)(b.Snackbar,{className:"dash-notice"},e))},M=()=>{const e=(()=>{let e=window.location.hash;return"string"!=typeof window.location.hash?null:(e=e.substring(1),Object.keys(C).includes(e)?e:null)})(),[t,n]=Object(a.useState)(e||"modules"),[c,s]=Object(a.useState)();return Object(a.createElement)(o.Provider,{value:{toast:c,setToast:s}},Object(a.createElement)(T,{activeTab:t,setActiveTab:n}),Object(a.createElement)("div",{className:"container"},C[t].render()),c&&Object(a.createElement)(D,null))};Object(a.render)(Object(a.createElement)(()=>Object(a.createElement)(M,null),null),document.getElementById("obfx-dash"))}]);
|
1 |
+
(window.webpackJsonp_themeisle_companion=window.webpackJsonp_themeisle_companion||[]).push([[1],{6:function(e,t,n){}}]),function(e){function t(t){for(var a,o,l=t[0],r=t[1],i=t[2],m=0,d=[];m<l.length;m++)o=l[m],Object.prototype.hasOwnProperty.call(c,o)&&c[o]&&d.push(c[o][0]),c[o]=0;for(a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a]);for(u&&u(t);d.length;)d.shift()();return s.push.apply(s,i||[]),n()}function n(){for(var e,t=0;t<s.length;t++){for(var n=s[t],a=!0,l=1;l<n.length;l++){var r=n[l];0!==c[r]&&(a=!1)}a&&(s.splice(t--,1),e=o(o.s=n[0]))}return e}var a={},c={0:0},s=[];function o(t){if(a[t])return a[t].exports;var n=a[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,o),n.l=!0,n.exports}o.m=e,o.c=a,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)o.d(n,a,function(t){return e[t]}.bind(null,a));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="";var l=window.webpackJsonp_themeisle_companion=window.webpackJsonp_themeisle_companion||[],r=l.push.bind(l);l.push=t,l=l.slice();for(var i=0;i<l.length;i++)t(l[i]);var u=r;s.push([7,1]),n()}([function(e,t){e.exports=window.wp.element},function(e,t){e.exports=window.wp.i18n},function(e,t){e.exports=window.wp.components},function(e,t,n){var a;!function(){"use strict";var n={}.hasOwnProperty;function c(){for(var e=[],t=0;t<arguments.length;t++){var a=arguments[t];if(a){var s=typeof a;if("string"===s||"number"===s)e.push(a);else if(Array.isArray(a)){if(a.length){var o=c.apply(null,a);o&&e.push(o)}}else if("object"===s)if(a.toString===Object.prototype.toString)for(var l in a)n.call(a,l)&&a[l]&&e.push(l);else e.push(a.toString())}}return e.join(" ")}e.exports?(c.default=c,e.exports=c):void 0===(a=function(){return c}.apply(t,[]))||(e.exports=a)}()},function(e,t,n){"use strict";var a=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==a)return a;throw new Error("unable to locate global object")}();e.exports=t=a.fetch,a.fetch&&(t.default=a.fetch.bind(a)),t.Headers=a.Headers,t.Request=a.Request,t.Response=a.Response},function(e,t){e.exports=window.lodash},,function(e,t,n){"use strict";n.r(t);var a=n(0);n(6);const c=Object(a.createContext)(),s=Object(a.createContext)(),o=Object(a.createContext)();var l=n(4),r=n.n(l);const i=async(e,t=!1,n={},a=!1,c="POST")=>{const s={method:c,headers:{Accept:"application/json","Content-Type":a?"application/x-www-form-urlencoded":"application/json","x-wp-nonce":obfxDash.nonce}};return"POST"===c&&(s.body=a?n:JSON.stringify(n)),await r()(e,s).then(e=>t?e:e.json())};var u=n(3),m=n.n(u),d=n(5),b=n(2),p=n(1);const{options:O,root:j,setSettingsRoute:h}=obfxDash;var f=({slug:e})=>{const{modulesData:t,setModulesData:n}=Object(a.useContext)(c),{setToast:s}=Object(a.useContext)(o),[l,r]=Object(a.useState)(!1),[u,f]=Object(a.useState)(!1),v=t.module_settings[e]||{},[g,E]=Object(a.useState)({...v}),_=Object(a.createElement)(b.Dashicon,{size:18,icon:"update",className:"is-loading"}),y=(e,t)=>{const n=g;n[e]=t,E({...n})};return Object(a.createElement)("div",{className:m()(["module-settings",l?"open":"closed"])},Object(a.createElement)("button",{"aria-expanded":l,className:"accordion-header",onClick:()=>r(!l)},Object(a.createElement)("div",{className:"accordion-title"}," Settings "),Object(a.createElement)(b.Dashicon,{icon:l?"arrow-up-alt2":"arrow-down-alt2"})),l&&Object(a.createElement)("div",{className:m()(["accordion-content",u?"loading":""])},(()=>{const t=[];for(let n=0;n<O[e].length;n++){let c=O[e][n];if(c.title&&c.label&&t.push(Object(a.createElement)("p",{className:"title"}," ",c.title," ")),c.hasOwnProperty("before_wrap")){const o=[],l="1"===g[c.id]||!g[c.id]&&"1"===c.default;for(;o.push(P(c,g,y,s)),!c.hasOwnProperty("after_wrap");)c=O[e][++n];const r=m()(["settings-row",l&&"active"]);t.push(Object(a.createElement)("div",{className:r}," ",o," "))}else if("checkbox"!==c.type)t.push(P(c,g,y,s));else{const o=[];for(;"checkbox"===c.type;)o.push(P(c,g,y,s)),c=O[e][++n];t.push(Object(a.createElement)("div",{className:"checkboxes-row"}," ",o," ")),n--}}return t})(),Object(a.createElement)("div",{className:"buttons-container"},Object(a.createElement)(b.Button,{isSecondary:!0,className:"obfx-button",onClick:()=>r(!1)},Object(p.__)("Close","themeisle-companion")),Object(a.createElement)(b.Button,{isPrimary:!0,disabled:Object(d.isEqual)(g,v),className:"obfx-button",onClick:()=>{f(!0),i(j+h,!1,{slug:e,value:g}).then(a=>{if("success"!==a.type)return E({...v}),f(!1),void s(Object(p.__)("Could not update options. Please try again.","themeisle-companion"));t.module_settings[e]={...g},n({...t}),f(!1),s(Object(p.__)("Options updated successfully.","themeisle-companion"))})}},u?_:Object(p.__)("Save","themeisle-companion")))))};const{root:v,toggleStateRoute:g,options:E}=obfxDash;var _=({slug:e,details:t})=>{const n=t.refresh_after_enabled,s=t.active_default,[l,r]=Object(a.useState)(!1),{modulesData:u,setModulesData:d}=Object(a.useContext)(c),{setToast:O}=Object(a.useContext)(o),j=u.module_status,h=j[e]&&void 0!==j[e].active?j[e].active:s,_=m()("module-card",{active:h});return Object(a.createElement)("div",{className:_},Object(a.createElement)("div",{className:"module-card-header"},Object(a.createElement)("h3",{className:"title"},t.name),Object(a.createElement)("div",{className:"toggle-wrap"},l&&Object(a.createElement)(b.Dashicon,{size:18,icon:"update",className:"is-loading"}),Object(a.createElement)(b.ToggleControl,{checked:h,onChange:a=>{r(!0),i(v+g,!1,{slug:e,value:a}).then(c=>{((a,c)=>{if("success"!==a.type)return r(!1),void O(Object(p.__)("Could not activate module. Please try again.","themeisle-companion"));n&&window.location.reload(),j[e]||(j[e]={}),j[e].active=c,d(u),r(!1),O((c?Object(p.__)("Module activated","themeisle-companion"):Object(p.__)("Module deactivated","themeisle-companion"))+` (${t.name})`)})(c,a)})}}))),Object(a.createElement)("div",{className:"module-card-content"},(e=>{const t=[];if(e.indexOf("neve-pro-notice")>=0)return Object(a.createElement)("p",{className:"description",dangerouslySetInnerHTML:{__html:e}});for(;e.indexOf("<a")>=0;){const n=e.indexOf("<a"),c=e.indexOf("</a>");t.push(e.slice(0,n));const s=e.indexOf('href="')+'href="'.length,o=e.indexOf('"',s),l=e.slice(s,o),r=e.slice(e.indexOf(">",n)+1,c);t.push(Object(a.renderToString)(Object(a.createElement)(b.ExternalLink,{href:l},r))),e=e.slice(c+"</a>".length)}return t.push(e),Object(a.createElement)("p",{className:"description",dangerouslySetInnerHTML:{__html:t.join(" ")}})})(t.description)),h&&E[e].length>0&&Object(a.createElement)(f,{slug:e}))};const{modules:y,data:w}=obfxDash;var x=()=>{const[e,t]=Object(a.useState)(""===w?{module_status:{},module_settings:{}}:{...w});return e.module_settings||t({...e,module_settings:{}}),e.module_status||t({...e,module_status:{}}),Object(a.createElement)(c.Provider,{value:{modulesData:e,setModulesData:t}},Object(a.createElement)("div",{className:"modules-container"},Object.entries(y).map(([e,t])=>Object(a.createElement)(_,{slug:e,details:t,key:e}))))};var N=({slug:e,data:t})=>{const{banner:n,name:c,description:l,version:r,author:u,url:d,premium:O}=t,{pluginsData:j,setPluginsData:h}=Object(a.useContext)(s),{setToast:f}=Object(a.useContext)(o),[v,g]=Object(a.useState)(!1),E=j[e].action,_=t=>{j[e].action=t,h(j)},y=Object(p.__)("Something went wrong. Please try again.","themeisle-companion"),w={install:{static:Object(p.__)("Install","themeisle-companion"),progress:Object(p.__)("Installing","themeisle-companion")},activate:{static:Object(p.__)("Activate","themeisle-companion"),progress:Object(p.__)("Activating","themeisle-companion")},deactivate:{static:Object(p.__)("Deactivate","themeisle-companion"),progress:Object(p.__)("Deactivating","themeisle-companion")},external:Object(p.__)("See more details","themeisle-companion")};return Object(a.createElement)("div",{className:m()(["card","plugin",e])},Object(a.createElement)("div",{className:"card-header"},Object(a.createElement)("img",{src:n,alt:Object(p.__)("Banner Image","name")}),O&&Object(a.createElement)("span",{className:"premium-label"},Object(p.__)("Premium","themeisle-companion"))),Object(a.createElement)("div",{className:"card-body"},Object(a.createElement)("h3",{className:"card-title"},c),Object(a.createElement)("p",{className:"card-description"},l)),Object(a.createElement)("div",{className:"card-footer"},Object(a.createElement)("div",{className:"plugin-data"},r&&Object(a.createElement)("span",{className:"version"},"v",r),u&&Object(a.createElement)("span",{className:"author"},u)),"external"!==E&&Object(a.createElement)(b.Button,{className:"plugin-action",isPrimary:["install","activate"].includes(E),isSecondary:"deactivate"===E,disabled:v,onClick:()=>{var n;g(!0),"install"!==E?(n=t[E],!0,i(n,!0,{},"GET")).then(e=>{if(!e.ok)return g(!1),void f(y);_("activate"===E?"deactivate":"activate"),g(!1)}):(e=>new Promise(t=>{wp.updates.ajax("install-plugin",{slug:e,success:()=>{t({success:!0})},error:()=>{t({success:!1})}})}))(e).then(e=>{if(!e.success)return g(!1),void f(y);_("activate"),g(!1)})}},!v&&w[E].static,v&&Object(a.createElement)("span",{style:{display:"flex",alignItems:"center"}},Object(a.createElement)(b.Dashicon,{icon:"update"}),w[E].progress+"...")),"external"===E&&Object(a.createElement)(b.ExternalLink,{href:d},w[E])))},S=()=>{const{plugins:e}=obfxDash,[t,n]=Object(a.useState)(e);return e?Object(a.createElement)(s.Provider,{value:{pluginsData:t,setPluginsData:n}},Object(a.createElement)("div",{className:"plugins-grid"},Object.keys(e).map(t=>Object(a.createElement)(N,{key:t,slug:t,data:e[t]})))):null};const C={modules:{label:Object(p.__)("Available Modules","themeisle-companion"),render:()=>Object(a.createElement)(x,null)},plugins:{label:Object(p.__)("Recommended Plugins","themeisle-companion"),render:()=>Object(a.createElement)(S,null)}},k=e=>{const t=document.createElement("textarea");return t.innerHTML=e,t.value},P=(e,t,n,c)=>{const s=void 0!==t[e.id]?t[e.id]:e.default;switch(e.type){case"checkbox":return Object(a.createElement)(b.CheckboxControl,{label:e.label,checked:"1"===s,onChange:t=>n(e.id,t?"1":"0")});case"radio":return Object(a.createElement)(b.RadioControl,{label:e.title,options:e.options.map((e,t)=>({label:e,value:t})),selected:parseInt(s),onChange:t=>n(e.id,t)});case"toggle":return Object(a.createElement)(b.ToggleControl,{label:Object(a.createElement)("div",{dangerouslySetInnerHTML:{__html:e.label}}),checked:"1"===s,onChange:t=>n(e.id,t?"1":"0")});case"select":return Object(a.createElement)("div",{className:"select-wrap"},Object(a.createElement)(b.SelectControl,{label:e.title,value:s,options:Object.entries(e.options).map(([e,t])=>({value:e,label:t})),onChange:t=>n(e.id,t)}));case"text":return Object(a.createElement)(b.TextControl,{label:e.title,value:k(s),onChange:t=>n(e.id,t)});case"link":const t="analytics_accounts_unregister"===e.id;return Object(a.createElement)("div",{className:"select-wrap"},Object(a.createElement)(b.Button,{isPrimary:!t,isDestructive:t,href:e.url?e.url:null,onClick:t&&(()=>{((e,t)=>{var n;(n=e,"deactivate=unregister",i(n,!1,"deactivate=unregister",!0)).then(e=>{!1!==e?window.location.reload():t(Object(p.__)("Could not unregister the site. Please try again.","themeisle-companion"))})})(e.unregisterURL,c)})},Object(a.createElement)("div",{dangerouslySetInnerHTML:{__html:e.text}})))}};var T=({activeTab:e,setActiveTab:t})=>Object(a.createElement)("header",null,Object(a.createElement)("div",{className:"container"},Object(a.createElement)("div",{className:"top"},Object(a.createElement)("img",{src:obfxDash.path+"assets/orbit-fox.png",alt:"logo"}),Object(a.createElement)("h1",null,"Orbit Fox")),Object(a.createElement)("nav",{className:"navigation"},Object.keys(C).map((n,c)=>Object(a.createElement)("li",{key:"tab"+c,className:n===e?"active":""},Object(a.createElement)("a",{href:"#"+n,onClick:()=>t(n)},C[n].label)))))),D=()=>{const{toast:e,setToast:t}=Object(a.useContext)(o);Object(a.useEffect)(()=>{setTimeout(()=>{t(null)},3e3)},[]);const n={opacity:null===e?0:1};return Object(a.createElement)("div",{style:n},Object(a.createElement)(b.Snackbar,{className:"dash-notice"},e))},M=()=>{const e=(()=>{let e=window.location.hash;return"string"!=typeof window.location.hash?null:(e=e.substring(1),Object.keys(C).includes(e)?e:null)})(),[t,n]=Object(a.useState)(e||"modules"),[c,s]=Object(a.useState)();return Object(a.createElement)(o.Provider,{value:{toast:c,setToast:s}},Object(a.createElement)(T,{activeTab:t,setActiveTab:n}),Object(a.createElement)("div",{className:"container"},C[t].render()),c&&Object(a.createElement)(D,null))};Object(a.render)(Object(a.createElement)(()=>Object(a.createElement)(M,null),null),document.getElementById("obfx-dash"))}]);
|
dashboard/src/components/ModuleSettings.js
CHANGED
@@ -64,7 +64,6 @@ const ModuleSettings = ({ slug }) => {
|
|
64 |
|
65 |
const getContent = () => {
|
66 |
const content = [];
|
67 |
-
|
68 |
for (let i = 0; i < options[slug].length; i++) {
|
69 |
let element = options[slug][i];
|
70 |
if (element.title && element.label) {
|
@@ -102,6 +101,7 @@ const ModuleSettings = ({ slug }) => {
|
|
102 |
element = options[slug][++i];
|
103 |
}
|
104 |
content.push(<div className="checkboxes-row"> {row} </div>);
|
|
|
105 |
continue;
|
106 |
}
|
107 |
|
64 |
|
65 |
const getContent = () => {
|
66 |
const content = [];
|
|
|
67 |
for (let i = 0; i < options[slug].length; i++) {
|
68 |
let element = options[slug][i];
|
69 |
if (element.title && element.label) {
|
101 |
element = options[slug][++i];
|
102 |
}
|
103 |
content.push(<div className="checkboxes-row"> {row} </div>);
|
104 |
+
i--;
|
105 |
continue;
|
106 |
}
|
107 |
|
languages/themeisle-companion.pot
CHANGED
@@ -2,10 +2,10 @@
|
|
2 |
# This file is distributed under the GPL-2.0+.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Orbit Fox Companion 2.10.
|
6 |
"Report-Msgid-Bugs-To: "
|
7 |
"https://github.com/Codeinwp/themeisle-companion/issues\n"
|
8 |
-
"POT-Creation-Date: 2022-
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=utf-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -1368,9 +1368,9 @@ msgstr ""
|
|
1368 |
#: obfx_modules/companion-legacy/inc/hestia/inc/customizer.php:38
|
1369 |
#: obfx_modules/companion-legacy/inc/hestia/inc/customizer.php:51
|
1370 |
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php:29
|
1371 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php:
|
1372 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php:
|
1373 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php:
|
1374 |
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:32
|
1375 |
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:29
|
1376 |
msgid ""
|
@@ -1519,113 +1519,113 @@ msgstr ""
|
|
1519 |
msgid "Testimonial"
|
1520 |
msgstr ""
|
1521 |
|
1522 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php:
|
1523 |
msgid "Responsive"
|
1524 |
msgstr ""
|
1525 |
|
1526 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php:
|
1527 |
msgid "Quality"
|
1528 |
msgstr ""
|
1529 |
|
1530 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php:
|
1531 |
msgid "Support"
|
1532 |
msgstr ""
|
1533 |
|
1534 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:
|
1535 |
msgid "Desmond Purpleson"
|
1536 |
msgstr ""
|
1537 |
|
1538 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:
|
1539 |
msgid "CEO"
|
1540 |
msgstr ""
|
1541 |
|
1542 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:
|
1543 |
msgid ""
|
1544 |
"Locavore pinterest chambray affogato art party, forage coloring book "
|
1545 |
"typewriter. Bitters cold selfies, retro celiac sartorial mustache."
|
1546 |
msgstr ""
|
1547 |
|
1548 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:
|
1549 |
msgid "Parsley Pepperspray"
|
1550 |
msgstr ""
|
1551 |
|
1552 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:
|
1553 |
msgid "Marketing Specialist"
|
1554 |
msgstr ""
|
1555 |
|
1556 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:
|
1557 |
msgid ""
|
1558 |
"Craft beer salvia celiac mlkshk. Pinterest celiac tumblr, portland salvia "
|
1559 |
"skateboard cliche thundercats. Tattooed chia austin hell."
|
1560 |
msgstr ""
|
1561 |
|
1562 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:
|
1563 |
msgid "Desmond Eagle"
|
1564 |
msgstr ""
|
1565 |
|
1566 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:
|
1567 |
msgid "Graphic Designer"
|
1568 |
msgstr ""
|
1569 |
|
1570 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:
|
1571 |
msgid ""
|
1572 |
"Pok pok direct trade godard street art, poutine fam typewriter food truck "
|
1573 |
"narwhal kombucha wolf cardigan butcher whatever pickled you."
|
1574 |
msgstr ""
|
1575 |
|
1576 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:
|
1577 |
msgid "Ruby Von Rails"
|
1578 |
msgstr ""
|
1579 |
|
1580 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:
|
1581 |
msgid "Lead Developer"
|
1582 |
msgstr ""
|
1583 |
|
1584 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:
|
1585 |
msgid ""
|
1586 |
"Small batch vexillologist 90's blue bottle stumptown bespoke. Pok pok tilde "
|
1587 |
"fixie chartreuse, VHS gluten-free selfies wolf hot."
|
1588 |
msgstr ""
|
1589 |
|
1590 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:
|
1591 |
msgid "Inverness McKenzie"
|
1592 |
msgstr ""
|
1593 |
|
1594 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:
|
1595 |
msgid "Business Owner"
|
1596 |
msgstr ""
|
1597 |
|
1598 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:
|
1599 |
msgid ""
|
1600 |
"\"We have no regrets! After using your product my business skyrocketed! I "
|
1601 |
"made back the purchase price in just 48 hours! I couldn't have asked for "
|
1602 |
"more than this.\""
|
1603 |
msgstr ""
|
1604 |
|
1605 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:
|
1606 |
msgid "Hanson Deck"
|
1607 |
msgstr ""
|
1608 |
|
1609 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:
|
1610 |
msgid "Independent Artist"
|
1611 |
msgstr ""
|
1612 |
|
1613 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:
|
1614 |
msgid ""
|
1615 |
"\"Your company is truly upstanding and is behind its product 100 percent. "
|
1616 |
"Hestia is worth much more than I paid. I like Hestia more each day because "
|
1617 |
"it makes easier.\""
|
1618 |
msgstr ""
|
1619 |
|
1620 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:
|
1621 |
msgid "Natalya Undergrowth"
|
1622 |
msgstr ""
|
1623 |
|
1624 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:
|
1625 |
msgid "Freelancer"
|
1626 |
msgstr ""
|
1627 |
|
1628 |
-
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:
|
1629 |
msgid ""
|
1630 |
"\"Thank you for making it painless, pleasant and most of all hassle free! I "
|
1631 |
"am so pleased with this product. Dude, your stuff is great! I will refer "
|
2 |
# This file is distributed under the GPL-2.0+.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Orbit Fox Companion 2.10.13\n"
|
6 |
"Report-Msgid-Bugs-To: "
|
7 |
"https://github.com/Codeinwp/themeisle-companion/issues\n"
|
8 |
+
"POT-Creation-Date: 2022-07-01 08:26:45+00:00\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=utf-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
1368 |
#: obfx_modules/companion-legacy/inc/hestia/inc/customizer.php:38
|
1369 |
#: obfx_modules/companion-legacy/inc/hestia/inc/customizer.php:51
|
1370 |
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php:29
|
1371 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php:225
|
1372 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php:232
|
1373 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php:239
|
1374 |
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:32
|
1375 |
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:29
|
1376 |
msgid ""
|
1519 |
msgid "Testimonial"
|
1520 |
msgstr ""
|
1521 |
|
1522 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php:224
|
1523 |
msgid "Responsive"
|
1524 |
msgstr ""
|
1525 |
|
1526 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php:231
|
1527 |
msgid "Quality"
|
1528 |
msgstr ""
|
1529 |
|
1530 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php:238
|
1531 |
msgid "Support"
|
1532 |
msgstr ""
|
1533 |
|
1534 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:268
|
1535 |
msgid "Desmond Purpleson"
|
1536 |
msgstr ""
|
1537 |
|
1538 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:269
|
1539 |
msgid "CEO"
|
1540 |
msgstr ""
|
1541 |
|
1542 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:270
|
1543 |
msgid ""
|
1544 |
"Locavore pinterest chambray affogato art party, forage coloring book "
|
1545 |
"typewriter. Bitters cold selfies, retro celiac sartorial mustache."
|
1546 |
msgstr ""
|
1547 |
|
1548 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:299
|
1549 |
msgid "Parsley Pepperspray"
|
1550 |
msgstr ""
|
1551 |
|
1552 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:300
|
1553 |
msgid "Marketing Specialist"
|
1554 |
msgstr ""
|
1555 |
|
1556 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:301
|
1557 |
msgid ""
|
1558 |
"Craft beer salvia celiac mlkshk. Pinterest celiac tumblr, portland salvia "
|
1559 |
"skateboard cliche thundercats. Tattooed chia austin hell."
|
1560 |
msgstr ""
|
1561 |
|
1562 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:330
|
1563 |
msgid "Desmond Eagle"
|
1564 |
msgstr ""
|
1565 |
|
1566 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:331
|
1567 |
msgid "Graphic Designer"
|
1568 |
msgstr ""
|
1569 |
|
1570 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:332
|
1571 |
msgid ""
|
1572 |
"Pok pok direct trade godard street art, poutine fam typewriter food truck "
|
1573 |
"narwhal kombucha wolf cardigan butcher whatever pickled you."
|
1574 |
msgstr ""
|
1575 |
|
1576 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:361
|
1577 |
msgid "Ruby Von Rails"
|
1578 |
msgstr ""
|
1579 |
|
1580 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:362
|
1581 |
msgid "Lead Developer"
|
1582 |
msgstr ""
|
1583 |
|
1584 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php:363
|
1585 |
msgid ""
|
1586 |
"Small batch vexillologist 90's blue bottle stumptown bespoke. Pok pok tilde "
|
1587 |
"fixie chartreuse, VHS gluten-free selfies wolf hot."
|
1588 |
msgstr ""
|
1589 |
|
1590 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:231
|
1591 |
msgid "Inverness McKenzie"
|
1592 |
msgstr ""
|
1593 |
|
1594 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:232
|
1595 |
msgid "Business Owner"
|
1596 |
msgstr ""
|
1597 |
|
1598 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:233
|
1599 |
msgid ""
|
1600 |
"\"We have no regrets! After using your product my business skyrocketed! I "
|
1601 |
"made back the purchase price in just 48 hours! I couldn't have asked for "
|
1602 |
"more than this.\""
|
1603 |
msgstr ""
|
1604 |
|
1605 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:238
|
1606 |
msgid "Hanson Deck"
|
1607 |
msgstr ""
|
1608 |
|
1609 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:239
|
1610 |
msgid "Independent Artist"
|
1611 |
msgstr ""
|
1612 |
|
1613 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:240
|
1614 |
msgid ""
|
1615 |
"\"Your company is truly upstanding and is behind its product 100 percent. "
|
1616 |
"Hestia is worth much more than I paid. I like Hestia more each day because "
|
1617 |
"it makes easier.\""
|
1618 |
msgstr ""
|
1619 |
|
1620 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:245
|
1621 |
msgid "Natalya Undergrowth"
|
1622 |
msgstr ""
|
1623 |
|
1624 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:246
|
1625 |
msgid "Freelancer"
|
1626 |
msgstr ""
|
1627 |
|
1628 |
+
#: obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php:247
|
1629 |
msgid ""
|
1630 |
"\"Thank you for making it painless, pleasant and most of all hassle free! I "
|
1631 |
"am so pleased with this product. Dude, your stuff is great! I will refer "
|
obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-clients-bar-section.php
CHANGED
@@ -66,8 +66,10 @@ if ( ! function_exists( 'hestia_clients_bar' ) ) :
|
|
66 |
|
67 |
$image_id = function_exists( 'attachment_url_to_postid' ) ? attachment_url_to_postid( preg_replace( '/-\d{1,4}x\d{1,4}/i', '', $image ) ) : '';
|
68 |
$alt_text = '';
|
|
|
69 |
if ( ! empty( $image_id ) ) {
|
70 |
$alt_text = 'alt="' . get_post_meta( $image_id, '_wp_attachment_image_alt', true ) . '"';
|
|
|
71 |
}
|
72 |
|
73 |
if ( ! empty( $image ) ) {
|
@@ -80,7 +82,7 @@ if ( ! function_exists( 'hestia_clients_bar' ) ) :
|
|
80 |
$link_html .= '>';
|
81 |
echo wp_kses_post( $link_html );
|
82 |
}
|
83 |
-
|
84 |
if ( ! empty( $link ) ) {
|
85 |
echo '</a>';
|
86 |
}
|
66 |
|
67 |
$image_id = function_exists( 'attachment_url_to_postid' ) ? attachment_url_to_postid( preg_replace( '/-\d{1,4}x\d{1,4}/i', '', $image ) ) : '';
|
68 |
$alt_text = '';
|
69 |
+
$srcset = '';
|
70 |
if ( ! empty( $image_id ) ) {
|
71 |
$alt_text = 'alt="' . get_post_meta( $image_id, '_wp_attachment_image_alt', true ) . '"';
|
72 |
+
$srcset = 'srcset="' . wp_get_attachment_image_srcset( $image_id, 'full' ) . '"';
|
73 |
}
|
74 |
|
75 |
if ( ! empty( $image ) ) {
|
82 |
$link_html .= '>';
|
83 |
echo wp_kses_post( $link_html );
|
84 |
}
|
85 |
+
echo '<img src="' . esc_url( $image ) . '" ' . wp_kses_post( $alt_text ) . ' ' . wp_kses_post( $srcset ) . '>';
|
86 |
if ( ! empty( $link ) ) {
|
87 |
echo '</a>';
|
88 |
}
|
obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-features-section.php
CHANGED
@@ -142,14 +142,39 @@ function hestia_features_content( $hestia_features_content, $is_callback = false
|
|
142 |
|
143 |
switch ( $choice ) {
|
144 |
case 'customizer_repeater_image':
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
case 'customizer_repeater_icon':
|
154 |
if ( ! empty( $icon ) ) { ?>
|
155 |
<div class="icon" <?php echo ( ! empty( $color ) ? 'style="color:' . $color . '"' : '' ); ?>>
|
142 |
|
143 |
switch ( $choice ) {
|
144 |
case 'customizer_repeater_image':
|
145 |
+
if ( ! empty( $image ) ) {
|
146 |
+
/**
|
147 |
+
* Alternative text for the Features box image
|
148 |
+
* It first checks for the Alt Text option of the attachment
|
149 |
+
* If that field is empty, uses the Title of the Testimonial box as alt text
|
150 |
+
*/
|
151 |
+
$alt_image = '';
|
152 |
+
$srcset = '';
|
153 |
+
$image_id = function_exists( 'attachment_url_to_postid' ) ? attachment_url_to_postid( preg_replace( '/-\d{1,4}x\d{1,4}/i', '', $image ) ) : '';
|
154 |
+
if ( ! empty( $image_id ) && $image_id !== 0 ) {
|
155 |
+
$alt_image = get_post_meta( $image_id, '_wp_attachment_image_alt', true );
|
156 |
+
$srcset = wp_get_attachment_image_srcset( $image_id, 'full' );
|
157 |
+
}
|
158 |
+
if ( empty( $alt_image ) ) {
|
159 |
+
if ( ! empty( $title ) ) {
|
160 |
+
$alt_image = $title;
|
161 |
+
}
|
162 |
+
}
|
163 |
+
echo '<div class="card card-plain">';
|
164 |
+
echo '<img src="' . esc_url( $image ) . '" ';
|
165 |
+
if ( ! empty( $alt_image ) ) {
|
166 |
+
echo ' alt="' . esc_attr( $alt_image ) . '" ';
|
167 |
+
}
|
168 |
+
if ( ! empty( $srcset ) ) {
|
169 |
+
echo ' srcset="' . esc_attr( $srcset ) . '" ';
|
170 |
+
}
|
171 |
+
if ( ! empty( $title ) ) {
|
172 |
+
echo ' title="' . esc_attr( $title ) . '" ';
|
173 |
+
}
|
174 |
+
echo '/>';
|
175 |
+
echo '</div>';
|
176 |
+
}
|
177 |
+
break;
|
178 |
case 'customizer_repeater_icon':
|
179 |
if ( ! empty( $icon ) ) { ?>
|
180 |
<div class="icon" <?php echo ( ! empty( $color ) ? 'style="color:' . $color . '"' : '' ); ?>>
|
obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-team-section.php
CHANGED
@@ -172,9 +172,11 @@ function hestia_team_content( $hestia_team_content, $is_callback = false ) {
|
|
172 |
* If that field is empty, uses the Title of the Testimonial box as alt text
|
173 |
*/
|
174 |
$alt_image = $title;
|
|
|
175 |
$image_id = function_exists( 'attachment_url_to_postid' ) ? attachment_url_to_postid( preg_replace( '/-\d{1,4}x\d{1,4}/i', '', $image ) ) : '';
|
176 |
if ( ! empty( $image_id ) && $image_id !== 0 ) {
|
177 |
$alt_image = get_post_meta( $image_id, '_wp_attachment_image_alt', true );
|
|
|
178 |
}
|
179 |
|
180 |
echo $link_markup_open;
|
@@ -183,6 +185,9 @@ function hestia_team_content( $hestia_team_content, $is_callback = false ) {
|
|
183 |
if ( ! empty( $alt_image ) ) {
|
184 |
echo ' alt="' . esc_attr( $alt_image ) . '" ';
|
185 |
}
|
|
|
|
|
|
|
186 |
if ( ! empty( $title ) ) {
|
187 |
echo ' title="' . esc_attr( $title ) . '" ';
|
188 |
}
|
172 |
* If that field is empty, uses the Title of the Testimonial box as alt text
|
173 |
*/
|
174 |
$alt_image = $title;
|
175 |
+
$srcset = '';
|
176 |
$image_id = function_exists( 'attachment_url_to_postid' ) ? attachment_url_to_postid( preg_replace( '/-\d{1,4}x\d{1,4}/i', '', $image ) ) : '';
|
177 |
if ( ! empty( $image_id ) && $image_id !== 0 ) {
|
178 |
$alt_image = get_post_meta( $image_id, '_wp_attachment_image_alt', true );
|
179 |
+
$srcset = wp_get_attachment_image_srcset( $image_id, 'full' );
|
180 |
}
|
181 |
|
182 |
echo $link_markup_open;
|
185 |
if ( ! empty( $alt_image ) ) {
|
186 |
echo ' alt="' . esc_attr( $alt_image ) . '" ';
|
187 |
}
|
188 |
+
if ( ! empty( $srcset ) ) {
|
189 |
+
echo ' srcset="' . esc_attr( $srcset ) . '" ';
|
190 |
+
}
|
191 |
if ( ! empty( $title ) ) {
|
192 |
echo ' title="' . esc_attr( $title ) . '" ';
|
193 |
}
|
obfx_modules/companion-legacy/inc/hestia/inc/sections/hestia-testimonials-section.php
CHANGED
@@ -148,9 +148,11 @@ function hestia_testimonials_content( $hestia_testimonials_content, $is_callback
|
|
148 |
* If that field is empty, uses the Title of the Testimonial box as alt text
|
149 |
*/
|
150 |
$alt_image = '';
|
|
|
151 |
$image_id = function_exists( 'attachment_url_to_postid' ) ? attachment_url_to_postid( preg_replace( '/-\d{1,4}x\d{1,4}/i', '', $image ) ) : '';
|
152 |
if ( ! empty( $image_id ) && $image_id !== 0 ) {
|
153 |
$alt_image = get_post_meta( $image_id, '_wp_attachment_image_alt', true );
|
|
|
154 |
}
|
155 |
if ( empty( $alt_image ) ) {
|
156 |
if ( ! empty( $title ) ) {
|
@@ -173,6 +175,9 @@ function hestia_testimonials_content( $hestia_testimonials_content, $is_callback
|
|
173 |
if ( ! empty( $alt_image ) ) {
|
174 |
echo ' alt="' . esc_attr( $alt_image ) . '" ';
|
175 |
}
|
|
|
|
|
|
|
176 |
if ( ! empty( $title ) ) {
|
177 |
echo ' title="' . esc_attr( $title ) . '" ';
|
178 |
}
|
148 |
* If that field is empty, uses the Title of the Testimonial box as alt text
|
149 |
*/
|
150 |
$alt_image = '';
|
151 |
+
$srcset = '';
|
152 |
$image_id = function_exists( 'attachment_url_to_postid' ) ? attachment_url_to_postid( preg_replace( '/-\d{1,4}x\d{1,4}/i', '', $image ) ) : '';
|
153 |
if ( ! empty( $image_id ) && $image_id !== 0 ) {
|
154 |
$alt_image = get_post_meta( $image_id, '_wp_attachment_image_alt', true );
|
155 |
+
$srcset = wp_get_attachment_image_srcset( $image_id, 'full' );
|
156 |
}
|
157 |
if ( empty( $alt_image ) ) {
|
158 |
if ( ! empty( $title ) ) {
|
175 |
if ( ! empty( $alt_image ) ) {
|
176 |
echo ' alt="' . esc_attr( $alt_image ) . '" ';
|
177 |
}
|
178 |
+
if ( ! empty( $srcset ) ) {
|
179 |
+
echo ' srcset="' . esc_attr( $srcset ) . '" ';
|
180 |
+
}
|
181 |
if ( ! empty( $title ) ) {
|
182 |
echo ' title="' . esc_attr( $title ) . '" ';
|
183 |
}
|
readme.md
CHANGED
@@ -107,6 +107,14 @@ Activating the Orbit Fox plugin is just like any other plugin. If you've uploade
|
|
107 |
|
108 |
## Changelog ##
|
109 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
##### [Version 2.10.12](https://github.com/Codeinwp/themeisle-companion/compare/v2.10.11...v2.10.12) (2022-05-27)
|
111 |
|
112 |
- [Fix] Accessibility issue on social links.
|
107 |
|
108 |
## Changelog ##
|
109 |
|
110 |
+
##### [Version 2.10.13](https://github.com/Codeinwp/themeisle-companion/compare/v2.10.12...v2.10.13) (2022-07-01)
|
111 |
+
|
112 |
+
- [Fix] Add the srcset property for Hestia's free sections
|
113 |
+
- [Fix] Missing desktop position option from the social sharing module
|
114 |
+
|
115 |
+
|
116 |
+
|
117 |
+
|
118 |
##### [Version 2.10.12](https://github.com/Codeinwp/themeisle-companion/compare/v2.10.11...v2.10.12) (2022-05-27)
|
119 |
|
120 |
- [Fix] Accessibility issue on social links.
|
readme.txt
CHANGED
@@ -107,6 +107,14 @@ Activating the Orbit Fox plugin is just like any other plugin. If you've uploade
|
|
107 |
|
108 |
== Changelog ==
|
109 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
##### [Version 2.10.12](https://github.com/Codeinwp/themeisle-companion/compare/v2.10.11...v2.10.12) (2022-05-27)
|
111 |
|
112 |
- [Fix] Accessibility issue on social links.
|
107 |
|
108 |
== Changelog ==
|
109 |
|
110 |
+
##### [Version 2.10.13](https://github.com/Codeinwp/themeisle-companion/compare/v2.10.12...v2.10.13) (2022-07-01)
|
111 |
+
|
112 |
+
- [Fix] Add the srcset property for Hestia's free sections
|
113 |
+
- [Fix] Missing desktop position option from the social sharing module
|
114 |
+
|
115 |
+
|
116 |
+
|
117 |
+
|
118 |
##### [Version 2.10.12](https://github.com/Codeinwp/themeisle-companion/compare/v2.10.11...v2.10.12) (2022-05-27)
|
119 |
|
120 |
- [Fix] Accessibility issue on social links.
|
themeisle-companion.php
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
* Plugin Name: Orbit Fox Companion
|
16 |
* Plugin URI: https://orbitfox.com/
|
17 |
* Description: This swiss-knife plugin comes with a quality template library, menu/sharing icons modules, Gutenberg blocks, and newly added Elementor/BeaverBuilder page builder widgets on each release.
|
18 |
-
* Version: 2.10.
|
19 |
* Author: Themeisle
|
20 |
* Author URI: https://orbitfox.com/
|
21 |
* License: GPL-2.0+
|
15 |
* Plugin Name: Orbit Fox Companion
|
16 |
* Plugin URI: https://orbitfox.com/
|
17 |
* Description: This swiss-knife plugin comes with a quality template library, menu/sharing icons modules, Gutenberg blocks, and newly added Elementor/BeaverBuilder page builder widgets on each release.
|
18 |
+
* Version: 2.10.13
|
19 |
* Author: Themeisle
|
20 |
* Author URI: https://orbitfox.com/
|
21 |
* License: GPL-2.0+
|
vendor/autoload.php
CHANGED
@@ -9,4 +9,4 @@ if (PHP_VERSION_ID < 50600) {
|
|
9 |
|
10 |
require_once __DIR__ . '/composer/autoload_real.php';
|
11 |
|
12 |
-
return
|
9 |
|
10 |
require_once __DIR__ . '/composer/autoload_real.php';
|
11 |
|
12 |
+
return ComposerAutoloaderInite6107ea29bd7bab1ef19c8448bdefd7c::getLoader();
|
vendor/clue/stream-filter/CHANGELOG.md
CHANGED
@@ -1,5 +1,16 @@
|
|
1 |
# Changelog
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
## 1.5.0 (2020-10-02)
|
4 |
|
5 |
* Feature: Improve performance by using global imports.
|
1 |
# Changelog
|
2 |
|
3 |
+
## 1.6.0 (2022-02-21)
|
4 |
+
|
5 |
+
* Feature: Support PHP 8.1 release.
|
6 |
+
(#45 by @clue)
|
7 |
+
|
8 |
+
* Improve documentation to use fully-qualified function names.
|
9 |
+
(#43 by @SimonFrings and #42 by @PaulRotmann)
|
10 |
+
|
11 |
+
* Improve test suite and use GitHub actions for continuous integration (CI).
|
12 |
+
(#39 and #40 by @SimonFrings)
|
13 |
+
|
14 |
## 1.5.0 (2020-10-02)
|
15 |
|
16 |
* Feature: Improve performance by using global imports.
|
vendor/clue/stream-filter/README.md
CHANGED
@@ -1,4 +1,7 @@
|
|
1 |
-
# clue/stream-filter
|
|
|
|
|
|
|
2 |
|
3 |
A simple and modern approach to stream filtering in PHP
|
4 |
|
@@ -7,10 +10,10 @@ A simple and modern approach to stream filtering in PHP
|
|
7 |
* [Why?](#why)
|
8 |
* [Support us](#support-us)
|
9 |
* [Usage](#usage)
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
* [Install](#install)
|
15 |
* [Tests](#tests)
|
16 |
* [License](#license)
|
@@ -55,26 +58,26 @@ Let's take these projects to the next level together! 🚀
|
|
55 |
This lightweight library consists only of a few simple functions.
|
56 |
All functions reside under the `Clue\StreamFilter` namespace.
|
57 |
|
58 |
-
The below examples
|
59 |
|
60 |
```php
|
61 |
-
|
62 |
-
|
63 |
-
Filter\append(…);
|
64 |
```
|
65 |
|
66 |
-
|
67 |
|
68 |
```php
|
69 |
-
|
|
|
|
|
70 |
```
|
71 |
|
72 |
-
|
73 |
|
74 |
```php
|
75 |
-
use
|
76 |
|
77 |
-
append(…);
|
78 |
```
|
79 |
|
80 |
### append()
|
@@ -97,7 +100,7 @@ The `$callback` should be a valid callable function which accepts
|
|
97 |
an individual chunk of data and should return the updated chunk:
|
98 |
|
99 |
```php
|
100 |
-
$filter =
|
101 |
// will be called each time you read or write a $chunk to/from the stream
|
102 |
return $chunk;
|
103 |
});
|
@@ -106,7 +109,7 @@ $filter = Filter\append($stream, function ($chunk) {
|
|
106 |
As such, you can also use native PHP functions or any other `callable`:
|
107 |
|
108 |
```php
|
109 |
-
|
110 |
|
111 |
// will write "HELLO" to the underlying stream
|
112 |
fwrite($stream, 'hello');
|
@@ -116,7 +119,7 @@ If the `$callback` accepts invocation without parameters,
|
|
116 |
then this signature will be invoked once ending (flushing) the filter:
|
117 |
|
118 |
```php
|
119 |
-
|
120 |
if ($chunk === null) {
|
121 |
// will be called once ending the filter
|
122 |
return 'end';
|
@@ -136,7 +139,7 @@ In order to play nice with PHP's stream handling,
|
|
136 |
the `Exception` will be transformed to a PHP warning instead:
|
137 |
|
138 |
```php
|
139 |
-
|
140 |
throw new \RuntimeException('Unexpected chunk');
|
141 |
});
|
142 |
|
@@ -148,12 +151,12 @@ The optional `$read_write` parameter can be used to only invoke the `$callback`
|
|
148 |
when either writing to the stream or only when reading from the stream:
|
149 |
|
150 |
```php
|
151 |
-
|
152 |
// will be called each time you write to the stream
|
153 |
return $chunk;
|
154 |
}, STREAM_FILTER_WRITE);
|
155 |
|
156 |
-
|
157 |
// will be called each time you read from the stream
|
158 |
return $chunk;
|
159 |
}, STREAM_FILTER_READ);
|
@@ -183,7 +186,7 @@ This function prepends a filter to the start of this list.
|
|
183 |
If the given filter can not be added, it throws an `Exception`.
|
184 |
|
185 |
```php
|
186 |
-
$filter =
|
187 |
// will be called each time you read or write a $chunk to/from the stream
|
188 |
return $chunk;
|
189 |
});
|
@@ -205,7 +208,7 @@ Using `fun()` makes accessing these as easy as passing an input string to filter
|
|
205 |
and getting the filtered output string.
|
206 |
|
207 |
```php
|
208 |
-
$fun =
|
209 |
|
210 |
assert('grfg' === $fun('test'));
|
211 |
assert('test' === $fun($fun('test'));
|
@@ -218,7 +221,7 @@ or parameters as Zend PHP.
|
|
218 |
Accessing an unknown filter function will result in a `RuntimeException`:
|
219 |
|
220 |
```php
|
221 |
-
|
222 |
```
|
223 |
|
224 |
Some filters may accept or require additional filter parameters – most
|
@@ -231,7 +234,7 @@ Please refer to the individual filter definition for more details.
|
|
231 |
For example, the `string.strip_tags` filter can be invoked like this:
|
232 |
|
233 |
```php
|
234 |
-
$fun =
|
235 |
|
236 |
$ret = $fun('<b>h<br>i</b>');
|
237 |
assert('<b>hi</b>' === $ret);
|
@@ -245,7 +248,7 @@ may use internal buffers and may emit a final data chunk on close.
|
|
245 |
The filter function can be closed by invoking without any arguments:
|
246 |
|
247 |
```php
|
248 |
-
$fun =
|
249 |
|
250 |
$ret = $fun('hello') . $fun('world') . $fun();
|
251 |
assert('helloworld' === gzinflate($ret));
|
@@ -255,7 +258,7 @@ The filter function must not be used anymore after it has been closed.
|
|
255 |
Doing so will result in a `RuntimeException`:
|
256 |
|
257 |
```php
|
258 |
-
$fun =
|
259 |
$fun();
|
260 |
|
261 |
$fun('test'); // throws RuntimeException
|
@@ -274,36 +277,36 @@ The `remove(resource<stream filter> $filter): bool` function can be used to
|
|
274 |
remove a filter previously added via [`append()`](#append) or [`prepend()`](#prepend).
|
275 |
|
276 |
```php
|
277 |
-
$filter =
|
278 |
// …
|
279 |
});
|
280 |
-
|
281 |
```
|
282 |
|
283 |
## Install
|
284 |
|
285 |
-
The recommended way to install this library is [through Composer](https://getcomposer.org).
|
286 |
[New to Composer?](https://getcomposer.org/doc/00-intro.md)
|
287 |
|
288 |
This project follows [SemVer](https://semver.org/).
|
289 |
This will install the latest supported version:
|
290 |
|
291 |
```bash
|
292 |
-
$ composer require clue/stream-filter:^1.
|
293 |
```
|
294 |
|
295 |
See also the [CHANGELOG](CHANGELOG.md) for details about version upgrades.
|
296 |
|
297 |
This project aims to run on any platform and thus does not require any PHP
|
298 |
-
extensions and supports running on legacy PHP 5.3 through current PHP
|
299 |
HHVM.
|
300 |
-
It's *highly recommended to use PHP
|
301 |
Older PHP versions may suffer from a number of inconsistencies documented above.
|
302 |
|
303 |
## Tests
|
304 |
|
305 |
To run the test suite, you first need to clone this repo and then install all
|
306 |
-
dependencies [through Composer](https://getcomposer.org):
|
307 |
|
308 |
```bash
|
309 |
$ composer install
|
@@ -312,7 +315,7 @@ $ composer install
|
|
312 |
To run the test suite, go to the project root and run:
|
313 |
|
314 |
```bash
|
315 |
-
$
|
316 |
```
|
317 |
|
318 |
## License
|
1 |
+
# clue/stream-filter
|
2 |
+
|
3 |
+
[![CI status](https://github.com/clue/stream-filter/workflows/CI/badge.svg)](https://github.com/clue/stream-filter/actions)
|
4 |
+
[![installs on Packagist](https://img.shields.io/packagist/dt/clue/stream-filter?color=blue&label=installs%20on%20Packagist)](https://packagist.org/packages/clue/stream-filter)
|
5 |
|
6 |
A simple and modern approach to stream filtering in PHP
|
7 |
|
10 |
* [Why?](#why)
|
11 |
* [Support us](#support-us)
|
12 |
* [Usage](#usage)
|
13 |
+
* [append()](#append)
|
14 |
+
* [prepend()](#prepend)
|
15 |
+
* [fun()](#fun)
|
16 |
+
* [remove()](#remove)
|
17 |
* [Install](#install)
|
18 |
* [Tests](#tests)
|
19 |
* [License](#license)
|
58 |
This lightweight library consists only of a few simple functions.
|
59 |
All functions reside under the `Clue\StreamFilter` namespace.
|
60 |
|
61 |
+
The below examples refer to all functions with their fully-qualified names like this:
|
62 |
|
63 |
```php
|
64 |
+
Clue\StreamFilter\append(…);
|
|
|
|
|
65 |
```
|
66 |
|
67 |
+
As of PHP 5.6+ you can also import each required function into your code like this:
|
68 |
|
69 |
```php
|
70 |
+
use function Clue\StreamFilter\append;
|
71 |
+
|
72 |
+
append(…);
|
73 |
```
|
74 |
|
75 |
+
Alternatively, you can also use an import statement similar to this:
|
76 |
|
77 |
```php
|
78 |
+
use Clue\StreamFilter as Filter;
|
79 |
|
80 |
+
Filter\append(…);
|
81 |
```
|
82 |
|
83 |
### append()
|
100 |
an individual chunk of data and should return the updated chunk:
|
101 |
|
102 |
```php
|
103 |
+
$filter = Clue\StreamFilter\append($stream, function ($chunk) {
|
104 |
// will be called each time you read or write a $chunk to/from the stream
|
105 |
return $chunk;
|
106 |
});
|
109 |
As such, you can also use native PHP functions or any other `callable`:
|
110 |
|
111 |
```php
|
112 |
+
Clue\StreamFilter\append($stream, 'strtoupper');
|
113 |
|
114 |
// will write "HELLO" to the underlying stream
|
115 |
fwrite($stream, 'hello');
|
119 |
then this signature will be invoked once ending (flushing) the filter:
|
120 |
|
121 |
```php
|
122 |
+
Clue\StreamFilter\append($stream, function ($chunk = null) {
|
123 |
if ($chunk === null) {
|
124 |
// will be called once ending the filter
|
125 |
return 'end';
|
139 |
the `Exception` will be transformed to a PHP warning instead:
|
140 |
|
141 |
```php
|
142 |
+
Clue\StreamFilter\append($stream, function ($chunk) {
|
143 |
throw new \RuntimeException('Unexpected chunk');
|
144 |
});
|
145 |
|
151 |
when either writing to the stream or only when reading from the stream:
|
152 |
|
153 |
```php
|
154 |
+
Clue\StreamFilter\append($stream, function ($chunk) {
|
155 |
// will be called each time you write to the stream
|
156 |
return $chunk;
|
157 |
}, STREAM_FILTER_WRITE);
|
158 |
|
159 |
+
Clue\StreamFilter\append($stream, function ($chunk) {
|
160 |
// will be called each time you read from the stream
|
161 |
return $chunk;
|
162 |
}, STREAM_FILTER_READ);
|
186 |
If the given filter can not be added, it throws an `Exception`.
|
187 |
|
188 |
```php
|
189 |
+
$filter = Clue\StreamFilter\prepend($stream, function ($chunk) {
|
190 |
// will be called each time you read or write a $chunk to/from the stream
|
191 |
return $chunk;
|
192 |
});
|
208 |
and getting the filtered output string.
|
209 |
|
210 |
```php
|
211 |
+
$fun = Clue\StreamFilter\fun('string.rot13');
|
212 |
|
213 |
assert('grfg' === $fun('test'));
|
214 |
assert('test' === $fun($fun('test'));
|
221 |
Accessing an unknown filter function will result in a `RuntimeException`:
|
222 |
|
223 |
```php
|
224 |
+
Clue\StreamFilter\fun('unknown'); // throws RuntimeException
|
225 |
```
|
226 |
|
227 |
Some filters may accept or require additional filter parameters – most
|
234 |
For example, the `string.strip_tags` filter can be invoked like this:
|
235 |
|
236 |
```php
|
237 |
+
$fun = Clue\StreamFilter\fun('string.strip_tags', '<a><b>');
|
238 |
|
239 |
$ret = $fun('<b>h<br>i</b>');
|
240 |
assert('<b>hi</b>' === $ret);
|
248 |
The filter function can be closed by invoking without any arguments:
|
249 |
|
250 |
```php
|
251 |
+
$fun = Clue\StreamFilter\fun('zlib.deflate');
|
252 |
|
253 |
$ret = $fun('hello') . $fun('world') . $fun();
|
254 |
assert('helloworld' === gzinflate($ret));
|
258 |
Doing so will result in a `RuntimeException`:
|
259 |
|
260 |
```php
|
261 |
+
$fun = Clue\StreamFilter\fun('string.rot13');
|
262 |
$fun();
|
263 |
|
264 |
$fun('test'); // throws RuntimeException
|
277 |
remove a filter previously added via [`append()`](#append) or [`prepend()`](#prepend).
|
278 |
|
279 |
```php
|
280 |
+
$filter = Clue\StreamFilter\append($stream, function () {
|
281 |
// …
|
282 |
});
|
283 |
+
Clue\StreamFilter\remove($filter);
|
284 |
```
|
285 |
|
286 |
## Install
|
287 |
|
288 |
+
The recommended way to install this library is [through Composer](https://getcomposer.org/).
|
289 |
[New to Composer?](https://getcomposer.org/doc/00-intro.md)
|
290 |
|
291 |
This project follows [SemVer](https://semver.org/).
|
292 |
This will install the latest supported version:
|
293 |
|
294 |
```bash
|
295 |
+
$ composer require clue/stream-filter:^1.6
|
296 |
```
|
297 |
|
298 |
See also the [CHANGELOG](CHANGELOG.md) for details about version upgrades.
|
299 |
|
300 |
This project aims to run on any platform and thus does not require any PHP
|
301 |
+
extensions and supports running on legacy PHP 5.3 through current PHP 8+ and
|
302 |
HHVM.
|
303 |
+
It's *highly recommended to use the latest supported PHP version* for this project.
|
304 |
Older PHP versions may suffer from a number of inconsistencies documented above.
|
305 |
|
306 |
## Tests
|
307 |
|
308 |
To run the test suite, you first need to clone this repo and then install all
|
309 |
+
dependencies [through Composer](https://getcomposer.org/):
|
310 |
|
311 |
```bash
|
312 |
$ composer install
|
315 |
To run the test suite, go to the project root and run:
|
316 |
|
317 |
```bash
|
318 |
+
$ vendor/bin/phpunit
|
319 |
```
|
320 |
|
321 |
## License
|
vendor/clue/stream-filter/src/CallbackFilter.php
CHANGED
@@ -13,6 +13,8 @@ class CallbackFilter extends \php_user_filter
|
|
13 |
private $closed = true;
|
14 |
private $supportsClose = false;
|
15 |
|
|
|
|
|
16 |
public function onCreate()
|
17 |
{
|
18 |
$this->closed = false;
|
@@ -29,6 +31,8 @@ class CallbackFilter extends \php_user_filter
|
|
29 |
return true;
|
30 |
}
|
31 |
|
|
|
|
|
32 |
public function onClose()
|
33 |
{
|
34 |
$this->closed = true;
|
@@ -49,6 +53,8 @@ class CallbackFilter extends \php_user_filter
|
|
49 |
$this->callback = null;
|
50 |
}
|
51 |
|
|
|
|
|
52 |
public function filter($in, $out, &$consumed, $closing)
|
53 |
{
|
54 |
// concatenate whole buffer from input brigade
|
13 |
private $closed = true;
|
14 |
private $supportsClose = false;
|
15 |
|
16 |
+
/** @return bool */
|
17 |
+
#[\ReturnTypeWillChange]
|
18 |
public function onCreate()
|
19 |
{
|
20 |
$this->closed = false;
|
31 |
return true;
|
32 |
}
|
33 |
|
34 |
+
/** @return void */
|
35 |
+
#[\ReturnTypeWillChange]
|
36 |
public function onClose()
|
37 |
{
|
38 |
$this->closed = true;
|
53 |
$this->callback = null;
|
54 |
}
|
55 |
|
56 |
+
/** @return int */
|
57 |
+
#[\ReturnTypeWillChange]
|
58 |
public function filter($in, $out, &$consumed, $closing)
|
59 |
{
|
60 |
// concatenate whole buffer from input brigade
|
vendor/clue/stream-filter/src/functions.php
CHANGED
@@ -20,7 +20,7 @@ namespace Clue\StreamFilter;
|
|
20 |
* an individual chunk of data and should return the updated chunk:
|
21 |
*
|
22 |
* ```php
|
23 |
-
* $filter =
|
24 |
* // will be called each time you read or write a $chunk to/from the stream
|
25 |
* return $chunk;
|
26 |
* });
|
@@ -29,7 +29,7 @@ namespace Clue\StreamFilter;
|
|
29 |
* As such, you can also use native PHP functions or any other `callable`:
|
30 |
*
|
31 |
* ```php
|
32 |
-
*
|
33 |
*
|
34 |
* // will write "HELLO" to the underlying stream
|
35 |
* fwrite($stream, 'hello');
|
@@ -39,7 +39,7 @@ namespace Clue\StreamFilter;
|
|
39 |
* then this signature will be invoked once ending (flushing) the filter:
|
40 |
*
|
41 |
* ```php
|
42 |
-
*
|
43 |
* if ($chunk === null) {
|
44 |
* // will be called once ending the filter
|
45 |
* return 'end';
|
@@ -59,7 +59,7 @@ namespace Clue\StreamFilter;
|
|
59 |
* the `Exception` will be transformed to a PHP warning instead:
|
60 |
*
|
61 |
* ```php
|
62 |
-
*
|
63 |
* throw new \RuntimeException('Unexpected chunk');
|
64 |
* });
|
65 |
*
|
@@ -71,12 +71,12 @@ namespace Clue\StreamFilter;
|
|
71 |
* when either writing to the stream or only when reading from the stream:
|
72 |
*
|
73 |
* ```php
|
74 |
-
*
|
75 |
* // will be called each time you write to the stream
|
76 |
* return $chunk;
|
77 |
* }, STREAM_FILTER_WRITE);
|
78 |
*
|
79 |
-
*
|
80 |
* // will be called each time you read from the stream
|
81 |
* return $chunk;
|
82 |
* }, STREAM_FILTER_READ);
|
@@ -126,7 +126,7 @@ function append($stream, $callback, $read_write = STREAM_FILTER_ALL)
|
|
126 |
* If the given filter can not be added, it throws an `Exception`.
|
127 |
*
|
128 |
* ```php
|
129 |
-
* $filter =
|
130 |
* // will be called each time you read or write a $chunk to/from the stream
|
131 |
* return $chunk;
|
132 |
* });
|
@@ -168,7 +168,7 @@ function prepend($stream, $callback, $read_write = STREAM_FILTER_ALL)
|
|
168 |
* and getting the filtered output string.
|
169 |
*
|
170 |
* ```php
|
171 |
-
* $fun =
|
172 |
*
|
173 |
* assert('grfg' === $fun('test'));
|
174 |
* assert('test' === $fun($fun('test'));
|
@@ -181,7 +181,7 @@ function prepend($stream, $callback, $read_write = STREAM_FILTER_ALL)
|
|
181 |
* Accessing an unknown filter function will result in a `RuntimeException`:
|
182 |
*
|
183 |
* ```php
|
184 |
-
*
|
185 |
* ```
|
186 |
*
|
187 |
* Some filters may accept or require additional filter parameters – most
|
@@ -194,7 +194,7 @@ function prepend($stream, $callback, $read_write = STREAM_FILTER_ALL)
|
|
194 |
* For example, the `string.strip_tags` filter can be invoked like this:
|
195 |
*
|
196 |
* ```php
|
197 |
-
* $fun =
|
198 |
*
|
199 |
* $ret = $fun('<b>h<br>i</b>');
|
200 |
* assert('<b>hi</b>' === $ret);
|
@@ -208,7 +208,7 @@ function prepend($stream, $callback, $read_write = STREAM_FILTER_ALL)
|
|
208 |
* The filter function can be closed by invoking without any arguments:
|
209 |
*
|
210 |
* ```php
|
211 |
-
* $fun =
|
212 |
*
|
213 |
* $ret = $fun('hello') . $fun('world') . $fun();
|
214 |
* assert('helloworld' === gzinflate($ret));
|
@@ -218,7 +218,7 @@ function prepend($stream, $callback, $read_write = STREAM_FILTER_ALL)
|
|
218 |
* Doing so will result in a `RuntimeException`:
|
219 |
*
|
220 |
* ```php
|
221 |
-
* $fun =
|
222 |
* $fun();
|
223 |
*
|
224 |
* $fun('test'); // throws RuntimeException
|
@@ -288,10 +288,10 @@ function fun($filter, $parameters = null)
|
|
288 |
* Remove a filter previously added via `append()` or `prepend()`.
|
289 |
*
|
290 |
* ```php
|
291 |
-
* $filter =
|
292 |
* // …
|
293 |
* });
|
294 |
-
*
|
295 |
* ```
|
296 |
*
|
297 |
* @param resource $filter
|
20 |
* an individual chunk of data and should return the updated chunk:
|
21 |
*
|
22 |
* ```php
|
23 |
+
* $filter = Clue\StreamFilter\append($stream, function ($chunk) {
|
24 |
* // will be called each time you read or write a $chunk to/from the stream
|
25 |
* return $chunk;
|
26 |
* });
|
29 |
* As such, you can also use native PHP functions or any other `callable`:
|
30 |
*
|
31 |
* ```php
|
32 |
+
* Clue\StreamFilter\append($stream, 'strtoupper');
|
33 |
*
|
34 |
* // will write "HELLO" to the underlying stream
|
35 |
* fwrite($stream, 'hello');
|
39 |
* then this signature will be invoked once ending (flushing) the filter:
|
40 |
*
|
41 |
* ```php
|
42 |
+
* Clue\StreamFilter\append($stream, function ($chunk = null) {
|
43 |
* if ($chunk === null) {
|
44 |
* // will be called once ending the filter
|
45 |
* return 'end';
|
59 |
* the `Exception` will be transformed to a PHP warning instead:
|
60 |
*
|
61 |
* ```php
|
62 |
+
* Clue\StreamFilter\append($stream, function ($chunk) {
|
63 |
* throw new \RuntimeException('Unexpected chunk');
|
64 |
* });
|
65 |
*
|
71 |
* when either writing to the stream or only when reading from the stream:
|
72 |
*
|
73 |
* ```php
|
74 |
+
* Clue\StreamFilter\append($stream, function ($chunk) {
|
75 |
* // will be called each time you write to the stream
|
76 |
* return $chunk;
|
77 |
* }, STREAM_FILTER_WRITE);
|
78 |
*
|
79 |
+
* Clue\StreamFilter\append($stream, function ($chunk) {
|
80 |
* // will be called each time you read from the stream
|
81 |
* return $chunk;
|
82 |
* }, STREAM_FILTER_READ);
|
126 |
* If the given filter can not be added, it throws an `Exception`.
|
127 |
*
|
128 |
* ```php
|
129 |
+
* $filter = Clue\StreamFilter\prepend($stream, function ($chunk) {
|
130 |
* // will be called each time you read or write a $chunk to/from the stream
|
131 |
* return $chunk;
|
132 |
* });
|
168 |
* and getting the filtered output string.
|
169 |
*
|
170 |
* ```php
|
171 |
+
* $fun = Clue\StreamFilter\fun('string.rot13');
|
172 |
*
|
173 |
* assert('grfg' === $fun('test'));
|
174 |
* assert('test' === $fun($fun('test'));
|
181 |
* Accessing an unknown filter function will result in a `RuntimeException`:
|
182 |
*
|
183 |
* ```php
|
184 |
+
* Clue\StreamFilter\fun('unknown'); // throws RuntimeException
|
185 |
* ```
|
186 |
*
|
187 |
* Some filters may accept or require additional filter parameters – most
|
194 |
* For example, the `string.strip_tags` filter can be invoked like this:
|
195 |
*
|
196 |
* ```php
|
197 |
+
* $fun = Clue\StreamFilter\fun('string.strip_tags', '<a><b>');
|
198 |
*
|
199 |
* $ret = $fun('<b>h<br>i</b>');
|
200 |
* assert('<b>hi</b>' === $ret);
|
208 |
* The filter function can be closed by invoking without any arguments:
|
209 |
*
|
210 |
* ```php
|
211 |
+
* $fun = Clue\StreamFilter\fun('zlib.deflate');
|
212 |
*
|
213 |
* $ret = $fun('hello') . $fun('world') . $fun();
|
214 |
* assert('helloworld' === gzinflate($ret));
|
218 |
* Doing so will result in a `RuntimeException`:
|
219 |
*
|
220 |
* ```php
|
221 |
+
* $fun = Clue\StreamFilter\fun('string.rot13');
|
222 |
* $fun();
|
223 |
*
|
224 |
* $fun('test'); // throws RuntimeException
|
288 |
* Remove a filter previously added via `append()` or `prepend()`.
|
289 |
*
|
290 |
* ```php
|
291 |
+
* $filter = Clue\StreamFilter\append($stream, function () {
|
292 |
* // …
|
293 |
* });
|
294 |
+
* Clue\StreamFilter\remove($filter);
|
295 |
* ```
|
296 |
*
|
297 |
* @param resource $filter
|
vendor/codeinwp/themeisle-sdk/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
##### [Version 3.2.24](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.23...v3.2.24) (2022-02-09)
|
2 |
|
3 |
Fix edge case issue on dismiss
|
1 |
+
##### [Version 3.2.26](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.25...v3.2.26) (2022-05-12)
|
2 |
+
|
3 |
+
- [Fix] Solve rollback sometimes not available
|
4 |
+
|
5 |
+
##### [Version 3.2.25](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.24...v3.2.25) (2022-03-28)
|
6 |
+
|
7 |
+
- Force update request after rollback
|
8 |
+
|
9 |
##### [Version 3.2.24](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.23...v3.2.24) (2022-02-09)
|
10 |
|
11 |
Fix edge case issue on dismiss
|
vendor/codeinwp/themeisle-sdk/load.php
CHANGED
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
14 |
return;
|
15 |
}
|
16 |
// Current SDK version and path.
|
17 |
-
$themeisle_sdk_version = '3.2.
|
18 |
$themeisle_sdk_path = dirname( __FILE__ );
|
19 |
|
20 |
global $themeisle_sdk_max_version;
|
14 |
return;
|
15 |
}
|
16 |
// Current SDK version and path.
|
17 |
+
$themeisle_sdk_version = '3.2.26';
|
18 |
$themeisle_sdk_path = dirname( __FILE__ );
|
19 |
|
20 |
global $themeisle_sdk_max_version;
|
vendor/codeinwp/themeisle-sdk/src/Modules/Licenser.php
CHANGED
@@ -522,6 +522,10 @@ class Licenser extends Abstract_Module {
|
|
522 |
return new \WP_Error( 'themeisle-license-invalid', 'ERROR: Invalid license provided.' );
|
523 |
}
|
524 |
|
|
|
|
|
|
|
|
|
525 |
return true;
|
526 |
}
|
527 |
|
522 |
return new \WP_Error( 'themeisle-license-invalid', 'ERROR: Invalid license provided.' );
|
523 |
}
|
524 |
|
525 |
+
// Remove the versions transient upon activation so that newer version for rollback can be acquired.
|
526 |
+
$versions_cache = $this->product->get_cache_key();
|
527 |
+
delete_transient( $versions_cache );
|
528 |
+
|
529 |
return true;
|
530 |
}
|
531 |
|
vendor/codeinwp/themeisle-sdk/src/Modules/Rollback.php
CHANGED
@@ -98,7 +98,7 @@ class Rollback extends Abstract_Module {
|
|
98 |
*/
|
99 |
private function get_api_versions() {
|
100 |
|
101 |
-
$cache_key = $this->product->
|
102 |
$cache_versions = get_transient( $cache_key );
|
103 |
if ( false === $cache_versions ) {
|
104 |
$versions = $this->get_remote_versions();
|
@@ -374,11 +374,27 @@ class Rollback extends Abstract_Module {
|
|
374 |
);
|
375 |
}
|
376 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
377 |
/**
|
378 |
* Set the rollback hook. Strangely, this does not work if placed in the ThemeIsle_SDK_Rollback class, so it is being called from there instead.
|
379 |
*/
|
380 |
public function add_hooks() {
|
381 |
add_action( 'admin_post_' . $this->product->get_key() . '_rollback', array( $this, 'start_rollback' ) );
|
382 |
add_action( 'admin_footer', array( $this, 'add_footer' ) );
|
|
|
|
|
|
|
|
|
383 |
}
|
384 |
}
|
98 |
*/
|
99 |
private function get_api_versions() {
|
100 |
|
101 |
+
$cache_key = $this->product->get_cache_key();
|
102 |
$cache_versions = get_transient( $cache_key );
|
103 |
if ( false === $cache_versions ) {
|
104 |
$versions = $this->get_remote_versions();
|
374 |
);
|
375 |
}
|
376 |
|
377 |
+
/**
|
378 |
+
* Fires after the option has been updated.
|
379 |
+
*
|
380 |
+
* @param mixed $old_value The old option value.
|
381 |
+
* @param mixed $value The new option value.
|
382 |
+
* @param string $option Option name.
|
383 |
+
*/
|
384 |
+
public function update_active_plugins_action( $old_value, $value, $option ) {
|
385 |
+
delete_site_transient( 'update_plugins' );
|
386 |
+
wp_cache_delete( 'plugins', 'plugins' );
|
387 |
+
}
|
388 |
+
|
389 |
/**
|
390 |
* Set the rollback hook. Strangely, this does not work if placed in the ThemeIsle_SDK_Rollback class, so it is being called from there instead.
|
391 |
*/
|
392 |
public function add_hooks() {
|
393 |
add_action( 'admin_post_' . $this->product->get_key() . '_rollback', array( $this, 'start_rollback' ) );
|
394 |
add_action( 'admin_footer', array( $this, 'add_footer' ) );
|
395 |
+
|
396 |
+
// This hook will be invoked after the plugin activation.
|
397 |
+
// We use this to force an update of the cache so that Update is present immediate after a rollback.
|
398 |
+
add_action( 'update_option_active_plugins', array( $this, 'update_active_plugins_action' ), 10, 3 );
|
399 |
}
|
400 |
}
|
vendor/codeinwp/themeisle-sdk/src/Product.php
CHANGED
@@ -322,6 +322,15 @@ class Product {
|
|
322 |
return $name;
|
323 |
}
|
324 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
325 |
/**
|
326 |
* Getter for product name.
|
327 |
*
|
322 |
return $name;
|
323 |
}
|
324 |
|
325 |
+
/**
|
326 |
+
* Return the product version cache key.
|
327 |
+
*
|
328 |
+
* @return string The product version cache key.
|
329 |
+
*/
|
330 |
+
public function get_cache_key() {
|
331 |
+
return $this->get_key() . '_' . preg_replace( '/[^0-9a-zA-Z ]/m', '', $this->get_version() ) . 'versions';
|
332 |
+
}
|
333 |
+
|
334 |
/**
|
335 |
* Getter for product name.
|
336 |
*
|
vendor/composer/InstalledVersions.php
CHANGED
@@ -28,7 +28,7 @@ class InstalledVersions
|
|
28 |
{
|
29 |
/**
|
30 |
* @var mixed[]|null
|
31 |
-
* @psalm-var array{root: array{name: string,
|
32 |
*/
|
33 |
private static $installed;
|
34 |
|
@@ -39,7 +39,7 @@ class InstalledVersions
|
|
39 |
|
40 |
/**
|
41 |
* @var array[]
|
42 |
-
* @psalm-var array<string, array{root: array{name: string,
|
43 |
*/
|
44 |
private static $installedByVendor = array();
|
45 |
|
@@ -243,7 +243,7 @@ class InstalledVersions
|
|
243 |
|
244 |
/**
|
245 |
* @return array
|
246 |
-
* @psalm-return array{name: string,
|
247 |
*/
|
248 |
public static function getRootPackage()
|
249 |
{
|
@@ -257,7 +257,7 @@ class InstalledVersions
|
|
257 |
*
|
258 |
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
259 |
* @return array[]
|
260 |
-
* @psalm-return array{root: array{name: string,
|
261 |
*/
|
262 |
public static function getRawData()
|
263 |
{
|
@@ -280,7 +280,7 @@ class InstalledVersions
|
|
280 |
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
281 |
*
|
282 |
* @return array[]
|
283 |
-
* @psalm-return list<array{root: array{name: string,
|
284 |
*/
|
285 |
public static function getAllRawData()
|
286 |
{
|
@@ -303,7 +303,7 @@ class InstalledVersions
|
|
303 |
* @param array[] $data A vendor/composer/installed.php data set
|
304 |
* @return void
|
305 |
*
|
306 |
-
* @psalm-param array{root: array{name: string,
|
307 |
*/
|
308 |
public static function reload($data)
|
309 |
{
|
@@ -313,7 +313,7 @@ class InstalledVersions
|
|
313 |
|
314 |
/**
|
315 |
* @return array[]
|
316 |
-
* @psalm-return list<array{root: array{name: string,
|
317 |
*/
|
318 |
private static function getInstalled()
|
319 |
{
|
28 |
{
|
29 |
/**
|
30 |
* @var mixed[]|null
|
31 |
+
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
|
32 |
*/
|
33 |
private static $installed;
|
34 |
|
39 |
|
40 |
/**
|
41 |
* @var array[]
|
42 |
+
* @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
43 |
*/
|
44 |
private static $installedByVendor = array();
|
45 |
|
243 |
|
244 |
/**
|
245 |
* @return array
|
246 |
+
* @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
|
247 |
*/
|
248 |
public static function getRootPackage()
|
249 |
{
|
257 |
*
|
258 |
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
259 |
* @return array[]
|
260 |
+
* @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}
|
261 |
*/
|
262 |
public static function getRawData()
|
263 |
{
|
280 |
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
281 |
*
|
282 |
* @return array[]
|
283 |
+
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
284 |
*/
|
285 |
public static function getAllRawData()
|
286 |
{
|
303 |
* @param array[] $data A vendor/composer/installed.php data set
|
304 |
* @return void
|
305 |
*
|
306 |
+
* @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data
|
307 |
*/
|
308 |
public static function reload($data)
|
309 |
{
|
313 |
|
314 |
/**
|
315 |
* @return array[]
|
316 |
+
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
317 |
*/
|
318 |
private static function getInstalled()
|
319 |
{
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -33,6 +33,7 @@ return array(
|
|
33 |
'GuzzleHttp\\Psr7\\StreamWrapper' => $vendorDir . '/guzzlehttp/psr7/src/StreamWrapper.php',
|
34 |
'GuzzleHttp\\Psr7\\UploadedFile' => $vendorDir . '/guzzlehttp/psr7/src/UploadedFile.php',
|
35 |
'GuzzleHttp\\Psr7\\Uri' => $vendorDir . '/guzzlehttp/psr7/src/Uri.php',
|
|
|
36 |
'GuzzleHttp\\Psr7\\UriNormalizer' => $vendorDir . '/guzzlehttp/psr7/src/UriNormalizer.php',
|
37 |
'GuzzleHttp\\Psr7\\UriResolver' => $vendorDir . '/guzzlehttp/psr7/src/UriResolver.php',
|
38 |
'GuzzleHttp\\Psr7\\Utils' => $vendorDir . '/guzzlehttp/psr7/src/Utils.php',
|
33 |
'GuzzleHttp\\Psr7\\StreamWrapper' => $vendorDir . '/guzzlehttp/psr7/src/StreamWrapper.php',
|
34 |
'GuzzleHttp\\Psr7\\UploadedFile' => $vendorDir . '/guzzlehttp/psr7/src/UploadedFile.php',
|
35 |
'GuzzleHttp\\Psr7\\Uri' => $vendorDir . '/guzzlehttp/psr7/src/Uri.php',
|
36 |
+
'GuzzleHttp\\Psr7\\UriComparator' => $vendorDir . '/guzzlehttp/psr7/src/UriComparator.php',
|
37 |
'GuzzleHttp\\Psr7\\UriNormalizer' => $vendorDir . '/guzzlehttp/psr7/src/UriNormalizer.php',
|
38 |
'GuzzleHttp\\Psr7\\UriResolver' => $vendorDir . '/guzzlehttp/psr7/src/UriResolver.php',
|
39 |
'GuzzleHttp\\Psr7\\Utils' => $vendorDir . '/guzzlehttp/psr7/src/Utils.php',
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -24,18 +24,18 @@ class ComposerAutoloaderInit5907d177bb5d198f878741ba5670ee08
|
|
24 |
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
-
spl_autoload_register(array('
|
28 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
29 |
-
spl_autoload_unregister(array('
|
30 |
|
31 |
require __DIR__ . '/autoload_static.php';
|
32 |
-
call_user_func(\Composer\Autoload\
|
33 |
|
34 |
$loader->register(true);
|
35 |
|
36 |
-
$includeFiles = \Composer\Autoload\
|
37 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
38 |
-
|
39 |
}
|
40 |
|
41 |
return $loader;
|
@@ -47,7 +47,7 @@ class ComposerAutoloaderInit5907d177bb5d198f878741ba5670ee08
|
|
47 |
* @param string $file
|
48 |
* @return void
|
49 |
*/
|
50 |
-
function
|
51 |
{
|
52 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
53 |
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInite6107ea29bd7bab1ef19c8448bdefd7c
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
24 |
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
+
spl_autoload_register(array('ComposerAutoloaderInite6107ea29bd7bab1ef19c8448bdefd7c', 'loadClassLoader'), true, true);
|
28 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
29 |
+
spl_autoload_unregister(array('ComposerAutoloaderInite6107ea29bd7bab1ef19c8448bdefd7c', 'loadClassLoader'));
|
30 |
|
31 |
require __DIR__ . '/autoload_static.php';
|
32 |
+
call_user_func(\Composer\Autoload\ComposerStaticInite6107ea29bd7bab1ef19c8448bdefd7c::getInitializer($loader));
|
33 |
|
34 |
$loader->register(true);
|
35 |
|
36 |
+
$includeFiles = \Composer\Autoload\ComposerStaticInite6107ea29bd7bab1ef19c8448bdefd7c::$files;
|
37 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
38 |
+
composerRequiree6107ea29bd7bab1ef19c8448bdefd7c($fileIdentifier, $file);
|
39 |
}
|
40 |
|
41 |
return $loader;
|
47 |
* @param string $file
|
48 |
* @return void
|
49 |
*/
|
50 |
+
function composerRequiree6107ea29bd7bab1ef19c8448bdefd7c($fileIdentifier, $file)
|
51 |
{
|
52 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
53 |
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'9c67151ae59aff4788964ce8eb2a0f43' => __DIR__ . '/..' . '/clue/stream-filter/src/functions_include.php',
|
@@ -126,6 +126,7 @@ class ComposerStaticInit5907d177bb5d198f878741ba5670ee08
|
|
126 |
'GuzzleHttp\\Psr7\\StreamWrapper' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/StreamWrapper.php',
|
127 |
'GuzzleHttp\\Psr7\\UploadedFile' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/UploadedFile.php',
|
128 |
'GuzzleHttp\\Psr7\\Uri' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Uri.php',
|
|
|
129 |
'GuzzleHttp\\Psr7\\UriNormalizer' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/UriNormalizer.php',
|
130 |
'GuzzleHttp\\Psr7\\UriResolver' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/UriResolver.php',
|
131 |
'GuzzleHttp\\Psr7\\Utils' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Utils.php',
|
@@ -268,9 +269,9 @@ class ComposerStaticInit5907d177bb5d198f878741ba5670ee08
|
|
268 |
public static function getInitializer(ClassLoader $loader)
|
269 |
{
|
270 |
return \Closure::bind(function () use ($loader) {
|
271 |
-
$loader->prefixLengthsPsr4 =
|
272 |
-
$loader->prefixDirsPsr4 =
|
273 |
-
$loader->classMap =
|
274 |
|
275 |
}, null, ClassLoader::class);
|
276 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInite6107ea29bd7bab1ef19c8448bdefd7c
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'9c67151ae59aff4788964ce8eb2a0f43' => __DIR__ . '/..' . '/clue/stream-filter/src/functions_include.php',
|
126 |
'GuzzleHttp\\Psr7\\StreamWrapper' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/StreamWrapper.php',
|
127 |
'GuzzleHttp\\Psr7\\UploadedFile' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/UploadedFile.php',
|
128 |
'GuzzleHttp\\Psr7\\Uri' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Uri.php',
|
129 |
+
'GuzzleHttp\\Psr7\\UriComparator' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/UriComparator.php',
|
130 |
'GuzzleHttp\\Psr7\\UriNormalizer' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/UriNormalizer.php',
|
131 |
'GuzzleHttp\\Psr7\\UriResolver' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/UriResolver.php',
|
132 |
'GuzzleHttp\\Psr7\\Utils' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Utils.php',
|
269 |
public static function getInitializer(ClassLoader $loader)
|
270 |
{
|
271 |
return \Closure::bind(function () use ($loader) {
|
272 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInite6107ea29bd7bab1ef19c8448bdefd7c::$prefixLengthsPsr4;
|
273 |
+
$loader->prefixDirsPsr4 = ComposerStaticInite6107ea29bd7bab1ef19c8448bdefd7c::$prefixDirsPsr4;
|
274 |
+
$loader->classMap = ComposerStaticInite6107ea29bd7bab1ef19c8448bdefd7c::$classMap;
|
275 |
|
276 |
}, null, ClassLoader::class);
|
277 |
}
|
vendor/composer/installed.json
CHANGED
@@ -2,17 +2,17 @@
|
|
2 |
"packages": [
|
3 |
{
|
4 |
"name": "clue/stream-filter",
|
5 |
-
"version": "v1.
|
6 |
-
"version_normalized": "1.
|
7 |
"source": {
|
8 |
"type": "git",
|
9 |
"url": "https://github.com/clue/stream-filter.git",
|
10 |
-
"reference": "
|
11 |
},
|
12 |
"dist": {
|
13 |
"type": "zip",
|
14 |
-
"url": "https://api.github.com/repos/clue/stream-filter/zipball/
|
15 |
-
"reference": "
|
16 |
"shasum": ""
|
17 |
},
|
18 |
"require": {
|
@@ -21,7 +21,7 @@
|
|
21 |
"require-dev": {
|
22 |
"phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36"
|
23 |
},
|
24 |
-
"time": "
|
25 |
"type": "library",
|
26 |
"installation-source": "dist",
|
27 |
"autoload": {
|
@@ -55,7 +55,7 @@
|
|
55 |
],
|
56 |
"support": {
|
57 |
"issues": "https://github.com/clue/stream-filter/issues",
|
58 |
-
"source": "https://github.com/clue/stream-filter/tree/v1.
|
59 |
},
|
60 |
"funding": [
|
61 |
{
|
@@ -259,23 +259,23 @@
|
|
259 |
},
|
260 |
{
|
261 |
"name": "codeinwp/themeisle-sdk",
|
262 |
-
"version": "3.2.
|
263 |
-
"version_normalized": "3.2.
|
264 |
"source": {
|
265 |
"type": "git",
|
266 |
"url": "https://github.com/Codeinwp/themeisle-sdk.git",
|
267 |
-
"reference": "
|
268 |
},
|
269 |
"dist": {
|
270 |
"type": "zip",
|
271 |
-
"url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/
|
272 |
-
"reference": "
|
273 |
"shasum": ""
|
274 |
},
|
275 |
"require-dev": {
|
276 |
"codeinwp/phpcs-ruleset": "dev-main"
|
277 |
},
|
278 |
-
"time": "2022-
|
279 |
"type": "library",
|
280 |
"installation-source": "dist",
|
281 |
"notification-url": "https://packagist.org/downloads/",
|
@@ -296,23 +296,23 @@
|
|
296 |
],
|
297 |
"support": {
|
298 |
"issues": "https://github.com/Codeinwp/themeisle-sdk/issues",
|
299 |
-
"source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.2.
|
300 |
},
|
301 |
"install-path": "../codeinwp/themeisle-sdk"
|
302 |
},
|
303 |
{
|
304 |
"name": "guzzlehttp/psr7",
|
305 |
-
"version": "1.
|
306 |
-
"version_normalized": "1.
|
307 |
"source": {
|
308 |
"type": "git",
|
309 |
"url": "https://github.com/guzzle/psr7.git",
|
310 |
-
"reference": "
|
311 |
},
|
312 |
"dist": {
|
313 |
"type": "zip",
|
314 |
-
"url": "https://api.github.com/repos/guzzle/psr7/zipball/
|
315 |
-
"reference": "
|
316 |
"shasum": ""
|
317 |
},
|
318 |
"require": {
|
@@ -330,11 +330,11 @@
|
|
330 |
"suggest": {
|
331 |
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
|
332 |
},
|
333 |
-
"time": "
|
334 |
"type": "library",
|
335 |
"extra": {
|
336 |
"branch-alias": {
|
337 |
-
"dev-master": "1.
|
338 |
}
|
339 |
},
|
340 |
"installation-source": "dist",
|
@@ -395,7 +395,7 @@
|
|
395 |
],
|
396 |
"support": {
|
397 |
"issues": "https://github.com/guzzle/psr7/issues",
|
398 |
-
"source": "https://github.com/guzzle/psr7/tree/1.
|
399 |
},
|
400 |
"funding": [
|
401 |
{
|
2 |
"packages": [
|
3 |
{
|
4 |
"name": "clue/stream-filter",
|
5 |
+
"version": "v1.6.0",
|
6 |
+
"version_normalized": "1.6.0.0",
|
7 |
"source": {
|
8 |
"type": "git",
|
9 |
"url": "https://github.com/clue/stream-filter.git",
|
10 |
+
"reference": "d6169430c7731d8509da7aecd0af756a5747b78e"
|
11 |
},
|
12 |
"dist": {
|
13 |
"type": "zip",
|
14 |
+
"url": "https://api.github.com/repos/clue/stream-filter/zipball/d6169430c7731d8509da7aecd0af756a5747b78e",
|
15 |
+
"reference": "d6169430c7731d8509da7aecd0af756a5747b78e",
|
16 |
"shasum": ""
|
17 |
},
|
18 |
"require": {
|
21 |
"require-dev": {
|
22 |
"phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36"
|
23 |
},
|
24 |
+
"time": "2022-02-21T13:15:14+00:00",
|
25 |
"type": "library",
|
26 |
"installation-source": "dist",
|
27 |
"autoload": {
|
55 |
],
|
56 |
"support": {
|
57 |
"issues": "https://github.com/clue/stream-filter/issues",
|
58 |
+
"source": "https://github.com/clue/stream-filter/tree/v1.6.0"
|
59 |
},
|
60 |
"funding": [
|
61 |
{
|
259 |
},
|
260 |
{
|
261 |
"name": "codeinwp/themeisle-sdk",
|
262 |
+
"version": "3.2.26",
|
263 |
+
"version_normalized": "3.2.26.0",
|
264 |
"source": {
|
265 |
"type": "git",
|
266 |
"url": "https://github.com/Codeinwp/themeisle-sdk.git",
|
267 |
+
"reference": "a4451041bb97a325c7bb8e86a5584adf4636650e"
|
268 |
},
|
269 |
"dist": {
|
270 |
"type": "zip",
|
271 |
+
"url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/a4451041bb97a325c7bb8e86a5584adf4636650e",
|
272 |
+
"reference": "a4451041bb97a325c7bb8e86a5584adf4636650e",
|
273 |
"shasum": ""
|
274 |
},
|
275 |
"require-dev": {
|
276 |
"codeinwp/phpcs-ruleset": "dev-main"
|
277 |
},
|
278 |
+
"time": "2022-05-12T11:55:06+00:00",
|
279 |
"type": "library",
|
280 |
"installation-source": "dist",
|
281 |
"notification-url": "https://packagist.org/downloads/",
|
296 |
],
|
297 |
"support": {
|
298 |
"issues": "https://github.com/Codeinwp/themeisle-sdk/issues",
|
299 |
+
"source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.2.26"
|
300 |
},
|
301 |
"install-path": "../codeinwp/themeisle-sdk"
|
302 |
},
|
303 |
{
|
304 |
"name": "guzzlehttp/psr7",
|
305 |
+
"version": "1.9.0",
|
306 |
+
"version_normalized": "1.9.0.0",
|
307 |
"source": {
|
308 |
"type": "git",
|
309 |
"url": "https://github.com/guzzle/psr7.git",
|
310 |
+
"reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318"
|
311 |
},
|
312 |
"dist": {
|
313 |
"type": "zip",
|
314 |
+
"url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318",
|
315 |
+
"reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318",
|
316 |
"shasum": ""
|
317 |
},
|
318 |
"require": {
|
330 |
"suggest": {
|
331 |
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
|
332 |
},
|
333 |
+
"time": "2022-06-20T21:43:03+00:00",
|
334 |
"type": "library",
|
335 |
"extra": {
|
336 |
"branch-alias": {
|
337 |
+
"dev-master": "1.9-dev"
|
338 |
}
|
339 |
},
|
340 |
"installation-source": "dist",
|
395 |
],
|
396 |
"support": {
|
397 |
"issues": "https://github.com/guzzle/psr7/issues",
|
398 |
+
"source": "https://github.com/guzzle/psr7/tree/1.9.0"
|
399 |
},
|
400 |
"funding": [
|
401 |
{
|
vendor/composer/installed.php
CHANGED
@@ -1,109 +1,109 @@
|
|
1 |
<?php return array(
|
2 |
'root' => array(
|
3 |
-
'
|
4 |
-
'
|
|
|
|
|
5 |
'type' => 'wordpress-plugin',
|
6 |
'install_path' => __DIR__ . '/../../',
|
7 |
'aliases' => array(),
|
8 |
-
'reference' => '408262b9cd669c1c22dc51a28ba4f0800b176c95',
|
9 |
-
'name' => 'codeinwp/themeisle-companion',
|
10 |
'dev' => false,
|
11 |
),
|
12 |
'versions' => array(
|
13 |
'clue/stream-filter' => array(
|
14 |
-
'pretty_version' => 'v1.
|
15 |
-
'version' => '1.
|
|
|
16 |
'type' => 'library',
|
17 |
'install_path' => __DIR__ . '/../clue/stream-filter',
|
18 |
'aliases' => array(),
|
19 |
-
'reference' => 'aeb7d8ea49c7963d3b581378955dbf5bc49aa320',
|
20 |
'dev_requirement' => false,
|
21 |
),
|
22 |
'codeinwp/elementor-extra-widgets' => array(
|
23 |
'pretty_version' => 'dev-master',
|
24 |
'version' => 'dev-master',
|
|
|
25 |
'type' => 'library',
|
26 |
'install_path' => __DIR__ . '/../codeinwp/elementor-extra-widgets',
|
27 |
'aliases' => array(
|
28 |
0 => '9999999-dev',
|
29 |
),
|
30 |
-
'reference' => 'c6121466d107952821d35bec364983a88fbddab5',
|
31 |
'dev_requirement' => false,
|
32 |
),
|
33 |
'codeinwp/full-width-page-templates' => array(
|
34 |
'pretty_version' => 'dev-master',
|
35 |
'version' => 'dev-master',
|
|
|
36 |
'type' => 'library',
|
37 |
'install_path' => __DIR__ . '/../codeinwp/full-width-page-templates',
|
38 |
'aliases' => array(
|
39 |
0 => '9999999-dev',
|
40 |
),
|
41 |
-
'reference' => 'ac15bbb1295d39baf28978c7d9c04fed21ea3429',
|
42 |
'dev_requirement' => false,
|
43 |
),
|
44 |
'codeinwp/gutenberg-blocks' => array(
|
45 |
'pretty_version' => '1.6.9',
|
46 |
'version' => '1.6.9.0',
|
|
|
47 |
'type' => 'library',
|
48 |
'install_path' => __DIR__ . '/../codeinwp/gutenberg-blocks',
|
49 |
'aliases' => array(),
|
50 |
-
'reference' => 'c58fc700fe616d8b4f6029c109a869257d6daeed',
|
51 |
'dev_requirement' => false,
|
52 |
),
|
53 |
'codeinwp/themeisle-companion' => array(
|
54 |
-
'pretty_version' => 'v2.10.
|
55 |
-
'version' => '2.10.
|
|
|
56 |
'type' => 'wordpress-plugin',
|
57 |
'install_path' => __DIR__ . '/../../',
|
58 |
'aliases' => array(),
|
59 |
-
'reference' => '408262b9cd669c1c22dc51a28ba4f0800b176c95',
|
60 |
'dev_requirement' => false,
|
61 |
),
|
62 |
'codeinwp/themeisle-content-forms' => array(
|
63 |
'pretty_version' => 'dev-master',
|
64 |
'version' => 'dev-master',
|
|
|
65 |
'type' => 'library',
|
66 |
'install_path' => __DIR__ . '/../codeinwp/themeisle-content-forms',
|
67 |
'aliases' => array(
|
68 |
0 => '9999999-dev',
|
69 |
),
|
70 |
-
'reference' => '73f9d5696603b0aa2e25b9c035e4abfaf5bd2d68',
|
71 |
'dev_requirement' => false,
|
72 |
),
|
73 |
'codeinwp/themeisle-sdk' => array(
|
74 |
-
'pretty_version' => '3.2.
|
75 |
-
'version' => '3.2.
|
|
|
76 |
'type' => 'library',
|
77 |
'install_path' => __DIR__ . '/../codeinwp/themeisle-sdk',
|
78 |
'aliases' => array(),
|
79 |
-
'reference' => 'e5c171e33120fdf8ce6dd3a7bddad984583023f0',
|
80 |
'dev_requirement' => false,
|
81 |
),
|
82 |
'guzzlehttp/psr7' => array(
|
83 |
-
'pretty_version' => '1.
|
84 |
-
'version' => '1.
|
|
|
85 |
'type' => 'library',
|
86 |
'install_path' => __DIR__ . '/../guzzlehttp/psr7',
|
87 |
'aliases' => array(),
|
88 |
-
'reference' => '1afdd860a2566ed3c2b0b4a3de6e23434a79ec85',
|
89 |
'dev_requirement' => false,
|
90 |
),
|
91 |
'mailerlite/mailerlite-api-v2-php-sdk' => array(
|
92 |
'pretty_version' => '0.2.3',
|
93 |
'version' => '0.2.3.0',
|
|
|
94 |
'type' => 'library',
|
95 |
'install_path' => __DIR__ . '/../mailerlite/mailerlite-api-v2-php-sdk',
|
96 |
'aliases' => array(),
|
97 |
-
'reference' => '2bae0aac12c4588bc0197d2e2dde5a55429b9e44',
|
98 |
'dev_requirement' => false,
|
99 |
),
|
100 |
'masterminds/html5' => array(
|
101 |
'pretty_version' => '2.7.5',
|
102 |
'version' => '2.7.5.0',
|
|
|
103 |
'type' => 'library',
|
104 |
'install_path' => __DIR__ . '/../masterminds/html5',
|
105 |
'aliases' => array(),
|
106 |
-
'reference' => 'f640ac1bdddff06ea333a920c95bbad8872429ab',
|
107 |
'dev_requirement' => false,
|
108 |
),
|
109 |
'php-http/async-client-implementation' => array(
|
@@ -121,46 +121,46 @@
|
|
121 |
'php-http/curl-client' => array(
|
122 |
'pretty_version' => 'v1.7.1',
|
123 |
'version' => '1.7.1.0',
|
|
|
124 |
'type' => 'library',
|
125 |
'install_path' => __DIR__ . '/../php-http/curl-client',
|
126 |
'aliases' => array(),
|
127 |
-
'reference' => '6341a93d00e5d953fc868a3928b5167e6513f2b6',
|
128 |
'dev_requirement' => false,
|
129 |
),
|
130 |
'php-http/discovery' => array(
|
131 |
'pretty_version' => '1.6.1',
|
132 |
'version' => '1.6.1.0',
|
|
|
133 |
'type' => 'library',
|
134 |
'install_path' => __DIR__ . '/../php-http/discovery',
|
135 |
'aliases' => array(),
|
136 |
-
'reference' => '684855f2c2e9d0a61868b8f8d6bd0295c8a4b651',
|
137 |
'dev_requirement' => false,
|
138 |
),
|
139 |
'php-http/httplug' => array(
|
140 |
'pretty_version' => 'v1.1.0',
|
141 |
'version' => '1.1.0.0',
|
|
|
142 |
'type' => 'library',
|
143 |
'install_path' => __DIR__ . '/../php-http/httplug',
|
144 |
'aliases' => array(),
|
145 |
-
'reference' => '1c6381726c18579c4ca2ef1ec1498fdae8bdf018',
|
146 |
'dev_requirement' => false,
|
147 |
),
|
148 |
'php-http/message' => array(
|
149 |
'pretty_version' => '1.7.2',
|
150 |
'version' => '1.7.2.0',
|
|
|
151 |
'type' => 'library',
|
152 |
'install_path' => __DIR__ . '/../php-http/message',
|
153 |
'aliases' => array(),
|
154 |
-
'reference' => 'b159ffe570dffd335e22ef0b91a946eacb182fa1',
|
155 |
'dev_requirement' => false,
|
156 |
),
|
157 |
'php-http/message-factory' => array(
|
158 |
'pretty_version' => 'v1.0.2',
|
159 |
'version' => '1.0.2.0',
|
|
|
160 |
'type' => 'library',
|
161 |
'install_path' => __DIR__ . '/../php-http/message-factory',
|
162 |
'aliases' => array(),
|
163 |
-
'reference' => 'a478cb11f66a6ac48d8954216cfed9aa06a501a1',
|
164 |
'dev_requirement' => false,
|
165 |
),
|
166 |
'php-http/message-factory-implementation' => array(
|
@@ -172,19 +172,19 @@
|
|
172 |
'php-http/promise' => array(
|
173 |
'pretty_version' => 'v1.0.0',
|
174 |
'version' => '1.0.0.0',
|
|
|
175 |
'type' => 'library',
|
176 |
'install_path' => __DIR__ . '/../php-http/promise',
|
177 |
'aliases' => array(),
|
178 |
-
'reference' => 'dc494cdc9d7160b9a09bd5573272195242ce7980',
|
179 |
'dev_requirement' => false,
|
180 |
),
|
181 |
'psr/http-message' => array(
|
182 |
'pretty_version' => '1.0.1',
|
183 |
'version' => '1.0.1.0',
|
|
|
184 |
'type' => 'library',
|
185 |
'install_path' => __DIR__ . '/../psr/http-message',
|
186 |
'aliases' => array(),
|
187 |
-
'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363',
|
188 |
'dev_requirement' => false,
|
189 |
),
|
190 |
'psr/http-message-implementation' => array(
|
@@ -196,19 +196,19 @@
|
|
196 |
'ralouphie/getallheaders' => array(
|
197 |
'pretty_version' => '3.0.3',
|
198 |
'version' => '3.0.3.0',
|
|
|
199 |
'type' => 'library',
|
200 |
'install_path' => __DIR__ . '/../ralouphie/getallheaders',
|
201 |
'aliases' => array(),
|
202 |
-
'reference' => '120b605dfeb996808c31b6477290a714d356e822',
|
203 |
'dev_requirement' => false,
|
204 |
),
|
205 |
'tubalmartin/cssmin' => array(
|
206 |
'pretty_version' => 'v4.1.1',
|
207 |
'version' => '4.1.1.0',
|
|
|
208 |
'type' => 'library',
|
209 |
'install_path' => __DIR__ . '/../tubalmartin/cssmin',
|
210 |
'aliases' => array(),
|
211 |
-
'reference' => '3cbf557f4079d83a06f9c3ff9b957c022d7805cf',
|
212 |
'dev_requirement' => false,
|
213 |
),
|
214 |
),
|
1 |
<?php return array(
|
2 |
'root' => array(
|
3 |
+
'name' => 'codeinwp/themeisle-companion',
|
4 |
+
'pretty_version' => 'v2.10.13',
|
5 |
+
'version' => '2.10.13.0',
|
6 |
+
'reference' => '65ba04d8e6877a168952a474f43c3d010ce74b48',
|
7 |
'type' => 'wordpress-plugin',
|
8 |
'install_path' => __DIR__ . '/../../',
|
9 |
'aliases' => array(),
|
|
|
|
|
10 |
'dev' => false,
|
11 |
),
|
12 |
'versions' => array(
|
13 |
'clue/stream-filter' => array(
|
14 |
+
'pretty_version' => 'v1.6.0',
|
15 |
+
'version' => '1.6.0.0',
|
16 |
+
'reference' => 'd6169430c7731d8509da7aecd0af756a5747b78e',
|
17 |
'type' => 'library',
|
18 |
'install_path' => __DIR__ . '/../clue/stream-filter',
|
19 |
'aliases' => array(),
|
|
|
20 |
'dev_requirement' => false,
|
21 |
),
|
22 |
'codeinwp/elementor-extra-widgets' => array(
|
23 |
'pretty_version' => 'dev-master',
|
24 |
'version' => 'dev-master',
|
25 |
+
'reference' => 'c6121466d107952821d35bec364983a88fbddab5',
|
26 |
'type' => 'library',
|
27 |
'install_path' => __DIR__ . '/../codeinwp/elementor-extra-widgets',
|
28 |
'aliases' => array(
|
29 |
0 => '9999999-dev',
|
30 |
),
|
|
|
31 |
'dev_requirement' => false,
|
32 |
),
|
33 |
'codeinwp/full-width-page-templates' => array(
|
34 |
'pretty_version' => 'dev-master',
|
35 |
'version' => 'dev-master',
|
36 |
+
'reference' => 'ac15bbb1295d39baf28978c7d9c04fed21ea3429',
|
37 |
'type' => 'library',
|
38 |
'install_path' => __DIR__ . '/../codeinwp/full-width-page-templates',
|
39 |
'aliases' => array(
|
40 |
0 => '9999999-dev',
|
41 |
),
|
|
|
42 |
'dev_requirement' => false,
|
43 |
),
|
44 |
'codeinwp/gutenberg-blocks' => array(
|
45 |
'pretty_version' => '1.6.9',
|
46 |
'version' => '1.6.9.0',
|
47 |
+
'reference' => 'c58fc700fe616d8b4f6029c109a869257d6daeed',
|
48 |
'type' => 'library',
|
49 |
'install_path' => __DIR__ . '/../codeinwp/gutenberg-blocks',
|
50 |
'aliases' => array(),
|
|
|
51 |
'dev_requirement' => false,
|
52 |
),
|
53 |
'codeinwp/themeisle-companion' => array(
|
54 |
+
'pretty_version' => 'v2.10.13',
|
55 |
+
'version' => '2.10.13.0',
|
56 |
+
'reference' => '65ba04d8e6877a168952a474f43c3d010ce74b48',
|
57 |
'type' => 'wordpress-plugin',
|
58 |
'install_path' => __DIR__ . '/../../',
|
59 |
'aliases' => array(),
|
|
|
60 |
'dev_requirement' => false,
|
61 |
),
|
62 |
'codeinwp/themeisle-content-forms' => array(
|
63 |
'pretty_version' => 'dev-master',
|
64 |
'version' => 'dev-master',
|
65 |
+
'reference' => '73f9d5696603b0aa2e25b9c035e4abfaf5bd2d68',
|
66 |
'type' => 'library',
|
67 |
'install_path' => __DIR__ . '/../codeinwp/themeisle-content-forms',
|
68 |
'aliases' => array(
|
69 |
0 => '9999999-dev',
|
70 |
),
|
|
|
71 |
'dev_requirement' => false,
|
72 |
),
|
73 |
'codeinwp/themeisle-sdk' => array(
|
74 |
+
'pretty_version' => '3.2.26',
|
75 |
+
'version' => '3.2.26.0',
|
76 |
+
'reference' => 'a4451041bb97a325c7bb8e86a5584adf4636650e',
|
77 |
'type' => 'library',
|
78 |
'install_path' => __DIR__ . '/../codeinwp/themeisle-sdk',
|
79 |
'aliases' => array(),
|
|
|
80 |
'dev_requirement' => false,
|
81 |
),
|
82 |
'guzzlehttp/psr7' => array(
|
83 |
+
'pretty_version' => '1.9.0',
|
84 |
+
'version' => '1.9.0.0',
|
85 |
+
'reference' => 'e98e3e6d4f86621a9b75f623996e6bbdeb4b9318',
|
86 |
'type' => 'library',
|
87 |
'install_path' => __DIR__ . '/../guzzlehttp/psr7',
|
88 |
'aliases' => array(),
|
|
|
89 |
'dev_requirement' => false,
|
90 |
),
|
91 |
'mailerlite/mailerlite-api-v2-php-sdk' => array(
|
92 |
'pretty_version' => '0.2.3',
|
93 |
'version' => '0.2.3.0',
|
94 |
+
'reference' => '2bae0aac12c4588bc0197d2e2dde5a55429b9e44',
|
95 |
'type' => 'library',
|
96 |
'install_path' => __DIR__ . '/../mailerlite/mailerlite-api-v2-php-sdk',
|
97 |
'aliases' => array(),
|
|
|
98 |
'dev_requirement' => false,
|
99 |
),
|
100 |
'masterminds/html5' => array(
|
101 |
'pretty_version' => '2.7.5',
|
102 |
'version' => '2.7.5.0',
|
103 |
+
'reference' => 'f640ac1bdddff06ea333a920c95bbad8872429ab',
|
104 |
'type' => 'library',
|
105 |
'install_path' => __DIR__ . '/../masterminds/html5',
|
106 |
'aliases' => array(),
|
|
|
107 |
'dev_requirement' => false,
|
108 |
),
|
109 |
'php-http/async-client-implementation' => array(
|
121 |
'php-http/curl-client' => array(
|
122 |
'pretty_version' => 'v1.7.1',
|
123 |
'version' => '1.7.1.0',
|
124 |
+
'reference' => '6341a93d00e5d953fc868a3928b5167e6513f2b6',
|
125 |
'type' => 'library',
|
126 |
'install_path' => __DIR__ . '/../php-http/curl-client',
|
127 |
'aliases' => array(),
|
|
|
128 |
'dev_requirement' => false,
|
129 |
),
|
130 |
'php-http/discovery' => array(
|
131 |
'pretty_version' => '1.6.1',
|
132 |
'version' => '1.6.1.0',
|
133 |
+
'reference' => '684855f2c2e9d0a61868b8f8d6bd0295c8a4b651',
|
134 |
'type' => 'library',
|
135 |
'install_path' => __DIR__ . '/../php-http/discovery',
|
136 |
'aliases' => array(),
|
|
|
137 |
'dev_requirement' => false,
|
138 |
),
|
139 |
'php-http/httplug' => array(
|
140 |
'pretty_version' => 'v1.1.0',
|
141 |
'version' => '1.1.0.0',
|
142 |
+
'reference' => '1c6381726c18579c4ca2ef1ec1498fdae8bdf018',
|
143 |
'type' => 'library',
|
144 |
'install_path' => __DIR__ . '/../php-http/httplug',
|
145 |
'aliases' => array(),
|
|
|
146 |
'dev_requirement' => false,
|
147 |
),
|
148 |
'php-http/message' => array(
|
149 |
'pretty_version' => '1.7.2',
|
150 |
'version' => '1.7.2.0',
|
151 |
+
'reference' => 'b159ffe570dffd335e22ef0b91a946eacb182fa1',
|
152 |
'type' => 'library',
|
153 |
'install_path' => __DIR__ . '/../php-http/message',
|
154 |
'aliases' => array(),
|
|
|
155 |
'dev_requirement' => false,
|
156 |
),
|
157 |
'php-http/message-factory' => array(
|
158 |
'pretty_version' => 'v1.0.2',
|
159 |
'version' => '1.0.2.0',
|
160 |
+
'reference' => 'a478cb11f66a6ac48d8954216cfed9aa06a501a1',
|
161 |
'type' => 'library',
|
162 |
'install_path' => __DIR__ . '/../php-http/message-factory',
|
163 |
'aliases' => array(),
|
|
|
164 |
'dev_requirement' => false,
|
165 |
),
|
166 |
'php-http/message-factory-implementation' => array(
|
172 |
'php-http/promise' => array(
|
173 |
'pretty_version' => 'v1.0.0',
|
174 |
'version' => '1.0.0.0',
|
175 |
+
'reference' => 'dc494cdc9d7160b9a09bd5573272195242ce7980',
|
176 |
'type' => 'library',
|
177 |
'install_path' => __DIR__ . '/../php-http/promise',
|
178 |
'aliases' => array(),
|
|
|
179 |
'dev_requirement' => false,
|
180 |
),
|
181 |
'psr/http-message' => array(
|
182 |
'pretty_version' => '1.0.1',
|
183 |
'version' => '1.0.1.0',
|
184 |
+
'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363',
|
185 |
'type' => 'library',
|
186 |
'install_path' => __DIR__ . '/../psr/http-message',
|
187 |
'aliases' => array(),
|
|
|
188 |
'dev_requirement' => false,
|
189 |
),
|
190 |
'psr/http-message-implementation' => array(
|
196 |
'ralouphie/getallheaders' => array(
|
197 |
'pretty_version' => '3.0.3',
|
198 |
'version' => '3.0.3.0',
|
199 |
+
'reference' => '120b605dfeb996808c31b6477290a714d356e822',
|
200 |
'type' => 'library',
|
201 |
'install_path' => __DIR__ . '/../ralouphie/getallheaders',
|
202 |
'aliases' => array(),
|
|
|
203 |
'dev_requirement' => false,
|
204 |
),
|
205 |
'tubalmartin/cssmin' => array(
|
206 |
'pretty_version' => 'v4.1.1',
|
207 |
'version' => '4.1.1.0',
|
208 |
+
'reference' => '3cbf557f4079d83a06f9c3ff9b957c022d7805cf',
|
209 |
'type' => 'library',
|
210 |
'install_path' => __DIR__ . '/../tubalmartin/cssmin',
|
211 |
'aliases' => array(),
|
|
|
212 |
'dev_requirement' => false,
|
213 |
),
|
214 |
),
|
vendor/guzzlehttp/psr7/CHANGELOG.md
CHANGED
@@ -3,12 +3,30 @@
|
|
3 |
|
4 |
All notable changes to this project will be documented in this file.
|
5 |
|
6 |
-
The format is based on [Keep a Changelog](
|
7 |
-
and this project adheres to [Semantic Versioning](
|
8 |
|
9 |
|
10 |
## Unreleased
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
## 1.8.3 - 2021-10-05
|
13 |
|
14 |
### Fixed
|
3 |
|
4 |
All notable changes to this project will be documented in this file.
|
5 |
|
6 |
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
7 |
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
8 |
|
9 |
|
10 |
## Unreleased
|
11 |
|
12 |
+
## 1.9.0 - 2022-06-20
|
13 |
+
|
14 |
+
### Added
|
15 |
+
|
16 |
+
- Added `UriComparator::isCrossOrigin` method
|
17 |
+
|
18 |
+
## 1.8.5 - 2022-03-20
|
19 |
+
|
20 |
+
### Fixed
|
21 |
+
|
22 |
+
- Correct header value validation
|
23 |
+
|
24 |
+
## 1.8.4 - 2022-03-20
|
25 |
+
|
26 |
+
### Fixed
|
27 |
+
|
28 |
+
- Validate header values properly
|
29 |
+
|
30 |
## 1.8.3 - 2021-10-05
|
31 |
|
32 |
### Fixed
|
vendor/guzzlehttp/psr7/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
# PSR-7 Message Implementation
|
2 |
|
3 |
-
This repository contains a full [PSR-7](
|
4 |
message implementation, several stream decorators, and some helpful
|
5 |
functionality like query string parsing.
|
6 |
|
@@ -659,7 +659,7 @@ manually but instead is used indirectly via `Psr\Http\Message\UriInterface::__to
|
|
659 |
|
660 |
`public static function fromParts(array $parts): UriInterface`
|
661 |
|
662 |
-
Creates a URI from a hash of [`parse_url`](
|
663 |
|
664 |
|
665 |
### `GuzzleHttp\Psr7\Uri::withQueryValue`
|
@@ -684,6 +684,16 @@ associative array of key => value.
|
|
684 |
Creates a new URI with a specific query string value removed. Any existing query string values that exactly match the
|
685 |
provided key are removed.
|
686 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
687 |
## Reference Resolution
|
688 |
|
689 |
`GuzzleHttp\Psr7\UriResolver` provides methods to resolve a URI reference in the context of a base URI according
|
@@ -809,14 +819,24 @@ This of course assumes they will be resolved against the same base URI. If this
|
|
809 |
equivalence or difference of relative references does not mean anything.
|
810 |
|
811 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
812 |
## Security
|
813 |
|
814 |
If you discover a security vulnerability within this package, please send an email to security@tidelift.com. All security vulnerabilities will be promptly addressed. Please do not disclose security-related issues publicly until a fix has been announced. Please see [Security Policy](https://github.com/guzzle/psr7/security/policy) for more information.
|
815 |
|
|
|
816 |
## License
|
817 |
|
818 |
Guzzle is made available under the MIT License (MIT). Please see [License File](LICENSE) for more information.
|
819 |
|
|
|
820 |
## For Enterprise
|
821 |
|
822 |
Available as part of the Tidelift Subscription
|
1 |
# PSR-7 Message Implementation
|
2 |
|
3 |
+
This repository contains a full [PSR-7](https://www.php-fig.org/psr/psr-7/)
|
4 |
message implementation, several stream decorators, and some helpful
|
5 |
functionality like query string parsing.
|
6 |
|
659 |
|
660 |
`public static function fromParts(array $parts): UriInterface`
|
661 |
|
662 |
+
Creates a URI from a hash of [`parse_url`](https://www.php.net/manual/en/function.parse-url.php) components.
|
663 |
|
664 |
|
665 |
### `GuzzleHttp\Psr7\Uri::withQueryValue`
|
684 |
Creates a new URI with a specific query string value removed. Any existing query string values that exactly match the
|
685 |
provided key are removed.
|
686 |
|
687 |
+
## Cross-Origin Detection
|
688 |
+
|
689 |
+
`GuzzleHttp\Psr7\UriComparator` provides methods to determine if a modified URL should be considered cross-origin.
|
690 |
+
|
691 |
+
### `GuzzleHttp\Psr7\UriComparator::isCrossOrigin`
|
692 |
+
|
693 |
+
`public static function isCrossOrigin(UriInterface $original, UriInterface $modified): bool`
|
694 |
+
|
695 |
+
Determines if a modified URL should be considered cross-origin with respect to an original URL.
|
696 |
+
|
697 |
## Reference Resolution
|
698 |
|
699 |
`GuzzleHttp\Psr7\UriResolver` provides methods to resolve a URI reference in the context of a base URI according
|
819 |
equivalence or difference of relative references does not mean anything.
|
820 |
|
821 |
|
822 |
+
## Version Guidance
|
823 |
+
|
824 |
+
| Version | Status | PHP Version |
|
825 |
+
|---------|----------------|------------------|
|
826 |
+
| 1.x | Security fixes | >=5.4,<8.1 |
|
827 |
+
| 2.x | Latest | ^7.2.5 \|\| ^8.0 |
|
828 |
+
|
829 |
+
|
830 |
## Security
|
831 |
|
832 |
If you discover a security vulnerability within this package, please send an email to security@tidelift.com. All security vulnerabilities will be promptly addressed. Please do not disclose security-related issues publicly until a fix has been announced. Please see [Security Policy](https://github.com/guzzle/psr7/security/policy) for more information.
|
833 |
|
834 |
+
|
835 |
## License
|
836 |
|
837 |
Guzzle is made available under the MIT License (MIT). Please see [License File](LICENSE) for more information.
|
838 |
|
839 |
+
|
840 |
## For Enterprise
|
841 |
|
842 |
Available as part of the Tidelift Subscription
|
vendor/guzzlehttp/psr7/src/MessageTrait.php
CHANGED
@@ -157,17 +157,22 @@ trait MessageTrait
|
|
157 |
}
|
158 |
}
|
159 |
|
|
|
|
|
|
|
|
|
|
|
160 |
private function normalizeHeaderValue($value)
|
161 |
{
|
162 |
if (!is_array($value)) {
|
163 |
-
return $this->
|
164 |
}
|
165 |
|
166 |
if (count($value) === 0) {
|
167 |
throw new \InvalidArgumentException('Header value can not be an empty array.');
|
168 |
}
|
169 |
|
170 |
-
return $this->
|
171 |
}
|
172 |
|
173 |
/**
|
@@ -178,13 +183,13 @@ trait MessageTrait
|
|
178 |
* header-field = field-name ":" OWS field-value OWS
|
179 |
* OWS = *( SP / HTAB )
|
180 |
*
|
181 |
-
* @param
|
182 |
*
|
183 |
* @return string[] Trimmed header values
|
184 |
*
|
185 |
* @see https://tools.ietf.org/html/rfc7230#section-3.2.4
|
186 |
*/
|
187 |
-
private function
|
188 |
{
|
189 |
return array_map(function ($value) {
|
190 |
if (!is_scalar($value) && null !== $value) {
|
@@ -194,10 +199,20 @@ trait MessageTrait
|
|
194 |
));
|
195 |
}
|
196 |
|
197 |
-
|
|
|
|
|
|
|
198 |
}, array_values($values));
|
199 |
}
|
200 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
private function assertHeader($header)
|
202 |
{
|
203 |
if (!is_string($header)) {
|
@@ -210,5 +225,46 @@ trait MessageTrait
|
|
210 |
if ($header === '') {
|
211 |
throw new \InvalidArgumentException('Header name can not be empty.');
|
212 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
}
|
214 |
}
|
157 |
}
|
158 |
}
|
159 |
|
160 |
+
/**
|
161 |
+
* @param mixed $value
|
162 |
+
*
|
163 |
+
* @return string[]
|
164 |
+
*/
|
165 |
private function normalizeHeaderValue($value)
|
166 |
{
|
167 |
if (!is_array($value)) {
|
168 |
+
return $this->trimAndValidateHeaderValues([$value]);
|
169 |
}
|
170 |
|
171 |
if (count($value) === 0) {
|
172 |
throw new \InvalidArgumentException('Header value can not be an empty array.');
|
173 |
}
|
174 |
|
175 |
+
return $this->trimAndValidateHeaderValues($value);
|
176 |
}
|
177 |
|
178 |
/**
|
183 |
* header-field = field-name ":" OWS field-value OWS
|
184 |
* OWS = *( SP / HTAB )
|
185 |
*
|
186 |
+
* @param mixed[] $values Header values
|
187 |
*
|
188 |
* @return string[] Trimmed header values
|
189 |
*
|
190 |
* @see https://tools.ietf.org/html/rfc7230#section-3.2.4
|
191 |
*/
|
192 |
+
private function trimAndValidateHeaderValues(array $values)
|
193 |
{
|
194 |
return array_map(function ($value) {
|
195 |
if (!is_scalar($value) && null !== $value) {
|
199 |
));
|
200 |
}
|
201 |
|
202 |
+
$trimmed = trim((string) $value, " \t");
|
203 |
+
$this->assertValue($trimmed);
|
204 |
+
|
205 |
+
return $trimmed;
|
206 |
}, array_values($values));
|
207 |
}
|
208 |
|
209 |
+
/**
|
210 |
+
* @see https://tools.ietf.org/html/rfc7230#section-3.2
|
211 |
+
*
|
212 |
+
* @param mixed $header
|
213 |
+
*
|
214 |
+
* @return void
|
215 |
+
*/
|
216 |
private function assertHeader($header)
|
217 |
{
|
218 |
if (!is_string($header)) {
|
225 |
if ($header === '') {
|
226 |
throw new \InvalidArgumentException('Header name can not be empty.');
|
227 |
}
|
228 |
+
|
229 |
+
if (! preg_match('/^[a-zA-Z0-9\'`#$%&*+.^_|~!-]+$/', $header)) {
|
230 |
+
throw new \InvalidArgumentException(
|
231 |
+
sprintf(
|
232 |
+
'"%s" is not valid header name',
|
233 |
+
$header
|
234 |
+
)
|
235 |
+
);
|
236 |
+
}
|
237 |
+
}
|
238 |
+
|
239 |
+
/**
|
240 |
+
* @param string $value
|
241 |
+
*
|
242 |
+
* @return void
|
243 |
+
*
|
244 |
+
* @see https://tools.ietf.org/html/rfc7230#section-3.2
|
245 |
+
*
|
246 |
+
* field-value = *( field-content / obs-fold )
|
247 |
+
* field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
|
248 |
+
* field-vchar = VCHAR / obs-text
|
249 |
+
* VCHAR = %x21-7E
|
250 |
+
* obs-text = %x80-FF
|
251 |
+
* obs-fold = CRLF 1*( SP / HTAB )
|
252 |
+
*/
|
253 |
+
private function assertValue($value)
|
254 |
+
{
|
255 |
+
// The regular expression intentionally does not support the obs-fold production, because as
|
256 |
+
// per RFC 7230#3.2.4:
|
257 |
+
//
|
258 |
+
// A sender MUST NOT generate a message that includes
|
259 |
+
// line folding (i.e., that has any field-value that contains a match to
|
260 |
+
// the obs-fold rule) unless the message is intended for packaging
|
261 |
+
// within the message/http media type.
|
262 |
+
//
|
263 |
+
// Clients must not send a request with line folding and a server sending folded headers is
|
264 |
+
// likely very rare. Line folding is a fairly obscure feature of HTTP/1.1 and thus not accepting
|
265 |
+
// folding is not likely to break any legitimate use case.
|
266 |
+
if (! preg_match('/^[\x20\x09\x21-\x7E\x80-\xFF]*$/', $value)) {
|
267 |
+
throw new \InvalidArgumentException(sprintf('"%s" is not valid header value', $value));
|
268 |
+
}
|
269 |
}
|
270 |
}
|
vendor/guzzlehttp/psr7/src/UriComparator.php
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace GuzzleHttp\Psr7;
|
4 |
+
|
5 |
+
use Psr\Http\Message\UriInterface;
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Provides methods to determine if a modified URL should be considered cross-origin.
|
9 |
+
*
|
10 |
+
* @author Graham Campbell
|
11 |
+
*/
|
12 |
+
final class UriComparator
|
13 |
+
{
|
14 |
+
/**
|
15 |
+
* Determines if a modified URL should be considered cross-origin with
|
16 |
+
* respect to an original URL.
|
17 |
+
*
|
18 |
+
* @return bool
|
19 |
+
*/
|
20 |
+
public static function isCrossOrigin(UriInterface $original, UriInterface $modified)
|
21 |
+
{
|
22 |
+
if (\strcasecmp($original->getHost(), $modified->getHost()) !== 0) {
|
23 |
+
return true;
|
24 |
+
}
|
25 |
+
|
26 |
+
if ($original->getScheme() !== $modified->getScheme()) {
|
27 |
+
return true;
|
28 |
+
}
|
29 |
+
|
30 |
+
if (self::computePort($original) !== self::computePort($modified)) {
|
31 |
+
return true;
|
32 |
+
}
|
33 |
+
|
34 |
+
return false;
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* @return int
|
39 |
+
*/
|
40 |
+
private static function computePort(UriInterface $uri)
|
41 |
+
{
|
42 |
+
$port = $uri->getPort();
|
43 |
+
|
44 |
+
if (null !== $port) {
|
45 |
+
return $port;
|
46 |
+
}
|
47 |
+
|
48 |
+
return 'https' === $uri->getScheme() ? 443 : 80;
|
49 |
+
}
|
50 |
+
|
51 |
+
private function __construct()
|
52 |
+
{
|
53 |
+
// cannot be instantiated
|
54 |
+
}
|
55 |
+
}
|