Plugin Directory

Changeset 3245311


Ignore:
Timestamp:
02/23/2025 09:29:32 PM (14 months ago)
Author:
zefdev
Message:

Add vendor changes

Location:
convoworks-wp/trunk/vendor
Files:
135 added
26 edited

Legend:

Unmodified
Added
Removed
  • convoworks-wp/trunk/vendor/composer/installed.json

    r3204406 r3245311  
    535535        {
    536536            "name": "google\/protobuf",
    537             "version": "v3.25.5",
    538             "version_normalized": "3.25.5.0",
     537            "version": "v3.25.6",
     538            "version_normalized": "3.25.6.0",
    539539            "source": {
    540540                "type": "git",
    541541                "url": "https:\/\/github.com\/protocolbuffers\/protobuf-php.git",
    542                 "reference": "dd2cf3f7b577dced3851c2ea76c3daa9f8aa0ff4"
    543             },
    544             "dist": {
    545                 "type": "zip",
    546                 "url": "https:\/\/api.github.com\/repos\/protocolbuffers\/protobuf-php\/zipball\/dd2cf3f7b577dced3851c2ea76c3daa9f8aa0ff4",
    547                 "reference": "dd2cf3f7b577dced3851c2ea76c3daa9f8aa0ff4",
     542                "reference": "fd843c68d1fb6d2f0010f4157f5febd08b723d6f"
     543            },
     544            "dist": {
     545                "type": "zip",
     546                "url": "https:\/\/api.github.com\/repos\/protocolbuffers\/protobuf-php\/zipball\/fd843c68d1fb6d2f0010f4157f5febd08b723d6f",
     547                "reference": "fd843c68d1fb6d2f0010f4157f5febd08b723d6f",
    548548                "shasum": ""
    549549            },
     
    557557                "ext-bcmath": "Need to support JSON deserialization"
    558558            },
    559             "time": "2024-09-18T22:04:15+00:00",
     559            "time": "2025-01-24T20:17:25+00:00",
    560560            "type": "library",
    561561            "installation-source": "dist",
     
    576576            ],
    577577            "support": {
    578                 "source": "https:\/\/github.com\/protocolbuffers\/protobuf-php\/tree\/v3.25.5"
     578                "source": "https:\/\/github.com\/protocolbuffers\/protobuf-php\/tree\/v3.25.6"
    579579            },
    580580            "install-path": "..\/google\/protobuf"
     
    11291129        {
    11301130            "name": "league\/oauth2-client",
    1131             "version": "2.7.0",
    1132             "version_normalized": "2.7.0.0",
     1131            "version": "2.8.0",
     1132            "version_normalized": "2.8.0.0",
    11331133            "source": {
    11341134                "type": "git",
    11351135                "url": "https:\/\/github.com\/thephpleague\/oauth2-client.git",
    1136                 "reference": "160d6274b03562ebeb55ed18399281d8118b76c8"
    1137             },
    1138             "dist": {
    1139                 "type": "zip",
    1140                 "url": "https:\/\/api.github.com\/repos\/thephpleague\/oauth2-client\/zipball\/160d6274b03562ebeb55ed18399281d8118b76c8",
    1141                 "reference": "160d6274b03562ebeb55ed18399281d8118b76c8",
    1142                 "shasum": ""
    1143             },
    1144             "require": {
    1145                 "guzzlehttp\/guzzle": "^6.0 || ^7.0",
    1146                 "paragonie\/random_compat": "^1 || ^2 || ^9.99",
    1147                 "php": "^5.6 || ^7.0 || ^8.0"
     1136                "reference": "3d5cf8d0543731dfb725ab30e4d7289891991e13"
     1137            },
     1138            "dist": {
     1139                "type": "zip",
     1140                "url": "https:\/\/api.github.com\/repos\/thephpleague\/oauth2-client\/zipball\/3d5cf8d0543731dfb725ab30e4d7289891991e13",
     1141                "reference": "3d5cf8d0543731dfb725ab30e4d7289891991e13",
     1142                "shasum": ""
     1143            },
     1144            "require": {
     1145                "ext-json": "*",
     1146                "guzzlehttp\/guzzle": "^6.5.8 || ^7.4.5",
     1147                "php": "^7.1 || >=8.0.0 <8.5.0"
    11481148            },
    11491149            "require-dev": {
    11501150                "mockery\/mockery": "^1.3.5",
    1151                 "php-parallel-lint\/php-parallel-lint": "^1.3.1",
    1152                 "phpunit\/phpunit": "^5.7 || ^6.0 || ^9.5",
    1153                 "squizlabs\/php_codesniffer": "^2.3 || ^3.0"
    1154             },
    1155             "time": "2023-04-16T18:19:15+00:00",
    1156             "type": "library",
    1157             "extra": {
    1158                 "branch-alias": {
    1159                     "dev-2.x": "2.0.x-dev"
    1160                 }
    1161             },
    1162             "installation-source": "dist",
     1151                "php-parallel-lint\/php-parallel-lint": "^1.4",
     1152                "phpunit\/phpunit": "^7 || ^8 || ^9 || ^10 || ^11",
     1153                "squizlabs\/php_codesniffer": "^3.11"
     1154            },
     1155            "time": "2024-12-11T05:05:52+00:00",
     1156            "type": "library",
     1157            "installation-source": "source",
    11631158            "autoload": {
    11641159                "psr-4": {
     
    11961191            "support": {
    11971192                "issues": "https:\/\/github.com\/thephpleague\/oauth2-client\/issues",
    1198                 "source": "https:\/\/github.com\/thephpleague\/oauth2-client\/tree\/2.7.0"
     1193                "source": "https:\/\/github.com\/thephpleague\/oauth2-client\/tree\/2.8.0"
    11991194            },
    12001195            "install-path": "..\/league\/oauth2-client"
     
    20021997        {
    20031998            "name": "phpseclib\/phpseclib",
    2004             "version": "3.0.42",
    2005             "version_normalized": "3.0.42.0",
     1999            "version": "3.0.43",
     2000            "version_normalized": "3.0.43.0",
    20062001            "source": {
    20072002                "type": "git",
    20082003                "url": "https:\/\/github.com\/phpseclib\/phpseclib.git",
    2009                 "reference": "db92f1b1987b12b13f248fe76c3a52cadb67bb98"
    2010             },
    2011             "dist": {
    2012                 "type": "zip",
    2013                 "url": "https:\/\/api.github.com\/repos\/phpseclib\/phpseclib\/zipball\/db92f1b1987b12b13f248fe76c3a52cadb67bb98",
    2014                 "reference": "db92f1b1987b12b13f248fe76c3a52cadb67bb98",
     2004                "reference": "709ec107af3cb2f385b9617be72af8cf62441d02"
     2005            },
     2006            "dist": {
     2007                "type": "zip",
     2008                "url": "https:\/\/api.github.com\/repos\/phpseclib\/phpseclib\/zipball\/709ec107af3cb2f385b9617be72af8cf62441d02",
     2009                "reference": "709ec107af3cb2f385b9617be72af8cf62441d02",
    20152010                "shasum": ""
    20162011            },
     
    20302025                "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
    20312026            },
    2032             "time": "2024-09-16T03:06:04+00:00",
    2033             "type": "library",
    2034             "installation-source": "dist",
     2027            "time": "2024-12-14T21:12:59+00:00",
     2028            "type": "library",
     2029            "installation-source": "source",
    20352030            "autoload": {
    20362031                "files": [
     
    20952090            "support": {
    20962091                "issues": "https:\/\/github.com\/phpseclib\/phpseclib\/issues",
    2097                 "source": "https:\/\/github.com\/phpseclib\/phpseclib\/tree\/3.0.42"
     2092                "source": "https:\/\/github.com\/phpseclib\/phpseclib\/tree\/3.0.43"
    20982093            },
    20992094            "funding": [
     
    37473742        {
    37483743            "name": "zef-dev\/convoworks-core",
    3749             "version": "0.22.31",
    3750             "version_normalized": "0.22.31.0",
     3744            "version": "0.22.32",
     3745            "version_normalized": "0.22.32.0",
    37513746            "source": {
    37523747                "type": "git",
    37533748                "url": "https:\/\/github.com\/zef-dev\/convoworks-core.git",
    3754                 "reference": "92082490e913d496b1b950374d86663f79e24b44"
    3755             },
    3756             "dist": {
    3757                 "type": "zip",
    3758                 "url": "https:\/\/api.github.com\/repos\/zef-dev\/convoworks-core\/zipball\/92082490e913d496b1b950374d86663f79e24b44",
    3759                 "reference": "92082490e913d496b1b950374d86663f79e24b44",
     3749                "reference": "4f399477c764226bcd99163dccbcc6eee7f996d5"
     3750            },
     3751            "dist": {
     3752                "type": "zip",
     3753                "url": "https:\/\/api.github.com\/repos\/zef-dev\/convoworks-core\/zipball\/4f399477c764226bcd99163dccbcc6eee7f996d5",
     3754                "reference": "4f399477c764226bcd99163dccbcc6eee7f996d5",
    37603755                "shasum": ""
    37613756            },
     
    37833778                "zef-dev\/convoworks-guzzle": "^1.2"
    37843779            },
    3785             "time": "2024-12-07T20:57:30+00:00",
     3780            "time": "2025-02-23T20:24:27+00:00",
    37863781            "type": "library",
    37873782            "installation-source": "dist",
     
    38083803            "support": {
    38093804                "issues": "https:\/\/github.com\/zef-dev\/convoworks-core\/issues",
    3810                 "source": "https:\/\/github.com\/zef-dev\/convoworks-core\/tree\/0.22.31"
     3805                "source": "https:\/\/github.com\/zef-dev\/convoworks-core\/tree\/0.22.32"
    38113806            },
    38123807            "install-path": "..\/zef-dev\/convoworks-core"
  • convoworks-wp/trunk/vendor/composer/installed.php

    r3204406 r3245311  
    33namespace Convoworks;
    44
    5 return array('root' => array('name' => 'convowp/convowp-plugin', 'pretty_version' => 'dev-develop', 'version' => 'dev-develop', 'reference' => 'b30bd96c8dc0296643d5b5189b5546090bfad1e9', 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \true), 'versions' => array('codeforest/wp-rest-starter' => array('pretty_version' => 'v4.0', 'version' => '4.0.0.0', 'reference' => '95fa3dc7280ef728a2cdcc387eeac9f330e088da', 'type' => 'library', 'install_path' => __DIR__ . '/../codeforest/wp-rest-starter', 'aliases' => array(), 'dev_requirement' => \false), 'convowp/convowp-plugin' => array('pretty_version' => 'dev-develop', 'version' => 'dev-develop', 'reference' => 'b30bd96c8dc0296643d5b5189b5546090bfad1e9', 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'facebook/graph-sdk' => array('pretty_version' => '5.7.0', 'version' => '5.7.0.0', 'reference' => '2d8250638b33d73e7a87add65f47fabf91f8ad9b', 'type' => 'library', 'install_path' => __DIR__ . '/../facebook/graph-sdk', 'aliases' => array(), 'dev_requirement' => \false), 'firebase/php-jwt' => array('pretty_version' => 'v6.4.0', 'version' => '6.4.0.0', 'reference' => '4dd1e007f22a927ac77da5a3fbb067b42d3bc224', 'type' => 'library', 'install_path' => __DIR__ . '/../firebase/php-jwt', 'aliases' => array(), 'dev_requirement' => \false), 'google/auth' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => 'f1f0d0319e2e7750ebfaa523c78819792a9ed9f7', 'type' => 'library', 'install_path' => __DIR__ . '/../google/auth', 'aliases' => array(), 'dev_requirement' => \false), 'google/cloud-dialogflow' => array('pretty_version' => 'v0.17.4', 'version' => '0.17.4.0', 'reference' => '1f22880b034fb9df8bda41b56542e0e11aee90f0', 'type' => 'library', 'install_path' => __DIR__ . '/../google/cloud-dialogflow', 'aliases' => array(), 'dev_requirement' => \false), 'google/common-protos' => array('pretty_version' => 'v3.2.0', 'version' => '3.2.0.0', 'reference' => '57d4ad36cc48cc0369123042908013ef2a86bb98', 'type' => 'library', 'install_path' => __DIR__ . '/../google/common-protos', 'aliases' => array(), 'dev_requirement' => \false), 'google/gax' => array('pretty_version' => 'v1.19.1', 'version' => '1.19.1.0', 'reference' => '30f6b307faa9858bf58d967664467098dbbc354f', 'type' => 'library', 'install_path' => __DIR__ . '/../google/gax', 'aliases' => array(), 'dev_requirement' => \false), 'google/grpc-gcp' => array('pretty_version' => 'v0.2.1', 'version' => '0.2.1.0', 'reference' => '899d0112812a812df7692617a59f4076f0d01719', 'type' => 'library', 'install_path' => __DIR__ . '/../google/grpc-gcp', 'aliases' => array(), 'dev_requirement' => \false), 'google/longrunning' => array('pretty_version' => 'v0.2.6', 'version' => '0.2.6.0', 'reference' => '9689b4db54cf4cf8186118d9d59aa9ba35bb5842', 'type' => 'library', 'install_path' => __DIR__ . '/../google/longrunning', 'aliases' => array(), 'dev_requirement' => \false), 'google/protobuf' => array('pretty_version' => 'v3.25.5', 'version' => '3.25.5.0', 'reference' => 'dd2cf3f7b577dced3851c2ea76c3daa9f8aa0ff4', 'type' => 'library', 'install_path' => __DIR__ . '/../google/protobuf', 'aliases' => array(), 'dev_requirement' => \false), 'grpc/grpc' => array('pretty_version' => '1.57.0', 'version' => '1.57.0.0', 'reference' => 'b610c42022ed3a22f831439cb93802f2a4502fdf', 'type' => 'library', 'install_path' => __DIR__ . '/../grpc/grpc', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/guzzle' => array('pretty_version' => '7.8.2', 'version' => '7.8.2.0', 'reference' => 'f4152d9eb85c445fe1f992001d1748e8bec070d2', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/guzzle', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/promises' => array('pretty_version' => '1.5.3', 'version' => '1.5.3.0', 'reference' => '67ab6e18aaa14d753cc148911d273f6e6cb6721e', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/promises', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/psr7' => array('pretty_version' => '1.9.1', 'version' => '1.9.1.0', 'reference' => 'e4490cabc77465aaee90b20cfc9a770f8c04be6b', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/psr7', 'aliases' => array(), 'dev_requirement' => \false), 'http-interop/http-factory-guzzle' => array('pretty_version' => '1.1.1', 'version' => '1.1.1.0', 'reference' => '6e1efa1e020bf1c47cf0f13654e8ef9efb1463b3', 'type' => 'library', 'install_path' => __DIR__ . '/../http-interop/http-factory-guzzle', 'aliases' => array(), 'dev_requirement' => \false), 'influendo/influendo-support' => array('pretty_version' => 'v1.0.8', 'version' => '1.0.8.0', 'reference' => 'c926f3c65a59148771813e4293cd034a346080b4', 'type' => 'library', 'install_path' => __DIR__ . '/../influendo/influendo-support', 'aliases' => array(), 'dev_requirement' => \false), 'league/html-to-markdown' => array('pretty_version' => '5.1.1', 'version' => '5.1.1.0', 'reference' => '0b4066eede55c48f38bcee4fb8f0aa85654390fd', 'type' => 'library', 'install_path' => __DIR__ . '/../league/html-to-markdown', 'aliases' => array(), 'dev_requirement' => \false), 'league/oauth2-client' => array('pretty_version' => '2.7.0', 'version' => '2.7.0.0', 'reference' => '160d6274b03562ebeb55ed18399281d8118b76c8', 'type' => 'library', 'install_path' => __DIR__ . '/../league/oauth2-client', 'aliases' => array(), 'dev_requirement' => \false), 'league/plates' => array('pretty_version' => 'v3.5.0', 'version' => '3.5.0.0', 'reference' => 'a6a3238e46c6e19af7318fdc36bfbe49b0620231', 'type' => 'library', 'install_path' => __DIR__ . '/../league/plates', 'aliases' => array(), 'dev_requirement' => \false), 'luchianenco/oauth2-amazon' => array('pretty_version' => '1.1.2', 'version' => '1.1.2.0', 'reference' => '39237eba4314c4a34e473bb5040c255af5350d8f', 'type' => 'library', 'install_path' => __DIR__ . '/../luchianenco/oauth2-amazon', 'aliases' => array(), 'dev_requirement' => \false), 'middlewares/cors' => array('pretty_version' => 'v1.1.0', 'version' => '1.1.0.0', 'reference' => '1de4dae37d439cdf3f046e0b69427076d54d0e16', 'type' => 'library', 'install_path' => __DIR__ . '/../middlewares/cors', 'aliases' => array(), 'dev_requirement' => \false), 'middlewares/encoder' => array('pretty_version' => 'v1.1.0', 'version' => '1.1.0.0', 'reference' => 'ad441db951a6a60e1a5c2dd7e0e7519044acde90', 'type' => 'library', 'install_path' => __DIR__ . '/../middlewares/encoder', 'aliases' => array(), 'dev_requirement' => \false), 'middlewares/http-authentication' => array('pretty_version' => 'v1.1.0', 'version' => '1.1.0.0', 'reference' => '4f719e5205c9d0fb96bf7971379caf5fbbc6b89f', 'type' => 'library', 'install_path' => __DIR__ . '/../middlewares/http-authentication', 'aliases' => array(), 'dev_requirement' => \false), 'middlewares/trailing-slash' => array('pretty_version' => 'v1.1.0', 'version' => '1.1.0.0', 'reference' => 'b0beed466bc0ac7b9ff87a2a06ab74ce793e9d76', 'type' => 'library', 'install_path' => __DIR__ . '/../middlewares/trailing-slash', 'aliases' => array(), 'dev_requirement' => \false), 'middlewares/utils' => array('pretty_version' => 'v2.2.0', 'version' => '2.2.0.0', 'reference' => '7dc49454b4fbf249226023c7b77658b6068abfbc', 'type' => 'library', 'install_path' => __DIR__ . '/../middlewares/utils', 'aliases' => array(), 'dev_requirement' => \false), 'monolog/monolog' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c861fcba2ca29404dc9e617eedd9eff4616986b8', 'type' => 'library', 'install_path' => __DIR__ . '/../monolog/monolog', 'aliases' => array(), 'dev_requirement' => \false), 'neomerx/cors-psr7' => array('pretty_version' => 'v1.0.13', 'version' => '1.0.13.0', 'reference' => '2556e2013f16a55532c95928455257d5b6bbc6e2', 'type' => 'library', 'install_path' => __DIR__ . '/../neomerx/cors-psr7', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v3.1.5', 'version' => '3.1.5.0', 'reference' => 'bb87e28e7d7b8d9a7fda231d37457c9210faf6ce', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'paragonie/constant_time_encoding' => array('pretty_version' => 'v2.7.0', 'version' => '2.7.0.0', 'reference' => '52a0d99e69f56b9ec27ace92ba56897fe6993105', 'type' => 'library', 'install_path' => __DIR__ . '/../paragonie/constant_time_encoding', 'aliases' => array(), 'dev_requirement' => \false), 'paragonie/random_compat' => array('pretty_version' => 'v9.99.100', 'version' => '9.99.100.0', 'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a', 'type' => 'library', 'install_path' => __DIR__ . '/../paragonie/random_compat', 'aliases' => array(), 'dev_requirement' => \false), 'phpseclib/bcmath_compat' => array('pretty_version' => '2.0.3', 'version' => '2.0.3.0', 'reference' => 'ae8f87ea0c96b2ef08ecf0d291d45372d0f7bc5a', 'type' => 'library', 'install_path' => __DIR__ . '/../phpseclib/bcmath_compat', 'aliases' => array(), 'dev_requirement' => \false), 'phpseclib/phpseclib' => array('pretty_version' => '3.0.42', 'version' => '3.0.42.0', 'reference' => 'db92f1b1987b12b13f248fe76c3a52cadb67bb98', 'type' => 'library', 'install_path' => __DIR__ . '/../phpseclib/phpseclib', 'aliases' => array(), 'dev_requirement' => \false), 'psr/cache' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/cache', 'aliases' => array(), 'dev_requirement' => \false), 'psr/cache-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0')), 'psr/container' => array('pretty_version' => '1.1.1', 'version' => '1.1.1.0', 'reference' => '8622567409010282b7aeebe4bb841fe98b58dcaf', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/event-dispatcher' => array('pretty_version' => '1.0.0', 'version' => '1.0.0.0', 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/event-dispatcher', 'aliases' => array(), 'dev_requirement' => \false), 'psr/event-dispatcher-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/http-client' => array('pretty_version' => '1.0.3', 'version' => '1.0.3.0', 'reference' => 'bb5906edc1c324c9a05aa0873d40117941e5fa90', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-client', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-client-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/http-factory' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => '2b4765fddfe3b508ac62f829e852b1501d3f6e8a', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-factory', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-factory-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '^1.0')), 'psr/http-message' => array('pretty_version' => '1.1', 'version' => '1.1.0.0', 'reference' => 'cb6ce4845ce34a8ad9e68117c10ee90a29919eba', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/http-server-handler' => array('pretty_version' => '1.0.2', 'version' => '1.0.2.0', 'reference' => '84c4fb66179be4caaf8e97bd239203245302e7d4', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-server-handler', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-server-middleware' => array('pretty_version' => '1.0.2', 'version' => '1.0.2.0', 'reference' => 'c1481f747daaa6a0782775cd6a8c26a1bf4a3829', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-server-middleware', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log' => array('pretty_version' => '1.1.4', 'version' => '1.1.4.0', 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0.0')), 'psr/simple-cache' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'psr/simple-cache-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0')), 'ralouphie/getallheaders' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => '120b605dfeb996808c31b6477290a714d356e822', 'type' => 'library', 'install_path' => __DIR__ . '/../ralouphie/getallheaders', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/cache' => array('pretty_version' => 'v5.4.46', 'version' => '5.4.46.0', 'reference' => '0fe08ee32cec2748fbfea10c52d3ee02049e0f6b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/cache', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/cache-contracts' => array('pretty_version' => 'v2.5.4', 'version' => '2.5.4.0', 'reference' => '517c3a3619dadfa6952c4651767fcadffb4df65e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/cache-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/cache-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0')), 'symfony/dependency-injection' => array('pretty_version' => 'v5.4.48', 'version' => '5.4.48.0', 'reference' => 'e5ca16dee39ef7d63e552ff0bf0a2526a1142c92', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/dependency-injection', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v2.5.4', 'version' => '2.5.4.0', 'reference' => '605389f2a7e5625f273b53960dc46aeaf9c62918', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/event-dispatcher' => array('pretty_version' => 'v5.4.45', 'version' => '5.4.45.0', 'reference' => '72982eb416f61003e9bb6e91f8b3213600dcf9e9', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/event-dispatcher', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/event-dispatcher-contracts' => array('pretty_version' => 'v2.5.4', 'version' => '2.5.4.0', 'reference' => 'e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/event-dispatcher-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/event-dispatcher-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '2.0')), 'symfony/expression-language' => array('pretty_version' => 'v5.4.45', 'version' => '5.4.45.0', 'reference' => 'a784b66edc4c151eb05076d04707906ee2c209a9', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/expression-language', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php73' => array('pretty_version' => 'v1.31.0', 'version' => '1.31.0.0', 'reference' => '0f68c03565dcaaf25a890667542e8bd75fe7e5bb', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php73', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'v1.31.0', 'version' => '1.31.0.0', 'reference' => '60328e362d4c2c802a54fcbf04f9d3fb892b4cf8', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php81' => array('pretty_version' => 'v1.31.0', 'version' => '1.31.0.0', 'reference' => '4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php81', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v2.4.1', 'version' => '2.4.1.0', 'reference' => 'd664541b99d6fb0247ec5ff32e87238582236204', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0')), 'symfony/var-exporter' => array('pretty_version' => 'v5.4.45', 'version' => '5.4.45.0', 'reference' => '862700068db0ddfd8c5b850671e029a90246ec75', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/var-exporter', 'aliases' => array(), 'dev_requirement' => \false), 'wapmorgan/mp3info' => array('pretty_version' => '0.0.8', 'version' => '0.0.8.0', 'reference' => '13d1c142a75ca5bf63dd29d706c9a93d8436dbcb', 'type' => 'library', 'install_path' => __DIR__ . '/../wapmorgan/mp3info', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/convoworks-core' => array('pretty_version' => '0.22.31', 'version' => '0.22.31.0', 'reference' => '92082490e913d496b1b950374d86663f79e24b44', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/convoworks-core', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/convoworks-guzzle' => array('pretty_version' => '1.2.0', 'version' => '1.2.0.0', 'reference' => '4f91f4637e1a2cf6de21cee83887b5b314ea42b5', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/convoworks-guzzle', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/convoworks-pckg-appointments' => array('pretty_version' => '1.4.0', 'version' => '1.4.0.0', 'reference' => 'd842d6726b841df72508bd5bbba3badd312ff4f0', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/convoworks-pckg-appointments', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/convoworks-pckg-filesystem' => array('pretty_version' => '1.2.1', 'version' => '1.2.1.0', 'reference' => '4d755eb2b098f2f20c53c57223cbb316ad03c914', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/convoworks-pckg-filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/convoworks-pckg-forms' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => '8f1d658d084770e74c7622558f7150599bbe2efc', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/convoworks-pckg-forms', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/convoworks-pckg-mysqli' => array('pretty_version' => '1.0.6', 'version' => '1.0.6.0', 'reference' => 'a8b86f67838bab1eb0fdcc96db7e91cdfa7f6e11', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/convoworks-pckg-mysqli', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/convoworks-pckg-trivia' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => '98e7cde6573612ef620453afd1b282319d6ad971', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/convoworks-pckg-trivia', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/zef-expression-language' => array('pretty_version' => '1.4.0', 'version' => '1.4.0.0', 'reference' => '06a988f45337d60126870c5f54a5429547460d7e', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/zef-expression-language', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/zef-monolog-formatter' => array('pretty_version' => '1.0.0', 'version' => '1.0.0.0', 'reference' => '73c42d9beaf0939094b54b009c424fb5a94b9cdb', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/zef-monolog-formatter', 'aliases' => array(), 'dev_requirement' => \false)));
     5return array('root' => array('name' => 'convowp/convowp-plugin', 'pretty_version' => 'dev-develop', 'version' => 'dev-develop', 'reference' => '9cbcf3be4ec77197b86f2e1efe58b33ff42be8ed', 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \true), 'versions' => array('codeforest/wp-rest-starter' => array('pretty_version' => 'v4.0', 'version' => '4.0.0.0', 'reference' => '95fa3dc7280ef728a2cdcc387eeac9f330e088da', 'type' => 'library', 'install_path' => __DIR__ . '/../codeforest/wp-rest-starter', 'aliases' => array(), 'dev_requirement' => \false), 'convowp/convowp-plugin' => array('pretty_version' => 'dev-develop', 'version' => 'dev-develop', 'reference' => '9cbcf3be4ec77197b86f2e1efe58b33ff42be8ed', 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'facebook/graph-sdk' => array('pretty_version' => '5.7.0', 'version' => '5.7.0.0', 'reference' => '2d8250638b33d73e7a87add65f47fabf91f8ad9b', 'type' => 'library', 'install_path' => __DIR__ . '/../facebook/graph-sdk', 'aliases' => array(), 'dev_requirement' => \false), 'firebase/php-jwt' => array('pretty_version' => 'v6.4.0', 'version' => '6.4.0.0', 'reference' => '4dd1e007f22a927ac77da5a3fbb067b42d3bc224', 'type' => 'library', 'install_path' => __DIR__ . '/../firebase/php-jwt', 'aliases' => array(), 'dev_requirement' => \false), 'google/auth' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => 'f1f0d0319e2e7750ebfaa523c78819792a9ed9f7', 'type' => 'library', 'install_path' => __DIR__ . '/../google/auth', 'aliases' => array(), 'dev_requirement' => \false), 'google/cloud-dialogflow' => array('pretty_version' => 'v0.17.4', 'version' => '0.17.4.0', 'reference' => '1f22880b034fb9df8bda41b56542e0e11aee90f0', 'type' => 'library', 'install_path' => __DIR__ . '/../google/cloud-dialogflow', 'aliases' => array(), 'dev_requirement' => \false), 'google/common-protos' => array('pretty_version' => 'v3.2.0', 'version' => '3.2.0.0', 'reference' => '57d4ad36cc48cc0369123042908013ef2a86bb98', 'type' => 'library', 'install_path' => __DIR__ . '/../google/common-protos', 'aliases' => array(), 'dev_requirement' => \false), 'google/gax' => array('pretty_version' => 'v1.19.1', 'version' => '1.19.1.0', 'reference' => '30f6b307faa9858bf58d967664467098dbbc354f', 'type' => 'library', 'install_path' => __DIR__ . '/../google/gax', 'aliases' => array(), 'dev_requirement' => \false), 'google/grpc-gcp' => array('pretty_version' => 'v0.2.1', 'version' => '0.2.1.0', 'reference' => '899d0112812a812df7692617a59f4076f0d01719', 'type' => 'library', 'install_path' => __DIR__ . '/../google/grpc-gcp', 'aliases' => array(), 'dev_requirement' => \false), 'google/longrunning' => array('pretty_version' => 'v0.2.6', 'version' => '0.2.6.0', 'reference' => '9689b4db54cf4cf8186118d9d59aa9ba35bb5842', 'type' => 'library', 'install_path' => __DIR__ . '/../google/longrunning', 'aliases' => array(), 'dev_requirement' => \false), 'google/protobuf' => array('pretty_version' => 'v3.25.6', 'version' => '3.25.6.0', 'reference' => 'fd843c68d1fb6d2f0010f4157f5febd08b723d6f', 'type' => 'library', 'install_path' => __DIR__ . '/../google/protobuf', 'aliases' => array(), 'dev_requirement' => \false), 'grpc/grpc' => array('pretty_version' => '1.57.0', 'version' => '1.57.0.0', 'reference' => 'b610c42022ed3a22f831439cb93802f2a4502fdf', 'type' => 'library', 'install_path' => __DIR__ . '/../grpc/grpc', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/guzzle' => array('pretty_version' => '7.8.2', 'version' => '7.8.2.0', 'reference' => 'f4152d9eb85c445fe1f992001d1748e8bec070d2', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/guzzle', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/promises' => array('pretty_version' => '1.5.3', 'version' => '1.5.3.0', 'reference' => '67ab6e18aaa14d753cc148911d273f6e6cb6721e', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/promises', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/psr7' => array('pretty_version' => '1.9.1', 'version' => '1.9.1.0', 'reference' => 'e4490cabc77465aaee90b20cfc9a770f8c04be6b', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/psr7', 'aliases' => array(), 'dev_requirement' => \false), 'http-interop/http-factory-guzzle' => array('pretty_version' => '1.1.1', 'version' => '1.1.1.0', 'reference' => '6e1efa1e020bf1c47cf0f13654e8ef9efb1463b3', 'type' => 'library', 'install_path' => __DIR__ . '/../http-interop/http-factory-guzzle', 'aliases' => array(), 'dev_requirement' => \false), 'influendo/influendo-support' => array('pretty_version' => 'v1.0.8', 'version' => '1.0.8.0', 'reference' => 'c926f3c65a59148771813e4293cd034a346080b4', 'type' => 'library', 'install_path' => __DIR__ . '/../influendo/influendo-support', 'aliases' => array(), 'dev_requirement' => \false), 'league/html-to-markdown' => array('pretty_version' => '5.1.1', 'version' => '5.1.1.0', 'reference' => '0b4066eede55c48f38bcee4fb8f0aa85654390fd', 'type' => 'library', 'install_path' => __DIR__ . '/../league/html-to-markdown', 'aliases' => array(), 'dev_requirement' => \false), 'league/oauth2-client' => array('pretty_version' => '2.8.0', 'version' => '2.8.0.0', 'reference' => '3d5cf8d0543731dfb725ab30e4d7289891991e13', 'type' => 'library', 'install_path' => __DIR__ . '/../league/oauth2-client', 'aliases' => array(), 'dev_requirement' => \false), 'league/plates' => array('pretty_version' => 'v3.5.0', 'version' => '3.5.0.0', 'reference' => 'a6a3238e46c6e19af7318fdc36bfbe49b0620231', 'type' => 'library', 'install_path' => __DIR__ . '/../league/plates', 'aliases' => array(), 'dev_requirement' => \false), 'luchianenco/oauth2-amazon' => array('pretty_version' => '1.1.2', 'version' => '1.1.2.0', 'reference' => '39237eba4314c4a34e473bb5040c255af5350d8f', 'type' => 'library', 'install_path' => __DIR__ . '/../luchianenco/oauth2-amazon', 'aliases' => array(), 'dev_requirement' => \false), 'middlewares/cors' => array('pretty_version' => 'v1.1.0', 'version' => '1.1.0.0', 'reference' => '1de4dae37d439cdf3f046e0b69427076d54d0e16', 'type' => 'library', 'install_path' => __DIR__ . '/../middlewares/cors', 'aliases' => array(), 'dev_requirement' => \false), 'middlewares/encoder' => array('pretty_version' => 'v1.1.0', 'version' => '1.1.0.0', 'reference' => 'ad441db951a6a60e1a5c2dd7e0e7519044acde90', 'type' => 'library', 'install_path' => __DIR__ . '/../middlewares/encoder', 'aliases' => array(), 'dev_requirement' => \false), 'middlewares/http-authentication' => array('pretty_version' => 'v1.1.0', 'version' => '1.1.0.0', 'reference' => '4f719e5205c9d0fb96bf7971379caf5fbbc6b89f', 'type' => 'library', 'install_path' => __DIR__ . '/../middlewares/http-authentication', 'aliases' => array(), 'dev_requirement' => \false), 'middlewares/trailing-slash' => array('pretty_version' => 'v1.1.0', 'version' => '1.1.0.0', 'reference' => 'b0beed466bc0ac7b9ff87a2a06ab74ce793e9d76', 'type' => 'library', 'install_path' => __DIR__ . '/../middlewares/trailing-slash', 'aliases' => array(), 'dev_requirement' => \false), 'middlewares/utils' => array('pretty_version' => 'v2.2.0', 'version' => '2.2.0.0', 'reference' => '7dc49454b4fbf249226023c7b77658b6068abfbc', 'type' => 'library', 'install_path' => __DIR__ . '/../middlewares/utils', 'aliases' => array(), 'dev_requirement' => \false), 'monolog/monolog' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c861fcba2ca29404dc9e617eedd9eff4616986b8', 'type' => 'library', 'install_path' => __DIR__ . '/../monolog/monolog', 'aliases' => array(), 'dev_requirement' => \false), 'neomerx/cors-psr7' => array('pretty_version' => 'v1.0.13', 'version' => '1.0.13.0', 'reference' => '2556e2013f16a55532c95928455257d5b6bbc6e2', 'type' => 'library', 'install_path' => __DIR__ . '/../neomerx/cors-psr7', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v3.1.5', 'version' => '3.1.5.0', 'reference' => 'bb87e28e7d7b8d9a7fda231d37457c9210faf6ce', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'paragonie/constant_time_encoding' => array('pretty_version' => 'v2.7.0', 'version' => '2.7.0.0', 'reference' => '52a0d99e69f56b9ec27ace92ba56897fe6993105', 'type' => 'library', 'install_path' => __DIR__ . '/../paragonie/constant_time_encoding', 'aliases' => array(), 'dev_requirement' => \false), 'paragonie/random_compat' => array('pretty_version' => 'v9.99.100', 'version' => '9.99.100.0', 'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a', 'type' => 'library', 'install_path' => __DIR__ . '/../paragonie/random_compat', 'aliases' => array(), 'dev_requirement' => \false), 'phpseclib/bcmath_compat' => array('pretty_version' => '2.0.3', 'version' => '2.0.3.0', 'reference' => 'ae8f87ea0c96b2ef08ecf0d291d45372d0f7bc5a', 'type' => 'library', 'install_path' => __DIR__ . '/../phpseclib/bcmath_compat', 'aliases' => array(), 'dev_requirement' => \false), 'phpseclib/phpseclib' => array('pretty_version' => '3.0.43', 'version' => '3.0.43.0', 'reference' => '709ec107af3cb2f385b9617be72af8cf62441d02', 'type' => 'library', 'install_path' => __DIR__ . '/../phpseclib/phpseclib', 'aliases' => array(), 'dev_requirement' => \false), 'psr/cache' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/cache', 'aliases' => array(), 'dev_requirement' => \false), 'psr/cache-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0')), 'psr/container' => array('pretty_version' => '1.1.1', 'version' => '1.1.1.0', 'reference' => '8622567409010282b7aeebe4bb841fe98b58dcaf', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/event-dispatcher' => array('pretty_version' => '1.0.0', 'version' => '1.0.0.0', 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/event-dispatcher', 'aliases' => array(), 'dev_requirement' => \false), 'psr/event-dispatcher-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/http-client' => array('pretty_version' => '1.0.3', 'version' => '1.0.3.0', 'reference' => 'bb5906edc1c324c9a05aa0873d40117941e5fa90', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-client', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-client-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/http-factory' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => '2b4765fddfe3b508ac62f829e852b1501d3f6e8a', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-factory', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-factory-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '^1.0')), 'psr/http-message' => array('pretty_version' => '1.1', 'version' => '1.1.0.0', 'reference' => 'cb6ce4845ce34a8ad9e68117c10ee90a29919eba', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/http-server-handler' => array('pretty_version' => '1.0.2', 'version' => '1.0.2.0', 'reference' => '84c4fb66179be4caaf8e97bd239203245302e7d4', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-server-handler', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-server-middleware' => array('pretty_version' => '1.0.2', 'version' => '1.0.2.0', 'reference' => 'c1481f747daaa6a0782775cd6a8c26a1bf4a3829', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-server-middleware', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log' => array('pretty_version' => '1.1.4', 'version' => '1.1.4.0', 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0.0')), 'psr/simple-cache' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'psr/simple-cache-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0')), 'ralouphie/getallheaders' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => '120b605dfeb996808c31b6477290a714d356e822', 'type' => 'library', 'install_path' => __DIR__ . '/../ralouphie/getallheaders', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/cache' => array('pretty_version' => 'v5.4.46', 'version' => '5.4.46.0', 'reference' => '0fe08ee32cec2748fbfea10c52d3ee02049e0f6b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/cache', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/cache-contracts' => array('pretty_version' => 'v2.5.4', 'version' => '2.5.4.0', 'reference' => '517c3a3619dadfa6952c4651767fcadffb4df65e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/cache-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/cache-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0')), 'symfony/dependency-injection' => array('pretty_version' => 'v5.4.48', 'version' => '5.4.48.0', 'reference' => 'e5ca16dee39ef7d63e552ff0bf0a2526a1142c92', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/dependency-injection', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v2.5.4', 'version' => '2.5.4.0', 'reference' => '605389f2a7e5625f273b53960dc46aeaf9c62918', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/event-dispatcher' => array('pretty_version' => 'v5.4.45', 'version' => '5.4.45.0', 'reference' => '72982eb416f61003e9bb6e91f8b3213600dcf9e9', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/event-dispatcher', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/event-dispatcher-contracts' => array('pretty_version' => 'v2.5.4', 'version' => '2.5.4.0', 'reference' => 'e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/event-dispatcher-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/event-dispatcher-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '2.0')), 'symfony/expression-language' => array('pretty_version' => 'v5.4.45', 'version' => '5.4.45.0', 'reference' => 'a784b66edc4c151eb05076d04707906ee2c209a9', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/expression-language', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php73' => array('pretty_version' => 'v1.31.0', 'version' => '1.31.0.0', 'reference' => '0f68c03565dcaaf25a890667542e8bd75fe7e5bb', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php73', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'v1.31.0', 'version' => '1.31.0.0', 'reference' => '60328e362d4c2c802a54fcbf04f9d3fb892b4cf8', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php81' => array('pretty_version' => 'v1.31.0', 'version' => '1.31.0.0', 'reference' => '4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php81', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v2.4.1', 'version' => '2.4.1.0', 'reference' => 'd664541b99d6fb0247ec5ff32e87238582236204', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0')), 'symfony/var-exporter' => array('pretty_version' => 'v5.4.45', 'version' => '5.4.45.0', 'reference' => '862700068db0ddfd8c5b850671e029a90246ec75', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/var-exporter', 'aliases' => array(), 'dev_requirement' => \false), 'wapmorgan/mp3info' => array('pretty_version' => '0.0.8', 'version' => '0.0.8.0', 'reference' => '13d1c142a75ca5bf63dd29d706c9a93d8436dbcb', 'type' => 'library', 'install_path' => __DIR__ . '/../wapmorgan/mp3info', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/convoworks-core' => array('pretty_version' => '0.22.32', 'version' => '0.22.32.0', 'reference' => '4f399477c764226bcd99163dccbcc6eee7f996d5', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/convoworks-core', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/convoworks-guzzle' => array('pretty_version' => '1.2.0', 'version' => '1.2.0.0', 'reference' => '4f91f4637e1a2cf6de21cee83887b5b314ea42b5', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/convoworks-guzzle', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/convoworks-pckg-appointments' => array('pretty_version' => '1.4.0', 'version' => '1.4.0.0', 'reference' => 'd842d6726b841df72508bd5bbba3badd312ff4f0', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/convoworks-pckg-appointments', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/convoworks-pckg-filesystem' => array('pretty_version' => '1.2.1', 'version' => '1.2.1.0', 'reference' => '4d755eb2b098f2f20c53c57223cbb316ad03c914', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/convoworks-pckg-filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/convoworks-pckg-forms' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => '8f1d658d084770e74c7622558f7150599bbe2efc', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/convoworks-pckg-forms', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/convoworks-pckg-mysqli' => array('pretty_version' => '1.0.6', 'version' => '1.0.6.0', 'reference' => 'a8b86f67838bab1eb0fdcc96db7e91cdfa7f6e11', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/convoworks-pckg-mysqli', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/convoworks-pckg-trivia' => array('pretty_version' => '1.3.0', 'version' => '1.3.0.0', 'reference' => '98e7cde6573612ef620453afd1b282319d6ad971', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/convoworks-pckg-trivia', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/zef-expression-language' => array('pretty_version' => '1.4.0', 'version' => '1.4.0.0', 'reference' => '06a988f45337d60126870c5f54a5429547460d7e', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/zef-expression-language', 'aliases' => array(), 'dev_requirement' => \false), 'zef-dev/zef-monolog-formatter' => array('pretty_version' => '1.0.0', 'version' => '1.0.0.0', 'reference' => '73c42d9beaf0939094b54b009c424fb5a94b9cdb', 'type' => 'library', 'install_path' => __DIR__ . '/../zef-dev/zef-monolog-formatter', 'aliases' => array(), 'dev_requirement' => \false)));
  • convoworks-wp/trunk/vendor/league/oauth2-client/README.md

    r2907377 r3245311  
    2525We support the following versions of PHP:
    2626
     27* PHP 8.4
     28* PHP 8.3
     29* PHP 8.2
    2730* PHP 8.1
    2831* PHP 8.0
     
    3134* PHP 7.2
    3235* PHP 7.1
    33 * PHP 7.0
    34 * PHP 5.6
    3536
    3637## Provider Clients
  • convoworks-wp/trunk/vendor/league/oauth2-client/composer.json

    r2895245 r3245311  
    77    },
    88    "require": {
    9         "php": "^5.6 || ^7.0 || ^8.0",
    10         "guzzlehttp/guzzle": "^6.0 || ^7.0",
    11         "paragonie/random_compat": "^1 || ^2 || ^9.99"
     9        "php": "^7.1 || >=8.0.0 <8.5.0",
     10        "ext-json": "*",
     11        "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5"
    1212    },
    1313    "require-dev": {
    1414        "mockery/mockery": "^1.3.5",
    15         "php-parallel-lint/php-parallel-lint": "^1.3.1",
    16         "phpunit/phpunit": "^5.7 || ^6.0 || ^9.5",
    17         "squizlabs/php_codesniffer": "^2.3 || ^3.0"
     15        "php-parallel-lint/php-parallel-lint": "^1.4",
     16        "phpunit/phpunit": "^7 || ^8 || ^9 || ^10 || ^11",
     17        "squizlabs/php_codesniffer": "^3.11"
    1818    },
    1919    "keywords": [
     
    5050            "League\\OAuth2\\Client\\Test\\": "test/src/"
    5151        }
    52     },
    53     "extra": {
    54         "branch-alias": {
    55             "dev-2.x": "2.0.x-dev"
    56         }
    5752    }
    5853}
  • convoworks-wp/trunk/vendor/league/oauth2-client/src/Provider/AbstractProvider.php

    r2907377 r3245311  
    414414     * @return mixed
    415415     */
    416     public function authorize(array $options = [], callable $redirectHandler = null)
     416    public function authorize(array $options = [], ?callable $redirectHandler = null)
    417417    {
    418418        $url = $this->getAuthorizationUrl($options);
     
    523523    {
    524524        $grant = $this->verifyGrant($grant);
     525        if (empty($options['scope'])) {
     526            $options['scope'] = $this->getDefaultScopes();
     527        }
     528        if (\is_array($options['scope'])) {
     529            $separator = $this->getScopeSeparator();
     530            $options['scope'] = \implode($separator, $options['scope']);
     531        }
    525532        $params = ['client_id' => $this->clientId, 'client_secret' => $this->clientSecret, 'redirect_uri' => $this->redirectUri];
    526533        if (!empty($this->pkceCode)) {
     
    632639    protected function getContentType(ResponseInterface $response)
    633640    {
    634         return \join(';', (array) $response->getHeader('content-type'));
     641        return \implode(';', $response->getHeader('content-type'));
    635642    }
    636643    /**
     
    679686     * parent method when overloading this method.
    680687     *
    681      * @param  mixed $result
     688     * @param  array<string, mixed> $result
    682689     * @return array
    683690     */
  • convoworks-wp/trunk/vendor/league/oauth2-client/src/Token/AccessToken.php

    r2895245 r3245311  
    2222 * @link http://tools.ietf.org/html/rfc6749#section-1.4 Access Token (RFC 6749, §1.4)
    2323 */
    24 class AccessToken implements AccessTokenInterface, ResourceOwnerAccessTokenInterface
     24class AccessToken implements AccessTokenInterface, ResourceOwnerAccessTokenInterface, SettableRefreshTokenInterface
    2525{
    2626    /**
     
    104104            // Some providers supply the seconds until expiration rather than
    105105            // the exact timestamp. Take a best guess at which we received.
    106             $expires = $options['expires'];
     106            $expires = (int) $options['expires'];
    107107            if (!$this->isExpirationTimestamp($expires)) {
    108108                $expires += $this->getTimeNow();
     
    146146     * @inheritdoc
    147147     */
     148    public function setRefreshToken($refreshToken)
     149    {
     150        $this->refreshToken = $refreshToken;
     151    }
     152    /**
     153     * @inheritdoc
     154     */
    148155    public function getExpires()
    149156    {
     
    166173            throw new RuntimeException('"expires" is not set on the token');
    167174        }
    168         return $expires < \time();
     175        return $expires < $this->getTimeNow();
    169176    }
    170177    /**
  • convoworks-wp/trunk/vendor/phpseclib/phpseclib/BACKERS.md

    r3171244 r3245311  
    1717- [Anna Filina](https://github.com/afilina)
    1818- [blakemckeeby](https://github.com/blakemckeeby)
     19- [ssddanbrown](https://github.com/ssddanbrown)
  • convoworks-wp/trunk/vendor/phpseclib/phpseclib/phpseclib/Crypt/Common/Formats/Keys/PKCS8.php

    r3171244 r3245311  
    7777     */
    7878    private static $oidsLoaded = \false;
     79    /**
     80     * Binary key flag
     81     *
     82     * @var bool
     83     */
     84    private static $binary = \false;
    7985    /**
    8086     * Sets the default encryption algorithm
     
    458464    }
    459465    /**
     466     * Toggle between binary (DER) and printable (PEM) keys
     467     *
     468     * Printable keys are what are generated by default.
     469     *
     470     * @param bool $enabled
     471     */
     472    public static function setBinaryOutput($enabled)
     473    {
     474        self::$binary = $enabled;
     475    }
     476    /**
    460477     * Wrap a private key appropriately
    461478     *
     
    518535            $key = ['encryptionAlgorithm' => ['algorithm' => $encryptionAlgorithm, 'parameters' => new ASN1\Element($params)], 'encryptedData' => $key];
    519536            $key = ASN1::encodeDER($key, Maps\EncryptedPrivateKeyInfo::MAP);
     537            if (isset($options['binary']) ? $options['binary'] : self::$binary) {
     538                return $key;
     539            }
    520540            return "-----BEGIN ENCRYPTED PRIVATE KEY-----\r\n" . \chunk_split(Strings::base64_encode($key), 64) . "-----END ENCRYPTED PRIVATE KEY-----";
     541        }
     542        if (isset($options['binary']) ? $options['binary'] : self::$binary) {
     543            return $key;
    521544        }
    522545        return "-----BEGIN PRIVATE KEY-----\r\n" . \chunk_split(Strings::base64_encode($key), 64) . "-----END PRIVATE KEY-----";
     
    530553     * @return string
    531554     */
    532     protected static function wrapPublicKey($key, $params, $oid = null)
     555    protected static function wrapPublicKey($key, $params, $oid = null, array $options = [])
    533556    {
    534557        self::initialize_static_variables();
     
    538561        }
    539562        $key = ASN1::encodeDER($key, Maps\PublicKeyInfo::MAP);
     563        if (isset($options['binary']) ? $options['binary'] : self::$binary) {
     564            return $key;
     565        }
    540566        return "-----BEGIN PUBLIC KEY-----\r\n" . \chunk_split(Strings::base64_encode($key), 64) . "-----END PUBLIC KEY-----";
    541567    }
  • convoworks-wp/trunk/vendor/phpseclib/phpseclib/phpseclib/Crypt/DH/Formats/Keys/PKCS8.php

    r3171244 r3245311  
    111111        $params = new ASN1\Element($params);
    112112        $key = ASN1::encodeDER($publicKey, ['type' => ASN1::TYPE_INTEGER]);
    113         return self::wrapPublicKey($key, $params);
     113        return self::wrapPublicKey($key, $params, null, $options);
    114114    }
    115115}
  • convoworks-wp/trunk/vendor/phpseclib/phpseclib/phpseclib/Crypt/DSA/Formats/Keys/PKCS8.php

    r3171244 r3245311  
    121121        $params = new ASN1\Element($params);
    122122        $key = ASN1::encodeDER($y, Maps\DSAPublicKey::MAP);
    123         return self::wrapPublicKey($key, $params);
     123        return self::wrapPublicKey($key, $params, null, $options);
    124124    }
    125125}
  • convoworks-wp/trunk/vendor/phpseclib/phpseclib/phpseclib/Crypt/EC/BaseCurves/Montgomery.php

    r3171244 r3245311  
    194194    {
    195195        $p1 = [$this->one, $this->zero];
    196         $alreadyInternal = isset($x[1]);
     196        $alreadyInternal = isset($p[1]);
    197197        $p2 = $this->convertToInternal($p);
    198198        $x = $p[0];
  • convoworks-wp/trunk/vendor/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Keys/PKCS8.php

    r3171244 r3245311  
    146146        }
    147147        if ($curve instanceof TwistedEdwardsCurve) {
    148             return self::wrapPublicKey($curve->encodePoint($publicKey), null, $curve instanceof Ed25519 ? 'id-Ed25519' : 'id-Ed448');
     148            return self::wrapPublicKey($curve->encodePoint($publicKey), null, $curve instanceof Ed25519 ? 'id-Ed25519' : 'id-Ed448', $options);
    149149        }
    150150        $params = new ASN1\Element(self::encodeParameters($curve, \false, $options));
    151151        $key = "\x04" . $publicKey[0]->toBytes() . $publicKey[1]->toBytes();
    152         return self::wrapPublicKey($key, $params, 'id-ecPublicKey');
     152        return self::wrapPublicKey($key, $params, 'id-ecPublicKey', $options);
    153153    }
    154154    /**
  • convoworks-wp/trunk/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA/Formats/Keys/PKCS8.php

    r3171244 r3245311  
    107107        $key = PKCS1::savePublicKey($n, $e);
    108108        $key = ASN1::extractBER($key);
    109         return self::wrapPublicKey($key, null);
     109        return self::wrapPublicKey($key, null, null, $options);
    110110    }
    111111}
  • convoworks-wp/trunk/vendor/phpseclib/phpseclib/phpseclib/Crypt/Salsa20.php

    r2895257 r3245311  
    281281                $block ^= static::salsa20($this->p1 . \pack('V', $i++) . $this->p2);
    282282            }
     283            unset($block);
    283284            return \implode('', $blocks);
    284285        }
     
    314315                        $block ^= static::salsa20($this->p1 . \pack('V', $buffer['counter']++) . $this->p2);
    315316                    }
     317                    unset($block);
    316318                }
    317319                $encrypted = \implode('', $blocks);
     
    330332                    $block ^= static::salsa20($this->p1 . \pack('V', $buffer['counter']++) . $this->p2);
    331333                }
     334                unset($block);
    332335                $ciphertext .= \implode('', $blocks);
    333336            }
  • convoworks-wp/trunk/vendor/phpseclib/phpseclib/phpseclib/File/X509.php

    r3171244 r3245311  
    468468                $cert['tbsCertificate']['subjectPublicKeyInfo'] = new Element(\base64_decode(\preg_replace('#-.+-|[\\r\\n]#', '', $cert['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey'])));
    469469        }
    470         if ($algorithm == 'rsaEncryption') {
    471             $cert['signatureAlgorithm']['parameters'] = null;
    472             $cert['tbsCertificate']['signature']['parameters'] = null;
    473         }
    474470        $filters = [];
    475471        $type_utf8_string = ['type' => ASN1::TYPE_UTF8_STRING];
     
    15321528     * @return mixed
    15331529     */
    1534     public function getDNProp($propName, array $dn = null, $withType = \false)
     1530    public function getDNProp($propName, $dn = null, $withType = \false)
    15351531    {
    15361532        if (!isset($dn)) {
     
    16291625     * @return array|bool|string
    16301626     */
    1631     public function getDN($format = self::DN_ARRAY, array $dn = null)
     1627    public function getDN($format = self::DN_ARRAY, $dn = null)
    16321628    {
    16331629        if (!isset($dn)) {
     
    24192415            $this->currentCert['certificationRequestInfo']['subjectPKInfo'] = $publicKey;
    24202416        } else {
    2421             $this->currentCert = ['certificationRequestInfo' => ['version' => 'v1', 'subject' => $this->dn, 'subjectPKInfo' => $publicKey], 'signatureAlgorithm' => $signatureAlgorithm, 'signature' => \false];
     2417            $this->currentCert = ['certificationRequestInfo' => ['version' => 'v1', 'subject' => $this->dn, 'subjectPKInfo' => $publicKey, 'attributes' => []], 'signatureAlgorithm' => $signatureAlgorithm, 'signature' => \false];
    24222418        }
    24232419        // resync $this->signatureSubject
     
    26122608                case 'sha384':
    26132609                case 'sha512':
    2614                     return ['algorithm' => $key->getHash() . 'WithRSAEncryption'];
     2610                    return ['algorithm' => $key->getHash() . 'WithRSAEncryption', 'parameters' => null];
    26152611            }
    26162612            throw new UnsupportedAlgorithmException('The only supported hash algorithms for RSA are: md2, md5, sha1, sha224, sha256, sha384, sha512');
     
    27622758     * @return array|false
    27632759     */
    2764     private function &subArray(array &$root = null, $path, $create = \false)
     2760    private function &subArray(&$root, $path, $create = \false)
    27652761    {
    27662762        $false = \false;
     
    27902786     * @return array|false
    27912787     */
    2792     private function &extensions(array &$root = null, $path = null, $create = \false)
     2788    private function &extensions(&$root, $path = null, $create = \false)
    27932789    {
    27942790        if (!isset($root)) {
     
    28672863     * @return mixed
    28682864     */
    2869     private function getExtensionHelper($id, array $cert = null, $path = null)
     2865    private function getExtensionHelper($id, $cert = null, $path = null)
    28702866    {
    28712867        $extensions = $this->extensions($cert, $path);
     
    28872883     * @return array
    28882884     */
    2889     private function getExtensionsHelper(array $cert = null, $path = null)
     2885    private function getExtensionsHelper($cert = null, $path = null)
    28902886    {
    28912887        $exts = $this->extensions($cert, $path);
     
    29472943     * @return mixed
    29482944     */
    2949     public function getExtension($id, array $cert = null, $path = null)
     2945    public function getExtension($id, $cert = null, $path = null)
    29502946    {
    29512947        return $this->getExtensionHelper($id, $cert, $path);
     
    29582954     * @return array
    29592955     */
    2960     public function getExtensions(array $cert = null, $path = null)
     2956    public function getExtensions($cert = null, $path = null)
    29612957    {
    29622958        return $this->getExtensionsHelper($cert, $path);
     
    30283024     * @return mixed
    30293025     */
    3030     public function getAttribute($id, $disposition = self::ATTR_ALL, array $csr = null)
     3026    public function getAttribute($id, $disposition = self::ATTR_ALL, $csr = null)
    30313027    {
    30323028        if (empty($csr)) {
     
    30573053    }
    30583054    /**
     3055     * Get all requested CSR extensions
     3056     *
     3057     * Returns the list of extensions if there are any and false if not
     3058     *
     3059     * @param array $csr optional
     3060     * @return mixed
     3061     */
     3062    public function getRequestedCertificateExtensions($csr = null)
     3063    {
     3064        if (empty($csr)) {
     3065            $csr = $this->currentCert;
     3066        }
     3067        $requestedExtensions = $this->getAttribute('pkcs-9-at-extensionRequest');
     3068        if ($requestedExtensions === \false) {
     3069            return \false;
     3070        }
     3071        return $this->getAttribute('pkcs-9-at-extensionRequest')[0];
     3072    }
     3073    /**
    30593074     * Returns a list of all CSR attributes in use
    30603075     *
     
    30623077     * @return array
    30633078     */
    3064     public function getAttributes(array $csr = null)
     3079    public function getAttributes($csr = null)
    30653080    {
    30663081        if (empty($csr)) {
     
    33733388     * @return array|bool
    33743389     */
    3375     public function listRevoked(array $crl = null)
     3390    public function listRevoked($crl = null)
    33763391    {
    33773392        if (!isset($crl)) {
     
    34153430     * @return mixed
    34163431     */
    3417     public function getRevokedCertificateExtension($serial, $id, array $crl = null)
     3432    public function getRevokedCertificateExtension($serial, $id, $crl = null)
    34183433    {
    34193434        if (!isset($crl)) {
     
    34343449     * @return array|bool
    34353450     */
    3436     public function getRevokedCertificateExtensions($serial, array $crl = null)
     3451    public function getRevokedCertificateExtensions($serial, $crl = null)
    34373452    {
    34383453        if (!isset($crl)) {
  • convoworks-wp/trunk/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/BCMath/Reductions/Barrett.php

    r3171244 r3245311  
    5959        static $cache = [self::VARIABLE => [], self::DATA => []];
    6060        $m_length = \strlen($m);
    61         if (\strlen($n) >= 2 * $m_length) {
     61        if (\strlen($n) > 2 * $m_length) {
    6262            return \bcmod($n, $m);
    6363        }
     
    6767        }
    6868        // n = 2 * m.length
     69        $correctionNeeded = \false;
     70        if ($m_length & 1) {
     71            $correctionNeeded = \true;
     72            $n .= '0';
     73            $m .= '0';
     74            $m_length++;
     75        }
    6976        if (($key = \array_search($m, $cache[self::VARIABLE])) === \false) {
    7077            $key = \count($cache[self::VARIABLE]);
     
    114121            $result = \bcsub($result, $m);
    115122        }
    116         return $result;
     123        return $correctionNeeded ? \substr($result, 0, -1) : $result;
    117124    }
    118125    /**
  • convoworks-wp/trunk/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Barrett.php

    r3171244 r3245311  
    5050        $m_length = \count($m);
    5151        // if (self::compareHelper($n, $static::square($m)) >= 0) {
    52         if (\count($n) >= 2 * $m_length) {
     52        if (\count($n) > 2 * $m_length) {
    5353            $lhs = new $class();
    5454            $rhs = new $class();
     
    6363        }
    6464        // n = 2 * m.length
     65        $correctionNeeded = \false;
     66        if ($m_length & 1) {
     67            $correctionNeeded = \true;
     68            \array_unshift($n, 0);
     69            \array_unshift($m, 0);
     70            $m_length++;
     71        }
    6572        if (($key = \array_search($m, $cache[self::VARIABLE])) === \false) {
    6673            $key = \count($cache[self::VARIABLE]);
     
    100107        // if even: ((m.length >> 1) + 2) + (m.length >> 1) == m.length + 2
    101108        // if odd:  ((m.length >> 1) + 2) + (m.length >> 1) == (m.length - 1) + 2 == m.length + 1
     109        // note that these are upper bounds. let's say m.length is 2. then you'd be multiplying a
     110        // 3 digit number by a 1 digit number. if you're doing 999 * 9 (in base 10) the result will
     111        // be a 4 digit number. but if you're multiplying 111 * 1 then the result will be a 3 digit
     112        // number.
    102113        $temp = $class::multiplyHelper($temp, \false, $u, \false);
    103114        // if even: (m.length + 2) - ((m.length >> 1) + 1) = m.length - (m.length >> 1) + 1
     
    107118        // if odd:  (m.length - (m.length >> 1)) + m.length     = 2 * m.length - (m.length >> 1)
    108119        $temp = $class::multiplyHelper($temp, \false, $m, \false);
    109         // at this point, if m had an odd number of digits, we'd be subtracting a 2 * m.length - (m.length >> 1) digit
    110         // number from a m.length + (m.length >> 1) + 1 digit number.  ie. there'd be an extra digit and the while loop
     120        // at this point, if m had an odd number of digits, we'd (probably) be subtracting a 2 * m.length - (m.length >> 1)
     121        // digit number from a m.length + (m.length >> 1) + 1 digit number.  ie. there'd be an extra digit and the while loop
    111122        // following this comment would loop a lot (hence our calling _regularBarrett() in that situation).
    112123        $result = $class::subtractHelper($n[self::VALUE], \false, $temp[self::VALUE], \false);
    113124        while (self::compareHelper($result[self::VALUE], $result[self::SIGN], $m, \false) >= 0) {
    114125            $result = $class::subtractHelper($result[self::VALUE], $result[self::SIGN], $m, \false);
     126        }
     127        if ($correctionNeeded) {
     128            \array_shift($result[self::VALUE]);
    115129        }
    116130        return $result[self::VALUE];
  • convoworks-wp/trunk/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/EvalBarrett.php

    r3171244 r3245311  
    6868            return $func;
    6969        }
     70        $correctionNeeded = \false;
     71        if ($m_length & 1) {
     72            $correctionNeeded = \true;
     73            $m = clone $m;
     74            \array_unshift($m->value, 0);
     75            $m_length++;
     76        }
    7077        $lhs = new $class();
    7178        $lhs_value =& $lhs->value;
     
    8693        $m1 = $m1->value;
    8794        $cutoff = \count($m) + (\count($m) >> 1);
    88         $code = '
    89             if (count($n) >= ' . 2 * \count($m) . ') {
     95        $code = $correctionNeeded ? 'array_unshift($n, 0);' : '';
     96        $code .= '
     97            if (count($n) > ' . 2 * \count($m) . ') {
    9098                $lhs = new ' . $class . '();
    9199                $rhs = new ' . $class . '();
     
    117125        $subcode .= '$temp = $temp2;';
    118126        $code .= self::generateInlineCompare($m, 'temp', $subcode);
     127        if ($correctionNeeded) {
     128            $code .= 'array_shift($temp);';
     129        }
    119130        $code .= 'return $temp;';
    120131        eval('$func = function ($n) { ' . $code . '};');
  • convoworks-wp/trunk/vendor/phpseclib/phpseclib/phpseclib/Math/PrimeField/Integer.php

    r3171244 r3245311  
    5656     *
    5757     * @param int $instanceID
    58      */
    59     public function __construct($instanceID, BigInteger $num = null)
     58     * @param BigInteger $num
     59     */
     60    public function __construct($instanceID, $num = null)
    6061    {
    6162        $this->instanceID = $instanceID;
  • convoworks-wp/trunk/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php

    r3171244 r3245311  
    25822582    protected function parseAttributes(&$response)
    25832583    {
     2584        $attr = [];
    25842585        if ($this->version >= 4) {
    25852586            list($flags, $attr['type']) = Strings::unpackSSH2('NC', $response);
  • convoworks-wp/trunk/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php

    r3171244 r3245311  
    149149     */
    150150    const LOG_SIMPLE_REALTIME = 5;
     151    /*
     152     * Dumps the message numbers real-time
     153     */
     154    const LOG_REALTIME_SIMPLE = 5;
    151155    /**
    152156     * Make sure that the log never gets larger than this
     
    10031007    private $errorOnMultipleChannels;
    10041008    /**
    1005      * Terrapin Countermeasure
    1006      *
    1007      * "During initial KEX, terminate the connection if any unexpected or out-of-sequence packet is received"
    1008      * -- https://github.com/openssh/openssh-portable/commit/1edb00c58f8a6875fad6a497aa2bacf37f9e6cd5
     1009     * Bytes Transferred Since Last Key Exchange
     1010     *
     1011     * Includes outbound and inbound totals
    10091012     *
    10101013     * @var int
    10111014     */
    1012     private $extra_packets;
     1015    private $bytesTransferredSinceLastKEX = 0;
     1016    /**
     1017     * After how many transferred byte should phpseclib initiate a key re-exchange?
     1018     *
     1019     * @var int
     1020     */
     1021    private $doKeyReexchangeAfterXBytes = 1024 * 1024 * 1024;
     1022    /**
     1023     * Has a key re-exchange been initialized?
     1024     *
     1025     * @var bool
     1026     * @access private
     1027     */
     1028    private $keyExchangeInProgress = \false;
     1029    /**
     1030     * KEX Buffer
     1031     *
     1032     * If we're in the middle of a key exchange we want to buffer any additional packets we get until
     1033     * the key exchange is over
     1034     *
     1035     * @see self::_get_binary_packet()
     1036     * @see self::_key_exchange()
     1037     * @see self::exec()
     1038     * @var array
     1039     * @access private
     1040     */
     1041    private $kex_buffer = [];
     1042    /**
     1043     * Strict KEX Flag
     1044     *
     1045     * If kex-strict-s-v00@openssh.com is present in the first KEX packet it need not
     1046     * be present in subsequent packet
     1047     *
     1048     * @see self::_key_exchange()
     1049     * @see self::exec()
     1050     * @var array
     1051     * @access private
     1052     */
     1053    private $strict_kex_flag = \false;
    10131054    /**
    10141055     * Default Constructor.
     
    13471388    private function key_exchange($kexinit_payload_server = \false)
    13481389    {
     1390        $this->bytesTransferredSinceLastKEX = 0;
    13491391        $preferred = $this->preferred;
    1350         $send_kex = \true;
     1392        // for the initial key exchange $send_kex is true (no key re-exchange has been started)
     1393        // for phpseclib initiated key exchanges $send_kex is false
     1394        $send_kex = !$this->keyExchangeInProgress;
     1395        $this->keyExchangeInProgress = \true;
    13511396        $kex_algorithms = isset($preferred['kex']) ? $preferred['kex'] : SSH2::getSupportedKEXAlgorithms();
    13521397        $server_host_key_algorithms = isset($preferred['hostkey']) ? $preferred['hostkey'] : SSH2::getSupportedHostKeyAlgorithms();
     
    13971442            0
    13981443        );
    1399         if ($kexinit_payload_server === \false) {
     1444        if ($kexinit_payload_server === \false && $send_kex) {
    14001445            $this->send_binary_packet($kexinit_payload_client);
    1401             $this->extra_packets = 0;
    1402             $kexinit_payload_server = $this->get_binary_packet_or_close(NET_SSH2_MSG_KEXINIT);
     1446            while (\true) {
     1447                $kexinit_payload_server = $this->get_binary_packet();
     1448                switch (\ord($kexinit_payload_server[0])) {
     1449                    case NET_SSH2_MSG_KEXINIT:
     1450                        break 2;
     1451                    case NET_SSH2_MSG_DISCONNECT:
     1452                        return $this->handleDisconnect($kexinit_payload_server);
     1453                }
     1454                $this->kex_buffer[] = $kexinit_payload_server;
     1455            }
    14031456            $send_kex = \false;
    14041457        }
     
    14091462        list($this->kex_algorithms, $this->server_host_key_algorithms, $this->encryption_algorithms_client_to_server, $this->encryption_algorithms_server_to_client, $this->mac_algorithms_client_to_server, $this->mac_algorithms_server_to_client, $this->compression_algorithms_client_to_server, $this->compression_algorithms_server_to_client, $this->languages_client_to_server, $this->languages_server_to_client, $first_kex_packet_follows) = Strings::unpackSSH2('L10C', $response);
    14101463        if (\in_array('kex-strict-s-v00@openssh.com', $this->kex_algorithms)) {
    1411             if ($this->session_id === \false && $this->extra_packets) {
    1412                 throw new \UnexpectedValueException('Possible Terrapin Attack detected');
     1464            if ($this->session_id === \false) {
     1465                // [kex-strict-s-v00@openssh.com is] only valid in the initial SSH2_MSG_KEXINIT and MUST be ignored
     1466                // if [it is] present in subsequent SSH2_MSG_KEXINIT packets
     1467                $this->strict_kex_flag = \true;
     1468                if (\count($this->kex_buffer)) {
     1469                    throw new \UnexpectedValueException('Possible Terrapin Attack detected');
     1470                }
    14131471            }
    14141472        }
     
    15771635        $packet = \pack('C', NET_SSH2_MSG_NEWKEYS);
    15781636        $this->send_binary_packet($packet);
    1579         $response = $this->get_binary_packet_or_close(NET_SSH2_MSG_NEWKEYS);
    1580         if (\in_array('kex-strict-s-v00@openssh.com', $this->kex_algorithms)) {
     1637        $this->get_binary_packet_or_close(NET_SSH2_MSG_NEWKEYS);
     1638        $this->keyExchangeInProgress = \false;
     1639        if ($this->strict_kex_flag) {
    15811640            $this->get_seq_no = $this->send_seq_no = 0;
    15821641        }
     
    23702429     *
    23712430     * @param string $command
     2431     * @param callable $callback
    23722432     * @return string|bool
    23732433     * @psalm-return ($callback is callable ? bool : string|bool)
    23742434     * @throws \RuntimeException on connection error
    23752435     */
    2376     public function exec($command, callable $callback = null)
     2436    public function exec($command, $callback = null)
    23772437    {
    23782438        $this->curTimeout = $this->timeout;
     
    29783038        if (!\is_resource($this->fsock)) {
    29793039            throw new \InvalidArgumentException('fsock is not a resource.');
     3040        }
     3041        if (!$this->keyExchangeInProgress && \count($this->kex_buffer)) {
     3042            return $this->filter(\array_shift($this->kex_buffer));
    29803043        }
    29813044        if ($this->binary_packet_buffer == null) {
     
    30993162            Strings::pop($payload, $padding_length);
    31003163        }
     3164        if (!$this->keyExchangeInProgress) {
     3165            $this->bytesTransferredSinceLastKEX += $packet->packet_length + $padding_length + 5;
     3166        }
    31013167        if (empty($payload)) {
    31023168            $this->disconnect_helper(NET_SSH2_DISCONNECT_PROTOCOL_ERROR);
     
    31163182                    if ($cm != 8) {
    31173183                        // deflate
    3118                         \user_error("Only CM = 8 ('deflate') is supported ({$cm})");
     3184                        throw new UnsupportedAlgorithmException("Only CM = 8 ('deflate') is supported ({$cm})");
    31193185                    }
    31203186                    $cinfo = ($cmf & 0xf0) >> 4;
    31213187                    if ($cinfo > 7) {
    3122                         \user_error("CINFO above 7 is not allowed ({$cinfo})");
     3188                        throw new \RuntimeException("CINFO above 7 is not allowed ({$cinfo})");
    31233189                    }
    31243190                    $windowSize = 1 << $cinfo + 8;
     
    31263192                    //$fcheck = $flg && 0x0F;
    31273193                    if (($cmf << 8 | $flg) % 31) {
    3128                         \user_error('fcheck failed');
     3194                        throw new \RuntimeException('fcheck failed');
    31293195                    }
    31303196                    $fdict = \boolval($flg & 0x20);
     
    31453211        }
    31463212        $this->last_packet = \microtime(\true);
    3147         return $this->filter($payload);
     3213        if ($this->bytesTransferredSinceLastKEX > $this->doKeyReexchangeAfterXBytes) {
     3214            $this->key_exchange();
     3215        }
     3216        // don't filter if we're in the middle of a key exchange (since _filter might send out packets)
     3217        return $this->keyExchangeInProgress ? $payload : $this->filter($payload);
    31483218    }
    31493219    /**
     
    32093279    }
    32103280    /**
     3281     * Handle Disconnect
     3282     *
     3283     * Because some binary packets need to be ignored...
     3284     *
     3285     * @see self::filter()
     3286     * @see self::key_exchange()
     3287     * @return boolean
     3288     * @access private
     3289     */
     3290    private function handleDisconnect($payload)
     3291    {
     3292        Strings::shift($payload, 1);
     3293        list($reason_code, $message) = Strings::unpackSSH2('Ns', $payload);
     3294        $this->errors[] = 'SSH_MSG_DISCONNECT: ' . self::$disconnect_reasons[$reason_code] . "\r\n{$message}";
     3295        $this->disconnect_helper(NET_SSH2_DISCONNECT_CONNECTION_LOST);
     3296        throw new ConnectionClosedException('Connection closed by server');
     3297    }
     3298    /**
    32113299     * Filter Binary Packets
    32123300     *
     
    32213309        switch (\ord($payload[0])) {
    32223310            case NET_SSH2_MSG_DISCONNECT:
    3223                 Strings::shift($payload, 1);
    3224                 list($reason_code, $message) = Strings::unpackSSH2('Ns', $payload);
    3225                 $this->errors[] = 'SSH_MSG_DISCONNECT: ' . self::$disconnect_reasons[$reason_code] . "\r\n{$message}";
    3226                 $this->disconnect_helper(NET_SSH2_DISCONNECT_CONNECTION_LOST);
    3227                 throw new ConnectionClosedException('Connection closed by server');
     3311                return $this->handleDisconnect($payload);
    32283312            case NET_SSH2_MSG_IGNORE:
    3229                 $this->extra_packets++;
    32303313                $payload = $this->get_binary_packet();
    32313314                break;
    32323315            case NET_SSH2_MSG_DEBUG:
    3233                 $this->extra_packets++;
    32343316                Strings::shift($payload, 2);
    32353317                // second byte is "always_display"
     
    32423324            // return payload
    32433325            case NET_SSH2_MSG_KEXINIT:
    3244                 // this is here for key re-exchanges after the initial key exchange
     3326                // this is here for server initiated key re-exchanges after the initial key exchange
    32453327                if ($this->session_id !== \false) {
    32463328                    if (!$this->key_exchange($payload)) {
     
    37003782        $this->send_seq_no++;
    37013783        $packet .= $this->encrypt && $this->encrypt->usesNonce() ? $this->encrypt->getTag() : $hmac;
     3784        if (!$this->keyExchangeInProgress) {
     3785            $this->bytesTransferredSinceLastKEX += \strlen($packet);
     3786        }
    37023787        $start = \microtime(\true);
    37033788        $sent = @\fputs($this->fsock, $packet);
     
    37143799            $message = $sent === \false ? 'Unable to write ' . \strlen($packet) . ' bytes' : "Only {$sent} of " . \strlen($packet) . " bytes were sent";
    37153800            throw new \RuntimeException($message);
     3801        }
     3802        if ($this->bytesTransferredSinceLastKEX > $this->doKeyReexchangeAfterXBytes) {
     3803            $this->key_exchange();
    37163804        }
    37173805    }
     
    38233911                }
    38243912                \fputs($realtime_log_file, $entry);
     3913                break;
     3914            case self::LOG_REALTIME_SIMPLE:
     3915                echo $message_number;
     3916                echo \PHP_SAPI == 'cli' ? "\r\n" : '<br>';
    38253917        }
    38263918    }
     
    43464438    public function setPreferredAlgorithms(array $methods)
    43474439    {
     4440        $keys = ['client_to_server', 'server_to_client'];
     4441        if (isset($methods['kex']) && \is_string($methods['kex'])) {
     4442            $methods['kex'] = \explode(',', $methods['kex']);
     4443        }
     4444        if (isset($methods['hostkey']) && \is_string($methods['hostkey'])) {
     4445            $methods['hostkey'] = \explode(',', $methods['hostkey']);
     4446        }
     4447        foreach ($keys as $key) {
     4448            if (isset($methods[$key])) {
     4449                $a =& $methods[$key];
     4450                if (isset($a['crypt']) && \is_string($a['crypt'])) {
     4451                    $a['crypt'] = \explode(',', $a['crypt']);
     4452                }
     4453                if (isset($a['comp']) && \is_string($a['comp'])) {
     4454                    $a['comp'] = \explode(',', $a['comp']);
     4455                }
     4456                if (isset($a['mac']) && \is_string($a['mac'])) {
     4457                    $a['mac'] = \explode(',', $a['mac']);
     4458                }
     4459            }
     4460        }
    43484461        $preferred = $methods;
    43494462        if (isset($preferred['kex'])) {
    4350             $preferred['kex'] = \array_intersect(\is_string($preferred['kex']) ? [$preferred['kex']] : $preferred['kex'], static::getSupportedKEXAlgorithms());
     4463            $preferred['kex'] = \array_intersect($preferred['kex'], static::getSupportedKEXAlgorithms());
    43514464        }
    43524465        if (isset($preferred['hostkey'])) {
    4353             $preferred['hostkey'] = \array_intersect(\is_string($preferred['hostkey']) ? [$preferred['hostkey']] : $preferred['hostkey'], static::getSupportedHostKeyAlgorithms());
    4354         }
    4355         $keys = ['client_to_server', 'server_to_client'];
     4466            $preferred['hostkey'] = \array_intersect($preferred['hostkey'], static::getSupportedHostKeyAlgorithms());
     4467        }
    43564468        foreach ($keys as $key) {
    43574469            if (isset($preferred[$key])) {
    43584470                $a =& $preferred[$key];
    43594471                if (isset($a['crypt'])) {
    4360                     $a['crypt'] = \array_intersect(\is_string($a['crypt']) ? [$a['crypt']] : $a['crypt'], static::getSupportedEncryptionAlgorithms());
     4472                    $a['crypt'] = \array_intersect($a['crypt'], static::getSupportedEncryptionAlgorithms());
    43614473                }
    43624474                if (isset($a['comp'])) {
    4363                     $a['comp'] = \array_intersect(\is_string($a['comp']) ? [$a['comp']] : $a['comp'], static::getSupportedCompressionAlgorithms());
     4475                    $a['comp'] = \array_intersect($a['comp'], static::getSupportedCompressionAlgorithms());
    43644476                }
    43654477                if (isset($a['mac'])) {
    4366                     $a['mac'] = \array_intersect(\is_string($a['mac']) ? [$a['mac']] : $a['mac'], static::getSupportedMACAlgorithms());
     4478                    $a['mac'] = \array_intersect($a['mac'], static::getSupportedMACAlgorithms());
    43674479                }
    43684480            }
     
    46254737        $this->smartMFA = \false;
    46264738    }
     4739    /**
     4740     * How many bytes until the next key re-exchange?
     4741     *
     4742     * @param int $bytes
     4743     */
     4744    public function bytesUntilKeyReexchange($bytes)
     4745    {
     4746        $this->doKeyReexchangeAfterXBytes = $bytes;
     4747    }
    46274748}
  • convoworks-wp/trunk/vendor/scoper-autoload.php

    r3171244 r3245311  
    4444    }
    4545}
    46 if (!function_exists('timer_stop')) {
    47     function timer_stop() {
    48         return \Convoworks\timer_stop(...func_get_args());
    49     }
    50 }
    5146if (!function_exists('is_admin')) {
    5247    function is_admin() {
  • convoworks-wp/trunk/vendor/zef-dev/convoworks-core/CHANGELOG.md

    r3204406 r3245311  
    55
    66## [Releases]
     7
     8## 0.22.32 - 2025-02-23 
     9
     10* Reworked and unified `call_user_func()` handling to support both global functions and instance methods. 
     11* Registered `gettype()` and `get_class()` PHP functions.
     12
    713
    814## 0.22.31 - 2024-12-07
     
    1218* Registered PHP `sleep()` and `usleep()` functions.
    1319* Other minor enhancements
     20
    1421
    1522## 0.22.30 - 2024-11-26
  • convoworks-wp/trunk/vendor/zef-dev/convoworks-core/composer.json

    r3204406 r3245311  
    77        "alexa", "viber", "chatbot", "voice enabled", "voice assistant", "no-code"
    88    ],
    9     "version": "0.22.31",
     9    "version": "0.22.32",
    1010    "license" : "MIT",
    1111    "require" : {
  • convoworks-wp/trunk/vendor/zef-dev/convoworks-core/src/Convo/Core/Expression/EvaluationContext.php

    r3204406 r3245311  
    8686                if (!$skipEmpty || $skipEmpty && !empty($value)) {
    8787                    $quot_expr = \preg_quote($expression, '/');
    88                     //                  $this->_logger->debug('preg_quoted expression ['.$quot_expr.']');
    8988                    $pattern = '/\\${\\s*' . $quot_expr . '\\s*}/';
    90                     $string = \preg_replace($pattern, \strval($value), $string);
     89                    // Convert the evaluated value to string and escape dollar signs
     90                    $replacement = \str_replace('$', '\\$', \strval($value));
     91                    $string = \preg_replace($pattern, $replacement, $string);
    9192                }
    92                 //              if ( $string === '') {
    93                 //                  if ( is_null( $value) || is_int( $value) || is_float( $value)) {
    94                 //                      $string =   $value;
    95                 //                  }
    96                 //              }
    9793            } else {
    9894                // not parsing, single value get
  • convoworks-wp/trunk/vendor/zef-dev/convoworks-core/src/Convo/Pckg/Core/CorePackageDefinition.php

    r3204406 r3245311  
    204204        $functions[] = ExpressionFunction::fromPhp('http_build_query');
    205205        $functions[] = ExpressionFunction::fromPhp('function_exists');
     206        $functions[] = ExpressionFunction::fromPhp('gettype');
     207        $functions[] = ExpressionFunction::fromPhp('get_class');
    206208        $convo_val = function ($args, $data) use(&$convo_val) {
    207209            if (\is_array($data)) {
     
    224226            return \sprintf('call_user_func(%s, %s)', \var_export($callback, \true), \var_export($parameter, \true));
    225227        }, function ($args, $callback, $parameter = []) {
    226             if (!\function_exists($callback)) {
     228            $callback = self::parseCallback($callback);
     229            $parameter = self::parseCallbackParameters($parameter);
     230            if (\is_string($callback) && !\function_exists($callback)) {
    227231                throw new \Exception('Function "' . $callback . '" does not exists.');
    228             }
    229             if (\is_null($parameter) || \is_array($parameter) && empty($parameter)) {
    230                 return \call_user_func($callback);
    231             }
    232             if (!\is_array($parameter) || !isset($parameter[0])) {
    233                 $this->_logger->debug('Wrapping up param [' . \gettype($parameter) . '] as array');
    234                 $parameter = [$parameter];
    235232            }
    236233            return \call_user_func($callback, ...$parameter);
     
    239236            return \sprintf('call_user_func_array(%s, %s)', \var_export($callback, \true), \var_export($parameter, \true));
    240237        }, function ($args, $callback, $parameter = []) {
    241             if (!\function_exists($callback)) {
     238            $callback = self::parseCallback($callback);
     239            $parameter = self::parseCallbackParameters($parameter);
     240            if (\is_string($callback) && !\function_exists($callback)) {
    242241                throw new \Exception('Function "' . $callback . '" does not exists.');
    243             }
    244             if (empty($parameter)) {
    245                 $parameter = [];
    246242            }
    247243            return \call_user_func_array($callback, $parameter);
     
    506502        return $relativesArray;
    507503    }
     504    public static function parseCallback($callback)
     505    {
     506        if (\is_string($callback) && \strpos($callback, '::') !== \false) {
     507            $callback = \explode('::', $callback);
     508        }
     509        if (\is_array($callback)) {
     510            if (\count($callback) !== 2) {
     511                throw new \Exception('Expected array with two items, got [' . \count($callback) . ']');
     512            }
     513            if (\is_object($callback[0])) {
     514                $obj = $callback[0];
     515                return [$obj, $callback[1]];
     516            }
     517            if (!\is_string($callback[0])) {
     518                throw new \Exception('Expected string or object as first item, got [' . \gettype($callback[0]) . ']');
     519            }
     520            if (\strpos($callback[0], '$') === 0) {
     521                $obj_str = \str_replace('$', '', $callback[0]);
     522                $obj = $GLOBALS[$obj_str];
     523                if (!isset($GLOBALS[$obj_str])) {
     524                    throw new \Exception('No global variable named [' . $callback[0] . '] found');
     525                }
     526                return [$obj, $callback[1]];
     527            }
     528        }
     529        return $callback;
     530    }
     531    public static function parseCallbackParameters($parameters = null)
     532    {
     533        if (empty($parameters)) {
     534            return [];
     535        }
     536        if (!\is_array($parameters)) {
     537            return [$parameters];
     538        }
     539        return $parameters;
     540    }
    508541    /**
    509542     * {@inheritDoc}
Note: See TracChangeset for help on using the changeset viewer.