[{"data":1,"prerenderedAt":3813},["ShallowReactive",2],{"docs-nav":3,"doc-latest\u002Fpackages\u002Fwpzylos-routing\u002Fajax":691,"docs-prevnext-flat":3494},[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":510,"body":693,"description":703,"extension":3488,"meta":3489,"navigation":752,"order":22,"package":3490,"path":509,"seo":3491,"stem":3492,"__hash__":3493},"content\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Fajax.md",{"type":694,"value":695,"toc":3438},"minimark",[696,700,704,708,716,720,727,892,896,901,904,937,943,947,950,979,982,996,1000,1003,1051,1055,1059,1066,1100,1104,1107,1149,1153,1156,1207,1211,1215,1222,1303,1307,1310,1383,1387,1390,1482,1486,1490,1747,1751,1903,1907,1911,2110,2114,2352,2356,2557,2561,2565,2595,2599,2627,2631,2660,2664,2668,2761,2765,2769,2868,2872,2916,2920,2924,2927,2931,3009,3013,3085,3089,3267,3271,3275,3380,3384,3434],[697,698,510],"h1",{"id":699},"ajax-routing",[701,702,703],"p",{},"This document covers the WordPress AJAX routing features in detail.",[705,706,62],"h2",{"id":707},"overview",[701,709,710,711,715],{},"The ",[712,713,714],"code",{},"AjaxRouter"," provides a fluent API for registering WordPress AJAX actions with automatic nonce verification and JSON response handling.",[705,717,719],{"id":718},"basic-usage","Basic Usage",[701,721,722,723,726],{},"Create ",[712,724,725],{},"routes\u002Fajax.php"," in your plugin:",[728,729,734],"pre",{"className":730,"code":731,"language":732,"meta":733,"style":733},"language-php shiki shiki-themes github-light github-dark","\u003C?php\n\nuse WPZylos\\Framework\\Routing\\AjaxRouter;\nuse App\\Controllers\\Ajax\\SearchController;\nuse App\\Controllers\\Ajax\\SettingsController;\n\nreturn function (AjaxRouter $ajax) {\n    \u002F\u002F Public action (accessible without login)\n    $ajax->public('search', [SearchController::class, 'handle']);\n\n    \u002F\u002F Private action (requires login)\n    $ajax->private('save_settings', [SettingsController::class, 'save']);\n};\n","php","",[712,735,736,748,754,766,775,784,788,804,810,847,851,857,886],{"__ignoreMap":733},[737,738,740,744],"span",{"class":739,"line":6},"line",[737,741,743],{"class":742},"szBVR","\u003C?",[737,745,747],{"class":746},"sj4cs","php\n",[737,749,750],{"class":739,"line":29},[737,751,753],{"emptyLinePlaceholder":752},true,"\n",[737,755,756,759,762],{"class":739,"line":14},[737,757,758],{"class":742},"use",[737,760,761],{"class":746}," WPZylos\\Framework\\Routing\\AjaxRouter",[737,763,765],{"class":764},"sVt8B",";\n",[737,767,768,770,773],{"class":739,"line":18},[737,769,758],{"class":742},[737,771,772],{"class":746}," App\\Controllers\\Ajax\\SearchController",[737,774,765],{"class":764},[737,776,777,779,782],{"class":739,"line":70},[737,778,758],{"class":742},[737,780,781],{"class":746}," App\\Controllers\\Ajax\\SettingsController",[737,783,765],{"class":764},[737,785,786],{"class":739,"line":74},[737,787,753],{"emptyLinePlaceholder":752},[737,789,790,793,796,799,801],{"class":739,"line":78},[737,791,792],{"class":742},"return",[737,794,795],{"class":742}," function",[737,797,798],{"class":764}," (",[737,800,714],{"class":746},[737,802,803],{"class":764}," $ajax) {\n",[737,805,806],{"class":739,"line":82},[737,807,809],{"class":808},"sJ8bj","    \u002F\u002F Public action (accessible without login)\n",[737,811,812,815,818,822,825,829,832,835,838,841,844],{"class":739,"line":86},[737,813,814],{"class":764},"    $ajax",[737,816,817],{"class":742},"->",[737,819,821],{"class":820},"sScJk","public",[737,823,824],{"class":764},"(",[737,826,828],{"class":827},"sZZnC","'search'",[737,830,831],{"class":764},", [",[737,833,834],{"class":746},"SearchController",[737,836,837],{"class":742},"::class",[737,839,840],{"class":764},", ",[737,842,843],{"class":827},"'handle'",[737,845,846],{"class":764},"]);\n",[737,848,849],{"class":739,"line":90},[737,850,753],{"emptyLinePlaceholder":752},[737,852,854],{"class":739,"line":853},11,[737,855,856],{"class":808},"    \u002F\u002F Private action (requires login)\n",[737,858,860,862,864,867,869,872,874,877,879,881,884],{"class":739,"line":859},12,[737,861,814],{"class":764},[737,863,817],{"class":742},[737,865,866],{"class":820},"private",[737,868,824],{"class":764},[737,870,871],{"class":827},"'save_settings'",[737,873,831],{"class":764},[737,875,876],{"class":746},"SettingsController",[737,878,837],{"class":742},[737,880,840],{"class":764},[737,882,883],{"class":827},"'save'",[737,885,846],{"class":764},[737,887,889],{"class":739,"line":888},13,[737,890,891],{"class":764},"};\n",[705,893,895],{"id":894},"public-vs-private-actions","Public vs Private Actions",[897,898,900],"h3",{"id":899},"private-actions-default","Private Actions (Default)",[701,902,903],{},"Only accessible to logged-in users:",[728,905,907],{"className":730,"code":906,"language":732,"meta":733,"style":733},"$ajax->private('update_profile', [ProfileController::class, 'update']);\n",[712,908,909],{"__ignoreMap":733},[737,910,911,914,916,918,920,923,925,928,930,932,935],{"class":739,"line":6},[737,912,913],{"class":764},"$ajax",[737,915,817],{"class":742},[737,917,866],{"class":820},[737,919,824],{"class":764},[737,921,922],{"class":827},"'update_profile'",[737,924,831],{"class":764},[737,926,927],{"class":746},"ProfileController",[737,929,837],{"class":742},[737,931,840],{"class":764},[737,933,934],{"class":827},"'update'",[737,936,846],{"class":764},[701,938,939,940],{},"Registers: ",[712,941,942],{},"wp_ajax_{prefix}update_profile",[897,944,946],{"id":945},"public-actions","Public Actions",[701,948,949],{},"Accessible to all users (logged in or not):",[728,951,953],{"className":730,"code":952,"language":732,"meta":733,"style":733},"$ajax->public('search', [SearchController::class, 'handle']);\n",[712,954,955],{"__ignoreMap":733},[737,956,957,959,961,963,965,967,969,971,973,975,977],{"class":739,"line":6},[737,958,913],{"class":764},[737,960,817],{"class":742},[737,962,821],{"class":820},[737,964,824],{"class":764},[737,966,828],{"class":827},[737,968,831],{"class":764},[737,970,834],{"class":746},[737,972,837],{"class":742},[737,974,840],{"class":764},[737,976,843],{"class":827},[737,978,846],{"class":764},[701,980,981],{},"Registers both:",[983,984,985,991],"ul",{},[986,987,988],"li",{},[712,989,990],{},"wp_ajax_{prefix}search",[986,992,993],{},[712,994,995],{},"wp_ajax_nopriv_{prefix}search",[705,997,999],{"id":998},"action-names","Action Names",[701,1001,1002],{},"Actions are automatically prefixed with your plugin prefix:",[1004,1005,1006,1019],"table",{},[1007,1008,1009],"thead",{},[1010,1011,1012,1016],"tr",{},[1013,1014,1015],"th",{},"Definition",[1013,1017,1018],{},"WordPress Hook",[1020,1021,1022,1035],"tbody",{},[1010,1023,1024,1030],{},[1025,1026,1027],"td",{},[712,1028,1029],{},"$ajax->private('save')",[1025,1031,1032],{},[712,1033,1034],{},"wp_ajax_myplugin_save",[1010,1036,1037,1042],{},[1025,1038,1039],{},[712,1040,1041],{},"$ajax->public('search')",[1025,1043,1044,1047,1048],{},[712,1045,1046],{},"wp_ajax_myplugin_search"," + ",[712,1049,1050],{},"wp_ajax_nopriv_myplugin_search",[705,1052,1054],{"id":1053},"nonce-verification","Nonce Verification",[897,1056,1058],{"id":1057},"automatic-verification-default","Automatic Verification (Default)",[701,1060,1061,1062,1065],{},"By default, all routes verify the ",[712,1063,1064],{},"_wpnonce"," parameter:",[728,1067,1069],{"className":730,"code":1068,"language":732,"meta":733,"style":733},"$ajax->private('save_settings', [SettingsController::class, 'save']);\n\u002F\u002F Expects: $_REQUEST['_wpnonce'] with action 'myplugin_save_settings'\n",[712,1070,1071,1095],{"__ignoreMap":733},[737,1072,1073,1075,1077,1079,1081,1083,1085,1087,1089,1091,1093],{"class":739,"line":6},[737,1074,913],{"class":764},[737,1076,817],{"class":742},[737,1078,866],{"class":820},[737,1080,824],{"class":764},[737,1082,871],{"class":827},[737,1084,831],{"class":764},[737,1086,876],{"class":746},[737,1088,837],{"class":742},[737,1090,840],{"class":764},[737,1092,883],{"class":827},[737,1094,846],{"class":764},[737,1096,1097],{"class":739,"line":29},[737,1098,1099],{"class":808},"\u002F\u002F Expects: $_REQUEST['_wpnonce'] with action 'myplugin_save_settings'\n",[897,1101,1103],{"id":1102},"disable-verification","Disable Verification",[701,1105,1106],{},"For public endpoints that don't need nonce:",[728,1108,1110],{"className":730,"code":1109,"language":732,"meta":733,"style":733},"$ajax->public('public_search', [SearchController::class, 'search'])\n    ->withoutNonce();\n",[712,1111,1112,1138],{"__ignoreMap":733},[737,1113,1114,1116,1118,1120,1122,1125,1127,1129,1131,1133,1135],{"class":739,"line":6},[737,1115,913],{"class":764},[737,1117,817],{"class":742},[737,1119,821],{"class":820},[737,1121,824],{"class":764},[737,1123,1124],{"class":827},"'public_search'",[737,1126,831],{"class":764},[737,1128,834],{"class":746},[737,1130,837],{"class":742},[737,1132,840],{"class":764},[737,1134,828],{"class":827},[737,1136,1137],{"class":764},"])\n",[737,1139,1140,1143,1146],{"class":739,"line":29},[737,1141,1142],{"class":742},"    ->",[737,1144,1145],{"class":820},"withoutNonce",[737,1147,1148],{"class":764},"();\n",[897,1150,1152],{"id":1151},"custom-nonce-action","Custom Nonce Action",[701,1154,1155],{},"Override the nonce action name:",[728,1157,1159],{"className":730,"code":1158,"language":732,"meta":733,"style":733},"$ajax->private('special_action', [Controller::class, 'handle'])\n    ->nonce('my_custom_action');\n\u002F\u002F Expects nonce with action 'myplugin_my_custom_action'\n",[712,1160,1161,1187,1202],{"__ignoreMap":733},[737,1162,1163,1165,1167,1169,1171,1174,1176,1179,1181,1183,1185],{"class":739,"line":6},[737,1164,913],{"class":764},[737,1166,817],{"class":742},[737,1168,866],{"class":820},[737,1170,824],{"class":764},[737,1172,1173],{"class":827},"'special_action'",[737,1175,831],{"class":764},[737,1177,1178],{"class":746},"Controller",[737,1180,837],{"class":742},[737,1182,840],{"class":764},[737,1184,843],{"class":827},[737,1186,1137],{"class":764},[737,1188,1189,1191,1194,1196,1199],{"class":739,"line":29},[737,1190,1142],{"class":742},[737,1192,1193],{"class":820},"nonce",[737,1195,824],{"class":764},[737,1197,1198],{"class":827},"'my_custom_action'",[737,1200,1201],{"class":764},");\n",[737,1203,1204],{"class":739,"line":14},[737,1205,1206],{"class":808},"\u002F\u002F Expects nonce with action 'myplugin_my_custom_action'\n",[705,1208,1210],{"id":1209},"response-handling","Response Handling",[897,1212,1214],{"id":1213},"automatic-json-response","Automatic JSON Response",[701,1216,1217,1218,1221],{},"Responses are automatically wrapped in ",[712,1219,1220],{},"wp_send_json_success()",":",[728,1223,1225],{"className":730,"code":1224,"language":732,"meta":733,"style":733},"class SearchController\n{\n    public function handle(): array\n    {\n        return ['results' => $this->search()];\n    }\n    \u002F\u002F Outputs: {\"success\": true, \"data\": {\"results\": [...]}}\n}\n",[712,1226,1227,1235,1240,1258,1263,1288,1293,1298],{"__ignoreMap":733},[737,1228,1229,1232],{"class":739,"line":6},[737,1230,1231],{"class":742},"class",[737,1233,1234],{"class":820}," SearchController\n",[737,1236,1237],{"class":739,"line":29},[737,1238,1239],{"class":764},"{\n",[737,1241,1242,1245,1247,1250,1253,1255],{"class":739,"line":14},[737,1243,1244],{"class":742},"    public",[737,1246,795],{"class":742},[737,1248,1249],{"class":820}," handle",[737,1251,1252],{"class":764},"()",[737,1254,1221],{"class":742},[737,1256,1257],{"class":742}," array\n",[737,1259,1260],{"class":739,"line":18},[737,1261,1262],{"class":764},"    {\n",[737,1264,1265,1268,1271,1274,1277,1280,1282,1285],{"class":739,"line":70},[737,1266,1267],{"class":742},"        return",[737,1269,1270],{"class":764}," [",[737,1272,1273],{"class":827},"'results'",[737,1275,1276],{"class":742}," =>",[737,1278,1279],{"class":746}," $this",[737,1281,817],{"class":742},[737,1283,1284],{"class":820},"search",[737,1286,1287],{"class":764},"()];\n",[737,1289,1290],{"class":739,"line":74},[737,1291,1292],{"class":764},"    }\n",[737,1294,1295],{"class":739,"line":78},[737,1296,1297],{"class":808},"    \u002F\u002F Outputs: {\"success\": true, \"data\": {\"results\": [...]}}\n",[737,1299,1300],{"class":739,"line":82},[737,1301,1302],{"class":764},"}\n",[897,1304,1306],{"id":1305},"custom-response-format","Custom Response Format",[701,1308,1309],{},"Return a pre-formatted response:",[728,1311,1313],{"className":730,"code":1312,"language":732,"meta":733,"style":733},"public function handle(): array\n{\n    return [\n        'success' => true,\n        'data' => ['message' => 'Done'],\n    ];\n}\n",[712,1314,1315,1329,1333,1341,1354,1374,1379],{"__ignoreMap":733},[737,1316,1317,1319,1321,1323,1325,1327],{"class":739,"line":6},[737,1318,821],{"class":742},[737,1320,795],{"class":742},[737,1322,1249],{"class":820},[737,1324,1252],{"class":764},[737,1326,1221],{"class":742},[737,1328,1257],{"class":742},[737,1330,1331],{"class":739,"line":29},[737,1332,1239],{"class":764},[737,1334,1335,1338],{"class":739,"line":14},[737,1336,1337],{"class":742},"    return",[737,1339,1340],{"class":764}," [\n",[737,1342,1343,1346,1348,1351],{"class":739,"line":18},[737,1344,1345],{"class":827},"        'success'",[737,1347,1276],{"class":742},[737,1349,1350],{"class":746}," true",[737,1352,1353],{"class":764},",\n",[737,1355,1356,1359,1361,1363,1366,1368,1371],{"class":739,"line":70},[737,1357,1358],{"class":827},"        'data'",[737,1360,1276],{"class":742},[737,1362,1270],{"class":764},[737,1364,1365],{"class":827},"'message'",[737,1367,1276],{"class":742},[737,1369,1370],{"class":827}," 'Done'",[737,1372,1373],{"class":764},"],\n",[737,1375,1376],{"class":739,"line":74},[737,1377,1378],{"class":764},"    ];\n",[737,1380,1381],{"class":739,"line":78},[737,1382,1302],{"class":764},[897,1384,1386],{"id":1385},"error-responses","Error Responses",[701,1388,1389],{},"Throw exceptions for error handling:",[728,1391,1393],{"className":730,"code":1392,"language":732,"meta":733,"style":733},"public function handle(): array\n{\n    if (!$this->validate()) {\n        throw new \\Exception('Validation failed');\n    }\n    return ['status' => 'ok'];\n}\n\u002F\u002F Outputs: {\"success\": false, \"data\": {\"message\": \"Validation failed\"}}\n",[712,1394,1395,1409,1413,1434,1452,1456,1473,1477],{"__ignoreMap":733},[737,1396,1397,1399,1401,1403,1405,1407],{"class":739,"line":6},[737,1398,821],{"class":742},[737,1400,795],{"class":742},[737,1402,1249],{"class":820},[737,1404,1252],{"class":764},[737,1406,1221],{"class":742},[737,1408,1257],{"class":742},[737,1410,1411],{"class":739,"line":29},[737,1412,1239],{"class":764},[737,1414,1415,1418,1420,1423,1426,1428,1431],{"class":739,"line":14},[737,1416,1417],{"class":742},"    if",[737,1419,798],{"class":764},[737,1421,1422],{"class":742},"!",[737,1424,1425],{"class":746},"$this",[737,1427,817],{"class":742},[737,1429,1430],{"class":820},"validate",[737,1432,1433],{"class":764},"()) {\n",[737,1435,1436,1439,1442,1445,1447,1450],{"class":739,"line":18},[737,1437,1438],{"class":742},"        throw",[737,1440,1441],{"class":742}," new",[737,1443,1444],{"class":746}," \\Exception",[737,1446,824],{"class":764},[737,1448,1449],{"class":827},"'Validation failed'",[737,1451,1201],{"class":764},[737,1453,1454],{"class":739,"line":70},[737,1455,1292],{"class":764},[737,1457,1458,1460,1462,1465,1467,1470],{"class":739,"line":74},[737,1459,1337],{"class":742},[737,1461,1270],{"class":764},[737,1463,1464],{"class":827},"'status'",[737,1466,1276],{"class":742},[737,1468,1469],{"class":827}," 'ok'",[737,1471,1472],{"class":764},"];\n",[737,1474,1475],{"class":739,"line":78},[737,1476,1302],{"class":764},[737,1478,1479],{"class":739,"line":82},[737,1480,1481],{"class":808},"\u002F\u002F Outputs: {\"success\": false, \"data\": {\"message\": \"Validation failed\"}}\n",[705,1483,1485],{"id":1484},"controller-implementation","Controller Implementation",[897,1487,1489],{"id":1488},"basic-controller","Basic Controller",[728,1491,1493],{"className":730,"code":1492,"language":732,"meta":733,"style":733},"\u003C?php\n\nnamespace App\\Controllers\\Ajax;\n\nclass SearchController\n{\n    public function handle(): array\n    {\n        \u002F\u002F phpcs:ignore WordPress.Security.NonceVerification.Recommended\n        $query = sanitize_text_field($_POST['query'] ?? '');\n\n        $results = new \\WP_Query([\n            's' => $query,\n            'posts_per_page' => 10,\n        ]);\n\n        return [\n            'results' => array_map(fn($post) => [\n                'id' => $post->ID,\n                'title' => $post->post_title,\n                'url' => get_permalink($post),\n            ], $results->posts),\n            'total' => $results->found_posts,\n        ];\n    }\n}\n",[712,1494,1495,1501,1505,1515,1519,1525,1529,1543,1547,1552,1580,1584,1599,1609,1622,1628,1633,1640,1659,1675,1690,1704,1715,1731,1737,1742],{"__ignoreMap":733},[737,1496,1497,1499],{"class":739,"line":6},[737,1498,743],{"class":742},[737,1500,747],{"class":746},[737,1502,1503],{"class":739,"line":29},[737,1504,753],{"emptyLinePlaceholder":752},[737,1506,1507,1510,1513],{"class":739,"line":14},[737,1508,1509],{"class":742},"namespace",[737,1511,1512],{"class":820}," App\\Controllers\\Ajax",[737,1514,765],{"class":764},[737,1516,1517],{"class":739,"line":18},[737,1518,753],{"emptyLinePlaceholder":752},[737,1520,1521,1523],{"class":739,"line":70},[737,1522,1231],{"class":742},[737,1524,1234],{"class":820},[737,1526,1527],{"class":739,"line":74},[737,1528,1239],{"class":764},[737,1530,1531,1533,1535,1537,1539,1541],{"class":739,"line":78},[737,1532,1244],{"class":742},[737,1534,795],{"class":742},[737,1536,1249],{"class":820},[737,1538,1252],{"class":764},[737,1540,1221],{"class":742},[737,1542,1257],{"class":742},[737,1544,1545],{"class":739,"line":82},[737,1546,1262],{"class":764},[737,1548,1549],{"class":739,"line":86},[737,1550,1551],{"class":808},"        \u002F\u002F phpcs:ignore WordPress.Security.NonceVerification.Recommended\n",[737,1553,1554,1557,1560,1563,1566,1569,1572,1575,1578],{"class":739,"line":90},[737,1555,1556],{"class":764},"        $query ",[737,1558,1559],{"class":742},"=",[737,1561,1562],{"class":820}," sanitize_text_field",[737,1564,1565],{"class":764},"($_POST[",[737,1567,1568],{"class":827},"'query'",[737,1570,1571],{"class":764},"] ",[737,1573,1574],{"class":742},"??",[737,1576,1577],{"class":827}," ''",[737,1579,1201],{"class":764},[737,1581,1582],{"class":739,"line":853},[737,1583,753],{"emptyLinePlaceholder":752},[737,1585,1586,1589,1591,1593,1596],{"class":739,"line":859},[737,1587,1588],{"class":764},"        $results ",[737,1590,1559],{"class":742},[737,1592,1441],{"class":742},[737,1594,1595],{"class":746}," \\WP_Query",[737,1597,1598],{"class":764},"([\n",[737,1600,1601,1604,1606],{"class":739,"line":888},[737,1602,1603],{"class":827},"            's'",[737,1605,1276],{"class":742},[737,1607,1608],{"class":764}," $query,\n",[737,1610,1612,1615,1617,1620],{"class":739,"line":1611},14,[737,1613,1614],{"class":827},"            'posts_per_page'",[737,1616,1276],{"class":742},[737,1618,1619],{"class":746}," 10",[737,1621,1353],{"class":764},[737,1623,1625],{"class":739,"line":1624},15,[737,1626,1627],{"class":764},"        ]);\n",[737,1629,1631],{"class":739,"line":1630},16,[737,1632,753],{"emptyLinePlaceholder":752},[737,1634,1636,1638],{"class":739,"line":1635},17,[737,1637,1267],{"class":742},[737,1639,1340],{"class":764},[737,1641,1643,1646,1648,1651,1653,1656],{"class":739,"line":1642},18,[737,1644,1645],{"class":827},"            'results'",[737,1647,1276],{"class":742},[737,1649,1650],{"class":746}," array_map",[737,1652,824],{"class":764},[737,1654,1655],{"class":742},"fn",[737,1657,1658],{"class":764},"($post) => [\n",[737,1660,1662,1665,1667,1670,1672],{"class":739,"line":1661},19,[737,1663,1664],{"class":827},"                'id'",[737,1666,1276],{"class":742},[737,1668,1669],{"class":764}," $post",[737,1671,817],{"class":742},[737,1673,1674],{"class":764},"ID,\n",[737,1676,1678,1681,1683,1685,1687],{"class":739,"line":1677},20,[737,1679,1680],{"class":827},"                'title'",[737,1682,1276],{"class":742},[737,1684,1669],{"class":764},[737,1686,817],{"class":742},[737,1688,1689],{"class":764},"post_title,\n",[737,1691,1693,1696,1698,1701],{"class":739,"line":1692},21,[737,1694,1695],{"class":827},"                'url'",[737,1697,1276],{"class":742},[737,1699,1700],{"class":820}," get_permalink",[737,1702,1703],{"class":764},"($post),\n",[737,1705,1707,1710,1712],{"class":739,"line":1706},22,[737,1708,1709],{"class":764},"            ], $results",[737,1711,817],{"class":742},[737,1713,1714],{"class":764},"posts),\n",[737,1716,1718,1721,1723,1726,1728],{"class":739,"line":1717},23,[737,1719,1720],{"class":827},"            'total'",[737,1722,1276],{"class":742},[737,1724,1725],{"class":764}," $results",[737,1727,817],{"class":742},[737,1729,1730],{"class":764},"found_posts,\n",[737,1732,1734],{"class":739,"line":1733},24,[737,1735,1736],{"class":764},"        ];\n",[737,1738,1740],{"class":739,"line":1739},25,[737,1741,1292],{"class":764},[737,1743,1745],{"class":739,"line":1744},26,[737,1746,1302],{"class":764},[897,1748,1750],{"id":1749},"with-validation","With Validation",[728,1752,1754],{"className":730,"code":1753,"language":732,"meta":733,"style":733},"class SettingsController\n{\n    public function save(): array\n    {\n        \u002F\u002F Input is already nonce-verified by the router\n\n        \u002F\u002F phpcs:ignore WordPress.Security.NonceVerification.Missing\n        $settings = $_POST['settings'] ?? [];\n\n        if (empty($settings)) {\n            throw new \\InvalidArgumentException('Settings cannot be empty');\n        }\n\n        update_option('my_plugin_settings', $settings);\n\n        return ['message' => 'Settings saved successfully'];\n    }\n}\n",[712,1755,1756,1763,1767,1782,1786,1791,1795,1800,1820,1824,1837,1854,1859,1863,1876,1880,1895,1899],{"__ignoreMap":733},[737,1757,1758,1760],{"class":739,"line":6},[737,1759,1231],{"class":742},[737,1761,1762],{"class":820}," SettingsController\n",[737,1764,1765],{"class":739,"line":29},[737,1766,1239],{"class":764},[737,1768,1769,1771,1773,1776,1778,1780],{"class":739,"line":14},[737,1770,1244],{"class":742},[737,1772,795],{"class":742},[737,1774,1775],{"class":820}," save",[737,1777,1252],{"class":764},[737,1779,1221],{"class":742},[737,1781,1257],{"class":742},[737,1783,1784],{"class":739,"line":18},[737,1785,1262],{"class":764},[737,1787,1788],{"class":739,"line":70},[737,1789,1790],{"class":808},"        \u002F\u002F Input is already nonce-verified by the router\n",[737,1792,1793],{"class":739,"line":74},[737,1794,753],{"emptyLinePlaceholder":752},[737,1796,1797],{"class":739,"line":78},[737,1798,1799],{"class":808},"        \u002F\u002F phpcs:ignore WordPress.Security.NonceVerification.Missing\n",[737,1801,1802,1805,1807,1810,1813,1815,1817],{"class":739,"line":82},[737,1803,1804],{"class":764},"        $settings ",[737,1806,1559],{"class":742},[737,1808,1809],{"class":764}," $_POST[",[737,1811,1812],{"class":827},"'settings'",[737,1814,1571],{"class":764},[737,1816,1574],{"class":742},[737,1818,1819],{"class":764}," [];\n",[737,1821,1822],{"class":739,"line":86},[737,1823,753],{"emptyLinePlaceholder":752},[737,1825,1826,1829,1831,1834],{"class":739,"line":90},[737,1827,1828],{"class":742},"        if",[737,1830,798],{"class":764},[737,1832,1833],{"class":746},"empty",[737,1835,1836],{"class":764},"($settings)) {\n",[737,1838,1839,1842,1844,1847,1849,1852],{"class":739,"line":853},[737,1840,1841],{"class":742},"            throw",[737,1843,1441],{"class":742},[737,1845,1846],{"class":746}," \\InvalidArgumentException",[737,1848,824],{"class":764},[737,1850,1851],{"class":827},"'Settings cannot be empty'",[737,1853,1201],{"class":764},[737,1855,1856],{"class":739,"line":859},[737,1857,1858],{"class":764},"        }\n",[737,1860,1861],{"class":739,"line":888},[737,1862,753],{"emptyLinePlaceholder":752},[737,1864,1865,1868,1870,1873],{"class":739,"line":1611},[737,1866,1867],{"class":820},"        update_option",[737,1869,824],{"class":764},[737,1871,1872],{"class":827},"'my_plugin_settings'",[737,1874,1875],{"class":764},", $settings);\n",[737,1877,1878],{"class":739,"line":1624},[737,1879,753],{"emptyLinePlaceholder":752},[737,1881,1882,1884,1886,1888,1890,1893],{"class":739,"line":1630},[737,1883,1267],{"class":742},[737,1885,1270],{"class":764},[737,1887,1365],{"class":827},[737,1889,1276],{"class":742},[737,1891,1892],{"class":827}," 'Settings saved successfully'",[737,1894,1472],{"class":764},[737,1896,1897],{"class":739,"line":1635},[737,1898,1292],{"class":764},[737,1900,1901],{"class":739,"line":1642},[737,1902,1302],{"class":764},[705,1904,1906],{"id":1905},"frontend-integration","Frontend Integration",[897,1908,1910],{"id":1909},"enqueue-and-localize","Enqueue and Localize",[728,1912,1914],{"className":730,"code":1913,"language":732,"meta":733,"style":733},"add_action('wp_enqueue_scripts', function () use ($ajax) {\n    wp_enqueue_script(\n        'my-plugin-ajax',\n        plugin_dir_url(__FILE__) . 'assets\u002Fajax.js',\n        ['jquery'],\n        '1.0.0',\n        true\n    );\n\n    wp_localize_script('my-plugin-ajax', 'MyPluginAjax', [\n        'url' => admin_url('admin-ajax.php'),\n        'nonce' => $ajax->nonce('search'),\n        'actions' => [\n            'search' => 'myplugin_search',\n            'save' => 'myplugin_save_settings',\n        ],\n    ]);\n});\n",[712,1915,1916,1939,1947,1954,1975,1985,1992,1997,2002,2006,2024,2042,2062,2071,2083,2095,2100,2105],{"__ignoreMap":733},[737,1917,1918,1921,1923,1926,1928,1931,1934,1936],{"class":739,"line":6},[737,1919,1920],{"class":820},"add_action",[737,1922,824],{"class":764},[737,1924,1925],{"class":827},"'wp_enqueue_scripts'",[737,1927,840],{"class":764},[737,1929,1930],{"class":742},"function",[737,1932,1933],{"class":764}," () ",[737,1935,758],{"class":742},[737,1937,1938],{"class":764}," ($ajax) {\n",[737,1940,1941,1944],{"class":739,"line":29},[737,1942,1943],{"class":820},"    wp_enqueue_script",[737,1945,1946],{"class":764},"(\n",[737,1948,1949,1952],{"class":739,"line":14},[737,1950,1951],{"class":827},"        'my-plugin-ajax'",[737,1953,1353],{"class":764},[737,1955,1956,1959,1961,1964,1967,1970,1973],{"class":739,"line":18},[737,1957,1958],{"class":820},"        plugin_dir_url",[737,1960,824],{"class":764},[737,1962,1963],{"class":746},"__FILE__",[737,1965,1966],{"class":764},") ",[737,1968,1969],{"class":742},".",[737,1971,1972],{"class":827}," 'assets\u002Fajax.js'",[737,1974,1353],{"class":764},[737,1976,1977,1980,1983],{"class":739,"line":70},[737,1978,1979],{"class":764},"        [",[737,1981,1982],{"class":827},"'jquery'",[737,1984,1373],{"class":764},[737,1986,1987,1990],{"class":739,"line":74},[737,1988,1989],{"class":827},"        '1.0.0'",[737,1991,1353],{"class":764},[737,1993,1994],{"class":739,"line":78},[737,1995,1996],{"class":746},"        true\n",[737,1998,1999],{"class":739,"line":82},[737,2000,2001],{"class":764},"    );\n",[737,2003,2004],{"class":739,"line":86},[737,2005,753],{"emptyLinePlaceholder":752},[737,2007,2008,2011,2013,2016,2018,2021],{"class":739,"line":90},[737,2009,2010],{"class":820},"    wp_localize_script",[737,2012,824],{"class":764},[737,2014,2015],{"class":827},"'my-plugin-ajax'",[737,2017,840],{"class":764},[737,2019,2020],{"class":827},"'MyPluginAjax'",[737,2022,2023],{"class":764},", [\n",[737,2025,2026,2029,2031,2034,2036,2039],{"class":739,"line":853},[737,2027,2028],{"class":827},"        'url'",[737,2030,1276],{"class":742},[737,2032,2033],{"class":820}," admin_url",[737,2035,824],{"class":764},[737,2037,2038],{"class":827},"'admin-ajax.php'",[737,2040,2041],{"class":764},"),\n",[737,2043,2044,2047,2049,2052,2054,2056,2058,2060],{"class":739,"line":859},[737,2045,2046],{"class":827},"        'nonce'",[737,2048,1276],{"class":742},[737,2050,2051],{"class":764}," $ajax",[737,2053,817],{"class":742},[737,2055,1193],{"class":820},[737,2057,824],{"class":764},[737,2059,828],{"class":827},[737,2061,2041],{"class":764},[737,2063,2064,2067,2069],{"class":739,"line":888},[737,2065,2066],{"class":827},"        'actions'",[737,2068,1276],{"class":742},[737,2070,1340],{"class":764},[737,2072,2073,2076,2078,2081],{"class":739,"line":1611},[737,2074,2075],{"class":827},"            'search'",[737,2077,1276],{"class":742},[737,2079,2080],{"class":827}," 'myplugin_search'",[737,2082,1353],{"class":764},[737,2084,2085,2088,2090,2093],{"class":739,"line":1624},[737,2086,2087],{"class":827},"            'save'",[737,2089,1276],{"class":742},[737,2091,2092],{"class":827}," 'myplugin_save_settings'",[737,2094,1353],{"class":764},[737,2096,2097],{"class":739,"line":1630},[737,2098,2099],{"class":764},"        ],\n",[737,2101,2102],{"class":739,"line":1635},[737,2103,2104],{"class":764},"    ]);\n",[737,2106,2107],{"class":739,"line":1642},[737,2108,2109],{"class":764},"});\n",[897,2111,2113],{"id":2112},"javascript-jquery","JavaScript (jQuery)",[728,2115,2119],{"className":2116,"code":2117,"language":2118,"meta":733,"style":733},"language-javascript shiki shiki-themes github-light github-dark","jQuery(function ($) {\n  $(\"#search-form\").on(\"submit\", function (e) {\n    e.preventDefault();\n\n    $.ajax({\n      url: MyPluginAjax.url,\n      method: \"POST\",\n      data: {\n        action: MyPluginAjax.actions.search,\n        _wpnonce: MyPluginAjax.nonce,\n        query: $(\"#search-input\").val(),\n      },\n      success: function (response) {\n        if (response.success) {\n          displayResults(response.data.results);\n        } else {\n          showError(response.data.message);\n        }\n      },\n      error: function () {\n        showError(\"Request failed\");\n      },\n    });\n  });\n});\n","javascript",[712,2120,2121,2139,2171,2181,2185,2196,2201,2211,2216,2221,2226,2246,2251,2268,2275,2283,2294,2302,2306,2310,2322,2334,2338,2343,2348],{"__ignoreMap":733},[737,2122,2123,2126,2128,2130,2132,2136],{"class":739,"line":6},[737,2124,2125],{"class":820},"jQuery",[737,2127,824],{"class":764},[737,2129,1930],{"class":742},[737,2131,798],{"class":764},[737,2133,2135],{"class":2134},"s4XuR","$",[737,2137,2138],{"class":764},") {\n",[737,2140,2141,2144,2146,2149,2152,2155,2157,2160,2162,2164,2166,2169],{"class":739,"line":29},[737,2142,2143],{"class":820},"  $",[737,2145,824],{"class":764},[737,2147,2148],{"class":827},"\"#search-form\"",[737,2150,2151],{"class":764},").",[737,2153,2154],{"class":820},"on",[737,2156,824],{"class":764},[737,2158,2159],{"class":827},"\"submit\"",[737,2161,840],{"class":764},[737,2163,1930],{"class":742},[737,2165,798],{"class":764},[737,2167,2168],{"class":2134},"e",[737,2170,2138],{"class":764},[737,2172,2173,2176,2179],{"class":739,"line":14},[737,2174,2175],{"class":764},"    e.",[737,2177,2178],{"class":820},"preventDefault",[737,2180,1148],{"class":764},[737,2182,2183],{"class":739,"line":18},[737,2184,753],{"emptyLinePlaceholder":752},[737,2186,2187,2190,2193],{"class":739,"line":70},[737,2188,2189],{"class":764},"    $.",[737,2191,2192],{"class":820},"ajax",[737,2194,2195],{"class":764},"({\n",[737,2197,2198],{"class":739,"line":74},[737,2199,2200],{"class":764},"      url: MyPluginAjax.url,\n",[737,2202,2203,2206,2209],{"class":739,"line":78},[737,2204,2205],{"class":764},"      method: ",[737,2207,2208],{"class":827},"\"POST\"",[737,2210,1353],{"class":764},[737,2212,2213],{"class":739,"line":82},[737,2214,2215],{"class":764},"      data: {\n",[737,2217,2218],{"class":739,"line":86},[737,2219,2220],{"class":764},"        action: MyPluginAjax.actions.search,\n",[737,2222,2223],{"class":739,"line":90},[737,2224,2225],{"class":764},"        _wpnonce: MyPluginAjax.nonce,\n",[737,2227,2228,2231,2233,2235,2238,2240,2243],{"class":739,"line":853},[737,2229,2230],{"class":764},"        query: ",[737,2232,2135],{"class":820},[737,2234,824],{"class":764},[737,2236,2237],{"class":827},"\"#search-input\"",[737,2239,2151],{"class":764},[737,2241,2242],{"class":820},"val",[737,2244,2245],{"class":764},"(),\n",[737,2247,2248],{"class":739,"line":859},[737,2249,2250],{"class":764},"      },\n",[737,2252,2253,2256,2259,2261,2263,2266],{"class":739,"line":888},[737,2254,2255],{"class":820},"      success",[737,2257,2258],{"class":764},": ",[737,2260,1930],{"class":742},[737,2262,798],{"class":764},[737,2264,2265],{"class":2134},"response",[737,2267,2138],{"class":764},[737,2269,2270,2272],{"class":739,"line":1611},[737,2271,1828],{"class":742},[737,2273,2274],{"class":764}," (response.success) {\n",[737,2276,2277,2280],{"class":739,"line":1624},[737,2278,2279],{"class":820},"          displayResults",[737,2281,2282],{"class":764},"(response.data.results);\n",[737,2284,2285,2288,2291],{"class":739,"line":1630},[737,2286,2287],{"class":764},"        } ",[737,2289,2290],{"class":742},"else",[737,2292,2293],{"class":764}," {\n",[737,2295,2296,2299],{"class":739,"line":1635},[737,2297,2298],{"class":820},"          showError",[737,2300,2301],{"class":764},"(response.data.message);\n",[737,2303,2304],{"class":739,"line":1642},[737,2305,1858],{"class":764},[737,2307,2308],{"class":739,"line":1661},[737,2309,2250],{"class":764},[737,2311,2312,2315,2317,2319],{"class":739,"line":1677},[737,2313,2314],{"class":820},"      error",[737,2316,2258],{"class":764},[737,2318,1930],{"class":742},[737,2320,2321],{"class":764}," () {\n",[737,2323,2324,2327,2329,2332],{"class":739,"line":1692},[737,2325,2326],{"class":820},"        showError",[737,2328,824],{"class":764},[737,2330,2331],{"class":827},"\"Request failed\"",[737,2333,1201],{"class":764},[737,2335,2336],{"class":739,"line":1706},[737,2337,2250],{"class":764},[737,2339,2340],{"class":739,"line":1717},[737,2341,2342],{"class":764},"    });\n",[737,2344,2345],{"class":739,"line":1733},[737,2346,2347],{"class":764},"  });\n",[737,2349,2350],{"class":739,"line":1739},[737,2351,2109],{"class":764},[897,2353,2355],{"id":2354},"javascript-fetch-api","JavaScript (Fetch API)",[728,2357,2359],{"className":2116,"code":2358,"language":2118,"meta":733,"style":733},"async function search(query) {\n  const formData = new FormData();\n  formData.append(\"action\", \"myplugin_search\");\n  formData.append(\"_wpnonce\", MyPluginAjax.nonce);\n  formData.append(\"query\", query);\n\n  const response = await fetch(MyPluginAjax.url, {\n    method: \"POST\",\n    body: formData,\n  });\n\n  const data = await response.json();\n\n  if (data.success) {\n    return data.data;\n  } else {\n    throw new Error(data.data.message);\n  }\n}\n",[712,2360,2361,2378,2396,2416,2430,2444,2448,2466,2475,2480,2484,2488,2507,2511,2519,2526,2535,2548,2553],{"__ignoreMap":733},[737,2362,2363,2366,2368,2371,2373,2376],{"class":739,"line":6},[737,2364,2365],{"class":742},"async",[737,2367,795],{"class":742},[737,2369,2370],{"class":820}," search",[737,2372,824],{"class":764},[737,2374,2375],{"class":2134},"query",[737,2377,2138],{"class":764},[737,2379,2380,2383,2386,2389,2391,2394],{"class":739,"line":29},[737,2381,2382],{"class":742},"  const",[737,2384,2385],{"class":746}," formData",[737,2387,2388],{"class":742}," =",[737,2390,1441],{"class":742},[737,2392,2393],{"class":820}," FormData",[737,2395,1148],{"class":764},[737,2397,2398,2401,2404,2406,2409,2411,2414],{"class":739,"line":14},[737,2399,2400],{"class":764},"  formData.",[737,2402,2403],{"class":820},"append",[737,2405,824],{"class":764},[737,2407,2408],{"class":827},"\"action\"",[737,2410,840],{"class":764},[737,2412,2413],{"class":827},"\"myplugin_search\"",[737,2415,1201],{"class":764},[737,2417,2418,2420,2422,2424,2427],{"class":739,"line":18},[737,2419,2400],{"class":764},[737,2421,2403],{"class":820},[737,2423,824],{"class":764},[737,2425,2426],{"class":827},"\"_wpnonce\"",[737,2428,2429],{"class":764},", MyPluginAjax.nonce);\n",[737,2431,2432,2434,2436,2438,2441],{"class":739,"line":70},[737,2433,2400],{"class":764},[737,2435,2403],{"class":820},[737,2437,824],{"class":764},[737,2439,2440],{"class":827},"\"query\"",[737,2442,2443],{"class":764},", query);\n",[737,2445,2446],{"class":739,"line":74},[737,2447,753],{"emptyLinePlaceholder":752},[737,2449,2450,2452,2455,2457,2460,2463],{"class":739,"line":78},[737,2451,2382],{"class":742},[737,2453,2454],{"class":746}," response",[737,2456,2388],{"class":742},[737,2458,2459],{"class":742}," await",[737,2461,2462],{"class":820}," fetch",[737,2464,2465],{"class":764},"(MyPluginAjax.url, {\n",[737,2467,2468,2471,2473],{"class":739,"line":82},[737,2469,2470],{"class":764},"    method: ",[737,2472,2208],{"class":827},[737,2474,1353],{"class":764},[737,2476,2477],{"class":739,"line":86},[737,2478,2479],{"class":764},"    body: formData,\n",[737,2481,2482],{"class":739,"line":90},[737,2483,2347],{"class":764},[737,2485,2486],{"class":739,"line":853},[737,2487,753],{"emptyLinePlaceholder":752},[737,2489,2490,2492,2495,2497,2499,2502,2505],{"class":739,"line":859},[737,2491,2382],{"class":742},[737,2493,2494],{"class":746}," data",[737,2496,2388],{"class":742},[737,2498,2459],{"class":742},[737,2500,2501],{"class":764}," response.",[737,2503,2504],{"class":820},"json",[737,2506,1148],{"class":764},[737,2508,2509],{"class":739,"line":888},[737,2510,753],{"emptyLinePlaceholder":752},[737,2512,2513,2516],{"class":739,"line":1611},[737,2514,2515],{"class":742},"  if",[737,2517,2518],{"class":764}," (data.success) {\n",[737,2520,2521,2523],{"class":739,"line":1624},[737,2522,1337],{"class":742},[737,2524,2525],{"class":764}," data.data;\n",[737,2527,2528,2531,2533],{"class":739,"line":1630},[737,2529,2530],{"class":764},"  } ",[737,2532,2290],{"class":742},[737,2534,2293],{"class":764},[737,2536,2537,2540,2542,2545],{"class":739,"line":1635},[737,2538,2539],{"class":742},"    throw",[737,2541,1441],{"class":742},[737,2543,2544],{"class":820}," Error",[737,2546,2547],{"class":764},"(data.data.message);\n",[737,2549,2550],{"class":739,"line":1642},[737,2551,2552],{"class":764},"  }\n",[737,2554,2555],{"class":739,"line":1661},[737,2556,1302],{"class":764},[705,2558,2560],{"id":2559},"helper-methods","Helper Methods",[897,2562,2564],{"id":2563},"generate-ajax-url","Generate AJAX URL",[728,2566,2568],{"className":730,"code":2567,"language":732,"meta":733,"style":733},"$url = $ajax->url('search');\n\u002F\u002F Returns: https:\u002F\u002Fexample.com\u002Fwp-admin\u002Fadmin-ajax.php?action=myplugin_search\n",[712,2569,2570,2590],{"__ignoreMap":733},[737,2571,2572,2575,2577,2579,2581,2584,2586,2588],{"class":739,"line":6},[737,2573,2574],{"class":764},"$url ",[737,2576,1559],{"class":742},[737,2578,2051],{"class":764},[737,2580,817],{"class":742},[737,2582,2583],{"class":820},"url",[737,2585,824],{"class":764},[737,2587,828],{"class":827},[737,2589,1201],{"class":764},[737,2591,2592],{"class":739,"line":29},[737,2593,2594],{"class":808},"\u002F\u002F Returns: https:\u002F\u002Fexample.com\u002Fwp-admin\u002Fadmin-ajax.php?action=myplugin_search\n",[897,2596,2598],{"id":2597},"generate-nonce-field","Generate Nonce Field",[728,2600,2602],{"className":730,"code":2601,"language":732,"meta":733,"style":733},"echo $ajax->nonceField('save_settings');\n\u002F\u002F Outputs: \u003Cinput type=\"hidden\" name=\"_wpnonce\" value=\"abc123...\" \u002F>\n",[712,2603,2604,2622],{"__ignoreMap":733},[737,2605,2606,2609,2611,2613,2616,2618,2620],{"class":739,"line":6},[737,2607,2608],{"class":746},"echo",[737,2610,2051],{"class":764},[737,2612,817],{"class":742},[737,2614,2615],{"class":820},"nonceField",[737,2617,824],{"class":764},[737,2619,871],{"class":827},[737,2621,1201],{"class":764},[737,2623,2624],{"class":739,"line":29},[737,2625,2626],{"class":808},"\u002F\u002F Outputs: \u003Cinput type=\"hidden\" name=\"_wpnonce\" value=\"abc123...\" \u002F>\n",[897,2628,2630],{"id":2629},"generate-nonce-value","Generate Nonce Value",[728,2632,2634],{"className":730,"code":2633,"language":732,"meta":733,"style":733},"$nonce = $ajax->nonce('save_settings');\n\u002F\u002F Returns: abc123...\n",[712,2635,2636,2655],{"__ignoreMap":733},[737,2637,2638,2641,2643,2645,2647,2649,2651,2653],{"class":739,"line":6},[737,2639,2640],{"class":764},"$nonce ",[737,2642,1559],{"class":742},[737,2644,2051],{"class":764},[737,2646,817],{"class":742},[737,2648,1193],{"class":820},[737,2650,824],{"class":764},[737,2652,871],{"class":827},[737,2654,1201],{"class":764},[737,2656,2657],{"class":739,"line":29},[737,2658,2659],{"class":808},"\u002F\u002F Returns: abc123...\n",[705,2661,2663],{"id":2662},"route-groups","Route Groups",[897,2665,2667],{"id":2666},"middleware-groups","Middleware Groups",[728,2669,2671],{"className":730,"code":2670,"language":732,"meta":733,"style":733},"$ajax->group(['middleware' => [AdminMiddleware::class]], function ($ajax) {\n    $ajax->private('admin_action_1', [AdminController::class, 'action1']);\n    $ajax->private('admin_action_2', [AdminController::class, 'action2']);\n});\n",[712,2672,2673,2704,2731,2757],{"__ignoreMap":733},[737,2674,2675,2677,2679,2682,2685,2688,2690,2692,2695,2697,2700,2702],{"class":739,"line":6},[737,2676,913],{"class":764},[737,2678,817],{"class":742},[737,2680,2681],{"class":820},"group",[737,2683,2684],{"class":764},"([",[737,2686,2687],{"class":827},"'middleware'",[737,2689,1276],{"class":742},[737,2691,1270],{"class":764},[737,2693,2694],{"class":746},"AdminMiddleware",[737,2696,837],{"class":742},[737,2698,2699],{"class":764},"]], ",[737,2701,1930],{"class":742},[737,2703,1938],{"class":764},[737,2705,2706,2708,2710,2712,2714,2717,2719,2722,2724,2726,2729],{"class":739,"line":29},[737,2707,814],{"class":764},[737,2709,817],{"class":742},[737,2711,866],{"class":820},[737,2713,824],{"class":764},[737,2715,2716],{"class":827},"'admin_action_1'",[737,2718,831],{"class":764},[737,2720,2721],{"class":746},"AdminController",[737,2723,837],{"class":742},[737,2725,840],{"class":764},[737,2727,2728],{"class":827},"'action1'",[737,2730,846],{"class":764},[737,2732,2733,2735,2737,2739,2741,2744,2746,2748,2750,2752,2755],{"class":739,"line":14},[737,2734,814],{"class":764},[737,2736,817],{"class":742},[737,2738,866],{"class":820},[737,2740,824],{"class":764},[737,2742,2743],{"class":827},"'admin_action_2'",[737,2745,831],{"class":764},[737,2747,2721],{"class":746},[737,2749,837],{"class":742},[737,2751,840],{"class":764},[737,2753,2754],{"class":827},"'action2'",[737,2756,846],{"class":764},[737,2758,2759],{"class":739,"line":18},[737,2760,2109],{"class":764},[705,2762,2764],{"id":2763},"middleware","Middleware",[897,2766,2768],{"id":2767},"creating-ajax-middleware","Creating AJAX Middleware",[728,2770,2772],{"className":730,"code":2771,"language":732,"meta":733,"style":733},"class AdminMiddleware\n{\n    public function handle($request, callable $next): mixed\n    {\n        if (!current_user_can('manage_options')) {\n            throw new \\Exception('Unauthorized');\n        }\n\n        return $next($request);\n    }\n}\n",[712,2773,2774,2781,2785,2807,2811,2830,2845,2849,2853,2860,2864],{"__ignoreMap":733},[737,2775,2776,2778],{"class":739,"line":6},[737,2777,1231],{"class":742},[737,2779,2780],{"class":820}," AdminMiddleware\n",[737,2782,2783],{"class":739,"line":29},[737,2784,1239],{"class":764},[737,2786,2787,2789,2791,2793,2796,2799,2802,2804],{"class":739,"line":14},[737,2788,1244],{"class":742},[737,2790,795],{"class":742},[737,2792,1249],{"class":820},[737,2794,2795],{"class":764},"($request, ",[737,2797,2798],{"class":742},"callable",[737,2800,2801],{"class":764}," $next)",[737,2803,1221],{"class":742},[737,2805,2806],{"class":742}," mixed\n",[737,2808,2809],{"class":739,"line":18},[737,2810,1262],{"class":764},[737,2812,2813,2815,2817,2819,2822,2824,2827],{"class":739,"line":70},[737,2814,1828],{"class":742},[737,2816,798],{"class":764},[737,2818,1422],{"class":742},[737,2820,2821],{"class":820},"current_user_can",[737,2823,824],{"class":764},[737,2825,2826],{"class":827},"'manage_options'",[737,2828,2829],{"class":764},")) {\n",[737,2831,2832,2834,2836,2838,2840,2843],{"class":739,"line":74},[737,2833,1841],{"class":742},[737,2835,1441],{"class":742},[737,2837,1444],{"class":746},[737,2839,824],{"class":764},[737,2841,2842],{"class":827},"'Unauthorized'",[737,2844,1201],{"class":764},[737,2846,2847],{"class":739,"line":78},[737,2848,1858],{"class":764},[737,2850,2851],{"class":739,"line":82},[737,2852,753],{"emptyLinePlaceholder":752},[737,2854,2855,2857],{"class":739,"line":86},[737,2856,1267],{"class":742},[737,2858,2859],{"class":764}," $next($request);\n",[737,2861,2862],{"class":739,"line":90},[737,2863,1292],{"class":764},[737,2865,2866],{"class":739,"line":853},[737,2867,1302],{"class":764},[897,2869,2871],{"id":2870},"applying-middleware","Applying Middleware",[728,2873,2875],{"className":730,"code":2874,"language":732,"meta":733,"style":733},"$ajax->private('admin_settings', [SettingsController::class, 'save'])\n    ->middleware(AdminMiddleware::class);\n",[712,2876,2877,2902],{"__ignoreMap":733},[737,2878,2879,2881,2883,2885,2887,2890,2892,2894,2896,2898,2900],{"class":739,"line":6},[737,2880,913],{"class":764},[737,2882,817],{"class":742},[737,2884,866],{"class":820},[737,2886,824],{"class":764},[737,2888,2889],{"class":827},"'admin_settings'",[737,2891,831],{"class":764},[737,2893,876],{"class":746},[737,2895,837],{"class":742},[737,2897,840],{"class":764},[737,2899,883],{"class":827},[737,2901,1137],{"class":764},[737,2903,2904,2906,2908,2910,2912,2914],{"class":739,"line":29},[737,2905,1142],{"class":742},[737,2907,2763],{"class":820},[737,2909,824],{"class":764},[737,2911,2694],{"class":746},[737,2913,837],{"class":742},[737,2915,1201],{"class":764},[705,2917,2919],{"id":2918},"security-best-practices","Security Best Practices",[897,2921,2923],{"id":2922},"_1-always-verify-nonces-default","1. Always Verify Nonces (Default)",[701,2925,2926],{},"The router verifies nonces automatically. Only disable for truly public, read-only endpoints.",[897,2928,2930],{"id":2929},"_2-sanitize-input","2. Sanitize Input",[728,2932,2934],{"className":730,"code":2933,"language":732,"meta":733,"style":733},"\u002F\u002F phpcs:ignore WordPress.Security.NonceVerification.Missing\n$email = sanitize_email($_POST['email'] ?? '');\n$title = sanitize_text_field($_POST['title'] ?? '');\n$content = wp_kses_post($_POST['content'] ?? '');\n",[712,2935,2936,2941,2964,2986],{"__ignoreMap":733},[737,2937,2938],{"class":739,"line":6},[737,2939,2940],{"class":808},"\u002F\u002F phpcs:ignore WordPress.Security.NonceVerification.Missing\n",[737,2942,2943,2946,2948,2951,2953,2956,2958,2960,2962],{"class":739,"line":29},[737,2944,2945],{"class":764},"$email ",[737,2947,1559],{"class":742},[737,2949,2950],{"class":820}," sanitize_email",[737,2952,1565],{"class":764},[737,2954,2955],{"class":827},"'email'",[737,2957,1571],{"class":764},[737,2959,1574],{"class":742},[737,2961,1577],{"class":827},[737,2963,1201],{"class":764},[737,2965,2966,2969,2971,2973,2975,2978,2980,2982,2984],{"class":739,"line":14},[737,2967,2968],{"class":764},"$title ",[737,2970,1559],{"class":742},[737,2972,1562],{"class":820},[737,2974,1565],{"class":764},[737,2976,2977],{"class":827},"'title'",[737,2979,1571],{"class":764},[737,2981,1574],{"class":742},[737,2983,1577],{"class":827},[737,2985,1201],{"class":764},[737,2987,2988,2991,2993,2996,2998,3001,3003,3005,3007],{"class":739,"line":18},[737,2989,2990],{"class":764},"$content ",[737,2992,1559],{"class":742},[737,2994,2995],{"class":820}," wp_kses_post",[737,2997,1565],{"class":764},[737,2999,3000],{"class":827},"'content'",[737,3002,1571],{"class":764},[737,3004,1574],{"class":742},[737,3006,1577],{"class":827},[737,3008,1201],{"class":764},[897,3010,3012],{"id":3011},"_3-validate-capabilities","3. Validate Capabilities",[728,3014,3016],{"className":730,"code":3015,"language":732,"meta":733,"style":733},"public function save(): array\n{\n    if (!current_user_can('edit_posts')) {\n        throw new \\Exception('Permission denied');\n    }\n\n    \u002F\u002F ... proceed with save\n}\n",[712,3017,3018,3032,3036,3053,3068,3072,3076,3081],{"__ignoreMap":733},[737,3019,3020,3022,3024,3026,3028,3030],{"class":739,"line":6},[737,3021,821],{"class":742},[737,3023,795],{"class":742},[737,3025,1775],{"class":820},[737,3027,1252],{"class":764},[737,3029,1221],{"class":742},[737,3031,1257],{"class":742},[737,3033,3034],{"class":739,"line":29},[737,3035,1239],{"class":764},[737,3037,3038,3040,3042,3044,3046,3048,3051],{"class":739,"line":14},[737,3039,1417],{"class":742},[737,3041,798],{"class":764},[737,3043,1422],{"class":742},[737,3045,2821],{"class":820},[737,3047,824],{"class":764},[737,3049,3050],{"class":827},"'edit_posts'",[737,3052,2829],{"class":764},[737,3054,3055,3057,3059,3061,3063,3066],{"class":739,"line":18},[737,3056,1438],{"class":742},[737,3058,1441],{"class":742},[737,3060,1444],{"class":746},[737,3062,824],{"class":764},[737,3064,3065],{"class":827},"'Permission denied'",[737,3067,1201],{"class":764},[737,3069,3070],{"class":739,"line":70},[737,3071,1292],{"class":764},[737,3073,3074],{"class":739,"line":74},[737,3075,753],{"emptyLinePlaceholder":752},[737,3077,3078],{"class":739,"line":78},[737,3079,3080],{"class":808},"    \u002F\u002F ... proceed with save\n",[737,3082,3083],{"class":739,"line":82},[737,3084,1302],{"class":764},[897,3086,3088],{"id":3087},"_4-rate-limiting-optional","4. Rate Limiting (Optional)",[728,3090,3092],{"className":730,"code":3091,"language":732,"meta":733,"style":733},"class RateLimitMiddleware\n{\n    public function handle($request, callable $next): mixed\n    {\n        $ip = $_SERVER['REMOTE_ADDR'];\n        $key = 'rate_limit_' . md5($ip);\n\n        $count = get_transient($key) ?: 0;\n\n        if ($count > 100) {\n            throw new \\Exception('Rate limit exceeded');\n        }\n\n        set_transient($key, $count + 1, MINUTE_IN_SECONDS);\n\n        return $next($request);\n    }\n}\n",[712,3093,3094,3101,3105,3123,3127,3142,3161,3165,3186,3190,3205,3220,3224,3228,3249,3253,3259,3263],{"__ignoreMap":733},[737,3095,3096,3098],{"class":739,"line":6},[737,3097,1231],{"class":742},[737,3099,3100],{"class":820}," RateLimitMiddleware\n",[737,3102,3103],{"class":739,"line":29},[737,3104,1239],{"class":764},[737,3106,3107,3109,3111,3113,3115,3117,3119,3121],{"class":739,"line":14},[737,3108,1244],{"class":742},[737,3110,795],{"class":742},[737,3112,1249],{"class":820},[737,3114,2795],{"class":764},[737,3116,2798],{"class":742},[737,3118,2801],{"class":764},[737,3120,1221],{"class":742},[737,3122,2806],{"class":742},[737,3124,3125],{"class":739,"line":18},[737,3126,1262],{"class":764},[737,3128,3129,3132,3134,3137,3140],{"class":739,"line":70},[737,3130,3131],{"class":764},"        $ip ",[737,3133,1559],{"class":742},[737,3135,3136],{"class":764}," $_SERVER[",[737,3138,3139],{"class":827},"'REMOTE_ADDR'",[737,3141,1472],{"class":764},[737,3143,3144,3147,3149,3152,3155,3158],{"class":739,"line":74},[737,3145,3146],{"class":764},"        $key ",[737,3148,1559],{"class":742},[737,3150,3151],{"class":827}," 'rate_limit_'",[737,3153,3154],{"class":742}," .",[737,3156,3157],{"class":746}," md5",[737,3159,3160],{"class":764},"($ip);\n",[737,3162,3163],{"class":739,"line":78},[737,3164,753],{"emptyLinePlaceholder":752},[737,3166,3167,3170,3172,3175,3178,3181,3184],{"class":739,"line":82},[737,3168,3169],{"class":764},"        $count ",[737,3171,1559],{"class":742},[737,3173,3174],{"class":820}," get_transient",[737,3176,3177],{"class":764},"($key) ",[737,3179,3180],{"class":742},"?:",[737,3182,3183],{"class":746}," 0",[737,3185,765],{"class":764},[737,3187,3188],{"class":739,"line":86},[737,3189,753],{"emptyLinePlaceholder":752},[737,3191,3192,3194,3197,3200,3203],{"class":739,"line":90},[737,3193,1828],{"class":742},[737,3195,3196],{"class":764}," ($count ",[737,3198,3199],{"class":742},">",[737,3201,3202],{"class":746}," 100",[737,3204,2138],{"class":764},[737,3206,3207,3209,3211,3213,3215,3218],{"class":739,"line":853},[737,3208,1841],{"class":742},[737,3210,1441],{"class":742},[737,3212,1444],{"class":746},[737,3214,824],{"class":764},[737,3216,3217],{"class":827},"'Rate limit exceeded'",[737,3219,1201],{"class":764},[737,3221,3222],{"class":739,"line":859},[737,3223,1858],{"class":764},[737,3225,3226],{"class":739,"line":888},[737,3227,753],{"emptyLinePlaceholder":752},[737,3229,3230,3233,3236,3239,3242,3244,3247],{"class":739,"line":1611},[737,3231,3232],{"class":820},"        set_transient",[737,3234,3235],{"class":764},"($key, $count ",[737,3237,3238],{"class":742},"+",[737,3240,3241],{"class":746}," 1",[737,3243,840],{"class":764},[737,3245,3246],{"class":746},"MINUTE_IN_SECONDS",[737,3248,1201],{"class":764},[737,3250,3251],{"class":739,"line":1624},[737,3252,753],{"emptyLinePlaceholder":752},[737,3254,3255,3257],{"class":739,"line":1630},[737,3256,1267],{"class":742},[737,3258,2859],{"class":764},[737,3260,3261],{"class":739,"line":1635},[737,3262,1292],{"class":764},[737,3264,3265],{"class":739,"line":1642},[737,3266,1302],{"class":764},[705,3268,3270],{"id":3269},"debugging","Debugging",[897,3272,3274],{"id":3273},"check-registered-actions","Check Registered Actions",[728,3276,3278],{"className":730,"code":3277,"language":732,"meta":733,"style":733},"add_action('init', function () {\n    global $wp_filter;\n\n    foreach ($wp_filter as $hook => $callbacks) {\n        if (str_starts_with($hook, 'wp_ajax_myplugin_')) {\n            error_log(\"Registered AJAX: {$hook}\");\n        }\n    }\n}, 999);\n",[712,3279,3280,3295,3303,3307,3327,3344,3362,3366,3370],{"__ignoreMap":733},[737,3281,3282,3284,3286,3289,3291,3293],{"class":739,"line":6},[737,3283,1920],{"class":820},[737,3285,824],{"class":764},[737,3287,3288],{"class":827},"'init'",[737,3290,840],{"class":764},[737,3292,1930],{"class":742},[737,3294,2321],{"class":764},[737,3296,3297,3300],{"class":739,"line":29},[737,3298,3299],{"class":742},"    global",[737,3301,3302],{"class":764}," $wp_filter;\n",[737,3304,3305],{"class":739,"line":14},[737,3306,753],{"emptyLinePlaceholder":752},[737,3308,3309,3312,3315,3318,3321,3324],{"class":739,"line":18},[737,3310,3311],{"class":742},"    foreach",[737,3313,3314],{"class":764}," ($wp_filter ",[737,3316,3317],{"class":742},"as",[737,3319,3320],{"class":764}," $hook ",[737,3322,3323],{"class":742},"=>",[737,3325,3326],{"class":764}," $callbacks) {\n",[737,3328,3329,3331,3333,3336,3339,3342],{"class":739,"line":70},[737,3330,1828],{"class":742},[737,3332,798],{"class":764},[737,3334,3335],{"class":746},"str_starts_with",[737,3337,3338],{"class":764},"($hook, ",[737,3340,3341],{"class":827},"'wp_ajax_myplugin_'",[737,3343,2829],{"class":764},[737,3345,3346,3349,3351,3354,3357,3360],{"class":739,"line":74},[737,3347,3348],{"class":746},"            error_log",[737,3350,824],{"class":764},[737,3352,3353],{"class":827},"\"Registered AJAX: {",[737,3355,3356],{"class":764},"$hook",[737,3358,3359],{"class":827},"}\"",[737,3361,1201],{"class":764},[737,3363,3364],{"class":739,"line":78},[737,3365,1858],{"class":764},[737,3367,3368],{"class":739,"line":82},[737,3369,1292],{"class":764},[737,3371,3372,3375,3378],{"class":739,"line":86},[737,3373,3374],{"class":764},"}, ",[737,3376,3377],{"class":746},"999",[737,3379,1201],{"class":764},[897,3381,3383],{"id":3382},"test-with-curl","Test with cURL",[728,3385,3389],{"className":3386,"code":3387,"language":3388,"meta":733,"style":733},"language-bash shiki shiki-themes github-light github-dark","curl -X POST https:\u002F\u002Fexample.com\u002Fwp-admin\u002Fadmin-ajax.php \\\n  -d \"action=myplugin_search\" \\\n  -d \"_wpnonce=YOUR_NONCE\" \\\n  -d \"query=test\"\n","bash",[712,3390,3391,3408,3418,3427],{"__ignoreMap":733},[737,3392,3393,3396,3399,3402,3405],{"class":739,"line":6},[737,3394,3395],{"class":820},"curl",[737,3397,3398],{"class":746}," -X",[737,3400,3401],{"class":827}," POST",[737,3403,3404],{"class":827}," https:\u002F\u002Fexample.com\u002Fwp-admin\u002Fadmin-ajax.php",[737,3406,3407],{"class":746}," \\\n",[737,3409,3410,3413,3416],{"class":739,"line":29},[737,3411,3412],{"class":746},"  -d",[737,3414,3415],{"class":827}," \"action=myplugin_search\"",[737,3417,3407],{"class":746},[737,3419,3420,3422,3425],{"class":739,"line":14},[737,3421,3412],{"class":746},[737,3423,3424],{"class":827}," \"_wpnonce=YOUR_NONCE\"",[737,3426,3407],{"class":746},[737,3428,3429,3431],{"class":739,"line":18},[737,3430,3412],{"class":746},[737,3432,3433],{"class":827}," \"query=test\"\n",[3435,3436,3437],"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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);}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":733,"searchDepth":29,"depth":29,"links":3439},[3440,3441,3442,3446,3447,3452,3457,3461,3466,3471,3474,3478,3484],{"id":707,"depth":29,"text":62},{"id":718,"depth":29,"text":719},{"id":894,"depth":29,"text":895,"children":3443},[3444,3445],{"id":899,"depth":14,"text":900},{"id":945,"depth":14,"text":946},{"id":998,"depth":29,"text":999},{"id":1053,"depth":29,"text":1054,"children":3448},[3449,3450,3451],{"id":1057,"depth":14,"text":1058},{"id":1102,"depth":14,"text":1103},{"id":1151,"depth":14,"text":1152},{"id":1209,"depth":29,"text":1210,"children":3453},[3454,3455,3456],{"id":1213,"depth":14,"text":1214},{"id":1305,"depth":14,"text":1306},{"id":1385,"depth":14,"text":1386},{"id":1484,"depth":29,"text":1485,"children":3458},[3459,3460],{"id":1488,"depth":14,"text":1489},{"id":1749,"depth":14,"text":1750},{"id":1905,"depth":29,"text":1906,"children":3462},[3463,3464,3465],{"id":1909,"depth":14,"text":1910},{"id":2112,"depth":14,"text":2113},{"id":2354,"depth":14,"text":2355},{"id":2559,"depth":29,"text":2560,"children":3467},[3468,3469,3470],{"id":2563,"depth":14,"text":2564},{"id":2597,"depth":14,"text":2598},{"id":2629,"depth":14,"text":2630},{"id":2662,"depth":29,"text":2663,"children":3472},[3473],{"id":2666,"depth":14,"text":2667},{"id":2763,"depth":29,"text":2764,"children":3475},[3476,3477],{"id":2767,"depth":14,"text":2768},{"id":2870,"depth":14,"text":2871},{"id":2918,"depth":29,"text":2919,"children":3479},[3480,3481,3482,3483],{"id":2922,"depth":14,"text":2923},{"id":2929,"depth":14,"text":2930},{"id":3011,"depth":14,"text":3012},{"id":3087,"depth":14,"text":3088},{"id":3269,"depth":29,"text":3270,"children":3485},[3486,3487],{"id":3273,"depth":14,"text":3274},{"id":3382,"depth":14,"text":3383},"md",{},"wpzylos-routing",{"title":510,"description":703},"docs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Fajax","yNw0Po6fH2Fn-p6bULOfcH3tnAA6YUCkaAc2kS3ALHI",[3495,3496,3497,3498,3499,3500,3501,3502,3503,3504,3505,3506,3508,3509,3510,3511,3512,3513,3514,3515,3516,3517,3519,3520,3521,3522,3523,3524,3525,3526,3527,3528,3530,3531,3532,3533,3534,3535,3536,3537,3538,3539,3541,3542,3543,3544,3545,3546,3547,3548,3549,3550,3552,3553,3554,3555,3556,3557,3558,3559,3560,3561,3563,3564,3565,3566,3567,3568,3569,3570,3571,3572,3574,3575,3576,3577,3578,3579,3580,3581,3582,3583,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3596,3597,3598,3599,3600,3601,3602,3603,3604,3605,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3618,3619,3620,3621,3622,3623,3624,3625,3626,3627,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,3640,3641,3642,3643,3644,3645,3646,3647,3648,3649,3651,3652,3653,3654,3655,3656,3657,3658,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3671,3672,3673,3674,3675,3676,3677,3678,3679,3680,3682,3683,3684,3685,3686,3687,3688,3689,3690,3691,3693,3694,3695,3696,3697,3698,3699,3700,3701,3702,3704,3705,3706,3707,3708,3709,3710,3711,3712,3713,3714,3715,3716,3717,3718,3719,3720,3721,3722,3723,3724,3725,3727,3728,3729,3730,3731,3732,3733,3734,3735,3736,3737,3738,3739,3741,3742,3743,3744,3745,3746,3747,3748,3749,3750,3752,3753,3754,3755,3756,3757,3758,3759,3760,3762,3763,3764,3765,3766,3767,3768,3769,3770,3771,3773,3774,3775,3776,3777,3778,3779,3780,3781,3782,3784,3785,3786,3787,3788,3789,3790,3791,3792,3793,3794,3795,3796,3797,3798,3799,3800,3805,3809],{"path":10,"title":5,"sectionKey":7,"sectionOrder":6,"itemOrder":6,"packageName":733,"depth":6},{"path":12,"title":13,"sectionKey":7,"sectionOrder":6,"itemOrder":14,"packageName":733,"depth":29},{"path":16,"title":17,"sectionKey":7,"sectionOrder":6,"itemOrder":18,"packageName":733,"depth":29},{"path":20,"title":21,"sectionKey":7,"sectionOrder":6,"itemOrder":22,"packageName":733,"depth":29},{"path":24,"title":25,"sectionKey":7,"sectionOrder":6,"itemOrder":22,"packageName":733,"depth":29},{"path":33,"title":34,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":733,"depth":29},{"path":36,"title":37,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":733,"depth":29},{"path":39,"title":40,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":733,"depth":29},{"path":42,"title":43,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":733,"depth":29},{"path":45,"title":46,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":733,"depth":29},{"path":48,"title":49,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":733,"depth":29},{"path":58,"title":59,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3507,"depth":29},"wpzylos-assets",{"path":61,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3507,"depth":14},{"path":64,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3507,"depth":14},{"path":66,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3507,"depth":14},{"path":68,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3507,"depth":14},{"path":72,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3507,"depth":14},{"path":76,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3507,"depth":14},{"path":80,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3507,"depth":14},{"path":84,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3507,"depth":14},{"path":88,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3507,"depth":14},{"path":93,"title":94,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3518,"depth":29},"wpzylos-cli-core",{"path":96,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3518,"depth":14},{"path":98,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3518,"depth":14},{"path":100,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3518,"depth":14},{"path":102,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3518,"depth":14},{"path":104,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3518,"depth":14},{"path":106,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3518,"depth":14},{"path":108,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3518,"depth":14},{"path":110,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3518,"depth":14},{"path":113,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3518,"depth":14},{"path":116,"title":117,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3529,"depth":29},"wpzylos-cli-devtool",{"path":119,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3529,"depth":14},{"path":121,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3529,"depth":14},{"path":123,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3529,"depth":14},{"path":125,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3529,"depth":14},{"path":127,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3529,"depth":14},{"path":129,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3529,"depth":14},{"path":131,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3529,"depth":14},{"path":133,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3529,"depth":14},{"path":135,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3529,"depth":14},{"path":138,"title":139,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3540,"depth":29},"wpzylos-config",{"path":141,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3540,"depth":14},{"path":143,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3540,"depth":14},{"path":145,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3540,"depth":14},{"path":147,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3540,"depth":14},{"path":149,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3540,"depth":14},{"path":151,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3540,"depth":14},{"path":153,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3540,"depth":14},{"path":155,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3540,"depth":14},{"path":157,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3540,"depth":14},{"path":160,"title":161,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3551,"depth":29},"wpzylos-container",{"path":163,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3551,"depth":14},{"path":165,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3551,"depth":14},{"path":167,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3551,"depth":14},{"path":169,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3551,"depth":14},{"path":171,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3551,"depth":14},{"path":173,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3551,"depth":14},{"path":175,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3551,"depth":14},{"path":177,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3551,"depth":14},{"path":179,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3551,"depth":14},{"path":182,"title":183,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3562,"depth":29},"wpzylos-core",{"path":185,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3562,"depth":14},{"path":187,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3562,"depth":14},{"path":189,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3562,"depth":14},{"path":191,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3562,"depth":14},{"path":193,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3562,"depth":14},{"path":195,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3562,"depth":14},{"path":197,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3562,"depth":14},{"path":199,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3562,"depth":14},{"path":201,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3562,"depth":14},{"path":204,"title":205,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3573,"depth":29},"wpzylos-database",{"path":207,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3573,"depth":14},{"path":209,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3573,"depth":14},{"path":211,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3573,"depth":14},{"path":213,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3573,"depth":14},{"path":215,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3573,"depth":14},{"path":217,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3573,"depth":14},{"path":219,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3573,"depth":14},{"path":221,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3573,"depth":14},{"path":223,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3573,"depth":14},{"path":226,"title":227,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3584,"depth":29},"wpzylos-events",{"path":229,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3584,"depth":14},{"path":231,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3584,"depth":14},{"path":233,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3584,"depth":14},{"path":235,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3584,"depth":14},{"path":237,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3584,"depth":14},{"path":239,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3584,"depth":14},{"path":241,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3584,"depth":14},{"path":243,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3584,"depth":14},{"path":245,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3584,"depth":14},{"path":248,"title":249,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3595,"depth":29},"wpzylos-hooks",{"path":251,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3595,"depth":14},{"path":253,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3595,"depth":14},{"path":255,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3595,"depth":14},{"path":257,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3595,"depth":14},{"path":260,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3595,"depth":14},{"path":262,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3595,"depth":14},{"path":264,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3595,"depth":14},{"path":266,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3595,"depth":14},{"path":268,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3595,"depth":14},{"path":271,"title":272,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3606,"depth":29},"wpzylos-http",{"path":274,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3606,"depth":14},{"path":276,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3606,"depth":14},{"path":278,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3606,"depth":14},{"path":280,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3606,"depth":14},{"path":282,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3606,"depth":14},{"path":284,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3606,"depth":14},{"path":286,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3606,"depth":14},{"path":288,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3606,"depth":14},{"path":290,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3606,"depth":14},{"path":293,"title":294,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3617,"depth":29},"wpzylos-i18n",{"path":296,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3617,"depth":14},{"path":298,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3617,"depth":14},{"path":300,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3617,"depth":14},{"path":302,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3617,"depth":14},{"path":304,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3617,"depth":14},{"path":306,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3617,"depth":14},{"path":308,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3617,"depth":14},{"path":310,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3617,"depth":14},{"path":312,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3617,"depth":14},{"path":315,"title":316,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3628,"depth":29},"wpzylos-logger",{"path":318,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3628,"depth":14},{"path":320,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3628,"depth":14},{"path":322,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3628,"depth":14},{"path":324,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3628,"depth":14},{"path":326,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3628,"depth":14},{"path":328,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3628,"depth":14},{"path":330,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3628,"depth":14},{"path":332,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3628,"depth":14},{"path":334,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3628,"depth":14},{"path":337,"title":338,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3639,"depth":29},"wpzylos-mail",{"path":340,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3639,"depth":14},{"path":342,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3639,"depth":14},{"path":344,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3639,"depth":14},{"path":346,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3639,"depth":14},{"path":348,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3639,"depth":14},{"path":350,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3639,"depth":14},{"path":352,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3639,"depth":14},{"path":354,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3639,"depth":14},{"path":356,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3639,"depth":14},{"path":359,"title":360,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3650,"depth":29},"wpzylos-mcp",{"path":362,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3650,"depth":14},{"path":364,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3650,"depth":14},{"path":366,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3650,"depth":14},{"path":368,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3650,"depth":14},{"path":370,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3650,"depth":14},{"path":372,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3650,"depth":14},{"path":374,"title":375,"sectionKey":53,"sectionOrder":14,"itemOrder":22,"packageName":3650,"depth":14},{"path":378,"title":379,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3659,"depth":29},"wpzylos-migrations",{"path":381,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3659,"depth":14},{"path":383,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3659,"depth":14},{"path":385,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3659,"depth":14},{"path":387,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3659,"depth":14},{"path":389,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3659,"depth":14},{"path":391,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3659,"depth":14},{"path":393,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3659,"depth":14},{"path":395,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3659,"depth":14},{"path":397,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3659,"depth":14},{"path":400,"title":401,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3670,"depth":29},"wpzylos-model",{"path":403,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3670,"depth":14},{"path":405,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3670,"depth":14},{"path":407,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3670,"depth":14},{"path":409,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3670,"depth":14},{"path":411,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3670,"depth":14},{"path":413,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3670,"depth":14},{"path":415,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3670,"depth":14},{"path":417,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3670,"depth":14},{"path":419,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3670,"depth":14},{"path":422,"title":423,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3681,"depth":29},"wpzylos-notification",{"path":425,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3681,"depth":14},{"path":427,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3681,"depth":14},{"path":429,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3681,"depth":14},{"path":431,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3681,"depth":14},{"path":433,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3681,"depth":14},{"path":435,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3681,"depth":14},{"path":437,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3681,"depth":14},{"path":439,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3681,"depth":14},{"path":441,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3681,"depth":14},{"path":444,"title":445,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3692,"depth":29},"wpzylos-queue",{"path":447,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3692,"depth":14},{"path":449,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3692,"depth":14},{"path":451,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3692,"depth":14},{"path":453,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3692,"depth":14},{"path":455,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3692,"depth":14},{"path":457,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3692,"depth":14},{"path":459,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3692,"depth":14},{"path":461,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3692,"depth":14},{"path":463,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3692,"depth":14},{"path":466,"title":467,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3703,"depth":29},"wpzylos-requirements",{"path":469,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3703,"depth":14},{"path":471,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3703,"depth":14},{"path":473,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3703,"depth":14},{"path":475,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3703,"depth":14},{"path":477,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3703,"depth":14},{"path":479,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3703,"depth":14},{"path":481,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3703,"depth":14},{"path":483,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3703,"depth":14},{"path":485,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3703,"depth":14},{"path":488,"title":489,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3490,"depth":29},{"path":491,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3490,"depth":14},{"path":493,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3490,"depth":14},{"path":495,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3490,"depth":14},{"path":497,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3490,"depth":14},{"path":499,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3490,"depth":14},{"path":501,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3490,"depth":14},{"path":503,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3490,"depth":14},{"path":505,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3490,"depth":14},{"path":507,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3490,"depth":14},{"path":509,"title":510,"sectionKey":53,"sectionOrder":14,"itemOrder":22,"packageName":3490,"depth":14},{"path":512,"title":513,"sectionKey":53,"sectionOrder":14,"itemOrder":22,"packageName":3490,"depth":14},{"path":516,"title":517,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3726,"depth":29},"wpzylos-scaffold",{"path":519,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3726,"depth":14},{"path":521,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3726,"depth":14},{"path":523,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3726,"depth":14},{"path":525,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3726,"depth":14},{"path":527,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3726,"depth":14},{"path":529,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3726,"depth":14},{"path":531,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3726,"depth":14},{"path":533,"title":534,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3726,"depth":14},{"path":536,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3726,"depth":14},{"path":538,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3726,"depth":14},{"path":540,"title":541,"sectionKey":53,"sectionOrder":14,"itemOrder":22,"packageName":3726,"depth":14},{"path":543,"title":544,"sectionKey":53,"sectionOrder":14,"itemOrder":22,"packageName":3726,"depth":14},{"path":547,"title":548,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3740,"depth":29},"wpzylos-scheduler",{"path":550,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3740,"depth":14},{"path":552,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3740,"depth":14},{"path":554,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3740,"depth":14},{"path":556,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3740,"depth":14},{"path":558,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3740,"depth":14},{"path":560,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3740,"depth":14},{"path":562,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3740,"depth":14},{"path":564,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3740,"depth":14},{"path":566,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3740,"depth":14},{"path":569,"title":570,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3751,"depth":29},"wpzylos-security",{"path":572,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3751,"depth":14},{"path":574,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3751,"depth":14},{"path":576,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3751,"depth":14},{"path":578,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3751,"depth":14},{"path":580,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3751,"depth":14},{"path":582,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3751,"depth":14},{"path":584,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3751,"depth":14},{"path":586,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3751,"depth":14},{"path":589,"title":590,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3761,"depth":29},"wpzylos-validation",{"path":592,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3761,"depth":14},{"path":594,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3761,"depth":14},{"path":596,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3761,"depth":14},{"path":598,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3761,"depth":14},{"path":600,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3761,"depth":14},{"path":602,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3761,"depth":14},{"path":604,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3761,"depth":14},{"path":606,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3761,"depth":14},{"path":608,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3761,"depth":14},{"path":611,"title":612,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3772,"depth":29},"wpzylos-views",{"path":614,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3772,"depth":14},{"path":616,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3772,"depth":14},{"path":618,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3772,"depth":14},{"path":620,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3772,"depth":14},{"path":622,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3772,"depth":14},{"path":624,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3772,"depth":14},{"path":626,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3772,"depth":14},{"path":628,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3772,"depth":14},{"path":630,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3772,"depth":14},{"path":633,"title":634,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":3783,"depth":29},"wpzylos-wp-cli",{"path":636,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":3783,"depth":14},{"path":638,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":3783,"depth":14},{"path":640,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":3783,"depth":14},{"path":642,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":3783,"depth":14},{"path":644,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":3783,"depth":14},{"path":646,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":3783,"depth":14},{"path":648,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":3783,"depth":14},{"path":650,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":3783,"depth":14},{"path":652,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":3783,"depth":14},{"path":658,"title":659,"sectionKey":655,"sectionOrder":18,"itemOrder":6,"packageName":733,"depth":6},{"path":661,"title":544,"sectionKey":655,"sectionOrder":18,"itemOrder":22,"packageName":733,"depth":29},{"path":667,"title":668,"sectionKey":664,"sectionOrder":70,"itemOrder":29,"packageName":733,"depth":29},{"path":674,"title":675,"sectionKey":671,"sectionOrder":74,"itemOrder":29,"packageName":733,"depth":29},{"path":677,"title":678,"sectionKey":671,"sectionOrder":74,"itemOrder":22,"packageName":733,"depth":29},{"path":680,"title":681,"sectionKey":671,"sectionOrder":74,"itemOrder":22,"packageName":733,"depth":29},{"path":688,"title":689,"sectionKey":685,"sectionOrder":78,"itemOrder":29,"packageName":733,"depth":29},{"path":3801,"title":3802,"sectionKey":3803,"sectionOrder":3804,"itemOrder":90,"packageName":733,"depth":6},"\u002Fdocs\u002Flatest\u002Ftroubleshooting","System Troubleshooting","troubleshooting",99,{"path":3806,"title":3807,"sectionKey":3808,"sectionOrder":3804,"itemOrder":22,"packageName":733,"depth":6},"\u002Fdocs\u002Flatest\u002Frelease-checklist","Release Checklist","release-checklist",{"path":3810,"title":3811,"sectionKey":3812,"sectionOrder":3804,"itemOrder":22,"packageName":733,"depth":6},"\u002Fdocs\u002Flatest\u002Frules","WPZylos Framework Rules","rules",1784547695510]