Plugin Directory

Changeset 3333221


Ignore:
Timestamp:
07/24/2025 02:31:29 AM (9 months ago)
Author:
misosimonpai
Message:

Update to version 0.9.6 from GitHub

Location:
miso-ai
Files:
28 added
126 edited
1 copied

Legend:

Unmodified
Added
Removed
  • miso-ai/tags/0.9.6/composer.lock

    r3204556 r3333221  
    7171        {
    7272            "name": "guzzlehttp/guzzle",
    73             "version": "7.9.2",
     73            "version": "7.9.3",
    7474            "source": {
    7575                "type": "git",
    7676                "url": "https://github.com/guzzle/guzzle.git",
    77                 "reference": "d281ed313b989f213357e3be1a179f02196ac99b"
    78             },
    79             "dist": {
    80                 "type": "zip",
    81                 "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b",
    82                 "reference": "d281ed313b989f213357e3be1a179f02196ac99b",
     77                "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77"
     78            },
     79            "dist": {
     80                "type": "zip",
     81                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77",
     82                "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77",
    8383                "shasum": ""
    8484            },
     
    177177            "support": {
    178178                "issues": "https://github.com/guzzle/guzzle/issues",
    179                 "source": "https://github.com/guzzle/guzzle/tree/7.9.2"
     179                "source": "https://github.com/guzzle/guzzle/tree/7.9.3"
    180180            },
    181181            "funding": [
     
    193193                }
    194194            ],
    195             "time": "2024-07-24T11:22:20+00:00"
     195            "time": "2025-03-27T13:37:11+00:00"
    196196        },
    197197        {
    198198            "name": "guzzlehttp/promises",
    199             "version": "2.0.4",
     199            "version": "2.2.0",
    200200            "source": {
    201201                "type": "git",
    202202                "url": "https://github.com/guzzle/promises.git",
    203                 "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455"
    204             },
    205             "dist": {
    206                 "type": "zip",
    207                 "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455",
    208                 "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455",
     203                "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c"
     204            },
     205            "dist": {
     206                "type": "zip",
     207                "url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c",
     208                "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c",
    209209                "shasum": ""
    210210            },
     
    260260            "support": {
    261261                "issues": "https://github.com/guzzle/promises/issues",
    262                 "source": "https://github.com/guzzle/promises/tree/2.0.4"
     262                "source": "https://github.com/guzzle/promises/tree/2.2.0"
    263263            },
    264264            "funding": [
     
    276276                }
    277277            ],
    278             "time": "2024-10-17T10:06:22+00:00"
     278            "time": "2025-03-27T13:27:01+00:00"
    279279        },
    280280        {
    281281            "name": "guzzlehttp/psr7",
    282             "version": "2.7.0",
     282            "version": "2.7.1",
    283283            "source": {
    284284                "type": "git",
    285285                "url": "https://github.com/guzzle/psr7.git",
    286                 "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201"
    287             },
    288             "dist": {
    289                 "type": "zip",
    290                 "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
    291                 "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
     286                "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16"
     287            },
     288            "dist": {
     289                "type": "zip",
     290                "url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16",
     291                "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16",
    292292                "shasum": ""
    293293            },
     
    376376            "support": {
    377377                "issues": "https://github.com/guzzle/psr7/issues",
    378                 "source": "https://github.com/guzzle/psr7/tree/2.7.0"
     378                "source": "https://github.com/guzzle/psr7/tree/2.7.1"
    379379            },
    380380            "funding": [
     
    392392                }
    393393            ],
    394             "time": "2024-07-18T11:15:46+00:00"
     394            "time": "2025-03-27T12:30:47+00:00"
    395395        },
    396396        {
     
    724724        {
    725725            "name": "symfony/deprecation-contracts",
    726             "version": "v3.5.1",
     726            "version": "v3.6.0",
    727727            "source": {
    728728                "type": "git",
    729729                "url": "https://github.com/symfony/deprecation-contracts.git",
    730                 "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
    731             },
    732             "dist": {
    733                 "type": "zip",
    734                 "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
    735                 "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
     730                "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62"
     731            },
     732            "dist": {
     733                "type": "zip",
     734                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62",
     735                "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62",
    736736                "shasum": ""
    737737            },
     
    741741            "type": "library",
    742742            "extra": {
     743                "thanks": {
     744                    "url": "https://github.com/symfony/contracts",
     745                    "name": "symfony/contracts"
     746                },
    743747                "branch-alias": {
    744                     "dev-main": "3.5-dev"
    745                 },
    746                 "thanks": {
    747                     "name": "symfony/contracts",
    748                     "url": "https://github.com/symfony/contracts"
     748                    "dev-main": "3.6-dev"
    749749                }
    750750            },
     
    771771            "homepage": "https://symfony.com",
    772772            "support": {
    773                 "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
     773                "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0"
    774774            },
    775775            "funding": [
     
    787787                }
    788788            ],
    789             "time": "2024-09-25T14:20:29+00:00"
     789            "time": "2024-09-25T14:21:43+00:00"
    790790        },
    791791        {
    792792            "name": "symfony/polyfill-ctype",
    793             "version": "v1.31.0",
     793            "version": "v1.32.0",
    794794            "source": {
    795795                "type": "git",
     
    815815            "extra": {
    816816                "thanks": {
    817                     "name": "symfony/polyfill",
    818                     "url": "https://github.com/symfony/polyfill"
     817                    "url": "https://github.com/symfony/polyfill",
     818                    "name": "symfony/polyfill"
    819819                }
    820820            },
     
    850850            ],
    851851            "support": {
    852                 "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
     852                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0"
    853853            },
    854854            "funding": [
     
    870870        {
    871871            "name": "symfony/polyfill-mbstring",
    872             "version": "v1.31.0",
     872            "version": "v1.32.0",
    873873            "source": {
    874874                "type": "git",
    875875                "url": "https://github.com/symfony/polyfill-mbstring.git",
    876                 "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
    877             },
    878             "dist": {
    879                 "type": "zip",
    880                 "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
    881                 "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
    882                 "shasum": ""
    883             },
    884             "require": {
     876                "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493"
     877            },
     878            "dist": {
     879                "type": "zip",
     880                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493",
     881                "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493",
     882                "shasum": ""
     883            },
     884            "require": {
     885                "ext-iconv": "*",
    885886                "php": ">=7.2"
    886887            },
     
    894895            "extra": {
    895896                "thanks": {
    896                     "name": "symfony/polyfill",
    897                     "url": "https://github.com/symfony/polyfill"
     897                    "url": "https://github.com/symfony/polyfill",
     898                    "name": "symfony/polyfill"
    898899                }
    899900            },
     
    930931            ],
    931932            "support": {
    932                 "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
     933                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0"
    933934            },
    934935            "funding": [
     
    946947                }
    947948            ],
    948             "time": "2024-09-09T11:45:10+00:00"
     949            "time": "2024-12-23T08:48:59+00:00"
    949950        },
    950951        {
    951952            "name": "symfony/polyfill-php80",
    952             "version": "v1.31.0",
     953            "version": "v1.32.0",
    953954            "source": {
    954955                "type": "git",
    955956                "url": "https://github.com/symfony/polyfill-php80.git",
    956                 "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
    957             },
    958             "dist": {
    959                 "type": "zip",
    960                 "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
    961                 "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
     957                "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608"
     958            },
     959            "dist": {
     960                "type": "zip",
     961                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
     962                "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
    962963                "shasum": ""
    963964            },
     
    968969            "extra": {
    969970                "thanks": {
    970                     "name": "symfony/polyfill",
    971                     "url": "https://github.com/symfony/polyfill"
     971                    "url": "https://github.com/symfony/polyfill",
     972                    "name": "symfony/polyfill"
    972973                }
    973974            },
     
    10101011            ],
    10111012            "support": {
    1012                 "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
     1013                "source": "https://github.com/symfony/polyfill-php80/tree/v1.32.0"
    10131014            },
    10141015            "funding": [
     
    10261027                }
    10271028            ],
    1028             "time": "2024-09-09T11:45:10+00:00"
     1029            "time": "2025-01-02T08:10:11+00:00"
    10291030        },
    10301031        {
    10311032            "name": "vlucas/phpdotenv",
    1032             "version": "v5.6.1",
     1033            "version": "v5.6.2",
    10331034            "source": {
    10341035                "type": "git",
    10351036                "url": "https://github.com/vlucas/phpdotenv.git",
    1036                 "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2"
    1037             },
    1038             "dist": {
    1039                 "type": "zip",
    1040                 "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2",
    1041                 "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2",
     1037                "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af"
     1038            },
     1039            "dist": {
     1040                "type": "zip",
     1041                "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/24ac4c74f91ee2c193fa1aaa5c249cb0822809af",
     1042                "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af",
    10421043                "shasum": ""
    10431044            },
     
    10981099            "support": {
    10991100                "issues": "https://github.com/vlucas/phpdotenv/issues",
    1100                 "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1"
     1101                "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.2"
    11011102            },
    11021103            "funding": [
     
    11101111                }
    11111112            ],
    1112             "time": "2024-07-20T21:52:34+00:00"
     1113            "time": "2025-04-30T23:37:27+00:00"
    11131114        },
    11141115        {
    11151116            "name": "woocommerce/action-scheduler",
    1116             "version": "3.9.0",
     1117            "version": "3.9.3",
    11171118            "source": {
    11181119                "type": "git",
    11191120                "url": "https://github.com/woocommerce/action-scheduler.git",
    1120                 "reference": "90b98e6fe97d455679b1d288f050cad8f6f79771"
    1121             },
    1122             "dist": {
    1123                 "type": "zip",
    1124                 "url": "https://api.github.com/repos/woocommerce/action-scheduler/zipball/90b98e6fe97d455679b1d288f050cad8f6f79771",
    1125                 "reference": "90b98e6fe97d455679b1d288f050cad8f6f79771",
    1126                 "shasum": ""
    1127             },
    1128             "require": {
    1129                 "php": ">=7.1"
     1121                "reference": "c58cdbab17651303d406cd3b22cf9d75c71c986c"
     1122            },
     1123            "dist": {
     1124                "type": "zip",
     1125                "url": "https://api.github.com/repos/woocommerce/action-scheduler/zipball/c58cdbab17651303d406cd3b22cf9d75c71c986c",
     1126                "reference": "c58cdbab17651303d406cd3b22cf9d75c71c986c",
     1127                "shasum": ""
     1128            },
     1129            "require": {
     1130                "php": ">=7.2"
    11301131            },
    11311132            "require-dev": {
    1132                 "phpunit/phpunit": "^7.5",
     1133                "phpunit/phpunit": "^8.5",
    11331134                "woocommerce/woocommerce-sniffs": "0.1.0",
    11341135                "wp-cli/wp-cli": "~2.5.0",
     
    11511152            "support": {
    11521153                "issues": "https://github.com/woocommerce/action-scheduler/issues",
    1153                 "source": "https://github.com/woocommerce/action-scheduler/tree/3.9.0"
    1154             },
    1155             "time": "2024-11-15T00:11:39+00:00"
     1154                "source": "https://github.com/woocommerce/action-scheduler/tree/3.9.3"
     1155            },
     1156            "time": "2025-07-15T09:32:30+00:00"
    11561157        }
    11571158    ],
     
    11591160        {
    11601161            "name": "php-stubs/wordpress-stubs",
    1161             "version": "v6.7.1",
     1162            "version": "v6.8.2",
    11621163            "source": {
    11631164                "type": "git",
    11641165                "url": "https://github.com/php-stubs/wordpress-stubs.git",
    1165                 "reference": "83448e918bf06d1ed3d67ceb6a985fc266a02fd1"
    1166             },
    1167             "dist": {
    1168                 "type": "zip",
    1169                 "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/83448e918bf06d1ed3d67ceb6a985fc266a02fd1",
    1170                 "reference": "83448e918bf06d1ed3d67ceb6a985fc266a02fd1",
    1171                 "shasum": ""
     1166                "reference": "9c8e22e437463197c1ec0d5eaa9ddd4a0eb6d7f8"
     1167            },
     1168            "dist": {
     1169                "type": "zip",
     1170                "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/9c8e22e437463197c1ec0d5eaa9ddd4a0eb6d7f8",
     1171                "reference": "9c8e22e437463197c1ec0d5eaa9ddd4a0eb6d7f8",
     1172                "shasum": ""
     1173            },
     1174            "conflict": {
     1175                "phpdocumentor/reflection-docblock": "5.6.1"
    11721176            },
    11731177            "require-dev": {
    11741178                "dealerdirect/phpcodesniffer-composer-installer": "^1.0",
    1175                 "nikic/php-parser": "^4.13",
     1179                "nikic/php-parser": "^5.5",
    11761180                "php": "^7.4 || ^8.0",
    11771181                "php-stubs/generator": "^0.8.3",
    11781182                "phpdocumentor/reflection-docblock": "^5.4.1",
    1179                 "phpstan/phpstan": "^1.11",
     1183                "phpstan/phpstan": "^2.1",
    11801184                "phpunit/phpunit": "^9.5",
    11811185                "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^1.1.1",
     
    12011205            "support": {
    12021206                "issues": "https://github.com/php-stubs/wordpress-stubs/issues",
    1203                 "source": "https://github.com/php-stubs/wordpress-stubs/tree/v6.7.1"
    1204             },
    1205             "time": "2024-11-24T03:57:09+00:00"
     1207                "source": "https://github.com/php-stubs/wordpress-stubs/tree/v6.8.2"
     1208            },
     1209            "time": "2025-07-16T06:41:00+00:00"
    12061210        },
    12071211        {
    12081212            "name": "php-stubs/wp-cli-stubs",
    1209             "version": "v2.11.0",
     1213            "version": "v2.12.0",
    12101214            "source": {
    12111215                "type": "git",
    12121216                "url": "https://github.com/php-stubs/wp-cli-stubs.git",
    1213                 "reference": "f27ff9e8e29d7962cb070e58de70dfaf63183007"
    1214             },
    1215             "dist": {
    1216                 "type": "zip",
    1217                 "url": "https://api.github.com/repos/php-stubs/wp-cli-stubs/zipball/f27ff9e8e29d7962cb070e58de70dfaf63183007",
    1218                 "reference": "f27ff9e8e29d7962cb070e58de70dfaf63183007",
     1217                "reference": "af16401e299a3fd2229bd0fa9a037638a4174a9d"
     1218            },
     1219            "dist": {
     1220                "type": "zip",
     1221                "url": "https://api.github.com/repos/php-stubs/wp-cli-stubs/zipball/af16401e299a3fd2229bd0fa9a037638a4174a9d",
     1222                "reference": "af16401e299a3fd2229bd0fa9a037638a4174a9d",
    12191223                "shasum": ""
    12201224            },
     
    12451249            "support": {
    12461250                "issues": "https://github.com/php-stubs/wp-cli-stubs/issues",
    1247                 "source": "https://github.com/php-stubs/wp-cli-stubs/tree/v2.11.0"
    1248             },
    1249             "time": "2024-11-25T10:09:13+00:00"
     1251                "source": "https://github.com/php-stubs/wp-cli-stubs/tree/v2.12.0"
     1252            },
     1253            "time": "2025-06-10T09:58:05+00:00"
    12501254        }
    12511255    ],
  • miso-ai/tags/0.9.6/customization.md

    r3204556 r3333221  
    4444### Modify the filter function
    4545
    46 Here is an example to add a prefix to `product_id`:
    47 
    48 ```php
    49 function my_miso_post_to_record_0(array $record, WP_Post $post) {
    50     $record['product_id'] = 'my_prefix_' . $record['product_id'];
    51     return $record;
    52 }
    53 
    54 add_filter('miso_post_to_record', 'my_miso_post_to_record_0', 10, 2);
    55 ```
    56 
    57 Another example to add extra data to `custom_attributes`:
     46Here is an example to add extra data to `custom_attributes`:
    5847
    5948```php
  • miso-ai/tags/0.9.6/miso-ai.php

    r3204556 r3333221  
    44 * Plugin URI:        https://miso.ai/
    55 * Description:       The official WordPress plugin for Miso AI data integration.
    6  * Version:           0.9.5
     6 * Version:           0.9.6
    77 * Author:            Simon Pai
    88 * License:           GPL v2 or later
  • miso-ai/tags/0.9.6/readme.txt

    r3204556 r3333221  
    22Contributors: misosimonpai
    33Tags: Miso, AI, LLM
    4 Tested up to: 6.4
    5 Stable tag: 0.9.5
     4Tested up to: 6.8
     5Stable tag: 0.9.6
    66License: GPLv2 or later
    77License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    3636== Changelog ==
    3737
     38= 0.9.6 =
     39* Feature: [#11](https://github.com/MisoAI/miso-wordpress-plugin/issues/11) Allow user to sync entities of post type other than post.
     40
    3841= 0.9.5 =
    3942* Fix: product_id prefix in action hooks
  • miso-ai/tags/0.9.6/src/actions.php

    r3204556 r3333221  
    1111    }
    1212    if (!has_api_key()) {
     13        return $post;
     14    }
     15    if (!in_array($post->post_type, Utils\get_miso_post_types())) {
    1316        return $post;
    1417    }
  • miso-ai/tags/0.9.6/src/admin/index.php

    r3204556 r3333221  
    44
    55use Miso\Operations;
     6use Miso\Utils;
    67
    78function admin_menu() {
     
    1819            'description' => 'Miso Settings',
    1920            'sanitize_callback' => function ($value) {
     21                $available_post_types = get_post_types();
     22                $value['miso_post_types'] = array_intersect($value['miso_post_types'], $available_post_types);
    2023                return $value;
    2124            },
     
    3134    add_settings_field(
    3235        'miso_api_key',
    33         'Secret API Key',
     36        'Secret API key',
    3437        function () {
    3538            $options = get_option('miso_settings', []);
     
    4447    add_settings_field(
    4548        'miso_product_id_prefix',
    46         'Product ID Prefix<br>(optional)',
     49        'Product ID prefix<br>(optional)',
    4750        function () {
    4851            $options = get_option('miso_settings', []);
     
    5356                'By setting different prefixes, you can manage data from multiple sites into one Miso catalog.<br>' .
    5457                'When performing a full-sync, only Miso records with the prefix will be deleted.</p>';
     58        },
     59        'miso',
     60        'miso_settings',
     61    );
     62    add_settings_field(
     63        'miso_post_types',
     64        'Post types to upload',
     65        function () {
     66            $options = get_option('miso_settings', []);
     67            $post_types = array_key_exists('miso_post_types', $options) ? $options['miso_post_types'] : Utils\get_miso_post_types_default_value();
     68            $choices = Utils\get_post_type_choices();
     69            foreach ($choices as $choice) {
     70                echo '<label><input type="checkbox" name="miso_settings[miso_post_types][]" value="' . esc_attr($choice) . '" ' . checked(in_array($choice, $post_types), true, false) . '> ' . esc_html($choice) . '</label><br>';
     71            }
     72            echo '<p>Post types to be uploaded to Miso catalog.<br>' .
     73                'Posts with checked post type will be uploaded to Miso when they are updated or when a "sync data" action is performed.<br>' .
     74                'Changing this setting will not affect existing records in Miso catalog.</p>';
    5575        },
    5676        'miso',
  • miso-ai/tags/0.9.6/src/operations.php

    r3204556 r3333221  
    3333        $args = $task['args'] ?? [];
    3434        $query = $args['query'] ?? [
    35             'post_type' => 'post',
     35            'post_type' => Utils\get_miso_post_types(),
    3636            'post_status' => 'publish',
    3737        ];
  • miso-ai/tags/0.9.6/src/utils.php

    r3204556 r3333221  
    4141        'published_at' => format_date($post->post_date_gmt),
    4242        'updated_at' => format_date($post->post_modified_gmt),
    43         'type' => 'post',
     43        'type' => $post->post_type,
    4444        'title' => $post->post_title,
    4545        'html' => $post->post_content,
     
    5656}
    5757
     58function get_post_type_choices() {
     59    // post, page, and custom post types
     60    return array_merge(['post', 'page'], get_post_types([
     61        'public' => true,
     62        '_builtin' => false,
     63    ]));
     64}
     65
     66function get_miso_post_types() {
     67    return get_option('miso_settings')['miso_post_types'] ?? get_miso_post_types_default_value();
     68}
     69
     70function get_miso_post_types_default_value() {
     71    // default value is post only
     72    return ['post'];
     73}
     74
    5875function log($value) {
    5976    error_log(print_r($value, true));
  • miso-ai/tags/0.9.6/vendor/autoload.php

    r3062001 r3333221  
    1515        }
    1616    }
    17     trigger_error(
    18         $err,
    19         E_USER_ERROR
    20     );
     17    throw new RuntimeException($err);
    2118}
    2219
  • miso-ai/tags/0.9.6/vendor/composer/InstalledVersions.php

    r3062001 r3333221  
    2828{
    2929    /**
     30     * @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
     31     * @internal
     32     */
     33    private static $selfDir = null;
     34
     35    /**
    3036     * @var mixed[]|null
    3137     * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
    3238     */
    3339    private static $installed;
     40
     41    /**
     42     * @var bool
     43     */
     44    private static $installedIsLocalDir;
    3445
    3546    /**
     
    310321        self::$installed = $data;
    311322        self::$installedByVendor = array();
     323
     324        // when using reload, we disable the duplicate protection to ensure that self::$installed data is
     325        // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
     326        // so we have to assume it does not, and that may result in duplicate data being returned when listing
     327        // all installed packages for example
     328        self::$installedIsLocalDir = false;
     329    }
     330
     331    /**
     332     * @return string
     333     */
     334    private static function getSelfDir()
     335    {
     336        if (self::$selfDir === null) {
     337            self::$selfDir = strtr(__DIR__, '\\', '/');
     338        }
     339
     340        return self::$selfDir;
    312341    }
    313342
     
    323352
    324353        $installed = array();
     354        $copiedLocalDir = false;
    325355
    326356        if (self::$canGetVendors) {
     357            $selfDir = self::getSelfDir();
    327358            foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
     359                $vendorDir = strtr($vendorDir, '\\', '/');
    328360                if (isset(self::$installedByVendor[$vendorDir])) {
    329361                    $installed[] = self::$installedByVendor[$vendorDir];
     
    331363                    /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
    332364                    $required = require $vendorDir.'/composer/installed.php';
    333                     $installed[] = self::$installedByVendor[$vendorDir] = $required;
    334                     if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
    335                         self::$installed = $installed[count($installed) - 1];
     365                    self::$installedByVendor[$vendorDir] = $required;
     366                    $installed[] = $required;
     367                    if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
     368                        self::$installed = $required;
     369                        self::$installedIsLocalDir = true;
    336370                    }
     371                }
     372                if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
     373                    $copiedLocalDir = true;
    337374                }
    338375            }
     
    351388        }
    352389
    353         if (self::$installed !== array()) {
     390        if (self::$installed !== array() && !$copiedLocalDir) {
    354391            $installed[] = self::$installed;
    355392        }
  • miso-ai/tags/0.9.6/vendor/composer/autoload_psr4.php

    r3062001 r3333221  
    1010    'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
    1111    'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
    12     'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src', $vendorDir . '/psr/http-factory/src'),
     12    'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-factory/src', $vendorDir . '/psr/http-message/src'),
    1313    'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'),
    1414    'PhpOption\\' => array($vendorDir . '/phpoption/phpoption/src/PhpOption'),
  • miso-ai/tags/0.9.6/vendor/composer/autoload_static.php

    r3062001 r3333221  
    6161        'Psr\\Http\\Message\\' =>
    6262        array (
    63             0 => __DIR__ . '/..' . '/psr/http-message/src',
    64             1 => __DIR__ . '/..' . '/psr/http-factory/src',
     63            0 => __DIR__ . '/..' . '/psr/http-factory/src',
     64            1 => __DIR__ . '/..' . '/psr/http-message/src',
    6565        ),
    6666        'Psr\\Http\\Client\\' =>
  • miso-ai/tags/0.9.6/vendor/composer/installed.json

    r3204556 r3333221  
    6868        {
    6969            "name": "guzzlehttp/guzzle",
    70             "version": "7.9.2",
    71             "version_normalized": "7.9.2.0",
     70            "version": "7.9.3",
     71            "version_normalized": "7.9.3.0",
    7272            "source": {
    7373                "type": "git",
    7474                "url": "https://github.com/guzzle/guzzle.git",
    75                 "reference": "d281ed313b989f213357e3be1a179f02196ac99b"
    76             },
    77             "dist": {
    78                 "type": "zip",
    79                 "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b",
    80                 "reference": "d281ed313b989f213357e3be1a179f02196ac99b",
     75                "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77"
     76            },
     77            "dist": {
     78                "type": "zip",
     79                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77",
     80                "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77",
    8181                "shasum": ""
    8282            },
     
    105105                "psr/log": "Required for using the Log middleware"
    106106            },
    107             "time": "2024-07-24T11:22:20+00:00",
     107            "time": "2025-03-27T13:37:11+00:00",
    108108            "type": "library",
    109109            "extra": {
     
    177177            "support": {
    178178                "issues": "https://github.com/guzzle/guzzle/issues",
    179                 "source": "https://github.com/guzzle/guzzle/tree/7.9.2"
     179                "source": "https://github.com/guzzle/guzzle/tree/7.9.3"
    180180            },
    181181            "funding": [
     
    197197        {
    198198            "name": "guzzlehttp/promises",
    199             "version": "2.0.4",
    200             "version_normalized": "2.0.4.0",
     199            "version": "2.2.0",
     200            "version_normalized": "2.2.0.0",
    201201            "source": {
    202202                "type": "git",
    203203                "url": "https://github.com/guzzle/promises.git",
    204                 "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455"
    205             },
    206             "dist": {
    207                 "type": "zip",
    208                 "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455",
    209                 "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455",
     204                "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c"
     205            },
     206            "dist": {
     207                "type": "zip",
     208                "url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c",
     209                "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c",
    210210                "shasum": ""
    211211            },
     
    217217                "phpunit/phpunit": "^8.5.39 || ^9.6.20"
    218218            },
    219             "time": "2024-10-17T10:06:22+00:00",
     219            "time": "2025-03-27T13:27:01+00:00",
    220220            "type": "library",
    221221            "extra": {
     
    263263            "support": {
    264264                "issues": "https://github.com/guzzle/promises/issues",
    265                 "source": "https://github.com/guzzle/promises/tree/2.0.4"
     265                "source": "https://github.com/guzzle/promises/tree/2.2.0"
    266266            },
    267267            "funding": [
     
    283283        {
    284284            "name": "guzzlehttp/psr7",
    285             "version": "2.7.0",
    286             "version_normalized": "2.7.0.0",
     285            "version": "2.7.1",
     286            "version_normalized": "2.7.1.0",
    287287            "source": {
    288288                "type": "git",
    289289                "url": "https://github.com/guzzle/psr7.git",
    290                 "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201"
    291             },
    292             "dist": {
    293                 "type": "zip",
    294                 "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
    295                 "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
     290                "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16"
     291            },
     292            "dist": {
     293                "type": "zip",
     294                "url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16",
     295                "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16",
    296296                "shasum": ""
    297297            },
     
    314314                "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
    315315            },
    316             "time": "2024-07-18T11:15:46+00:00",
     316            "time": "2025-03-27T12:30:47+00:00",
    317317            "type": "library",
    318318            "extra": {
     
    382382            "support": {
    383383                "issues": "https://github.com/guzzle/psr7/issues",
    384                 "source": "https://github.com/guzzle/psr7/tree/2.7.0"
     384                "source": "https://github.com/guzzle/psr7/tree/2.7.1"
    385385            },
    386386            "funding": [
     
    748748        {
    749749            "name": "symfony/deprecation-contracts",
    750             "version": "v3.5.1",
    751             "version_normalized": "3.5.1.0",
     750            "version": "v3.6.0",
     751            "version_normalized": "3.6.0.0",
    752752            "source": {
    753753                "type": "git",
    754754                "url": "https://github.com/symfony/deprecation-contracts.git",
    755                 "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
    756             },
    757             "dist": {
    758                 "type": "zip",
    759                 "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
    760                 "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
     755                "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62"
     756            },
     757            "dist": {
     758                "type": "zip",
     759                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62",
     760                "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62",
    761761                "shasum": ""
    762762            },
     
    764764                "php": ">=8.1"
    765765            },
    766             "time": "2024-09-25T14:20:29+00:00",
     766            "time": "2024-09-25T14:21:43+00:00",
    767767            "type": "library",
    768768            "extra": {
     769                "thanks": {
     770                    "url": "https://github.com/symfony/contracts",
     771                    "name": "symfony/contracts"
     772                },
    769773                "branch-alias": {
    770                     "dev-main": "3.5-dev"
    771                 },
    772                 "thanks": {
    773                     "name": "symfony/contracts",
    774                     "url": "https://github.com/symfony/contracts"
     774                    "dev-main": "3.6-dev"
    775775                }
    776776            },
     
    798798            "homepage": "https://symfony.com",
    799799            "support": {
    800                 "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
     800                "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0"
    801801            },
    802802            "funding": [
     
    818818        {
    819819            "name": "symfony/polyfill-ctype",
    820             "version": "v1.31.0",
    821             "version_normalized": "1.31.0.0",
     820            "version": "v1.32.0",
     821            "version_normalized": "1.32.0.0",
    822822            "source": {
    823823                "type": "git",
     
    844844            "extra": {
    845845                "thanks": {
    846                     "name": "symfony/polyfill",
    847                     "url": "https://github.com/symfony/polyfill"
     846                    "url": "https://github.com/symfony/polyfill",
     847                    "name": "symfony/polyfill"
    848848                }
    849849            },
     
    880880            ],
    881881            "support": {
    882                 "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
     882                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0"
    883883            },
    884884            "funding": [
     
    900900        {
    901901            "name": "symfony/polyfill-mbstring",
    902             "version": "v1.31.0",
    903             "version_normalized": "1.31.0.0",
     902            "version": "v1.32.0",
     903            "version_normalized": "1.32.0.0",
    904904            "source": {
    905905                "type": "git",
    906906                "url": "https://github.com/symfony/polyfill-mbstring.git",
    907                 "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
    908             },
    909             "dist": {
    910                 "type": "zip",
    911                 "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
    912                 "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
    913                 "shasum": ""
    914             },
    915             "require": {
     907                "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493"
     908            },
     909            "dist": {
     910                "type": "zip",
     911                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493",
     912                "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493",
     913                "shasum": ""
     914            },
     915            "require": {
     916                "ext-iconv": "*",
    916917                "php": ">=7.2"
    917918            },
     
    922923                "ext-mbstring": "For best performance"
    923924            },
    924             "time": "2024-09-09T11:45:10+00:00",
     925            "time": "2024-12-23T08:48:59+00:00",
    925926            "type": "library",
    926927            "extra": {
    927928                "thanks": {
    928                     "name": "symfony/polyfill",
    929                     "url": "https://github.com/symfony/polyfill"
     929                    "url": "https://github.com/symfony/polyfill",
     930                    "name": "symfony/polyfill"
    930931                }
    931932            },
     
    963964            ],
    964965            "support": {
    965                 "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
     966                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0"
    966967            },
    967968            "funding": [
     
    983984        {
    984985            "name": "symfony/polyfill-php80",
    985             "version": "v1.31.0",
    986             "version_normalized": "1.31.0.0",
     986            "version": "v1.32.0",
     987            "version_normalized": "1.32.0.0",
    987988            "source": {
    988989                "type": "git",
    989990                "url": "https://github.com/symfony/polyfill-php80.git",
    990                 "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
    991             },
    992             "dist": {
    993                 "type": "zip",
    994                 "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
    995                 "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
     991                "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608"
     992            },
     993            "dist": {
     994                "type": "zip",
     995                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
     996                "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
    996997                "shasum": ""
    997998            },
     
    9991000                "php": ">=7.2"
    10001001            },
    1001             "time": "2024-09-09T11:45:10+00:00",
     1002            "time": "2025-01-02T08:10:11+00:00",
    10021003            "type": "library",
    10031004            "extra": {
    10041005                "thanks": {
    1005                     "name": "symfony/polyfill",
    1006                     "url": "https://github.com/symfony/polyfill"
     1006                    "url": "https://github.com/symfony/polyfill",
     1007                    "name": "symfony/polyfill"
    10071008                }
    10081009            },
     
    10461047            ],
    10471048            "support": {
    1048                 "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
     1049                "source": "https://github.com/symfony/polyfill-php80/tree/v1.32.0"
    10491050            },
    10501051            "funding": [
     
    10661067        {
    10671068            "name": "vlucas/phpdotenv",
    1068             "version": "v5.6.1",
    1069             "version_normalized": "5.6.1.0",
     1069            "version": "v5.6.2",
     1070            "version_normalized": "5.6.2.0",
    10701071            "source": {
    10711072                "type": "git",
    10721073                "url": "https://github.com/vlucas/phpdotenv.git",
    1073                 "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2"
    1074             },
    1075             "dist": {
    1076                 "type": "zip",
    1077                 "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2",
    1078                 "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2",
     1074                "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af"
     1075            },
     1076            "dist": {
     1077                "type": "zip",
     1078                "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/24ac4c74f91ee2c193fa1aaa5c249cb0822809af",
     1079                "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af",
    10791080                "shasum": ""
    10801081            },
     
    10961097                "ext-filter": "Required to use the boolean validator."
    10971098            },
    1098             "time": "2024-07-20T21:52:34+00:00",
     1099            "time": "2025-04-30T23:37:27+00:00",
    10991100            "type": "library",
    11001101            "extra": {
     
    11371138            "support": {
    11381139                "issues": "https://github.com/vlucas/phpdotenv/issues",
    1139                 "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1"
     1140                "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.2"
    11401141            },
    11411142            "funding": [
     
    11531154        {
    11541155            "name": "woocommerce/action-scheduler",
    1155             "version": "3.9.0",
    1156             "version_normalized": "3.9.0.0",
     1156            "version": "3.9.3",
     1157            "version_normalized": "3.9.3.0",
    11571158            "source": {
    11581159                "type": "git",
    11591160                "url": "https://github.com/woocommerce/action-scheduler.git",
    1160                 "reference": "90b98e6fe97d455679b1d288f050cad8f6f79771"
    1161             },
    1162             "dist": {
    1163                 "type": "zip",
    1164                 "url": "https://api.github.com/repos/woocommerce/action-scheduler/zipball/90b98e6fe97d455679b1d288f050cad8f6f79771",
    1165                 "reference": "90b98e6fe97d455679b1d288f050cad8f6f79771",
    1166                 "shasum": ""
    1167             },
    1168             "require": {
    1169                 "php": ">=7.1"
     1161                "reference": "c58cdbab17651303d406cd3b22cf9d75c71c986c"
     1162            },
     1163            "dist": {
     1164                "type": "zip",
     1165                "url": "https://api.github.com/repos/woocommerce/action-scheduler/zipball/c58cdbab17651303d406cd3b22cf9d75c71c986c",
     1166                "reference": "c58cdbab17651303d406cd3b22cf9d75c71c986c",
     1167                "shasum": ""
     1168            },
     1169            "require": {
     1170                "php": ">=7.2"
    11701171            },
    11711172            "require-dev": {
    1172                 "phpunit/phpunit": "^7.5",
     1173                "phpunit/phpunit": "^8.5",
    11731174                "woocommerce/woocommerce-sniffs": "0.1.0",
    11741175                "wp-cli/wp-cli": "~2.5.0",
    11751176                "yoast/phpunit-polyfills": "^2.0"
    11761177            },
    1177             "time": "2024-11-15T00:11:39+00:00",
     1178            "time": "2025-07-15T09:32:30+00:00",
    11781179            "type": "wordpress-plugin",
    11791180            "extra": {
     
    11931194            "support": {
    11941195                "issues": "https://github.com/woocommerce/action-scheduler/issues",
    1195                 "source": "https://github.com/woocommerce/action-scheduler/tree/3.9.0"
     1196                "source": "https://github.com/woocommerce/action-scheduler/tree/3.9.3"
    11961197            },
    11971198            "install-path": "../woocommerce/action-scheduler"
  • miso-ai/tags/0.9.6/vendor/composer/installed.php

    r3204556 r3333221  
    3030        ),
    3131        'guzzlehttp/guzzle' => array(
    32             'pretty_version' => '7.9.2',
    33             'version' => '7.9.2.0',
    34             'reference' => 'd281ed313b989f213357e3be1a179f02196ac99b',
     32            'pretty_version' => '7.9.3',
     33            'version' => '7.9.3.0',
     34            'reference' => '7b2f29fe81dc4da0ca0ea7d42107a0845946ea77',
    3535            'type' => 'library',
    3636            'install_path' => __DIR__ . '/../guzzlehttp/guzzle',
     
    3939        ),
    4040        'guzzlehttp/promises' => array(
    41             'pretty_version' => '2.0.4',
    42             'version' => '2.0.4.0',
    43             'reference' => 'f9c436286ab2892c7db7be8c8da4ef61ccf7b455',
     41            'pretty_version' => '2.2.0',
     42            'version' => '2.2.0.0',
     43            'reference' => '7c69f28996b0a6920945dd20b3857e499d9ca96c',
    4444            'type' => 'library',
    4545            'install_path' => __DIR__ . '/../guzzlehttp/promises',
     
    4848        ),
    4949        'guzzlehttp/psr7' => array(
    50             'pretty_version' => '2.7.0',
    51             'version' => '2.7.0.0',
    52             'reference' => 'a70f5c95fb43bc83f07c9c948baa0dc1829bf201',
     50            'pretty_version' => '2.7.1',
     51            'version' => '2.7.1.0',
     52            'reference' => 'c2270caaabe631b3b44c85f99e5a04bbb8060d16',
    5353            'type' => 'library',
    5454            'install_path' => __DIR__ . '/../guzzlehttp/psr7',
     
    129129        ),
    130130        'symfony/deprecation-contracts' => array(
    131             'pretty_version' => 'v3.5.1',
    132             'version' => '3.5.1.0',
    133             'reference' => '74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6',
     131            'pretty_version' => 'v3.6.0',
     132            'version' => '3.6.0.0',
     133            'reference' => '63afe740e99a13ba87ec199bb07bbdee937a5b62',
    134134            'type' => 'library',
    135135            'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
     
    138138        ),
    139139        'symfony/polyfill-ctype' => array(
    140             'pretty_version' => 'v1.31.0',
    141             'version' => '1.31.0.0',
     140            'pretty_version' => 'v1.32.0',
     141            'version' => '1.32.0.0',
    142142            'reference' => 'a3cc8b044a6ea513310cbd48ef7333b384945638',
    143143            'type' => 'library',
     
    147147        ),
    148148        'symfony/polyfill-mbstring' => array(
    149             'pretty_version' => 'v1.31.0',
    150             'version' => '1.31.0.0',
    151             'reference' => '85181ba99b2345b0ef10ce42ecac37612d9fd341',
     149            'pretty_version' => 'v1.32.0',
     150            'version' => '1.32.0.0',
     151            'reference' => '6d857f4d76bd4b343eac26d6b539585d2bc56493',
    152152            'type' => 'library',
    153153            'install_path' => __DIR__ . '/../symfony/polyfill-mbstring',
     
    156156        ),
    157157        'symfony/polyfill-php80' => array(
    158             'pretty_version' => 'v1.31.0',
    159             'version' => '1.31.0.0',
    160             'reference' => '60328e362d4c2c802a54fcbf04f9d3fb892b4cf8',
     158            'pretty_version' => 'v1.32.0',
     159            'version' => '1.32.0.0',
     160            'reference' => '0cc9dd0f17f61d8131e7df6b84bd344899fe2608',
    161161            'type' => 'library',
    162162            'install_path' => __DIR__ . '/../symfony/polyfill-php80',
     
    165165        ),
    166166        'vlucas/phpdotenv' => array(
    167             'pretty_version' => 'v5.6.1',
    168             'version' => '5.6.1.0',
    169             'reference' => 'a59a13791077fe3d44f90e7133eb68e7d22eaff2',
     167            'pretty_version' => 'v5.6.2',
     168            'version' => '5.6.2.0',
     169            'reference' => '24ac4c74f91ee2c193fa1aaa5c249cb0822809af',
    170170            'type' => 'library',
    171171            'install_path' => __DIR__ . '/../vlucas/phpdotenv',
     
    174174        ),
    175175        'woocommerce/action-scheduler' => array(
    176             'pretty_version' => '3.9.0',
    177             'version' => '3.9.0.0',
    178             'reference' => '90b98e6fe97d455679b1d288f050cad8f6f79771',
     176            'pretty_version' => '3.9.3',
     177            'version' => '3.9.3.0',
     178            'reference' => 'c58cdbab17651303d406cd3b22cf9d75c71c986c',
    179179            'type' => 'wordpress-plugin',
    180180            'install_path' => __DIR__ . '/../woocommerce/action-scheduler',
  • miso-ai/tags/0.9.6/vendor/composer/platform_check.php

    r3062001 r3333221  
    2020        }
    2121    }
    22     trigger_error(
    23         'Composer detected issues in your platform: ' . implode(' ', $issues),
    24         E_USER_ERROR
     22    throw new \RuntimeException(
     23        'Composer detected issues in your platform: ' . implode(' ', $issues)
    2524    );
    2625}
  • miso-ai/tags/0.9.6/vendor/guzzlehttp/guzzle/CHANGELOG.md

    r3174859 r3333221  
    22
    33Please refer to [UPGRADING](UPGRADING.md) guide for upgrading to a major version.
     4
     5
     6## 7.9.3 - 2025-03-27
     7
     8### Changed
     9
     10- Remove explicit content-length header for GET requests
     11- Improve compatibility with bad servers for boolean cookie values
    412
    513
  • miso-ai/tags/0.9.6/vendor/guzzlehttp/guzzle/src/Cookie/SetCookie.php

    r3062001 r3333221  
    6363                                $data[$search] = (int) $value;
    6464                            }
     65                        } elseif ($search === 'Secure' || $search === 'Discard' || $search === 'HttpOnly') {
     66                            if ($value) {
     67                                $data[$search] = true;
     68                            }
    6569                        } else {
    6670                            $data[$search] = $value;
  • miso-ai/tags/0.9.6/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php

    r3062001 r3333221  
    1818     * requests to another handler.
    1919     *
    20      * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $default Handler used for normal responses
    21      * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $sync    Handler used for synchronous responses.
     20     * @param callable(RequestInterface, array): PromiseInterface $default Handler used for normal responses
     21     * @param callable(RequestInterface, array): PromiseInterface $sync    Handler used for synchronous responses.
    2222     *
    23      * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the composed handler.
     23     * @return callable(RequestInterface, array): PromiseInterface Returns the composed handler.
    2424     */
    2525    public static function wrapSync(callable $default, callable $sync): callable
     
    3838     * through the StreamHandler.
    3939     *
    40      * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $default   Handler used for non-streaming responses
    41      * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $streaming Handler used for streaming responses
     40     * @param callable(RequestInterface, array): PromiseInterface $default   Handler used for non-streaming responses
     41     * @param callable(RequestInterface, array): PromiseInterface $streaming Handler used for streaming responses
    4242     *
    43      * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the composed handler.
     43     * @return callable(RequestInterface, array): PromiseInterface Returns the composed handler.
    4444     */
    4545    public static function wrapStreaming(callable $default, callable $streaming): callable
  • miso-ai/tags/0.9.6/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php

    r3174859 r3333221  
    5454
    5555            // Append a content-length header if body size is zero to match
    56             // cURL's behavior.
    57             if (0 === $request->getBody()->getSize()) {
     56            // the behavior of `CurlHandler`
     57            if (
     58                (
     59                    0 === \strcasecmp('PUT', $request->getMethod())
     60                    || 0 === \strcasecmp('POST', $request->getMethod())
     61                )
     62                && 0 === $request->getBody()->getSize()
     63            ) {
    5864                $request = $request->withHeader('Content-Length', '0');
    5965            }
  • miso-ai/tags/0.9.6/vendor/guzzlehttp/guzzle/src/Pool.php

    r3062001 r3333221  
    8787     * @param array|\Iterator $requests Requests to send concurrently.
    8888     * @param array           $options  Passes through the options available in
    89      *                                  {@see \GuzzleHttp\Pool::__construct}
     89     *                                  {@see Pool::__construct}
    9090     *
    9191     * @return array Returns an array containing the response or an exception
  • miso-ai/tags/0.9.6/vendor/guzzlehttp/guzzle/src/Utils.php

    r3174859 r3333221  
    8080     * The returned handler is not wrapped by any default middlewares.
    8181     *
    82      * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the best handler for the given system.
     82     * @return callable(\Psr\Http\Message\RequestInterface, array): Promise\PromiseInterface Returns the best handler for the given system.
    8383     *
    8484     * @throws \RuntimeException if no viable Handler is available.
  • miso-ai/tags/0.9.6/vendor/guzzlehttp/guzzle/src/functions.php

    r3062001 r3333221  
    5151 * The returned handler is not wrapped by any default middlewares.
    5252 *
    53  * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the best handler for the given system.
     53 * @return callable(\Psr\Http\Message\RequestInterface, array): Promise\PromiseInterface Returns the best handler for the given system.
    5454 *
    5555 * @throws \RuntimeException if no viable Handler is available.
  • miso-ai/tags/0.9.6/vendor/guzzlehttp/promises/CHANGELOG.md

    r3174859 r3333221  
    11# CHANGELOG
     2
     3
     4## 2.2.0 - 2025-03-27
     5
     6### Fixed
     7
     8- Revert "Allow an empty EachPromise to be resolved by running the queue"
     9
     10
     11## 2.1.0 - 2025-03-27
     12
     13### Added
     14
     15- Allow an empty EachPromise to be resolved by running the queue
    216
    317
  • miso-ai/tags/0.9.6/vendor/guzzlehttp/psr7/CHANGELOG.md

    r3174859 r3333221  
    55The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    66and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
     7
     8## 2.7.1 - 2025-03-27
     9
     10### Fixed
     11
     12- Fixed uppercase IPv6 addresses in URI
     13
     14### Changed
     15
     16- Improve uploaded file error message
    717
    818## 2.7.0 - 2024-07-18
  • miso-ai/tags/0.9.6/vendor/guzzlehttp/psr7/src/UploadedFile.php

    r3174859 r3333221  
    1212class UploadedFile implements UploadedFileInterface
    1313{
    14     private const ERRORS = [
    15         UPLOAD_ERR_OK,
    16         UPLOAD_ERR_INI_SIZE,
    17         UPLOAD_ERR_FORM_SIZE,
    18         UPLOAD_ERR_PARTIAL,
    19         UPLOAD_ERR_NO_FILE,
    20         UPLOAD_ERR_NO_TMP_DIR,
    21         UPLOAD_ERR_CANT_WRITE,
    22         UPLOAD_ERR_EXTENSION,
     14    private const ERROR_MAP = [
     15        UPLOAD_ERR_OK => 'UPLOAD_ERR_OK',
     16        UPLOAD_ERR_INI_SIZE => 'UPLOAD_ERR_INI_SIZE',
     17        UPLOAD_ERR_FORM_SIZE => 'UPLOAD_ERR_FORM_SIZE',
     18        UPLOAD_ERR_PARTIAL => 'UPLOAD_ERR_PARTIAL',
     19        UPLOAD_ERR_NO_FILE => 'UPLOAD_ERR_NO_FILE',
     20        UPLOAD_ERR_NO_TMP_DIR => 'UPLOAD_ERR_NO_TMP_DIR',
     21        UPLOAD_ERR_CANT_WRITE => 'UPLOAD_ERR_CANT_WRITE',
     22        UPLOAD_ERR_EXTENSION => 'UPLOAD_ERR_EXTENSION',
    2323    ];
    2424
     
    105105    private function setError(int $error): void
    106106    {
    107         if (false === in_array($error, UploadedFile::ERRORS, true)) {
     107        if (!isset(UploadedFile::ERROR_MAP[$error])) {
    108108            throw new InvalidArgumentException(
    109109                'Invalid error status for UploadedFile'
     
    138138    {
    139139        if (false === $this->isOk()) {
    140             throw new RuntimeException('Cannot retrieve stream due to upload error');
     140            throw new RuntimeException(\sprintf('Cannot retrieve stream due to upload error (%s)', self::ERROR_MAP[$this->error]));
    141141        }
    142142
  • miso-ai/tags/0.9.6/vendor/guzzlehttp/psr7/src/Uri.php

    r3174859 r3333221  
    108108        // If IPv6
    109109        $prefix = '';
    110         if (preg_match('%^(.*://\[[0-9:a-f]+\])(.*?)$%', $url, $matches)) {
     110        if (preg_match('%^(.*://\[[0-9:a-fA-F]+\])(.*?)$%', $url, $matches)) {
    111111            /** @var array{0:string, 1:string, 2:string} $matches */
    112112            $prefix = $matches[1];
  • miso-ai/tags/0.9.6/vendor/symfony/deprecation-contracts/composer.json

    r3174859 r3333221  
    2626    "extra": {
    2727        "branch-alias": {
    28             "dev-main": "3.5-dev"
     28            "dev-main": "3.6-dev"
    2929        },
    3030        "thanks": {
  • miso-ai/tags/0.9.6/vendor/symfony/polyfill-mbstring/Mbstring.php

    r3174859 r3333221  
    984984    public static function mb_rtrim(string $string, ?string $characters = null, ?string $encoding = null): string
    985985    {
    986         return self::mb_internal_trim('{[%s]+$}D', $string, $characters, $encoding, __FUNCTION__);
     986        return self::mb_internal_trim('{[%s]+$}Du', $string, $characters, $encoding, __FUNCTION__);
    987987    }
    988988
  • miso-ai/tags/0.9.6/vendor/symfony/polyfill-mbstring/bootstrap80.php

    r3174859 r3333221  
    134134
    135135if (!function_exists('mb_ucfirst')) {
    136     function mb_ucfirst($string, ?string $encoding = null): string { return p\Mbstring::mb_ucfirst($string, $encoding); }
     136    function mb_ucfirst(string $string, ?string $encoding = null): string { return p\Mbstring::mb_ucfirst($string, $encoding); }
    137137}
    138138
    139139if (!function_exists('mb_lcfirst')) {
    140     function mb_lcfirst($string, ?string $encoding = null): string { return p\Mbstring::mb_lcfirst($string, $encoding); }
     140    function mb_lcfirst(string $string, ?string $encoding = null): string { return p\Mbstring::mb_lcfirst($string, $encoding); }
    141141}
    142142
  • miso-ai/tags/0.9.6/vendor/symfony/polyfill-mbstring/composer.json

    r3174859 r3333221  
    1717    ],
    1818    "require": {
    19         "php": ">=7.2"
     19        "php": ">=7.2",
     20        "ext-iconv": "*"
    2021    },
    2122    "provide": {
  • miso-ai/tags/0.9.6/vendor/symfony/polyfill-php80/PhpToken.php

    r3062001 r3333221  
    3030
    3131    /**
    32      * @var int
     32     * @var -1|positive-int
    3333     */
    3434    public $line;
     
    3939    public $pos;
    4040
     41    /**
     42     * @param -1|positive-int $line
     43     */
    4144    public function __construct(int $id, string $text, int $line = -1, int $position = -1)
    4245    {
     
    8184
    8285    /**
    83      * @return static[]
     86     * @return list<static>
    8487     */
    8588    public static function tokenize(string $code, int $flags = 0): array
  • miso-ai/tags/0.9.6/vendor/vlucas/phpdotenv/src/Dotenv.php

    r3174859 r3333221  
    200200     * @throws \Dotenv\Exception\InvalidFileException
    201201     *
    202      * @return array<string,string|null>
     202     * @return array<string, string|null>
    203203     */
    204204    public static function parse(string $content)
     
    216216     * @throws \Dotenv\Exception\InvalidPathException|\Dotenv\Exception\InvalidEncodingException|\Dotenv\Exception\InvalidFileException
    217217     *
    218      * @return array<string,string|null>
     218     * @return array<string, string|null>
    219219     */
    220220    public function load()
     
    230230     * @throws \Dotenv\Exception\InvalidEncodingException|\Dotenv\Exception\InvalidFileException
    231231     *
    232      * @return array<string,string|null>
     232     * @return array<string, string|null>
    233233     */
    234234    public function safeLoad()
  • miso-ai/tags/0.9.6/vendor/vlucas/phpdotenv/src/Loader/Loader.php

    r3062001 r3333221  
    2020     * @param \Dotenv\Parser\Entry[]                 $entries
    2121     *
    22      * @return array<string,string|null>
     22     * @return array<string, string|null>
    2323     */
    2424    public function load(RepositoryInterface $repository, array $entries)
    2525    {
     26        /** @var array<string, string|null> */
    2627        return \array_reduce($entries, static function (array $vars, Entry $entry) use ($repository) {
    2728            $name = $entry->getName();
  • miso-ai/tags/0.9.6/vendor/vlucas/phpdotenv/src/Loader/LoaderInterface.php

    r3062001 r3333221  
    1515     * @param \Dotenv\Parser\Entry[]                 $entries
    1616     *
    17      * @return array<string,string|null>
     17     * @return array<string, string|null>
    1818     */
    1919    public function load(RepositoryInterface $repository, array $entries);
  • miso-ai/tags/0.9.6/vendor/vlucas/phpdotenv/src/Loader/Resolver.php

    r3062001 r3333221  
    5656            '/\A\${([a-zA-Z0-9_.]+)}/',
    5757            static function (array $matches) use ($repository) {
    58                 return Option::fromValue($repository->get($matches[1]))
    59                     ->getOrElse($matches[0]);
     58                /** @var string */
     59                return Option::fromValue($repository->get($matches[1]))->getOrElse($matches[0]);
    6060            },
    6161            $str,
  • miso-ai/tags/0.9.6/vendor/vlucas/phpdotenv/src/Parser/EntryParser.php

    r3062001 r3333221  
    4242     * @param string $entry
    4343     *
    44      * @return \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Entry,string>
     44     * @return \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Entry, string>
    4545     */
    4646    public static function parse(string $entry)
     
    5050
    5151            return self::parseName($name)->flatMap(static function (string $name) use ($value) {
    52                 /** @var Result<Value|null,string> */
     52                /** @var Result<Value|null, string> */
    5353                $parsedValue = $value === null ? Success::create(null) : self::parseValue($value);
    5454
     
    6565     * @param string $line
    6666     *
    67      * @return \GrahamCampbell\ResultType\Result<array{string,string|null},string>
     67     * @return \GrahamCampbell\ResultType\Result<array{string, string|null},string>
    6868     */
    6969    private static function splitStringIntoParts(string $line)
    7070    {
    71         /** @var array{string,string|null} */
     71        /** @var array{string, string|null} */
    7272        $result = Str::pos($line, '=')->map(static function () use ($line) {
    7373            return \array_map('trim', \explode('=', $line, 2));
     
    7575
    7676        if ($result[0] === '') {
    77             /** @var \GrahamCampbell\ResultType\Result<array{string,string|null},string> */
     77            /** @var \GrahamCampbell\ResultType\Result<array{string, string|null},string> */
    7878            return Error::create(self::getErrorMessage('an unexpected equals', $line));
    7979        }
    8080
    81         /** @var \GrahamCampbell\ResultType\Result<array{string,string|null},string> */
     81        /** @var \GrahamCampbell\ResultType\Result<array{string, string|null},string> */
    8282        return Success::create($result);
    8383    }
     
    9191     * @param string $name
    9292     *
    93      * @return \GrahamCampbell\ResultType\Result<string,string>
     93     * @return \GrahamCampbell\ResultType\Result<string, string>
    9494     */
    9595    private static function parseName(string $name)
     
    104104
    105105        if (!self::isValidName($name)) {
    106             /** @var \GrahamCampbell\ResultType\Result<string,string> */
     106            /** @var \GrahamCampbell\ResultType\Result<string, string> */
    107107            return Error::create(self::getErrorMessage('an invalid name', $name));
    108108        }
    109109
    110         /** @var \GrahamCampbell\ResultType\Result<string,string> */
     110        /** @var \GrahamCampbell\ResultType\Result<string, string> */
    111111        return Success::create($name);
    112112    }
     
    153153     * @param string $value
    154154     *
    155      * @return \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Value,string>
     155     * @return \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Value, string>
    156156     */
    157157    private static function parseValue(string $value)
    158158    {
    159159        if (\trim($value) === '') {
    160             /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Value,string> */
     160            /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Value, string> */
    161161            return Success::create(Value::blank());
    162162        }
     
    171171            /** @psalm-suppress DocblockTypeContradiction */
    172172            if (in_array($result[1], self::REJECT_STATES, true)) {
    173                 /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Value,string> */
     173                /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Value, string> */
    174174                return Error::create('a missing closing quote');
    175175            }
    176176
    177             /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Value,string> */
     177            /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Value, string> */
    178178            return Success::create($result[0]);
    179179        })->mapError(static function (string $err) use ($value) {
     
    188188     * @param string $token
    189189     *
    190      * @return \GrahamCampbell\ResultType\Result<array{string,bool,int},string>
     190     * @return \GrahamCampbell\ResultType\Result<array{string, bool, int}, string>
    191191     */
    192192    private static function processToken(int $state, string $token)
     
    195195            case self::INITIAL_STATE:
    196196                if ($token === '\'') {
    197                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     197                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    198198                    return Success::create(['', false, self::SINGLE_QUOTED_STATE]);
    199199                } elseif ($token === '"') {
    200                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     200                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    201201                    return Success::create(['', false, self::DOUBLE_QUOTED_STATE]);
    202202                } elseif ($token === '#') {
    203                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     203                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    204204                    return Success::create(['', false, self::COMMENT_STATE]);
    205205                } elseif ($token === '$') {
    206                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     206                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    207207                    return Success::create([$token, true, self::UNQUOTED_STATE]);
    208208                } else {
    209                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     209                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    210210                    return Success::create([$token, false, self::UNQUOTED_STATE]);
    211211                }
    212212            case self::UNQUOTED_STATE:
    213213                if ($token === '#') {
    214                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     214                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    215215                    return Success::create(['', false, self::COMMENT_STATE]);
    216216                } elseif (\ctype_space($token)) {
    217                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     217                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    218218                    return Success::create(['', false, self::WHITESPACE_STATE]);
    219219                } elseif ($token === '$') {
    220                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     220                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    221221                    return Success::create([$token, true, self::UNQUOTED_STATE]);
    222222                } else {
    223                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     223                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    224224                    return Success::create([$token, false, self::UNQUOTED_STATE]);
    225225                }
    226226            case self::SINGLE_QUOTED_STATE:
    227227                if ($token === '\'') {
    228                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     228                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    229229                    return Success::create(['', false, self::WHITESPACE_STATE]);
    230230                } else {
    231                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     231                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    232232                    return Success::create([$token, false, self::SINGLE_QUOTED_STATE]);
    233233                }
    234234            case self::DOUBLE_QUOTED_STATE:
    235235                if ($token === '"') {
    236                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     236                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    237237                    return Success::create(['', false, self::WHITESPACE_STATE]);
    238238                } elseif ($token === '\\') {
    239                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     239                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    240240                    return Success::create(['', false, self::ESCAPE_SEQUENCE_STATE]);
    241241                } elseif ($token === '$') {
    242                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     242                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    243243                    return Success::create([$token, true, self::DOUBLE_QUOTED_STATE]);
    244244                } else {
    245                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     245                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    246246                    return Success::create([$token, false, self::DOUBLE_QUOTED_STATE]);
    247247                }
    248248            case self::ESCAPE_SEQUENCE_STATE:
    249249                if ($token === '"' || $token === '\\') {
    250                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     250                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    251251                    return Success::create([$token, false, self::DOUBLE_QUOTED_STATE]);
    252252                } elseif ($token === '$') {
    253                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     253                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    254254                    return Success::create([$token, false, self::DOUBLE_QUOTED_STATE]);
    255255                } else {
    256256                    $first = Str::substr($token, 0, 1);
    257257                    if (\in_array($first, ['f', 'n', 'r', 't', 'v'], true)) {
    258                         /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     258                        /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    259259                        return Success::create([\stripcslashes('\\'.$first).Str::substr($token, 1), false, self::DOUBLE_QUOTED_STATE]);
    260260                    } else {
    261                         /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     261                        /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    262262                        return Error::create('an unexpected escape sequence');
    263263                    }
     
    265265            case self::WHITESPACE_STATE:
    266266                if ($token === '#') {
    267                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     267                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    268268                    return Success::create(['', false, self::COMMENT_STATE]);
    269269                } elseif (!\ctype_space($token)) {
    270                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     270                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    271271                    return Error::create('unexpected whitespace');
    272272                } else {
    273                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     273                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    274274                    return Success::create(['', false, self::WHITESPACE_STATE]);
    275275                }
    276276            case self::COMMENT_STATE:
    277                 /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     277                /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    278278                return Success::create(['', false, self::COMMENT_STATE]);
    279279            default:
  • miso-ai/tags/0.9.6/vendor/vlucas/phpdotenv/src/Parser/Lines.php

    r3062001 r3333221  
    5555     * @param string[] $buffer
    5656     *
    57      * @return array{bool,string,string[]}
     57     * @return array{bool,string, string[]}
    5858     */
    5959    private static function multilineProcess(bool $multiline, string $line, array $buffer)
  • miso-ai/tags/0.9.6/vendor/vlucas/phpdotenv/src/Parser/Parser.php

    r3062001 r3333221  
    3737     * @param string[] $entries
    3838     *
    39      * @return \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Entry[],string>
     39     * @return \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Entry[], string>
    4040     */
    4141    private static function process(array $entries)
    4242    {
    43         /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Entry[],string> */
     43        /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Entry[], string> */
    4444        return \array_reduce($entries, static function (Result $result, string $raw) {
    4545            return $result->flatMap(static function (array $entries) use ($raw) {
  • miso-ai/tags/0.9.6/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php

    r3062001 r3333221  
    1313     * The variables and their values.
    1414     *
    15      * @var array<string,string>
     15     * @var array<string, string>
    1616     */
    1717    private $variables;
  • miso-ai/tags/0.9.6/vendor/vlucas/phpdotenv/src/Repository/Adapter/ImmutableWriter.php

    r3062001 r3333221  
    2424     * The record of loaded variables.
    2525     *
    26      * @var array<string,string>
     26     * @var array<string, string>
    2727     */
    2828    private $loaded;
  • miso-ai/tags/0.9.6/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReplacingWriter.php

    r3062001 r3333221  
    2424     * The record of seen variables.
    2525     *
    26      * @var array<string,string>
     26     * @var array<string, string>
    2727     */
    2828    private $seen;
  • miso-ai/tags/0.9.6/vendor/vlucas/phpdotenv/src/Store/File/Reader.php

    r3174859 r3333221  
    3939     * @throws \Dotenv\Exception\InvalidEncodingException
    4040     *
    41      * @return array<string,string>
     41     * @return array<string, string>
    4242     */
    4343    public static function read(array $filePaths, bool $shortCircuit = true, ?string $fileEncoding = null)
  • miso-ai/tags/0.9.6/vendor/vlucas/phpdotenv/src/Util/Regex.php

    r3174859 r3333221  
    3131     * @param string $subject
    3232     *
    33      * @return \GrahamCampbell\ResultType\Result<bool,string>
     33     * @return \GrahamCampbell\ResultType\Result<bool, string>
    3434     */
    3535    public static function matches(string $pattern, string $subject)
     
    4646     * @param string $subject
    4747     *
    48      * @return \GrahamCampbell\ResultType\Result<int,string>
     48     * @return \GrahamCampbell\ResultType\Result<int, string>
    4949     */
    5050    public static function occurrences(string $pattern, string $subject)
     
    5858     * Perform a preg replace callback, wrapping up the result.
    5959     *
    60      * @param string   $pattern
    61      * @param callable $callback
    62      * @param string   $subject
    63      * @param int|null $limit
     60     * @param string                     $pattern
     61     * @param callable(string[]): string $callback
     62     * @param string                     $subject
     63     * @param int|null                   $limit
    6464     *
    65      * @return \GrahamCampbell\ResultType\Result<string,string>
     65     * @return \GrahamCampbell\ResultType\Result<string, string>
    6666     */
    6767    public static function replaceCallback(string $pattern, callable $callback, string $subject, ?int $limit = null)
     
    7878     * @param string $subject
    7979     *
    80      * @return \GrahamCampbell\ResultType\Result<string[],string>
     80     * @return \GrahamCampbell\ResultType\Result<string[], string>
    8181     */
    8282    public static function split(string $pattern, string $subject)
     
    9393     * @template V
    9494     *
    95      * @param callable(string):V $operation
    96      * @param string             $subject
     95     * @param callable(string): V $operation
     96     * @param string              $subject
    9797     *
    98      * @return \GrahamCampbell\ResultType\Result<V,string>
     98     * @return \GrahamCampbell\ResultType\Result<V, string>
    9999     */
    100100    private static function pregAndWrap(callable $operation, string $subject)
  • miso-ai/tags/0.9.6/vendor/vlucas/phpdotenv/src/Util/Str.php

    r3174859 r3333221  
    3232     * @param string|null $encoding
    3333     *
    34      * @return \GrahamCampbell\ResultType\Result<string,string>
     34     * @return \GrahamCampbell\ResultType\Result<string, string>
    3535     */
    3636    public static function utf8(string $input, ?string $encoding = null)
    3737    {
    3838        if ($encoding !== null && !\in_array($encoding, \mb_list_encodings(), true)) {
    39             /** @var \GrahamCampbell\ResultType\Result<string,string> */
     39            /** @var \GrahamCampbell\ResultType\Result<string, string> */
    4040            return Error::create(
    4141                \sprintf('Illegal character encoding [%s] specified.', $encoding)
    4242            );
    4343        }
     44
    4445        $converted = $encoding === null ?
    4546            @\mb_convert_encoding($input, 'UTF-8') :
    4647            @\mb_convert_encoding($input, 'UTF-8', $encoding);
     48
     49        if (!is_string($converted)) {
     50            /** @var \GrahamCampbell\ResultType\Result<string, string> */
     51            return Error::create(
     52                \sprintf('Conversion from encoding [%s] failed.', $encoding ?? 'NULL')
     53            );
     54        }
     55
    4756        /**
    4857         * this is for support UTF-8 with BOM encoding
     
    5362            $converted = \substr($converted, 3);
    5463        }
    55         /** @var \GrahamCampbell\ResultType\Result<string,string> */
     64
     65        /** @var \GrahamCampbell\ResultType\Result<string, string> */
    5666        return Success::create($converted);
    5767    }
  • miso-ai/tags/0.9.6/vendor/vlucas/phpdotenv/src/Validator.php

    r3062001 r3333221  
    3131     * @param \Dotenv\Repository\RepositoryInterface $repository
    3232     * @param string[]                               $variables
    33      *
    34      * @throws \Dotenv\Exception\ValidationException
    3533     *
    3634     * @return void
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/action-scheduler.php

    r3204556 r3333221  
    66 * Author: Automattic
    77 * Author URI: https://automattic.com/
    8  * Version: 3.9.0
     8 * Version: 3.9.3
    99 * License: GPLv3
    1010 * Requires at least: 6.5
    11  * Tested up to: 6.7
    12  * Requires PHP: 7.1
     11 * Tested up to: 6.8
     12 * Requires PHP: 7.2
    1313 *
    1414 * Copyright 2019 Automattic, Inc.  (https://automattic.com/contact/)
     
    3030 */
    3131
    32 if ( ! function_exists( 'action_scheduler_register_3_dot_9_dot_0' ) && function_exists( 'add_action' ) ) { // WRCS: DEFINED_VERSION.
     32if ( ! function_exists( 'action_scheduler_register_3_dot_9_dot_3' ) && function_exists( 'add_action' ) ) { // WRCS: DEFINED_VERSION.
    3333
    3434    if ( ! class_exists( 'ActionScheduler_Versions', false ) ) {
     
    3737    }
    3838
    39     add_action( 'plugins_loaded', 'action_scheduler_register_3_dot_9_dot_0', 0, 0 ); // WRCS: DEFINED_VERSION.
     39    add_action( 'plugins_loaded', 'action_scheduler_register_3_dot_9_dot_3', 0, 0 ); // WRCS: DEFINED_VERSION.
    4040
    4141    // phpcs:disable Generic.Functions.OpeningFunctionBraceKernighanRitchie.ContentAfterBrace
     
    4343     * Registers this version of Action Scheduler.
    4444     */
    45     function action_scheduler_register_3_dot_9_dot_0() { // WRCS: DEFINED_VERSION.
     45    function action_scheduler_register_3_dot_9_dot_3() { // WRCS: DEFINED_VERSION.
    4646        $versions = ActionScheduler_Versions::instance();
    47         $versions->register( '3.9.0', 'action_scheduler_initialize_3_dot_9_dot_0' ); // WRCS: DEFINED_VERSION.
     47        $versions->register( '3.9.3', 'action_scheduler_initialize_3_dot_9_dot_3' ); // WRCS: DEFINED_VERSION.
    4848    }
    4949
     
    5252     * Initializes this version of Action Scheduler.
    5353     */
    54     function action_scheduler_initialize_3_dot_9_dot_0() { // WRCS: DEFINED_VERSION.
     54    function action_scheduler_initialize_3_dot_9_dot_3() { // WRCS: DEFINED_VERSION.
    5555        // A final safety check is required even here, because historic versions of Action Scheduler
    5656        // followed a different pattern (in some unusual cases, we could reach this point and the
     
    6464    // Support usage in themes - load this version if no plugin has loaded a version yet.
    6565    if ( did_action( 'plugins_loaded' ) && ! doing_action( 'plugins_loaded' ) && ! class_exists( 'ActionScheduler', false ) ) {
    66         action_scheduler_initialize_3_dot_9_dot_0(); // WRCS: DEFINED_VERSION.
     66        action_scheduler_initialize_3_dot_9_dot_3(); // WRCS: DEFINED_VERSION.
    6767        do_action( 'action_scheduler_pre_theme_init' );
    6868        ActionScheduler_Versions::initialize_latest_version();
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/changelog.txt

    r3204556 r3333221  
    11*** Changelog ***
     2
     3= 3.9.3 - 2025-07-15 =
     4* Add hook 'action_scheduler_ensure_recurring_actions' specifically for scheduling recurring actions.
     5* Assume an action is valid until proven otherwise.
     6* Implement SKIP LOCKED during action claiming.
     7* Import `get_flag_value()` from `WP_CLI\Utils` before using.
     8* Make `$unique` available to all pre-creation/short-circuit hooks.
     9* Make version/source information available via new class.
     10* Only release claims on pending actions.
     11* Tweak - WP 6.8 compatibility.
     12* Update minimum supported php and phpunit versions.
     13* Update readme.txt.
     14* WP CLI get action command: correct parentheses/nesting of conditional checks.
     15
     16= 3.9.2 - 2025-02-03 =
     17* Fixed fatal errors by moving version info methods to a new class and deprecating conflicting ones in ActionScheduler_Versions
     18
     19= 3.9.1 - 2025-01-21 =
     20* A number of new WP CLI commands have been added, making it easier to manage actions in the terminal and from scripts.
     21* New wp action-scheduler source command to help determine how Action Scheduler is being loaded.
     22* Additional information about the active instance of Action Scheduler is now available in the Help pull-down drawer.
     23* Make some other nullable parameters explicitly nullable.
     24* Set option value to `no` rather than deleting.
    225
    326= 3.9.0 - 2024-11-14 = 
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionFactory.php

    r3204556 r3333221  
    99     * Return stored actions for given params.
    1010     *
    11      * @param string                   $status The action's status in the data store.
    12      * @param string                   $hook The hook to trigger when this action runs.
    13      * @param array                    $args Args to pass to callbacks when the hook is triggered.
    14      * @param ActionScheduler_Schedule $schedule The action's schedule.
    15      * @param string                   $group A group to put the action in.
     11     * @param string                        $status The action's status in the data store.
     12     * @param string                        $hook The hook to trigger when this action runs.
     13     * @param array                         $args Args to pass to callbacks when the hook is triggered.
     14     * @param ActionScheduler_Schedule|null $schedule The action's schedule.
     15     * @param string                        $group A group to put the action in.
    1616     * phpcs:ignore Squiz.Commenting.FunctionComment.ExtraParamComment
    17      * @param int                      $priority The action priority.
     17     * @param int                           $priority The action priority.
    1818     *
    1919     * @return ActionScheduler_Action An instance of the stored action.
    2020     */
    21     public function get_stored_action( $status, $hook, array $args = array(), ActionScheduler_Schedule $schedule = null, $group = '' ) {
     21    public function get_stored_action( $status, $hook, array $args = array(), ?ActionScheduler_Schedule $schedule = null, $group = '' ) {
    2222        // The 6th parameter ($priority) is not formally declared in the method signature to maintain compatibility with
    2323        // third-party subclasses created before this param was added.
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AdminView.php

    r3204556 r3333221  
    251251        }
    252252
    253         $as_version = ActionScheduler_Versions::instance()->latest_version();
     253        $as_version       = ActionScheduler_Versions::instance()->latest_version();
     254        $as_source        = ActionScheduler_SystemInformation::active_source();
     255        $as_source_path   = ActionScheduler_SystemInformation::active_source_path();
     256        $as_source_markup = sprintf( '<code>%s</code>', esc_html( $as_source_path ) );
     257
     258        if ( ! empty( $as_source ) ) {
     259            $as_source_markup = sprintf(
     260                '%s: <abbr title="%s">%s</abbr>',
     261                ucfirst( $as_source['type'] ),
     262                esc_attr( $as_source_path ),
     263                esc_html( $as_source['name'] )
     264            );
     265        }
     266
    254267        $screen->add_help_tab(
    255268            array(
     
    261274                    '<p>' .
    262275                        __( 'Action Scheduler is a scalable, traceable job queue for background processing large sets of actions. Action Scheduler works by triggering an action hook to run at some time in the future. Scheduled actions can also be scheduled to run on a recurring schedule.', 'action-scheduler' ) .
     276                    '</p>' .
     277                    '<h3>' . esc_html__( 'Source', 'action-scheduler' ) . '</h3>' .
     278                    '<p>' .
     279                        esc_html__( 'Action Scheduler is currently being loaded from the following location. This can be useful when debugging, or if requested by the support team.', 'action-scheduler' ) .
     280                    '</p>' .
     281                    '<p>' . $as_source_markup . '</p>' .
     282                    '<h3>' . esc_html__( 'WP CLI', 'action-scheduler' ) . '</h3>' .
     283                    '<p>' .
     284                        sprintf(
     285                            /* translators: %1$s is WP CLI command (not translatable) */
     286                            esc_html__( 'WP CLI commands are available: execute %1$s for a list of available commands.', 'action-scheduler' ),
     287                            '<code>wp help action-scheduler</code>'
     288                        ) .
    263289                    '</p>',
    264290            )
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DataController.php

    r3204556 r3333221  
    163163        }
    164164
    165         $wp_object_cache->group_ops      = array();
    166         $wp_object_cache->stats          = array();
    167         $wp_object_cache->memcache_debug = array();
    168         $wp_object_cache->cache          = array();
     165        // Not all drop-ins support these props, however, there may be existing installations that rely on these being cleared.
     166        if ( property_exists( $wp_object_cache, 'group_ops' ) ) {
     167            $wp_object_cache->group_ops = array();
     168        }
     169        if ( property_exists( $wp_object_cache, 'stats' ) ) {
     170            $wp_object_cache->stats = array();
     171        }
     172        if ( property_exists( $wp_object_cache, 'memcache_debug' ) ) {
     173            $wp_object_cache->memcache_debug = array();
     174        }
     175        if ( property_exists( $wp_object_cache, 'cache' ) ) {
     176            $wp_object_cache->cache = array();
     177        }
    169178
    170179        if ( is_callable( array( $wp_object_cache, '__remoteset' ) ) ) {
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Versions.php

    r3204556 r3333221  
    2020
    2121    /**
     22     * Registered sources.
     23     *
     24     * @var array<string, string>
     25     */
     26    private $sources = array();
     27
     28    /**
    2229     * Register version's callback.
    2330     *
     
    2936            return false;
    3037        }
     38
     39        // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
     40        $backtrace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS );
     41        $source    = $backtrace[0]['file'];
     42
    3143        $this->versions[ $version_string ] = $initialization_callback;
     44        $this->sources[ $source ]          = $version_string;
    3245        return true;
    3346    }
     
    3851    public function get_versions() {
    3952        return $this->versions;
     53    }
     54
     55    /**
     56     * Get registered sources.
     57     *
     58     * Use with caution: this method is only available as of Action Scheduler's 3.9.1
     59     * release and, owing to the way Action Scheduler is loaded, it's possible that the
     60     * class definition used at runtime will belong to an earlier version.
     61     *
     62     * @since 3.9.1
     63     *
     64     * @return array<string, string>
     65     */
     66    public function get_sources() {
     67        return $this->sources;
    4068    }
    4169
     
    87115        call_user_func( $self->latest_version_callback() );
    88116    }
     117
     118    /**
     119     * Returns information about the plugin or theme which contains the current active version
     120     * of Action Scheduler.
     121     *
     122     * If this cannot be determined, or if Action Scheduler is being loaded via some other
     123     * method, then it will return an empty array. Otherwise, if populated, the array will
     124     * look like the following:
     125     *
     126     *     [
     127     *         'type' => 'plugin', # or 'theme'
     128     *         'name' => 'Name',
     129     *     ]
     130     *
     131     * @deprecated 3.9.2 Use ActionScheduler_SystemInformation::active_source().
     132     *
     133     * @return array
     134     */
     135    public function active_source(): array {
     136        _deprecated_function( __METHOD__, '3.9.2', 'ActionScheduler_SystemInformation::active_source()' );
     137        return ActionScheduler_SystemInformation::active_source();
     138    }
     139
     140    /**
     141     * Returns the directory path for the currently active installation of Action Scheduler.
     142     *
     143     * @deprecated 3.9.2 Use ActionScheduler_SystemInformation::active_source_path().
     144     *
     145     * @return string
     146     */
     147    public function active_source_path(): string {
     148        _deprecated_function( __METHOD__, '3.9.2', 'ActionScheduler_SystemInformation::active_source_path()' );
     149        return ActionScheduler_SystemInformation::active_source_path();
     150    }
    89151}
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php

    r3204556 r3333221  
    6767     */
    6868    public static function maybe_schedule_cleanup() {
     69        $has_logs = 'no';
     70
    6971        $args = array(
    7072            'type'   => ActionScheduler_wpCommentLogger::TYPE,
     
    7476
    7577        if ( (bool) get_comments( $args ) ) {
    76             update_option( self::$has_logs_option_key, 'yes' );
     78            $has_logs = 'yes';
    7779
    7880            if ( ! as_next_scheduled_action( self::$cleanup_hook ) ) {
     
    8082            }
    8183        }
     84
     85        update_option( self::$has_logs_option_key, $has_logs, true );
    8286    }
    8387
     
    96100        );
    97101
    98         delete_option( self::$has_logs_option_key );
     102        update_option( self::$has_logs_option_key, 'no', true );
    99103    }
    100104
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/classes/ActionScheduler_wcSystemStatus.php

    r3062001 r3333221  
    7777        $action = $this->store->query_actions(
    7878            array(
    79                 'claimed'  => false,
    8079                'status'   => $status,
    8180                'per_page' => 1,
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler.php

    r3204556 r3333221  
    185185        ActionScheduler_DataController::init();
    186186
    187         $store      = self::store();
    188         $logger     = self::logger();
    189         $runner     = self::runner();
    190         $admin_view = self::admin_view();
     187        $store                      = self::store();
     188        $logger                     = self::logger();
     189        $runner                     = self::runner();
     190        $admin_view                 = self::admin_view();
     191        $recurring_action_scheduler = new ActionScheduler_RecurringActionScheduler();
    191192
    192193        // Ensure initialization on plugin activation.
     
    197198            add_action( 'init', array( $logger, 'init' ), 1, 0 );
    198199            add_action( 'init', array( $runner, 'init' ), 1, 0 );
     200            add_action( 'init', array( $recurring_action_scheduler, 'init' ), 1, 0 );
    199201
    200202            add_action(
     
    224226            $logger->init();
    225227            $runner->init();
     228            $recurring_action_scheduler->init();
    226229            self::$data_store_initialized = true;
    227230
     
    241244            WP_CLI::add_command( 'action-scheduler', 'ActionScheduler_WPCLI_Scheduler_command' );
    242245            WP_CLI::add_command( 'action-scheduler', 'ActionScheduler_WPCLI_Clean_Command' );
     246            WP_CLI::add_command( 'action-scheduler action', '\Action_Scheduler\WP_CLI\Action_Command' );
     247            WP_CLI::add_command( 'action-scheduler', '\Action_Scheduler\WP_CLI\System_Command' );
    243248            if ( ! ActionScheduler_DataController::is_migration_complete() && Controller::instance()->allow_migration() ) {
    244249                $command = new Migration_Command();
     
    297302            'ActionScheduler_Store'                      => true,
    298303            'ActionScheduler_TimezoneHelper'             => true,
     304            'ActionScheduler_WPCLI_Command'              => true,
    299305        );
    300306
     
    341347    protected static function is_class_cli( $class ) {
    342348        static $cli_segments = array(
    343             'QueueRunner' => true,
    344             'Command'     => true,
    345             'ProgressBar' => true,
     349            'QueueRunner'                             => true,
     350            'Command'                                 => true,
     351            'ProgressBar'                             => true,
     352            '\Action_Scheduler\WP_CLI\Action_Command' => true,
     353            '\Action_Scheduler\WP_CLI\System_Command' => true,
    346354        );
    347355
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_QueueRunner.php

    r3204556 r3333221  
    8787        try {
    8888            try {
    89                 $valid_action = false;
     89                $valid_action = true;
     90
    9091                do_action( 'action_scheduler_before_execute', $action_id, $context );
    9192
    9293                if ( ActionScheduler_Store::STATUS_PENDING !== $this->store->get_status( $action_id ) ) {
     94                    $valid_action = false;
    9395                    do_action( 'action_scheduler_execution_ignored', $action_id, $context );
    9496                    return;
    9597                }
    9698
    97                 $valid_action = true;
    9899                do_action( 'action_scheduler_begin_execute', $action_id, $context );
    99100
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php

    r3204556 r3333221  
    932932         */
    933933        global $wpdb;
    934 
    935934        $now  = as_get_datetime_object();
    936935        $date = is_null( $before_date ) ? $now : clone $before_date;
    937         // can't use $wpdb->update() because of the <= condition.
    938         $update = "UPDATE {$wpdb->actionscheduler_actions} SET claim_id=%d, last_attempt_gmt=%s, last_attempt_local=%s";
    939         $params = array(
    940             $claim_id,
    941             $now->format( 'Y-m-d H:i:s' ),
    942             current_time( 'mysql' ),
    943         );
    944936
    945937        // Set claim filters.
     
    955947        }
    956948
    957         $where    = 'WHERE claim_id = 0 AND scheduled_date_gmt <= %s AND status=%s';
    958         $params[] = $date->format( 'Y-m-d H:i:s' );
    959         $params[] = self::STATUS_PENDING;
     949        $where        = 'WHERE claim_id = 0 AND scheduled_date_gmt <= %s AND status=%s';
     950        $where_params = array(
     951            $date->format( 'Y-m-d H:i:s' ),
     952            self::STATUS_PENDING,
     953        );
    960954
    961955        if ( ! empty( $hooks ) ) {
    962956            $placeholders = array_fill( 0, count( $hooks ), '%s' );
    963             $where       .= ' AND hook IN (' . join( ', ', $placeholders ) . ')';
    964             $params       = array_merge( $params, array_values( $hooks ) );
     957            $where        .= ' AND hook IN (' . join( ', ', $placeholders ) . ')';
     958            $where_params = array_merge( $where_params, array_values( $hooks ) );
    965959        }
    966960
     
    997991         * Sets the order-by clause used in the action claim query.
    998992         *
    999          * @since 3.4.0
    1000          * @since 3.8.3 Made $claim_id and $hooks available.
    1001          *
    1002993         * @param string $order_by_sql
    1003994         * @param string $claim_id Claim Id.
    1004          * @param array  $hooks Hooks to filter for.
    1005          */
    1006         $order    = apply_filters( 'action_scheduler_claim_actions_order_by', 'ORDER BY priority ASC, attempts ASC, scheduled_date_gmt ASC, action_id ASC', $claim_id, $hooks );
    1007         $params[] = $limit;
    1008 
    1009         $sql           = $wpdb->prepare( "{$update} {$where} {$order} LIMIT %d", $params ); // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.PreparedSQLPlaceholders
    1010         $rows_affected = $wpdb->query( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
     995         * @param array  $hooks    Hooks to filter for.
     996         *
     997         * @since 3.8.3 Made $claim_id and $hooks available.
     998         * @since 3.4.0
     999         */
     1000        $order       = apply_filters( 'action_scheduler_claim_actions_order_by', 'ORDER BY priority ASC, attempts ASC, scheduled_date_gmt ASC, action_id ASC', $claim_id, $hooks );
     1001        $skip_locked = $this->db_supports_skip_locked() ? ' SKIP LOCKED' : '';
     1002
     1003        // Selecting the action_ids that we plan to claim, while skipping any locked rows to avoid deadlocking.
     1004        $select_sql = $wpdb->prepare( "SELECT action_id from {$wpdb->actionscheduler_actions} {$where} {$order} LIMIT %d FOR UPDATE{$skip_locked}", array_merge( $where_params, array( $limit ) ) );
     1005
     1006        // Now place it into an UPDATE statement by joining the result sets, allowing for the SKIP LOCKED behavior to take effect.
     1007        $update_sql    = "UPDATE {$wpdb->actionscheduler_actions} t1 JOIN ( $select_sql ) t2 ON t1.action_id = t2.action_id SET claim_id=%d, last_attempt_gmt=%s, last_attempt_local=%s";
     1008        $update_params = array(
     1009            $claim_id,
     1010            $now->format( 'Y-m-d H:i:s' ),
     1011            current_time( 'mysql' ),
     1012        );
     1013
     1014        $rows_affected = $wpdb->query( $wpdb->prepare( $update_sql, $update_params ) );
    10111015        if ( false === $rows_affected ) {
    10121016            $error = empty( $wpdb->last_error )
    10131017                ? _x( 'unknown', 'database error', 'action-scheduler' )
    10141018                : $wpdb->last_error;
    1015 
    10161019            throw new \RuntimeException(
    10171020                sprintf(
     
    10271030
    10281031    /**
     1032     * Determines whether the database supports using SKIP LOCKED. This logic mimicks the $wpdb::has_cap() logic.
     1033     *
     1034     * SKIP_LOCKED support was added to MariaDB in 10.6.0 and to MySQL in 8.0.1
     1035     *
     1036     * @return bool
     1037     */
     1038    private function db_supports_skip_locked() {
     1039        global $wpdb;
     1040        $db_version     = $wpdb->db_version();
     1041        $db_server_info = $wpdb->db_server_info();
     1042        $is_mariadb     = ( false !== strpos( $db_server_info, 'MariaDB' ) );
     1043
     1044        if ( $is_mariadb &&
     1045             '5.5.5' === $db_version &&
     1046             PHP_VERSION_ID < 80016 // PHP 8.0.15 or older.
     1047        ) {
     1048            /*
     1049             * Account for MariaDB version being prefixed with '5.5.5-' on older PHP versions.
     1050             */
     1051            $db_server_info = preg_replace( '/^5\.5\.5-(.*)/', '$1', $db_server_info );
     1052            $db_version     = preg_replace( '/[^0-9.].*/', '', $db_server_info );
     1053        }
     1054
     1055        $is_supported = ( $is_mariadb && version_compare( $db_version, '10.6.0', '>=' ) ) ||
     1056                        ( ! $is_mariadb && version_compare( $db_version, '8.0.1', '>=' ) );
     1057
     1058        /**
     1059         * Filter whether the database supports the SKIP LOCKED modifier for queries.
     1060         *
     1061         * @param bool $is_supported Whether SKIP LOCKED is supported.
     1062         *
     1063         * @since 3.9.3
     1064         */
     1065        return apply_filters( 'action_scheduler_db_supports_skip_locked', $is_supported );
     1066    }
     1067
     1068    /**
    10291069     * Get the number of active claims.
    10301070     *
     
    10951135
    10961136    /**
    1097      * Release actions from a claim and delete the claim.
     1137     * Release pending actions from a claim and delete the claim.
    10981138     *
    10991139     * @param ActionScheduler_ActionClaim $claim Claim object.
     
    11071147         */
    11081148        global $wpdb;
     1149
     1150        if ( 0 === intval( $claim->get_id() ) ) {
     1151            // Verify that the claim_id is valid before attempting to release it.
     1152            return;
     1153        }
    11091154
    11101155        /**
     
    11141159         *
    11151160         * We resolve this by getting all the actions_id that we want to release claim from in a separate query, and then releasing the claim on each of them. This way, our lock is acquired on the action_id index instead of the claim_id index. Note that the lock on claim_id will still be acquired, but it will only when we actually make the update, rather than when we select the actions.
    1116          */
    1117         $action_ids = $wpdb->get_col( $wpdb->prepare( "SELECT action_id FROM {$wpdb->actionscheduler_actions} WHERE claim_id = %d", $claim->get_id() ) );
     1161         *
     1162         * We only release pending actions in order for them to be claimed by another process.
     1163         */
     1164        $action_ids = $wpdb->get_col( $wpdb->prepare( "SELECT action_id FROM {$wpdb->actionscheduler_actions} WHERE claim_id = %d AND status = %s", $claim->get_id(), self::STATUS_PENDING ) );
    11181165
    11191166        $row_updates = 0;
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_HybridStore.php

    r3204556 r3333221  
    433433
    434434    /**
    435      * Release a claim in the table data store.
     435     * Release a claim in the table data store on any pending actions.
    436436     *
    437437     * @param ActionScheduler_ActionClaim $claim Claim object.
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php

    r3204556 r3333221  
    792792
    793793    /**
    794      * Release claim.
     794     * Release pending actions from a claim.
    795795     *
    796796     * @param ActionScheduler_ActionClaim $claim Claim object to release.
     
    799799     */
    800800    public function release_claim( ActionScheduler_ActionClaim $claim ) {
    801         $action_ids = $this->find_actions_by_claim_id( $claim->get_id() );
    802         if ( empty( $action_ids ) ) {
    803             return; // nothing to do.
    804         }
    805         $action_id_string = implode( ',', array_map( 'intval', $action_ids ) );
    806801        /**
    807802         * Global wpdb object.
     
    810805         */
    811806        global $wpdb;
     807
     808        $claim_id = $claim->get_id();
     809        if ( trim( $claim_id ) === '' ) {
     810            // Verify that the claim_id is valid before attempting to release it.
     811            return;
     812        }
     813
     814        // Only attempt to release pending actions to be claimed again. Running and complete actions are no longer relevant outside of admin/analytics.
     815        // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
     816        $action_ids = $wpdb->get_col(
     817            $wpdb->prepare(
     818                "SELECT ID, post_date_gmt FROM {$wpdb->posts} WHERE post_type = %s AND post_password = %s AND post_status = %s",
     819                self::POST_TYPE,
     820                $claim_id,
     821                self::STATUS_PENDING
     822            )
     823        );
     824
     825        if ( empty( $action_ids ) ) {
     826            return; // nothing to do.
     827        }
     828        $action_id_string = implode( ',', array_map( 'intval', $action_ids ) );
    812829
    813830        // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_StoreSchema.php

    r3204556 r3333221  
    2121     * @var int
    2222     */
    23     protected $schema_version = 7;
     23    protected $schema_version = 8;
    2424
    2525    /**
     
    8181                        KEY group_id (group_id),
    8282                        KEY last_attempt_gmt (last_attempt_gmt),
    83                         KEY `claim_id_status_scheduled_date_gmt` (`claim_id`, `status`, `scheduled_date_gmt`)
     83                        KEY `claim_id_status_priority_scheduled_date_gmt` (`claim_id`,`status`,`priority`,`scheduled_date_gmt`),
     84                        KEY `status_last_attempt_gmt` (`status`,`last_attempt_gmt`),
     85                        KEY `status_claim_id` (`status`,`claim_id`)
    8486                        ) $charset_collate";
    8587
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Schedule_Deprecated.php

    r3062001 r3333221  
    1414     * @return DateTime|null
    1515     */
    16     public function next( DateTime $after = null ) {
     16    public function next( ?DateTime $after = null ) {
    1717        if ( empty( $after ) ) {
    1818            $return_value       = $this->get_date();
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/functions.php

    r3204556 r3333221  
    8787     * @param string   $group      Action group.
    8888     * @param int      $priorities Action priority.
     89     * @param bool     $unique     Unique action.
    8990     */
    90     $pre = apply_filters( 'pre_as_schedule_single_action', null, $timestamp, $hook, $args, $group, $priority );
     91    $pre = apply_filters( 'pre_as_schedule_single_action', null, $timestamp, $hook, $args, $group, $priority, $unique );
    9192    if ( null !== $pre ) {
    9293        return is_int( $pre ) ? $pre : 0;
     
    160161     * @param string   $group               Action group.
    161162     * @param int      $priority            Action priority.
     163     * @param bool     $unique              Unique action.
    162164     */
    163     $pre = apply_filters( 'pre_as_schedule_recurring_action', null, $timestamp, $interval_in_seconds, $hook, $args, $group, $priority );
     165    $pre = apply_filters( 'pre_as_schedule_recurring_action', null, $timestamp, $interval_in_seconds, $hook, $args, $group, $priority, $unique );
    164166    if ( null !== $pre ) {
    165167        return is_int( $pre ) ? $pre : 0;
     
    226228     * @param string   $group      Action group.
    227229     * @param int      $priority   Action priority.
     230     * @param bool     $unique     Unique action.
    228231     */
    229     $pre = apply_filters( 'pre_as_schedule_cron_action', null, $timestamp, $schedule, $hook, $args, $group, $priority );
     232    $pre = apply_filters( 'pre_as_schedule_cron_action', null, $timestamp, $schedule, $hook, $args, $group, $priority, $unique );
    230233    if ( null !== $pre ) {
    231234        return is_int( $pre ) ? $pre : 0;
     
    494497    return $date;
    495498}
     499
     500/**
     501 * Check if a specific feature is supported by the current version of Action Scheduler.
     502 *
     503 * @since 3.9.3
     504 *
     505 * @param string $feature The feature to check support for.
     506 *
     507 * @return bool True if the feature is supported, false otherwise.
     508 */
     509function as_supports( string $feature ): bool {
     510    $supported_features = array( 'ensure_recurring_actions_hook' );
     511
     512    return in_array( $feature, $supported_features, true );
     513}
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression.php

    r3062001 r3333221  
    5555     * @return CronExpression
    5656     */
    57     public static function factory($expression, CronExpression_FieldFactory $fieldFactory = null)
     57    public static function factory($expression, ?CronExpression_FieldFactory $fieldFactory = null)
    5858    {
    5959        $mappings = array(
  • miso-ai/tags/0.9.6/vendor/woocommerce/action-scheduler/readme.txt

    r3204556 r3333221  
    22Contributors: Automattic, wpmuguru, claudiosanches, peterfabian1000, vedjain, jamosova, obliviousharmony, konamiman, sadowski, royho, barryhughes-1
    33Tags: scheduler, cron
    4 Stable tag: 3.9.0
     4Stable tag: 3.9.3
    55License: GPLv3
    66Requires at least: 6.5
    7 Tested up to: 6.7
    8 Requires PHP: 7.1
     7Tested up to: 6.8
     8Requires PHP: 7.2
    99
    1010Action Scheduler - Job Queue for WordPress
     
    3030## Learn More
    3131
    32 To learn more about how to Action Scheduler works, and how to use it in your plugin, check out the docs on [ActionScheduler.org](https://actionscheduler.org).
     32To learn more about how Action Scheduler works, and how to use it in your plugin, check out the docs on [ActionScheduler.org](https://actionscheduler.org).
    3333
    3434There you will find:
     
    4747
    4848== Changelog ==
     49
     50= 3.9.3 - 2025-07-15 =
     51* Add hook 'action_scheduler_ensure_recurring_actions' specifically for scheduling recurring actions.
     52* Assume an action is valid until proven otherwise.
     53* Implement SKIP LOCKED during action claiming.
     54* Import `get_flag_value()` from `WP_CLI\Utils` before using.
     55* Make `$unique` available to all pre-creation/short-circuit hooks.
     56* Make version/source information available via new class.
     57* Only release claims on pending actions.
     58* Tweak - WP 6.8 compatibility.
     59* Update minimum supported php and phpunit versions.
     60* Update readme.txt.
     61* WP CLI get action command: correct parentheses/nesting of conditional checks.
     62
     63= 3.9.2 - 2025-02-03 =
     64* Fixed fatal errors by moving version info methods to a new class and deprecating conflicting ones in ActionScheduler_Versions
     65
     66= 3.9.1 - 2025-01-21 =
     67* A number of new WP CLI commands have been added, making it easier to manage actions in the terminal and from scripts.
     68* New wp action-scheduler source command to help determine how Action Scheduler is being loaded.
     69* Additional information about the active instance of Action Scheduler is now available in the Help pull-down drawer.
     70* Make some other nullable parameters explicitly nullable.
     71* Set option value to `no` rather than deleting.
    4972
    5073= 3.9.0 - 2024-11-14 = 
  • miso-ai/trunk/composer.lock

    r3204556 r3333221  
    7171        {
    7272            "name": "guzzlehttp/guzzle",
    73             "version": "7.9.2",
     73            "version": "7.9.3",
    7474            "source": {
    7575                "type": "git",
    7676                "url": "https://github.com/guzzle/guzzle.git",
    77                 "reference": "d281ed313b989f213357e3be1a179f02196ac99b"
    78             },
    79             "dist": {
    80                 "type": "zip",
    81                 "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b",
    82                 "reference": "d281ed313b989f213357e3be1a179f02196ac99b",
     77                "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77"
     78            },
     79            "dist": {
     80                "type": "zip",
     81                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77",
     82                "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77",
    8383                "shasum": ""
    8484            },
     
    177177            "support": {
    178178                "issues": "https://github.com/guzzle/guzzle/issues",
    179                 "source": "https://github.com/guzzle/guzzle/tree/7.9.2"
     179                "source": "https://github.com/guzzle/guzzle/tree/7.9.3"
    180180            },
    181181            "funding": [
     
    193193                }
    194194            ],
    195             "time": "2024-07-24T11:22:20+00:00"
     195            "time": "2025-03-27T13:37:11+00:00"
    196196        },
    197197        {
    198198            "name": "guzzlehttp/promises",
    199             "version": "2.0.4",
     199            "version": "2.2.0",
    200200            "source": {
    201201                "type": "git",
    202202                "url": "https://github.com/guzzle/promises.git",
    203                 "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455"
    204             },
    205             "dist": {
    206                 "type": "zip",
    207                 "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455",
    208                 "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455",
     203                "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c"
     204            },
     205            "dist": {
     206                "type": "zip",
     207                "url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c",
     208                "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c",
    209209                "shasum": ""
    210210            },
     
    260260            "support": {
    261261                "issues": "https://github.com/guzzle/promises/issues",
    262                 "source": "https://github.com/guzzle/promises/tree/2.0.4"
     262                "source": "https://github.com/guzzle/promises/tree/2.2.0"
    263263            },
    264264            "funding": [
     
    276276                }
    277277            ],
    278             "time": "2024-10-17T10:06:22+00:00"
     278            "time": "2025-03-27T13:27:01+00:00"
    279279        },
    280280        {
    281281            "name": "guzzlehttp/psr7",
    282             "version": "2.7.0",
     282            "version": "2.7.1",
    283283            "source": {
    284284                "type": "git",
    285285                "url": "https://github.com/guzzle/psr7.git",
    286                 "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201"
    287             },
    288             "dist": {
    289                 "type": "zip",
    290                 "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
    291                 "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
     286                "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16"
     287            },
     288            "dist": {
     289                "type": "zip",
     290                "url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16",
     291                "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16",
    292292                "shasum": ""
    293293            },
     
    376376            "support": {
    377377                "issues": "https://github.com/guzzle/psr7/issues",
    378                 "source": "https://github.com/guzzle/psr7/tree/2.7.0"
     378                "source": "https://github.com/guzzle/psr7/tree/2.7.1"
    379379            },
    380380            "funding": [
     
    392392                }
    393393            ],
    394             "time": "2024-07-18T11:15:46+00:00"
     394            "time": "2025-03-27T12:30:47+00:00"
    395395        },
    396396        {
     
    724724        {
    725725            "name": "symfony/deprecation-contracts",
    726             "version": "v3.5.1",
     726            "version": "v3.6.0",
    727727            "source": {
    728728                "type": "git",
    729729                "url": "https://github.com/symfony/deprecation-contracts.git",
    730                 "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
    731             },
    732             "dist": {
    733                 "type": "zip",
    734                 "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
    735                 "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
     730                "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62"
     731            },
     732            "dist": {
     733                "type": "zip",
     734                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62",
     735                "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62",
    736736                "shasum": ""
    737737            },
     
    741741            "type": "library",
    742742            "extra": {
     743                "thanks": {
     744                    "url": "https://github.com/symfony/contracts",
     745                    "name": "symfony/contracts"
     746                },
    743747                "branch-alias": {
    744                     "dev-main": "3.5-dev"
    745                 },
    746                 "thanks": {
    747                     "name": "symfony/contracts",
    748                     "url": "https://github.com/symfony/contracts"
     748                    "dev-main": "3.6-dev"
    749749                }
    750750            },
     
    771771            "homepage": "https://symfony.com",
    772772            "support": {
    773                 "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
     773                "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0"
    774774            },
    775775            "funding": [
     
    787787                }
    788788            ],
    789             "time": "2024-09-25T14:20:29+00:00"
     789            "time": "2024-09-25T14:21:43+00:00"
    790790        },
    791791        {
    792792            "name": "symfony/polyfill-ctype",
    793             "version": "v1.31.0",
     793            "version": "v1.32.0",
    794794            "source": {
    795795                "type": "git",
     
    815815            "extra": {
    816816                "thanks": {
    817                     "name": "symfony/polyfill",
    818                     "url": "https://github.com/symfony/polyfill"
     817                    "url": "https://github.com/symfony/polyfill",
     818                    "name": "symfony/polyfill"
    819819                }
    820820            },
     
    850850            ],
    851851            "support": {
    852                 "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
     852                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0"
    853853            },
    854854            "funding": [
     
    870870        {
    871871            "name": "symfony/polyfill-mbstring",
    872             "version": "v1.31.0",
     872            "version": "v1.32.0",
    873873            "source": {
    874874                "type": "git",
    875875                "url": "https://github.com/symfony/polyfill-mbstring.git",
    876                 "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
    877             },
    878             "dist": {
    879                 "type": "zip",
    880                 "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
    881                 "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
    882                 "shasum": ""
    883             },
    884             "require": {
     876                "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493"
     877            },
     878            "dist": {
     879                "type": "zip",
     880                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493",
     881                "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493",
     882                "shasum": ""
     883            },
     884            "require": {
     885                "ext-iconv": "*",
    885886                "php": ">=7.2"
    886887            },
     
    894895            "extra": {
    895896                "thanks": {
    896                     "name": "symfony/polyfill",
    897                     "url": "https://github.com/symfony/polyfill"
     897                    "url": "https://github.com/symfony/polyfill",
     898                    "name": "symfony/polyfill"
    898899                }
    899900            },
     
    930931            ],
    931932            "support": {
    932                 "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
     933                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0"
    933934            },
    934935            "funding": [
     
    946947                }
    947948            ],
    948             "time": "2024-09-09T11:45:10+00:00"
     949            "time": "2024-12-23T08:48:59+00:00"
    949950        },
    950951        {
    951952            "name": "symfony/polyfill-php80",
    952             "version": "v1.31.0",
     953            "version": "v1.32.0",
    953954            "source": {
    954955                "type": "git",
    955956                "url": "https://github.com/symfony/polyfill-php80.git",
    956                 "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
    957             },
    958             "dist": {
    959                 "type": "zip",
    960                 "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
    961                 "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
     957                "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608"
     958            },
     959            "dist": {
     960                "type": "zip",
     961                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
     962                "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
    962963                "shasum": ""
    963964            },
     
    968969            "extra": {
    969970                "thanks": {
    970                     "name": "symfony/polyfill",
    971                     "url": "https://github.com/symfony/polyfill"
     971                    "url": "https://github.com/symfony/polyfill",
     972                    "name": "symfony/polyfill"
    972973                }
    973974            },
     
    10101011            ],
    10111012            "support": {
    1012                 "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
     1013                "source": "https://github.com/symfony/polyfill-php80/tree/v1.32.0"
    10131014            },
    10141015            "funding": [
     
    10261027                }
    10271028            ],
    1028             "time": "2024-09-09T11:45:10+00:00"
     1029            "time": "2025-01-02T08:10:11+00:00"
    10291030        },
    10301031        {
    10311032            "name": "vlucas/phpdotenv",
    1032             "version": "v5.6.1",
     1033            "version": "v5.6.2",
    10331034            "source": {
    10341035                "type": "git",
    10351036                "url": "https://github.com/vlucas/phpdotenv.git",
    1036                 "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2"
    1037             },
    1038             "dist": {
    1039                 "type": "zip",
    1040                 "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2",
    1041                 "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2",
     1037                "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af"
     1038            },
     1039            "dist": {
     1040                "type": "zip",
     1041                "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/24ac4c74f91ee2c193fa1aaa5c249cb0822809af",
     1042                "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af",
    10421043                "shasum": ""
    10431044            },
     
    10981099            "support": {
    10991100                "issues": "https://github.com/vlucas/phpdotenv/issues",
    1100                 "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1"
     1101                "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.2"
    11011102            },
    11021103            "funding": [
     
    11101111                }
    11111112            ],
    1112             "time": "2024-07-20T21:52:34+00:00"
     1113            "time": "2025-04-30T23:37:27+00:00"
    11131114        },
    11141115        {
    11151116            "name": "woocommerce/action-scheduler",
    1116             "version": "3.9.0",
     1117            "version": "3.9.3",
    11171118            "source": {
    11181119                "type": "git",
    11191120                "url": "https://github.com/woocommerce/action-scheduler.git",
    1120                 "reference": "90b98e6fe97d455679b1d288f050cad8f6f79771"
    1121             },
    1122             "dist": {
    1123                 "type": "zip",
    1124                 "url": "https://api.github.com/repos/woocommerce/action-scheduler/zipball/90b98e6fe97d455679b1d288f050cad8f6f79771",
    1125                 "reference": "90b98e6fe97d455679b1d288f050cad8f6f79771",
    1126                 "shasum": ""
    1127             },
    1128             "require": {
    1129                 "php": ">=7.1"
     1121                "reference": "c58cdbab17651303d406cd3b22cf9d75c71c986c"
     1122            },
     1123            "dist": {
     1124                "type": "zip",
     1125                "url": "https://api.github.com/repos/woocommerce/action-scheduler/zipball/c58cdbab17651303d406cd3b22cf9d75c71c986c",
     1126                "reference": "c58cdbab17651303d406cd3b22cf9d75c71c986c",
     1127                "shasum": ""
     1128            },
     1129            "require": {
     1130                "php": ">=7.2"
    11301131            },
    11311132            "require-dev": {
    1132                 "phpunit/phpunit": "^7.5",
     1133                "phpunit/phpunit": "^8.5",
    11331134                "woocommerce/woocommerce-sniffs": "0.1.0",
    11341135                "wp-cli/wp-cli": "~2.5.0",
     
    11511152            "support": {
    11521153                "issues": "https://github.com/woocommerce/action-scheduler/issues",
    1153                 "source": "https://github.com/woocommerce/action-scheduler/tree/3.9.0"
    1154             },
    1155             "time": "2024-11-15T00:11:39+00:00"
     1154                "source": "https://github.com/woocommerce/action-scheduler/tree/3.9.3"
     1155            },
     1156            "time": "2025-07-15T09:32:30+00:00"
    11561157        }
    11571158    ],
     
    11591160        {
    11601161            "name": "php-stubs/wordpress-stubs",
    1161             "version": "v6.7.1",
     1162            "version": "v6.8.2",
    11621163            "source": {
    11631164                "type": "git",
    11641165                "url": "https://github.com/php-stubs/wordpress-stubs.git",
    1165                 "reference": "83448e918bf06d1ed3d67ceb6a985fc266a02fd1"
    1166             },
    1167             "dist": {
    1168                 "type": "zip",
    1169                 "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/83448e918bf06d1ed3d67ceb6a985fc266a02fd1",
    1170                 "reference": "83448e918bf06d1ed3d67ceb6a985fc266a02fd1",
    1171                 "shasum": ""
     1166                "reference": "9c8e22e437463197c1ec0d5eaa9ddd4a0eb6d7f8"
     1167            },
     1168            "dist": {
     1169                "type": "zip",
     1170                "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/9c8e22e437463197c1ec0d5eaa9ddd4a0eb6d7f8",
     1171                "reference": "9c8e22e437463197c1ec0d5eaa9ddd4a0eb6d7f8",
     1172                "shasum": ""
     1173            },
     1174            "conflict": {
     1175                "phpdocumentor/reflection-docblock": "5.6.1"
    11721176            },
    11731177            "require-dev": {
    11741178                "dealerdirect/phpcodesniffer-composer-installer": "^1.0",
    1175                 "nikic/php-parser": "^4.13",
     1179                "nikic/php-parser": "^5.5",
    11761180                "php": "^7.4 || ^8.0",
    11771181                "php-stubs/generator": "^0.8.3",
    11781182                "phpdocumentor/reflection-docblock": "^5.4.1",
    1179                 "phpstan/phpstan": "^1.11",
     1183                "phpstan/phpstan": "^2.1",
    11801184                "phpunit/phpunit": "^9.5",
    11811185                "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^1.1.1",
     
    12011205            "support": {
    12021206                "issues": "https://github.com/php-stubs/wordpress-stubs/issues",
    1203                 "source": "https://github.com/php-stubs/wordpress-stubs/tree/v6.7.1"
    1204             },
    1205             "time": "2024-11-24T03:57:09+00:00"
     1207                "source": "https://github.com/php-stubs/wordpress-stubs/tree/v6.8.2"
     1208            },
     1209            "time": "2025-07-16T06:41:00+00:00"
    12061210        },
    12071211        {
    12081212            "name": "php-stubs/wp-cli-stubs",
    1209             "version": "v2.11.0",
     1213            "version": "v2.12.0",
    12101214            "source": {
    12111215                "type": "git",
    12121216                "url": "https://github.com/php-stubs/wp-cli-stubs.git",
    1213                 "reference": "f27ff9e8e29d7962cb070e58de70dfaf63183007"
    1214             },
    1215             "dist": {
    1216                 "type": "zip",
    1217                 "url": "https://api.github.com/repos/php-stubs/wp-cli-stubs/zipball/f27ff9e8e29d7962cb070e58de70dfaf63183007",
    1218                 "reference": "f27ff9e8e29d7962cb070e58de70dfaf63183007",
     1217                "reference": "af16401e299a3fd2229bd0fa9a037638a4174a9d"
     1218            },
     1219            "dist": {
     1220                "type": "zip",
     1221                "url": "https://api.github.com/repos/php-stubs/wp-cli-stubs/zipball/af16401e299a3fd2229bd0fa9a037638a4174a9d",
     1222                "reference": "af16401e299a3fd2229bd0fa9a037638a4174a9d",
    12191223                "shasum": ""
    12201224            },
     
    12451249            "support": {
    12461250                "issues": "https://github.com/php-stubs/wp-cli-stubs/issues",
    1247                 "source": "https://github.com/php-stubs/wp-cli-stubs/tree/v2.11.0"
    1248             },
    1249             "time": "2024-11-25T10:09:13+00:00"
     1251                "source": "https://github.com/php-stubs/wp-cli-stubs/tree/v2.12.0"
     1252            },
     1253            "time": "2025-06-10T09:58:05+00:00"
    12501254        }
    12511255    ],
  • miso-ai/trunk/customization.md

    r3204556 r3333221  
    4444### Modify the filter function
    4545
    46 Here is an example to add a prefix to `product_id`:
    47 
    48 ```php
    49 function my_miso_post_to_record_0(array $record, WP_Post $post) {
    50     $record['product_id'] = 'my_prefix_' . $record['product_id'];
    51     return $record;
    52 }
    53 
    54 add_filter('miso_post_to_record', 'my_miso_post_to_record_0', 10, 2);
    55 ```
    56 
    57 Another example to add extra data to `custom_attributes`:
     46Here is an example to add extra data to `custom_attributes`:
    5847
    5948```php
  • miso-ai/trunk/miso-ai.php

    r3204556 r3333221  
    44 * Plugin URI:        https://miso.ai/
    55 * Description:       The official WordPress plugin for Miso AI data integration.
    6  * Version:           0.9.5
     6 * Version:           0.9.6
    77 * Author:            Simon Pai
    88 * License:           GPL v2 or later
  • miso-ai/trunk/readme.txt

    r3204556 r3333221  
    22Contributors: misosimonpai
    33Tags: Miso, AI, LLM
    4 Tested up to: 6.4
    5 Stable tag: 0.9.5
     4Tested up to: 6.8
     5Stable tag: 0.9.6
    66License: GPLv2 or later
    77License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    3636== Changelog ==
    3737
     38= 0.9.6 =
     39* Feature: [#11](https://github.com/MisoAI/miso-wordpress-plugin/issues/11) Allow user to sync entities of post type other than post.
     40
    3841= 0.9.5 =
    3942* Fix: product_id prefix in action hooks
  • miso-ai/trunk/src/actions.php

    r3204556 r3333221  
    1111    }
    1212    if (!has_api_key()) {
     13        return $post;
     14    }
     15    if (!in_array($post->post_type, Utils\get_miso_post_types())) {
    1316        return $post;
    1417    }
  • miso-ai/trunk/src/admin/index.php

    r3204556 r3333221  
    44
    55use Miso\Operations;
     6use Miso\Utils;
    67
    78function admin_menu() {
     
    1819            'description' => 'Miso Settings',
    1920            'sanitize_callback' => function ($value) {
     21                $available_post_types = get_post_types();
     22                $value['miso_post_types'] = array_intersect($value['miso_post_types'], $available_post_types);
    2023                return $value;
    2124            },
     
    3134    add_settings_field(
    3235        'miso_api_key',
    33         'Secret API Key',
     36        'Secret API key',
    3437        function () {
    3538            $options = get_option('miso_settings', []);
     
    4447    add_settings_field(
    4548        'miso_product_id_prefix',
    46         'Product ID Prefix<br>(optional)',
     49        'Product ID prefix<br>(optional)',
    4750        function () {
    4851            $options = get_option('miso_settings', []);
     
    5356                'By setting different prefixes, you can manage data from multiple sites into one Miso catalog.<br>' .
    5457                'When performing a full-sync, only Miso records with the prefix will be deleted.</p>';
     58        },
     59        'miso',
     60        'miso_settings',
     61    );
     62    add_settings_field(
     63        'miso_post_types',
     64        'Post types to upload',
     65        function () {
     66            $options = get_option('miso_settings', []);
     67            $post_types = array_key_exists('miso_post_types', $options) ? $options['miso_post_types'] : Utils\get_miso_post_types_default_value();
     68            $choices = Utils\get_post_type_choices();
     69            foreach ($choices as $choice) {
     70                echo '<label><input type="checkbox" name="miso_settings[miso_post_types][]" value="' . esc_attr($choice) . '" ' . checked(in_array($choice, $post_types), true, false) . '> ' . esc_html($choice) . '</label><br>';
     71            }
     72            echo '<p>Post types to be uploaded to Miso catalog.<br>' .
     73                'Posts with checked post type will be uploaded to Miso when they are updated or when a "sync data" action is performed.<br>' .
     74                'Changing this setting will not affect existing records in Miso catalog.</p>';
    5575        },
    5676        'miso',
  • miso-ai/trunk/src/operations.php

    r3204556 r3333221  
    3333        $args = $task['args'] ?? [];
    3434        $query = $args['query'] ?? [
    35             'post_type' => 'post',
     35            'post_type' => Utils\get_miso_post_types(),
    3636            'post_status' => 'publish',
    3737        ];
  • miso-ai/trunk/src/utils.php

    r3204556 r3333221  
    4141        'published_at' => format_date($post->post_date_gmt),
    4242        'updated_at' => format_date($post->post_modified_gmt),
    43         'type' => 'post',
     43        'type' => $post->post_type,
    4444        'title' => $post->post_title,
    4545        'html' => $post->post_content,
     
    5656}
    5757
     58function get_post_type_choices() {
     59    // post, page, and custom post types
     60    return array_merge(['post', 'page'], get_post_types([
     61        'public' => true,
     62        '_builtin' => false,
     63    ]));
     64}
     65
     66function get_miso_post_types() {
     67    return get_option('miso_settings')['miso_post_types'] ?? get_miso_post_types_default_value();
     68}
     69
     70function get_miso_post_types_default_value() {
     71    // default value is post only
     72    return ['post'];
     73}
     74
    5875function log($value) {
    5976    error_log(print_r($value, true));
  • miso-ai/trunk/vendor/autoload.php

    r3062001 r3333221  
    1515        }
    1616    }
    17     trigger_error(
    18         $err,
    19         E_USER_ERROR
    20     );
     17    throw new RuntimeException($err);
    2118}
    2219
  • miso-ai/trunk/vendor/composer/InstalledVersions.php

    r3062001 r3333221  
    2828{
    2929    /**
     30     * @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
     31     * @internal
     32     */
     33    private static $selfDir = null;
     34
     35    /**
    3036     * @var mixed[]|null
    3137     * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
    3238     */
    3339    private static $installed;
     40
     41    /**
     42     * @var bool
     43     */
     44    private static $installedIsLocalDir;
    3445
    3546    /**
     
    310321        self::$installed = $data;
    311322        self::$installedByVendor = array();
     323
     324        // when using reload, we disable the duplicate protection to ensure that self::$installed data is
     325        // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
     326        // so we have to assume it does not, and that may result in duplicate data being returned when listing
     327        // all installed packages for example
     328        self::$installedIsLocalDir = false;
     329    }
     330
     331    /**
     332     * @return string
     333     */
     334    private static function getSelfDir()
     335    {
     336        if (self::$selfDir === null) {
     337            self::$selfDir = strtr(__DIR__, '\\', '/');
     338        }
     339
     340        return self::$selfDir;
    312341    }
    313342
     
    323352
    324353        $installed = array();
     354        $copiedLocalDir = false;
    325355
    326356        if (self::$canGetVendors) {
     357            $selfDir = self::getSelfDir();
    327358            foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
     359                $vendorDir = strtr($vendorDir, '\\', '/');
    328360                if (isset(self::$installedByVendor[$vendorDir])) {
    329361                    $installed[] = self::$installedByVendor[$vendorDir];
     
    331363                    /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
    332364                    $required = require $vendorDir.'/composer/installed.php';
    333                     $installed[] = self::$installedByVendor[$vendorDir] = $required;
    334                     if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
    335                         self::$installed = $installed[count($installed) - 1];
     365                    self::$installedByVendor[$vendorDir] = $required;
     366                    $installed[] = $required;
     367                    if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
     368                        self::$installed = $required;
     369                        self::$installedIsLocalDir = true;
    336370                    }
     371                }
     372                if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
     373                    $copiedLocalDir = true;
    337374                }
    338375            }
     
    351388        }
    352389
    353         if (self::$installed !== array()) {
     390        if (self::$installed !== array() && !$copiedLocalDir) {
    354391            $installed[] = self::$installed;
    355392        }
  • miso-ai/trunk/vendor/composer/autoload_psr4.php

    r3062001 r3333221  
    1010    'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
    1111    'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
    12     'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src', $vendorDir . '/psr/http-factory/src'),
     12    'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-factory/src', $vendorDir . '/psr/http-message/src'),
    1313    'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'),
    1414    'PhpOption\\' => array($vendorDir . '/phpoption/phpoption/src/PhpOption'),
  • miso-ai/trunk/vendor/composer/autoload_static.php

    r3062001 r3333221  
    6161        'Psr\\Http\\Message\\' =>
    6262        array (
    63             0 => __DIR__ . '/..' . '/psr/http-message/src',
    64             1 => __DIR__ . '/..' . '/psr/http-factory/src',
     63            0 => __DIR__ . '/..' . '/psr/http-factory/src',
     64            1 => __DIR__ . '/..' . '/psr/http-message/src',
    6565        ),
    6666        'Psr\\Http\\Client\\' =>
  • miso-ai/trunk/vendor/composer/installed.json

    r3204556 r3333221  
    6868        {
    6969            "name": "guzzlehttp/guzzle",
    70             "version": "7.9.2",
    71             "version_normalized": "7.9.2.0",
     70            "version": "7.9.3",
     71            "version_normalized": "7.9.3.0",
    7272            "source": {
    7373                "type": "git",
    7474                "url": "https://github.com/guzzle/guzzle.git",
    75                 "reference": "d281ed313b989f213357e3be1a179f02196ac99b"
    76             },
    77             "dist": {
    78                 "type": "zip",
    79                 "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b",
    80                 "reference": "d281ed313b989f213357e3be1a179f02196ac99b",
     75                "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77"
     76            },
     77            "dist": {
     78                "type": "zip",
     79                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77",
     80                "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77",
    8181                "shasum": ""
    8282            },
     
    105105                "psr/log": "Required for using the Log middleware"
    106106            },
    107             "time": "2024-07-24T11:22:20+00:00",
     107            "time": "2025-03-27T13:37:11+00:00",
    108108            "type": "library",
    109109            "extra": {
     
    177177            "support": {
    178178                "issues": "https://github.com/guzzle/guzzle/issues",
    179                 "source": "https://github.com/guzzle/guzzle/tree/7.9.2"
     179                "source": "https://github.com/guzzle/guzzle/tree/7.9.3"
    180180            },
    181181            "funding": [
     
    197197        {
    198198            "name": "guzzlehttp/promises",
    199             "version": "2.0.4",
    200             "version_normalized": "2.0.4.0",
     199            "version": "2.2.0",
     200            "version_normalized": "2.2.0.0",
    201201            "source": {
    202202                "type": "git",
    203203                "url": "https://github.com/guzzle/promises.git",
    204                 "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455"
    205             },
    206             "dist": {
    207                 "type": "zip",
    208                 "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455",
    209                 "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455",
     204                "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c"
     205            },
     206            "dist": {
     207                "type": "zip",
     208                "url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c",
     209                "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c",
    210210                "shasum": ""
    211211            },
     
    217217                "phpunit/phpunit": "^8.5.39 || ^9.6.20"
    218218            },
    219             "time": "2024-10-17T10:06:22+00:00",
     219            "time": "2025-03-27T13:27:01+00:00",
    220220            "type": "library",
    221221            "extra": {
     
    263263            "support": {
    264264                "issues": "https://github.com/guzzle/promises/issues",
    265                 "source": "https://github.com/guzzle/promises/tree/2.0.4"
     265                "source": "https://github.com/guzzle/promises/tree/2.2.0"
    266266            },
    267267            "funding": [
     
    283283        {
    284284            "name": "guzzlehttp/psr7",
    285             "version": "2.7.0",
    286             "version_normalized": "2.7.0.0",
     285            "version": "2.7.1",
     286            "version_normalized": "2.7.1.0",
    287287            "source": {
    288288                "type": "git",
    289289                "url": "https://github.com/guzzle/psr7.git",
    290                 "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201"
    291             },
    292             "dist": {
    293                 "type": "zip",
    294                 "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
    295                 "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
     290                "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16"
     291            },
     292            "dist": {
     293                "type": "zip",
     294                "url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16",
     295                "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16",
    296296                "shasum": ""
    297297            },
     
    314314                "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
    315315            },
    316             "time": "2024-07-18T11:15:46+00:00",
     316            "time": "2025-03-27T12:30:47+00:00",
    317317            "type": "library",
    318318            "extra": {
     
    382382            "support": {
    383383                "issues": "https://github.com/guzzle/psr7/issues",
    384                 "source": "https://github.com/guzzle/psr7/tree/2.7.0"
     384                "source": "https://github.com/guzzle/psr7/tree/2.7.1"
    385385            },
    386386            "funding": [
     
    748748        {
    749749            "name": "symfony/deprecation-contracts",
    750             "version": "v3.5.1",
    751             "version_normalized": "3.5.1.0",
     750            "version": "v3.6.0",
     751            "version_normalized": "3.6.0.0",
    752752            "source": {
    753753                "type": "git",
    754754                "url": "https://github.com/symfony/deprecation-contracts.git",
    755                 "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
    756             },
    757             "dist": {
    758                 "type": "zip",
    759                 "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
    760                 "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
     755                "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62"
     756            },
     757            "dist": {
     758                "type": "zip",
     759                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62",
     760                "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62",
    761761                "shasum": ""
    762762            },
     
    764764                "php": ">=8.1"
    765765            },
    766             "time": "2024-09-25T14:20:29+00:00",
     766            "time": "2024-09-25T14:21:43+00:00",
    767767            "type": "library",
    768768            "extra": {
     769                "thanks": {
     770                    "url": "https://github.com/symfony/contracts",
     771                    "name": "symfony/contracts"
     772                },
    769773                "branch-alias": {
    770                     "dev-main": "3.5-dev"
    771                 },
    772                 "thanks": {
    773                     "name": "symfony/contracts",
    774                     "url": "https://github.com/symfony/contracts"
     774                    "dev-main": "3.6-dev"
    775775                }
    776776            },
     
    798798            "homepage": "https://symfony.com",
    799799            "support": {
    800                 "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
     800                "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0"
    801801            },
    802802            "funding": [
     
    818818        {
    819819            "name": "symfony/polyfill-ctype",
    820             "version": "v1.31.0",
    821             "version_normalized": "1.31.0.0",
     820            "version": "v1.32.0",
     821            "version_normalized": "1.32.0.0",
    822822            "source": {
    823823                "type": "git",
     
    844844            "extra": {
    845845                "thanks": {
    846                     "name": "symfony/polyfill",
    847                     "url": "https://github.com/symfony/polyfill"
     846                    "url": "https://github.com/symfony/polyfill",
     847                    "name": "symfony/polyfill"
    848848                }
    849849            },
     
    880880            ],
    881881            "support": {
    882                 "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
     882                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0"
    883883            },
    884884            "funding": [
     
    900900        {
    901901            "name": "symfony/polyfill-mbstring",
    902             "version": "v1.31.0",
    903             "version_normalized": "1.31.0.0",
     902            "version": "v1.32.0",
     903            "version_normalized": "1.32.0.0",
    904904            "source": {
    905905                "type": "git",
    906906                "url": "https://github.com/symfony/polyfill-mbstring.git",
    907                 "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
    908             },
    909             "dist": {
    910                 "type": "zip",
    911                 "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
    912                 "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
    913                 "shasum": ""
    914             },
    915             "require": {
     907                "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493"
     908            },
     909            "dist": {
     910                "type": "zip",
     911                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493",
     912                "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493",
     913                "shasum": ""
     914            },
     915            "require": {
     916                "ext-iconv": "*",
    916917                "php": ">=7.2"
    917918            },
     
    922923                "ext-mbstring": "For best performance"
    923924            },
    924             "time": "2024-09-09T11:45:10+00:00",
     925            "time": "2024-12-23T08:48:59+00:00",
    925926            "type": "library",
    926927            "extra": {
    927928                "thanks": {
    928                     "name": "symfony/polyfill",
    929                     "url": "https://github.com/symfony/polyfill"
     929                    "url": "https://github.com/symfony/polyfill",
     930                    "name": "symfony/polyfill"
    930931                }
    931932            },
     
    963964            ],
    964965            "support": {
    965                 "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
     966                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0"
    966967            },
    967968            "funding": [
     
    983984        {
    984985            "name": "symfony/polyfill-php80",
    985             "version": "v1.31.0",
    986             "version_normalized": "1.31.0.0",
     986            "version": "v1.32.0",
     987            "version_normalized": "1.32.0.0",
    987988            "source": {
    988989                "type": "git",
    989990                "url": "https://github.com/symfony/polyfill-php80.git",
    990                 "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
    991             },
    992             "dist": {
    993                 "type": "zip",
    994                 "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
    995                 "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
     991                "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608"
     992            },
     993            "dist": {
     994                "type": "zip",
     995                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
     996                "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
    996997                "shasum": ""
    997998            },
     
    9991000                "php": ">=7.2"
    10001001            },
    1001             "time": "2024-09-09T11:45:10+00:00",
     1002            "time": "2025-01-02T08:10:11+00:00",
    10021003            "type": "library",
    10031004            "extra": {
    10041005                "thanks": {
    1005                     "name": "symfony/polyfill",
    1006                     "url": "https://github.com/symfony/polyfill"
     1006                    "url": "https://github.com/symfony/polyfill",
     1007                    "name": "symfony/polyfill"
    10071008                }
    10081009            },
     
    10461047            ],
    10471048            "support": {
    1048                 "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
     1049                "source": "https://github.com/symfony/polyfill-php80/tree/v1.32.0"
    10491050            },
    10501051            "funding": [
     
    10661067        {
    10671068            "name": "vlucas/phpdotenv",
    1068             "version": "v5.6.1",
    1069             "version_normalized": "5.6.1.0",
     1069            "version": "v5.6.2",
     1070            "version_normalized": "5.6.2.0",
    10701071            "source": {
    10711072                "type": "git",
    10721073                "url": "https://github.com/vlucas/phpdotenv.git",
    1073                 "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2"
    1074             },
    1075             "dist": {
    1076                 "type": "zip",
    1077                 "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2",
    1078                 "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2",
     1074                "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af"
     1075            },
     1076            "dist": {
     1077                "type": "zip",
     1078                "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/24ac4c74f91ee2c193fa1aaa5c249cb0822809af",
     1079                "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af",
    10791080                "shasum": ""
    10801081            },
     
    10961097                "ext-filter": "Required to use the boolean validator."
    10971098            },
    1098             "time": "2024-07-20T21:52:34+00:00",
     1099            "time": "2025-04-30T23:37:27+00:00",
    10991100            "type": "library",
    11001101            "extra": {
     
    11371138            "support": {
    11381139                "issues": "https://github.com/vlucas/phpdotenv/issues",
    1139                 "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1"
     1140                "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.2"
    11401141            },
    11411142            "funding": [
     
    11531154        {
    11541155            "name": "woocommerce/action-scheduler",
    1155             "version": "3.9.0",
    1156             "version_normalized": "3.9.0.0",
     1156            "version": "3.9.3",
     1157            "version_normalized": "3.9.3.0",
    11571158            "source": {
    11581159                "type": "git",
    11591160                "url": "https://github.com/woocommerce/action-scheduler.git",
    1160                 "reference": "90b98e6fe97d455679b1d288f050cad8f6f79771"
    1161             },
    1162             "dist": {
    1163                 "type": "zip",
    1164                 "url": "https://api.github.com/repos/woocommerce/action-scheduler/zipball/90b98e6fe97d455679b1d288f050cad8f6f79771",
    1165                 "reference": "90b98e6fe97d455679b1d288f050cad8f6f79771",
    1166                 "shasum": ""
    1167             },
    1168             "require": {
    1169                 "php": ">=7.1"
     1161                "reference": "c58cdbab17651303d406cd3b22cf9d75c71c986c"
     1162            },
     1163            "dist": {
     1164                "type": "zip",
     1165                "url": "https://api.github.com/repos/woocommerce/action-scheduler/zipball/c58cdbab17651303d406cd3b22cf9d75c71c986c",
     1166                "reference": "c58cdbab17651303d406cd3b22cf9d75c71c986c",
     1167                "shasum": ""
     1168            },
     1169            "require": {
     1170                "php": ">=7.2"
    11701171            },
    11711172            "require-dev": {
    1172                 "phpunit/phpunit": "^7.5",
     1173                "phpunit/phpunit": "^8.5",
    11731174                "woocommerce/woocommerce-sniffs": "0.1.0",
    11741175                "wp-cli/wp-cli": "~2.5.0",
    11751176                "yoast/phpunit-polyfills": "^2.0"
    11761177            },
    1177             "time": "2024-11-15T00:11:39+00:00",
     1178            "time": "2025-07-15T09:32:30+00:00",
    11781179            "type": "wordpress-plugin",
    11791180            "extra": {
     
    11931194            "support": {
    11941195                "issues": "https://github.com/woocommerce/action-scheduler/issues",
    1195                 "source": "https://github.com/woocommerce/action-scheduler/tree/3.9.0"
     1196                "source": "https://github.com/woocommerce/action-scheduler/tree/3.9.3"
    11961197            },
    11971198            "install-path": "../woocommerce/action-scheduler"
  • miso-ai/trunk/vendor/composer/installed.php

    r3204556 r3333221  
    3030        ),
    3131        'guzzlehttp/guzzle' => array(
    32             'pretty_version' => '7.9.2',
    33             'version' => '7.9.2.0',
    34             'reference' => 'd281ed313b989f213357e3be1a179f02196ac99b',
     32            'pretty_version' => '7.9.3',
     33            'version' => '7.9.3.0',
     34            'reference' => '7b2f29fe81dc4da0ca0ea7d42107a0845946ea77',
    3535            'type' => 'library',
    3636            'install_path' => __DIR__ . '/../guzzlehttp/guzzle',
     
    3939        ),
    4040        'guzzlehttp/promises' => array(
    41             'pretty_version' => '2.0.4',
    42             'version' => '2.0.4.0',
    43             'reference' => 'f9c436286ab2892c7db7be8c8da4ef61ccf7b455',
     41            'pretty_version' => '2.2.0',
     42            'version' => '2.2.0.0',
     43            'reference' => '7c69f28996b0a6920945dd20b3857e499d9ca96c',
    4444            'type' => 'library',
    4545            'install_path' => __DIR__ . '/../guzzlehttp/promises',
     
    4848        ),
    4949        'guzzlehttp/psr7' => array(
    50             'pretty_version' => '2.7.0',
    51             'version' => '2.7.0.0',
    52             'reference' => 'a70f5c95fb43bc83f07c9c948baa0dc1829bf201',
     50            'pretty_version' => '2.7.1',
     51            'version' => '2.7.1.0',
     52            'reference' => 'c2270caaabe631b3b44c85f99e5a04bbb8060d16',
    5353            'type' => 'library',
    5454            'install_path' => __DIR__ . '/../guzzlehttp/psr7',
     
    129129        ),
    130130        'symfony/deprecation-contracts' => array(
    131             'pretty_version' => 'v3.5.1',
    132             'version' => '3.5.1.0',
    133             'reference' => '74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6',
     131            'pretty_version' => 'v3.6.0',
     132            'version' => '3.6.0.0',
     133            'reference' => '63afe740e99a13ba87ec199bb07bbdee937a5b62',
    134134            'type' => 'library',
    135135            'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
     
    138138        ),
    139139        'symfony/polyfill-ctype' => array(
    140             'pretty_version' => 'v1.31.0',
    141             'version' => '1.31.0.0',
     140            'pretty_version' => 'v1.32.0',
     141            'version' => '1.32.0.0',
    142142            'reference' => 'a3cc8b044a6ea513310cbd48ef7333b384945638',
    143143            'type' => 'library',
     
    147147        ),
    148148        'symfony/polyfill-mbstring' => array(
    149             'pretty_version' => 'v1.31.0',
    150             'version' => '1.31.0.0',
    151             'reference' => '85181ba99b2345b0ef10ce42ecac37612d9fd341',
     149            'pretty_version' => 'v1.32.0',
     150            'version' => '1.32.0.0',
     151            'reference' => '6d857f4d76bd4b343eac26d6b539585d2bc56493',
    152152            'type' => 'library',
    153153            'install_path' => __DIR__ . '/../symfony/polyfill-mbstring',
     
    156156        ),
    157157        'symfony/polyfill-php80' => array(
    158             'pretty_version' => 'v1.31.0',
    159             'version' => '1.31.0.0',
    160             'reference' => '60328e362d4c2c802a54fcbf04f9d3fb892b4cf8',
     158            'pretty_version' => 'v1.32.0',
     159            'version' => '1.32.0.0',
     160            'reference' => '0cc9dd0f17f61d8131e7df6b84bd344899fe2608',
    161161            'type' => 'library',
    162162            'install_path' => __DIR__ . '/../symfony/polyfill-php80',
     
    165165        ),
    166166        'vlucas/phpdotenv' => array(
    167             'pretty_version' => 'v5.6.1',
    168             'version' => '5.6.1.0',
    169             'reference' => 'a59a13791077fe3d44f90e7133eb68e7d22eaff2',
     167            'pretty_version' => 'v5.6.2',
     168            'version' => '5.6.2.0',
     169            'reference' => '24ac4c74f91ee2c193fa1aaa5c249cb0822809af',
    170170            'type' => 'library',
    171171            'install_path' => __DIR__ . '/../vlucas/phpdotenv',
     
    174174        ),
    175175        'woocommerce/action-scheduler' => array(
    176             'pretty_version' => '3.9.0',
    177             'version' => '3.9.0.0',
    178             'reference' => '90b98e6fe97d455679b1d288f050cad8f6f79771',
     176            'pretty_version' => '3.9.3',
     177            'version' => '3.9.3.0',
     178            'reference' => 'c58cdbab17651303d406cd3b22cf9d75c71c986c',
    179179            'type' => 'wordpress-plugin',
    180180            'install_path' => __DIR__ . '/../woocommerce/action-scheduler',
  • miso-ai/trunk/vendor/composer/platform_check.php

    r3062001 r3333221  
    2020        }
    2121    }
    22     trigger_error(
    23         'Composer detected issues in your platform: ' . implode(' ', $issues),
    24         E_USER_ERROR
     22    throw new \RuntimeException(
     23        'Composer detected issues in your platform: ' . implode(' ', $issues)
    2524    );
    2625}
  • miso-ai/trunk/vendor/guzzlehttp/guzzle/CHANGELOG.md

    r3174859 r3333221  
    22
    33Please refer to [UPGRADING](UPGRADING.md) guide for upgrading to a major version.
     4
     5
     6## 7.9.3 - 2025-03-27
     7
     8### Changed
     9
     10- Remove explicit content-length header for GET requests
     11- Improve compatibility with bad servers for boolean cookie values
    412
    513
  • miso-ai/trunk/vendor/guzzlehttp/guzzle/src/Cookie/SetCookie.php

    r3062001 r3333221  
    6363                                $data[$search] = (int) $value;
    6464                            }
     65                        } elseif ($search === 'Secure' || $search === 'Discard' || $search === 'HttpOnly') {
     66                            if ($value) {
     67                                $data[$search] = true;
     68                            }
    6569                        } else {
    6670                            $data[$search] = $value;
  • miso-ai/trunk/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php

    r3062001 r3333221  
    1818     * requests to another handler.
    1919     *
    20      * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $default Handler used for normal responses
    21      * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $sync    Handler used for synchronous responses.
     20     * @param callable(RequestInterface, array): PromiseInterface $default Handler used for normal responses
     21     * @param callable(RequestInterface, array): PromiseInterface $sync    Handler used for synchronous responses.
    2222     *
    23      * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the composed handler.
     23     * @return callable(RequestInterface, array): PromiseInterface Returns the composed handler.
    2424     */
    2525    public static function wrapSync(callable $default, callable $sync): callable
     
    3838     * through the StreamHandler.
    3939     *
    40      * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $default   Handler used for non-streaming responses
    41      * @param callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface $streaming Handler used for streaming responses
     40     * @param callable(RequestInterface, array): PromiseInterface $default   Handler used for non-streaming responses
     41     * @param callable(RequestInterface, array): PromiseInterface $streaming Handler used for streaming responses
    4242     *
    43      * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the composed handler.
     43     * @return callable(RequestInterface, array): PromiseInterface Returns the composed handler.
    4444     */
    4545    public static function wrapStreaming(callable $default, callable $streaming): callable
  • miso-ai/trunk/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php

    r3174859 r3333221  
    5454
    5555            // Append a content-length header if body size is zero to match
    56             // cURL's behavior.
    57             if (0 === $request->getBody()->getSize()) {
     56            // the behavior of `CurlHandler`
     57            if (
     58                (
     59                    0 === \strcasecmp('PUT', $request->getMethod())
     60                    || 0 === \strcasecmp('POST', $request->getMethod())
     61                )
     62                && 0 === $request->getBody()->getSize()
     63            ) {
    5864                $request = $request->withHeader('Content-Length', '0');
    5965            }
  • miso-ai/trunk/vendor/guzzlehttp/guzzle/src/Pool.php

    r3062001 r3333221  
    8787     * @param array|\Iterator $requests Requests to send concurrently.
    8888     * @param array           $options  Passes through the options available in
    89      *                                  {@see \GuzzleHttp\Pool::__construct}
     89     *                                  {@see Pool::__construct}
    9090     *
    9191     * @return array Returns an array containing the response or an exception
  • miso-ai/trunk/vendor/guzzlehttp/guzzle/src/Utils.php

    r3174859 r3333221  
    8080     * The returned handler is not wrapped by any default middlewares.
    8181     *
    82      * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the best handler for the given system.
     82     * @return callable(\Psr\Http\Message\RequestInterface, array): Promise\PromiseInterface Returns the best handler for the given system.
    8383     *
    8484     * @throws \RuntimeException if no viable Handler is available.
  • miso-ai/trunk/vendor/guzzlehttp/guzzle/src/functions.php

    r3062001 r3333221  
    5151 * The returned handler is not wrapped by any default middlewares.
    5252 *
    53  * @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the best handler for the given system.
     53 * @return callable(\Psr\Http\Message\RequestInterface, array): Promise\PromiseInterface Returns the best handler for the given system.
    5454 *
    5555 * @throws \RuntimeException if no viable Handler is available.
  • miso-ai/trunk/vendor/guzzlehttp/promises/CHANGELOG.md

    r3174859 r3333221  
    11# CHANGELOG
     2
     3
     4## 2.2.0 - 2025-03-27
     5
     6### Fixed
     7
     8- Revert "Allow an empty EachPromise to be resolved by running the queue"
     9
     10
     11## 2.1.0 - 2025-03-27
     12
     13### Added
     14
     15- Allow an empty EachPromise to be resolved by running the queue
    216
    317
  • miso-ai/trunk/vendor/guzzlehttp/psr7/CHANGELOG.md

    r3174859 r3333221  
    55The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    66and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
     7
     8## 2.7.1 - 2025-03-27
     9
     10### Fixed
     11
     12- Fixed uppercase IPv6 addresses in URI
     13
     14### Changed
     15
     16- Improve uploaded file error message
    717
    818## 2.7.0 - 2024-07-18
  • miso-ai/trunk/vendor/guzzlehttp/psr7/src/UploadedFile.php

    r3174859 r3333221  
    1212class UploadedFile implements UploadedFileInterface
    1313{
    14     private const ERRORS = [
    15         UPLOAD_ERR_OK,
    16         UPLOAD_ERR_INI_SIZE,
    17         UPLOAD_ERR_FORM_SIZE,
    18         UPLOAD_ERR_PARTIAL,
    19         UPLOAD_ERR_NO_FILE,
    20         UPLOAD_ERR_NO_TMP_DIR,
    21         UPLOAD_ERR_CANT_WRITE,
    22         UPLOAD_ERR_EXTENSION,
     14    private const ERROR_MAP = [
     15        UPLOAD_ERR_OK => 'UPLOAD_ERR_OK',
     16        UPLOAD_ERR_INI_SIZE => 'UPLOAD_ERR_INI_SIZE',
     17        UPLOAD_ERR_FORM_SIZE => 'UPLOAD_ERR_FORM_SIZE',
     18        UPLOAD_ERR_PARTIAL => 'UPLOAD_ERR_PARTIAL',
     19        UPLOAD_ERR_NO_FILE => 'UPLOAD_ERR_NO_FILE',
     20        UPLOAD_ERR_NO_TMP_DIR => 'UPLOAD_ERR_NO_TMP_DIR',
     21        UPLOAD_ERR_CANT_WRITE => 'UPLOAD_ERR_CANT_WRITE',
     22        UPLOAD_ERR_EXTENSION => 'UPLOAD_ERR_EXTENSION',
    2323    ];
    2424
     
    105105    private function setError(int $error): void
    106106    {
    107         if (false === in_array($error, UploadedFile::ERRORS, true)) {
     107        if (!isset(UploadedFile::ERROR_MAP[$error])) {
    108108            throw new InvalidArgumentException(
    109109                'Invalid error status for UploadedFile'
     
    138138    {
    139139        if (false === $this->isOk()) {
    140             throw new RuntimeException('Cannot retrieve stream due to upload error');
     140            throw new RuntimeException(\sprintf('Cannot retrieve stream due to upload error (%s)', self::ERROR_MAP[$this->error]));
    141141        }
    142142
  • miso-ai/trunk/vendor/guzzlehttp/psr7/src/Uri.php

    r3174859 r3333221  
    108108        // If IPv6
    109109        $prefix = '';
    110         if (preg_match('%^(.*://\[[0-9:a-f]+\])(.*?)$%', $url, $matches)) {
     110        if (preg_match('%^(.*://\[[0-9:a-fA-F]+\])(.*?)$%', $url, $matches)) {
    111111            /** @var array{0:string, 1:string, 2:string} $matches */
    112112            $prefix = $matches[1];
  • miso-ai/trunk/vendor/symfony/deprecation-contracts/composer.json

    r3174859 r3333221  
    2626    "extra": {
    2727        "branch-alias": {
    28             "dev-main": "3.5-dev"
     28            "dev-main": "3.6-dev"
    2929        },
    3030        "thanks": {
  • miso-ai/trunk/vendor/symfony/polyfill-mbstring/Mbstring.php

    r3174859 r3333221  
    984984    public static function mb_rtrim(string $string, ?string $characters = null, ?string $encoding = null): string
    985985    {
    986         return self::mb_internal_trim('{[%s]+$}D', $string, $characters, $encoding, __FUNCTION__);
     986        return self::mb_internal_trim('{[%s]+$}Du', $string, $characters, $encoding, __FUNCTION__);
    987987    }
    988988
  • miso-ai/trunk/vendor/symfony/polyfill-mbstring/bootstrap80.php

    r3174859 r3333221  
    134134
    135135if (!function_exists('mb_ucfirst')) {
    136     function mb_ucfirst($string, ?string $encoding = null): string { return p\Mbstring::mb_ucfirst($string, $encoding); }
     136    function mb_ucfirst(string $string, ?string $encoding = null): string { return p\Mbstring::mb_ucfirst($string, $encoding); }
    137137}
    138138
    139139if (!function_exists('mb_lcfirst')) {
    140     function mb_lcfirst($string, ?string $encoding = null): string { return p\Mbstring::mb_lcfirst($string, $encoding); }
     140    function mb_lcfirst(string $string, ?string $encoding = null): string { return p\Mbstring::mb_lcfirst($string, $encoding); }
    141141}
    142142
  • miso-ai/trunk/vendor/symfony/polyfill-mbstring/composer.json

    r3174859 r3333221  
    1717    ],
    1818    "require": {
    19         "php": ">=7.2"
     19        "php": ">=7.2",
     20        "ext-iconv": "*"
    2021    },
    2122    "provide": {
  • miso-ai/trunk/vendor/symfony/polyfill-php80/PhpToken.php

    r3062001 r3333221  
    3030
    3131    /**
    32      * @var int
     32     * @var -1|positive-int
    3333     */
    3434    public $line;
     
    3939    public $pos;
    4040
     41    /**
     42     * @param -1|positive-int $line
     43     */
    4144    public function __construct(int $id, string $text, int $line = -1, int $position = -1)
    4245    {
     
    8184
    8285    /**
    83      * @return static[]
     86     * @return list<static>
    8487     */
    8588    public static function tokenize(string $code, int $flags = 0): array
  • miso-ai/trunk/vendor/vlucas/phpdotenv/src/Dotenv.php

    r3174859 r3333221  
    200200     * @throws \Dotenv\Exception\InvalidFileException
    201201     *
    202      * @return array<string,string|null>
     202     * @return array<string, string|null>
    203203     */
    204204    public static function parse(string $content)
     
    216216     * @throws \Dotenv\Exception\InvalidPathException|\Dotenv\Exception\InvalidEncodingException|\Dotenv\Exception\InvalidFileException
    217217     *
    218      * @return array<string,string|null>
     218     * @return array<string, string|null>
    219219     */
    220220    public function load()
     
    230230     * @throws \Dotenv\Exception\InvalidEncodingException|\Dotenv\Exception\InvalidFileException
    231231     *
    232      * @return array<string,string|null>
     232     * @return array<string, string|null>
    233233     */
    234234    public function safeLoad()
  • miso-ai/trunk/vendor/vlucas/phpdotenv/src/Loader/Loader.php

    r3062001 r3333221  
    2020     * @param \Dotenv\Parser\Entry[]                 $entries
    2121     *
    22      * @return array<string,string|null>
     22     * @return array<string, string|null>
    2323     */
    2424    public function load(RepositoryInterface $repository, array $entries)
    2525    {
     26        /** @var array<string, string|null> */
    2627        return \array_reduce($entries, static function (array $vars, Entry $entry) use ($repository) {
    2728            $name = $entry->getName();
  • miso-ai/trunk/vendor/vlucas/phpdotenv/src/Loader/LoaderInterface.php

    r3062001 r3333221  
    1515     * @param \Dotenv\Parser\Entry[]                 $entries
    1616     *
    17      * @return array<string,string|null>
     17     * @return array<string, string|null>
    1818     */
    1919    public function load(RepositoryInterface $repository, array $entries);
  • miso-ai/trunk/vendor/vlucas/phpdotenv/src/Loader/Resolver.php

    r3062001 r3333221  
    5656            '/\A\${([a-zA-Z0-9_.]+)}/',
    5757            static function (array $matches) use ($repository) {
    58                 return Option::fromValue($repository->get($matches[1]))
    59                     ->getOrElse($matches[0]);
     58                /** @var string */
     59                return Option::fromValue($repository->get($matches[1]))->getOrElse($matches[0]);
    6060            },
    6161            $str,
  • miso-ai/trunk/vendor/vlucas/phpdotenv/src/Parser/EntryParser.php

    r3062001 r3333221  
    4242     * @param string $entry
    4343     *
    44      * @return \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Entry,string>
     44     * @return \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Entry, string>
    4545     */
    4646    public static function parse(string $entry)
     
    5050
    5151            return self::parseName($name)->flatMap(static function (string $name) use ($value) {
    52                 /** @var Result<Value|null,string> */
     52                /** @var Result<Value|null, string> */
    5353                $parsedValue = $value === null ? Success::create(null) : self::parseValue($value);
    5454
     
    6565     * @param string $line
    6666     *
    67      * @return \GrahamCampbell\ResultType\Result<array{string,string|null},string>
     67     * @return \GrahamCampbell\ResultType\Result<array{string, string|null},string>
    6868     */
    6969    private static function splitStringIntoParts(string $line)
    7070    {
    71         /** @var array{string,string|null} */
     71        /** @var array{string, string|null} */
    7272        $result = Str::pos($line, '=')->map(static function () use ($line) {
    7373            return \array_map('trim', \explode('=', $line, 2));
     
    7575
    7676        if ($result[0] === '') {
    77             /** @var \GrahamCampbell\ResultType\Result<array{string,string|null},string> */
     77            /** @var \GrahamCampbell\ResultType\Result<array{string, string|null},string> */
    7878            return Error::create(self::getErrorMessage('an unexpected equals', $line));
    7979        }
    8080
    81         /** @var \GrahamCampbell\ResultType\Result<array{string,string|null},string> */
     81        /** @var \GrahamCampbell\ResultType\Result<array{string, string|null},string> */
    8282        return Success::create($result);
    8383    }
     
    9191     * @param string $name
    9292     *
    93      * @return \GrahamCampbell\ResultType\Result<string,string>
     93     * @return \GrahamCampbell\ResultType\Result<string, string>
    9494     */
    9595    private static function parseName(string $name)
     
    104104
    105105        if (!self::isValidName($name)) {
    106             /** @var \GrahamCampbell\ResultType\Result<string,string> */
     106            /** @var \GrahamCampbell\ResultType\Result<string, string> */
    107107            return Error::create(self::getErrorMessage('an invalid name', $name));
    108108        }
    109109
    110         /** @var \GrahamCampbell\ResultType\Result<string,string> */
     110        /** @var \GrahamCampbell\ResultType\Result<string, string> */
    111111        return Success::create($name);
    112112    }
     
    153153     * @param string $value
    154154     *
    155      * @return \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Value,string>
     155     * @return \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Value, string>
    156156     */
    157157    private static function parseValue(string $value)
    158158    {
    159159        if (\trim($value) === '') {
    160             /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Value,string> */
     160            /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Value, string> */
    161161            return Success::create(Value::blank());
    162162        }
     
    171171            /** @psalm-suppress DocblockTypeContradiction */
    172172            if (in_array($result[1], self::REJECT_STATES, true)) {
    173                 /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Value,string> */
     173                /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Value, string> */
    174174                return Error::create('a missing closing quote');
    175175            }
    176176
    177             /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Value,string> */
     177            /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Value, string> */
    178178            return Success::create($result[0]);
    179179        })->mapError(static function (string $err) use ($value) {
     
    188188     * @param string $token
    189189     *
    190      * @return \GrahamCampbell\ResultType\Result<array{string,bool,int},string>
     190     * @return \GrahamCampbell\ResultType\Result<array{string, bool, int}, string>
    191191     */
    192192    private static function processToken(int $state, string $token)
     
    195195            case self::INITIAL_STATE:
    196196                if ($token === '\'') {
    197                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     197                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    198198                    return Success::create(['', false, self::SINGLE_QUOTED_STATE]);
    199199                } elseif ($token === '"') {
    200                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     200                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    201201                    return Success::create(['', false, self::DOUBLE_QUOTED_STATE]);
    202202                } elseif ($token === '#') {
    203                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     203                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    204204                    return Success::create(['', false, self::COMMENT_STATE]);
    205205                } elseif ($token === '$') {
    206                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     206                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    207207                    return Success::create([$token, true, self::UNQUOTED_STATE]);
    208208                } else {
    209                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     209                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    210210                    return Success::create([$token, false, self::UNQUOTED_STATE]);
    211211                }
    212212            case self::UNQUOTED_STATE:
    213213                if ($token === '#') {
    214                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     214                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    215215                    return Success::create(['', false, self::COMMENT_STATE]);
    216216                } elseif (\ctype_space($token)) {
    217                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     217                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    218218                    return Success::create(['', false, self::WHITESPACE_STATE]);
    219219                } elseif ($token === '$') {
    220                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     220                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    221221                    return Success::create([$token, true, self::UNQUOTED_STATE]);
    222222                } else {
    223                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     223                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    224224                    return Success::create([$token, false, self::UNQUOTED_STATE]);
    225225                }
    226226            case self::SINGLE_QUOTED_STATE:
    227227                if ($token === '\'') {
    228                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     228                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    229229                    return Success::create(['', false, self::WHITESPACE_STATE]);
    230230                } else {
    231                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     231                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    232232                    return Success::create([$token, false, self::SINGLE_QUOTED_STATE]);
    233233                }
    234234            case self::DOUBLE_QUOTED_STATE:
    235235                if ($token === '"') {
    236                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     236                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    237237                    return Success::create(['', false, self::WHITESPACE_STATE]);
    238238                } elseif ($token === '\\') {
    239                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     239                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    240240                    return Success::create(['', false, self::ESCAPE_SEQUENCE_STATE]);
    241241                } elseif ($token === '$') {
    242                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     242                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    243243                    return Success::create([$token, true, self::DOUBLE_QUOTED_STATE]);
    244244                } else {
    245                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     245                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    246246                    return Success::create([$token, false, self::DOUBLE_QUOTED_STATE]);
    247247                }
    248248            case self::ESCAPE_SEQUENCE_STATE:
    249249                if ($token === '"' || $token === '\\') {
    250                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     250                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    251251                    return Success::create([$token, false, self::DOUBLE_QUOTED_STATE]);
    252252                } elseif ($token === '$') {
    253                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     253                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    254254                    return Success::create([$token, false, self::DOUBLE_QUOTED_STATE]);
    255255                } else {
    256256                    $first = Str::substr($token, 0, 1);
    257257                    if (\in_array($first, ['f', 'n', 'r', 't', 'v'], true)) {
    258                         /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     258                        /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    259259                        return Success::create([\stripcslashes('\\'.$first).Str::substr($token, 1), false, self::DOUBLE_QUOTED_STATE]);
    260260                    } else {
    261                         /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     261                        /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    262262                        return Error::create('an unexpected escape sequence');
    263263                    }
     
    265265            case self::WHITESPACE_STATE:
    266266                if ($token === '#') {
    267                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     267                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    268268                    return Success::create(['', false, self::COMMENT_STATE]);
    269269                } elseif (!\ctype_space($token)) {
    270                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     270                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    271271                    return Error::create('unexpected whitespace');
    272272                } else {
    273                     /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     273                    /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    274274                    return Success::create(['', false, self::WHITESPACE_STATE]);
    275275                }
    276276            case self::COMMENT_STATE:
    277                 /** @var \GrahamCampbell\ResultType\Result<array{string,bool,int},string> */
     277                /** @var \GrahamCampbell\ResultType\Result<array{string, bool, int}, string> */
    278278                return Success::create(['', false, self::COMMENT_STATE]);
    279279            default:
  • miso-ai/trunk/vendor/vlucas/phpdotenv/src/Parser/Lines.php

    r3062001 r3333221  
    5555     * @param string[] $buffer
    5656     *
    57      * @return array{bool,string,string[]}
     57     * @return array{bool,string, string[]}
    5858     */
    5959    private static function multilineProcess(bool $multiline, string $line, array $buffer)
  • miso-ai/trunk/vendor/vlucas/phpdotenv/src/Parser/Parser.php

    r3062001 r3333221  
    3737     * @param string[] $entries
    3838     *
    39      * @return \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Entry[],string>
     39     * @return \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Entry[], string>
    4040     */
    4141    private static function process(array $entries)
    4242    {
    43         /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Entry[],string> */
     43        /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Entry[], string> */
    4444        return \array_reduce($entries, static function (Result $result, string $raw) {
    4545            return $result->flatMap(static function (array $entries) use ($raw) {
  • miso-ai/trunk/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php

    r3062001 r3333221  
    1313     * The variables and their values.
    1414     *
    15      * @var array<string,string>
     15     * @var array<string, string>
    1616     */
    1717    private $variables;
  • miso-ai/trunk/vendor/vlucas/phpdotenv/src/Repository/Adapter/ImmutableWriter.php

    r3062001 r3333221  
    2424     * The record of loaded variables.
    2525     *
    26      * @var array<string,string>
     26     * @var array<string, string>
    2727     */
    2828    private $loaded;
  • miso-ai/trunk/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReplacingWriter.php

    r3062001 r3333221  
    2424     * The record of seen variables.
    2525     *
    26      * @var array<string,string>
     26     * @var array<string, string>
    2727     */
    2828    private $seen;
  • miso-ai/trunk/vendor/vlucas/phpdotenv/src/Store/File/Reader.php

    r3174859 r3333221  
    3939     * @throws \Dotenv\Exception\InvalidEncodingException
    4040     *
    41      * @return array<string,string>
     41     * @return array<string, string>
    4242     */
    4343    public static function read(array $filePaths, bool $shortCircuit = true, ?string $fileEncoding = null)
  • miso-ai/trunk/vendor/vlucas/phpdotenv/src/Util/Regex.php

    r3174859 r3333221  
    3131     * @param string $subject
    3232     *
    33      * @return \GrahamCampbell\ResultType\Result<bool,string>
     33     * @return \GrahamCampbell\ResultType\Result<bool, string>
    3434     */
    3535    public static function matches(string $pattern, string $subject)
     
    4646     * @param string $subject
    4747     *
    48      * @return \GrahamCampbell\ResultType\Result<int,string>
     48     * @return \GrahamCampbell\ResultType\Result<int, string>
    4949     */
    5050    public static function occurrences(string $pattern, string $subject)
     
    5858     * Perform a preg replace callback, wrapping up the result.
    5959     *
    60      * @param string   $pattern
    61      * @param callable $callback
    62      * @param string   $subject
    63      * @param int|null $limit
     60     * @param string                     $pattern
     61     * @param callable(string[]): string $callback
     62     * @param string                     $subject
     63     * @param int|null                   $limit
    6464     *
    65      * @return \GrahamCampbell\ResultType\Result<string,string>
     65     * @return \GrahamCampbell\ResultType\Result<string, string>
    6666     */
    6767    public static function replaceCallback(string $pattern, callable $callback, string $subject, ?int $limit = null)
     
    7878     * @param string $subject
    7979     *
    80      * @return \GrahamCampbell\ResultType\Result<string[],string>
     80     * @return \GrahamCampbell\ResultType\Result<string[], string>
    8181     */
    8282    public static function split(string $pattern, string $subject)
     
    9393     * @template V
    9494     *
    95      * @param callable(string):V $operation
    96      * @param string             $subject
     95     * @param callable(string): V $operation
     96     * @param string              $subject
    9797     *
    98      * @return \GrahamCampbell\ResultType\Result<V,string>
     98     * @return \GrahamCampbell\ResultType\Result<V, string>
    9999     */
    100100    private static function pregAndWrap(callable $operation, string $subject)
  • miso-ai/trunk/vendor/vlucas/phpdotenv/src/Util/Str.php

    r3174859 r3333221  
    3232     * @param string|null $encoding
    3333     *
    34      * @return \GrahamCampbell\ResultType\Result<string,string>
     34     * @return \GrahamCampbell\ResultType\Result<string, string>
    3535     */
    3636    public static function utf8(string $input, ?string $encoding = null)
    3737    {
    3838        if ($encoding !== null && !\in_array($encoding, \mb_list_encodings(), true)) {
    39             /** @var \GrahamCampbell\ResultType\Result<string,string> */
     39            /** @var \GrahamCampbell\ResultType\Result<string, string> */
    4040            return Error::create(
    4141                \sprintf('Illegal character encoding [%s] specified.', $encoding)
    4242            );
    4343        }
     44
    4445        $converted = $encoding === null ?
    4546            @\mb_convert_encoding($input, 'UTF-8') :
    4647            @\mb_convert_encoding($input, 'UTF-8', $encoding);
     48
     49        if (!is_string($converted)) {
     50            /** @var \GrahamCampbell\ResultType\Result<string, string> */
     51            return Error::create(
     52                \sprintf('Conversion from encoding [%s] failed.', $encoding ?? 'NULL')
     53            );
     54        }
     55
    4756        /**
    4857         * this is for support UTF-8 with BOM encoding
     
    5362            $converted = \substr($converted, 3);
    5463        }
    55         /** @var \GrahamCampbell\ResultType\Result<string,string> */
     64
     65        /** @var \GrahamCampbell\ResultType\Result<string, string> */
    5666        return Success::create($converted);
    5767    }
  • miso-ai/trunk/vendor/vlucas/phpdotenv/src/Validator.php

    r3062001 r3333221  
    3131     * @param \Dotenv\Repository\RepositoryInterface $repository
    3232     * @param string[]                               $variables
    33      *
    34      * @throws \Dotenv\Exception\ValidationException
    3533     *
    3634     * @return void
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/action-scheduler.php

    r3204556 r3333221  
    66 * Author: Automattic
    77 * Author URI: https://automattic.com/
    8  * Version: 3.9.0
     8 * Version: 3.9.3
    99 * License: GPLv3
    1010 * Requires at least: 6.5
    11  * Tested up to: 6.7
    12  * Requires PHP: 7.1
     11 * Tested up to: 6.8
     12 * Requires PHP: 7.2
    1313 *
    1414 * Copyright 2019 Automattic, Inc.  (https://automattic.com/contact/)
     
    3030 */
    3131
    32 if ( ! function_exists( 'action_scheduler_register_3_dot_9_dot_0' ) && function_exists( 'add_action' ) ) { // WRCS: DEFINED_VERSION.
     32if ( ! function_exists( 'action_scheduler_register_3_dot_9_dot_3' ) && function_exists( 'add_action' ) ) { // WRCS: DEFINED_VERSION.
    3333
    3434    if ( ! class_exists( 'ActionScheduler_Versions', false ) ) {
     
    3737    }
    3838
    39     add_action( 'plugins_loaded', 'action_scheduler_register_3_dot_9_dot_0', 0, 0 ); // WRCS: DEFINED_VERSION.
     39    add_action( 'plugins_loaded', 'action_scheduler_register_3_dot_9_dot_3', 0, 0 ); // WRCS: DEFINED_VERSION.
    4040
    4141    // phpcs:disable Generic.Functions.OpeningFunctionBraceKernighanRitchie.ContentAfterBrace
     
    4343     * Registers this version of Action Scheduler.
    4444     */
    45     function action_scheduler_register_3_dot_9_dot_0() { // WRCS: DEFINED_VERSION.
     45    function action_scheduler_register_3_dot_9_dot_3() { // WRCS: DEFINED_VERSION.
    4646        $versions = ActionScheduler_Versions::instance();
    47         $versions->register( '3.9.0', 'action_scheduler_initialize_3_dot_9_dot_0' ); // WRCS: DEFINED_VERSION.
     47        $versions->register( '3.9.3', 'action_scheduler_initialize_3_dot_9_dot_3' ); // WRCS: DEFINED_VERSION.
    4848    }
    4949
     
    5252     * Initializes this version of Action Scheduler.
    5353     */
    54     function action_scheduler_initialize_3_dot_9_dot_0() { // WRCS: DEFINED_VERSION.
     54    function action_scheduler_initialize_3_dot_9_dot_3() { // WRCS: DEFINED_VERSION.
    5555        // A final safety check is required even here, because historic versions of Action Scheduler
    5656        // followed a different pattern (in some unusual cases, we could reach this point and the
     
    6464    // Support usage in themes - load this version if no plugin has loaded a version yet.
    6565    if ( did_action( 'plugins_loaded' ) && ! doing_action( 'plugins_loaded' ) && ! class_exists( 'ActionScheduler', false ) ) {
    66         action_scheduler_initialize_3_dot_9_dot_0(); // WRCS: DEFINED_VERSION.
     66        action_scheduler_initialize_3_dot_9_dot_3(); // WRCS: DEFINED_VERSION.
    6767        do_action( 'action_scheduler_pre_theme_init' );
    6868        ActionScheduler_Versions::initialize_latest_version();
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/changelog.txt

    r3204556 r3333221  
    11*** Changelog ***
     2
     3= 3.9.3 - 2025-07-15 =
     4* Add hook 'action_scheduler_ensure_recurring_actions' specifically for scheduling recurring actions.
     5* Assume an action is valid until proven otherwise.
     6* Implement SKIP LOCKED during action claiming.
     7* Import `get_flag_value()` from `WP_CLI\Utils` before using.
     8* Make `$unique` available to all pre-creation/short-circuit hooks.
     9* Make version/source information available via new class.
     10* Only release claims on pending actions.
     11* Tweak - WP 6.8 compatibility.
     12* Update minimum supported php and phpunit versions.
     13* Update readme.txt.
     14* WP CLI get action command: correct parentheses/nesting of conditional checks.
     15
     16= 3.9.2 - 2025-02-03 =
     17* Fixed fatal errors by moving version info methods to a new class and deprecating conflicting ones in ActionScheduler_Versions
     18
     19= 3.9.1 - 2025-01-21 =
     20* A number of new WP CLI commands have been added, making it easier to manage actions in the terminal and from scripts.
     21* New wp action-scheduler source command to help determine how Action Scheduler is being loaded.
     22* Additional information about the active instance of Action Scheduler is now available in the Help pull-down drawer.
     23* Make some other nullable parameters explicitly nullable.
     24* Set option value to `no` rather than deleting.
    225
    326= 3.9.0 - 2024-11-14 = 
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionFactory.php

    r3204556 r3333221  
    99     * Return stored actions for given params.
    1010     *
    11      * @param string                   $status The action's status in the data store.
    12      * @param string                   $hook The hook to trigger when this action runs.
    13      * @param array                    $args Args to pass to callbacks when the hook is triggered.
    14      * @param ActionScheduler_Schedule $schedule The action's schedule.
    15      * @param string                   $group A group to put the action in.
     11     * @param string                        $status The action's status in the data store.
     12     * @param string                        $hook The hook to trigger when this action runs.
     13     * @param array                         $args Args to pass to callbacks when the hook is triggered.
     14     * @param ActionScheduler_Schedule|null $schedule The action's schedule.
     15     * @param string                        $group A group to put the action in.
    1616     * phpcs:ignore Squiz.Commenting.FunctionComment.ExtraParamComment
    17      * @param int                      $priority The action priority.
     17     * @param int                           $priority The action priority.
    1818     *
    1919     * @return ActionScheduler_Action An instance of the stored action.
    2020     */
    21     public function get_stored_action( $status, $hook, array $args = array(), ActionScheduler_Schedule $schedule = null, $group = '' ) {
     21    public function get_stored_action( $status, $hook, array $args = array(), ?ActionScheduler_Schedule $schedule = null, $group = '' ) {
    2222        // The 6th parameter ($priority) is not formally declared in the method signature to maintain compatibility with
    2323        // third-party subclasses created before this param was added.
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AdminView.php

    r3204556 r3333221  
    251251        }
    252252
    253         $as_version = ActionScheduler_Versions::instance()->latest_version();
     253        $as_version       = ActionScheduler_Versions::instance()->latest_version();
     254        $as_source        = ActionScheduler_SystemInformation::active_source();
     255        $as_source_path   = ActionScheduler_SystemInformation::active_source_path();
     256        $as_source_markup = sprintf( '<code>%s</code>', esc_html( $as_source_path ) );
     257
     258        if ( ! empty( $as_source ) ) {
     259            $as_source_markup = sprintf(
     260                '%s: <abbr title="%s">%s</abbr>',
     261                ucfirst( $as_source['type'] ),
     262                esc_attr( $as_source_path ),
     263                esc_html( $as_source['name'] )
     264            );
     265        }
     266
    254267        $screen->add_help_tab(
    255268            array(
     
    261274                    '<p>' .
    262275                        __( 'Action Scheduler is a scalable, traceable job queue for background processing large sets of actions. Action Scheduler works by triggering an action hook to run at some time in the future. Scheduled actions can also be scheduled to run on a recurring schedule.', 'action-scheduler' ) .
     276                    '</p>' .
     277                    '<h3>' . esc_html__( 'Source', 'action-scheduler' ) . '</h3>' .
     278                    '<p>' .
     279                        esc_html__( 'Action Scheduler is currently being loaded from the following location. This can be useful when debugging, or if requested by the support team.', 'action-scheduler' ) .
     280                    '</p>' .
     281                    '<p>' . $as_source_markup . '</p>' .
     282                    '<h3>' . esc_html__( 'WP CLI', 'action-scheduler' ) . '</h3>' .
     283                    '<p>' .
     284                        sprintf(
     285                            /* translators: %1$s is WP CLI command (not translatable) */
     286                            esc_html__( 'WP CLI commands are available: execute %1$s for a list of available commands.', 'action-scheduler' ),
     287                            '<code>wp help action-scheduler</code>'
     288                        ) .
    263289                    '</p>',
    264290            )
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DataController.php

    r3204556 r3333221  
    163163        }
    164164
    165         $wp_object_cache->group_ops      = array();
    166         $wp_object_cache->stats          = array();
    167         $wp_object_cache->memcache_debug = array();
    168         $wp_object_cache->cache          = array();
     165        // Not all drop-ins support these props, however, there may be existing installations that rely on these being cleared.
     166        if ( property_exists( $wp_object_cache, 'group_ops' ) ) {
     167            $wp_object_cache->group_ops = array();
     168        }
     169        if ( property_exists( $wp_object_cache, 'stats' ) ) {
     170            $wp_object_cache->stats = array();
     171        }
     172        if ( property_exists( $wp_object_cache, 'memcache_debug' ) ) {
     173            $wp_object_cache->memcache_debug = array();
     174        }
     175        if ( property_exists( $wp_object_cache, 'cache' ) ) {
     176            $wp_object_cache->cache = array();
     177        }
    169178
    170179        if ( is_callable( array( $wp_object_cache, '__remoteset' ) ) ) {
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Versions.php

    r3204556 r3333221  
    2020
    2121    /**
     22     * Registered sources.
     23     *
     24     * @var array<string, string>
     25     */
     26    private $sources = array();
     27
     28    /**
    2229     * Register version's callback.
    2330     *
     
    2936            return false;
    3037        }
     38
     39        // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
     40        $backtrace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS );
     41        $source    = $backtrace[0]['file'];
     42
    3143        $this->versions[ $version_string ] = $initialization_callback;
     44        $this->sources[ $source ]          = $version_string;
    3245        return true;
    3346    }
     
    3851    public function get_versions() {
    3952        return $this->versions;
     53    }
     54
     55    /**
     56     * Get registered sources.
     57     *
     58     * Use with caution: this method is only available as of Action Scheduler's 3.9.1
     59     * release and, owing to the way Action Scheduler is loaded, it's possible that the
     60     * class definition used at runtime will belong to an earlier version.
     61     *
     62     * @since 3.9.1
     63     *
     64     * @return array<string, string>
     65     */
     66    public function get_sources() {
     67        return $this->sources;
    4068    }
    4169
     
    87115        call_user_func( $self->latest_version_callback() );
    88116    }
     117
     118    /**
     119     * Returns information about the plugin or theme which contains the current active version
     120     * of Action Scheduler.
     121     *
     122     * If this cannot be determined, or if Action Scheduler is being loaded via some other
     123     * method, then it will return an empty array. Otherwise, if populated, the array will
     124     * look like the following:
     125     *
     126     *     [
     127     *         'type' => 'plugin', # or 'theme'
     128     *         'name' => 'Name',
     129     *     ]
     130     *
     131     * @deprecated 3.9.2 Use ActionScheduler_SystemInformation::active_source().
     132     *
     133     * @return array
     134     */
     135    public function active_source(): array {
     136        _deprecated_function( __METHOD__, '3.9.2', 'ActionScheduler_SystemInformation::active_source()' );
     137        return ActionScheduler_SystemInformation::active_source();
     138    }
     139
     140    /**
     141     * Returns the directory path for the currently active installation of Action Scheduler.
     142     *
     143     * @deprecated 3.9.2 Use ActionScheduler_SystemInformation::active_source_path().
     144     *
     145     * @return string
     146     */
     147    public function active_source_path(): string {
     148        _deprecated_function( __METHOD__, '3.9.2', 'ActionScheduler_SystemInformation::active_source_path()' );
     149        return ActionScheduler_SystemInformation::active_source_path();
     150    }
    89151}
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php

    r3204556 r3333221  
    6767     */
    6868    public static function maybe_schedule_cleanup() {
     69        $has_logs = 'no';
     70
    6971        $args = array(
    7072            'type'   => ActionScheduler_wpCommentLogger::TYPE,
     
    7476
    7577        if ( (bool) get_comments( $args ) ) {
    76             update_option( self::$has_logs_option_key, 'yes' );
     78            $has_logs = 'yes';
    7779
    7880            if ( ! as_next_scheduled_action( self::$cleanup_hook ) ) {
     
    8082            }
    8183        }
     84
     85        update_option( self::$has_logs_option_key, $has_logs, true );
    8286    }
    8387
     
    96100        );
    97101
    98         delete_option( self::$has_logs_option_key );
     102        update_option( self::$has_logs_option_key, 'no', true );
    99103    }
    100104
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/classes/ActionScheduler_wcSystemStatus.php

    r3062001 r3333221  
    7777        $action = $this->store->query_actions(
    7878            array(
    79                 'claimed'  => false,
    8079                'status'   => $status,
    8180                'per_page' => 1,
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler.php

    r3204556 r3333221  
    185185        ActionScheduler_DataController::init();
    186186
    187         $store      = self::store();
    188         $logger     = self::logger();
    189         $runner     = self::runner();
    190         $admin_view = self::admin_view();
     187        $store                      = self::store();
     188        $logger                     = self::logger();
     189        $runner                     = self::runner();
     190        $admin_view                 = self::admin_view();
     191        $recurring_action_scheduler = new ActionScheduler_RecurringActionScheduler();
    191192
    192193        // Ensure initialization on plugin activation.
     
    197198            add_action( 'init', array( $logger, 'init' ), 1, 0 );
    198199            add_action( 'init', array( $runner, 'init' ), 1, 0 );
     200            add_action( 'init', array( $recurring_action_scheduler, 'init' ), 1, 0 );
    199201
    200202            add_action(
     
    224226            $logger->init();
    225227            $runner->init();
     228            $recurring_action_scheduler->init();
    226229            self::$data_store_initialized = true;
    227230
     
    241244            WP_CLI::add_command( 'action-scheduler', 'ActionScheduler_WPCLI_Scheduler_command' );
    242245            WP_CLI::add_command( 'action-scheduler', 'ActionScheduler_WPCLI_Clean_Command' );
     246            WP_CLI::add_command( 'action-scheduler action', '\Action_Scheduler\WP_CLI\Action_Command' );
     247            WP_CLI::add_command( 'action-scheduler', '\Action_Scheduler\WP_CLI\System_Command' );
    243248            if ( ! ActionScheduler_DataController::is_migration_complete() && Controller::instance()->allow_migration() ) {
    244249                $command = new Migration_Command();
     
    297302            'ActionScheduler_Store'                      => true,
    298303            'ActionScheduler_TimezoneHelper'             => true,
     304            'ActionScheduler_WPCLI_Command'              => true,
    299305        );
    300306
     
    341347    protected static function is_class_cli( $class ) {
    342348        static $cli_segments = array(
    343             'QueueRunner' => true,
    344             'Command'     => true,
    345             'ProgressBar' => true,
     349            'QueueRunner'                             => true,
     350            'Command'                                 => true,
     351            'ProgressBar'                             => true,
     352            '\Action_Scheduler\WP_CLI\Action_Command' => true,
     353            '\Action_Scheduler\WP_CLI\System_Command' => true,
    346354        );
    347355
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_QueueRunner.php

    r3204556 r3333221  
    8787        try {
    8888            try {
    89                 $valid_action = false;
     89                $valid_action = true;
     90
    9091                do_action( 'action_scheduler_before_execute', $action_id, $context );
    9192
    9293                if ( ActionScheduler_Store::STATUS_PENDING !== $this->store->get_status( $action_id ) ) {
     94                    $valid_action = false;
    9395                    do_action( 'action_scheduler_execution_ignored', $action_id, $context );
    9496                    return;
    9597                }
    9698
    97                 $valid_action = true;
    9899                do_action( 'action_scheduler_begin_execute', $action_id, $context );
    99100
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php

    r3204556 r3333221  
    932932         */
    933933        global $wpdb;
    934 
    935934        $now  = as_get_datetime_object();
    936935        $date = is_null( $before_date ) ? $now : clone $before_date;
    937         // can't use $wpdb->update() because of the <= condition.
    938         $update = "UPDATE {$wpdb->actionscheduler_actions} SET claim_id=%d, last_attempt_gmt=%s, last_attempt_local=%s";
    939         $params = array(
    940             $claim_id,
    941             $now->format( 'Y-m-d H:i:s' ),
    942             current_time( 'mysql' ),
    943         );
    944936
    945937        // Set claim filters.
     
    955947        }
    956948
    957         $where    = 'WHERE claim_id = 0 AND scheduled_date_gmt <= %s AND status=%s';
    958         $params[] = $date->format( 'Y-m-d H:i:s' );
    959         $params[] = self::STATUS_PENDING;
     949        $where        = 'WHERE claim_id = 0 AND scheduled_date_gmt <= %s AND status=%s';
     950        $where_params = array(
     951            $date->format( 'Y-m-d H:i:s' ),
     952            self::STATUS_PENDING,
     953        );
    960954
    961955        if ( ! empty( $hooks ) ) {
    962956            $placeholders = array_fill( 0, count( $hooks ), '%s' );
    963             $where       .= ' AND hook IN (' . join( ', ', $placeholders ) . ')';
    964             $params       = array_merge( $params, array_values( $hooks ) );
     957            $where        .= ' AND hook IN (' . join( ', ', $placeholders ) . ')';
     958            $where_params = array_merge( $where_params, array_values( $hooks ) );
    965959        }
    966960
     
    997991         * Sets the order-by clause used in the action claim query.
    998992         *
    999          * @since 3.4.0
    1000          * @since 3.8.3 Made $claim_id and $hooks available.
    1001          *
    1002993         * @param string $order_by_sql
    1003994         * @param string $claim_id Claim Id.
    1004          * @param array  $hooks Hooks to filter for.
    1005          */
    1006         $order    = apply_filters( 'action_scheduler_claim_actions_order_by', 'ORDER BY priority ASC, attempts ASC, scheduled_date_gmt ASC, action_id ASC', $claim_id, $hooks );
    1007         $params[] = $limit;
    1008 
    1009         $sql           = $wpdb->prepare( "{$update} {$where} {$order} LIMIT %d", $params ); // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.PreparedSQLPlaceholders
    1010         $rows_affected = $wpdb->query( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
     995         * @param array  $hooks    Hooks to filter for.
     996         *
     997         * @since 3.8.3 Made $claim_id and $hooks available.
     998         * @since 3.4.0
     999         */
     1000        $order       = apply_filters( 'action_scheduler_claim_actions_order_by', 'ORDER BY priority ASC, attempts ASC, scheduled_date_gmt ASC, action_id ASC', $claim_id, $hooks );
     1001        $skip_locked = $this->db_supports_skip_locked() ? ' SKIP LOCKED' : '';
     1002
     1003        // Selecting the action_ids that we plan to claim, while skipping any locked rows to avoid deadlocking.
     1004        $select_sql = $wpdb->prepare( "SELECT action_id from {$wpdb->actionscheduler_actions} {$where} {$order} LIMIT %d FOR UPDATE{$skip_locked}", array_merge( $where_params, array( $limit ) ) );
     1005
     1006        // Now place it into an UPDATE statement by joining the result sets, allowing for the SKIP LOCKED behavior to take effect.
     1007        $update_sql    = "UPDATE {$wpdb->actionscheduler_actions} t1 JOIN ( $select_sql ) t2 ON t1.action_id = t2.action_id SET claim_id=%d, last_attempt_gmt=%s, last_attempt_local=%s";
     1008        $update_params = array(
     1009            $claim_id,
     1010            $now->format( 'Y-m-d H:i:s' ),
     1011            current_time( 'mysql' ),
     1012        );
     1013
     1014        $rows_affected = $wpdb->query( $wpdb->prepare( $update_sql, $update_params ) );
    10111015        if ( false === $rows_affected ) {
    10121016            $error = empty( $wpdb->last_error )
    10131017                ? _x( 'unknown', 'database error', 'action-scheduler' )
    10141018                : $wpdb->last_error;
    1015 
    10161019            throw new \RuntimeException(
    10171020                sprintf(
     
    10271030
    10281031    /**
     1032     * Determines whether the database supports using SKIP LOCKED. This logic mimicks the $wpdb::has_cap() logic.
     1033     *
     1034     * SKIP_LOCKED support was added to MariaDB in 10.6.0 and to MySQL in 8.0.1
     1035     *
     1036     * @return bool
     1037     */
     1038    private function db_supports_skip_locked() {
     1039        global $wpdb;
     1040        $db_version     = $wpdb->db_version();
     1041        $db_server_info = $wpdb->db_server_info();
     1042        $is_mariadb     = ( false !== strpos( $db_server_info, 'MariaDB' ) );
     1043
     1044        if ( $is_mariadb &&
     1045             '5.5.5' === $db_version &&
     1046             PHP_VERSION_ID < 80016 // PHP 8.0.15 or older.
     1047        ) {
     1048            /*
     1049             * Account for MariaDB version being prefixed with '5.5.5-' on older PHP versions.
     1050             */
     1051            $db_server_info = preg_replace( '/^5\.5\.5-(.*)/', '$1', $db_server_info );
     1052            $db_version     = preg_replace( '/[^0-9.].*/', '', $db_server_info );
     1053        }
     1054
     1055        $is_supported = ( $is_mariadb && version_compare( $db_version, '10.6.0', '>=' ) ) ||
     1056                        ( ! $is_mariadb && version_compare( $db_version, '8.0.1', '>=' ) );
     1057
     1058        /**
     1059         * Filter whether the database supports the SKIP LOCKED modifier for queries.
     1060         *
     1061         * @param bool $is_supported Whether SKIP LOCKED is supported.
     1062         *
     1063         * @since 3.9.3
     1064         */
     1065        return apply_filters( 'action_scheduler_db_supports_skip_locked', $is_supported );
     1066    }
     1067
     1068    /**
    10291069     * Get the number of active claims.
    10301070     *
     
    10951135
    10961136    /**
    1097      * Release actions from a claim and delete the claim.
     1137     * Release pending actions from a claim and delete the claim.
    10981138     *
    10991139     * @param ActionScheduler_ActionClaim $claim Claim object.
     
    11071147         */
    11081148        global $wpdb;
     1149
     1150        if ( 0 === intval( $claim->get_id() ) ) {
     1151            // Verify that the claim_id is valid before attempting to release it.
     1152            return;
     1153        }
    11091154
    11101155        /**
     
    11141159         *
    11151160         * We resolve this by getting all the actions_id that we want to release claim from in a separate query, and then releasing the claim on each of them. This way, our lock is acquired on the action_id index instead of the claim_id index. Note that the lock on claim_id will still be acquired, but it will only when we actually make the update, rather than when we select the actions.
    1116          */
    1117         $action_ids = $wpdb->get_col( $wpdb->prepare( "SELECT action_id FROM {$wpdb->actionscheduler_actions} WHERE claim_id = %d", $claim->get_id() ) );
     1161         *
     1162         * We only release pending actions in order for them to be claimed by another process.
     1163         */
     1164        $action_ids = $wpdb->get_col( $wpdb->prepare( "SELECT action_id FROM {$wpdb->actionscheduler_actions} WHERE claim_id = %d AND status = %s", $claim->get_id(), self::STATUS_PENDING ) );
    11181165
    11191166        $row_updates = 0;
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_HybridStore.php

    r3204556 r3333221  
    433433
    434434    /**
    435      * Release a claim in the table data store.
     435     * Release a claim in the table data store on any pending actions.
    436436     *
    437437     * @param ActionScheduler_ActionClaim $claim Claim object.
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php

    r3204556 r3333221  
    792792
    793793    /**
    794      * Release claim.
     794     * Release pending actions from a claim.
    795795     *
    796796     * @param ActionScheduler_ActionClaim $claim Claim object to release.
     
    799799     */
    800800    public function release_claim( ActionScheduler_ActionClaim $claim ) {
    801         $action_ids = $this->find_actions_by_claim_id( $claim->get_id() );
    802         if ( empty( $action_ids ) ) {
    803             return; // nothing to do.
    804         }
    805         $action_id_string = implode( ',', array_map( 'intval', $action_ids ) );
    806801        /**
    807802         * Global wpdb object.
     
    810805         */
    811806        global $wpdb;
     807
     808        $claim_id = $claim->get_id();
     809        if ( trim( $claim_id ) === '' ) {
     810            // Verify that the claim_id is valid before attempting to release it.
     811            return;
     812        }
     813
     814        // Only attempt to release pending actions to be claimed again. Running and complete actions are no longer relevant outside of admin/analytics.
     815        // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
     816        $action_ids = $wpdb->get_col(
     817            $wpdb->prepare(
     818                "SELECT ID, post_date_gmt FROM {$wpdb->posts} WHERE post_type = %s AND post_password = %s AND post_status = %s",
     819                self::POST_TYPE,
     820                $claim_id,
     821                self::STATUS_PENDING
     822            )
     823        );
     824
     825        if ( empty( $action_ids ) ) {
     826            return; // nothing to do.
     827        }
     828        $action_id_string = implode( ',', array_map( 'intval', $action_ids ) );
    812829
    813830        // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_StoreSchema.php

    r3204556 r3333221  
    2121     * @var int
    2222     */
    23     protected $schema_version = 7;
     23    protected $schema_version = 8;
    2424
    2525    /**
     
    8181                        KEY group_id (group_id),
    8282                        KEY last_attempt_gmt (last_attempt_gmt),
    83                         KEY `claim_id_status_scheduled_date_gmt` (`claim_id`, `status`, `scheduled_date_gmt`)
     83                        KEY `claim_id_status_priority_scheduled_date_gmt` (`claim_id`,`status`,`priority`,`scheduled_date_gmt`),
     84                        KEY `status_last_attempt_gmt` (`status`,`last_attempt_gmt`),
     85                        KEY `status_claim_id` (`status`,`claim_id`)
    8486                        ) $charset_collate";
    8587
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Schedule_Deprecated.php

    r3062001 r3333221  
    1414     * @return DateTime|null
    1515     */
    16     public function next( DateTime $after = null ) {
     16    public function next( ?DateTime $after = null ) {
    1717        if ( empty( $after ) ) {
    1818            $return_value       = $this->get_date();
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/functions.php

    r3204556 r3333221  
    8787     * @param string   $group      Action group.
    8888     * @param int      $priorities Action priority.
     89     * @param bool     $unique     Unique action.
    8990     */
    90     $pre = apply_filters( 'pre_as_schedule_single_action', null, $timestamp, $hook, $args, $group, $priority );
     91    $pre = apply_filters( 'pre_as_schedule_single_action', null, $timestamp, $hook, $args, $group, $priority, $unique );
    9192    if ( null !== $pre ) {
    9293        return is_int( $pre ) ? $pre : 0;
     
    160161     * @param string   $group               Action group.
    161162     * @param int      $priority            Action priority.
     163     * @param bool     $unique              Unique action.
    162164     */
    163     $pre = apply_filters( 'pre_as_schedule_recurring_action', null, $timestamp, $interval_in_seconds, $hook, $args, $group, $priority );
     165    $pre = apply_filters( 'pre_as_schedule_recurring_action', null, $timestamp, $interval_in_seconds, $hook, $args, $group, $priority, $unique );
    164166    if ( null !== $pre ) {
    165167        return is_int( $pre ) ? $pre : 0;
     
    226228     * @param string   $group      Action group.
    227229     * @param int      $priority   Action priority.
     230     * @param bool     $unique     Unique action.
    228231     */
    229     $pre = apply_filters( 'pre_as_schedule_cron_action', null, $timestamp, $schedule, $hook, $args, $group, $priority );
     232    $pre = apply_filters( 'pre_as_schedule_cron_action', null, $timestamp, $schedule, $hook, $args, $group, $priority, $unique );
    230233    if ( null !== $pre ) {
    231234        return is_int( $pre ) ? $pre : 0;
     
    494497    return $date;
    495498}
     499
     500/**
     501 * Check if a specific feature is supported by the current version of Action Scheduler.
     502 *
     503 * @since 3.9.3
     504 *
     505 * @param string $feature The feature to check support for.
     506 *
     507 * @return bool True if the feature is supported, false otherwise.
     508 */
     509function as_supports( string $feature ): bool {
     510    $supported_features = array( 'ensure_recurring_actions_hook' );
     511
     512    return in_array( $feature, $supported_features, true );
     513}
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression.php

    r3062001 r3333221  
    5555     * @return CronExpression
    5656     */
    57     public static function factory($expression, CronExpression_FieldFactory $fieldFactory = null)
     57    public static function factory($expression, ?CronExpression_FieldFactory $fieldFactory = null)
    5858    {
    5959        $mappings = array(
  • miso-ai/trunk/vendor/woocommerce/action-scheduler/readme.txt

    r3204556 r3333221  
    22Contributors: Automattic, wpmuguru, claudiosanches, peterfabian1000, vedjain, jamosova, obliviousharmony, konamiman, sadowski, royho, barryhughes-1
    33Tags: scheduler, cron
    4 Stable tag: 3.9.0
     4Stable tag: 3.9.3
    55License: GPLv3
    66Requires at least: 6.5
    7 Tested up to: 6.7
    8 Requires PHP: 7.1
     7Tested up to: 6.8
     8Requires PHP: 7.2
    99
    1010Action Scheduler - Job Queue for WordPress
     
    3030## Learn More
    3131
    32 To learn more about how to Action Scheduler works, and how to use it in your plugin, check out the docs on [ActionScheduler.org](https://actionscheduler.org).
     32To learn more about how Action Scheduler works, and how to use it in your plugin, check out the docs on [ActionScheduler.org](https://actionscheduler.org).
    3333
    3434There you will find:
     
    4747
    4848== Changelog ==
     49
     50= 3.9.3 - 2025-07-15 =
     51* Add hook 'action_scheduler_ensure_recurring_actions' specifically for scheduling recurring actions.
     52* Assume an action is valid until proven otherwise.
     53* Implement SKIP LOCKED during action claiming.
     54* Import `get_flag_value()` from `WP_CLI\Utils` before using.
     55* Make `$unique` available to all pre-creation/short-circuit hooks.
     56* Make version/source information available via new class.
     57* Only release claims on pending actions.
     58* Tweak - WP 6.8 compatibility.
     59* Update minimum supported php and phpunit versions.
     60* Update readme.txt.
     61* WP CLI get action command: correct parentheses/nesting of conditional checks.
     62
     63= 3.9.2 - 2025-02-03 =
     64* Fixed fatal errors by moving version info methods to a new class and deprecating conflicting ones in ActionScheduler_Versions
     65
     66= 3.9.1 - 2025-01-21 =
     67* A number of new WP CLI commands have been added, making it easier to manage actions in the terminal and from scripts.
     68* New wp action-scheduler source command to help determine how Action Scheduler is being loaded.
     69* Additional information about the active instance of Action Scheduler is now available in the Help pull-down drawer.
     70* Make some other nullable parameters explicitly nullable.
     71* Set option value to `no` rather than deleting.
    4972
    5073= 3.9.0 - 2024-11-14 = 
Note: See TracChangeset for help on using the changeset viewer.