[{"data":1,"prerenderedAt":4227},["ShallowReactive",2],{"docs-nav":3,"doc-latest\u002Fpackages\u002Fwpzylos-validation\u002Fusage":691,"docs-prevnext-flat":3908},[4,27,51,653,663,670,683],{"title":5,"order":6,"key":7,"items":8,"packages":26},"Getting Started",1,"getting-started",[9,11,15,19,23],{"path":10,"title":5,"order":6},"\u002Fdocs\u002Flatest\u002Fgetting-started",{"path":12,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fgetting-started\u002Finstallation","Installation",3,{"path":16,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fgetting-started\u002Fconfiguration","Configuration",4,{"path":20,"title":21,"order":22},"\u002Fdocs\u002Flatest\u002Fgetting-started\u002Fquick-start","Quick Start",50,{"path":24,"title":25,"order":22},"\u002Fdocs\u002Flatest\u002Fgetting-started\u002Ftutorial","Tutorial: Build a Notes Plugin",{},{"title":28,"order":29,"key":30,"items":31,"packages":50},"Core Concepts",2,"concepts",[32,35,38,41,44,47],{"path":33,"title":34,"order":22},"\u002Fdocs\u002Flatest\u002Fconcepts\u002Farchitecture","Architecture Overview",{"path":36,"title":37,"order":22},"\u002Fdocs\u002Flatest\u002Fconcepts\u002Fhooks","Hook System",{"path":39,"title":40,"order":22},"\u002Fdocs\u002Flatest\u002Fconcepts\u002Fplugin-context","Plugin Context",{"path":42,"title":43,"order":22},"\u002Fdocs\u002Flatest\u002Fconcepts\u002Flifecycle","Request Lifecycle",{"path":45,"title":46,"order":22},"\u002Fdocs\u002Flatest\u002Fconcepts\u002Fcontainer","Service Container",{"path":48,"title":49,"order":22},"\u002Fdocs\u002Flatest\u002Fconcepts\u002Fservice-providers","Service Providers",{},{"title":52,"order":14,"key":53,"items":54,"packages":55},"Packages","packages",[],{"wpzylos-assets":56,"wpzylos-cli-core":91,"wpzylos-cli-devtool":114,"wpzylos-config":136,"wpzylos-container":158,"wpzylos-core":180,"wpzylos-database":202,"wpzylos-events":224,"wpzylos-hooks":246,"wpzylos-http":269,"wpzylos-i18n":291,"wpzylos-logger":313,"wpzylos-mail":335,"wpzylos-mcp":357,"wpzylos-migrations":376,"wpzylos-model":398,"wpzylos-notification":420,"wpzylos-queue":442,"wpzylos-requirements":464,"wpzylos-routing":486,"wpzylos-scaffold":514,"wpzylos-scheduler":545,"wpzylos-security":567,"wpzylos-validation":587,"wpzylos-views":609,"wpzylos-wp-cli":631},[57,60,63,65,67,71,75,79,83,87],{"path":58,"title":59,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets","WPZylos Assets",{"path":61,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Foverview","Overview",{"path":64,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Finstallation",{"path":66,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Fconfiguration",{"path":68,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Fusage","Usage",5,{"path":72,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Fapi-reference","API Reference",6,{"path":76,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Fexamples","Examples",7,{"path":80,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Ftesting","Testing",8,{"path":84,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Fsecurity","Security",9,{"path":88,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Ftroubleshooting","Troubleshooting",10,[92,95,97,99,101,103,105,107,109,112],{"path":93,"title":94,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core","WPZylos CLI Core Documentation",{"path":96,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Foverview",{"path":98,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Finstallation",{"path":100,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Fconfiguration",{"path":102,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Fusage",{"path":104,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Fapi-reference",{"path":106,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Fexamples",{"path":108,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Ftesting",{"path":110,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Fsecurity","Security Notes",{"path":113,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Ftroubleshooting",[115,118,120,122,124,126,128,130,132,134],{"path":116,"title":117,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool","WPZylos CLI Devtool Documentation",{"path":119,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Foverview",{"path":121,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Finstallation",{"path":123,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Fconfiguration",{"path":125,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Fusage",{"path":127,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Fapi-reference",{"path":129,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Fexamples",{"path":131,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Ftesting",{"path":133,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Fsecurity",{"path":135,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Ftroubleshooting",[137,140,142,144,146,148,150,152,154,156],{"path":138,"title":139,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config","WPZylos Config",{"path":141,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Foverview",{"path":143,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Finstallation",{"path":145,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Fconfiguration",{"path":147,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Fusage",{"path":149,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Fapi-reference",{"path":151,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Fexamples",{"path":153,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Ftesting",{"path":155,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Fsecurity",{"path":157,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Ftroubleshooting",[159,162,164,166,168,170,172,174,176,178],{"path":160,"title":161,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container","WPZylos Container",{"path":163,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Foverview",{"path":165,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Finstallation",{"path":167,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Fconfiguration",{"path":169,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Fusage",{"path":171,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Fapi-reference",{"path":173,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Fexamples",{"path":175,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Ftesting",{"path":177,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Fsecurity",{"path":179,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Ftroubleshooting",[181,184,186,188,190,192,194,196,198,200],{"path":182,"title":183,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core","WPZylos Core",{"path":185,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Foverview",{"path":187,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Finstallation",{"path":189,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Fconfiguration",{"path":191,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Fusage",{"path":193,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Fapi-reference",{"path":195,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Fexamples",{"path":197,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Ftesting",{"path":199,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Fsecurity",{"path":201,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Ftroubleshooting",[203,206,208,210,212,214,216,218,220,222],{"path":204,"title":205,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database","WPZylos Database",{"path":207,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Foverview",{"path":209,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Finstallation",{"path":211,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Fconfiguration",{"path":213,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Fusage",{"path":215,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Fapi-reference",{"path":217,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Fexamples",{"path":219,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Ftesting",{"path":221,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Fsecurity",{"path":223,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Ftroubleshooting",[225,228,230,232,234,236,238,240,242,244],{"path":226,"title":227,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events","WPZylos Events",{"path":229,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Foverview",{"path":231,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Finstallation",{"path":233,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Fconfiguration",{"path":235,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Fusage",{"path":237,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Fapi-reference",{"path":239,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Fexamples",{"path":241,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Ftesting",{"path":243,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Fsecurity",{"path":245,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Ftroubleshooting",[247,250,252,254,256,259,261,263,265,267],{"path":248,"title":249,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks","WPZylos Hooks",{"path":251,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Foverview",{"path":253,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Finstallation",{"path":255,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Fconfiguration",{"path":257,"title":258,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Fusage","Usage Guide",{"path":260,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Fapi-reference",{"path":262,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Fexamples",{"path":264,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Ftesting",{"path":266,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Fsecurity",{"path":268,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Ftroubleshooting",[270,273,275,277,279,281,283,285,287,289],{"path":271,"title":272,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http","WPZylos HTTP",{"path":274,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Foverview",{"path":276,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Finstallation",{"path":278,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Fconfiguration",{"path":280,"title":258,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Fusage",{"path":282,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Fapi-reference",{"path":284,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Fexamples",{"path":286,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Ftesting",{"path":288,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Fsecurity",{"path":290,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Ftroubleshooting",[292,295,297,299,301,303,305,307,309,311],{"path":293,"title":294,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n","WPZylos I18n",{"path":296,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Foverview",{"path":298,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Finstallation",{"path":300,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Fconfiguration",{"path":302,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Fusage",{"path":304,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Fapi-reference",{"path":306,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Fexamples",{"path":308,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Ftesting",{"path":310,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Fsecurity",{"path":312,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Ftroubleshooting",[314,317,319,321,323,325,327,329,331,333],{"path":315,"title":316,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger","WPZylos Logger",{"path":318,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Foverview",{"path":320,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Finstallation",{"path":322,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Fconfiguration",{"path":324,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Fusage",{"path":326,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Fapi-reference",{"path":328,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Fexamples",{"path":330,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Ftesting",{"path":332,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Fsecurity",{"path":334,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Ftroubleshooting",[336,339,341,343,345,347,349,351,353,355],{"path":337,"title":338,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail","WPZylos Mail",{"path":340,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Foverview",{"path":342,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Finstallation",{"path":344,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Fconfiguration",{"path":346,"title":258,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Fusage",{"path":348,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Fapi-reference",{"path":350,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Fexamples",{"path":352,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Ftesting",{"path":354,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Fsecurity",{"path":356,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Ftroubleshooting",[358,361,363,365,367,369,371,373],{"path":359,"title":360,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mcp","WPZylos MCP",{"path":362,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mcp\u002Foverview",{"path":364,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mcp\u002Finstallation",{"path":366,"title":258,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mcp\u002Fusage",{"path":368,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mcp\u002Fapi-reference",{"path":370,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mcp\u002Fexamples",{"path":372,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mcp\u002Ftroubleshooting",{"path":374,"title":375,"order":22},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mcp\u002Fcompanion-mcps","MCP Setup Guide",[377,380,382,384,386,388,390,392,394,396],{"path":378,"title":379,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations","WPZylos Migrations",{"path":381,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Foverview",{"path":383,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Finstallation",{"path":385,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Fconfiguration",{"path":387,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Fusage",{"path":389,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Fapi-reference",{"path":391,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Fexamples",{"path":393,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Ftesting",{"path":395,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Fsecurity",{"path":397,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Ftroubleshooting",[399,402,404,406,408,410,412,414,416,418],{"path":400,"title":401,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model","WPZylos Model",{"path":403,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Foverview",{"path":405,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Finstallation",{"path":407,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Fconfiguration",{"path":409,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Fusage",{"path":411,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Fapi-reference",{"path":413,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Fexamples",{"path":415,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Ftesting",{"path":417,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Fsecurity",{"path":419,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Ftroubleshooting",[421,424,426,428,430,432,434,436,438,440],{"path":422,"title":423,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification","WPZylos Notification",{"path":425,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Foverview",{"path":427,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Finstallation",{"path":429,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Fconfiguration",{"path":431,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Fusage",{"path":433,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Fapi-reference",{"path":435,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Fexamples",{"path":437,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Ftesting",{"path":439,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Fsecurity",{"path":441,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Ftroubleshooting",[443,446,448,450,452,454,456,458,460,462],{"path":444,"title":445,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue","WPZylos Queue",{"path":447,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Foverview",{"path":449,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Finstallation",{"path":451,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Fconfiguration",{"path":453,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Fusage",{"path":455,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Fapi-reference",{"path":457,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Fexamples",{"path":459,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Ftesting",{"path":461,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Fsecurity",{"path":463,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Ftroubleshooting",[465,468,470,472,474,476,478,480,482,484],{"path":466,"title":467,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements","WPZylos Requirements",{"path":469,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Foverview",{"path":471,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Finstallation",{"path":473,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Fconfiguration",{"path":475,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Fusage",{"path":477,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Fapi-reference",{"path":479,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Fexamples",{"path":481,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Ftesting",{"path":483,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Fsecurity",{"path":485,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Ftroubleshooting",[487,490,492,494,496,498,500,502,504,506,508,511],{"path":488,"title":489,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing","WPZylos Routing",{"path":491,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Foverview",{"path":493,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Finstallation",{"path":495,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Fconfiguration",{"path":497,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Fusage",{"path":499,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Fapi-reference",{"path":501,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Fexamples",{"path":503,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Ftesting",{"path":505,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Fsecurity",{"path":507,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Ftroubleshooting",{"path":509,"title":510,"order":22},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Fajax","AJAX Routing",{"path":512,"title":513,"order":22},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Frest-api","REST API Routing",[515,518,520,522,524,526,528,530,532,535,537,539,542],{"path":516,"title":517,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold","WPZylos Scaffold Documentation",{"path":519,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Foverview",{"path":521,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Finstallation",{"path":523,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Fconfiguration",{"path":525,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Fusage",{"path":527,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Fapi-reference",{"path":529,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Fexamples",{"path":531,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Ftesting",{"path":533,"title":534,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Fui","UI Components (DaisyUI)",{"path":536,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Fsecurity",{"path":538,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Ftroubleshooting",{"path":540,"title":541,"order":22},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Fcli-reference","Scaffold CLI Reference",{"path":543,"title":544,"order":22},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Fwalkthrough","Scaffold Walkthrough",[546,549,551,553,555,557,559,561,563,565],{"path":547,"title":548,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler","WPZylos Scheduler",{"path":550,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Foverview",{"path":552,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Finstallation",{"path":554,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Fconfiguration",{"path":556,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Fusage",{"path":558,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Fapi-reference",{"path":560,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Fexamples",{"path":562,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Ftesting",{"path":564,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Fsecurity",{"path":566,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Ftroubleshooting",[568,571,573,575,577,579,581,583,585],{"path":569,"title":570,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security","WPZylos Security",{"path":572,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security\u002Foverview",{"path":574,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security\u002Finstallation",{"path":576,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security\u002Fconfiguration",{"path":578,"title":258,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security\u002Fusage",{"path":580,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security\u002Fapi-reference",{"path":582,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security\u002Fexamples",{"path":584,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security\u002Ftesting",{"path":586,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security\u002Ftroubleshooting",[588,591,593,595,597,599,601,603,605,607],{"path":589,"title":590,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation","WPZylos Validation",{"path":592,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Foverview",{"path":594,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Finstallation",{"path":596,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Fconfiguration",{"path":598,"title":258,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Fusage",{"path":600,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Fapi-reference",{"path":602,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Fexamples",{"path":604,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Ftesting",{"path":606,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Fsecurity",{"path":608,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Ftroubleshooting",[610,613,615,617,619,621,623,625,627,629],{"path":611,"title":612,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views","WPZylos Views",{"path":614,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Foverview",{"path":616,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Finstallation",{"path":618,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Fconfiguration",{"path":620,"title":258,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Fusage",{"path":622,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Fapi-reference",{"path":624,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Fexamples",{"path":626,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Ftesting",{"path":628,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Fsecurity",{"path":630,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Ftroubleshooting",[632,635,637,639,641,643,645,647,649,651],{"path":633,"title":634,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli","WPZylos WP-CLI",{"path":636,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Foverview",{"path":638,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Finstallation",{"path":640,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Fconfiguration",{"path":642,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Fusage",{"path":644,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Fapi-reference",{"path":646,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Fexamples",{"path":648,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Ftesting",{"path":650,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Fsecurity",{"path":652,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Ftroubleshooting",{"title":654,"order":18,"key":655,"items":656,"packages":662},"Scaffold","scaffold",[657,660],{"path":658,"title":659,"order":6},"\u002Fdocs\u002Flatest\u002Fscaffold","Scaffold Guide",{"path":661,"title":544,"order":22},"\u002Fdocs\u002Flatest\u002Fscaffold\u002Fwalkthrough",{},{"title":85,"order":70,"key":664,"items":665,"packages":669},"security",[666],{"path":667,"title":668,"order":29},"\u002Fdocs\u002Flatest\u002Fsecurity\u002Foverview","Security Overview",{},{"title":81,"order":74,"key":671,"items":672,"packages":682},"testing",[673,676,679],{"path":674,"title":675,"order":29},"\u002Fdocs\u002Flatest\u002Ftesting\u002Foverview","Testing Overview",{"path":677,"title":678,"order":22},"\u002Fdocs\u002Flatest\u002Ftesting\u002Fintegration-tests","Integration Testing",{"path":680,"title":681,"order":22},"\u002Fdocs\u002Flatest\u002Ftesting\u002Funit-tests","Unit Testing",{},{"title":684,"order":78,"key":685,"items":686,"packages":690},"Distribution","distribution",[687],{"path":688,"title":689,"order":29},"\u002Fdocs\u002Flatest\u002Fdistribution\u002Foverview","Distribution Guide",{},{"id":692,"title":258,"body":693,"description":809,"extension":3902,"meta":3903,"navigation":832,"order":70,"package":3904,"path":598,"seo":3905,"stem":3906,"__hash__":3907},"content\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Fusage.md",{"type":694,"value":695,"toc":3860},"minimark",[696,700,707,712,789,792,795,803,1071,1088,1093,1103,1170,1172,1175,1179,1185,1433,1437,1447,1592,1594,1597,1601,1616,1620,1654,1658,1661,1713,1715,1718,1722,1725,1804,1808,1811,1878,1882,1936,1940,1967,1969,1972,1975,2050,2052,2055,2065,2127,2129,2132,2145,2149,2529,2533,2758,2762,2798,2800,2803,2810,2994,3000,3002,3005,3009,3147,3166,3170,3179,3220,3224,3275,3281,3283,3286,3292,3483,3487,3578,3580,3583,3591,3682,3688,3690,3693,3700,3737,3741,3772,3776,3850,3856],[697,698,258],"h1",{"id":699},"usage-guide",[701,702,703],"blockquote",{},[704,705,706],"p",{},"Comprehensive guide to the WPZylos Validation package.",[708,709,711],"h2",{"id":710},"table-of-contents","Table of Contents",[713,714,715,723,729,735,741,747,753,759,765,771,777,783],"ul",{},[716,717,718],"li",{},[719,720,722],"a",{"href":721},"#_1-basic-validation","1. Basic Validation",[716,724,725],{},[719,726,728],{"href":727},"#_2-available-rules","2. Available Rules",[716,730,731],{},[719,732,734],{"href":733},"#_3-rule-syntax","3. Rule Syntax",[716,736,737],{},[719,738,740],{"href":739},"#_4-custom-error-messages","4. Custom Error Messages",[716,742,743],{},[719,744,746],{"href":745},"#_5-custom-attribute-names","5. Custom Attribute Names",[716,748,749],{},[719,750,752],{"href":751},"#_6-nullable-fields","6. Nullable Fields",[716,754,755],{},[719,756,758],{"href":757},"#_7-formrequest","7. FormRequest",[716,760,761],{},[719,762,764],{"href":763},"#_8-sanitizer-types","8. Sanitizer Types",[716,766,767],{},[719,768,770],{"href":769},"#_9-custom-rules","9. Custom Rules",[716,772,773],{},[719,774,776],{"href":775},"#_10-messagebag-api","10. MessageBag API",[716,778,779],{},[719,780,782],{"href":781},"#_11-validationexception-handling","11. ValidationException Handling",[716,784,785],{},[719,786,788],{"href":787},"#_12-service-provider-registration","12. Service Provider Registration",[790,791],"hr",{},[708,793,722],{"id":794},"_1-basic-validation",[704,796,797,798,802],{},"Create a ",[799,800,801],"code",{},"Validator"," with data and rules, then check the result:",[804,805,810],"pre",{"className":806,"code":807,"language":808,"meta":809,"style":809},"language-php shiki shiki-themes github-light github-dark","use WPZylos\\Framework\\Validation\\Validator;\n\n$validator = new Validator(\n    data: $request->all(),\n    rules: [\n        'name'  => 'required|string|min:2|max:100',\n        'email' => 'required|email',\n        'age'   => 'required|integer|min:18',\n    ],\n);\n\n\u002F\u002F Option 1: Check result\nif ($validator->validate()) {\n    \u002F\u002F Valid - validate() returns bool\n    $data = $validator->validated();\n}\n\n\u002F\u002F Option 2: Check failure\nif ($validator->fails()) {\n    $errors = $validator->errors();\n}\n\n\u002F\u002F Option 3: Check success\nif ($validator->passes()) {\n    \u002F\u002F All good\n}\n","php","",[799,811,812,828,834,851,869,877,892,905,918,923,928,933,940,957,963,982,988,993,999,1013,1030,1035,1040,1046,1060,1066],{"__ignoreMap":809},[813,814,816,820,824],"span",{"class":815,"line":6},"line",[813,817,819],{"class":818},"szBVR","use",[813,821,823],{"class":822},"sj4cs"," WPZylos\\Framework\\Validation\\Validator",[813,825,827],{"class":826},"sVt8B",";\n",[813,829,830],{"class":815,"line":29},[813,831,833],{"emptyLinePlaceholder":832},true,"\n",[813,835,836,839,842,845,848],{"class":815,"line":14},[813,837,838],{"class":826},"$validator ",[813,840,841],{"class":818},"=",[813,843,844],{"class":818}," new",[813,846,847],{"class":822}," Validator",[813,849,850],{"class":826},"(\n",[813,852,853,857,860,863,866],{"class":815,"line":18},[813,854,856],{"class":855},"sScJk","    data",[813,858,859],{"class":826},": $request",[813,861,862],{"class":818},"->",[813,864,865],{"class":855},"all",[813,867,868],{"class":826},"(),\n",[813,870,871,874],{"class":815,"line":70},[813,872,873],{"class":855},"    rules",[813,875,876],{"class":826},": [\n",[813,878,879,883,886,889],{"class":815,"line":74},[813,880,882],{"class":881},"sZZnC","        'name'",[813,884,885],{"class":818},"  =>",[813,887,888],{"class":881}," 'required|string|min:2|max:100'",[813,890,891],{"class":826},",\n",[813,893,894,897,900,903],{"class":815,"line":78},[813,895,896],{"class":881},"        'email'",[813,898,899],{"class":818}," =>",[813,901,902],{"class":881}," 'required|email'",[813,904,891],{"class":826},[813,906,907,910,913,916],{"class":815,"line":82},[813,908,909],{"class":881},"        'age'",[813,911,912],{"class":818},"   =>",[813,914,915],{"class":881}," 'required|integer|min:18'",[813,917,891],{"class":826},[813,919,920],{"class":815,"line":86},[813,921,922],{"class":826},"    ],\n",[813,924,925],{"class":815,"line":90},[813,926,927],{"class":826},");\n",[813,929,931],{"class":815,"line":930},11,[813,932,833],{"emptyLinePlaceholder":832},[813,934,936],{"class":815,"line":935},12,[813,937,939],{"class":938},"sJ8bj","\u002F\u002F Option 1: Check result\n",[813,941,943,946,949,951,954],{"class":815,"line":942},13,[813,944,945],{"class":818},"if",[813,947,948],{"class":826}," ($validator",[813,950,862],{"class":818},[813,952,953],{"class":855},"validate",[813,955,956],{"class":826},"()) {\n",[813,958,960],{"class":815,"line":959},14,[813,961,962],{"class":938},"    \u002F\u002F Valid - validate() returns bool\n",[813,964,966,969,971,974,976,979],{"class":815,"line":965},15,[813,967,968],{"class":826},"    $data ",[813,970,841],{"class":818},[813,972,973],{"class":826}," $validator",[813,975,862],{"class":818},[813,977,978],{"class":855},"validated",[813,980,981],{"class":826},"();\n",[813,983,985],{"class":815,"line":984},16,[813,986,987],{"class":826},"}\n",[813,989,991],{"class":815,"line":990},17,[813,992,833],{"emptyLinePlaceholder":832},[813,994,996],{"class":815,"line":995},18,[813,997,998],{"class":938},"\u002F\u002F Option 2: Check failure\n",[813,1000,1002,1004,1006,1008,1011],{"class":815,"line":1001},19,[813,1003,945],{"class":818},[813,1005,948],{"class":826},[813,1007,862],{"class":818},[813,1009,1010],{"class":855},"fails",[813,1012,956],{"class":826},[813,1014,1016,1019,1021,1023,1025,1028],{"class":815,"line":1015},20,[813,1017,1018],{"class":826},"    $errors ",[813,1020,841],{"class":818},[813,1022,973],{"class":826},[813,1024,862],{"class":818},[813,1026,1027],{"class":855},"errors",[813,1029,981],{"class":826},[813,1031,1033],{"class":815,"line":1032},21,[813,1034,987],{"class":826},[813,1036,1038],{"class":815,"line":1037},22,[813,1039,833],{"emptyLinePlaceholder":832},[813,1041,1043],{"class":815,"line":1042},23,[813,1044,1045],{"class":938},"\u002F\u002F Option 3: Check success\n",[813,1047,1049,1051,1053,1055,1058],{"class":815,"line":1048},24,[813,1050,945],{"class":818},[813,1052,948],{"class":826},[813,1054,862],{"class":818},[813,1056,1057],{"class":855},"passes",[813,1059,956],{"class":826},[813,1061,1063],{"class":815,"line":1062},25,[813,1064,1065],{"class":938},"    \u002F\u002F All good\n",[813,1067,1069],{"class":815,"line":1068},26,[813,1070,987],{"class":826},[701,1072,1073],{},[704,1074,1075,1079,1080,1083,1084,1087],{},[1076,1077,1078],"strong",{},"Important:"," ",[799,1081,1082],{},"validate()"," returns ",[799,1085,1086],{},"bool",", not an object. Data and rules are passed to the constructor.",[1089,1090,1092],"h3",{"id":1091},"getting-validated-data","Getting Validated Data",[704,1094,1095,1098,1099,1102],{},[799,1096,1097],{},"validated()"," returns only the fields that had rules defined. If validation fails, it throws ",[799,1100,1101],{},"ValidationException",":",[804,1104,1106],{"className":806,"code":1105,"language":808,"meta":809,"style":809},"try {\n    $data = $validator->validated();\n} catch (\\WPZylos\\Framework\\Validation\\ValidationException $e) {\n    $errors = $e->errors(); \u002F\u002F MessageBag\n}\n",[799,1107,1108,1116,1130,1147,1166],{"__ignoreMap":809},[813,1109,1110,1113],{"class":815,"line":6},[813,1111,1112],{"class":818},"try",[813,1114,1115],{"class":826}," {\n",[813,1117,1118,1120,1122,1124,1126,1128],{"class":815,"line":29},[813,1119,968],{"class":826},[813,1121,841],{"class":818},[813,1123,973],{"class":826},[813,1125,862],{"class":818},[813,1127,978],{"class":855},[813,1129,981],{"class":826},[813,1131,1132,1135,1138,1141,1144],{"class":815,"line":14},[813,1133,1134],{"class":826},"} ",[813,1136,1137],{"class":818},"catch",[813,1139,1140],{"class":826}," (",[813,1142,1143],{"class":822},"\\WPZylos\\Framework\\Validation\\ValidationException",[813,1145,1146],{"class":826}," $e) {\n",[813,1148,1149,1151,1153,1156,1158,1160,1163],{"class":815,"line":18},[813,1150,1018],{"class":826},[813,1152,841],{"class":818},[813,1154,1155],{"class":826}," $e",[813,1157,862],{"class":818},[813,1159,1027],{"class":855},[813,1161,1162],{"class":826},"(); ",[813,1164,1165],{"class":938},"\u002F\u002F MessageBag\n",[813,1167,1168],{"class":815,"line":70},[813,1169,987],{"class":826},[790,1171],{},[708,1173,728],{"id":1174},"_2-available-rules",[1089,1176,1178],{"id":1177},"built-in-rules-validator-class","Built-in Rules (Validator class)",[704,1180,1181,1182,1184],{},"These rules are handled internally by the ",[799,1183,801],{}," class:",[1186,1187,1188,1204],"table",{},[1189,1190,1191],"thead",{},[1192,1193,1194,1198,1201],"tr",{},[1195,1196,1197],"th",{},"Rule",[1195,1199,1200],{},"Example",[1195,1202,1203],{},"Description",[1205,1206,1207,1223,1238,1257,1274,1292,1307,1322,1340,1358,1373,1388,1403,1418],"tbody",{},[1192,1208,1209,1215,1220],{},[1210,1211,1212],"td",{},[799,1213,1214],{},"required",[1210,1216,1217],{},[799,1218,1219],{},"'required'",[1210,1221,1222],{},"Field must be present, not null, not empty string, not empty array",[1192,1224,1225,1230,1235],{},[1210,1226,1227],{},[799,1228,1229],{},"string",[1210,1231,1232],{},[799,1233,1234],{},"'string'",[1210,1236,1237],{},"Value must be a string",[1192,1239,1240,1245,1250],{},[1210,1241,1242],{},[799,1243,1244],{},"integer",[1210,1246,1247],{},[799,1248,1249],{},"'integer'",[1210,1251,1252,1253,1256],{},"Value must be a valid integer (via ",[799,1254,1255],{},"FILTER_VALIDATE_INT",")",[1192,1258,1259,1264,1269],{},[1210,1260,1261],{},[799,1262,1263],{},"int",[1210,1265,1266],{},[799,1267,1268],{},"'int'",[1210,1270,1271,1272],{},"Alias for ",[799,1273,1244],{},[1192,1275,1276,1281,1286],{},[1210,1277,1278],{},[799,1279,1280],{},"numeric",[1210,1282,1283],{},[799,1284,1285],{},"'numeric'",[1210,1287,1288,1289,1256],{},"Value must be numeric (via ",[799,1290,1291],{},"is_numeric",[1192,1293,1294,1299,1304],{},[1210,1295,1296],{},[799,1297,1298],{},"boolean",[1210,1300,1301],{},[799,1302,1303],{},"'boolean'",[1210,1305,1306],{},"Value must be true, false, 0, 1, '0', '1', 'true', or 'false'",[1192,1308,1309,1314,1319],{},[1210,1310,1311],{},[799,1312,1313],{},"array",[1210,1315,1316],{},[799,1317,1318],{},"'array'",[1210,1320,1321],{},"Value must be an array",[1192,1323,1324,1329,1334],{},[1210,1325,1326],{},[799,1327,1328],{},"email",[1210,1330,1331],{},[799,1332,1333],{},"'email'",[1210,1335,1336,1337,1256],{},"Value must be a valid email (via ",[799,1338,1339],{},"FILTER_VALIDATE_EMAIL",[1192,1341,1342,1347,1352],{},[1210,1343,1344],{},[799,1345,1346],{},"url",[1210,1348,1349],{},[799,1350,1351],{},"'url'",[1210,1353,1354,1355,1256],{},"Value must be a valid URL (via ",[799,1356,1357],{},"FILTER_VALIDATE_URL",[1192,1359,1360,1365,1370],{},[1210,1361,1362],{},[799,1363,1364],{},"min",[1210,1366,1367],{},[799,1368,1369],{},"'min:3'",[1210,1371,1372],{},"Minimum: string length, array count, or numeric value",[1192,1374,1375,1380,1385],{},[1210,1376,1377],{},[799,1378,1379],{},"max",[1210,1381,1382],{},[799,1383,1384],{},"'max:255'",[1210,1386,1387],{},"Maximum: string length, array count, or numeric value",[1192,1389,1390,1395,1400],{},[1210,1391,1392],{},[799,1393,1394],{},"in",[1210,1396,1397],{},[799,1398,1399],{},"'in:draft,published'",[1210,1401,1402],{},"Value must be one of the listed values (strict comparison)",[1192,1404,1405,1410,1415],{},[1210,1406,1407],{},[799,1408,1409],{},"regex",[1210,1411,1412],{},[799,1413,1414],{},"'regex:\u002F^[a-z]+$\u002F'",[1210,1416,1417],{},"Value must match the regex pattern",[1192,1419,1420,1425,1430],{},[1210,1421,1422],{},[799,1423,1424],{},"nullable",[1210,1426,1427],{},[799,1428,1429],{},"'nullable'",[1210,1431,1432],{},"Field is optional. Skips all rules if value is null or empty string",[1089,1434,1436],{"id":1435},"standalone-rule-classes-rules-directory","Standalone Rule Classes (Rules\u002F directory)",[704,1438,1439,1440,1443,1444,1102],{},"These 12 classes implement ",[799,1441,1442],{},"RuleInterface"," and can be registered via ",[799,1445,1446],{},"Validator::extend()",[1186,1448,1449,1458],{},[1189,1450,1451],{},[1192,1452,1453,1456],{},[1195,1454,1455],{},"Class",[1195,1457,1203],{},[1205,1459,1460,1470,1482,1494,1506,1519,1529,1539,1549,1559,1569,1582],{},[1192,1461,1462,1467],{},[1210,1463,1464],{},[799,1465,1466],{},"RequiredRule",[1210,1468,1469],{},"Not null, not empty string, not empty array",[1192,1471,1472,1477],{},[1210,1473,1474],{},[799,1475,1476],{},"EmailRule",[1210,1478,1479,1480],{},"Valid email via ",[799,1481,1339],{},[1192,1483,1484,1489],{},[1210,1485,1486],{},[799,1487,1488],{},"UrlRule",[1210,1490,1491,1492],{},"Valid URL via ",[799,1493,1357],{},[1192,1495,1496,1501],{},[1210,1497,1498],{},[799,1499,1500],{},"NumericRule",[1210,1502,1503,1504],{},"Numeric via ",[799,1505,1291],{},[1192,1507,1508,1513],{},[1210,1509,1510],{},[799,1511,1512],{},"AlphaRule",[1210,1514,1515,1516,1256],{},"Only alphabetic characters (Unicode letters ",[799,1517,1518],{},"\\pL\\pM",[1192,1520,1521,1526],{},[1210,1522,1523],{},[799,1524,1525],{},"AlphaNumericRule",[1210,1527,1528],{},"Only letters and numbers",[1192,1530,1531,1536],{},[1210,1532,1533],{},[799,1534,1535],{},"MinRule",[1210,1537,1538],{},"Minimum string length \u002F array count \u002F numeric value",[1192,1540,1541,1546],{},[1210,1542,1543],{},[799,1544,1545],{},"MaxRule",[1210,1547,1548],{},"Maximum string length \u002F array count \u002F numeric value",[1192,1550,1551,1556],{},[1210,1552,1553],{},[799,1554,1555],{},"BetweenRule",[1210,1557,1558],{},"Value between min and max (string length \u002F array count \u002F numeric)",[1192,1560,1561,1566],{},[1210,1562,1563],{},[799,1564,1565],{},"InRule",[1210,1567,1568],{},"Value in parameter list",[1192,1570,1571,1576],{},[1210,1572,1573],{},[799,1574,1575],{},"ConfirmedRule",[1210,1577,1578,1579],{},"Field matches ",[799,1580,1581],{},"{field}_confirmation",[1192,1583,1584,1589],{},[1210,1585,1586],{},[799,1587,1588],{},"RegexRule",[1210,1590,1591],{},"Value matches regex pattern",[790,1593],{},[708,1595,734],{"id":1596},"_3-rule-syntax",[1089,1598,1600],{"id":1599},"pipe-separated-string","Pipe-Separated String",[804,1602,1604],{"className":806,"code":1603,"language":808,"meta":809,"style":809},"'name' => 'required|string|min:2|max:100'\n",[799,1605,1606],{"__ignoreMap":809},[813,1607,1608,1611,1613],{"class":815,"line":6},[813,1609,1610],{"class":881},"'name'",[813,1612,899],{"class":818},[813,1614,1615],{"class":881}," 'required|string|min:2|max:100'\n",[1089,1617,1619],{"id":1618},"array-syntax","Array Syntax",[804,1621,1623],{"className":806,"code":1622,"language":808,"meta":809,"style":809},"'name' => ['required', 'string', 'min:2', 'max:100']\n",[799,1624,1625],{"__ignoreMap":809},[813,1626,1627,1629,1631,1634,1636,1639,1641,1643,1646,1648,1651],{"class":815,"line":6},[813,1628,1610],{"class":881},[813,1630,899],{"class":818},[813,1632,1633],{"class":826}," [",[813,1635,1219],{"class":881},[813,1637,1638],{"class":826},", ",[813,1640,1234],{"class":881},[813,1642,1638],{"class":826},[813,1644,1645],{"class":881},"'min:2'",[813,1647,1638],{"class":826},[813,1649,1650],{"class":881},"'max:100'",[813,1652,1653],{"class":826},"]\n",[1089,1655,1657],{"id":1656},"rule-parameters","Rule Parameters",[704,1659,1660],{},"Parameters follow a colon, multiple parameters are comma-separated:",[804,1662,1664],{"className":806,"code":1663,"language":808,"meta":809,"style":809},"'age'    => 'min:18',                    \u002F\u002F one parameter\n'status' => 'in:active,inactive,banned', \u002F\u002F multiple parameters\n'code'   => 'regex:\u002F^[A-Z]{3}[0-9]+$\u002F', \u002F\u002F regex pattern\n",[799,1665,1666,1683,1698],{"__ignoreMap":809},[813,1667,1668,1671,1674,1677,1680],{"class":815,"line":6},[813,1669,1670],{"class":881},"'age'",[813,1672,1673],{"class":818},"    =>",[813,1675,1676],{"class":881}," 'min:18'",[813,1678,1679],{"class":826},",                    ",[813,1681,1682],{"class":938},"\u002F\u002F one parameter\n",[813,1684,1685,1688,1690,1693,1695],{"class":815,"line":29},[813,1686,1687],{"class":881},"'status'",[813,1689,899],{"class":818},[813,1691,1692],{"class":881}," 'in:active,inactive,banned'",[813,1694,1638],{"class":826},[813,1696,1697],{"class":938},"\u002F\u002F multiple parameters\n",[813,1699,1700,1703,1705,1708,1710],{"class":815,"line":14},[813,1701,1702],{"class":881},"'code'",[813,1704,912],{"class":818},[813,1706,1707],{"class":881}," 'regex:\u002F^[A-Z]{3}[0-9]+$\u002F'",[813,1709,1638],{"class":826},[813,1711,1712],{"class":938},"\u002F\u002F regex pattern\n",[790,1714],{},[708,1716,740],{"id":1717},"_4-custom-error-messages",[1089,1719,1721],{"id":1720},"field-specific-messages","Field-Specific Messages",[704,1723,1724],{},"Target a specific field + rule combination:",[804,1726,1728],{"className":806,"code":1727,"language":808,"meta":809,"style":809},"$validator = new Validator(\n    data: $data,\n    rules: ['email' => 'required|email'],\n    messages: [\n        'email.required' => 'We need your email address.',\n        'email.email'    => 'That does not look like a valid email.',\n    ],\n);\n",[799,1729,1730,1742,1749,1765,1772,1784,1796,1800],{"__ignoreMap":809},[813,1731,1732,1734,1736,1738,1740],{"class":815,"line":6},[813,1733,838],{"class":826},[813,1735,841],{"class":818},[813,1737,844],{"class":818},[813,1739,847],{"class":822},[813,1741,850],{"class":826},[813,1743,1744,1746],{"class":815,"line":29},[813,1745,856],{"class":855},[813,1747,1748],{"class":826},": $data,\n",[813,1750,1751,1753,1756,1758,1760,1762],{"class":815,"line":14},[813,1752,873],{"class":855},[813,1754,1755],{"class":826},": [",[813,1757,1333],{"class":881},[813,1759,899],{"class":818},[813,1761,902],{"class":881},[813,1763,1764],{"class":826},"],\n",[813,1766,1767,1770],{"class":815,"line":18},[813,1768,1769],{"class":855},"    messages",[813,1771,876],{"class":826},[813,1773,1774,1777,1779,1782],{"class":815,"line":70},[813,1775,1776],{"class":881},"        'email.required'",[813,1778,899],{"class":818},[813,1780,1781],{"class":881}," 'We need your email address.'",[813,1783,891],{"class":826},[813,1785,1786,1789,1791,1794],{"class":815,"line":74},[813,1787,1788],{"class":881},"        'email.email'",[813,1790,1673],{"class":818},[813,1792,1793],{"class":881}," 'That does not look like a valid email.'",[813,1795,891],{"class":826},[813,1797,1798],{"class":815,"line":78},[813,1799,922],{"class":826},[813,1801,1802],{"class":815,"line":82},[813,1803,927],{"class":826},[1089,1805,1807],{"id":1806},"rule-level-messages","Rule-Level Messages",[704,1809,1810],{},"Apply to all fields using that rule:",[804,1812,1814],{"className":806,"code":1813,"language":808,"meta":809,"style":809},"$validator = new Validator(\n    data: $data,\n    rules: $rules,\n    messages: [\n        'required' => 'The :attribute field cannot be blank.',\n        'email'    => 'Please enter a valid email for :attribute.',\n    ],\n);\n",[799,1815,1816,1828,1834,1841,1847,1859,1870,1874],{"__ignoreMap":809},[813,1817,1818,1820,1822,1824,1826],{"class":815,"line":6},[813,1819,838],{"class":826},[813,1821,841],{"class":818},[813,1823,844],{"class":818},[813,1825,847],{"class":822},[813,1827,850],{"class":826},[813,1829,1830,1832],{"class":815,"line":29},[813,1831,856],{"class":855},[813,1833,1748],{"class":826},[813,1835,1836,1838],{"class":815,"line":14},[813,1837,873],{"class":855},[813,1839,1840],{"class":826},": $rules,\n",[813,1842,1843,1845],{"class":815,"line":18},[813,1844,1769],{"class":855},[813,1846,876],{"class":826},[813,1848,1849,1852,1854,1857],{"class":815,"line":70},[813,1850,1851],{"class":881},"        'required'",[813,1853,899],{"class":818},[813,1855,1856],{"class":881}," 'The :attribute field cannot be blank.'",[813,1858,891],{"class":826},[813,1860,1861,1863,1865,1868],{"class":815,"line":74},[813,1862,896],{"class":881},[813,1864,1673],{"class":818},[813,1866,1867],{"class":881}," 'Please enter a valid email for :attribute.'",[813,1869,891],{"class":826},[813,1871,1872],{"class":815,"line":78},[813,1873,922],{"class":826},[813,1875,1876],{"class":815,"line":82},[813,1877,927],{"class":826},[1089,1879,1881],{"id":1880},"message-placeholders","Message Placeholders",[1186,1883,1884,1894],{},[1189,1885,1886],{},[1192,1887,1888,1891],{},[1195,1889,1890],{},"Placeholder",[1195,1892,1893],{},"Replaced With",[1205,1895,1896,1906,1916,1926],{},[1192,1897,1898,1903],{},[1210,1899,1900],{},[799,1901,1902],{},":attribute",[1210,1904,1905],{},"Field name (underscores replaced with spaces)",[1192,1907,1908,1913],{},[1210,1909,1910],{},[799,1911,1912],{},":param0",[1210,1914,1915],{},"First rule parameter",[1192,1917,1918,1923],{},[1210,1919,1920],{},[799,1921,1922],{},":param1",[1210,1924,1925],{},"Second rule parameter",[1192,1927,1928,1933],{},[1210,1929,1930],{},[799,1931,1932],{},":paramN",[1210,1934,1935],{},"Nth rule parameter",[1089,1937,1939],{"id":1938},"message-resolution-order","Message Resolution Order",[1941,1942,1943,1949,1954,1960],"ol",{},[716,1944,1945,1946,1256],{},"Field-specific custom message (e.g., ",[799,1947,1948],{},"email.required",[716,1950,1951,1952,1256],{},"Rule-level custom message (e.g., ",[799,1953,1214],{},[716,1955,1956,1957,1256],{},"Extension custom message (from ",[799,1958,1959],{},"RuleInterface::message()",[716,1961,1962,1963,1966],{},"Default message (translated via ",[799,1964,1965],{},"Translator"," if available)",[790,1968],{},[708,1970,746],{"id":1971},"_5-custom-attribute-names",[704,1973,1974],{},"Replace field names in error messages with human-friendly labels:",[804,1976,1978],{"className":806,"code":1977,"language":808,"meta":809,"style":809},"$validator = new Validator(\n    data: $data,\n    rules: ['phone_number' => 'required'],\n    attributes: [\n        'phone_number' => 'phone number',\n    ],\n);\n\n\u002F\u002F Error: \"The phone number field is required.\" instead of \"The phone_number field is required.\"\n",[799,1979,1980,1992,1998,2014,2021,2033,2037,2041,2045],{"__ignoreMap":809},[813,1981,1982,1984,1986,1988,1990],{"class":815,"line":6},[813,1983,838],{"class":826},[813,1985,841],{"class":818},[813,1987,844],{"class":818},[813,1989,847],{"class":822},[813,1991,850],{"class":826},[813,1993,1994,1996],{"class":815,"line":29},[813,1995,856],{"class":855},[813,1997,1748],{"class":826},[813,1999,2000,2002,2004,2007,2009,2012],{"class":815,"line":14},[813,2001,873],{"class":855},[813,2003,1755],{"class":826},[813,2005,2006],{"class":881},"'phone_number'",[813,2008,899],{"class":818},[813,2010,2011],{"class":881}," 'required'",[813,2013,1764],{"class":826},[813,2015,2016,2019],{"class":815,"line":18},[813,2017,2018],{"class":855},"    attributes",[813,2020,876],{"class":826},[813,2022,2023,2026,2028,2031],{"class":815,"line":70},[813,2024,2025],{"class":881},"        'phone_number'",[813,2027,899],{"class":818},[813,2029,2030],{"class":881}," 'phone number'",[813,2032,891],{"class":826},[813,2034,2035],{"class":815,"line":74},[813,2036,922],{"class":826},[813,2038,2039],{"class":815,"line":78},[813,2040,927],{"class":826},[813,2042,2043],{"class":815,"line":82},[813,2044,833],{"emptyLinePlaceholder":832},[813,2046,2047],{"class":815,"line":86},[813,2048,2049],{"class":938},"\u002F\u002F Error: \"The phone number field is required.\" instead of \"The phone_number field is required.\"\n",[790,2051],{},[708,2053,752],{"id":2054},"_6-nullable-fields",[704,2056,2057,2058,2060,2061,2064],{},"Add ",[799,2059,1424],{}," to make a field optional. If the value is ",[799,2062,2063],{},"null"," or an empty string, all other rules are skipped:",[804,2066,2068],{"className":806,"code":2067,"language":808,"meta":809,"style":809},"$rules = [\n    'name'     => 'required|string',\n    'nickname' => 'nullable|string|min:2',  \u002F\u002F Only validated if present\n    'bio'      => 'nullable|max:500',\n];\n",[799,2069,2070,2080,2093,2109,2122],{"__ignoreMap":809},[813,2071,2072,2075,2077],{"class":815,"line":6},[813,2073,2074],{"class":826},"$rules ",[813,2076,841],{"class":818},[813,2078,2079],{"class":826}," [\n",[813,2081,2082,2085,2088,2091],{"class":815,"line":29},[813,2083,2084],{"class":881},"    'name'",[813,2086,2087],{"class":818},"     =>",[813,2089,2090],{"class":881}," 'required|string'",[813,2092,891],{"class":826},[813,2094,2095,2098,2100,2103,2106],{"class":815,"line":14},[813,2096,2097],{"class":881},"    'nickname'",[813,2099,899],{"class":818},[813,2101,2102],{"class":881}," 'nullable|string|min:2'",[813,2104,2105],{"class":826},",  ",[813,2107,2108],{"class":938},"\u002F\u002F Only validated if present\n",[813,2110,2111,2114,2117,2120],{"class":815,"line":18},[813,2112,2113],{"class":881},"    'bio'",[813,2115,2116],{"class":818},"      =>",[813,2118,2119],{"class":881}," 'nullable|max:500'",[813,2121,891],{"class":826},[813,2123,2124],{"class":815,"line":70},[813,2125,2126],{"class":826},"];\n",[790,2128],{},[708,2130,758],{"id":2131},"_7-formrequest",[704,2133,2134,2137,2138,1140,2141,2144],{},[799,2135,2136],{},"FormRequest"," is an abstract class that combines authorization, sanitization, and validation. It lives in ",[1076,2139,2140],{},"this package",[799,2142,2143],{},"WPZylos\\Framework\\Validation","), not in wpzylos-http.",[1089,2146,2148],{"id":2147},"creating-a-formrequest","Creating a FormRequest",[804,2150,2152],{"className":806,"code":2151,"language":808,"meta":809,"style":809},"use WPZylos\\Framework\\Validation\\FormRequest;\n\nclass UpdateSettingsRequest extends FormRequest\n{\n    public function authorize(): bool\n    {\n        return current_user_can('manage_options');\n    }\n\n    public function rules(): array\n    {\n        return [\n            'site_title'       => 'required|string|max:200',\n            'admin_email'      => 'required|email',\n            'posts_per_page'   => 'required|integer|min:1|max:100',\n            'enable_comments'  => 'nullable|boolean',\n        ];\n    }\n\n    public function sanitize(): array\n    {\n        return [\n            'site_title'      => 'text',\n            'admin_email'     => 'email',\n            'posts_per_page'  => 'int',\n            'enable_comments' => 'bool',\n        ];\n    }\n\n    public function messages(): array\n    {\n        return [\n            'site_title.required' => 'Your site needs a title.',\n        ];\n    }\n\n    public function attributes(): array\n    {\n        return [\n            'admin_email'     => 'administrator email',\n            'posts_per_page'  => 'posts per page',\n        ];\n    }\n}\n",[799,2153,2154,2163,2167,2181,2186,2205,2210,2226,2231,2235,2251,2255,2261,2274,2285,2297,2309,2314,2318,2322,2337,2341,2347,2358,2369,2380,2391,2396,2401,2406,2422,2427,2434,2447,2452,2457,2462,2478,2483,2490,2502,2514,2519,2524],{"__ignoreMap":809},[813,2155,2156,2158,2161],{"class":815,"line":6},[813,2157,819],{"class":818},[813,2159,2160],{"class":822}," WPZylos\\Framework\\Validation\\FormRequest",[813,2162,827],{"class":826},[813,2164,2165],{"class":815,"line":29},[813,2166,833],{"emptyLinePlaceholder":832},[813,2168,2169,2172,2175,2178],{"class":815,"line":14},[813,2170,2171],{"class":818},"class",[813,2173,2174],{"class":855}," UpdateSettingsRequest",[813,2176,2177],{"class":818}," extends",[813,2179,2180],{"class":855}," FormRequest\n",[813,2182,2183],{"class":815,"line":18},[813,2184,2185],{"class":826},"{\n",[813,2187,2188,2191,2194,2197,2200,2202],{"class":815,"line":70},[813,2189,2190],{"class":818},"    public",[813,2192,2193],{"class":818}," function",[813,2195,2196],{"class":855}," authorize",[813,2198,2199],{"class":826},"()",[813,2201,1102],{"class":818},[813,2203,2204],{"class":818}," bool\n",[813,2206,2207],{"class":815,"line":74},[813,2208,2209],{"class":826},"    {\n",[813,2211,2212,2215,2218,2221,2224],{"class":815,"line":78},[813,2213,2214],{"class":818},"        return",[813,2216,2217],{"class":855}," current_user_can",[813,2219,2220],{"class":826},"(",[813,2222,2223],{"class":881},"'manage_options'",[813,2225,927],{"class":826},[813,2227,2228],{"class":815,"line":82},[813,2229,2230],{"class":826},"    }\n",[813,2232,2233],{"class":815,"line":86},[813,2234,833],{"emptyLinePlaceholder":832},[813,2236,2237,2239,2241,2244,2246,2248],{"class":815,"line":90},[813,2238,2190],{"class":818},[813,2240,2193],{"class":818},[813,2242,2243],{"class":855}," rules",[813,2245,2199],{"class":826},[813,2247,1102],{"class":818},[813,2249,2250],{"class":818}," array\n",[813,2252,2253],{"class":815,"line":930},[813,2254,2209],{"class":826},[813,2256,2257,2259],{"class":815,"line":935},[813,2258,2214],{"class":818},[813,2260,2079],{"class":826},[813,2262,2263,2266,2269,2272],{"class":815,"line":942},[813,2264,2265],{"class":881},"            'site_title'",[813,2267,2268],{"class":818},"       =>",[813,2270,2271],{"class":881}," 'required|string|max:200'",[813,2273,891],{"class":826},[813,2275,2276,2279,2281,2283],{"class":815,"line":959},[813,2277,2278],{"class":881},"            'admin_email'",[813,2280,2116],{"class":818},[813,2282,902],{"class":881},[813,2284,891],{"class":826},[813,2286,2287,2290,2292,2295],{"class":815,"line":965},[813,2288,2289],{"class":881},"            'posts_per_page'",[813,2291,912],{"class":818},[813,2293,2294],{"class":881}," 'required|integer|min:1|max:100'",[813,2296,891],{"class":826},[813,2298,2299,2302,2304,2307],{"class":815,"line":984},[813,2300,2301],{"class":881},"            'enable_comments'",[813,2303,885],{"class":818},[813,2305,2306],{"class":881}," 'nullable|boolean'",[813,2308,891],{"class":826},[813,2310,2311],{"class":815,"line":990},[813,2312,2313],{"class":826},"        ];\n",[813,2315,2316],{"class":815,"line":995},[813,2317,2230],{"class":826},[813,2319,2320],{"class":815,"line":1001},[813,2321,833],{"emptyLinePlaceholder":832},[813,2323,2324,2326,2328,2331,2333,2335],{"class":815,"line":1015},[813,2325,2190],{"class":818},[813,2327,2193],{"class":818},[813,2329,2330],{"class":855}," sanitize",[813,2332,2199],{"class":826},[813,2334,1102],{"class":818},[813,2336,2250],{"class":818},[813,2338,2339],{"class":815,"line":1032},[813,2340,2209],{"class":826},[813,2342,2343,2345],{"class":815,"line":1037},[813,2344,2214],{"class":818},[813,2346,2079],{"class":826},[813,2348,2349,2351,2353,2356],{"class":815,"line":1042},[813,2350,2265],{"class":881},[813,2352,2116],{"class":818},[813,2354,2355],{"class":881}," 'text'",[813,2357,891],{"class":826},[813,2359,2360,2362,2364,2367],{"class":815,"line":1048},[813,2361,2278],{"class":881},[813,2363,2087],{"class":818},[813,2365,2366],{"class":881}," 'email'",[813,2368,891],{"class":826},[813,2370,2371,2373,2375,2378],{"class":815,"line":1062},[813,2372,2289],{"class":881},[813,2374,885],{"class":818},[813,2376,2377],{"class":881}," 'int'",[813,2379,891],{"class":826},[813,2381,2382,2384,2386,2389],{"class":815,"line":1068},[813,2383,2301],{"class":881},[813,2385,899],{"class":818},[813,2387,2388],{"class":881}," 'bool'",[813,2390,891],{"class":826},[813,2392,2394],{"class":815,"line":2393},27,[813,2395,2313],{"class":826},[813,2397,2399],{"class":815,"line":2398},28,[813,2400,2230],{"class":826},[813,2402,2404],{"class":815,"line":2403},29,[813,2405,833],{"emptyLinePlaceholder":832},[813,2407,2409,2411,2413,2416,2418,2420],{"class":815,"line":2408},30,[813,2410,2190],{"class":818},[813,2412,2193],{"class":818},[813,2414,2415],{"class":855}," messages",[813,2417,2199],{"class":826},[813,2419,1102],{"class":818},[813,2421,2250],{"class":818},[813,2423,2425],{"class":815,"line":2424},31,[813,2426,2209],{"class":826},[813,2428,2430,2432],{"class":815,"line":2429},32,[813,2431,2214],{"class":818},[813,2433,2079],{"class":826},[813,2435,2437,2440,2442,2445],{"class":815,"line":2436},33,[813,2438,2439],{"class":881},"            'site_title.required'",[813,2441,899],{"class":818},[813,2443,2444],{"class":881}," 'Your site needs a title.'",[813,2446,891],{"class":826},[813,2448,2450],{"class":815,"line":2449},34,[813,2451,2313],{"class":826},[813,2453,2455],{"class":815,"line":2454},35,[813,2456,2230],{"class":826},[813,2458,2460],{"class":815,"line":2459},36,[813,2461,833],{"emptyLinePlaceholder":832},[813,2463,2465,2467,2469,2472,2474,2476],{"class":815,"line":2464},37,[813,2466,2190],{"class":818},[813,2468,2193],{"class":818},[813,2470,2471],{"class":855}," attributes",[813,2473,2199],{"class":826},[813,2475,1102],{"class":818},[813,2477,2250],{"class":818},[813,2479,2481],{"class":815,"line":2480},38,[813,2482,2209],{"class":826},[813,2484,2486,2488],{"class":815,"line":2485},39,[813,2487,2214],{"class":818},[813,2489,2079],{"class":826},[813,2491,2493,2495,2497,2500],{"class":815,"line":2492},40,[813,2494,2278],{"class":881},[813,2496,2087],{"class":818},[813,2498,2499],{"class":881}," 'administrator email'",[813,2501,891],{"class":826},[813,2503,2505,2507,2509,2512],{"class":815,"line":2504},41,[813,2506,2289],{"class":881},[813,2508,885],{"class":818},[813,2510,2511],{"class":881}," 'posts per page'",[813,2513,891],{"class":826},[813,2515,2517],{"class":815,"line":2516},42,[813,2518,2313],{"class":826},[813,2520,2522],{"class":815,"line":2521},43,[813,2523,2230],{"class":826},[813,2525,2527],{"class":815,"line":2526},44,[813,2528,987],{"class":826},[1089,2530,2532],{"id":2531},"using-in-a-controller","Using in a Controller",[804,2534,2536],{"className":806,"code":2535,"language":808,"meta":809,"style":809},"public function update(Request $request): Response\n{\n    $form = new UpdateSettingsRequest($request);\n\n    if (!$form->authorize()) {\n        return Response::error('Unauthorized', 403);\n    }\n\n    if ($form->fails()) {\n        return Response::json([\n            'errors' => $form->errors()->toArray(),\n        ], 422);\n    }\n\n    $data = $form->validated(); \u002F\u002F Sanitized + validated data\n    \u002F\u002F Save settings...\n\n    return Response::json(['status' => 'ok']);\n}\n",[799,2537,2538,2561,2565,2579,2583,2603,2628,2632,2636,2649,2663,2686,2696,2700,2704,2721,2726,2730,2754],{"__ignoreMap":809},[813,2539,2540,2543,2545,2548,2550,2553,2556,2558],{"class":815,"line":6},[813,2541,2542],{"class":818},"public",[813,2544,2193],{"class":818},[813,2546,2547],{"class":855}," update",[813,2549,2220],{"class":826},[813,2551,2552],{"class":822},"Request",[813,2554,2555],{"class":826}," $request)",[813,2557,1102],{"class":818},[813,2559,2560],{"class":822}," Response\n",[813,2562,2563],{"class":815,"line":29},[813,2564,2185],{"class":826},[813,2566,2567,2570,2572,2574,2576],{"class":815,"line":14},[813,2568,2569],{"class":826},"    $form ",[813,2571,841],{"class":818},[813,2573,844],{"class":818},[813,2575,2174],{"class":822},[813,2577,2578],{"class":826},"($request);\n",[813,2580,2581],{"class":815,"line":18},[813,2582,833],{"emptyLinePlaceholder":832},[813,2584,2585,2588,2590,2593,2596,2598,2601],{"class":815,"line":70},[813,2586,2587],{"class":818},"    if",[813,2589,1140],{"class":826},[813,2591,2592],{"class":818},"!",[813,2594,2595],{"class":826},"$form",[813,2597,862],{"class":818},[813,2599,2600],{"class":855},"authorize",[813,2602,956],{"class":826},[813,2604,2605,2607,2610,2613,2616,2618,2621,2623,2626],{"class":815,"line":74},[813,2606,2214],{"class":818},[813,2608,2609],{"class":822}," Response",[813,2611,2612],{"class":818},"::",[813,2614,2615],{"class":855},"error",[813,2617,2220],{"class":826},[813,2619,2620],{"class":881},"'Unauthorized'",[813,2622,1638],{"class":826},[813,2624,2625],{"class":822},"403",[813,2627,927],{"class":826},[813,2629,2630],{"class":815,"line":78},[813,2631,2230],{"class":826},[813,2633,2634],{"class":815,"line":82},[813,2635,833],{"emptyLinePlaceholder":832},[813,2637,2638,2640,2643,2645,2647],{"class":815,"line":86},[813,2639,2587],{"class":818},[813,2641,2642],{"class":826}," ($form",[813,2644,862],{"class":818},[813,2646,1010],{"class":855},[813,2648,956],{"class":826},[813,2650,2651,2653,2655,2657,2660],{"class":815,"line":90},[813,2652,2214],{"class":818},[813,2654,2609],{"class":822},[813,2656,2612],{"class":818},[813,2658,2659],{"class":855},"json",[813,2661,2662],{"class":826},"([\n",[813,2664,2665,2668,2670,2673,2675,2677,2679,2681,2684],{"class":815,"line":930},[813,2666,2667],{"class":881},"            'errors'",[813,2669,899],{"class":818},[813,2671,2672],{"class":826}," $form",[813,2674,862],{"class":818},[813,2676,1027],{"class":855},[813,2678,2199],{"class":826},[813,2680,862],{"class":818},[813,2682,2683],{"class":855},"toArray",[813,2685,868],{"class":826},[813,2687,2688,2691,2694],{"class":815,"line":935},[813,2689,2690],{"class":826},"        ], ",[813,2692,2693],{"class":822},"422",[813,2695,927],{"class":826},[813,2697,2698],{"class":815,"line":942},[813,2699,2230],{"class":826},[813,2701,2702],{"class":815,"line":959},[813,2703,833],{"emptyLinePlaceholder":832},[813,2705,2706,2708,2710,2712,2714,2716,2718],{"class":815,"line":965},[813,2707,968],{"class":826},[813,2709,841],{"class":818},[813,2711,2672],{"class":826},[813,2713,862],{"class":818},[813,2715,978],{"class":855},[813,2717,1162],{"class":826},[813,2719,2720],{"class":938},"\u002F\u002F Sanitized + validated data\n",[813,2722,2723],{"class":815,"line":984},[813,2724,2725],{"class":938},"    \u002F\u002F Save settings...\n",[813,2727,2728],{"class":815,"line":990},[813,2729,833],{"emptyLinePlaceholder":832},[813,2731,2732,2735,2737,2739,2741,2744,2746,2748,2751],{"class":815,"line":995},[813,2733,2734],{"class":818},"    return",[813,2736,2609],{"class":822},[813,2738,2612],{"class":818},[813,2740,2659],{"class":855},[813,2742,2743],{"class":826},"([",[813,2745,1687],{"class":881},[813,2747,899],{"class":818},[813,2749,2750],{"class":881}," 'ok'",[813,2752,2753],{"class":826},"]);\n",[813,2755,2756],{"class":815,"line":1001},[813,2757,987],{"class":826},[1089,2759,2761],{"id":2760},"how-formrequest-works","How FormRequest Works",[1941,2763,2764,2772,2779,2785],{},[716,2765,2766,2771],{},[1076,2767,2768],{},[799,2769,2770],{},"data()"," is called to get sanitized input from the HTTP request",[716,2773,2774,2775,2778],{},"Sanitizers from ",[799,2776,2777],{},"sanitize()"," are applied to each field",[716,2780,2781,2782,2784],{},"A ",[799,2783,801],{}," is created with the sanitized data + rules + messages + attributes",[716,2786,2787,1638,2789,1638,2792,1638,2795,2797],{},[799,2788,1082],{},[799,2790,2791],{},"fails()",[799,2793,2794],{},"errors()",[799,2796,1097],{}," all delegate to this internal Validator",[790,2799],{},[708,2801,764],{"id":2802},"_8-sanitizer-types",[704,2804,2805,2806,2809],{},"Used in ",[799,2807,2808],{},"FormRequest::sanitize()"," to map fields to WordPress sanitization functions:",[1186,2811,2812,2824],{},[1189,2813,2814],{},[1192,2815,2816,2819,2822],{},[1195,2817,2818],{},"Type",[1195,2820,2821],{},"WordPress Function",[1195,2823,1203],{},[1205,2825,2826,2842,2857,2872,2886,2900,2918,2933,2948,2964,2979],{},[1192,2827,2828,2834,2839],{},[1210,2829,2830,2833],{},[799,2831,2832],{},"text"," (default)",[1210,2835,2836],{},[799,2837,2838],{},"sanitize_text_field()",[1210,2840,2841],{},"Plain text, strips tags",[1192,2843,2844,2849,2854],{},[1210,2845,2846],{},[799,2847,2848],{},"textarea",[1210,2850,2851],{},[799,2852,2853],{},"sanitize_textarea_field()",[1210,2855,2856],{},"Multi-line text, preserves newlines",[1192,2858,2859,2864,2869],{},[1210,2860,2861],{},[799,2862,2863],{},"html",[1210,2865,2866],{},[799,2867,2868],{},"wp_kses_post()",[1210,2870,2871],{},"Rich HTML (post-content level tags)",[1192,2873,2874,2878,2883],{},[1210,2875,2876],{},[799,2877,1328],{},[1210,2879,2880],{},[799,2881,2882],{},"sanitize_email()",[1210,2884,2885],{},"Valid email characters",[1192,2887,2888,2892,2897],{},[1210,2889,2890],{},[799,2891,1346],{},[1210,2893,2894],{},[799,2895,2896],{},"esc_url_raw()",[1210,2898,2899],{},"Safe URL for database storage",[1192,2901,2902,2909,2915],{},[1210,2903,2904,2906,2907],{},[799,2905,1263],{}," \u002F ",[799,2908,1244],{},[1210,2910,2911,2914],{},[799,2912,2913],{},"(int)"," cast",[1210,2916,2917],{},"Integer value",[1192,2919,2920,2925,2930],{},[1210,2921,2922],{},[799,2923,2924],{},"absint",[1210,2926,2927],{},[799,2928,2929],{},"absint()",[1210,2931,2932],{},"Non-negative integer",[1192,2934,2935,2940,2945],{},[1210,2936,2937],{},[799,2938,2939],{},"float",[1210,2941,2942],{},[799,2943,2944],{},"filter_var(FILTER_SANITIZE_NUMBER_FLOAT)",[1210,2946,2947],{},"Float value",[1192,2949,2950,2956,2961],{},[1210,2951,2952,2906,2954],{},[799,2953,1086],{},[799,2955,1298],{},[1210,2957,2958],{},[799,2959,2960],{},"filter_var(FILTER_VALIDATE_BOOLEAN)",[1210,2962,2963],{},"Boolean value",[1192,2965,2966,2971,2976],{},[1210,2967,2968],{},[799,2969,2970],{},"slug",[1210,2972,2973],{},[799,2974,2975],{},"sanitize_title()",[1210,2977,2978],{},"URL-safe slug",[1192,2980,2981,2986,2991],{},[1210,2982,2983],{},[799,2984,2985],{},"key",[1210,2987,2988],{},[799,2989,2990],{},"sanitize_key()",[1210,2992,2993],{},"Lowercase alphanumeric with dashes and underscores",[704,2995,2996,2997,2999],{},"Fields without a sanitizer mapping in ",[799,2998,2777],{}," are passed through unchanged.",[790,3001],{},[708,3003,770],{"id":3004},"_9-custom-rules",[1089,3006,3008],{"id":3007},"implementing-ruleinterface","Implementing RuleInterface",[804,3010,3012],{"className":806,"code":3011,"language":808,"meta":809,"style":809},"use WPZylos\\Framework\\Validation\\RuleInterface;\n\nclass UniqueEmailRule implements RuleInterface\n{\n    public function passes(string $field, mixed $value, array $parameters, array $data): bool\n    {\n        \u002F\u002F $parameters[0] could be a table name, etc.\n        return !email_exists($value);\n    }\n\n    public function message(): string\n    {\n        return 'The :attribute is already taken.';\n    }\n}\n",[799,3013,3014,3023,3027,3040,3044,3080,3084,3089,3102,3106,3110,3126,3130,3139,3143],{"__ignoreMap":809},[813,3015,3016,3018,3021],{"class":815,"line":6},[813,3017,819],{"class":818},[813,3019,3020],{"class":822}," WPZylos\\Framework\\Validation\\RuleInterface",[813,3022,827],{"class":826},[813,3024,3025],{"class":815,"line":29},[813,3026,833],{"emptyLinePlaceholder":832},[813,3028,3029,3031,3034,3037],{"class":815,"line":14},[813,3030,2171],{"class":818},[813,3032,3033],{"class":855}," UniqueEmailRule",[813,3035,3036],{"class":818}," implements",[813,3038,3039],{"class":855}," RuleInterface\n",[813,3041,3042],{"class":815,"line":18},[813,3043,2185],{"class":826},[813,3045,3046,3048,3050,3053,3055,3057,3060,3063,3066,3068,3071,3073,3076,3078],{"class":815,"line":70},[813,3047,2190],{"class":818},[813,3049,2193],{"class":818},[813,3051,3052],{"class":855}," passes",[813,3054,2220],{"class":826},[813,3056,1229],{"class":818},[813,3058,3059],{"class":826}," $field, ",[813,3061,3062],{"class":818},"mixed",[813,3064,3065],{"class":826}," $value, ",[813,3067,1313],{"class":818},[813,3069,3070],{"class":826}," $parameters, ",[813,3072,1313],{"class":818},[813,3074,3075],{"class":826}," $data)",[813,3077,1102],{"class":818},[813,3079,2204],{"class":818},[813,3081,3082],{"class":815,"line":74},[813,3083,2209],{"class":826},[813,3085,3086],{"class":815,"line":78},[813,3087,3088],{"class":938},"        \u002F\u002F $parameters[0] could be a table name, etc.\n",[813,3090,3091,3093,3096,3099],{"class":815,"line":82},[813,3092,2214],{"class":818},[813,3094,3095],{"class":818}," !",[813,3097,3098],{"class":855},"email_exists",[813,3100,3101],{"class":826},"($value);\n",[813,3103,3104],{"class":815,"line":86},[813,3105,2230],{"class":826},[813,3107,3108],{"class":815,"line":90},[813,3109,833],{"emptyLinePlaceholder":832},[813,3111,3112,3114,3116,3119,3121,3123],{"class":815,"line":930},[813,3113,2190],{"class":818},[813,3115,2193],{"class":818},[813,3117,3118],{"class":855}," message",[813,3120,2199],{"class":826},[813,3122,1102],{"class":818},[813,3124,3125],{"class":818}," string\n",[813,3127,3128],{"class":815,"line":935},[813,3129,2209],{"class":826},[813,3131,3132,3134,3137],{"class":815,"line":942},[813,3133,2214],{"class":818},[813,3135,3136],{"class":881}," 'The :attribute is already taken.'",[813,3138,827],{"class":826},[813,3140,3141],{"class":815,"line":959},[813,3142,2230],{"class":826},[813,3144,3145],{"class":815,"line":965},[813,3146,987],{"class":826},[701,3148,3149],{},[704,3150,3151,3153,3154,3157,3158,3161,3162,3165],{},[1076,3152,1078],{}," The ",[799,3155,3156],{},"passes()"," signature is ",[799,3159,3160],{},"(string $field, mixed $value, array $parameters, array $data)",". The ",[799,3163,3164],{},"$data"," parameter gives access to all data being validated.",[1089,3167,3169],{"id":3168},"registering-custom-rules","Registering Custom Rules",[704,3171,3172,3173,3175,3176,3178],{},"Use ",[799,3174,1446],{}," with a rule name and a ",[799,3177,1442],{}," instance (not a closure):",[804,3180,3182],{"className":806,"code":3181,"language":808,"meta":809,"style":809},"use WPZylos\\Framework\\Validation\\Validator;\n\nValidator::extend('unique_email', new UniqueEmailRule());\n",[799,3183,3184,3192,3196],{"__ignoreMap":809},[813,3185,3186,3188,3190],{"class":815,"line":6},[813,3187,819],{"class":818},[813,3189,823],{"class":822},[813,3191,827],{"class":826},[813,3193,3194],{"class":815,"line":29},[813,3195,833],{"emptyLinePlaceholder":832},[813,3197,3198,3200,3202,3205,3207,3210,3212,3215,3217],{"class":815,"line":14},[813,3199,801],{"class":822},[813,3201,2612],{"class":818},[813,3203,3204],{"class":855},"extend",[813,3206,2220],{"class":826},[813,3208,3209],{"class":881},"'unique_email'",[813,3211,1638],{"class":826},[813,3213,3214],{"class":818},"new",[813,3216,3033],{"class":822},[813,3218,3219],{"class":826},"());\n",[1089,3221,3223],{"id":3222},"using-custom-rules","Using Custom Rules",[804,3225,3227],{"className":806,"code":3226,"language":808,"meta":809,"style":809},"$validator = new Validator(\n    data: ['email' => 'test@example.com'],\n    rules: ['email' => 'required|email|unique_email'],\n);\n",[799,3228,3229,3241,3256,3271],{"__ignoreMap":809},[813,3230,3231,3233,3235,3237,3239],{"class":815,"line":6},[813,3232,838],{"class":826},[813,3234,841],{"class":818},[813,3236,844],{"class":818},[813,3238,847],{"class":822},[813,3240,850],{"class":826},[813,3242,3243,3245,3247,3249,3251,3254],{"class":815,"line":29},[813,3244,856],{"class":855},[813,3246,1755],{"class":826},[813,3248,1333],{"class":881},[813,3250,899],{"class":818},[813,3252,3253],{"class":881}," 'test@example.com'",[813,3255,1764],{"class":826},[813,3257,3258,3260,3262,3264,3266,3269],{"class":815,"line":14},[813,3259,873],{"class":855},[813,3261,1755],{"class":826},[813,3263,1333],{"class":881},[813,3265,899],{"class":818},[813,3267,3268],{"class":881}," 'required|email|unique_email'",[813,3270,1764],{"class":826},[813,3272,3273],{"class":815,"line":18},[813,3274,927],{"class":826},[704,3276,3277,3278,3280],{},"Custom rules are registered globally and available to all ",[799,3279,801],{}," instances.",[790,3282],{},[708,3284,776],{"id":3285},"_10-messagebag-api",[704,3287,3288,3291],{},[799,3289,3290],{},"MessageBag"," collects validation errors per field.",[804,3293,3295],{"className":806,"code":3294,"language":808,"meta":809,"style":809},"$errors = $validator->errors();\n\n\u002F\u002F Check for errors\n$errors->hasErrors();         \u002F\u002F bool - any errors at all?\n$errors->has('email');        \u002F\u002F bool - errors for this field?\n\n\u002F\u002F Get messages\n$errors->first('email');      \u002F\u002F ?string - first error for field\n$errors->get('email');        \u002F\u002F string[] - all errors for field\n$errors->all();               \u002F\u002F array\u003Cstring, string[]> - all grouped by field\n$errors->flatten();           \u002F\u002F string[] - all messages as flat array\n\n\u002F\u002F Metadata\n$errors->count();             \u002F\u002F int - total error count\n$errors->keys();              \u002F\u002F string[] - field names with errors\n$errors->toArray();           \u002F\u002F array\u003Cstring, string[]> - same as all()\n",[799,3296,3297,3312,3316,3321,3337,3356,3360,3365,3384,3402,3416,3431,3435,3440,3455,3470],{"__ignoreMap":809},[813,3298,3299,3302,3304,3306,3308,3310],{"class":815,"line":6},[813,3300,3301],{"class":826},"$errors ",[813,3303,841],{"class":818},[813,3305,973],{"class":826},[813,3307,862],{"class":818},[813,3309,1027],{"class":855},[813,3311,981],{"class":826},[813,3313,3314],{"class":815,"line":29},[813,3315,833],{"emptyLinePlaceholder":832},[813,3317,3318],{"class":815,"line":14},[813,3319,3320],{"class":938},"\u002F\u002F Check for errors\n",[813,3322,3323,3326,3328,3331,3334],{"class":815,"line":18},[813,3324,3325],{"class":826},"$errors",[813,3327,862],{"class":818},[813,3329,3330],{"class":855},"hasErrors",[813,3332,3333],{"class":826},"();         ",[813,3335,3336],{"class":938},"\u002F\u002F bool - any errors at all?\n",[813,3338,3339,3341,3343,3346,3348,3350,3353],{"class":815,"line":70},[813,3340,3325],{"class":826},[813,3342,862],{"class":818},[813,3344,3345],{"class":855},"has",[813,3347,2220],{"class":826},[813,3349,1333],{"class":881},[813,3351,3352],{"class":826},");        ",[813,3354,3355],{"class":938},"\u002F\u002F bool - errors for this field?\n",[813,3357,3358],{"class":815,"line":74},[813,3359,833],{"emptyLinePlaceholder":832},[813,3361,3362],{"class":815,"line":78},[813,3363,3364],{"class":938},"\u002F\u002F Get messages\n",[813,3366,3367,3369,3371,3374,3376,3378,3381],{"class":815,"line":82},[813,3368,3325],{"class":826},[813,3370,862],{"class":818},[813,3372,3373],{"class":855},"first",[813,3375,2220],{"class":826},[813,3377,1333],{"class":881},[813,3379,3380],{"class":826},");      ",[813,3382,3383],{"class":938},"\u002F\u002F ?string - first error for field\n",[813,3385,3386,3388,3390,3393,3395,3397,3399],{"class":815,"line":86},[813,3387,3325],{"class":826},[813,3389,862],{"class":818},[813,3391,3392],{"class":855},"get",[813,3394,2220],{"class":826},[813,3396,1333],{"class":881},[813,3398,3352],{"class":826},[813,3400,3401],{"class":938},"\u002F\u002F string[] - all errors for field\n",[813,3403,3404,3406,3408,3410,3413],{"class":815,"line":90},[813,3405,3325],{"class":826},[813,3407,862],{"class":818},[813,3409,865],{"class":855},[813,3411,3412],{"class":826},"();               ",[813,3414,3415],{"class":938},"\u002F\u002F array\u003Cstring, string[]> - all grouped by field\n",[813,3417,3418,3420,3422,3425,3428],{"class":815,"line":930},[813,3419,3325],{"class":826},[813,3421,862],{"class":818},[813,3423,3424],{"class":855},"flatten",[813,3426,3427],{"class":826},"();           ",[813,3429,3430],{"class":938},"\u002F\u002F string[] - all messages as flat array\n",[813,3432,3433],{"class":815,"line":935},[813,3434,833],{"emptyLinePlaceholder":832},[813,3436,3437],{"class":815,"line":942},[813,3438,3439],{"class":938},"\u002F\u002F Metadata\n",[813,3441,3442,3444,3446,3449,3452],{"class":815,"line":959},[813,3443,3325],{"class":826},[813,3445,862],{"class":818},[813,3447,3448],{"class":855},"count",[813,3450,3451],{"class":826},"();             ",[813,3453,3454],{"class":938},"\u002F\u002F int - total error count\n",[813,3456,3457,3459,3461,3464,3467],{"class":815,"line":965},[813,3458,3325],{"class":826},[813,3460,862],{"class":818},[813,3462,3463],{"class":855},"keys",[813,3465,3466],{"class":826},"();              ",[813,3468,3469],{"class":938},"\u002F\u002F string[] - field names with errors\n",[813,3471,3472,3474,3476,3478,3480],{"class":815,"line":984},[813,3473,3325],{"class":826},[813,3475,862],{"class":818},[813,3477,2683],{"class":855},[813,3479,3427],{"class":826},[813,3481,3482],{"class":938},"\u002F\u002F array\u003Cstring, string[]> - same as all()\n",[1089,3484,3486],{"id":3485},"displaying-errors-example","Displaying Errors (Example)",[804,3488,3490],{"className":806,"code":3489,"language":808,"meta":809,"style":809},"if ($validator->fails()) {\n    foreach ($validator->errors()->all() as $field => $messages) {\n        foreach ($messages as $message) {\n            echo \"\u003Cp class='error'>{$message}\u003C\u002Fp>\";\n        }\n    }\n}\n",[799,3491,3492,3504,3536,3549,3565,3570,3574],{"__ignoreMap":809},[813,3493,3494,3496,3498,3500,3502],{"class":815,"line":6},[813,3495,945],{"class":818},[813,3497,948],{"class":826},[813,3499,862],{"class":818},[813,3501,1010],{"class":855},[813,3503,956],{"class":826},[813,3505,3506,3509,3511,3513,3515,3517,3519,3521,3524,3527,3530,3533],{"class":815,"line":29},[813,3507,3508],{"class":818},"    foreach",[813,3510,948],{"class":826},[813,3512,862],{"class":818},[813,3514,1027],{"class":855},[813,3516,2199],{"class":826},[813,3518,862],{"class":818},[813,3520,865],{"class":855},[813,3522,3523],{"class":826},"() ",[813,3525,3526],{"class":818},"as",[813,3528,3529],{"class":826}," $field ",[813,3531,3532],{"class":818},"=>",[813,3534,3535],{"class":826}," $messages) {\n",[813,3537,3538,3541,3544,3546],{"class":815,"line":14},[813,3539,3540],{"class":818},"        foreach",[813,3542,3543],{"class":826}," ($messages ",[813,3545,3526],{"class":818},[813,3547,3548],{"class":826}," $message) {\n",[813,3550,3551,3554,3557,3560,3563],{"class":815,"line":18},[813,3552,3553],{"class":822},"            echo",[813,3555,3556],{"class":881}," \"\u003Cp class='error'>{",[813,3558,3559],{"class":826},"$message",[813,3561,3562],{"class":881},"}\u003C\u002Fp>\"",[813,3564,827],{"class":826},[813,3566,3567],{"class":815,"line":70},[813,3568,3569],{"class":826},"        }\n",[813,3571,3572],{"class":815,"line":74},[813,3573,2230],{"class":826},[813,3575,3576],{"class":815,"line":78},[813,3577,987],{"class":826},[790,3579],{},[708,3581,782],{"id":3582},"_11-validationexception-handling",[704,3584,3585,3587,3588,3590],{},[799,3586,1101],{}," is thrown by ",[799,3589,1097],{}," when validation fails:",[804,3592,3594],{"className":806,"code":3593,"language":808,"meta":809,"style":809},"use WPZylos\\Framework\\Validation\\ValidationException;\n\ntry {\n    $data = $validator->validated();\n} catch (ValidationException $e) {\n    $errors  = $e->errors();         \u002F\u002F MessageBag\n    $message = $e->getMessage();     \u002F\u002F \"The given data was invalid.\"\n}\n",[799,3595,3596,3605,3609,3615,3629,3641,3658,3678],{"__ignoreMap":809},[813,3597,3598,3600,3603],{"class":815,"line":6},[813,3599,819],{"class":818},[813,3601,3602],{"class":822}," WPZylos\\Framework\\Validation\\ValidationException",[813,3604,827],{"class":826},[813,3606,3607],{"class":815,"line":29},[813,3608,833],{"emptyLinePlaceholder":832},[813,3610,3611,3613],{"class":815,"line":14},[813,3612,1112],{"class":818},[813,3614,1115],{"class":826},[813,3616,3617,3619,3621,3623,3625,3627],{"class":815,"line":18},[813,3618,968],{"class":826},[813,3620,841],{"class":818},[813,3622,973],{"class":826},[813,3624,862],{"class":818},[813,3626,978],{"class":855},[813,3628,981],{"class":826},[813,3630,3631,3633,3635,3637,3639],{"class":815,"line":70},[813,3632,1134],{"class":826},[813,3634,1137],{"class":818},[813,3636,1140],{"class":826},[813,3638,1101],{"class":822},[813,3640,1146],{"class":826},[813,3642,3643,3646,3648,3650,3652,3654,3656],{"class":815,"line":74},[813,3644,3645],{"class":826},"    $errors  ",[813,3647,841],{"class":818},[813,3649,1155],{"class":826},[813,3651,862],{"class":818},[813,3653,1027],{"class":855},[813,3655,3333],{"class":826},[813,3657,1165],{"class":938},[813,3659,3660,3663,3665,3667,3669,3672,3675],{"class":815,"line":78},[813,3661,3662],{"class":826},"    $message ",[813,3664,841],{"class":818},[813,3666,1155],{"class":826},[813,3668,862],{"class":818},[813,3670,3671],{"class":855},"getMessage",[813,3673,3674],{"class":826},"();     ",[813,3676,3677],{"class":938},"\u002F\u002F \"The given data was invalid.\"\n",[813,3679,3680],{"class":815,"line":82},[813,3681,987],{"class":826},[704,3683,3684,3685,3687],{},"The exception carries a ",[799,3686,3290],{}," with all validation errors.",[790,3689],{},[708,3691,788],{"id":3692},"_12-service-provider-registration",[704,3694,3695,3696,3699],{},"The ",[799,3697,3698],{},"ValidationServiceProvider"," registers a validator factory with the container:",[804,3701,3703],{"className":806,"code":3702,"language":808,"meta":809,"style":809},"use WPZylos\\Framework\\Validation\\ValidationServiceProvider;\n\n$app->register(new ValidationServiceProvider());\n",[799,3704,3705,3714,3718],{"__ignoreMap":809},[813,3706,3707,3709,3712],{"class":815,"line":6},[813,3708,819],{"class":818},[813,3710,3711],{"class":822}," WPZylos\\Framework\\Validation\\ValidationServiceProvider",[813,3713,827],{"class":826},[813,3715,3716],{"class":815,"line":29},[813,3717,833],{"emptyLinePlaceholder":832},[813,3719,3720,3723,3725,3728,3730,3732,3735],{"class":815,"line":14},[813,3721,3722],{"class":826},"$app",[813,3724,862],{"class":818},[813,3726,3727],{"class":855},"register",[813,3729,2220],{"class":826},[813,3731,3214],{"class":818},[813,3733,3734],{"class":822}," ValidationServiceProvider",[813,3736,3219],{"class":826},[1089,3738,3740],{"id":3739},"what-gets-registered","What Gets Registered",[1186,3742,3743,3754],{},[1189,3744,3745],{},[1192,3746,3747,3750,3752],{},[1195,3748,3749],{},"Binding",[1195,3751,2818],{},[1195,3753,1203],{},[1205,3755,3756],{},[1192,3757,3758,3763,3766],{},[1210,3759,3760],{},[799,3761,3762],{},"'validator'",[1210,3764,3765],{},"Factory",[1210,3767,3768,3769,3771],{},"Returns a factory function for creating ",[799,3770,801],{}," instances",[1089,3773,3775],{"id":3774},"using-the-factory","Using the Factory",[804,3777,3779],{"className":806,"code":3778,"language":808,"meta":809,"style":809},"$makeValidator = $container->get('validator');\n\n$validator = $makeValidator(\n    $data,                   \u002F\u002F array - data to validate\n    $rules,                  \u002F\u002F array - validation rules\n    $messages,               \u002F\u002F array - custom messages (optional)\n    $attributes,             \u002F\u002F array - custom attribute names (optional)\n);\n",[799,3780,3781,3801,3805,3814,3822,3830,3838,3846],{"__ignoreMap":809},[813,3782,3783,3786,3788,3791,3793,3795,3797,3799],{"class":815,"line":6},[813,3784,3785],{"class":826},"$makeValidator ",[813,3787,841],{"class":818},[813,3789,3790],{"class":826}," $container",[813,3792,862],{"class":818},[813,3794,3392],{"class":855},[813,3796,2220],{"class":826},[813,3798,3762],{"class":881},[813,3800,927],{"class":826},[813,3802,3803],{"class":815,"line":29},[813,3804,833],{"emptyLinePlaceholder":832},[813,3806,3807,3809,3811],{"class":815,"line":14},[813,3808,838],{"class":826},[813,3810,841],{"class":818},[813,3812,3813],{"class":826}," $makeValidator(\n",[813,3815,3816,3819],{"class":815,"line":18},[813,3817,3818],{"class":826},"    $data,                   ",[813,3820,3821],{"class":938},"\u002F\u002F array - data to validate\n",[813,3823,3824,3827],{"class":815,"line":70},[813,3825,3826],{"class":826},"    $rules,                  ",[813,3828,3829],{"class":938},"\u002F\u002F array - validation rules\n",[813,3831,3832,3835],{"class":815,"line":74},[813,3833,3834],{"class":826},"    $messages,               ",[813,3836,3837],{"class":938},"\u002F\u002F array - custom messages (optional)\n",[813,3839,3840,3843],{"class":815,"line":78},[813,3841,3842],{"class":826},"    $attributes,             ",[813,3844,3845],{"class":938},"\u002F\u002F array - custom attribute names (optional)\n",[813,3847,3848],{"class":815,"line":82},[813,3849,927],{"class":826},[704,3851,3852,3853,3855],{},"The factory automatically injects a ",[799,3854,1965],{}," instance if one is registered in the container.",[3857,3858,3859],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":809,"searchDepth":29,"depth":29,"links":3861},[3862,3863,3866,3870,3875,3881,3882,3883,3888,3889,3894,3897,3898],{"id":710,"depth":29,"text":711},{"id":794,"depth":29,"text":722,"children":3864},[3865],{"id":1091,"depth":14,"text":1092},{"id":1174,"depth":29,"text":728,"children":3867},[3868,3869],{"id":1177,"depth":14,"text":1178},{"id":1435,"depth":14,"text":1436},{"id":1596,"depth":29,"text":734,"children":3871},[3872,3873,3874],{"id":1599,"depth":14,"text":1600},{"id":1618,"depth":14,"text":1619},{"id":1656,"depth":14,"text":1657},{"id":1717,"depth":29,"text":740,"children":3876},[3877,3878,3879,3880],{"id":1720,"depth":14,"text":1721},{"id":1806,"depth":14,"text":1807},{"id":1880,"depth":14,"text":1881},{"id":1938,"depth":14,"text":1939},{"id":1971,"depth":29,"text":746},{"id":2054,"depth":29,"text":752},{"id":2131,"depth":29,"text":758,"children":3884},[3885,3886,3887],{"id":2147,"depth":14,"text":2148},{"id":2531,"depth":14,"text":2532},{"id":2760,"depth":14,"text":2761},{"id":2802,"depth":29,"text":764},{"id":3004,"depth":29,"text":770,"children":3890},[3891,3892,3893],{"id":3007,"depth":14,"text":3008},{"id":3168,"depth":14,"text":3169},{"id":3222,"depth":14,"text":3223},{"id":3285,"depth":29,"text":776,"children":3895},[3896],{"id":3485,"depth":14,"text":3486},{"id":3582,"depth":29,"text":782},{"id":3692,"depth":29,"text":788,"children":3899},[3900,3901],{"id":3739,"depth":14,"text":3740},{"id":3774,"depth":14,"text":3775},"md",{},"wpzylos-validation",{"title":258,"description":809},"docs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Fusage","xYLFiMPqW-xnuCLjbISZ4pmd3plhjczJDVVz2-8Ns5M",[3909,3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3922,3923,3924,3925,3926,3927,3928,3929,3930,3931,3933,3934,3935,3936,3937,3938,3939,3940,3941,3942,3944,3945,3946,3947,3948,3949,3950,3951,3952,3953,3955,3956,3957,3958,3959,3960,3961,3962,3963,3964,3966,3967,3968,3969,3970,3971,3972,3973,3974,3975,3977,3978,3979,3980,3981,3982,3983,3984,3985,3986,3988,3989,3990,3991,3992,3993,3994,3995,3996,3997,3999,4000,4001,4002,4003,4004,4005,4006,4007,4008,4010,4011,4012,4013,4014,4015,4016,4017,4018,4019,4021,4022,4023,4024,4025,4026,4027,4028,4029,4030,4032,4033,4034,4035,4036,4037,4038,4039,4040,4041,4043,4044,4045,4046,4047,4048,4049,4050,4051,4052,4054,4055,4056,4057,4058,4059,4060,4061,4062,4063,4065,4066,4067,4068,4069,4070,4071,4072,4074,4075,4076,4077,4078,4079,4080,4081,4082,4083,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4096,4097,4098,4099,4100,4101,4102,4103,4104,4105,4107,4108,4109,4110,4111,4112,4113,4114,4115,4116,4118,4119,4120,4121,4122,4123,4124,4125,4126,4127,4129,4130,4131,4132,4133,4134,4135,4136,4137,4138,4139,4140,4142,4143,4144,4145,4146,4147,4148,4149,4150,4151,4152,4153,4154,4156,4157,4158,4159,4160,4161,4162,4163,4164,4165,4167,4168,4169,4170,4171,4172,4173,4174,4175,4176,4177,4178,4179,4180,4181,4182,4183,4184,4185,4187,4188,4189,4190,4191,4192,4193,4194,4195,4196,4198,4199,4200,4201,4202,4203,4204,4205,4206,4207,4208,4209,4210,4211,4212,4213,4214,4219,4223],{"path":10,"title":5,"sectionKey":7,"sectionOrder":6,"itemOrder":6,"packageName":809,"depth":6},{"path":12,"title":13,"sectionKey":7,"sectionOrder":6,"itemOrder":14,"packageName":809,"depth":29},{"path":16,"title":17,"sectionKey":7,"sectionOrder":6,"itemOrder":18,"packageName":809,"depth":29},{"path":20,"title":21,"sectionKey":7,"sectionOrder":6,"itemOrder":22,"packageName":809,"depth":29},{"path":24,"title":25,"sectionKey":7,"sectionOrder":6,"itemOrder":22,"packageName":809,"depth":29},{"path":33,"title":34,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":809,"depth":29},{"path":36,"title":37,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":809,"depth":29},{"path":39,"title":40,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":809,"depth":29},{"path":42,"title":43,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":809,"depth":29},{"path":45,"title":46,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":809,"depth":29},{"path":48,"title":49,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":809,"depth":29},{"path":58,"title":59,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3921,"depth":29},"wpzylos-assets",{"path":61,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3921,"depth":14},{"path":64,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3921,"depth":14},{"path":66,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3921,"depth":14},{"path":68,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3921,"depth":14},{"path":72,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3921,"depth":14},{"path":76,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3921,"depth":14},{"path":80,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3921,"depth":14},{"path":84,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3921,"depth":14},{"path":88,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3921,"depth":14},{"path":93,"title":94,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3932,"depth":29},"wpzylos-cli-core",{"path":96,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3932,"depth":14},{"path":98,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3932,"depth":14},{"path":100,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3932,"depth":14},{"path":102,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3932,"depth":14},{"path":104,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3932,"depth":14},{"path":106,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3932,"depth":14},{"path":108,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3932,"depth":14},{"path":110,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3932,"depth":14},{"path":113,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3932,"depth":14},{"path":116,"title":117,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3943,"depth":29},"wpzylos-cli-devtool",{"path":119,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3943,"depth":14},{"path":121,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3943,"depth":14},{"path":123,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3943,"depth":14},{"path":125,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3943,"depth":14},{"path":127,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3943,"depth":14},{"path":129,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3943,"depth":14},{"path":131,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3943,"depth":14},{"path":133,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3943,"depth":14},{"path":135,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3943,"depth":14},{"path":138,"title":139,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3954,"depth":29},"wpzylos-config",{"path":141,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3954,"depth":14},{"path":143,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3954,"depth":14},{"path":145,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3954,"depth":14},{"path":147,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3954,"depth":14},{"path":149,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3954,"depth":14},{"path":151,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3954,"depth":14},{"path":153,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3954,"depth":14},{"path":155,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3954,"depth":14},{"path":157,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3954,"depth":14},{"path":160,"title":161,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3965,"depth":29},"wpzylos-container",{"path":163,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3965,"depth":14},{"path":165,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3965,"depth":14},{"path":167,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3965,"depth":14},{"path":169,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3965,"depth":14},{"path":171,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3965,"depth":14},{"path":173,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3965,"depth":14},{"path":175,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3965,"depth":14},{"path":177,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3965,"depth":14},{"path":179,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3965,"depth":14},{"path":182,"title":183,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3976,"depth":29},"wpzylos-core",{"path":185,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3976,"depth":14},{"path":187,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3976,"depth":14},{"path":189,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3976,"depth":14},{"path":191,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3976,"depth":14},{"path":193,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3976,"depth":14},{"path":195,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3976,"depth":14},{"path":197,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3976,"depth":14},{"path":199,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3976,"depth":14},{"path":201,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3976,"depth":14},{"path":204,"title":205,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3987,"depth":29},"wpzylos-database",{"path":207,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3987,"depth":14},{"path":209,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3987,"depth":14},{"path":211,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3987,"depth":14},{"path":213,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3987,"depth":14},{"path":215,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3987,"depth":14},{"path":217,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3987,"depth":14},{"path":219,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3987,"depth":14},{"path":221,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3987,"depth":14},{"path":223,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3987,"depth":14},{"path":226,"title":227,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3998,"depth":29},"wpzylos-events",{"path":229,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3998,"depth":14},{"path":231,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3998,"depth":14},{"path":233,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3998,"depth":14},{"path":235,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3998,"depth":14},{"path":237,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3998,"depth":14},{"path":239,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3998,"depth":14},{"path":241,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3998,"depth":14},{"path":243,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3998,"depth":14},{"path":245,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3998,"depth":14},{"path":248,"title":249,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4009,"depth":29},"wpzylos-hooks",{"path":251,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4009,"depth":14},{"path":253,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4009,"depth":14},{"path":255,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":4009,"depth":14},{"path":257,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4009,"depth":14},{"path":260,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4009,"depth":14},{"path":262,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4009,"depth":14},{"path":264,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4009,"depth":14},{"path":266,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":4009,"depth":14},{"path":268,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4009,"depth":14},{"path":271,"title":272,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4020,"depth":29},"wpzylos-http",{"path":274,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4020,"depth":14},{"path":276,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4020,"depth":14},{"path":278,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":4020,"depth":14},{"path":280,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4020,"depth":14},{"path":282,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4020,"depth":14},{"path":284,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4020,"depth":14},{"path":286,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4020,"depth":14},{"path":288,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":4020,"depth":14},{"path":290,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4020,"depth":14},{"path":293,"title":294,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4031,"depth":29},"wpzylos-i18n",{"path":296,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4031,"depth":14},{"path":298,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4031,"depth":14},{"path":300,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":4031,"depth":14},{"path":302,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4031,"depth":14},{"path":304,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4031,"depth":14},{"path":306,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4031,"depth":14},{"path":308,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4031,"depth":14},{"path":310,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":4031,"depth":14},{"path":312,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4031,"depth":14},{"path":315,"title":316,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4042,"depth":29},"wpzylos-logger",{"path":318,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4042,"depth":14},{"path":320,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4042,"depth":14},{"path":322,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":4042,"depth":14},{"path":324,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4042,"depth":14},{"path":326,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4042,"depth":14},{"path":328,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4042,"depth":14},{"path":330,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4042,"depth":14},{"path":332,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":4042,"depth":14},{"path":334,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4042,"depth":14},{"path":337,"title":338,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4053,"depth":29},"wpzylos-mail",{"path":340,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4053,"depth":14},{"path":342,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4053,"depth":14},{"path":344,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":4053,"depth":14},{"path":346,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4053,"depth":14},{"path":348,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4053,"depth":14},{"path":350,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4053,"depth":14},{"path":352,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4053,"depth":14},{"path":354,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":4053,"depth":14},{"path":356,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4053,"depth":14},{"path":359,"title":360,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4064,"depth":29},"wpzylos-mcp",{"path":362,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4064,"depth":14},{"path":364,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4064,"depth":14},{"path":366,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4064,"depth":14},{"path":368,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4064,"depth":14},{"path":370,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4064,"depth":14},{"path":372,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4064,"depth":14},{"path":374,"title":375,"sectionKey":53,"sectionOrder":14,"itemOrder":22,"packageName":4064,"depth":14},{"path":378,"title":379,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4073,"depth":29},"wpzylos-migrations",{"path":381,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4073,"depth":14},{"path":383,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4073,"depth":14},{"path":385,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":4073,"depth":14},{"path":387,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4073,"depth":14},{"path":389,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4073,"depth":14},{"path":391,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4073,"depth":14},{"path":393,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4073,"depth":14},{"path":395,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":4073,"depth":14},{"path":397,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4073,"depth":14},{"path":400,"title":401,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4084,"depth":29},"wpzylos-model",{"path":403,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4084,"depth":14},{"path":405,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4084,"depth":14},{"path":407,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":4084,"depth":14},{"path":409,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4084,"depth":14},{"path":411,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4084,"depth":14},{"path":413,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4084,"depth":14},{"path":415,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4084,"depth":14},{"path":417,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":4084,"depth":14},{"path":419,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4084,"depth":14},{"path":422,"title":423,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4095,"depth":29},"wpzylos-notification",{"path":425,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4095,"depth":14},{"path":427,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4095,"depth":14},{"path":429,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":4095,"depth":14},{"path":431,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4095,"depth":14},{"path":433,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4095,"depth":14},{"path":435,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4095,"depth":14},{"path":437,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4095,"depth":14},{"path":439,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":4095,"depth":14},{"path":441,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4095,"depth":14},{"path":444,"title":445,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4106,"depth":29},"wpzylos-queue",{"path":447,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4106,"depth":14},{"path":449,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4106,"depth":14},{"path":451,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":4106,"depth":14},{"path":453,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4106,"depth":14},{"path":455,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4106,"depth":14},{"path":457,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4106,"depth":14},{"path":459,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4106,"depth":14},{"path":461,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":4106,"depth":14},{"path":463,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4106,"depth":14},{"path":466,"title":467,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4117,"depth":29},"wpzylos-requirements",{"path":469,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4117,"depth":14},{"path":471,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4117,"depth":14},{"path":473,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":4117,"depth":14},{"path":475,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4117,"depth":14},{"path":477,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4117,"depth":14},{"path":479,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4117,"depth":14},{"path":481,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4117,"depth":14},{"path":483,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":4117,"depth":14},{"path":485,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4117,"depth":14},{"path":488,"title":489,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4128,"depth":29},"wpzylos-routing",{"path":491,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4128,"depth":14},{"path":493,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4128,"depth":14},{"path":495,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":4128,"depth":14},{"path":497,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4128,"depth":14},{"path":499,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4128,"depth":14},{"path":501,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4128,"depth":14},{"path":503,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4128,"depth":14},{"path":505,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":4128,"depth":14},{"path":507,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4128,"depth":14},{"path":509,"title":510,"sectionKey":53,"sectionOrder":14,"itemOrder":22,"packageName":4128,"depth":14},{"path":512,"title":513,"sectionKey":53,"sectionOrder":14,"itemOrder":22,"packageName":4128,"depth":14},{"path":516,"title":517,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4141,"depth":29},"wpzylos-scaffold",{"path":519,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4141,"depth":14},{"path":521,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4141,"depth":14},{"path":523,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":4141,"depth":14},{"path":525,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4141,"depth":14},{"path":527,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4141,"depth":14},{"path":529,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4141,"depth":14},{"path":531,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4141,"depth":14},{"path":533,"title":534,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4141,"depth":14},{"path":536,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":4141,"depth":14},{"path":538,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4141,"depth":14},{"path":540,"title":541,"sectionKey":53,"sectionOrder":14,"itemOrder":22,"packageName":4141,"depth":14},{"path":543,"title":544,"sectionKey":53,"sectionOrder":14,"itemOrder":22,"packageName":4141,"depth":14},{"path":547,"title":548,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4155,"depth":29},"wpzylos-scheduler",{"path":550,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4155,"depth":14},{"path":552,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4155,"depth":14},{"path":554,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":4155,"depth":14},{"path":556,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4155,"depth":14},{"path":558,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4155,"depth":14},{"path":560,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4155,"depth":14},{"path":562,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4155,"depth":14},{"path":564,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":4155,"depth":14},{"path":566,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4155,"depth":14},{"path":569,"title":570,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4166,"depth":29},"wpzylos-security",{"path":572,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4166,"depth":14},{"path":574,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4166,"depth":14},{"path":576,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":4166,"depth":14},{"path":578,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4166,"depth":14},{"path":580,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4166,"depth":14},{"path":582,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4166,"depth":14},{"path":584,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4166,"depth":14},{"path":586,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4166,"depth":14},{"path":589,"title":590,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3904,"depth":29},{"path":592,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3904,"depth":14},{"path":594,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3904,"depth":14},{"path":596,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3904,"depth":14},{"path":598,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3904,"depth":14},{"path":600,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3904,"depth":14},{"path":602,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3904,"depth":14},{"path":604,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3904,"depth":14},{"path":606,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3904,"depth":14},{"path":608,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3904,"depth":14},{"path":611,"title":612,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4186,"depth":29},"wpzylos-views",{"path":614,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4186,"depth":14},{"path":616,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4186,"depth":14},{"path":618,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":4186,"depth":14},{"path":620,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4186,"depth":14},{"path":622,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4186,"depth":14},{"path":624,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4186,"depth":14},{"path":626,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4186,"depth":14},{"path":628,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":4186,"depth":14},{"path":630,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4186,"depth":14},{"path":633,"title":634,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":4197,"depth":29},"wpzylos-wp-cli",{"path":636,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":4197,"depth":14},{"path":638,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":4197,"depth":14},{"path":640,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":4197,"depth":14},{"path":642,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":4197,"depth":14},{"path":644,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":4197,"depth":14},{"path":646,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":4197,"depth":14},{"path":648,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":4197,"depth":14},{"path":650,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":4197,"depth":14},{"path":652,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":4197,"depth":14},{"path":658,"title":659,"sectionKey":655,"sectionOrder":18,"itemOrder":6,"packageName":809,"depth":6},{"path":661,"title":544,"sectionKey":655,"sectionOrder":18,"itemOrder":22,"packageName":809,"depth":29},{"path":667,"title":668,"sectionKey":664,"sectionOrder":70,"itemOrder":29,"packageName":809,"depth":29},{"path":674,"title":675,"sectionKey":671,"sectionOrder":74,"itemOrder":29,"packageName":809,"depth":29},{"path":677,"title":678,"sectionKey":671,"sectionOrder":74,"itemOrder":22,"packageName":809,"depth":29},{"path":680,"title":681,"sectionKey":671,"sectionOrder":74,"itemOrder":22,"packageName":809,"depth":29},{"path":688,"title":689,"sectionKey":685,"sectionOrder":78,"itemOrder":29,"packageName":809,"depth":29},{"path":4215,"title":4216,"sectionKey":4217,"sectionOrder":4218,"itemOrder":90,"packageName":809,"depth":6},"\u002Fdocs\u002Flatest\u002Ftroubleshooting","System Troubleshooting","troubleshooting",99,{"path":4220,"title":4221,"sectionKey":4222,"sectionOrder":4218,"itemOrder":22,"packageName":809,"depth":6},"\u002Fdocs\u002Flatest\u002Frelease-checklist","Release Checklist","release-checklist",{"path":4224,"title":4225,"sectionKey":4226,"sectionOrder":4218,"itemOrder":22,"packageName":809,"depth":6},"\u002Fdocs\u002Flatest\u002Frules","WPZylos Framework Rules","rules",1784547699212]