From 2f91c3e6af3456017c38270c4f6eebeae4b9161d Mon Sep 17 00:00:00 2001 From: marcusquinn <6428977+marcusquinn@users.noreply.github.com> Date: Sat, 3 Oct 2026 03:30:42 +0100 Subject: [PATCH] WP Plugin Starter 1.0.0: a fresh start The parts every wpallstars plugin needs: settings screen with search and an empty General tab, Read Me tab, features as classes, replaced plugins, the shared GitHub updater, release and check scripts, CI and the shared rules. scripts/rename-plugin.sh starts a new plugin; scripts/sync-core.sh keeps plugins' core files in step with this starter. Built with aidevops (https://aidevops.sh). --- .aidevops.json | 14 + .distignore | 47 + .distignore-wporg | 8 + .gitattributes | 15 + .github/ISSUE_TEMPLATE/bug_report.yml | 62 ++ .github/ISSUE_TEMPLATE/config.yml | 5 + .github/ISSUE_TEMPLATE/feature_request.yml | 27 + .github/dependabot.yml | 21 + .github/pull_request_template.md | 19 + .github/workflows/ci.yml | 138 +++ .gitignore | 73 ++ .gitleaks.toml | 13 + .wordpress-org/banner-1544x500.png | Bin 0 -> 649897 bytes .wordpress-org/banner-772x250.png | Bin 0 -> 189173 bytes .wordpress-org/banner.svg | 129 +++ AGENTS.md | 51 + CONTRIBUTING.md | 36 + DEVELOPMENT.md | 206 ++++ LAUNCH.md | 9 + LICENSE | 338 +++++++ README.md | 108 +++ RELEASING.md | 130 +++ SECURITY.md | 37 + STANDARDS.md | 278 ++++++ admin/css/wpstarter-admin.css | 848 +++++++++++++++++ admin/data/readme.php | 30 + admin/images/banner.svg | 434 +++++++++ admin/includes/class-admin-manager.php | 360 +++++++ admin/includes/class-readme-manager.php | 213 +++++ admin/includes/class-replaced-plugins.php | 431 +++++++++ admin/includes/class-settings-manager.php | 449 +++++++++ admin/js/wpstarter-admin.js | 322 +++++++ admin/settings.php | 32 + changelog.txt | 7 + composer.json | 34 + composer.lock | 880 ++++++++++++++++++ includes/class-wpstarter-feature.php | 273 ++++++ includes/class-wpstarter-settings.php | 599 ++++++++++++ includes/class-wpstarter-setup.php | 119 +++ includes/class-wpstarter.php | 122 +++ .../class-wpallstars-github-updater.php | 759 +++++++++++++++ includes/github-updater/load.php | 50 + phpcs.xml.dist | 109 +++ phpstan-baseline.neon | 2 + phpstan-plugin.neon | 22 + phpstan.neon.dist | 36 + readme.txt | 52 ++ scripts/build-banner.sh | 75 ++ scripts/build-release.sh | 195 ++++ scripts/core-files.txt | 55 ++ scripts/lib/plugin.sh | 149 +++ scripts/lint.sh | 134 +++ scripts/phpstan-bootstrap.php | 18 + scripts/plugin-check.sh | 265 ++++++ scripts/preflight-release.sh | 586 ++++++++++++ scripts/preview-site.sh | 382 ++++++++ scripts/rename-plugin.sh | 132 +++ scripts/replaced-plugins.php | 422 +++++++++ scripts/smoke-test.sh | 333 +++++++ scripts/sync-core.sh | 147 +++ uninstall.php | 45 + wp-plugin-starter-template.php | 44 + 62 files changed, 10929 insertions(+) create mode 100644 .aidevops.json create mode 100644 .distignore create mode 100644 .distignore-wporg create mode 100644 .gitattributes create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/dependabot.yml create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/ci.yml create mode 100644 .gitignore create mode 100644 .gitleaks.toml create mode 100644 .wordpress-org/banner-1544x500.png create mode 100644 .wordpress-org/banner-772x250.png create mode 100644 .wordpress-org/banner.svg create mode 100644 AGENTS.md create mode 100644 CONTRIBUTING.md create mode 100644 DEVELOPMENT.md create mode 100644 LAUNCH.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 RELEASING.md create mode 100644 SECURITY.md create mode 100644 STANDARDS.md create mode 100644 admin/css/wpstarter-admin.css create mode 100644 admin/data/readme.php create mode 100644 admin/images/banner.svg create mode 100644 admin/includes/class-admin-manager.php create mode 100644 admin/includes/class-readme-manager.php create mode 100644 admin/includes/class-replaced-plugins.php create mode 100644 admin/includes/class-settings-manager.php create mode 100644 admin/js/wpstarter-admin.js create mode 100644 admin/settings.php create mode 100644 changelog.txt create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 includes/class-wpstarter-feature.php create mode 100644 includes/class-wpstarter-settings.php create mode 100644 includes/class-wpstarter-setup.php create mode 100644 includes/class-wpstarter.php create mode 100644 includes/github-updater/class-wpallstars-github-updater.php create mode 100644 includes/github-updater/load.php create mode 100644 phpcs.xml.dist create mode 100644 phpstan-baseline.neon create mode 100644 phpstan-plugin.neon create mode 100644 phpstan.neon.dist create mode 100644 readme.txt create mode 100755 scripts/build-banner.sh create mode 100755 scripts/build-release.sh create mode 100644 scripts/core-files.txt create mode 100644 scripts/lib/plugin.sh create mode 100755 scripts/lint.sh create mode 100644 scripts/phpstan-bootstrap.php create mode 100755 scripts/plugin-check.sh create mode 100755 scripts/preflight-release.sh create mode 100755 scripts/preview-site.sh create mode 100755 scripts/rename-plugin.sh create mode 100644 scripts/replaced-plugins.php create mode 100755 scripts/smoke-test.sh create mode 100755 scripts/sync-core.sh create mode 100644 uninstall.php create mode 100644 wp-plugin-starter-template.php diff --git a/.aidevops.json b/.aidevops.json new file mode 100644 index 0000000..672c8ab --- /dev/null +++ b/.aidevops.json @@ -0,0 +1,14 @@ +{ + "root_files": { + "allow": [ + "readme.txt", + "changelog.txt", + "STANDARDS.md", + "DEVELOPMENT.md", + "RELEASING.md", + "LAUNCH.md", + "TESTING.md", + "STABILITY.md" + ] + } +} diff --git a/.distignore b/.distignore new file mode 100644 index 0000000..20d85d3 --- /dev/null +++ b/.distignore @@ -0,0 +1,47 @@ +# Files excluded from the release builds (scripts/build-release.sh, wp dist-archive). +# The WordPress.org build also leaves out the files in .distignore-wporg. +.git +.gitattributes +.gitignore +.distignore +.distignore-wporg +# WordPress.org SVN assets (banners) and their source; admin/images/banner.svg ships instead. +.wordpress-org +.woodpecker.yml +# Development tools and CI (composer.json lists development tools only). +.github +.editorconfig +.gitleaks.toml +.aidevops.json +composer.json +composer.lock +phpcs.xml.dist +phpcs.xml +phpstan.neon.dist +phpstan.neon +phpstan-baseline.neon +phpstan-plugin.neon +/dist +.DS_Store +.aider* +# Local AI tooling state (aidevops), never part of the plugin. +.agents +.security-analysis +*.bak +.metadata_never_index +.syncing +AGENTS.md +CONTRIBUTING.md +DEVELOPMENT.md +LAUNCH.md +SECURITY.md +STANDARDS.md +RELEASING.md +ROADMAP.md +STABILITY.md +TESTING.md +/scripts +reference-plugins +project-documents +node_modules +/vendor diff --git a/.distignore-wporg b/.distignore-wporg new file mode 100644 index 0000000..884bc98 --- /dev/null +++ b/.distignore-wporg @@ -0,0 +1,8 @@ +# Files left out of the WordPress.org build, on top of .distignore +# (rsync exclude patterns; a leading / anchors to the plugin folder). +# Plugins hosted on WordPress.org may not install or update code from +# anywhere else, so updates from GitHub stay in GitHub releases only. +# scripts/build-release.sh also removes the Git Updater header lines +# (GitHub Plugin URI, Primary Branch, Release Asset) from wp-plugin-starter-template.php. +/includes/github-updater/ +# Keep README.md: the admin Read Me tab shows it (admin/data/readme.php). diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dababf6 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,15 @@ +# Opt out of AI model training +* ai-training=false + +# Keep development files out of release archives (git archive). +/.distignore export-ignore +/.distignore-wporg export-ignore +/.gitattributes export-ignore +/.gitignore export-ignore +/.woodpecker.yml export-ignore +/DEVELOPMENT.md export-ignore +/RELEASING.md export-ignore +/ROADMAP.md export-ignore +/STABILITY.md export-ignore +/TESTING.md export-ignore +/scripts export-ignore diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..5f7db55 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,62 @@ +name: Bug report +description: Something in WP Plugin Starter does not work as it should. +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Security problems: please do not report them here. See SECURITY.md. + - type: textarea + id: what + attributes: + label: What happened + description: What you saw, and what you expected instead. + validations: + required: true + - type: textarea + id: steps + attributes: + label: Steps to reproduce + description: The feature involved, its settings, and what you clicked. + placeholder: | + 1. Turn on … + 2. Open … + 3. See … + validations: + required: true + - type: input + id: version + attributes: + label: WP Plugin Starter version + description: Shown on the Plugins screen. + validations: + required: true + - type: dropdown + id: source + attributes: + label: Installed from + options: + - GitHub release + - WordPress.org + - Other + validations: + required: true + - type: input + id: environment + attributes: + label: WordPress and PHP versions + description: Tools → Site Health → Info shows both. + placeholder: WordPress 6.8, PHP 8.3 + validations: + required: true + - type: textarea + id: log + attributes: + label: Messages in debug.log + description: Lines from wp-content/debug.log that mention wpstarter, if any. Remove anything private first. + render: text + - type: textarea + id: more + attributes: + label: Anything else + description: Theme, other plugins involved, multisite, screenshots. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..1a528a5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Security problem + url: https://github.com/wpallstars/wp-plugin-starter-template-for-ai-coding/blob/main/SECURITY.md + about: Report security problems privately, never in a public issue. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..c83234b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,27 @@ +name: Feature request +description: Suggest a feature or an improvement. +labels: ["enhancement"] +body: + - type: textarea + id: problem + attributes: + label: The problem + description: What is slow, missing or annoying today, and for whom. + validations: + required: true + - type: textarea + id: idea + attributes: + label: What WP Plugin Starter could do + description: What it would do on its own, without new settings where possible. + validations: + required: true + - type: input + id: replaces + attributes: + label: Plugin it would replace + description: If another plugin does this now, its name and WordPress.org page. + - type: textarea + id: more + attributes: + label: Anything else diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..b6ca0a1 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,21 @@ +# Weekly updates for the pinned GitHub Actions and the Composer development +# tools (composer.json; the plugin itself has no Composer dependencies). +# Each ecosystem's updates come grouped in one pull request. +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + groups: + actions: + patterns: ["*"] + + - package-ecosystem: composer + directory: / + schedule: + interval: weekly + versioning-strategy: lockfile-only + groups: + dev-tools: + patterns: ["*"] diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..1644aca --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,19 @@ +## What and why + + + +## How it was tested + + + +- [ ] `scripts/lint.sh` passes. +- [ ] Tested the changed feature on a WordPress site, with no new messages + mentioning `wpstarter` in `debug.log`. +- [ ] WordPress 6.2 with PHP 7.4, if this uses a core function. +- [ ] Kadence light and dark mode, if this changes front-end styles. + +## Checklist + +- [ ] Changelog lines in `README.md`, `changelog.txt` and `readme.txt`. +- [ ] New options, post meta, transients or cron hooks are removed in `uninstall.php`. +- [ ] New features are off by default. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..c685006 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,138 @@ +# Checks for every pull request and every push to main. Run the same checks +# locally with scripts/lint.sh, scripts/preflight-release.sh, +# scripts/plugin-check.sh and scripts/smoke-test.sh (DEVELOPMENT.md). +# +# Lint runs on every push. The release and smoke-test jobs take longer, so +# draft pull requests skip them until they are marked ready for review. +# Actions are pinned to commit SHAs; Dependabot keeps them up to date. +name: CI + +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + push: + branches: [main] + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ci-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + lint: + name: Lint (PHP 7.4) + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2 + with: + php-version: "7.4" + coverage: none + tools: composer:v2 + + - name: Composer cache folder + id: composer-cache + run: echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT" + + - uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: composer-${{ hashFiles('composer.lock') }} + restore-keys: composer- + + - name: Install development tools + run: composer install --no-interaction --no-progress --prefer-dist + + # PHPStan's result cache: the latest run's is restored, so only files + # changed since then are analysed again. + - uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 + with: + path: .cache/phpstan + key: phpstan-${{ github.run_id }} + restore-keys: phpstan- + + - name: PHP syntax (7.4), JavaScript syntax, ShellCheck, PHPCS, PHPStan + run: scripts/lint.sh php js shell phpcs phpstan + + - name: actionlint + run: docker run --rm -v "$PWD:/repo" --workdir /repo rhysd/actionlint:1.7.12 -color + + release: + name: Release build, preflight and Plugin Check + needs: lint + if: github.event_name != 'pull_request' || !github.event.pull_request.draft + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + fetch-depth: 0 + persist-credentials: false + + - uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2 + with: + php-version: "7.4" + coverage: none + tools: none + + - name: Preflight + run: scripts/preflight-release.sh --offline --no-docker + + - name: Build both zips + run: scripts/build-release.sh --out dist + + - name: Plugin Check + run: | + args=() + for zip in dist/*.zip; do + args+=(--zip "$zip") + done + scripts/plugin-check.sh "${args[@]}" --keep-output dist/plugin-check + + - name: Keep the zips and reports for testing + if: always() + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: ${{ github.event.repository.name }}-build-${{ github.sha }} + path: dist/ + retention-days: 7 + if-no-files-found: ignore + + smoke: + name: Smoke test (WordPress ${{ matrix.wp }}, PHP ${{ matrix.php }}) + needs: lint + if: github.event_name != 'pull_request' || !github.event.pull_request.draft + runs-on: ubuntu-latest + timeout-minutes: 20 + strategy: + fail-fast: false + matrix: + include: + # Minimums (readme.txt, plugin header). + - wp: "6.2" + php: "7.4" + - wp: latest + php: "8.3" + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Smoke test + run: scripts/smoke-test.sh --wp "${{ matrix.wp }}" --php "${{ matrix.php }}" --keep-log debug.log + + - name: Keep debug.log + if: failure() + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: debug-log-wp${{ matrix.wp }}-php${{ matrix.php }} + path: debug.log + retention-days: 7 + if-no-files-found: ignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c1d9568 --- /dev/null +++ b/.gitignore @@ -0,0 +1,73 @@ +# macOS +.DS_Store +.AppleDouble +.LSOverride +Icon +._* +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# Windows +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db +*.stackdump +[Dd]esktop.ini +$RECYCLE.BIN/ +*.cab +*.msi +*.msix +*.msm +*.msp +*.lnk + +# Development & Local Environment +.aider* +.git_status_output.txt +.git_status_temp.txt +project-documents/ +reference-plugins/ +*.bak* +node_modules/ +package-lock.json +.cache/ +vendor/ + +# WordPress specific +*.log +wp-config.php +wp-content/advanced-cache.php +wp-content/backup-db/ +wp-content/backups/ +wp-content/blogs.dir/ +wp-content/cache/ +wp-content/upgrade/ +wp-content/uploads/ + +# IDE & Editors +.vscode/ +.idea/ +*.sublime-project +*.sublime-workspace +*.swp +*.swo + +# Keep .woodpecker.yml if needed for CI/CD +# .woodpecker.yml + +# aidevops runtime state +.agents/loop-state/ + +# Release builds (scripts/build-release.sh) +/dist/ \ No newline at end of file diff --git a/.gitleaks.toml b/.gitleaks.toml new file mode 100644 index 0000000..789ac0c --- /dev/null +++ b/.gitleaks.toml @@ -0,0 +1,13 @@ +# gitleaks: secret scan of the Git history (DEVELOPMENT.md → Secrets in history). +# Keep gitleaks' own rules; list only checked false positives here, each with +# its reason and as narrow as possible. + +[extend] +useDefault = true + +[[allowlists]] +description = "Fluent Forms field keys (el_ and a uniqid()) in starter forms, not secrets" +condition = "AND" +paths = ['''^starters/fluentform\.json$'''] +regexTarget = "line" +regexes = ['''"uniqElKey": "el_[0-9.]+"'''] diff --git a/.wordpress-org/banner-1544x500.png b/.wordpress-org/banner-1544x500.png new file mode 100644 index 0000000000000000000000000000000000000000..6648a28449503f4d39aca27d212a2dfd5bf7600f GIT binary patch literal 649897 zcmZ^JRa9I}w=D#My9Nuv8g~MXyIXJwZUKV31nA%nfyO;(2rj`Lf(Cb&hTv`uG~M_6 zzdP>BJ^y*wwQE$3s#-PITzikIHDf+#DB@yKVj&?R;VLW1X(J(_VIUzP-(sNs({h+s z_V%9_rkj$HClV6gz<(a(Vb>ov|1?r~$s2m^7ZxQa&U3z8}lWn9Fln8<_%Wvaa8z4=bl1RY|0tlfsAsk95nbaq<2!j7f8?r|1H>Hh#V&gh zLzink?a2SBqWu2_ObF>LDGD>BAfFNHb-%qm(;_7A*Xcn|Oz5nGHWl9Yp8-9DV#KKb z|GNA|EmGsA7BEm&pDVO8DQiB z4WvUMJFGtv?2@_gYAxH@?bAnEX6*c!(Enhyg^`c>Z{>d=7mSx0ysV6{(%uHrx#coK z*B=oc4Sgd*2<5C#of^9C&ZL>?0@$Int&p(c4U~p zU~6E~2g~eYFI&6%qO055v-@Z>KvbG%@S)k^9FN5a$DLCqEwo9U9=6b!^6yl^c=-i{mi?>3mv)Lm@nG6m1ZI~dxjgeFlYVh-{}oJt&8dcg=(w`ei~ zXPW$rIkYy!F7&_9<)2ReaE4s!J?c*+zH9#4g`z#qO1>hC<$C6`c9vTxIRNBD?x?47 zWz=N%hVABcqq>Q5G2;L0548UcN+0Ot;MeV}urg(2@GeaO097TKJNI@=T;KjxK4Ye! zh?BeX!vGKdhcU9`W%YU{N&wc=IKS3^cnJglZzL&{_FQkY28qrNAD4VpN;t3%GgHS{ z-V3A!AUm-gbZB_7Jv1+AKplP|fR?>r-0~F^>aKZaiF36nt)S4q|9YD|3|@QCefvK` z=05<*9ZHyP^e@)#+9jD&ln=k~ZJu8&hG7R*I=NhE4ye{<(i|{PF0mPYaiyYpVjR&Y zT`(G39uN8tqEOPy)Bj3r=mp+R%aS17yPLsY^E{GF0ICKUdBEg%r2uW8m)=(aM2C7p z(=TX`d1)`MLkI1#MCeVH+_Cq^En!OuOKbYFDY<_G&+&hO1bTsU8Fq3yLO$aK1NmBQ zFO>8O(D69)Kt~=y%URQO0JKl|&y~-~OR|bZ8gKr9UmwlaG85c=p=rSV)PDVI6oZtM z*BFd3#rW?k*xUa-I-wUB1=P&9M}xgn8dzRE@T1)C=H94?lUSlvapbvQm?t4?KG_`0 zzPRu91hfj_uEIVT;8#E4&{M#_AtLg>#4KWCyUDRo6DPHGiW%)5_A9@!0RG#im%B4| zdt(6wa*mcQkjad*YAGXT)N6~kA5Z+c9`Y4{^`qbWbhFU$ILgR+p+Kr zhb8#xLIdZAz%Xco)h(A~y01&JK+J2?@>1PU7*B}cgn(b2@|F~l+j7BCXhlEV5%X%5 zu8_@NQd&6Wa7F!JHopJxSb(rBzOpc$ug+9?A8(l{;A+k7&e?fDS~0|Z?C>})?X11^ z%paBJCc}75kT}=T89Vnm^O;G=a{1Y(uHsT+f7~zk4IQq5<9=>`d8^Qb|I(h$lcrsR zk%q6+enB@Ff53tVw%ztKLO#75z%U|s^HWT}@4 zPl!HBeg|#SX54V$4tI?icN59|tm&M~GVA%nC^3eJYcjUwSW7)(cytv3rcZ6}Bbr_i zuX#pQ=bvMOXil%#H*7?W#!dwN8xW>jPTZbz1B>B_yY;TF_jehIAe-`oT51GOSFnOj za}zG;?SWf%3#359hU?jG4`I_11!D$|4zW(K8wD67j#v~#`X-0LbmS$);mA1mBvbKI zjFPesLbLX2njZbmabmT51t+4THr!i?6`RxW+>tT^oy;Crrj3?E?_YkvnA8!Q$xzk3 zZh5XNUs6KS#AB*+_Gn3TR>GPT0)AU7+R- zZVspBwxTY6e*;_(gzZZ*T7>)=eopp`JJ|H$b2e0M>e~fr8E6{+X|bhY3A;)X36-XQ z=-+|~AETJ%Jo#>14{gK=#>IQDC>bKy0hj?BJprzPtJhJqxwqPUY#z zZ^2Ykx{zF}Le{UGrqfGQzo+J)%wE&po}-9;!!r2NRZ_Y4$}6*81G&(@9EeYUJ@6jO z+quiJS0qQ)OXlvxh& zouzPgsMoN&lkm3HsA?m)$qUlVE=2F1XAKW|7|P#q7DJd5X@CLY}+hIQb5f ze%|2Uab<5#yK1$qJ?x%|d~#vGcvf7+*W*HJK1s`7?sJd4 zQ8RWtB1Jll2;w|;PYD0rtxr9eJ6n|$lEH|~B5`Vd_|xF;i=j;jENrM0p=x&cx`WR0 z%M2pKXNK&&_)ih;3VaeY%p6Juw@NiPOFSeNZc~;#J=ty{9!c&zPJvUxP7v{)r(1@wnU$ zTrbp<5*$d8>*td!uZKDVzW3joEJ*TX0p6l zr2&u)A)(D&fozad&UkPAiGIt4@ji-r{8$#rb~&kaBzPmJKx-4jJg)qK{zSZrFp&Lv z-nYxXf0V1hZ{0sgrf0b4w6c{ez|xe|;d<;EA)~12faSvN#dEFcU|Tk-oNM$D3-gpu z@T+~|(|D-9nlgS}BOe@oDrAu|5l!WFUOp_jIpkc$Ap2&`o<_;50fD04{T`mIZval< z%&)x3aLEzMI%?;Q=mI0i9m@I28x*>1hWC+94PQ%~f8B`Q!;8^kQxDHehb4DVHyzuS zJZR|kKcX<#ysM7cQw&U-fYoU-_dIos>{m&%8@!>c;Aqj{SIhM3RB)eENIhq;zo5N2 zrkzm1BkQw?Qz?x)h-=ylKPpp3J@d|v;ec_)#H8v?7O4YEscN>3641>^1jCc)o%X`D z3DYXKn*m9{%{5%)<;#{^+jXbJYT^Cp^a(mrKB`GwVxW2o8byJ9nWq98yr+4L-KSJ@ zI8`BWzI-}CX@J;kQzvpMol*T~K$VB^d z+#2}&p2JlmXV(GNGU|f|s|4@?=Vdm20G86n3{ML1t2n{&z8H~_HBD3&jnis`>Pk|L z!B6P#4wd9aXCUeQR6{H~vzsd7EnoL)k}?laY9*MGiv4?MiO{Pow^GgxlG&8AU#o?3 zR&mThDAKSM)cY9>1MDlIQ3<*zsydK>krdjr3A$>KJe=u>lz3kQoGDP5K4C@lj5o{! z2;%Qa9reI7=zI>Bza)Q&mD=+oLId9L8f}>A^nCbe;@qUQ957gfUO;dWdUU2C+{Ld6 zyjRc6m}%|@mG?-Y`KMH_f-?(A&flKbAxL}ngl+6|SXhdXX`%>+TBG(*Em_vQ82~#_ z14eT35d<`;gd5l&xSat{?$6{UuRs~oTKv|7|MXnA-pb{0RSiz9Dl5TFwEwMTOnKx^ zgCIj3eIdVyw!`L3)5vL6vvopsO?xK-Eo51VyNs!=9rMdFXLO6pms|EMj~Kt!n1HDJKwQTk?>Z!ZG&;DLW6QaACpsq1J4v%u*@ z^wBk7<<6&QVASajy16(5!wndgI}Fn1{&AufD0TU)EEo__EK-g}v$=J&Jk<}NnlIB5 zl9+D1*Xmr7Z*E=&vDL2KYP-yp8%$(x3I~D__m>{9Ij7rUNP$p~R&!^P-C@88)JvT0 zQNx|4Cq4Mf1rEjGjSi$h6KAmU0CVMgHeT(nSzpf_w0zBJsNl>OAH_?2w~k?js-Wdw z#rA-k0-*#(7zE4{yvRcezyYLD)zD!cVSA5=dIIbh*%krLtEJJ+@J5ux56O3Z%%Kb3 zF>MG@;g%URQggL4XFND`5NW!6VTRthCB*REZ(>TtyYhB}MMk9B$hd_ku|Da<^yT+% z!kj_BZ7n7JB9rWs4OywJJh=n)1Plo0RP>Tfm@ti^7w!`^FLP-``VboE(^za9KJUJn zaOanXiAHeyCP-=YhhU>C{}2UWX0oy}1M~rwawWof90u`m*lHw0VkDz^>>Q3xJ=#b_ zda7de@f4f}2WEF}PBijFtSvZS&07;u@pDM;{BhGro5L+zu@1mDQH0Dc15%K00?h ztBZx3fZ-t1z3`t<^v!PwZpF}32_JH#`fpR)e^;OCeyYoJU)XZclN>zhR72RdZnFJE zuWFWNnQs~q8|Rq-2_NIb{MXjKLRC)_dYf(Mh>xPUf9TC?a1406C9JXi%Q%g93P272O3lvkh3JWW)0O~ipYpWsOQhzZ2Pk7b=m$58{!9&K7U``^ z6R58e_%1D&>7U}Y`V0c^DNb`c1rWxqr^))2o}2bt3$FF+j@f)OqOdE;WjXRgNhj^~ z9t|G+Hal>yMO3Y-zUyWCPI50v0CnywY(N@XPt6k;YT!S78}Iv$Zb6%9lDgYlP6oeg zJO6^TyR`Sa7{#vSsA{kLodC+yN!w_D3_@I8`Q)_*t#1f@X~I*K$H+*!m#IY6&JYW~ zsVWtVGqb;)d|ywO>yw+pFv zgcQ%o>QhsYsJ;@TKHQ4vdtk4Q*)fBH-9s!rdI?5t_kapifH{Au3aGv)Bzi$vXze1` zAA<~+b9aMPmZ11_Vd&QkC58a??Ppl^!@vVAYrsvK5ABj<+#lsTH-!ssv>IR7G4->p zhr^X>3QeZyg*ZPuK{KqYI=kGy4r=l40of|6Z-7w?>0TB;3tJ-**f#}W9IjVQvkl8l z9Qw#wkSepLCb zm6~9ZSvJRdPhmvHO~Tozcf~X8*Dh0fux!EY9QV@al8!(=6k-&Kl~37EwdPHty=NFc zG|}{kv!nHUWtf^Mhu|ayq^joON1QbKaJvgV==i|u8VKj$mY-duNy_JR|!fp~21OEUXwo#pJON4y# znx0F;^AX*PNn|;O&_c+!@r`7}Bhxlrtm&{5b$GqSELGa``IMe6ni($-f?3^2ijqGS zlv48H_;ceq(@TxKyXJ+<8B}q(0y39J!AOVmi~vGD+yOq+`dM>S1;DOn6nU&IN_NF( zMS9CMVuYwRZ%>AVJPK>4JHBA?sT!m3uuH2T*^V{HZa^~wB1I^Z5`NR*r0r`H#| zk3lMH`xZ|G-s(3yj&B0`)0hPenB7OAZKplqvjm|QvmSW_ry!(VHzSg4y~HU*=3>gh#B-5i zTmJcb7B(Po&Zc5s{}-m4j4qNFv3?7r?xU|ykAdY9_C%dv80}LXSi{)}AC2e93rmzD zLOcEZ?)I~U7J{()6L|P)ilkZGhUxW-kjVYf%_vTu*Og6o^JSP*pc5QGV|56;^Sa1< ztfAA%ckT6cx~|8mhHbDBC`+hAefy4WX`IeG;01RIA0}*;Yyr<-`^lPjR`(08uc1)` zDw0#Jxudjon&ie2QX{l; z^yoH55CyS+1uRWn9a7}Ms15Go(sEa9o-Y5e_&0+qnD8Aa5xCYPjlFr+;5Djv7mPkW-jpYMTZkY51SACl}o8t(yuj^xd&!Ot~GzjI2}gs#$>qQ;_} zKN#T!x*PSMBQgH2=U3V$e$50Yt1=Pna|et&I9iSG^so@T#8r%(5oZ80wp~J5*773m z4C$sLeD3_fV+2Ddzy#vY8HQ&dVQX_HESv+@#19_y5wclcXbm5HNPF?f;a?EbiBmDa zTdib?YsNk?~{q-_Y zZhuWL2Yj(otsg%KeZWQ1n>{i;8fZ-k%OP6TPcQmy+xaRe^1Sx4bKq4cdk49dm2uHk zz3Rk%PY&orMtZ_FOYL!rFLqKsa}ZjNwEG3gXW@gPn!uc#Jf=alGm^#ijtkjk`(Esj z?Ckd@sa6oRY~RMEVsUw$k~xQ!dW#n7O5^ii4es6P8ihmcPca5%9%B|K7fCzuc7yD! z&bpbFgc3U=?(^eLxN?-v?gSFfmbesW7(3pTbxd>=Zy*&oH2qKtn1$Ji(zfSHmk9%m zw8`h=#{t?-);t|Bc6#|XZA2qezo+uBrBP6c=6LFz926U7)bat13b0*+0?!Hl7RUpa zaW8l4b@q!x?e zs_yb|$3>OT)jO6wIVN=`F4vk@5U64#&o1u?O}T8(4PL7YMZT!Ip=Oz1=MDGM2xq4) zTY%zIB5VzMFh5F%zqUzcjyb(sRVqrb4TNXqG)ZSLQEWc8B!T3!P0wvJ7zOFv)$xXw6~~nKiwS&_#X~USAxXA0ulFE0 z*Dwn8#OB|>)@tRV`jbrXwrew+ph1zT)AW6T-k`4i`3*1nWQfp?Im5~;LlvVM( zO3$v1J}AiGS+S`Ay(TuhEAJ0}(f*S?lZbc!RVKrwkSls3`K;KaTs_g`u7Ovno-XK% zF%Ly?+j~i_fbMx;awwLD3DQaB)1H~Y{K;6c*StgJNad9|aInuYn)9zs=+y&uDkzq zZSLL0+k>e)lQnrsG8zLQYRSez013^*1onfE?;db++=*L9@~Sb2);cD~wc z?;hNMT<;TCsOoXIaiwv~8^PHVhwpw38tLBpP>zh17kMbJqIYpkHJ z1GaVdPCg2>3)m{(sm^nMlv*3K)mXUl&FTu&mS=MB=~Xfn71qz&zR8%gy^=QFJWJdD(atJ9MAO8l!eQ9DY`sqHWi&uPIL z|7mv$mT=!;KrgxMa~_FPt*$+jz*${1JZbpcWxObfF9uHXL=BBnvnBM?5KXr1rR}U~ zcg@N;Z&1#~etoP-dlS{AkrS5ZH2ychxbyAcflD#F!;ufhi!yZxK!&)_2<<6}DWgy) z+J#yel^AcFDvs7`6jFHw($+tsX$ZB;5WoHP*4&CdWFKj_pj(8V*pE5s(A^KGXqW3Y} zr*$W(JOIj5DM@~0WbylY3fe@30aA6YsKtI_u7Py0Sj)OVeCjNasn7^iu2Wm08g}Rv zyq|mADLbp2L51}NT9PD~YI~M-brFB8Hm7hv4pr2vDyELS|J59Ee%&#DNspM%g*(c& z;$G#z9uE2@6%Ob-@=3F4y^fd!UXGO-WJ%9*o&LUAvakQ0cj&$^!2iX+WRNFfTgs1MbD@#AS`N3ifZb;Ay*bjUOR>#p>{i za~Hd~mCRGg_fL$f#$l|Q$q0q7NyCz}yY2A}LDWv}6bS0-%;cJB5AkslVidA(G{~D(zvV{06&LDK~x`vMur68$?2{sAeUmBH;uQX z;la2uaW9G+=qSCAf|T&1xihBmG~I01e@-?q=p?j!o;6L#TBI;wywIj z#R$+Q+jyVf=gJ=NX%yveL<{p+;zC^Nu(N(XZGJxBGnprd& z@Gc9K2`ZLhil~5{`6ytpuEDZ(JSdP4=PCtSvu=YZm*NO?UD zLzzdx7mV!E{Ea|3W*lBR@!KKJ_T#1lnEEkaCE>+Ov``K0P83{{OG$%)lJqL?mFiYQ z&70zIuF|TQwSM*{Sw<>s=?%2$0Jywe;N0mSlK8GZiH7Rjih zYYdCAA0@9XUp`W!`W31=%-^nF+1tt+7jo!y4@GUlE3!GoQ+%nTT95Kbe}Hb&#m-uQ zEkAO=&&5MrH9nbc8obqdUjKi1S*SKbM-j zLP}~mpD`ARc*L3gooH3x6QAgew~Tf!1kM=U0$q~QmMr`#z}F9MXZ{rl@xCxa<%WuL z_SH1My_4(OyRNkr-)1s@6v^sGp?0@ow8!l}h2frI#T*+yNsKiBLgsqvj%Ia4gm`8( zKdadZga;*m`?0j#8*MBR5e{iVb{3|X@8cp7Kf7(9g#X-%x6-&x*>kv@MCquu&SFhc z36O1WtE~FfnsGgK#@J;g8dP!+39AB|TnNIC8dkTW0z?y|cYPhE_`+ou)9Blc&O2EI zT^pA2@;BhVFTnTrX)qmHp*vh1kj{{#=jGa!=JZ*~fRiIWZ1{p1Qjm}Deh87IL?}Th zGK6j&Y+-Z3Nw|9~)kj+iAQ4=J>?X8JgM&{9Wx?RzP`d$F{N4Nhde0^93@2C z41idMdQYDvefkv_+9>&3rcv;Hmp7wtJnbkicD1**J3yVA`u*3C*)UkK*+yH5d<~iF z2@SRviFEupqohLEQu%>%t6ARFTp zEb^v3*OM+#!V^!Y4`fj?zqy)J(NY=Q|E^I*?Fm!gKepwc+tP5F6AA1VYhmS-t78~( zSi5m1Jd@yS?r(RQrfky68k8tU;oKmP?RJ5r)H+dpvI8zc-_x8&#sQ|KU%5+5Ou@-@ z)p^KPj!_}8KR${yO&HXyW#=O041}Ol$Vgx^FJSQ_I_3>VxN~mrn7UQ_in{HWegR(T z!%LR}Fkc>Ren(&uvMIW7YwoqLU)3~yHV%9k+i%ixx0Cdt>Rpsca#i%vo+OPEUkzF_B;IYR1c2+=}I}9`aAPqObDf;rC*_1jhF7UeZ;-0ir1(xljjdK6IG`)IF$+l{pcpI z68{RcEpr!8@K1uj+xF>ABTllX2l1IEY>p)@k0#~bypMj8Hr%HRFKgaukGGK&bjx1{t;7gP5&oKh)xH;RDkUFBWj z-yUp0(J$oT&cj!bD@`&Z$jG^j0zED!wO4IRhVy{_%JgClHe&WF>C_SelxCzx02_uO zV?SGDumf8kk3FwQubg4zl`SYQIjaGf0QBoX_-DHT2lm}b+MC6IFBMw@FqwSi6Y_N| z>K{^|Gz$2~Om`11vXr5=HaWqR$^et!0Z}@nc(p8-pQ5UuMso^y3{USAvL42$hI!v< zj99WJ3~_A%6_{y0tZW82l$PjljHUq67Me#Abj{Eab4Mlshd+#5M6JD4%29+59o@%b zfJ!%<*EYyv5yZySLcp{?NtQ_PUTi!}A*|!fL97v%NujiIpUe!4EV@KZ0zzu$)cRi9 zCwV;ZZ&Z~7=Q}%}ZYh*^NUY7-d^TRgp|$zuu!m7LZlpj~QPlPORFBqzZTGbDq=o07 z7NBrW6IA#>p{vPT9ARI0t=>UHE;N{x=Te*0w?=l=gOokd?&F1OK}{_;_rRRFGCpur zK2Ur6#3OJ2+(~$7rbYhcn3#0Zd2fJF#?kI8ttBHM;IZb_AqqfF_xjpqB5bkX zJYQFc{uI}=Bh6uCcd3Km{uaW45@cGn75UQhPo7-Sb`3Sy--tXB_clQKCKHFef2#z# zqeW)3{RwtaXu7OOttIygDd6zen&)~SK_LJ4PNAbgCSGK6K?&xd3^_=VTc-{Ju#B4= z8g(_*Uy$4lzTYgjS=tzqJUkaLJl@#K6X1`LN2_~JhsCA%{UfY8nwR*L&PL?v8~YK! zjM+xEb1N>7xoJQveVy~sccl+H+{w+Drv{IMGX1tkf)Z$JCd7@zpIp_V?avM0VXFAY z>MP#$32~M6WVi`>rPyj*7zgxs!1Ax@)jm_?MRHsIbRAjC@nFMliVH-4tFi9`?;d~t z2_r@%tiDlrlsf1wg)D4(vlxHOwfiz^wTL^}xU+a&h#o1{nTpW&=hg&fj{}6+FHCOH zpY9E2Gdg9iB?ZlV&|-39B$0nNayZ#)uZV9j;@9pS%HByvI^UpWfZ!Z5Vfa*J2w@`%d^UnI`3n=_d zOb%+`p*=Pu9+a#~*R9qr2ix*n8nb{Z-+?wbPq230<|*KVd!SCVnQ*V@$d(OB*=Z$gyoWCvyv|Vdt-i zJ|w3(vONEgFgj#hbE4`N^LY2m>*49zT84}8SElwAW?1JSl!#FJqq|~ejVVf7=Q5|o zw6=_0U9rO>ssnw*ndY>WdZ3#x3%yl#dDx)4TDnf2US!PuCUuvtOSxml^N4(qDUjZk zSf{EVaHJQbcT{O&`q;~%Y14e2fgS$(sA=B0`7(o+j2We3`syZ;>U8VH`pRkN%c%2s zj4RJqN&StM@uQc4{r&cE0}{w&dM_Sdwac*l8dF6ISji0STn*z1nwTK~vf=1J4o^Ub zm(sHDdF8MBV^)UrbVHPSt*b^BfpOxu8D|C4$9Dwn?9uqa721^Qn`A~FfuZGr9DnQ) zSBV?i>3CanP;`$dcbV|=kWY{1uNYC_-Ni_cT^ePY7zLkGr-Eo8+~JZcD#rQEY|G}` zMeUw^p_yh#9fITG-!uz{@Fu=FNUlcD4jZyWxrjB5UJ9^IW{5u4R>}IV>yS8~HibAJ z@8WO1U#X(``YnF+v*Nn1G%$p^Msel9@bLC088Iq{4KH6Q;RG`+Q0GnEd^*<;;RQP4 zT4Fkyd=Oir`|DfjbX@l?cby%W=zdVZ1P>u~{&?Dl zDt4nY8^gG|Z$49kVdKM+vYQ4a8RQOID}OPHacZB6?7x)nW7D9(auPvJ#4SKnv82bS zI>YT+HJwS%`j#*?l05miQYS<4=wi!QU&*n-pLP?0O;0V>Ww2epK4BvERAoR~7nmXF zYuQapjwE%6hi#6c|JPzYMuUdudYa5|7CXLyoqON1*g|@>A!=Rrj3E)YpYQLfv zCw58-q67;YI;pW(O_H`;j% zETl_=>?7}eEVKUj&&R8dyb=E6@oGYh^SGSPa0q?lk7woY0t0IqJ2A8l($;GBA%7{n z3^v39AWCNfs3BM$oC$&+4iL)Ac|GlJCIP!xxY$T{5u|u9@2aHeKxN<|1dcQjQ^iiL zkV#!<*frT6&0oKSbw^5@vHO(%D#Gx~nrF+`B~p(wXJ%Mv;wN_-t?5ka0n5*f=d(U$ z*ONFgj~I2YeKNUAA|P*xVjvRlj4TB94kD=|OrlGozMaTQ5b`U%vl(#YHzIx|g_h!A zpA&tw+csl^M8Nh}Aw$Rfy--tC71!J+tFjXp)G5a$ruzZk>J5Mu+h39Tk73>6`k$z% z=Y;Fuh#+T$b4AV>G~$Qqh$bp|N|-wo+gp0ks1(A0{F_A=*3aa4CTt7N#BoN;gqy3z>W@0Rd4`AI;v`HM+cLG;R9&of@d$oUChO3!bB_*&FWs~ukRz0JEQH3-ieCUbHhH$!@#3w zyT}^f{gp_dhAyfF7f5yKnjE`Q*R{U=v3nFz2$@Nh&A)cySBd|eQR@=*u0Vw8^O0e> z2JLWi`Y9L4jo;~d%jsg#Fd%Z1LR^t-+#`M$7(f0z0&|FTe<>UmB(V06s%r8fp%%>+ ziQ<1lHy{`cc~sWgq{tGo@bN3~Q+zqMIl+Eu>v@}vWxB&BjDLVl=`Fg42!AOca0((l zNyY22MPeR>)Ggp<&A{=W1O%)9QE8 zK1H*13w1{|#(O_zh)*zrx%bUaz8oy*19tAU;a~i9FSuzC?=);OKsAOxalHLl;njbp zrK>xmCQ0wt{zUbHXF~+zK{M#hUAeBi3se%_vCn?60l~&*W%2$xJ#oLv(BfC&u>`!# z*!{Jkl9Ps9`#F12Kna{$F@1~&R5=QfpUUn2N&Nuf{8DqKM@glek&0HOZ;b z-Ug%j=ycc<59a0ZxjC%^C%-0Y?dtjULOv>*?P0ky!BmxeK>ODDzMge2U0?}?#D{M| znEnP!b24~oy?Gs>BU4^8UO+#T*X*qmhYbpzox2|LlHY!-$(`>KB#eGN+8D2M(%nz` z{8qH&c$mpF#6>}nmNakWZdwq5tYgRHu0uP(iuQY!^rp-TfPN-=S#B~;FwG@4iOs@Vat5I zob65iHTv)jUJ`ds@Rh$HX?GOn?u5TXLrx(Yq-&!t((3$yaOR6JoSQd>0aU{s!;mO2 zJ~HmVRN7A;9QZAJ4&|jl0j|0@i7~Rcl=f5_DvG{1BUaf3(>Io=TE&FA9%8`W5J((ZA_94Ll}3Ei-(Tyit@v1FemP*fVoWLM?@U znO_%uIwr2+&Y+@x-cu}%Sl@=DL|894*EL}}E`9NQB#$?CbD~+u8Fos3m5rG=NIVek zsnN-iWwxKHa|?xX7pQq{=`Gj`R zT~^$(n<>2wS^x~>UGpl3DQgcIXT=H z&l?Kq3&({m2@Dz}0^GFiTs?bLCM@D%99y*Y!^0<&=6>S@o{ zvcPcCtvqBAi`E0q2_2fow{10aNAKV z-RYm{M!qGxFkZu5niEq73OOWSaYT4i+BEWbW^-!32P8*AfNJ;`BH`|Y3Oly(%Oakg zslJ+G!scbj3gN}t0ImqqZLQ)_ywaJ0XVxv`vY&=^qPIzxrC76!0ljHkY?U!6lZ=Q$X_}Gy zDtTm)%Jly9cG8(;LUa@~Al=fde;Kng_vKbC$|F{*5V%V?j%l~$RUpDy=D(xJ8Q>^b zPT}vUm#-omHti#!@N5)G*)wpCcc$_5L?t%8PtgW z1~U7edy=}e#kq#1LyTD~w$qbH-mpppN5WaHjNX7t|D*Ia^-((KiBkKEoWw%yB$;Z=U!AYB=;bT#vP&|3<$T{F0=% zClBX5jQD~y2@>uL4!?wJ7^F=pafjjW6Imi7~JnC7rU5@^3JLo>i1gE6Z92j+ml+_kB-NV z$$R@b^N`2L?qRK;YVt*uWxc>#J$eu|(n{onUaT{y7lj;dm7#E?@*(Lp?r!ia(`H~< za-QAe!I`%>M3hkGyf&8moHv@UbDgR98=)Fnskk`|LB~dKZf?#6$ux|}>)$JlOz52? zdeeJ|a8X@518Ynpn3zj)H56Gj{-)WON^v{b@tDV+liH?nWj_IH$@im;CRZwHnXUZ* z&x-e)e*XJ=)lWDd)aawaB-Uo9d=FZ$t60kKlXj4NUgFX&&0H>DiCuRCeiqgjx2dxY zFiy~r*T-&!pMtJ+Uf*vyhwN%(uJitWapS2-LgeqsPBQ0@9h%E?7EqKo__e{cMgK)Jw2 zq?`MQ2p3XU4Lp}QWDwsc*bc!XR?N4l((ZT#Z$R5xXg?oZwWOk&g&a%CTi#eYDiY){ z9+F|12FT9)CiMl4CLXv_P@Z(msqSbHvY8*+OLxYCf<6$rrr0`7|C;{Hd&;BezEG&#>3^!Rn1E$`H-;dyvM8sV~lu z_?lrI1tl^*jCh%?SADnQ>IHk1TLSEURoOxVYOhP0*djtNsh4`6OQTerO*| z7ZI>WFw(?jFHnGEI7#X4-iAv4uF|B9ivI8fhObC|6mu++s66+bNUYF3MNpiriPtPI zYnbDQQvQP#1vzs1ut+!qjt0I8826Z6{(Zi+Hj)O}Pxi}}eGGiX=(#+DXmo_K2I+VM z?p4jj%Shq<1~u&Ap~P`kiu5*Zy7rBV7A=xd#A$`-?qleJJpCc&&QaxFM)8tdEjOW& z24sI4@e%KZ-TRV0`^R6#uhE*DK=XPO%MHuzL}%|+3#;B~(~99Z4(8U;{cB2cTvd@+ zOG&+(25aCzPxtkU$1n|mz|H8Yh*%%i;Z#{w94jMuY!ezin5;yH@<$PPpeMI~f4#)3 z9ADg?`};UJq}?{?&r(SYM|Pq4Hx=~n9$ddvs7OauzrSZ@B57jE4;l9BR-!fWwNxOZ zVY0<)UQlyG#F+sBuD>SiL)8bbJ0JKaW%5phxCQlnSA~q#I+QFLA%+=LqPmPvYz>AV zmh>d3+q*kZMUCYO!~Bg}FvjlSXM&hh7eR`BycOH9vEpEvh&V3Ko|;0{ER1ibi1*JU z91yIxKTeES8`!T&=`VS|*ZC1aH2B$ zm&T}AhFT@DU1QZESL|odcS%OrYY`Tl&9G|9K3y>kzbh_c-0PNenen4HhX_E#X+uav-~bSDXU+zD92rd%04|$ zLwU|<_IthLn9K{I=6;&i+avV&Pg&G;YPBX3qkmNGULAuKAY@D4*L!=1mNaIg8w#Fy zr#(uF?H~F@;bH2Q7C~GvMUxhxZSo_(>Eu=a&-a+>sdLT?gh5{O)zj*5Dq3b(9A`R3 zyLH+B0i{4%zuWHK&@SK6z5&09m4PSyTFYNhKiQV9bMzkk?6zHG=T*atZPLk}aR%1W zEnSz>$)LP}&ey2pB>&uw!ETG}xc0tV8vX^P$^QF4N{NeIm&Pkeo^{@^V?a0i51S{Eyo8DjigNsnBz%I!9zeqWfB=FIKy@**j zL377L+o7Wxv{bjl*VmWmy=ZrRrE5on#<`+iY#lumN9lKDLj2uU%~+|w>hpF8O|bbfK!O$eF%jmI4!+8k zhuXOd;93(MVxA5Y1L=?lYZh;BqU&pv#5VnAA+$$#$!z$B}7$EDD<=VOOIp*!<1@S z#m~9bLvoTde}f6Zf21cH7!wNWM@dn%MfT*a!C_u)Y>a;hfAmKfM}^~_`&|689KZ}; zSMVdoKiEYek_!q%;@GQ@f9&8=5!~klrB6$(IWBSCfx%4tNmn2jkR@Cw!l20yW@y|$ zWv$OeU(Pyc#Dwg2qS$oP{Ez?0>dWB2QI!Yo(*V5>?6p5jhJ~Ov#3K#Ip-n@&BcPBW z%%rv7_B2~%B87_E#|P)(^!<7IJ(cqUm7f9dmY+GShX*R0$KSVfR^#8*SAH4KCL8>V zG*rbFc9IeByvVXAc!fW3<2=^#GyY+azk&Z$&eVoi?;pX`{zIDW`INsCf6^s>ey0aR zT+s1b2H-Q)wk9`Q^A??fZ)5sb@;~X(@GGr8rq4u@BYP(MJCha@;K;ODtjp?R#HQH?Uh>P+Uw!vIXGb*l|BuE$FL3)9ruHAwycz)b zhZtXaDt>_}KF(Ka|5#HI+;$hoGdParT|{_w^7;UmTuBW3EFxGzCqk>aiFUbFo?3sU z10*l+m9m2%!c_#0B6FF}k9@R^R;O7yPNFQN5y^I`#*rv-G>W%dMI$A3?Sz(L;*5f&i)M~BTYCbipUe+3cqP3CUyx3J6$sMb%a9ECxz(B2X{bKc5VsIz*)KoU znR0Uf$cvb7FD!hFVq&Ut--(!+?OeXp#v2OM>+6ZGHfs2<6_yxVNNQ=ig#X#O07lY&2VW#Mm~7N!3q-nKDJ zy5a zVj7-BMuw;~`5PL1l>aV&L-H;;Guh%M)2p$&{1;g{*!WF1 zxb8Q4aYF4?`j_k{J{|3Ums?Nt%jKWacj&YogxvZ6Z7{{{?FAHI`BAV#Ie(?72d}$ zTuI44_vf=j{!m%mrY|@fHR{62x7te$JUuK3@5vzo=qsT~H z&}-?uQ%UFKjpJzQ3g>tiNe5-`a@s@z6G(}u-NB8f)h^B(KIo%v`jgx3MSWGNiU>Iz za7_HRh#(GUaR$_Ia(!GHgcE9#{!T&$H(6XrVk#N}8 z{_idmZN^T2qML~KeUP+1rVM8(^riKG!D8-MAuq4TKd0f}ln!Hr7!*+d8T}xQ@pv~? zonWsM0%c;<`ZNR&k8;x5XfZ&Vc(T8jPoBjfMnVq9&tHo7!rByJePh?CMU7^k%y zqh%b)X>SK?wpHFxf)&cn`}@wgf`3jLiwMa)=zkaf1#YU;Mwd~p9g_#G|A$;)5+&>4 zNuacUmKojLBwaTCTUxN0bIc?dJ+uwhJ&UU)_h1{6mO(^|oCYbJ5gj_h`2)D-s0SmX9NA{kJa{(Z z5m&$AZ#9nPt~M;gdwHeoCJ)@MD3a(h)x&bR$v@#QE$>8grm?l($#S0B%J_40w`OR2 zAAos1Chmpzbd$ayU1x|%kw5;*C=QSITSf`|JA_BDwkC7jp}7$@*oUG^L)zZCO%5sK z?_ni>OH=A>ynxI`XQ}m>(;|GspXf5#o1^?&V}CPX+-4s93O`fXN@1l3XS>wpzsU~k z;)MSMr~d0NLD!MV{&L+`+gt2KE3X7uO#mhHVYEh3LleyN!QpP>~a*=eOgZ7B|s> z3BoKJ>ud6Wc5$JM|8e|JS^9?@+uXvhPIHk_zkbE|C*u3F&T(Uz2f=Lp2!BE^w`yI9 zjV zd8Td(UpQjCfO1Z*C^^?~oQVpKonU*6Ns|bV-#h9FxpikQ@UQ1vubQ!vGaSK~Gzp(F z+hs|IDi-1c|JZ#%^3QoaU-0$5t4M_UE18KrPZ-B=#IXtCM1tee>8w}s7-?`Zu`yq$ zd34VA@)2mzSz`sfyM|r9`sz^JZGbrBsqt+7jA9eiiK^Z%D|($XQsLYbIA)h{$7R>T z4p0(St9&y9oh4|C<7Ae&=5CXPa&y!M|7p?$JX0w&Pnk`cL%;YG2hJNCd{oPXT!jNZl=?YU?Nx{NY_MZJiF<77_xU}~bTObQo0<&#ge{T=!5BVP|V0uLw z$Gtl!rVn1u55BzO>7+v(zTtlgJY|^VQRPtJp$yBv;C0uhss2e9W#?U_XIfc}>ip@? zC;QV)gh3R1H^|J?pK=qX=dJpKE$z=InfX_Zf2@_m%%ioF#UPSs0n8S0n+h>zry@6(4Ym3FOFv{#Zc^ zIY{S<=Z@oHNR_?3)%2y4>d(rFqP-T+WmkfD6T=~-rTgZwCgdpO75FnQvYd}`Y*5jy zoH)optN`7R69h&2uyJs(n)Au!M8)Y#{46@?__O?xeNBg;gf8OPkyT8tRF1RKFL9LMYO6V%O*2wG{?OfFpfE9#RAX$8S+ zHJ@y_+}R!eG8OEN0@*HCHdQHpv&(m=TolL34SGvR;$4y;}=IQ7c!Nt)S3q<`QIeDX+ zyGg`*Kr>pXoHoDOQjM_O0hOw;9H(`{oSoWvetX)Jv{#<)l5ng7hd3KvmHJmqVhZha z@JTV!U*HQ{QraIoFHHC@2JF}hosHvlynwi9o}A3tqi^;%j@UseGJ&vbUU2Y(C(*N? z(Gr&vOjqGoJ$4IaP@f8&aQ?*Kl`GWa2s=ItKkz{x3)@Th!;UhJsv%dI)Ih8ZcUx3e z*1L@l8zV+|YtWm=Kf<_4us@%D{ImMv+wsG3Zn?V?ePWqR_BzV3anu**t{921*a3)s zf$tkYn^ArgNBUXD|8308v_jj)@y{*mh@r`88Pe$wE&4Thi=$ndoioR8^&y-Uh|^ZZ z+Ut>;j)_z%;x_a;OM`0M(CiV4R_mT`7(j33PiguH?O09=k9QsN4s>9?Grc+)H@tfI z34hs1{)!bnBh#q!-Qla?k1j6F?@L)Bx$PKbyUy*f<{M7B5auV9q_NiT*p--!$P z>y;yqzZW^}@^mWRYWY)|gZgiXp5$%A<$(Vyy^7{qOGkLV)4!0tLwWDyU?VxpSqqa3!{y9DJPxAk!tfRAT zM(cC?{~`V?Q$;3=G2ij)&c~CTeJTHx_P=8Mb2LZ||Ks?l6JIi{)AHr`XDWA+gCXu! zm%;GP{<1t2QfTGvH2wizr!)}`95|i62&3Pk8_m80hUh)~pnoTpmhhv}R(k#N@lVsE zu4`{$DC47SpQJqq;M9Np6UINhx~f;6)sV9sPFhuRV61Y&QHZK6SD=;fQa`Hj2spW| zt?X{cHcUqd#Ze4{Fy_vO+K7Jf9gZ3Z+K4#L=^zkAdFhm6r+OBbAHzIZ!i3<}bAcD= z!5_S63hr*e$qZ4M<$1s^vmHC7ZC^UpRCwzHlrl6MP0|0NxZk^Q3b!4u2LfO5e&_eJQ2LCdc% z!Oj4s$$<+GhLzH;JDN?^FU_4dSn=*efd49Ytytz&Eq4v9a5yY2=(MWG#lb2{N3Q9G zV=$o8m;m?^*ar|Gj!J>{2N8RxN9>DI^XRgAG@SS|?P&2kWYkvd-O3DP+dCY=Vcp#R z!C7ifvzt~#ubna`Vk+jxHQnye$8lJ(?YW{lE87KGu?Yr;`nH{IK7P8qC!VuNhZ2-EVAU*W$z*$#+?L~+pGo{bq+h$ z5&?l+6uOZ7@X=G7?1gUR-q55VG(S23&GI8nqullkq9M$(q1H1f)kke8&(smHLvH(c z(V>3sP?&(y-VxuZKh`}Ut@IpGT9Yz8A_=vn6gi|}x=i?QnkALD%u{X?I^7&uCEvp^ zTgnEvg9Zj8?N#>rJHFNCCcCVqVcArE2R;pd>VP61>6rlB2>}Om2t2?9-ZA)Vd|;eF zXSAm~H#!{U;6O8e-t0-2e`yID{*$anIK}5EW3Qa6+2o)2QS?JHj0QI~jn!sNwAR*! zZoej#W|^Gy2Ym10h4-!QEu3U4^obB>n~Qd`yiPV3wse&LfiB(rbz2*4N1Hs3^|#2s z$8Ys%3n%*#@~<_X8&zyL*V8JRY_PVnqKZv1z6mYA^*T;=ya?cKrzhEtbYyG6xX>G; zG`(C-CzXGj{YM)#iYoD}{ym&!sg$WRULpUo^P|Wlr3*bHTC(o(puagjR(V7h))T}r z&3oIYzOw6(ynAkCl)j>8pn6`8e>{xK3i;@A&T?@y09<*C=f-!rKEP=I4@H)84&|T5 zKd;7r#eP%XzcT)bet>0?kYZc9g_G>CK6SbutR9xdn>=?o=g{ zr5Um6kU=?q@cn86j<}MPVd!m`c@0_1mCY#A+vhuT#8>`9|G0?#+I?5`J{<)G)VbRv&bJs~6L4%d(i%x6T zfJm%dZzk2S(x1kj$d5FauS`|v|AnJ2d`HJ>GtjBW?1-<@7rW!wAMtmr@?Ub3@o_v* z91C>GB`F(mL{Y5vU$*V?iHS=tCy>dP`mP7Xu|py%Z2v2tmucly{#xjxdikyoml5AN zv1kt-(2g{5{MWfYf*lDsvgpEOqN=wW6V4VY5i%%i0tP0Ck4b`_hyLh~&=I}-C?%Hz zyYHAlVL47a=KolwH($i<2BH*UkVT(FgPn)2#ihD;>O<_TvD|$VdX4)CyboHslqQFr zp-zZ$v=N-xOII}7mdAeKxE!l}X>@?z1H=(Vc{Eja9b_*p9kj3q(LS=>t4|<3L`mES zi!A*@NOY9hN5zqc$b&SB2_c`5^Y(*raqLq#|HPAtva=BhQMcyAXfASaJ;bqPe2K8zVG}HXNc$JN#>`2om+x+&oi0H) ziE#>ckeT;8;&Ls}0~Z5>Y&%}`;mZzB7aZjcF1!xcul_RO6X4FsdoEnjbl%xO=+G-O@*NOwL+Gr~l?{`~H} zGY4VvB7A}qgJqXL&NIcmLWQBEd!aKM`a{|tCUVxx!ruwcH+69NlispUmU`rD-uiQo zFL6!3-r4A_+(~A7xgJ-_J{W*aZ{OMSe;4>fucXO%!@tO?wy;-Zjuaqo0yY}ldE z?~wW?ytLuXR`;+ie$p#`W?eY+Kb!myI!D<9|8L3v@O&_Tug5=RM@1SN4*J9mE9Ffx zH^g=LNdCFpgPy&~TJSmw%qiW`0KR#DX8`x`8Jl&-Kpr;)zU4mTEREmmYs?~o1N4!@0m5RQi7OEhsrzF0|4x>L!rPX03VoQvq0+WmM4PLQs7I!B zXfTd<50r~i{dbk*GUJzNqOvMS1f)y42gOSgB&7>o zhCb%%={O#R9FPlrzUY#6ScFbogrlV`_n!+Zu&?EWhwi8!ACx#Q$}*-_o5G^o>zn~lfClZVxp!|*7DV1<-V_kw{#BQ zwpQ$~T?dQ*>x}q|+OYU&red0_xGhX_o=<+?x2Rn>cua1)MJy+LO)j61)XZlh>yqLh ztDTD&Vv2a5Dv5K@8wp8dkDtH1s{r{!{xh?Ipsa-G=Ttx_i`jhza#@|)B0#qZHM ziBMX%tJL-O(MjOvdL9$TCT&*&$%nxf8LbvKr*$4dbRG%yoiIq5{nx4u#~zaW$Id|4 zAvzkc6TphiCIS>QNep)0#Evkmh;IUry9iwWg8$KtvdRq|5%nE-rcBu`-tm|ChYWd} z%B~VHRcLph(gbqgD_)n8Ezb!7WBhS^73RlpEA~H!2X*`t76-f1h)eldgFd;+#X_y` zaKZS3pRbM2yl~-)($J#96y3x6FDfscCw{10(I)YhOpP?GhIm#Ao8nrTn_6iLZ&sin zgm%f0b}053K4hB)eI2?LMS(QH%{UTrR0iu_93UNksS;LD_cEg6XNyk7lr$(>EAE|T zLo;?3+RUzSbZM)!5V>U~PaDU$9Uus6yo1TB-DUWiBj-V{5={dZQ zl8VEMb;fGGBL7lZaANCZ=9m`22cFT3-H^&@CD@wegM4S==AZ}y+d=mIdw`9BGQ zkKLeA{Y6IDR#SQ&J$E}C^ldhv+Z@T^P|OI)Wl5v0UV4sx z!ze%75N-5Bc_u}dyS|>Bk6ixPXSVl3Pr{9H7TIaVIwFl$)A&a?eZ&8sHvV~KG`X(c zPTO&rU{aC(UeIp|Cmv3HF3ZR`{-Mf#X8hCZ|LO5hD{e4 z#TGx{9K))|B__D2kB$Q{Bj<27H+=APj80iyW){vyoPWFWT0G~9w^j$}k0U-J%=~e! zTE-b8W#<4N8w4kViSWulQ6;g%jtGsFp@N+Oaeu-^asqrcaYUJX^wRCLxpwt03nfv% zpY5CH?Pr_94ut&Q6(^-*LumZM?^@)aU_x@h;#jE%Mkez65I0P!> zu_RLX5IB-e$)kac^1Ir*GoqYROpX-Dh(TbZ&a^wYZ=pJW!6b2B z7*<2ysn>GF3hC?8wSt>>(NI^YH)v)dj_d9L310K$!20~~Nd;EJ%L4y6QbN9 zA9gjg@*<5|;1c%=2zCkx{VvDm<*WOBasH|sdaO7_WZfIE@VDGGK=?xj*4+z^zb+ZM zuCImLr6S(mB^TloLgG6@77YY#v{jzz+GzoO!+k8VYb16j$kI<0r==fZC2KM&hsk%~ z+pq43N0O7UDP<^;G8z#5q~wH~=)6N<5r@VUx$7o(t4Z!m9Y+T=X+)JSK^QG2KD zT~)dM)8upP5CCAccx24o31K5k-<&)N`aq^I?h7rp281=DX|6)u8`$q)Gp+RgifonU!9K`qs zbhD%@(alhX0Y~sHDo8#GCRI4kk{2T#Tst6N?I75IIhr6xF%6ZCJTj!? zxWM0PdLjHv{zF>EdBPtB6vxDbV1NDwbf?G3k@Zm(U7sj?6T+@vT*34!HH_t=H!iY} z98C!HGPW{%Q(IaDy+Tvupg$dbqMcD5&Rb+d-pI}nc1ly^pXu93VZ;yC!LGx{{ERP! zjrbFxUfR@yd>q4C8Kvw-(+*uPcO+it?`g;PS3r1$Tns`t$;?EXE|=xK>zYWZXS4s4 zPVUVf%Y1A9_a<$&rl3gnRw>=a{${Ubpj(%X6aLftDE}|)?WCWK+fTvCD0$q+;~&}6 zCQ>i*e`o-T?0kUm8?-i=8PmOx|5C27;Gbc< zH9gBC8vNq%&+e4`NhSGk{B!w=zT5JHb{DL!Px3k~6Qs%ib*&>Lup)C~>Sk;6Iaxz1 z;XMsL(8Dq6j*G7^71c}r{Nqn4XCRA&lY>#qv-Go`^$lC|EXNPYg}3tS_uoY9mLGrK zURJKeT-nw``Ou{EDIzLy5J2QC&Iaar?#tK#={`T9KT&nWNAAc5^ z$ej|q0azlm=oUFFopQY5Q^b#PaK8NQZ@-I($v^)1vG{ZtPZm{(F@z@m$V+&lycM_b z`~COdM6OHz{Lg=^yh=MQTA$rl$ID&u<~HQ&R4>!tfB*aMB6iCk|M-#eFXWW$at(*73{bs>?Z)7e&|2GF~`Vah9DftBAk-{dW;n z`N#kJpJ@xati_HOjkX3(e1wG~S@hiP!BXu@e*fE-sEPdX#~*&YP^ew-Q*bYVRcHO` zA}w^x&Be+qDmbD>J-wRB@BhbdqGIynA3w-wEvL9C9QfD;;bmg?$hFE<^&K?PAKcOA zzWV?7zx^&MB7gkxk5yIZz`E)>PtgyAApm|HkK0a6(yB_ATGjLg|Ni&i#mwZ-fBflM zI*h|e_{_4uNi(F`pP7icaHN!*|9{EvzpoYjfBxf7pX+s}VDt+s&rR<)eH*M@0BJJ~ zXU^Xy7WWq{A-3BVez(aV|M(GkP0-&jLBCzE*Uo^P#4^!nmo2dp+)E%LA=m4kf|c+0 zzyB`k`cQNm{e;jFT_Rzh^K5xZn^4Uz}Z-4(y%w+Wsgjd}Wh8+Szg-H|`69p!c7rdiCT{4Z8@xTA=HxUu} z;~#&Pva)-?>T(36?d7{S%8mlJ5#@}0U6VM!{r)8)Du4d*XRK~FNt4O6iE&Kq2yp!Q zj-xB>pJ?N?EP9HF{Nq1=fFREQJNT2rg8qZ}Q|xvwYKU|8`S?P+<@euy6G8vp$IHPR z7lsQu-*-e{jD+?=Z^D>{4F2}}m)I@x=a00Xaa5#8?hd#u=p6Dx_@Ur%>bt!Iph>^| z_M6=IEkEv?b{{zZ<2X$0R`K05H2!6o`I5i=pZ|Br?L0=_6{g1_e^0-Cm{aC37KQs1 z#%a1Vdb%P!oc9zqA<&V174}VdmwotnicG5KG&^fg6`d7_K)q3 zANW#bxu)xJs-+21P|#vfYPuH3VFm9-o9&|+ILjQ~jmOdHlt!(<$lpekz~ z^zn~}Ax;Jh z7yB>&A9?SxtI4vY34InTSLQyasRkq@n8K)=OH*B4O%+{LeNoX;KMAkEgdr1Nfp)YogXblJT#Lw2O9hL}WUN;sK{w#O+vR-@ksr`vN3F<3>QrT^ zRlq6N9G`|xynlVeZ+`O|ynlJe?cbL^7$$Ye$lI1Y2h0$wQFTND7{IWgE|u;BpNWo*ROB*>9^De;J&|yD2C4PERw8? zG?ow}0tEY@wo=%51AP1Xj-P(>8@zx0g8TlS4*r_#_V6>7<1xdINME0}GRHwkm^4Jq z*KhCmZSv3Y{TDhU(YjU2W?C>ELpVy7r9X7)YV!ZW`}-IC_BY?~_1jn6x8wf)3pGlH ziE-m}7HdeF8x``#t6heM@xt40$Jd|U@zYN~;r;6uxZn8x{T3Qon#`1s_RUayl@zQc@O>ja;*&&-|y`2 ze9jJ(@e&yq7(czE%MNv;7*+3eaDRHI`5$0zl0M-$!E<=$5AXRbvo;%z zeb6F}2j7WNNvk9cvzKSu#Gm=IJny~uaWLAC^ms+`tXt_~g=3?SRi-8fCOCP~Kn7I_ zvnnvt^n=%=ZKdmculMu!2)p7ppHFh(hjbg|MIOz@J0<#LfXScZ43r(p_{f8^?4}{M zo_qk~PGF}_NrzZJ|$ALccI@#No*D3#$_fy&s%*Jm& z)8jB`YW>{oyOd|AI@QKA|Iz+S{*(GobOeMgPu`0xsg7jbhv(M+pxfM|{C{9W6%Nfa zb((Zhoqg(baj(^CX<9KI2Yh4d|ulPS2036<9ygwS}L*Ci$2@dRZ z(RaWL{)${Yj(^7Qr^i2D_0!({-s7J^h|}|<%t7i_oIa9&A9A3!8ii9E|FB)vH|x5{ zwq$IRA6lm|kKQ-^QP_9T_veYf+_ZEX|)FkROTjeLd6BtNJ74W}`fWIPt#|u0<{{$5^#4c9b{?i|#6Ch7mF-9H!K59{MLD zksr%4{?Q#G<$RCT(Z$?_vz%K{lLmof!o4Pv^3Z26G)1iLq$BvgGZuUhzUU}7$*aiY z0p}Jnfljmt;jltSv1Hl1Hi_ecvy4kv4|Sm!QLE4^cD&dpcnLaU6?@RGR?pt89fiO1 zemQ381YaPE{nzma`FAaPE&6(z$|ONJVN|B_u;Szk%09~XWeY1rxaL8ualoXmVrIR$ zGFHNam3~Y*1ny>WaBw&mJ^n6ajCJGcf2@OLuiU(2MML9R1Oac*39+ldC_6APRM8bH z|CcRvah&rI+vWJbXdeNriGZ*l@CYjuFhKPoCKzntb%{=9$RENTH))Tt4nDpj|HXri zu_gkptKO}!N2~{t$0DEOvh`P!5R1Tm_E75be5K8w9c@S;((cGON zHl-%*1;$)Vk>;>$pBIdlwk9%VSuV%d^x(~{1PuBGojY+kaV9$%6M#@|tO;w+yyOx4 z?@Q!~y9Jr&F8l#79!^bSQ8q16GX;T%P6wYd%nw)L-(vqS!9QTgF%W30E#;|C7Og%m z$06=AZsCrTTd=Ri9yNJ{=;vh&!ak+N(L&ksKv+XymHij|GsGOzR=qyQhix3}6){TM zt=*oa+NB;OBRPr`U)Ca~#=)Nzs% z<^L-g+JxeCX}vGNKk3zzu1&eh_sT!5`-Q%3GJ_$LIP5~ku71sR5U5u+cuPa^bgKh6GfL&oj>$*e+rWKQ zUYf-r?UlZ5c2e!_Aq^u><`cSXcK?+eJlO6heSD=yCviRM?n510`U@g%Is|m0XkA-} zIDTgxpEdvwNIl&j^1iacPx7+KKaQwZ`aup}j(-k))AoM$D+gPCw8w{c8_D9~BN8h9 z2QWW1{yFL1NjHJ~;P4&bvkuMo3HwPGrM^htLkxXX$Kg7P>sesh>g*T!ew_hSfY!UU zy4BWd>5~mU$V-uxtEMAsvPo9;!@!Up?v5{CA_R}D_-f&Eyo27}DGUthLWdqd-ZUi1 zWq1qz++OeW;Ngm)3(#4!KCmkU0Qfvsbyuu<%8BFcZROF`lX=Lnh|Avni6dAJZ%v0o zgilA4xSQOGNgTrm%O}3d%yde zU-Dh9ioS>Zm;i7iC)FZ{hV|~UoAhwJfBOpfjbDEGE+MTB{a^CI+xt9YM4U4vn~Sf@ zA-nMW_M5LT06+ik=Kz!Yj@B~PdFGIQnpM>@mxOoE8*Pq~WrzW($D7Yx7q`IprO zxRO2`%E?CqGL(?x!UeZGe=THmp~hVj;^d52_+P)i1GYlqqdR0` zG0Dq`O@}1^oOszo6|F6SF(76_3CAj--e5^A4er7fkQp)^3{LW&dZwXBXI!cHV&; zL)6&n5{BqQ+i&)>mC z|9NO}{N_6(+tYru5L7qXqL4Ijcl0e-<4=d)@Ezj1_L)|m)sT^M9`Q&v%1vqv%pR4ahxzoUB0&sf24Z6x8vh#fW zC}R2(O_Xd;@Abp@#4^acliZ{@3?6Bn6aU%1)~O%P&}Z~}O~)*IxO~u6s`&i%O8)iT zqu{+L^QxZNE*{>GGMPN`oE$Tsxmt5m{uQhTojRg=$U6t;CtW+eZ;hD1bikkQo33Hd z%(g0l!@c5^A6r}972oBT^2&6x5(%PLT_{;5x=#!p1~A!YdkTtA{mr)+9BAKq^^ z`GroYu1q=E$abLHA42_4>96ot8{OVx=ost#Kpz!H)}i=A-cQ&d*|4-u|eVLDgr>8o9X#B%G z5Bl=i^vs8yOg}7IC)=oLTIpx)_6vLatH(d_Mr|}54t{dDmyMWgY-TH+{dJ!qgf3vM zc;v@+9cY{IFieSJAMY9l(O}k-tHT`mQ7mDE>_EHR9YEYAk2*_rVxXBrdD+eb2z+w4 zgg9!KI>twF9LDPMo!g$7SDdab6aWiwB{y#255LY!pUPBB7=aAMkgMh6qdF%BH2eZr zVwT;psJuS*1%Hv5Zk7a}ll@E?J-tgoK(1uew^t>Fb;hP$fGKu1%d2bDtbfK1Y*{!!L7G?y~O zWimi`Kmpib$TKy{RxqqmhR%tqQ}QBT9>%+XtX1z=b#TK<(W?&9y=*z_xpJJV#kE~d z0vPEphy7+6+gOCmy2%Lc@W{4=U}Z~6ZY=cFQGPM%f9ryt6bj=Whj;f#4?va*RDbMr zdJ-58z}ouM0BTtZ@_99lCLID)VbWwjkqkk2gS8rX=h}t63+WRPz1-Fy*x6ujnu;(7{W?rI+nU1>WrMT+5_B`7gWp=yJ zuOoX7#Ce3}#FSTtJ_@#W)dIXi_HZ4)R%}oI==yBFRt5wA&s-k~V9~poT<^Pq9|IGCxdFM6kC@^^bq*K_-ZMyViuV=Lf``Tm+XEuFk|8Zn%<5!iUK-f!^Mjx^U1ZWL`5$<{(%Uv*KUep7J?U3V|Aa2R#9yzIQoquTA2tBb zxE}5QC$7(QIn8_yzTrjM-}(3l)$XhD&#CMHV;}zrVIFnyLAE|6|I9vZ^^aU1*zdp1 z@ehE{3F1l4pXzwQ?4!(nLeD-J|L_B~!U`Q&8#fx4mLF#oFI}3K554u_=jpgx9+{Gh zJ^>-C`nl^uwzcPhzgG3sfyBGBqwN&P<>Hd869*a^=Ry9P2;a*&d9+%@uO0MiMI2dG zS6k_kAGa+mk3GE;oYFDGbeTvJ=7QH$ZIDyj$fa5s@z54U;QXL^S-T}f( zfy4}^aQI6A03ZNKL_t*aAoQIRyPejZLUrJ9(anMlwUV$VLi$9_qCnzLnH8r?jSaAg z4clt;b>SNbKhSmz2q|kgW&&6=BCA%j-I#m>xbuX%g0X7=BA*o+=-3C5?pFfS%gp{y zLvEPJ*T%OfY76G2A|9k!&kNmh^{r|c1}OfBn=L+OIgf+eZ8`lI-p73H2w1E7-vEZd zv9cEzg~TeH27fd1NQ4|JxgvdIt$Iud@POkYKJ5Y0UZty2%-522NV%eyid{28R$0^j zs)#z0C+T$5iKx+k(`gDIb{)|ES5{D4Q(o3H9lUg=6OMYOya0D}8fwzMc<*EFU&P z4|R6}W?kQ!jZpsbUhN8bll}M5TiTTDUn@)-FGmW4>;^*X`1f|JiIk(q@n4rUwOgFX zU9V-;IHdnSjDO}Q?>;fm%WxNg;;%T>gbsIymHkh@vY@XvR(B2%wN{S!>Fxq_`#=^mVZCg^Gfdo{|4?!4+s87`JZ}&Dx)7aPwB7B)K+fl z)3m3OZ|aV=u>pgkBh#iH+6h1fa@6^<44%_p>Ds*hAhua~{81a9HGoscP7Ijo53<%^ z8BLzLI~<;$@Y0H!{A<#a9ri=HgB=F2>+AT%$lLTr=+y8Za`H;AUdq4VKiRtVNvE<8 z*OPtU^kV?`sqs&wy&V7GQ04)Jm)*r5LdQ;x9@0P3$*1v8>!XHTy&C`NwSjri!yi=t z|L=`|Uf9)XcRxG+d8|+2`)vA0LOJx}Q{$gg+9}I}yfoSBIa)sX<;U06w#x%;wZEf2 zf=P;WB%vG_(q64rt`&AOWKes5q+Yei#-vCt1-V864j`T%uT|uw3QE^NsDsi2J z%T;@xv{>&w4;gH<@xTiaFPG0;-IkLpF=28uljxxEfLrBL)$UtFy!0t|Du_+y3d&W} zX>!ES!!h-bcH)+2Q-pqL?Bi&v_~S^rdl0o8&4AjtJ4#h;p>;x>hVSM}5)l!;E}X&h-*FI@u9rC80??tv>~qRU^vP15GM0#@?N zc=Fk;TFD&W=j4FI8sw=`pQSx z3~RE2lM7Hg6^iF#H#5u)<=^P^4SOzqm^x?M3hie9m5C&N;48ZbSYPfWNc~UaAckCX>F%R+2 z34>0G+-1_yN1w!C)j}Wlj(^y!>i?|a;OuwUX3E38bwlh|lE#_eI*@YB$pX)DSWQ?a zUulQH=tt5yhSd;a5`+0(0a1n0a!NQVUxHj^8})&`PVEV-=g~Hwta;aset-HnrXhLy zCH^Iq=X_0Yq^i8lGd|gz_I&&>oxdYp zN9;Mmne>$U#TXa9T2|<-M*T3TE*aG4!~N#8=&1DfYJo@MOlKvE|I0>HMwE_|X(oSi zIsc;pvop><1;BgNip$jLiQWVIcYVNtH+(mAq_t!Hy}rw5R9*Qu^0h%G>+;^d>O$kC z!l(Ei1*EfP+HFl!nl$;>a>|RLI|&be9Zd#Oc5FNg{#i!xF{x8wABa3T`;->j`wy;{ zb+&}v2D$L7*=doRrel#et57`{vc-4P{(VaREy=FnxBPrJ)c7j4I(;WOGl@p950*mX?v{qXo_lyB`?=kKS+KO-;Y!llk8|3jAB_(%Ry{w1x^ zZ1DRe-=7`-s4O4HKSBeo?^lg~yxP&<6Aq8#pB>fXd()RE{TS((&(ny_Mnt|+{_Ri} zk|w}r--m+jIR4T0f&3uL*X5YfE?HNJ=?db-8eN@+S^*{pnes!~3_QUyK8#r>CkK`@ z+_35~I`p~H)>iv<&~%~U^zPgM>`Dh>I%zEGVqjb@ISsmSb-b=dPYyDy5GZZ~iAk1#qZuiWxa`@n+q zGn1ve76>k!)iHBPdSIZTl++=%^?zj&>fC^ZYaMdE%2^($DGm+AKb{>}d<`2&r-aoK z^4z(xc9~RYi(+6ovUCM+Ql%Ye7_<<3WYT}t&IKYTq)P%oCNWI-5AZNkvnyjx=Yf@! zfpo43|L>^NmvcPvzw5rO5}r1Lj7eQ9d@58%+><_ZJWjp=eIkmsL1?Sav?a#j+V>mR z6$cO7dY7yIDMs5t(w_Qk#&TEEKSLDR9ifCAV921D9LU3e@dlbH+P7tjmwsOM2BWng zI^ldW0BH6a$2y1@d1&!< z87^D0ab2D`TiAxnkYSpxnCQq~80<~#$eX3j%6vS)Sn4s_tqW@c4YC2>faPr4K1%4^EWQQIGqUGO~k9&Pvb_cO@gek0u_4zvM}jXp>#| zRXj^HB(F8}tc^<=y>u}E&=v<6E8>KG(6aFF_SJHXVrfg$W~X70F&NQzU+u>jC}qt= zf1)qVzRd5SZL%Tgwq7WeI{szDx9M_z4su5Ugl4(ZC~RMjbJn=fasv61 zMH8gEV}&S_$;oJtlRFFC+GV-MO49!$hil38vPjukX0Onn=NG6_?|78~*~%8#<=IEM zk(JrE^3RWt%>pTCE6tyONr%k=b*OW@y5Z~a2cBe*>$BjW?;-hEjaab6Y2Z9rsBBI4 z%t4aoGl7Hk`pydjTH`EBoHjNe@NW1kFSK55Q}I{2`8ofIUrOute!G!t%Ks}tP#J%y zt1)HD|HSts|BAoT4u^X&ZpoiWYdo@+{isWiXb+fO?oU}&N9IS>eBX5RB>zKpbkafZ znb!vXNm8lvVE#5-CY`b_EpOP^m+w^vrLxSgdJ=ypSX&$3>C|*7@;3QD=+@CjAMpRo z^;l-UKj?8Q?;~yC-||eliLOj~sjW@R#DE|lDQ=7_qwBAkr2hUWFwf~s*d*U;7YucD6^VeXI%-j8xe@z?mv2~tO*CxvI z#WbG6hgRlfOked$-qUQRD+tQ7S(hDncKH2~@z2&L4*6>Mi(cBP&4EL*Lfe+UEO8nj zOg1E2Ek&ScDm>CUReoo_hPw^)XkS#1CBww~_Zt7m?`Es8zi)6K(rmlYO3$|JcnK~? z^WT`#f16HX&?PD)-BV{V@*M7==I^SsbU4)ejG-Sqba*=ZGe7QcnbfN+ox0@fqvEGxD23vTc_5n?2M}<6Cby*{McAunA1qENf zBX&E&IcA8}f8^KQ>9bbK$?Ce>d)?wR&p5?i&kM*aewG8SRP1I0QAC|1bcjW`1z#W6 zB_KRpwYKJa)7?HU&@P)V_49fa>HM#ivE2@q14HeuhO)VroJ7Or1QVxF$Vk>7GMEmx zi_W?$({h)I$0Pz_p(6p*56^sMWR(c@SSnjOV?skZ-56&*!v!H+9dt4UEG1ues(;Q` z#Kc*V%&WeTB@K18{$y7KC*nf?YxU|aJ9<2vUCPUa3*n@#sBl7rU&>HG3f(+bl8))M zn7`~A9hoF*bAsWS_3b=U{_<+nK=#=yh%;c#VhhdlG$ zbb4r>(+4V*$pl`TdE&qMkvH*A;TiZC(m=yN+UbHJJ3YSYJF^jnFv>d zm-IjykbIqnR_KznmGnkWmOs!5=zN%b%Zjn*(fX$Wdnn!?{FLG0-DJYkHHofOO#QKX zx9RPG&u1Nk$p`Pec(1SzRqWMUPg9=GJWukLb(ZmLR}QGX|DJR=2dF;e1ifs^(ZHWS z$qK1Y(-PM~7f4#>wR)x=r~Zumsz1sI<$u!AHg>)=04e_>I}LrWyscf8n-@0v*It|6 z9u%_4ZseIZU@J>{#l1~<^_>IHf_v@U6D+Go`z#Ub@#R5k63;yLC2@lqHfbLJOa+w7?DbsM`R z0;BP%&{IKeyc3vSj(-klHP#*Ectht<$;gBH*|4^q?{x#p|=U$k< z#)2$5Y2rKERBkfOD{aDik|~8-X*b6|S$^>SGvl9+uBLm|-zPl|WsVP1@lHB0^Z3XY zX-)4=I)#pZj(?)ernh>lHe$*ie+oYF<3)1WzltgBDGywMUrsMWdPP!J;)9(lmK*y8 zulp_srSj*Jm2{j8xXOt)9g;A>yO4s?7F@FR1j7#I$|P8j)L^2{(3`Qfg+CDO^3LKUkfIe7wP zsDl{ukx)OBc4veOrtUu~h@-A^a^mA7HwS-UkUk;p{EHX~| z+^Jui{L4h%l0oE7om|PO_yfz?#JJ_TD)SCAz*s9$mU5WmWaP68(y50Rs*laSB?(hq z3dusJIQ5irWroWs!`unO)$xla>BtQPuj|5cX1}c^p$zA98R*na?=iyhdl{}=)n7YA z40kx#FK{P8f*AZ#=dwZagiKs!xq@{$s0)7X?BH&vE1cYP^wXig>Tc}e zShC+JQ=E7}IS((|RJX)GQOg|*NJ4Vg2sO@(9bhze6)i7|$q!%hg3CiT2qeJO$rcj@ z)lZ6(Tf+?{p37z%|LM*srt|WeOzDRP7p|xAZ>pMPY&&^qOP%sB6YbRZoDc|_S^cR! zq`}v|M9+jNU9l9mvVY~!F5Yp%t|n-67g_Z44o=JjUD$Hs&)tqifa?2b0&Bv%CfeC= z)WOo6VCD`X+I-rKYS)v8b>>5{rgRt?j;S2_VpFcG%5z7h$!-(&c}0MvOZLMYdl)B- z=h;DpTgk~)^`Y2L;B@>z6)>3Yc$L4!-ZcK}XKpd*Y)4Qy9( zUD98DV9h+6W3n5JB>Mb#)^;~oWU!F+@qN@GgTVf7Ag$y#sYChRU|I<=|)cz05Neg95U8*~($Z?;1ed;5AwE++WC!z!X4PibW@^30? z=XwI$6LQ;zlB$%vf{9LBpRT^UBf5A8Jhr(9C@ zCTuLKwta$XlH>z?2}2{E27ZWTtmWL!j{11at?@vuwxhhDRw$d*N-%c`Ep)HR0a)%N zz&r6tVeL7gYF@cxs=~@4Rebg*Wm*U)qRCeD3DTod|N?P|~uEe~Lb9Ct%=z82|Lc z-^EsiF68bo(vodq^}{(vLfK2zr-EC?3=|lupmblg69v&GaR6#z2x9}G3d&g+bskN% z=j^Yv|4SX@B%2rCX#ej!Wu$hQO313KFim_($2l+|&A>AVvd~l(k)rmYN+B0vN&~-X zn>4QZb%3UMtY_Qmn*+GzVh&&kcWVm_G-? z`r&=b|A~et0hsUz?dGNOf8xKkn{X&kfV2FMx`z5c!XfN$bt}J2GN1Uh)oq=}r|TqB z>Xd2lSTCb8k(S+iJ$r-u<4JE+r!?QmZfznk_@tFgTTQ$+aT2?eIG^Ny*xSuPbp&v{ z!cyDw-r=y)|o<&4ejF@sG@(lK&{D`c6BMUw1=J8^{lIN*Q{gc!nK+ zmO1rD%@zv{PCDZ!zE3c0lpA%;k@wN&s-DWbC$yEHQ#6kD+pGQAHy`C+`j-u`1~|I> zjQ6U4KQjKY@vc1&yf^!Qs($b^K|1K_CjXxq|4{xP`sEMDKPM&AF+^(+oi-DHf409` zg^jYG8vi`tZz#Fp{jVPXOgnXG?`fO~3|=4L)Vv?cO>6ielfFOcixTzG0QPq(+i6P& zV2|?uhaCUZ^X@G5d{2jJ$`Dt?JIWDmfUY3RCEC$%h8Z`uJJ`nWb(ND!^e+#< z3wf;Y00M`s$Wuo~;V$2$8Dk}O$AI2K^s zp(1=v5tgOABJYit;-vL(l9Ly0r7UV9YQ4IXN4es9>U);IvktbObaOhZ1x*3jM?b5R z4jRTI>F33V41Ht(s`k z-N;xgg0l-{;z(zD(HF3c&kw|^db6+{bo_^to-6$?o*OW_S310c zh}UIFv+KHW`I;=a>?&8P~ovmnYZm}0fKS?vmd18=c{AHL3GK!priGH5aXC64iwf$HZd zgKan=6A;{uR4d>wc$`I%wkmi{+}-)C_9$%Iu$8r1pU+pqvB0I%Q}Q{IA9^nvyz<&U zf7BtL!bN@cY~OWaHbT?rLG3&fK(vMsBX<)RWp>~??autZGIFN+tVJ^ouX7boVs}pN zoQXOY9%KBN!zruo3!VO8xd{K1p@ullxn;6a>^1=KAof*v$3H{8$qt`vm%q8yMrfm9 z7{&gxd^*D~k>hmG7t$@}f8$$SAe^s{C^CEwaR5b5EcfNRn=hSu%hV&i>a!UGaGU4bTe+vJ`Cn-1URvadPDlaWB zaFnG<6QJLpuHQR-;PmP`(Keq?44T(uz>uNGdR_r|(4+Qy(z8Q(O*^pv@!HxHe$O_4 zNdEO+bU_9XpOb$9E(blWf;0Z}qCTrE9ZcC)<`d>`lYa#y2M7;x(b5kDXakG~y?&)1 z4WFq?KcYM@uA}@vW`0N?GScMZ)XoV8pvg&V>cIfMwEv@yCw*)(e<<5ntM+t)b+E<1 zw*Q;gDQyl^w=xs<7iFGw?+47^QNfP#e=7gV0FFNFwK9K1fW1sM{d?-u-`e=+q;qOh zpX6U{?xDVuo~n(0viW*H_KB{-f&|^Ke6*&TRRLzr~9m>B@|5DHHtf!++WAD;2+E*+_JrWbz<5}aJ1NAPy zT)8q1ka+8ei31>GE*r2MmAc~8>Z}5=9a4h`-as6Lx!??^CTf)?9k$6U))))mItzx* zBpY4eW3z^I1oHsG+%muF%KWWw8}->DbTb!JE5;-S@}t?5!BL=vSr~Fs{Fe{=#RQn_ zAlT(<&_ijWYH21R0VJdlWOoXAsP+^Pn9EU}D=GQRW<<`27h2k?H$(0;{ka97fK5U* zsUtjX-=L)#YK5rcvJyJ}A=5R!x}_{x_@&M`@?3$2f13bO z-h{krs3Z5*rtSHVX+KWM&zzCwBpaJurq@3i;^itDOpm!cZh{ zFsqfUE6wZR+|+eXS*y856Mi7i0RTMX)u+s;qwWSOZaoNC9^A`!Yjyi-o7s?MmM-R@ z%22{a**2ajy5?jY9RJaO@*e{Z{9pg}-%5AQ@FF$wLPz-R%K;1rBlv)E=+jXba!z@q z6Y&mNzhid^t_%L1VY^CS);+Q;1?=|KD5;SKSBj^D8gKIo)n8J>j2*B|@9<>b6W0d6{kZ;QHaz+;6w!bYP) zyf_cwmA=SDZ@Yawb^oJ7NNG$WHTz#m*vBP~tqNKW=tKaOqe9$V#jteRra=mxTRO^h z^*ZIKjo)T>qUjUvu>V_n!ykcvCN%=;=fXh0Ot%Z3Y48?5`}n`(U+1awvT07AzG-OXV&#ZQh%UVK94${z<e13;eInQ2-M=X8~slP-RwlSlRcNd6!4 zs4S?Fe5!NS|ENo+{5D85<@S))@(KPe?*mOR^AGr%{A=a|@3QXGyFojARR6EUe{1wd zuNSuTRi2OP*wQ{QfS;28Cj)S@)ep9J(&{s2{$9S`^u zex>UqNvpq;>3IE+jsA@M3;ri&9Q&se(;8Bf0He)A-jBrnZ{zw^;~xR^qyGQX7eP z%FErs&dMzP0a`v+oo9rCfK%^-FDIv!sr~aEezpzwmZj;^Q1M=+Ck=HatcpvY2n(9% zBnah)SL&Ac&=!W~h{@0oq1SySXV52h_dq8Wq>s12zfFh*JUMBhw3^qj?@JOw=EISH z+1olOI3^7)@*8)qEM1ca*E$H;<1k_4YIp;k@{|qgy2hZda{y`w6j#I6j)3B!woU#s zDXTKB;`K(irQfNMNqbfKf`u=;y~xl+2CUfmLvKy#?09>7!+-xj{tx)Gzy6m1 zfdBn}{onAv{7?TgzU$c&*yVru|8?h8>zpYj~_fA>{aOrr4Y zkPNe8oM5mpxz(BR&fRf;_nd(6ARrx|_g&6^+@AM09jsUr3UDlEKMZ&DQ8#=!{5>WW zs1m;9-pz1x0>BOTdKvXC+&2p>rgE8D1`>h<%QZ zb)}xZ1FY}|obP0EM%bKZHR(c&OapSGBJaKU z-zKMm=q?Kcru`4X6)h=~(*HYQOajE2J~>`6p+yQKfS7!gekuEu*1yz_99R5htXK9y z-U)pcJI<4H(dW!AOtm!81iP^QZswJwR-b0^mVJLlBEP+Vx~8Ke2VQ5c1cwQZINWjwUoHsT*x7T_L@Q zKkx!Y-+9fCXBxaynxOZXev~QUQ~T9x5?sqp{_~aQ69%>7%0PQa;}2=1j5+YwCjAd6 zwBJL%L}~I1ov!o4VI#T9z)S<0?xh?KxLP|Zdz3}OT%FohKHC;tQ~m|+CzICLZ~a}$ zzw)+>cfvO7hv4fEylpZnb*BBA2H*kznWpwn>GG*-<~=ahm0%-}363_>pVFFrdN6>r zF-Q6LUZmy2uxG$#k0$>Uu7Um&8JkWWWIXNv3;fk)HhYY+u_^!F%g@1Gb7)RElyrhS z_1|XRfsdl8xNo*-*q&)ykMfUkKN?9{QQgq$l|EDNw7v%eV6)ztw>P=HFnONMHuN8C z;nQ^*|ER1qntT6!DgVRv9>+f?n=|B(dZ@r;7T?)mlHn8T|2+PgZQHQ_RcrpUN;P#lPkixE!-gOxJ(Xk1v!wR8m!t_ zX1i}OUm_jt$#_gxh1-z-GXHm@;ew0K=%7(f1VkF!;Qft=jT5h*ep<>%+nwU^yGSFvwa89KL9FoRszYXNlN+R=@TJgiwyQqR zyzqykyn~+buKdBjTf&oovdvZOi|;v^bcv&o;gcA9+C6s$m`o11%DFLmkWJuo)5VXL+{b90si25r6S-{&h|c0KlL9^}obl{F{GW z@L^4|^v|mW_X^i@#Uu)MJ>3f?Lpx-cqHW}_1Lnam4_p`$<-TEWmS-xM**ch+1iY>+ zL-TV<=rBX+|MeDU0lYEXP3Q*0H^J7%3!WulhHJ$+67{^3rq{)Zslt)FLAd50*V6Y3 zaUin+88Xhj*$NZ=Co;4*v@9Xnpkn2F!*);mJVW?gvJ0%%dRPCHwkGsQ$7VHIF@Do7 zTb9*uZ7DFWeM+36;0}hi%AH#5OBvr^H?Cb(N6tNzfvs^%;Fq!gCBzoZZyn|={fC6- z>f;~U>cU75E^ba|ld%y2P5f)3G0zr=J~DZwV~N1uqEU{2>Tu$a3r^Z{EM^eh`@Ub*#Dus zilfSC%D?KDOL^5V)}_BQ zbQ;Yf)3#<+(ucPGbja-NgD3o3KCgVOfA(|vHvVBf@%ZWSkJcr$IFWLixE~$=Wb+~) z{Czq8acugjeb%oY{{XxEk9)1}=~8)`37f2DfrsZOnLgQX!_G7x_ge4N*MoeXbfdL7 zKs=cncp=Dp>fe+ zR)^Y|;6ewmFGp2<=&yGR%z%ko=7kQfgc$N)__LU0hzSxdovK`gcFR{dSL4Rxa;jR= zcb#G2iD#}7C;oAt;-DcEn3ChYI6M;JP|yCq_6YtD>bLrtC||*Ilx-oYN5^Cl4TAyt3TwAtq1bjpME4gOVJv z^@H1>^L!onOIDbeNsmbdS=ArkR^_Nd{$4ygq;>C{+@Q04*}WCRAIs5=bq2v&ksG@t z-ojfKPWL?Pz-cq+gr^hH(xwt#FxI%ogn-|1Z@AvxR@!Cw^Z)K&VP1d!*Z*q4{q`2{ zyj2}Zk6W1=2k^=P&$t(DEu7}Ox3d4&>gbXO#4Z+|DPcuhTeJo) znYam?@AsN`fG_&G)uf^5A{0*xS-UFc{_4}Xl3sN9P5TrB!+x1B{(-n%$g?R-1!yU6 z$}*KG!@#hgN!vTEH=Ugxwm+>lXuHd#1$#SgoyEI5f3 zn&AQau>a-6H$XuGauPCa2<@N6?gFdv1?zEVA543ulQXn~VJma|)A8^2pRa^xGO@E{ zMGr{6OO6Hq_3kPgedzzu`XuDeL=}OAi90oALY(z_9$H^jlaE9naj5oM%x@|0i9esc zb|xkMD8AGV3rm`o{gl~4c0(THKQO$cj4NEi7a93)*;e%-CTX&uB>VOnlj@~?R*rhS zEJB?JwNkIZq9Dp&8_z1aBEc=45ZIplbe*c2W#&hf5A0e#sUSaOnI=YUe!Qt6vWY*E z@R>KYR_b;sTT-|q$}+{3Zl~tEtWWClanH6DbQ={Xd^pg-1zojBghd8z&EW*0pU@>~ zcDQdchkidur31q~ZI-b^nh)Ad8BYWs@=TzVK{KE4xMZ>-AWYieRymC{mUsD0UI=`% z=_yxPKRTam)^ori^#~&WDnICQ@yfBG<+5WGJ)HykQ+>@r#kSF9f1=UkU+8kQIeZrD zIW4N%3-Tu06@JN2R-QISm7N{9+9CxW4}5Z=kLtI;y8|(h{T0{NZ=7Vu5BYd+J8Vt< zMdn(M2I&j(h0rt#HNNOCUdTVI7_c7IU+gWxnD(mSEj+E!Mg1x)suK-QJ_|9_nR(Jn zEpxO32bnq1M`=D;sq|5L@Z}V}Dc6{JRsL1ZSw?u8@-GHJWkGdjQ}z!HzyTp2*{7@y zy1!Dd4gCjR078H7_s6l9%0JUYM}BDhW7ST|tjPYa8vo$Y{QbelKiXIRUgICJ&o9S6 zgJ1JL+kd#4Et)#4Y4SpKCU2)=&R@OXD(>~24B)5i|A2G0eT4hKi_9zhK2$QaX&O*YT<#pW;?J@?pDh%EK0m8dJ3 z4*SXvaFx0CotCoGCf|}oY33|{%gJ>WU)88*|Kg=H7PP!Venb9SXdkNoj8k%Z>Dle+EUE*VuiQ~l zV=RW|srH$-zByF?klI@=os7eAq;gh=uhz=-xP0r>m>!QaO}_~U1{4Y*|EqH2oLpkz!tqGdI|IOr}XXKFzrT&qY zb|`SQsK^l$Bg+|_=SRe$_PL9|IAOCUq8IIvtKk>yZy|>&CVO64nT#d7?! zF0tP^c~kFF2*rey@oMcU$#SW`YO}mOa?LQ|A*e0FPv_b6KY4i0?$5EQ6#u=*1 z5yCDf3a{c1cYo0))9fX@Dd_9{P5T*1SF}aPcIc80^Vt_*WVTr{4gZfBY z#$nyfGR5tp6KWDA`#UjyAQ@%iK0^YsFO~l8*#Dcz0ZQ*uKC7=^efFJYv@glwU)q8t zw@V)G?6;75ZC!R7{~`PqHs$#s>nd*MuSjA`BS9d)n$Py^vkDy2=H=rT7=}hIZWrX{ z0MU`L3_x3&4!CK=(%B+y=U`g!=fEQeMgu7dSdw$lOvX+sJljPh(4M7!;+Oe`Q6p^A z*);K=I6-Ji+)wn@5928xt#=&4s`t|fzYwpNbb2CWn2XCS^{jrUBDBz0*DUGoR&Nd0bznJx{_`9n^+@Ye(Cd#zWForYO^j zzv4JqtW}f7ll>|G@~mm8Z_;k!cEG>c3vVbD9Mrp^w_5)+5Nd;tZM8-o%A6Q-fd8X= zp9Gh8_99>MS_O9WA6cc?F4ZZ;nS4pRt$O1k8-hRO4-hbX2kQW0zV}0Z#nI5)Q3f~L zJm{rYv)!UoG8kyO2J~N7{2}iL{y01jkjF@(>(B_-h*w8f=Om zf8zt?XaH1h6y8^zkRQ@c^qA`Q)Q4%Er?Ja%{3A3uj(@z@p=qBU|Ddh?aC2iZGeo<$3fBcTUuwcxEt_*9!m8!jO@FxH3 zJ{^7OTD#`Tl8~6Ktt(}_T0Ha{4+iP%E2v@C}Qi& zG>K4zj(h$eJmJT7{7bJTWEE=IfUGW7fvV%F*@M7CV@x~c-yL)`WgKUf*~Wi5q#!i4 za-2#?C!=tY|8meUz*Vfb$iLcuB)n~MN##1^Vu{b4vQ#0GJZV)E2jUzHdEzQpI)~Cp zHpU7yVT6+Z3^O6lAiHt`D-Vs;Nh|75z>T|B@t6EX`MVq`#9xP7sTvwRV)7qi4+19- zf^s!#o)wY$=Go3##SUCp=Mb#WK-XG<&v^eb_Q_SP(jF0DsF*a#pmUv*6BN&&t9ymK zVG*u`htNU3-&P17TN4-;V3((T0_&q%T+4x8G8GeR9`}gf(DyX+*E%m@?K1E+Az*7F zU`=AkN_L}utrhQo{1^WW*V`NBb-lgezy4=`9fWO0ezuLOqYQiBWQ)HLUl7Df? zTZHoo$A8I=XV=KO32z3qj70?Kx*QYKDZ39sRA zF2=H<-AVbm7jWtLN68HHJNqC@(Yu0Ql)H4@Q^!Q!FiKNG`9F z*Q2^v@eh%IS1TWMfOlOLdsw!eeN8G+*bhfJYpbuOO#-}Z&n@_coKb($ZtM8Rz0Q%L zcvSaSFlV@)yUG#|mq}-<_s;PPc@nmI8#B-*G<#+RKl?G0$r+9pC{x^EsQitI?NycZ z4_SY_&s}9A>)cf#_CFU{0MZYjH+T??6-hiEHY<52Xp~pYA zr=57EX`5{OsAt%uZTxe>ABS}8&lCUS_~&%J8vkHtArt1iZTzEh{s7bC_-EML&*1+w z{!x9I<0bu__lncRZ>F7|xAD)*0RRp}*2;Ujk9S*@e;4DQ0~{ZzMBz)brU4Ql{+~Ue;^$|8TP^wd4A9< zp8zWw6no`j+9kzmb#>OG@)bJJ;!Y2nlDN9i0$#O-lc9x8lJYhALH1m^!V-p9DT#Ev z(aBP>w)nIrXM+EUqqYB=Y!J@zT&gB=os&3}FQsTXymL|~bS3lTA(p}m>IWwoocLSF zdniE4f9aZwqrX;P#!6@j+@7#n(KEvdA^0!OXgYI@eF{lTA5PK$$=f#J$d#CM+EBWT zhhLT+<^)eJrC0mJysY2L*=j(>__uQEnO(TR-2oO84dk~8{sEbn{iE~Q_?|H4c$RVf z0a%3%(pB(j3&{7t=L$!jN$l>6by(D6Ua}=S50=O;+q=R5E!XkVgY~<}$Fmr0t)dUd z{Xh8^e}$*(pZtrzT=g+O0PYCL-5u_+$>UC(*MvdgM;)SlO1uq$W1X$R-56KqvD(4m z(f-?-aJk-sb}cN`%7cI@<44`A+{MstZ;LS|!kV_>x@wX+c(LRqYfR+lgumiE?2+0(Hj!cf;(hMgVu&_F+Sc4b zNP)^;sBC|=C;I<#OfQqllyey~>x6qhpCD*!f`8ggNy}XWNO<_UlM@B*dDaX-`ycP4 zkEmU8sD&4XoP^Vf^+LZ6e$PwCKY=&HOhV*`c$EC3jRlj%?EmFlgT&Pe-?AOtO}6Oc ztxqCPL=Ga4bab7cX^$7om*AggVUU9Xe{N*yqbM7{hj&wswn112YRhBR-%ZDxzS};O zyuVXHmBHioQD-z*17E)1K0s~UPkauRP8h0#qYZy(9@HR&WnA86y^?ohyw!aQk3$6s z5d0^-=Z7!pHThk=;h?YJs(B`#wXS)cWawD#lyS=JQ=V7vlL6=i*L+HkGKfjvSRMH= zy)dP;~)8@oIUmbt)GatvKbrlj|cltc;x;_Bh7z^@zs#{v`Xeax+3Fj#H zL*t(V3Jq_0zkxMq^uhS2o8tA+)(#Nm&H2Ul#lM16j^Y@7c@iP z7{KsI+!1i)VXP?nR>NUJ7JgijxtizdbX`Ta96s*lBwA3FW202Wn}h>&ATdt~9C57J z(G~M#xgqbYxP@qN2_KLq+0!1ckVE2x5ur;507C;XOoDq(4B^%t2LY*}t#Iec&Wg1h zv66F=reuJ!vA~@6PxzDahHf$lb3AN2BVZfe5)o(xHCa;=CuU63$y=41;EBh% z3^!o9a^54P5$g&1uTW1`6F_fPy6^XL>{C83Te}O)>M&+dr(=>KY?cEVrpN&>o>U%$ z3uGM@HbwcApZ0H-_B&O{0xRjm)|F z2>C$SW6=I#tBd^cu(e!JklzAkImy)Rzw93I>L>EMLdH+p@8k}sv}?5+j$xIkD-O2qs`+1!r%@wkBI}G2^IXwT?P$(kvA-TaK!FT+TxU1${COY zI+}LcS@}kolhB#bmaMLKJcokgpG8NGe<)(K*Qd`vh+Sb{Gj|ELouop8>gU#ri(?4z zkm6vuW~x`-ld)&pF3sx?8RvVO4M=4>CcPY$AO}NMOv;bv1AJKq!c@Y=f!V;nfo;j} zG!`@8iM*t1jjzi3Y1=H9hRAyR33uS_Bd-Y^Chn}D(N<`k@DBuaK^sM*^19}cHpL)S@=3lADCtAm=fO7}tZwo@ zcsU&|ns4e}eiWdd)oNwF_^*{`N2O)uS7A{2waHEX<=*w33F{@(e4g}jeXnvo^dqYg z{HLrbj}`w-mxc~j<-I4E*OP7i@Ot2NRlL8O_R%%(gn7a^8D&D7s5AM}3}2_MVXteG zf3?>q85p2sl~3}o_+#gp3k+(*r~TCOO&3hcKFPo1sDJalk9Vz3>-F;5`nMrd(|#%6 z2dg$Y&;m`ri2o?__(eXIUT+@_0Css|I|l@9JWn*Hc)U_Q#beT!53^r=8vkrIc=nkl z@-Oz~ar`r7)Q9{J{69VZK_~Z9cbx3;QP$4%PWhMipmm8Z>4(toJN{Aq0G~i$zt)1& zv8FJ-x=!?)MNT4Mn(;^=l-$p}`lm$?O!{E_)63XsZrE_urD;FaWXbebUW0H7-{V_SXV-xmHE+5yCDr;+%Mi4LyZ?zGMo=NXnr`n*`} zNGCXVa4Zz#!~CjA4Qukqa#3&ON%JDKG?8tqiU?qsk>zBaD@5r~ZwCQJx%IOC{T1Fr%n{K;(UA zL^+;x^|Vw&rw1KHIk|C*b1dF54h_(E4=|*Vp~7{n%DOIbl7+ftjH4dz^XwWed6(VL zMf}ik-tnhdl$|VL|1D*#Y+Z&&$vEW>#tmWEAPZX3v1*XI3}6fzwo6)=-x77*0b9j>EB%U{2&~^Ia-s?r&gd)P zNIuz0yBO2|?SkFh3=%qFLZA~5+X-zs3zv|++QzC=~d3M3YXOaImiWtKy5xy${&8{x& zO`gGUEtqlwE$qd`9SFV-S7!fK@(Wz-2>g!SDA9|AbJp3fx+5LT)EUw+`+tv}36|D9 z`vQtI3Xd8~L`7o^mj63-ttJ6#bv7r>uIk%Zi?oxI2ec8G{aYXZR2Y{6l{PzvK4JrF zcb}9Gn^&O>!{M*}6zO$D|qiZ}%)yyEktbT@cCXN?5N-FkW6#>^Pv;0edT_^~=2smRcUZPX+Z}SF0}!)CAon zZ>t+k*fSr~6GUxO>SJ3mp(V53tiMvm$quqi-6b(5y8K;ad8G!QLN-Sk1nyx^kNw4v zi|KUBX2jmGt|`yFXZ~q}o1IZ!*pPn#^JxF&PuooXD;yB}KWMJer>un=r!eg@@I%@ql4N$@&~g%si4vFB>&cbT^Tp(+6}+}R0JYnn|0%v zekYvudg5heIKYfS-znz@8~l5Ze?<0Xf06R<#pmPrXQ1WstL>S*SN&|JWYS+~VFB+C zkAK7l|Jw1-zDjZW}_V$|8$+4`U$Zc zVgqc#s`;Y)ANJ+d2gwO*d-0Exc~;=kVO_&0eJh@^vB z+20Y3+tLG1S+;OKfig- zKxo(P<>k$gLdcc#X%->;$KXF@%pIG#qGQU0wxL_;6i*o=4e#Vdb0V1)uHN~d9@@L| z=8D?Dizd(`B-5Idiu!euAat+}feu_%7O7v5)syr4$4UE;7fuYwButqW!9T;hpy97_ z6hTPfJT!Q%lW*USxmugF3qVr;Lhp3!yqwG<)^)({NsF$}fxzg45%3}PD8nk$A18-NA7p%g5K)P_sxy9s(tU{*^A0+u)6a<#Xp$%o_=fH>CRdc&fNTkZs~m0nNdfYna0Fj$iP7R0cU@ehJSWzw|3kpcR|u?^#9HU1t$0pUR2ne*s&Np zN#@wB!b8=<1=yNY%>IF64A7P?M0BS`!f2cTR~vg(Jwb%D|Ct`Zw=hXH3AhXe@%O|p zclEKaP5f!E?hHLv{BsFM7P6lp;nvCPXx zdTE6;Jo5|mdOts&=ZDGsz-^V9yqCPB4uzO$S!ZN&X~zeA`r#@@CK>2RK6;&xBP6@+PmBmxO%fya{<}q4SIiXB%b_flL47UtUyDtdY{_r zeBhbZsl46f-*_gAiqw-1?RIx2ZO@IC2R%LV^C8b?#y?H| zRSzNd8drMgLdC*1a^&{h-Mla2(Hfze3^5T>} zXw~w}b`I}OvUQSAd&s=KANX%+Ct25g(^xvr{2z5SxjNbZ_|cae~Ln=yX=b zGsl{K>p^nW$7MH?_7GV^xOsJwwU@YvfLMfkDzUPx-Y#pR5hW5oBJmLyRNBHn4KM+U2f~mqG@wKBl z+lU|Qo_zu+W>J@s$5+cgObXD^M0sM!3lfF$Pfp2BnTCJT2Q^to=TFKsX~QzB z4&@VNx`%v_`qdr{+q4{EW&cuEVPZo_%Oy)S5x_}?a@Z{NIXM<9u zT9c;^@N5F2cMV-a=+wSs@G%(px%fV{t`-tYzTRWw+zkv_|9R*vhd=ubEe5d$CV zAYWN&4^WQ7QO>gt0{&{t5*PAjInOU~c-LfrU4Zf41BS5K-+uavfB2_=f{(8M;-CI0 ze){RBpeHFFyniG85Fvn&hZk4)poQFmC2W8bziwj9%_QcEH;&S${6!pZ&BJk zLJkFl7fNO*xZx~a{TI`*&Ln`ZkWlxU^x-6iMZI|zMaXtLZz0-s9&DVGwlP_8p=6c3 zPTArlAa$setQ_p3x0Q?(gd9VJ5VMR-(2*II0aEBGl9lYCLv@9|daV{;VT#B%)qjQ$ zL-kK%=w;biNAd`5lM~9M3Hi^lMA$OjJ*Sha3EwU&8m!l7VDhmuf{SA1b-mFzU%pIwPw zbGtRXY9hbh)kGB!tY;-*bu{!RFAjXw_nJ2NXCq&$;Xw9zse|4&;Psup)k9G@bJruvv9xEpg5TyuR~=Sm zb>K}FEu#k@XF}lAQA_9JflFPFZE(nkanN18pmesacztlVN zSG%Odo6e=<^<Z!oB=jmGmUVAsFOkDk8Kf8=ZYz=Qk?K2szc?Bf-Aanw_l zf8kZ@{}g}0Bkg3=;hHXWw+{0J{4AsOKBb>7e@<2&DScFhAICp0`bnI4IqG~G|M&sk zX6p|!dmR59@NIV2_cTXi-DCN`wegSO*w`!hAICoj`aX?+rv2XZw4-&b|AhbHcB`++ z_}00c>&s`=w*!+}k&!-m!90!r=`~mc#w6;L_tjigmapc23+xc6@2L^4`6bYxBg6%AhHtM6;v8Ym*5e7*|Ac1$RuU=<3FdPEu~6|75sS2c`%Y%u{)&XV%o*ai<*-GcJ%x^Ki%p7-&Gi7X-0NM!?^JAlfY z6b~5h;@4gDD*jtef^FX)qy^J2ES<@^S6w-Q&^;sILB;$I%R`)9=DP+YOM+e zP>wn37Gv&X@#{+d1nu9#hS+ilvk8(?SKy}V+2ZY5{9OHXg}^|pxVL2z-mG8|-T}Ux z^9C?P55xYjyitwK1HtfSZK;S-6-X zSM4wSQDI(SnRX?OEM2M(009BzaxtsPjD zE13kC=0EIz^%Vt6#AO3lr!!yg?+L2qZ~NS$6PuUF#;SsSX(AxQ-{?mSt|Z7 zg4p269Awextzk>=P+S<5v%h4bkdQOR1%hlBvR=1#Fs}S`AUi}si=tN~r!nDu;ld9_ zPdSzRGDuXFF&U-J1IRQ^Tn!!<{x10*c}w)#z|-n|)-Rb=*HZqOUn`Y&oBXp~$*b^A z*s^Vxc2wVoUPzJ5r%k#3S})rQ4;z-C*{r0$Qyezhzu-l0uRG)I>kvA>Q1lfaSkKwdRt(qU}!h&^BaT0Lu>DZdZ2n*$sh_z!*T^6%ZYPF|~? zY_?e5%`%E(lchli)vGp|jl`4ADKAt01+Gp06*ly=281v~^HENo4Zyg5t^AKNPil7J z(W&am&nc7H0jS)J`le1YA=9KB;Z~W^^yHE7MdkBk!&^B%OgyW~lld!Fj}GteeEcK$ z1O5Gn;~$Lo^6o^R#77gRF;W~(?_0y@gx35gL#IFvdO&d%CQe?kj%EwhUQfM1uS4&j z)IZ_i`;&g7m_FYl$W%(g$;-p!tZmmM8;L3M- zP##x2x19p3jf^v#Y>Sn3si$c90ck&Q&KT#6n;Z31sGLP?W9TGUjXTL(;;*Y1 zozGY21;W|!IR1h3U6;i8Fa9I>@1_34i=hs+Kgab-fZ-e)i ze7SIC{CBG9+JVxY(q?a1vFumd;o3~Ru3Vu{zD4*SuNCB~r_FX7VAtEKGiXW2b9b0W z8`QSk)qrRx_z#{_fP}g9GhL1_w>W@TLI;8PMvQq2`M-F0aNujJ`9JyRe~In-zyA;5 z|M@?+*Z=sh{$kOZFj&x&Ji1Uj41yt-v}Yj?Dc5gSvP0*7BW1^IOPC zo+A+5NbF)*GH@kb$u`OqC|mJ+#o^I)76B(6yu!7Rt^pq$wKFbb+#6tbhRn$w5%5JX zk4YxK#{t+^%0GoH!_$=Vlr9R7Yq)1M2`F;I{B5!ToUls+fDG}Kb<#7%9bSCj9lceT zT-JvvbS@{O^qhsO`V9@qRQA90HEm`bKn}q-#~%zM$7lAr9BbqmFJ+%;lS>yVi+%j# zg-o@ z-f{;<>uWvMF&OGhg6In;c@kt}D``;|N$dPN*Y(R^>86uEyFupNG>iFC9;`4^BHP{Yxh#EvJ;zj~fzH z21<&I5 znJA|HMOVoGm$-LX+HFg&gGR3Zw)ZIsg=|^IAbbfNwm>CIw!_G!Dm{VwJOW+l(4hmg zXz&KSg!}Y}Ac7VVghTieMonZ8wxx2(Qq?*8UrA%;7&&sT_3eGCu!HZMe}CUvYu@sn zGiT1Zc80p+9mfm#Xz;%kzVQF{?K;@6cm3=-*?CLlw{h|L__i{G9a{%?Ia65J@H6;- zZ^voxa`TA)cfz>v-Y9_ZI=2eo=H87Fx*PvALf7Wh|IKe+KlFbd$&>3F@;`a#j{nho zVu6o~fATs1NBWntWHLDVx{)JTIVYokJFo2OPjZ6po4odK(*I!_KK3!LO}_m5Gyc!z zzM*6C#@^?n&yDWA2Z{>F0xeVR)l-=`s59JAywm$SrMc09w z++4ulbl=^a!*#CvKl;rqS5z?J7)|X#@2HpXipOCAO=diE4yp|39+S=n=A_^B@=*Ur z3=nqsH4UL2Velyp(UqajV@_7^65vjOJsWxWe>E--a03irR7Rc_4=SrMDTxp=Z)L;vGDW9l;lDGpo6q~$2tN`v zn*VmZ+5BJ}hg9>wx$wb7hog@i;Q|69qR#&eOaXoNe}t0Vx!@Af&sP}+lIkdo+*kyx z%l1sJg9|F#4sF*p&a;M-BRbHJnx|$ien{;|Nk|bO?B3EhJ(tbSICt5t;9+rT^BFey z$qX4yTgn`O@oozX8eVmCD)WE!bu``z&m9~;5NEwqIe@TWm|ji|D4U-dzz0ZrTfoY+ zg^2}=0@4+PUS$Gt6#gn0AAt%&Q>8Fion0R*gEk`Y`r!rt@!$D7*gyHlzlZ$M?_KVH z_qTovuWv7c=cwT9qE}^AN7E@tgF^S(U9srP1sU#ySZyqhIgH16_EJRXrP53HR$a%h zF}v`(JIK=Ge!IdlI{y9JU9=siYb?AFIRcF1BOn?K2;V))O*voC@>o~%>p*G8+_FtZ#$ zA1Mf698Jc1bv&D5JKFKV_CsxGLBac}g;u@rd)u*k>g0=EPda>%m)}I(^t~FmwzPfUe{VnzD|HtHNx$zz5?4T)#SNYtT6xiI3t}uigWZ#5 zwR<_6ZmH+BC@RGw033d{@4p8QtzO#w9exD`41RAbHuyK^|BCONb#Wb@E54onj<)r^ z`X3M}(_*5WSEaT`^9g2Jw4>B*)7e_i*L7i_CNMI?Ym3cntIw%hPF|0T6Bn|Llp83V z4%-qPqH`5GHxyHV?YF~E<>url#V<#Zic$uFO2p4ZHGG?~?kz^{@Ha0}VQ~EY90Mk_|bzr8b!k2s5)wu~!w9p^H3 zt6YE9PkhVgH}G#VvoS!I8@Tjm+clqCms7_$ZHQ~bFL8g-|ND@Qmo~KPLms=;|IxqI zj_XX8jjqQBsvFIF<9Zv&;Qze-)_5QA%dV%Lw|(qh_o`&KKDKANomT$N9yz_Y28Il> z&7Fr_rndG!uK>2+xs{2V?;E+=oUrTjM`dqxnfLdt{U7p_{bt8s@_(G~M30RR^@-NE zKehkk&w)vrn9tOf$<;*{@A^OH?}6i;-yDYqzxzMZI}X0f^4`Z*j(Fbh?Vm5H>6DZo2oV&Ztm_daH)k9h5-YcIQt;iKW+>L%RqzsZH`S&bi$^{&_D zZ}};mslD1^a2ST_o)D+=YlM#PkXZ6%c?Wb1fW{G3FaQ7`07*naRI(Bo7_MM2%g>`# zcqG7_Y_FqY(AjXz1e8AqO(Gqc$`W4#z}g9WqK`e{3Puw{0ZWmf1LDMIR5>jI$R3;> z&>WL*W`hD*{;=pM@Ml(H)4y?`zUY%y`ziQ1{#9?XSO}ipIk3j;?;m3}V3htMjBDq@ zbup*|gVB?4r2|8C{H532DWEKR9euNCs~3d&5emhIQD|N&yY)Xa>Ye=+&`1kr$^VBM z^I(#KdPGll;Aq%x4df6Gw0Op&lSICp@Y@a)$^z*<-Zwz?UiGw4Ryay7PH=AI^B?ln zb}ZJCB@6y#UU1gOVif$t9`Tw%M1?QG9Rr+)5`OVj@gC=|e&kRys%7dM2WO3KC9!sP zc?7SS{om?DyEp=!A&#_{{nl?=Fgo;`ZJ#=tCTwid6Q%3imp&?(%;fe!0#9yNvUVEe zf)|vb6fgT3*8%j|{>;{|Y~DDd;6rD#Ye+}$z+hk=iT~(t{cU{s>MP983H<2yfFJ!+ z%=bqCZy!J6SO3=EMlU=7ab%6-(7PA{rxtzJ3zHA~k8sF%52#^P9 zN7iD(!ecyPW#NN#tHK9VLoW&jWK+a1kjktq|3wELMZR`o6wV4(WQ{+LQdyKcXzXj# zLO{DKu<$}2%6vyg+mB^xxC^3mtZ8f7cfJ_D?M~?*^O<{>2^lBaKX6$(E&iijTP=dqKGHJ(aoM*#LXT zf_ClE{vGu1s@*x@_BHCC=8e|>>k)mazK3LtuNUIw{+Oek_Py_lAZ@rXNxakkCv`^o z9zi~G9FxZ9sht8x?W$P2$JXNd5eH7A|LQkzX6oI}5ubYpfrx0Iwn!VaR?a6PcM~@e zmxhMgk&?6tyHA+qOe8VvgA=3kvd3iKWNM#0?;n-f+XxudK|zu5Oth9!+jH!MTVv)ZmQasyK@XPQLS94oZ zX0Hgd1DzSR@qa7*o!#b^n|}T5XKVk`?>5d+Z&QG-YvTqM z;$?TbqyQXeVu1Q>btEYEo6HYP9jsw&d~~T}e@=hGf2;pZw}qAC?;W?aH@hD8@#xy> zq{ENKljGUHJxJpAzFk4$NA>+_>Q-+$;^Eb0F#zu7`x7}aevPL5igs3J@S8uXD{Qj;e6rn5B|T=Z9D2e zBmNgX41;0tOLmzZ{-4GF@j4IvABR7$&-Txd%bRi+{lDR3FSl3T@%TmlXJZ!yh#Lj? z;CXEL^75bgT+s`^e08#Z>R>6LP#bEpxD3~eC-LUIo9)YqN zIVGpdGq#uaq5MA{g}|V0WrHr1St>ivFdpVF1#2H?wEMq=He0l0>{_N~% zJ2HykQ=FMy4=g_PV2R6eA0M^GEX<_gGHjmUwnzX~-Tl}P;$8G_21w)xOrU5XJW-wi z!QT8&_<`|`55h;BY0|XlsCkI_Mk}aB`rF6VDfvX_Y=_~<^(tw;uATn-i>}ia-?*5t z{tuxK`W@;wD=5EW?`sSP0(HKObdzXQncc#9gpR}T`Qe4G5_Re}W_pwF*pKNhR^)Js z?E|nNd>|4EL@xg1Q99XYT}SJ%T31?pZ~~~sfa8gQ?b4GRbLmXIyckfBd+`OJm+YFz z9|8R4@B9ufpMU*-0-yc_`1Gf@#|-`E55BLR55;T^FKJgVOFn8*0Flz)$fp1C)Ve;N zYFx(?a75F)b`~uBojBHtfSJ5l$IOJy>7&QRF$C?6F}hg5SUXDP>DVo*K*>n-J?TTQZIp~3SPM6czYo#r-~t~P<%^aI+`8V)HRzC!2+68+LK)7sk1@yHpvacY zbH+&PwjC?}vpY7lwH6yg?@ALcWdAG)mAGSoH%Nn!Olr&w_M`RfdS39?;_Hxk+AJm_ zm|ZlNp>**f`o}@LnuY_?gM)85uMjqd)0PTBnV3E|L^o zbp#^e?*%IA#;Aa~^o`&*f8#J;!u`yX`rkiHYVbtnx%7F#3Hz!WhtdDEcbFnuwgY9~ zsB=vuRvUJ_lpP<%_Lv00V}_0h9rdEPDY>n$f5755fjOiy{Tg6ps|FWB`f){62s4Z!d#1 zoRgM2{~MyEg0{xgxyhH>G2srcpWRPb8F-nP$-Q0=|(40myYK? z=4jZ|)Qv83-K(ZdS4+-pJVP%BZt3bK!*#IpgzIU-AKP;W&+UT73Df19V8+eZJ=ml= zJN@ncpoy2MXS*$Qo529Y9^l-s9bX%}U2N3n*e~qIE|i1+fh+$TvZWARruI&!1?bPW zRsdVwyf!t;ZsWgs)Wh41+FhM5`ai}OxBkx~{)h2YHotkBpwPnmbUonFV#5Vy4`pq&F74gvt<%{T(jPfvJy zZvV<*$UJM3*O|L3=*t({5@rlvPyzky@5J)|o}Zra^z^L3@a*%b-2_o*e$XEVQdy;J zM*#|d38e)o)|gJ)R_{USCXS zSG%s4G>78RSq#unX2?S|mcdJ%OojyB-rn%~_6$!<8-0y_jZ7sgw}Gfk?Ihv#fkfnq zw-0Z4eR&ansWRj~0CnE{lKA5=n}W)8ubvldwNoLn%Ax1XM+9Eqp7HwOMem3h?r}gb zHjaSpCZN6Xd3~C!y}yg6mlw&5-nBqIaMT#8vnaaheE&EG-NI$7PC0ma ze#Udb$6W?%*T+KM3ap=lo^CIcu?}csn05pp3>RyBudhWv?#kd;i-l3|dRXnG)`>{d z)mCaphu&$xu@S!7RrmJxir2T7mXliiSfoFp?E0f@N}j#&T>g)C5}2H>@oHPux__Q{ zdwa#(+lx$*q{w_31(*w$yI*;X_)n^l7D?)Xz{|_x&*A>7j@iFVJ(r#0djqHn82_P- z6)~|EhRPm2KOc=R>0pch92S=;6~#r^C0Dh8Qt9EstKRieM&~&2^7173mi{NsExX^G zLGe)#7e)jPiZ-K;hm&zVmwkV(MX;rH+9rYHG+iwEXUG38b0+$7y}-gnsh1bpztaDN zpY#`KZU0cT(!zo4U-^nd&-EvfczJ%p)AQ4YkEZ`Z@u|C9z&(yb<05}(7Xj!`aOYUl z|K;Tg&&QJK^JF`{lYlYNtbVy`0l5|`l;e`=M-1iT@4JbXJLR{NHeg^%bo}SUgu)ABI?C^6N1!;Ne5|<%M<6q+o|XHw5^YS(nZO;czcn?WNJcXi*9p zV+D}y^h>$c1ORLMQe8)v9O%PdN5l4aS;zdB1{5I@q%nJsi2?+37y36RFLKzhR{ngq z05gEtU*i((WPw}L4Ds2Dz!lqSVg~aehs9XQS9b^bdtsuLRw-QvA9QS;{Bse6ib)gJ zDEK*nlXKk4(=%v%SAkwaWAM@t^svYWfgU<>a|)Y_^=uuHsFMwd#)sf<11MT4007~A zHcE{}{)h4Z*0CF7mmLif8fcSsohr$0guw8Dd+;PMTz#a#lMuw$jI&1FXnG=jUfAkjja5!u)?$Yu@Iyj>TaA zWB#`${cG_f@cQy;~QRIUyMG+8m7N|QDE@NaSXaCzyywa(dgy% z1z&yj0Utkn!0U(C_1urW2*+!V{33Cr$K*|4w#HtupfcmJwOz!>*wbueEiNw zeEjeM&u`CQV15Ois+lwNdw1!UJqrY1{vEYg@wDJtLI0=9ga@8qp78eJ1s}fpfajM5 zL-1v|#2uLB%QdtRp1A|#um8=ziLZX{=P^II-aSBm_*egj4S0P%e&^@#*M9SFAfkd} z(MNvpcqhs~c`$-Uf1Em!hc-BfUaZB2*Vku!{OZG!_tz)!#ClId1~f2gogEIW#mBF{dc$|V^ARs^ufmt_s_QLa(>`edkW4|Ga4ht97z{p7ygVQH z@bLq_`s!mX5*&I*3wRV&l+CRLymcg^ku*`hgo{Fowu`(A?w8jme0Y1shYzoK{qQ_- zPL_~Avi?ZhZkl$>^qTpR3+6@tmzP(3{P?=`%gYmVG~1wm^S|#j(5|7PUng|fF1OO< zS%L7E=O?_qz2WWc6)!JOKphpH!ijyCPov#$VK8le3;iH~ytID5JU`>Zhc~>vz2Jq5 z1ZaOR>{`UCMUV458wZQX>%9WCi-AX!MXZGYoVgYUo|b?1R7pQ8ktB7bkYbhv)Ddgx zQoCxh;(y0wuY_5M;kZvFDkP?Xn1cffpoZBh8sQrDF ze_w)^6}sd%rpn2A#cX53Ur$Y;uCgfuq{(2?={fqE=L2@S7m&7ilXD@Uo#-q4uq+~A zQ|PwcD$CeK!LIqXAcYJPS)C%iPo7%D%~%#Y_%TwxfFNU}#!+<}P8lERoK1k8XlkSW z5!|j*HVGOs;=he&?{uQ7+$ov;v&sKw>-xBDtULS;+X&KZdYQP;5N;G;3&VZ6JqYOd zhz)1vEU1}_{d7-lK8vUBva7-`o9(8;5X~ zb^31u_%{B}?KpGFj?iX2=zKKBwaXm3EHLZcq1gQr=aC!n7tU|_pX1H$i{roW|27Wc zE$7%McMj{9==Deke~#wgijVe!H~r*(|B?Q?tDoCF*SovSxz66&+xar=$A$k*?_c!E zu8%f7x%00;FdE+K|D8_jzWYw?H=7LJ>0x!Bv)!H7xAqiRQZ$Qxu;oV8F5I=PngQX$ zQw8!`T(XYz=Pp=OT%&CfkCEvrSdqMMbRA9NX z?~8s>cs#UwU>y&1VC^gm#wH3XzP~^(oUS8po{o;Y6${eVL715Nk z9N;^10$49P4wNnmk#Z#{tl=`mxbR^%o<6MYsO#9mp?&}$&J!(B%Wj1hkvka_rsugR zp!N#T6+5XD9qjasFn@9^m~4x?T2v$qkg1riqVFi!<4n|rI?F!M@4IpR!9_`1TxGv* z|LAv6{}rD|jx3QPJ%N%o$J9UlkFiUu6n;=f1Z2t|5y&+ja*1L}9Bb9(I4Iw;K}nhH z3cVvE9}#xsapx)&Ol!#Q(eh$6W}tf6X%zS<$WN zi^ap)lO-y7^a&r$FS*knXq*D}QeZUyqxJuB9P(oocRgy?!4bv3ggdo!VA$zTK6aT$G9Id0T{yI8UMZwhc$H;ewFGMLM`}uabhYha3WAVqO~qpIs^kZ0;(5H zwL%{*RT})WEk9 z|1pk#67fj@93J;?t*3c>m<*2B-Z7G|wPzG#}}V)LvX6tt)tD z$L6f#9^Uck{T<(Y{Rv85;i8ciGTNW#b-N&;ZhY4WcOwL#-2~_RdYRyY@6!k-_*%58f0HYT+2WONKE30c zAAeIUOrBWJV{c#le^?;Jd9mna{j&S>Trhs~%_n^G^*7B+7yqa2OqgKncrFo;^=FDa z$8f%{;Mk{6pYZihzA?XwFmyl`V5WFz?98m!{E{Z}So9Ch4`T)X&kD?a`ub~p^Xa_; z%FJ?4(ekKW3fiat6eVXCAm$nVhmE(Vs|!t^PMit6pP%sQ>rc?}Lv`erf=SBew>d6& z_I$yUs~&N%##tj^E(ci=p6zQ5!B{as^`c?oD?h4R0i2iDpB2cC`t|LK4JU*Pq_ z2lyxd#s3QY>F=Y3Gl8c!#LxZZQSQ(D@}I~5^!NWhR$wznKOp>+JGlM};fMSQJR!KM zQ43?|nRx%SWKcRO7!UEbiZ8{wMLWe8;Cx@A&%bPtE%%os^U_ zj`?U6S-L1WHUM0uI*ezW=RdtKTl?uJU*jh~{-*VP>B|nxvds>lQXfbz4}%kHoME~b zv9hes_k!;y-+;ahHYrxUi$jPH(!4ZCLHu4?u;S%J9p-B z&!O^S73pj0{{!!z-WUD8`BeJ4>=hSB>ewN@!|0$7azJaF1wXRctrbm;v7Tiv-{sS% zPx$61pTv98&$R2Ljp=`3eE0$#?Q5T_>3_bTc+V4`-rw=*8}6WKeC+h6zV2NF3zm*Y z)#8Q5>vnC?FZ0CvH{al!PkoG4s+`#_yQc1;`{X?4SD%-_a~N?PX5J*+t5S|Hc} z#16Cw6<18%%_cAPw&y}kwdc&Ix@aRFR;N9d+2my?(L?lSZmoS--kw_|j>&^ga>llH z9e%IpV7Oy&E-tYGdpms;!GB&ijd}5BCnIHtRR;5i~8($j}gxwPvqrXMxiMIv5IrYWU z3fkAo=)Oqd@QbIi1N{htQ_7_1UlYx-a1pS@g`=WuO*}JxTB83#KaPJD)`9G{qlo2_mzJSXpWRPZkyLMR|9R0cPpZ4=D>c!{!%#cpq(~hGD{BII4`@aL>(dVLT?Y_}-l=rB~D1TS3Wvly(4SZwlN7s9B zcl7Ccnr-KV=>h*w`?i&RROj}&^%Z`-^PmLe=Dt0DIGDTVd;KpC*1G*!W$O!{8^`Ul z{rxolk6%CZf6Q0ep9A>W{GaWRYMnhx~u{@Q%;FMdRW19<+7Q$B$$#xB8z|DpzrQ1RB8D__fTfn8&=n z`&{H^?~mKT*`CSN&RfoJ-sW!KC>I6)Dn@^qSyt^2#m2jyS*S^@gTZ584E~O#cA#j% zwFfXceZ%KU#ihRHvk7>u`jVCMefrz7em zyp@rEW+FemubAW0A%5!QxNJ;Qm*T7=`PA@9CBpzbGeUdZd%3y%ZB zLsylF6ZFq)8$-vh*g$4w%=@u#rp$<0w|SO`!I&KFpA)3$Q0?@h zBe)Omy0nEzL+Gsa zMbe3P0DwS$zdBbm`-|&%@2u~33MgDxQ{jR0W$3h(42CndnTBW932X7P<*WnY>(lI9 z+O+hF?IGi}_ylIKa=`C_h*or`J;SD4x}Gb^9ZnyxA*+x9!6LCa@k9}+qLUe=P_3dvjU`prMs=Z94#2W zCjU?UhgrvUwPYx6#?jsSum=2WZ`Z#A4+e|dBK5g-?6N5NO1n=O;@ak;?=h_H*~PAC zAmgib&9%vkk2&fXe2zDV-|6EW5f2h7UZ-8h4eGPYx($9fSdL|rtK09*Mt(u8rssaw z{2k-LbhmXde3_VaRV*5QpDeLYkEVvT6C1wR=0pD{8pRjfZa_M@TtVLQKW0Da^*4S9 z8-sW6@Q(tfPjo99#@yiNbLlQ?d+@+6Q!&3sTmHR``_ac~tLvTi*2r!jCIf8GHux_6 z?g}tx*&GZo$2suieVFVIx!ZZ~X1JT!-hP}PKFj~cLj!)dA2G`U^PBql5&S-m-Tzmg zn@tE-SwGzWNnjqS!-*2mCyChcFPBqT-8Td}fES_cY9QM$@t6N9VWN^EqJsP0q|q&0 zXCNvm#J1kc|3UQ`HeLps`Zym=Zr%S6w0~Sd5aEY@tl{_Kqml*o49&u02N7FG`q3HC z8M~?^+y(Kr`G2kU80^SWcO7h7taqSaiWv*<#cw0?*a#4q^l$Lb@|6=lA6Uof9KEB! zc%zT2D$unS()V;Wbn@ub&GwS#S4ufF{}Al*y+#vv>B5( zdVvo*2VHUm;uSq58%O7~oL1zb`bVorep?`@1CD6k5At2A-vDW`8q)Dqnopf7H~BmD zoD9Guw^nI3{}Zqco8NO)-#aYU`QQ_rAPG9MIz|gM`vjP&*;zV!vaZ10MWbO^#WeQXf9!9^U> zu5}$3fS|x?>r2^FBvx=g5vUhNgNx4Hf5Zyn_3>S10;Lq$_bJ_$NgnM?amtT^kHZfs zd&yW$jce(Xvry0hW0Vctxk!AM3y^MlO((%f%G}U5j(eqe~z$kz4sItqYpudx%Kd=^xOl#r( zdvp5wS(sqA6GG&GOhALKwoFT=mGx%>V>g4SZia2&>$tBarIA)Iw?03EfW$U5S4M_IrwSdYc)9yWxc+n^E-(WZa1mcq_FsJ2|UNlIwcPF zok+~d#AJ919~DAph*LSVr2sncZ=Pn(^UZ7)r+cHG5O)e;<6L|8L&r>tqH)oanGk(D zE6bjzk7LpHGAXu|SSc+&>$J2sMn2Hut6hl+g-kOpL#kcKF0Sp7MJN^zifPNSG=ixc;3uy_p#N>ZxbBFH>eGmS>HhZ<9yPN@^=l{^H+i%C?7^Ah}yyiqDKa94l zzemsfbB8PM=8lI+7C8XU|JJwk!v(nO81^!wjZLn+na#-_a`cFHyG-B8_|1^-_`};B zytvWnPQP6my6bS$wfG74|yfMLfbd|O+0Dr{$s9Y2Z3w(ph}H_tBozm@a* zVQWa1KVA30VVIIE4bv-Ohr5y%WiMV}UuGrOETJCb0k^E`RhamxXH=Y@yfH6b;T zz39L|67LWGr*F<MU~=Yj!W4Dau$ zRE%T9C&I?yM*%j?-QcD#pwkx$-tXgJ=tHpF+EvJffQon7dkIpf`Ixc_{R7Hx;)Glb zG_KaVK{ZmgHR6~$z3da)4ywk8b3#@m*jEM&1R7^u(+A-^f8S|p5fh5rS+MHa|D>jm? zDyy?u_ASRDu4OLujPW%wHVmj3u`d}fGHIW;BhNS~_QzfGv9@U7M=Yw(Zn7%i*&L>d^GW9mK==#4JbJmMjH;r_&jcY{dAvvaQ{a4sS0tsm5Dk2HgdcE@oOJP z)pyv+ttvE8$FH(6F+ zJ1y`z8W~7V-horQ&aJ$&%wUfxFT(kbAHNn4BnI%h2gB24z}PC>eD?c$ok#7}z1*&C zSl_zoQ6@fr?d|6V|L|otT3z%%n#X=B|Hm7>(E)@1vGMXvRgJ^`zUcql$&HQo*8i!7 z2hMl@$Kd>e|1)r$R#*O?$)lI`dtPT;V}9;fckt4V%tr-xeLEB&u0-(f{jbVj_&+Dk zF1mb|dn*%r9ax>ufZ;rKxp#wim!H6-5qZU*?YeXhZX4SMzw@K&=XG4J$M-sN0K&Qq z>&9LbTk_}r3IaN>dE)LY*D6JeU<3+S&-?|5hvA3!sx67%*)PIl5{ZH(rdt%a2q4X0 zZvVG3`h@y~`@zf{U%wBdM8f4s9P9Q`@bi9lS>dgKvX|Nl1eSJL4Q36dve830XYif@ z+%;w`+L#~5U~1pvaOn@SPiEM!Y(wp+rSG`yyqG>c#ACgqp8*yIAW+8*Ej;k$xqWPd z)1`QaZ9C5-=E6ZWuD}J*fu&e4ZKVv+uMG}*(+}fVp&C?L-I1VF$!Z>0g8cHTQ~a;p z8{x1(+3;#s{6FVEo%v|?AVM%M{$KPPeT2;^2zhuQt>ta80RzoEnt~523ssyN=;Lgg zX8zte%_T3o*5>BqC5}(Ns?nG8|5{j6EFemMZ~-gOI{`A4^{e@R=?FMKvUBR2>UW)7 zTiNyOkLmcV!y}>^xusG=({FBE=`+VGHbJ^WomCS&lf8p)Azo^ovw~z$@H~LtEhJT& z4TIF|!rKAVF-VCx3U?9sOMm@W@$dYZKa2g7Kl~@nciUh7(LcVF|M_41Mf{~-{ne6h z9>3)8Sup%k&xOuOfQ}xr#mOUV*GM$)Xkh`&khZ}61-~f1SPeDrWd&_R{YrOQEQR{2 z30~R6=*4v(#|oqPF>N8@5pKbc!b!s5Y8|_HS84{*@3pX~Z*Vb@yvG19b&bh28KZt` z*IKXWfbo|3f?f=LEB}IWOIsiv)%*{|fBFT`q|F{vS+MjjwqSkgJJzXwd-~stN0Pnr zcRCw?ODYJrO?4Dl;e_xP0)$(&OTI*o`>p@W2Z^#xD7zE^DFZyv|87f)SWN6BmR5kg z<5!HAv7a>mM|uZPi-Mm%jCMDnX>9!w?|$4a z*TgY*frZ8SLo zrw83znAaay?0ny?1=LlJWqtHU&~o54%CiIi&10MtIWRo?vNOZvOiC+MT~`Xey}D?> zXL7Y7u$>s>nc}0d4ap{XQiLue%kdb=~w88tvV_|=2pm9a$`2=PuY zfB|iS25cr7L={x$|KrDX==khX8Jlha+FJ@Z|BGi_ueuJCQD8rmL({WrpO&)9y39HP zoc_|I-F%nZ?@hiLcEEM{(El4h@)==sTjb;GnNr`UPLH^@`{=%Ka|eHJ*Bd?^XS(nA zu;JCN9k-(|Z^XvC({}KS4_*oYlR$nS+r6D%cRn6~J^(Jav47$7$WZOS2Yq*X82vB) z3nrgj_}}a2ef@9c|8Tr^-`gMlPXRpmAJ#S|$#!x%PS~f=V`GuGYI1XtHy@wV(qVQT zWpZ@!e}JnjnaugP?`Y@swu#mC`UW4LWw}SZ&1Z3Q|01Ng%F#|N=l{F1Y}e&Ix{mAo zJN_4+c^&lcyWxA+YJS6c+}t1f-}NOh^ql;n4aY;~*pJaZ{2scE(Iz&2G2mE7u-ceR zZdS2+rtRgcz24Fvoqbp`rO7Q_CPs5kw69c|;=+mASpMM3Oz(*_&;h1O`KsW`$~H`% zootgsB}F(|0Vvp$0R82H%Dfte|iT*NhfX=UkcyrNyB#95`3 zD)VjacVFW^JJUazjR^Dqs?87#e&%u37|$kJ`N?Waix~{map%Aqud6brKXqm%YJtc2 zsTK*GmolLY&9PNKtlcAK04p)+e|F$VXOAnmx9-c&wtxkBZ!7?q4Ep_4)+c)IT7>O6 zN726)bBF`M)TnG&r6=lM;Vz1=WLk{>2mJ#*F5<`A1^M4?k!xuWK#_nEH%?O1(rKbqtK!Dtu%riyc+xh^O)LF9c;B7vu{E<2@a@78T2#ZN|T2}nDt3De+T;7C)8<#P`ze?q2=76mnMX@Vf8lRj!BM}@&3(O(lc>| z^@r?soLN*qY^))rGz2!SF9~hGh$A>CD)L3C4g6y`?#mJ2P|gAVx|aj|v5;WLzJ!{f zK(YLdpw+dqLj3&zs?9Akq^)K7XoMxmDa6*_(Z3Ze4i38dIJb7u_&5Bt)ga30ovzUiZ0Se)lO0GL%rdDrz<>W;$rWucDxJB>cn{~bKDB$XCv=dG~Jh-?}@RzsHyjI|G zBG`Mu8h*lZI8BIF+i4K6?0eY#!WRuf6jx|MXLKLuw~^;evHQ7z#JTM;)WoU)YkK(h zZ!=z~Nr@?QI{$F`JN)RraoPfceK%+M^<0z_OuE;4WzP&4pB$~&@37mO&KY%F2ReT5 z6d<41Z&}7o-OZ~cw>Y2;#V&udOdY*O}E|J&GDmU?>F zH8idwW&_u?~U zcNq82-J=U!TcO+w?Dd^K8%@#(BK~)IiVY>sC)vNLlyCi?jW1k=eXFz|OCG!L%{&{J+C= zC+LQ&A#>KwU~ShmuJ^Vv=HD#QP+<2wYGj*gwdYx~!IW^0 z7mdGOpom`h(lHg}|JFaepA0y27?4@Y)6%_bCj#vR@W)YK?S!1G0a8S-{-ur}pIdAP^Qees|dLS?eBNu_J&puLS z0d@p>7YZ|j`FuAes9kav^S`Ep-~GGS_YdSB{o}Sd5B~0U5&XvYf2YP+?^wtL z4lYvkVn(=L3Fg9deYhmFU*f$^^<@7MPpduK^|Icp zU`dj&BTu4Y9Co5XpdyU1^tS@2h^R1c`ZrTLJzTII ze)s>V_vAk{E@hv9_L(g3uXt6W7X-ApQu?nJ@udH`OAaB^v)+GzlDQ7jEB?g=KQOq@ zn3Bg7yU($UiqBi+!;dc4=^=z4j#Jmkz(|&@{^8F~I=93rn;^AEOZ>g!p6M7Fpw)=80 z@g>T(mjAmJ71piq}U+m9YvG%yEfZDaj zS;w4>vRc;gMDUy#cRM^Y%fVMGWb`UKR-&*NGJ!RL;O~(Q5?AmogFUu#s5bXc*1s|h zSi#d4#d`O0nn+=L z9)o_c#~Qioz%dR1Cce2vfa`HyJM#9v*^le(edgu{*?)_F*oNDmt$qKKF1JD^_m_G$ z!R$IY>+WOQ^#Ay_p?~)G#ZF?5#o^y8@}A>L-ZKeum4NZNz=QCCB zhIo+^mbv5KJO00+OWF^I-+dUTXL#9c9{8F4p9e6rj){NQN0XF%yyH;*&nA~Fpmtp^ zgz;QhyLa?7`MdFdnkQ$~@m#+N_X9n#Kf7Z|hm(cw%3VGi{G*epw;w9NVc%~Q-~cNp z{LWv(nLTrxIQ07tLfqgx=CH=IyZaAx&*1+}hA#fU%MSXUe_VIR2EW?0x^4rBFY*5- zf5flLfX21Ky$|a+25H)d%=y3Ihs`Z~{32*)D~tYwFFH6r61=F|O#Krkp|U2{yYD4D z9<`ukM>>GMSnyeu=gxw{ja0g1i04H|Q!M5}6M2dV5{#F5S*TsI*CjJjxQymar14JH z;)Vqui~ouCrax@a&DwQ-KRZG(7p0Cye$5S~npDOTugn1UsIt($@X#-dWU^iHmHeu1 zi!<;|k%B=Ol<_?k`~6aGGOs@sbr6rfhyTBy)1p(Qda-^_5Y z`Du@PnHAFFv~jN>Fn`C{+2^DyXJf0Kf(aPsa*IdMK{kIi!IFI<2Z*di6FpuH@x``B zF`mnf2jR&#zw%fA8h-JYe;NBHfB28kg8ks{hyUR)R&wCK^YS>riS zIDp_F-z+d~t}Xh8nZe@SgV!D4U)jW{ogEFUg>3Fx#;T><2u%pJ+tUc+O3@_ zXUBbS^-M3u>6j=mSe#~KTgf^P97mNYH9p5iy@HujIwGmny^f#G4wjy!m`)zm7Q_Ay z`(Sn)Sh}DW5!m)S+D_UzA<*m;k3iaDDzXtK z>#d*A@MpI?;y-1Feet$wTrki!QMV-Fhru5tkm-NwF77rlcmOEYc{DCy{)ERr35eSo z*?q1c!gV=S1Z@Y@(l~h|NRQT+hv{t|-L}r_?*%d9M(6uu)8}kQ{!cA1SHDMar^CYE znWu2j?0eL+<$s;#e`o1UzTlj?j*AMCBS3bRXgJFMp{qbv7Qa-*wGq<%-#iUBDHyo- z)sWg`1N?Uy;~69HH<2Yn+{$qL<<>0h*%*VjYxmR2!ph3I^|Cqd^D`!@G0LYoHN$)XKlFQjlR23&jT(yu%>CFN^jKjn^_f$C|CnXS zRqCl%+CXKewkfU^;I4Elp9?PCROYNE1Pfi`A>w)RWN$sA{22U_ zhWTt+e2h+a z*XK6Oi!R--_s`JZ)bC~})vnnF>Q|M$(aC&fj+@%?zu2BT+`=ukvW|z1r&;e}^6dGJ z!u@-{7xiP%*2lWpNH51m%u$+uJN>cUyGX#z{V~wl?**W{Pu>@KRDIA28*cMj?pyKy z-u}iDyq`DllUMm$@|ku$n4v2=-O>0^_>-A70(b7}sDMxzck`rB{+ zj+?RVV(gCB0N-eIN3Xl6H#Hc`It$k6{*cDGG7ft~!n{oV4v4OL)OA2X~+1qv1%x--&>T zV+CI7oQJh@$QDKz8z?fwSw~oK9K>s)f^D`)fRa@eI++6WW|m|G2INAD7dV+Hv)`mblb5Pg)L z<}pFs*~WJf92>7Bmd!}R?UDvR(5ayq5lIKw<}*w1@oBg1!8RFtX-F>G+I6Ke>OkodjAIg0q29? zpQG9SZ2$ck(hfc3pK*P|OScuAhF_8cBT&Rv*W0(cgZ00l09;S8+$bLN`5D6wU&!CRc1@otw_#b{nWI+5K|O1E{}sOhe&E3kMCLSS~{TuYxWKv@f`_ z^MDxse;>Qp3{W|}gUtM%_d{15=f+v(T^m_J*AkgU4$yPH?_;@CPAKh}K(n#Ehi2ia#|bFm^Kbi@U+cMmX=o_r+uP@r$-<3Km14MTz?@{+#Pp@N!5+sgN=M)@tUCVo+ z@r@uQ<4HmO;EuXn0sTA?+${hNqet_E_9ZwBWV;j9d>>bgJ_61cEO|5zaYY)Dhili1 zcKlI)m%Z{MhWyjdV+fC96FLPn+eib^z0zL z3;uBU%}#Id$6~_9ui3wTZ;lV!a4kFoIxddM06f}_N!8-M)}yS^_8(Q}Ci&U@pDe%4 z96)a~DQxV^?7!@E(I<|>c0>@Lt^c^YfHF&6ibTB+p!;F4pGOukahQv0X4R@r?+#F6 zOTov?e=Qy`DFM}Q^g>3z6x;p%IMsph@zsjii+Z3=#fqZ<;G!s-BUifGn9v*XJfTtZCTkX?#>>_{NK zFsylfWyECl+sXi<(b8Q<<9zT|svNVuIPsz)b_d)wC)?FFGMdtpTYjKGeg~EcS6oD( z0tv&-c0WDqC#~%$2bGfv%jog#RGF=`<+rsasA4HTBs{@B#>-|>jv09`tDRnGvNK+5 z3z)L5$Tv2LSQF}Kyl?k)BvjFR>@MJJg4)Q+8xxd4VHO;ubafV;$_Q)S!`La1_Aj>k zp}PG%#x?A|GSf zX9$UADZu%i}0dS+@3AQ91%m|FjNv|7Xat>2&8k z!Jk)r!s}tXzkMFvzbe!F`20mvUds_{ho+G~b|*!gbr|C9pEfT#y%d47L(GKX*0DuLUXa2 zOArT4f>W@(_))v(n`T-JDgGX+zT~9m+jgXG1h@;`8|^u5Co1)#z&Y#h{syMX3*#rr zL*3V0&~+jIcy6@?pD1rfppTia3}^-z$L<6)S>m9K^&sOg_=TrH#EC!$vYh?*IU0E^ zBJ}cM9&JND?%%h>9ZsxR`AVSkWkpmX|9e*8w)?$=BI||3^Xd_#ULgL^3%YOyG z^zZ))_D}xNKeWz2|F_D{&!7DZ{~rFrU;ZoVhl{HbMKhS`GLfM=B;Tz^Yk{Y6Lv*Dw z?H!rD8-aK@He1{=qcB```e!Fe4*DR)d|~?LAS}`G57ZO3*FZ9{a7iQ=ZpcfS29MqY zREu~Pi$J8Z)BSjuDBo6D;iXRYcL1P*pHaNJZdaMJZI1*XvEn~WNae0J$}pQ|%!hJp zbf5{=?!#N%Og+J5QkKKeAxpJy_)f!*`(-!&PcI6xZ^(`%xR8BX{T%Rn{L6LW(Cs>- zhTs>S?U*#mMRKu?!tQ>M5@l}^Mx%LIG~69xZ8IV7@<_RC+HQ7?3wfzF3r&`+uy+4d zY}Vp}QMP*R0tk_!1YpR<^wcf- zeF5^ZX`WMM#hu%Ld>?_3{~KevEYn&4s=if>YlHN4y5&U zj26_=MB-uBA(H_KECAG&%k_vWykbKzz|Ok;w(wH;Yrx=ZE4cq@p`6+DsCGM8&P^&5 zltmxIkAxyySrUiNA2k#TiZYnY5n)yhKXk^Ta8G(D81Ja3a*Ub`@MXV9@I0|Rdm&&6 z_E{)DYSF>qFGJ+V<%s^ZqoH>%m?Gdy!P*O*976bQYbR;0v-8BoF!(JKjEdbjzzz3W zkt`*jiM6vNHIYd`89$2~kCKOMCk7~`>p_41_7&j?-$-L(+l14}HH^uz-8ZSB!2?%Y zA;)Igd^3&!lG`RRBmliSU3X>7vlX?~qTyQOBrjVT8A8*yt1#r$P}jN6w05V`GpKeI z>c2O>8j4W*KPM>WWaxfdq}I*+wCC0^Icy$$^1#lVoy~DdCrs*%XXDZQ{9bW5J$%0D@}b}FKA(H;26wj`8w1=npP#+Fy`MRM@AUFA7rJ?Q<2P(P zF+|E_#`~5(u=Bsu|8wK8Z}GqPdu{%L+Pmk2P2;9~7-`bTOMAW{V919Pg7(YtL6{w% zVf9UJfQf&XN9@nH-`>VH-0``S<rJ;8p0#~=XG|aJGt9=e&_!!Afdik*7<^eck=4x2VdobK4QY+q~6ur4%S8e zts6v_CYI6u4*=+R8-y~(RudJ(!(m6OFqllXD;qb~}u2+K2Iu=&57SiAUZ zJALt4YzUY;9&3!ILPENOU6lV9HW!F6_*u5`pt2swE&9?gPvU?_?&N7%j3M|JUbAUn z^1kI!@SE->`9@gF7{n5$Hb98KhYCc-=2)t^1Wh zx!mMl6d*he2ipJTZe1o8t$|9$v}*u!K0{I{1CVf%A57l#*!W*_EA#)^DEUow2mja5 z#QwYiXy>+Gf_rRz`@G{3|92p;0~t1+4Fju2E&P#304M;dK0-V^{QnJqZT>Cq+Ta^{ zkn>IkS+WB_$g_{^Kq@Cx0FrB;DGWAFSR%^2t9uDAm zLPQ6XmFjpzv8UM@gSBH9vbh|VFCkh`;TK)C=5qO;7KL4HZ1P<2pdo~X`Yf#2K{^PcQvdE?d zKgYxPmu!Dl{HN=HW0r2A|5IiBIKkZPA0XYV=CFTq(6dXm|KrKnvJFLp0O~ygkWWWh z(s}#Dv&H5}|32dUtfPre#oe;-ky(onq`&zUJdTJFOO%pkH$7s{eX?UV{p!F+e^Jm_pOty- z-||AOnY4B^mef!kU{x~*os$M61K!5qK(F)^E~JpecY$E{RmOn4!=A@T2ni2`OXV1GFU;K3S#nhUtuR#gsTuecw$`KTXvtM2!V`JyqG25tlrG?the?=MmKGQFnziDU$QyXjIkpcfJ{})eG zc8Jc8Mbwc-z4BZdNc;e7+kk!N4ds#wd$4+E$=&lmYdBu+%Jew%lFue9>UjJ)=5FY9o9k^h}9*pIxzS^>e$v$VoPi{k~1+W__3C4L>^%34g!^#+{zHx!&kY)j|ssZ4|q z9=`x+PSC{|+^S2@FR3iuHH7SA6g2lZbT6tc5O(wL*FwnAtj2|bfOhkCf{)=o*Vu(W z4vZOv6)@~9T#lt>EedAAq?^h>(WmKWb)42O^XCsZp`jBTiUya zT!x~LEHV2Tz>=Z!-4?8DQ70jO&{@*wrYq$46dwqf6Gw(njvx)IA00cxV07q($v`5b zaSvrW8@xrs`4Zw(;9s~m^fc&Qi1ICaN!=LzJ3xL(^&<^>0KxYa;|ycm$;*%0^rF-Oxg!9QK?03`noc!2jn$Jw0LeR8q1zB5+<-xCAq z^BqUOM~3$QI1U|+xZHuJe=lgdUR!a*da~1D7JuiDX8#7|ph9MyW6fWM4i=4quV_lSBn_wi#+NF{YlY|oKwFkw#&wY61m3U1Y;9a%G+d8??E@d3e*v%uWi{ljALo%ryaQ~!W4!V3H=1|7 zarzKWFQ=RL0nD-vYCb5V{_I&h4h{d#J74sF?AeZHAJ4yW|Hoj{bE}W7jMIW;@5*_Z z&&l9k?{h48cP;+Ef&aq)uHTc~oxsKoE+2;rXXT$4`i(Mb{f;yA14&9qI zly$9%t`am>g@gs~>P-CQ;vR^jIzLa~C?BrVIS20OUxLTn(En3FVgGJd7X^Bb2O|P(SA@Y2(tqJfi&&EJqO6+hMJLi+B0_2Kc`D&6T=F-NwhJJD zqXLr(YNgWK-Tz&D+;g`Ok9U#~=XhKQ(7cqpY)B~i#Z8kd{}UC_@G}oOfK2kW?LOgr zWXylB{6BX2QeB<7vZvDm?-mRbZ$zy5kKws@CfOp1&3Bb`e3_R)XG3#$%fX|_0N^S5 z*!c5AJXNAz$NQmqPN4bG`3G2w0nx$Vd7KkXR`F+Yp4qGzr3cgak@KKM{R3b9+;{Mu zU-)^Qnaz4s!|qz>9UXPfJ|b~o0Trgt=bX6bbit!>qUHY=e(BHQmw)9iV*lhH{;uKU z+kNs6e;4uR=Wc{w{tx~l{>ra?7eD;x{~VpXh~nd=kC&)0!48Xe&$R$UHd=L$y4U=e zS##xT@64tl1CamvhkuMe`OzOQT2s%Xli!j@Iae&>p!`vnlFv&QB{}2(;;b-Z_Os!? zCUt?rkZK3g6GfxMbb)x%K*_ff_RL?2;|X{_*O;lVkLZ3Gv*SY8iMAgyYuR!JQ~#qJ zogwu77`~q_TbQHDWjSEJr3C5a=CyD~Y z|FI-f3AXFBitkC++fFaW%oL}R%ct-=dUsUl8K?{8vm71D^!kNE**u3)I58WMOBYfO z<^nRa+fVTmGV9Fz)_+`-VjIV?UMzgp`vAh|baKI{`X#+i+5gb96Gv@EDP4I4&Ro~W z5y&GtT$Pn>ohiH=7XLdUR)D``V!nKsir&_?NXI%NZslGqn|IRY5?+%{w|{5tvU3}F zo@=Lo$0@nvCh+tBVK3hdUD{5L&k=6Re(s(wtdaCGc26FzwdWHhNxeB!#2y_EAC45) zF@#jlBtU-u6w>$XgS~BEI2f4Q+PvbyTT-QVD*EQN-0~Q}K)gGnt@v5nj=<5&n(SEx zamW1~eku+*TcL8yplUp&m^7xgo8(VZZg!97nG%9tXqdR50*8(@qE~VZeCW9x`UxBY z@}&R(AOJ~3K~$%fjm&8u6D^&I*ErG2#~O-H-3syG3p!z+GkUg1I;tlhat#f283*3>tZc`w}cqQJn^O$*y^r?)=c z)7<7~a2hXryOW1M!~X`W^Z%|Xc9oUl<$BNvFt6ekln3_>7msxGxWDOOVCq=x_b~^* z>*L(ZZTIdz9<=g%gg>@>8<-EvT>80#|E7(-&K zWNhQN-TxW^AOh0eZIszch4Wl-@~&0=-ViOFWi6B{iXc30P9QO z-O9&<{y!&6--`cp*8ALjjotO}4WHbVyZa3Ow|hU8`m4e^)&}w>+($*CgLvA}$bc?N zZS+9onL6zOHQ4>X!EfeU6bn6~e}j}`{5>_Fl^R96UNHEJE^A1AjWGB#O>NLG z>R|3daRo!R9j-{2o-Y3zRWF<2?q1^+t#8{_h;`y#k1VfEv#>|MjH4NBn^Jei!Y z`wM4B9V8X5xSQpZ^#95C83dhadmxkCCWA=?Miekx}vS z)SBH|uvk2+*P~Q>Km|~(v$$;jDi4No3tN7eq=1b4hWYD+%{ZE{fP# z&MF%ntY2NX?6xi`+2pYA#fzW?Lng1^>L?Wk(wp|LAgSC}}>){46~n z7c1sHUohoD)WzQ_+$)ef6q_qr(s;GuiLv8onuR#Ed&LWSOaOa8gufcw6(>%j8UK^V zG2t)R+x%C14aLI`t;cM&kJ0Hdp44>6ascSYrS;G>-S1nh?^rJ@UW)|K@kyDdg8n*D z+i+5xIYxRmSsFhzZZpf%%-ioY%$-JlEo#+`Q+~#b)3Uz?G%okE>h)W8IU4?PIJ?~* zWlad~?tzk;^PA-;sJEZ6f33WJ7n*p~4H+Lf1Vc#Ca{^y0=)p{f6f&c}7sC2I0s-_E z!Jty=pkohp_eA#JwG!)2Rdnc)C6Mhzd3iCs!;j7^>KD6)jjvX^0dTc>)jD)qXYTLvJLlxyq)B61LNK98N}Hsm3<29vkkZ>wk*XAAsDt4Jky5qQK`9tO z7*$3q;-ywVWe9YjV^l$h!%)I)AOQ@eLV#XUpaohABu$&!Ip_C%d-=zj&oiI7_I|%} zQjw=+Jq4fKPfINTi<TgXw1YjCl4E+kD?y}b(Ux6CpU!J6@q-%0=Sz3W<;3f13
%(m z9W*q2^kw7_3`0Rp8XTtPQX~SR{XT%N{u}s?>QzV6D>E5A-m?ZzCx;47ewB3I*?{7uX#W8Mb3PkQ~#&BF8?QbSuAZg z{*SuvvVZFToXNmKpbP#_hi`#@rN;%QP+j_c$M_2cFx*$_!mN6 zqQ4VinZT5>F@6FToY`-Y+Hi0t{^;FSTNm)VK4&8j^1qLDT&8nH2dduchpRnnv+=*{ ze;Z$8*#~s;f&UxOC)duu1{3`z`YQnF{|yVk%KmT2Z1%L@%7$YGKK-eLpJ&Z7BYObK zDsTQD$64nIb3Vdx5@k4$g#nI2NkQM?ckjR#4d{o3A$jaI&8>5P1N65P=tMx#b7d(; zI~uai(I1teKbSoSa7XPts)=WVr%YsEQZr&@cZM?6n@z9}@l(I6yzk&F{~tBKvtuml ztl?yjF)}#LG0u8zKB41-MrCFzAY|}!&X#5UWv&_k=OmhYWYE`ko^<$KAj!NAX0-KNUc!SesuNN%a}140}Z)|Vjpw7U;ImdG2ZrhKdbZn zC&*|2;lBinl7Ae3`>gv3_K66*?el&XzWA5^i{MU~E$tQMUpvcq1X~mz(Q3@UAtG1o zXrw(W9p2~MXiQ4Ir$t*J7mr+sS07>*@ARWzMr)h!=0$!nh@T9}qr7+o5GtOcqvHTA zXwUA;|0%y9Z5oe;+g$!f#dQW3xOdslAkaYVT+1;_w@|&)0gzaR#!{#)J;p>#PhxHH zuVH$a+EVt<^*`~4ri-gy`UQjj%U1A@(tm??*N)|DbQ-xBS>70cI$fdrKE+#yW7Nza zlCEQ0u%h{Ez6f~IVrP7dwiaO-`%%1sne8t-WIF)oBJA`j=@)Q^>dsRjP9 zf9tzv2fM;uVbA;f@qWvu$iQw7(sBeGO+BX*HI}h>U{}tP1%3I#rg|qrWh0Qz73{Zr ziEl0#kVd>e+XyRHN^dHZgg*_gD;wFHNf=w)f$CJ25Hqt*lzPkB-z_*#rJq56ge?}N zQ7jqE$sQK~hy#}AB(ugg>7NeSXqvwY`ito#h*hlYZ7mceo51JAwhUyO42HMybD z=ZZK`+vkkm*xr1`?RB$VE-q<`DQB_ZuLY{YQ*)@ZK6$ul5j}T)6$12|0e4E}Xz)V@ z)X&VVpuc;#w)RT+$-8n++*q42OM}<=AD#aVHIk{x-kB8un?#YXrQWEovU;}wQ~z1p z#fyfnVZWW1RL=_A#IM)20X#4LA2!(KLkEry_d}Bhn}{90*KzqXADY{&CQCLREYE4X z^ymSd9?SE^kRR%mf`bv}v}k{}ey>Evg3GQ~T2=pCdfx6Ycs}5BWl$7-TfI^6`}Inf z)c-Y$@c~DF?lN}D8!WqwxADLAd&>XI?^Xf50^1-DVfmK-W7mgvvH|gbbljN#)0%e$ z&}4Su59gCp{y!L_74SaPi@#6moVIDe4gMZjfL=OrIr8x@L>opl;?nD#Do}L#t>WK? z9m{j)yOVln*AMbPI$inO_2@eOF^=?Kb*alCKL`EqJjyYjBB76MRe%0DQ-7Bf(?R|D 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�?+@ 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

3#9p}*69?1i7lV{a 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%0Dfnm7tE1AdvZAoqlb3<#&r%V0vj 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

ii_zxgI`diGH{kIHp)@gkmi?m66i>Z#E%!Kq(| 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�MRd#B!P810=q!J_|TV? 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

2Y-*GO(_d_7r?nb1B#ZCh&J6%wds0Io{QBr!8xK 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 literal 0 HcmV?d00001 diff --git a/.wordpress-org/banner-772x250.png b/.wordpress-org/banner-772x250.png new file mode 100644 index 0000000000000000000000000000000000000000..3f1540b6e74b4408ee58484d4152ac4396776128 GIT binary patch literal 189173 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 BS^WS2 literal 0 HcmV?d00001 diff --git a/.wordpress-org/banner.svg b/.wordpress-org/banner.svg new file mode 100644 index 0000000..1af82de --- /dev/null +++ b/.wordpress-org/banner.svg @@ -0,0 +1,129 @@ + + + + WPALLSTARS WP Plugin Starter: Built with AI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WPALLSTARS + WP Plugin Starter + Built with AI + A clean start for WordPress plugins, made with aidevops. + + diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..954630d --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,51 @@ +# WP Plugin Starter — agent guide + +The wpallstars starter plugin: what every wpallstars plugin is made from. +It has no features of its own, only the parts every plugin needs. + +**Read `STANDARDS.md` before any change.** It holds the rules every plugin +made from the starter shares: structure and core files, code rules, Updates +from GitHub, releases, front-end styling and dark mode, and testing. This +repository holds the master copy of it and of every core file +(`scripts/core-files.txt`). This file holds only what is the starter's own. + +| Placeholder in `STANDARDS.md` | WP Plugin Starter | +|---|---| +| `{slug}` | `wp-plugin-starter-template` (main file `wp-plugin-starter-template.php`) | +| `{prefix}` | `wpstarter` | +| `{Prefix}` | `WPStarter` | +| `{PREFIX}` | `WPSTARTER` | +| `{Name}` | WP Plugin Starter | +| `{css}` | `wps` | + +User docs: `README.md` (developers, and the Read Me tab) and `readme.txt`. +Development: `DEVELOPMENT.md`. Releases: `RELEASING.md`; launch state: +`LAUNCH.md`. + +## What belongs here + +- Only what every plugin needs. A part one plugin needs stays in that + plugin (its `{Prefix}_Setup`, a feature or its own files). When a lesson + from a plugin applies to all of them, change the core file here first, + then run `scripts/sync-core.sh` in each plugin (`--check` lists what + differs). Keep core files free of any one plugin's names, examples and + paths: this repository is public. +- `includes/class-wpstarter-setup.php` stays empty of features, so the + settings screen shows the empty General tab and the Read Me tab. Test a + core change in a plugin that uses it, then here. +- `scripts/rename-plugin.sh` must keep working on a fresh copy: after a + change to names in core files, try it on a throwaway clone (rename, lint, + smoke test). +- The banner source is `.wordpress-org/banner.svg`: the wpallstars plugin + stack picture in red only, on wpallstars branding. Rebuild it with + `scripts/build-banner.sh`. +- This repository is public. Never name private repositories, their + issues, or local paths in it (commits, docs, comments or examples). +- Every plugin made from the starter keeps the **Built with AI** credit to + aidevops (https://aidevops.sh) in `README.md` and `readme.txt`. + +## Test sites + +Install the GitHub build on a local test site with +`scripts/preview-site.sh` (see `DEVELOPMENT.md`), or install the GitHub +zip from `scripts/build-release.sh` on any test site. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..c9ea0ee --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,36 @@ +# Contributing to WP Plugin Starter + +Thank you for helping. Bug reports, fixes and ideas are all welcome. + +## Reporting a problem + +Open an issue with the **Bug report** form. Include the versions, the steps +and any messages from `wp-content/debug.log`. Security problems go through +`SECURITY.md`, never a public issue. + +## Suggesting a feature + +Open an issue with the **Feature request** form before writing code. Each +setting makes a choice for the plugin's users, so a new one has to earn its +place: say what the feature does on its own and what problem it solves. + +## Pull requests + +1. Read `STANDARDS.md` (how features, settings, migrations and front-end + styles work, the code rules and testing), `AGENTS.md` (what is this + plugin's own) and `DEVELOPMENT.md` (set-up and checks). +2. Keep each pull request to one change. Features are off by default. +3. Run `scripts/lint.sh` and fix what it finds in the code. +4. Test on a real WordPress site, including WordPress 6.2 with PHP 7.4 if + you use a core function, and Kadence light and dark mode if you change + front-end styles. +5. Add a line to the changelogs: `README.md` (details), `changelog.txt` + (for users) and `readme.txt` (one short line). + +CI runs the checks on every pull request. Write the pull request description +so a reviewer knows what changed, why, and how you tested it. + +## Licence + +WP Plugin Starter is GPL-2.0-or-later. By contributing, you agree your work is +released under the same licence. diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md new file mode 100644 index 0000000..9b0c250 --- /dev/null +++ b/DEVELOPMENT.md @@ -0,0 +1,206 @@ +# Development + +How changes are made and checked in every plugin made from the wpallstars +starter plugin. This file is the same in each of them (names as +placeholders: `STANDARDS.md` lists them, and the plugin's `AGENTS.md` gives +its values). Rules for features, code, styling and testing: `STANDARDS.md`; +the plugin's own rules: `AGENTS.md`. Releases: `RELEASING.md`. + +## Workflow + +1. Open or pick an issue that says what should change and how to check it. +2. Work on a branch in its own worktree, never on `main`. Branch names: + `feature/…`, `bugfix/…`, `chore/…`. +3. Commit small, working steps. Run `scripts/lint.sh` before pushing. +4. Push and open a pull request (`Resolves #N`). Open it as a draft while + the work is in progress: CI lints every push, and the longer release and + smoke-test jobs start when the pull request is marked ready for review. +5. Check the change on the shared preview site (`scripts/preview-site.sh`, + `STANDARDS.md` → Testing), in light and dark mode for front-end styles. +6. Merge once CI passes. Releases are separate: `RELEASING.md`. + +## Set up + +Needs PHP 7.4 or later, Composer 2, Node.js (syntax checks only), +ShellCheck and Docker (release checks and smoke test). actionlint is +optional locally; CI runs it. + +```bash +composer install +``` + +`composer.json` lists development tools only. The plugin has no Composer +dependencies, and `vendor/`, `composer.*`, the tool configuration and +`.github/` are left out of release zips (`.distignore`; the preflight fails +if one gets in). + +## Checks + +Every pull request and every push to `main` runs these in GitHub Actions +(`.github/workflows/ci.yml`). Each one runs the same way locally. + +| Check | Command | What it finds | +| --- | --- | --- | +| PHP syntax | `scripts/lint.sh php` | Syntax errors; CI uses PHP 7.4, the minimum. | +| JavaScript syntax | `scripts/lint.sh js` | Syntax errors (`node --check`). | +| Shell scripts | `scripts/lint.sh shell` | ShellCheck findings in `scripts/`. | +| Workflows | `scripts/lint.sh workflows` | actionlint findings in `.github/workflows/`. | +| Coding standards | `scripts/lint.sh phpcs` | WordPress Coding Standards: escaping, sanitising, nonces, prepared SQL, i18n, PHP 7.4 and WordPress 6.2 compatibility (`phpcs.xml.dist`). | +| Static analysis | `scripts/lint.sh phpstan` | Unknown functions, classes and methods, wrong argument counts and types, dead code (PHPStan level 5, `phpstan.neon.dist`). | +| Release build | `scripts/preflight-release.sh --offline` | Versions, headers, `readme.txt`, presets (where the plugin has them) and the contents of both zips. | +| Plugin Check | `scripts/plugin-check.sh` | The WordPress.org review tool, on both zips. | +| Smoke test | `scripts/smoke-test.sh --wp 6.2 --php 7.4` and `scripts/smoke-test.sh` | Installs the GitHub zip, loads the site and admin screens with default settings and with every feature on, runs cron, uninstalls. Fails on any PHP message, a failed page or leftover options. | + +`scripts/lint.sh` with no arguments runs the first six. + +The scripts work out which plugin they are in from its main file +(`scripts/lib/plugin.sh`): the PHP file at the top of the repository with a +`Plugin Name:` header gives the slug (its file name), the name, the class +prefix (`@package`) and the constant prefix (`define('_VERSION', …)`). +Environment overrides use that prefix, for example +`{PREFIX}_PREVIEW_SITE` or `{PREFIX}_DB_IMAGE`. Checks for parts only some +plugins have (presets and starter data, the replaced plugins count) run +when their files exist, so the same scripts serve every plugin made from the +starter. + +### Coding standards + +`phpcs.xml.dist` uses the WordPress ruleset. The plugin's own style +differs from it in a few places (spacing, `array()`, file names, Yoda +conditions), and those sniffs are off; the comments in the file say why. +Security, database and compatibility sniffs stay on. Fix findings in the +code. Where a finding is intended, add an inline +`// phpcs:ignore Sniff.Name -- reason` on that line only. + +`vendor/bin/phpcbf` fixes what it can automatically. + +### Static analysis + +PHPStan reads the code with WordPress's stubs and PHP 7.4's functions. +`scripts/phpstan-bootstrap.php` defines the constants WordPress and the +plugin set while loading. Classes and functions of other plugins the code +uses (WP-CLI, WooCommerce and the like) are ignored in `phpstan-plugin.neon`, +because the code uses them only after checking they are loaded. + +`phpstan-baseline.neon` is empty: every finding fails the check. Fix the +code. Where PHPStan or the stubs are wrong (a custom `wp_hash()` scheme, a +check for a method newer WordPress versions have, variables a closure +changes by reference), add an entry under `ignoreErrors` with the +identifier, the file and the reason: in `phpstan.neon.dist` for the files +every plugin made from the starter shares, in `phpstan-plugin.neon` for the +plugin's own files and extra paths. Never put findings in the baseline to +get a change through. + +### Secrets in history + +Scan the whole Git history before the repository goes public, and after +importing code from elsewhere: + +```bash +docker run --rm -v "$PWD:/repo:ro" ghcr.io/gitleaks/gitleaks:latest git /repo --redact --no-banner +``` + +In a linked worktree, also mount the main repository's `.git` folder at +the same path. `.gitleaks.toml` lists the false positives with reasons. A +real secret is rotated first, then removed from history. + +### Smoke test + +`scripts/smoke-test.sh` starts a throwaway WordPress in Docker (MariaDB, +Apache and WP-CLI images for the chosen PHP version), so nothing touches +the shared preview site. CI runs it on WordPress 6.2 with PHP 7.4 and on +the latest WordPress with PHP 8.3. Every feature with an on/off setting is +switched on at once, except one with the key `maintenance` (a maintenance +mode would answer every visitor page with its notice). `--keep-log FILE` saves `debug.log`; CI keeps it as an artifact +when the test fails. + +## Test site resources + +Test sites run the plugin alongside many others (a plugin that recommends +plugins is tested with all of them active). PHP's defaults are too small for that: OPcache fills +and restarts, admin requests queue behind two workers, and the slowdowns +look like bugs. Size every test site, shared or throwaway, with room to +spare: + +| Setting | Where (LocalWP, nginx) | Value | PHP or Local default | +|---|---|---|---| +| `opcache.memory_consumption` | `conf/php/php.ini.hbs` | `1024` | 128 | +| `opcache.interned_strings_buffer` | `conf/php/php.ini.hbs` | `64` | 8 | +| `opcache.max_accelerated_files` | `conf/php/php.ini.hbs` | `50000` | 10000 | +| `memory_limit` | `conf/php/php.ini.hbs` | `768M` | 256M | +| `pm.max_children` | `conf/php/php-fpm.d/www.conf.hbs` | `5` | 2 | + +Measured on a shared test site with 72 plugins installed: OPcache used +509 MB of 512 MB and restarted, then 315 MB of 1 GB with 31,723 PHP files +cached; pages peaked at 352 MB of memory; the busiest hour needed 5 workers. + +- LocalWP keeps these per site in `/conf/`. Edit the `.hbs` + templates, not the generated files under Local's `run/` folder, then + stop and start the site in Local: it rebuilds the configuration only on + start. Add a comment with the date and reason next to each change. +- The OPcache lines sit inside `{{#unless apache}}`: on an Apache site, + move them out or set them in Apache's own configuration. +- Check after the restart: Site Health → Info → Server shows the new values. +- Raise them again when a site needs more, and update this table in the + starter. +- To test low-resource warnings, lower a value on a throwaway site, never + the shared one. +- Docker sites (`scripts/smoke-test.sh`, step 4 in `STANDARDS.md` → + Testing) take the same values in a `.ini` file mounted into + `/usr/local/etc/php/conf.d/`. + +## Dependencies + +Dependabot (`.github/dependabot.yml`) opens one pull request a week for +the GitHub Actions and one for the Composer tools. Actions are pinned to +commit SHAs with the version in a comment; keep it that way when editing +workflows. Do not add third-party actions that only save a few lines of +shell. + +## While private: checks are advisory + +The repository is private until it is released, so Actions minutes cost +money and most code-review services are paid. Until then, work moves fast: + +- No branch protection or required checks on `main`. A failing check does + not block a merge, so a merge never waits on an unrelated failure. +- Fix any failure your change causes before merging. For a failure your + change did not cause, open an issue with the run link and the first error, + and merge anyway. +- Draft pull requests run only the lint job. A new push cancels the run for + the previous one. +- The build zips and Plugin Check reports are kept for seven days on each + run (artifact `-build-…`) for testing a branch on a site. +- Review apps that are already installed (CodeRabbit, qlty, Socket) give + advice only. A rate-limited or missing review never holds up a merge. + +## At public launch: full sweep + +Making the repository public needs the owner's say. Do this sweep in the +same step, while the code-review services are free for +public repositories. It goes through the whole codebase once, then keeps +it at that standard: + +1. Turn on the free reviewers for the whole codebase, not just new + changes: CodeRabbit full review, Codacy, SonarCloud (SonarQube Cloud) + and qlty, plus GitHub's CodeQL (PHP and JavaScript), Dependabot + security alerts, secret scanning with push protection, and OpenSSF + Scorecard. Socket keeps checking dependencies. +2. Fix what they find in the code, in small pull requests by area + (security first). Each finding is either fixed, explained in an inline + comment, or marked as a false positive in that service with the reason. +3. Raise the PHPStan level one step at a time (6, then higher if the + findings are real bugs and not noise). The baseline is already empty. +4. Require the CI checks on `main` (Lint, Release build, both Smoke + tests) with a branch ruleset, without "branch must be up to date": the + checks are fast, and changelog lines conflict on every merge. +5. Turn on private vulnerability reporting (Settings → Security), which + `SECURITY.md` asks reporters to use, and add the CI badge to + `README.md`. `SECURITY.md`, `CONTRIBUTING.md` and the issue and pull + request templates are already in place. +6. Run `workflows/public-launch-checklist.md` from the AI DevOps framework + for anything public: no private paths, site names or secrets in the code, + history, issues or docs. Run the history scan above again for commits + made since the last one. + +What a plugin has already done ahead of launch is in its `LAUNCH.md`. diff --git a/LAUNCH.md b/LAUNCH.md new file mode 100644 index 0000000..96b9e29 --- /dev/null +++ b/LAUNCH.md @@ -0,0 +1,9 @@ +# WP Plugin Starter — launch state + +The starter is released on GitHub only. It is not meant for WordPress.org: +it has no features, and plugins made from it are submitted under their own +names. `RELEASING.md` → WordPress.org applies to those plugins, each with its +own `LAUNCH.md`. + +`scripts/preflight-release.sh` and `scripts/plugin-check.sh` still run on +every release, so the core files stay ready for a plugin's submission. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9efa6fb --- /dev/null +++ b/LICENSE @@ -0,0 +1,338 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, see . + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Moe Ghoul, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..d25ef05 --- /dev/null +++ b/README.md @@ -0,0 +1,108 @@ +![WPALLSTARS WP Plugin Starter: Built with AI](admin/images/banner.svg) + +# WP Plugin Starter + +A clean start for a WordPress plugin: a settings screen, a Read Me tab, updates from GitHub and release scripts, ready for your features. + +WP Plugin Starter is what wpallstars plugins are made from. It has no features of its own: it holds the parts every plugin needs, built and tested in real plugins, so a new plugin starts with them working and spends its time on what makes it different. + +If this saves you time, headaches and costs, feel free to [buy me a coffee](https://buymeacoffee.com/marcusquinn), or whatever you like, to invest in making more things open-source. + +Version: {WPSTARTER_VERSION} + +## What you get + +- **A settings screen** (Settings → WP Plugin Starter) that features fill by declaring their settings: switches, numbers, text, lists, choices and Media Library pictures, saved instantly with no Save button, searchable, in tabs. With no features yet it shows one empty tab. +- **A Read Me tab** that shows this file, banner included, so users read the same guide inside WordPress as on GitHub. +- **Features as classes**: one file per feature, off by default, with settings, hooks, one-off imports from the plugins it replaces and clean uninstall. +- **Replaced plugins**: a feature that does another plugin's job imports its settings once, waits while that plugin is active, and the Plugins screen suggests deactivating and deleting it. +- **Updates from GitHub**: the shared wpallstars updater (`includes/github-updater/`). Sites get each GitHub release as a normal WordPress update. Every wpallstars plugin carries a copy and only the newest copy on a site runs, so they are all checked together, once. +- **Two builds of each version**: the GitHub release, and a WordPress.org build without the updater, as WordPress.org requires. +- **Scripts and CI**: lint (PHP 7.4, WordPress coding and security rules, PHPStan), a smoke test on a real WordPress, the release build, a preflight check of both zips, Plugin Check, a preview site, the banner build, and `scripts/sync-core.sh` to keep each plugin's shared parts the same as the starter's. +- **Shared rules for people and AI**: `STANDARDS.md` (structure, code rules, releases, styling, testing), `DEVELOPMENT.md` (set-up and checks) and `RELEASING.md`, the same in every plugin made from the starter. + +## Start a plugin + +1. On GitHub, choose **Use this template** to make your repository, and clone it. +2. Give it its names: `scripts/rename-plugin.sh --slug my-plugin --name "My Plugin" --prefix MyPlugin`. Add `--css mp` for a short CSS prefix and `--repo owner/repo` if it is not under wpallstars. Review with `git diff`, then commit. +3. Replace this README, `readme.txt`, `changelog.txt` and `AGENTS.md` with your plugin's own, and its banner (`.wordpress-org/banner.svg`, then `scripts/build-banner.sh`). +4. Add features: a class in `includes/features/` listed in `MyPlugin_Setup::FEATURES` (see Developers below and `STANDARDS.md`). +5. Keep the shared parts up to date: change them in the starter first, then run `scripts/sync-core.sh` in each plugin (`--check` lists what differs). + +The easiest way to do all of this is with [aidevops](https://aidevops.sh): open the repository with it and describe the plugin you want. It reads `AGENTS.md` and `STANDARDS.md`, builds the features, tests them on a real site and runs the release checks. + +## Where to find it + +Go to **Settings → WP Plugin Starter**. The screen has two groups of tabs: + +- **Settings**: General, empty until features add settings. Changes save instantly; there is no Save button. **Search features** (next to the plugin name) finds settings on every tab. +- **About**: this Read Me. + +**Report a problem**, at the top right of the screen, opens the plugin’s [GitHub issues](https://github.com/wpallstars/wp-plugin-starter-template-for-ai-coding/issues) in a new tab. Say what you did, what you expected and what happened, with the versions of WordPress, PHP and WP Plugin Starter. Leave out passwords, licence keys and personal data, since issues are public. **Buy me a coffee**, next to it, opens the maker’s [Buy Me a Coffee](https://buymeacoffee.com/marcusquinn) page in a new tab. + +## Requirements + +- WordPress 6.2 or later +- PHP 7.4 or later + +## Updates and releases + +There are two builds of each version: + +- **GitHub release** (`wp-plugin-starter-template-X.Y.Z.zip` on the repository’s Releases page): everything, including the shared updater in `includes/github-updater/`, so sites get each release as a normal update. +- **WordPress.org**: the same files without the updater (listed in `.distignore-wporg`) and without the `GitHub Plugin URI`, `Primary Branch` and `Release Asset` header lines, because plugins hosted there may not install or update code from elsewhere. + +The updater waits while Git Updater is active, so the two never both update a plugin. + +Releasing on GitHub: + +1. Merge the version change (`Version:` and `WPSTARTER_VERSION` in `wp-plugin-starter-template.php`, `Stable tag:` in `readme.txt`) to `main`. +2. Straight away, tag that commit `vX.Y.Z` and publish a GitHub release with `wp-plugin-starter-template-X.Y.Z.zip` attached. `scripts/build-release.sh --ref vX.Y.Z` builds it (and the WordPress.org zip) from the tag with `.distignore` applied, everything inside a `wp-plugin-starter-template/` folder; `scripts/preflight-release.sh` and `scripts/plugin-check.sh` check them first. Sites pick the latest release whose tag is a plain version number and the asset whose name starts with `wp-plugin-starter-template`, so never attach the WordPress.org zip. Full steps: `RELEASING.md`. +3. Sites offer the update when they next check (within 12 hours, or at once with **Check again** on the Updates screen). + +Mark test builds as pre-releases on GitHub (or tag them with letters, such as `v1.2.0-rc1`): sites never offer those. Do not add an `Update URI` header: WordPress.org rejects it, and Plugin Check reports it as an updater. + +## Developers + +A feature is a class in `includes/features/class-wpstarter-{name}.php` that extends `WPStarter_Feature`, listed in `WPStarter_Setup::FEATURES`. It declares its settings in `settings()`, adds its hooks in `boot()` (returning early unless `self::enabled()`), and can import another plugin’s settings once in `migrate()` with `self::import_setting()`. Anything only this plugin needs goes in `WPStarter_Setup` (`includes/class-wpstarter-setup.php`): features, settings tabs, header links, settings version and its own helpers. The other files in `includes/` and `admin/` are the starter’s core files: `STANDARDS.md` → Structure. + +Filters: + +- `wpstarter_features`: register a feature class that extends `WPStarter_Feature`. +- `wpstarter_settings_schema`: add or change settings. Each entry sets `type` (bool, int, text, url, lines, domains, select, multi, times or media, a picture from the Media Library stored as its attachment ID), `default`, `label`, `description` and either `tab` or `parent`; select and multi also take `options` (an array or a callable), and multi takes `open` to keep saved values that are not currently registered. A child setting can take `hidden` (true): it is not shown or searched, for wiring that code sets. `reload` (true) makes the saved message ask to reload the page, for changes that show only after a page load. `replaces` (slug => name) shows which plugin a feature replaces. Settings render and save automatically. +- `wpstarter_admin_tabs`: add or reorder admin tabs. Each tab sets `label`, `group` (settings, discover or about), a `render` callback and an optional `capability`; tabs the current user lacks the capability for are hidden. +- `wpstarter_admin_script_deps` and `wpstarter_admin_script_data`: the settings screen script’s dependencies and the data it reads as `wpstarterAdmin` (both with the active tab). +- `wpstarter_can_change_settings`: return false to stop the current user changing WP Plugin Starter’s settings (on top of `manage_options`). +- `wpstarter_replaced_plugin_extras`: what a replaced plugin does on this site that WP Plugin Starter does not (plain names, plugin folder). The Plugins screen names them instead of saying the plugin can go. +- `wpstarter_stored_active_plugins` and `wpstarter_plugins_skipped`: for code that skips plugins on some requests, the active plugin files as stored and whether some are skipped on this request, so features still count those plugins as active. +- `wpallstars_github_plugins` (GitHub builds, shared updater): change which plugins update from GitHub releases (plugin file => `repo` as owner/repo, `asset_only`, `version`, `name`). +- `wpallstars_github_token` (GitHub builds, shared updater): GitHub token for a repository (token, owner/repo), for private repositories; defaults to the `WPALLSTARS_GITHUB_TOKEN` constant. +- `wpallstars_github_updater_enabled` and `wpallstars_github_updater_early` (GitHub builds, shared updater): whether it runs (false while Git Updater is active) and whether plugins also on WordPress.org take GitHub releases first. + +Actions: + +- `wpstarter_admin_enqueue`: enqueue the plugin’s own admin styles and scripts on its settings screen (active tab), depending on `wpstarter-admin`. Its script can use `wpstarterAdmin.api` (`post`, `speak`, `errorMessage`). +- `wpstarter_setting_saved`: a setting was saved from the admin screen. +- `wpstarter_setting_panel`: print status at the top of a setting’s options panel (setting key, schema entry); wrap it in `

'; + $table = ''; + } + }; + + foreach ($lines as $line) { + $trim = trim($line); + + if ('' === $trim || '#' === $trim) { + $close_list(); + continue; + } + + // An image on a line of its own, from the plugin's own folder. + if (preg_match('/^!\[([^\]]*)\]\(([^)\s]+)\)$/', $trim, $m)) { + $close_list(); + $html .= self::image($m[2], $m[1]); + continue; + } + + if (preg_match('/^(#{1,4})\s+(.+)$/', $trim, $m)) { + $close_list(); + $level = min(4, strlen($m[1]) + 1); // h1 is reserved for the page title. + $html .= sprintf('%3$s', $level, esc_attr(self::anchor($m[2], $ids)), self::inline($m[2])); + continue; + } + + // Tables: a header row, a |---| separator, then body rows. + if (strlen($trim) > 1 && '|' === $trim[0] && '|' === substr($trim, -1)) { + if ('head' === $table && preg_match('/^\|[\s:|-]+\|$/', $trim)) { + $html .= ''; + $table = 'body'; + continue; + } + if (!$table) { + $close_list(); + $html .= '
'; + $table = 'head'; + } + $tag = 'head' === $table ? 'th' : 'td'; + $html .= ''; + foreach (explode('|', substr($trim, 1, -1)) as $cell) { + $html .= '<' . $tag . '>' . self::inline(trim($cell)) . ''; + } + $html .= ''; + continue; + } + + if (preg_match('/^[-*]\s+(.+)$/', $trim, $m) || preg_match('/^\d+\.\s+(.+)$/', $trim, $n)) { + $type = isset($n[1]) ? 'ol' : 'ul'; + $text = isset($n[1]) ? $n[1] : $m[1]; + if ($list !== $type) { + $close_list(); + $html .= '<' . $type . '>'; + $list = $type; + } + $html .= '
  • ' . self::inline($text) . '
  • '; + unset($n); + continue; + } + + $close_list(); + $html .= '

    ' . self::inline($trim) . '

    '; + } + $close_list(); + + return $html; + } + + /** + * Heading ID as GitHub makes it, so README links such as + * `[Credits](#credits)` work in the tab too. Repeats get -1, -2... + * + * @param string $text Heading Markdown. + * @param array $ids IDs used so far (updated). + * @return string ID. + */ + private static function anchor($text, array &$ids) { + $text = preg_replace('/\[([^\]]+)\]\([^)]*\)/', '$1', $text); + $text = str_replace(array('`', '*'), '', $text); + $id = function_exists('mb_strtolower') ? mb_strtolower($text, 'UTF-8') : strtolower($text); + $id = preg_replace('/[^\p{L}\p{N}\s_-]/u', '', $id); + $id = preg_replace('/\s/u', '-', trim($id)); + $base = '' === $id ? 'section' : $id; + $id = $base; + $n = 0; + while (isset($ids[$id])) { + $id = $base . '-' . (++$n); + } + $ids[$id] = true; + + return $id; + } + + /** + * An image from the plugin's folder, such as the banner at the top of + * README.md. Only relative paths to image files that exist are shown, so + * the tab never loads anything from another site. + * + * @param string $path Path relative to the plugin folder. + * @param string $alt Alternative text. + * @return string HTML, or '' for anything else. + */ + private static function image($path, $alt) { + if (!preg_match('#^[A-Za-z0-9_-]+(?:/[A-Za-z0-9_-]+)*\.(?:svg|png|jpe?g|gif|webp)$#i', $path)) { + return ''; + } + $file = WPSTARTER_DIR . $path; + if (!is_file($file)) { + return ''; + } + + // Width and height stop the page jumping while the image loads. + $size = ''; + if ('svg' === strtolower(pathinfo($path, PATHINFO_EXTENSION))) { + $head = (string) file_get_contents($file, false, null, 0, 2048); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents -- local file. + if (preg_match('/]*?\swidth="(\d+)"[^>]*?\sheight="(\d+)"/', $head, $m)) { + $size = array((int) $m[1], (int) $m[2]); + } + } else { + $size = wp_getimagesize($file); + } + $dims = is_array($size) && !empty($size[0]) && !empty($size[1]) + ? sprintf(' width="%d" height="%d"', $size[0], $size[1]) + : ''; + + // The file's time in the address, so browsers fetch a changed image + // (such as a new banner after an update) instead of a cached one. + $url = add_query_arg('ver', (string) filemtime($file), WPSTARTER_URL . $path); + + return sprintf( + '

    %2$s

    ', + esc_url($url), + esc_attr($alt), + $dims + ); + } + + /** + * Inline Markdown on escaped text. + * + * @param string $text Raw text. + * @return string HTML. + */ + private static function inline($text) { + $text = esc_html($text); + $text = preg_replace('/`([^`]+)`/', '$1', $text); + $text = preg_replace('/\*\*(.+?)\*\*/', '$1', $text); + $text = preg_replace('/(?$1', $text); + + return preg_replace_callback('/\[([^\]]+)\]\(([^)\s]+)\)/', function ($m) { + $url = esc_url(html_entity_decode($m[2]), array('http', 'https')); + if ('#' === $m[2][0]) { + return sprintf('%2$s', esc_attr(substr($m[2], 1)), $m[1]); + } + if ('' === $url) { + return $m[1]; + } + return sprintf('%2$s', $url, $m[1]); + }, $text); + } +} diff --git a/admin/includes/class-replaced-plugins.php b/admin/includes/class-replaced-plugins.php new file mode 100644 index 0000000..2f578b7 --- /dev/null +++ b/admin/includes/class-replaced-plugins.php @@ -0,0 +1,431 @@ +.plugins tr:has(+ tr.wps-replaced-row) th, .plugins tr:has(+ tr.wps-replaced-row) td { box-shadow: none; }' . "\n"; + } + + /** + * Link that deactivates a replaced plugin on this site and comes back to + * the page it was clicked on. + * + * @param string $file Plugin file. + * @return string Unescaped URL. + */ + public static function deactivate_url($file) { + return wp_nonce_url(add_query_arg(array( + 'action' => self::DEACTIVATE, + 'plugin' => rawurlencode($file), + '_wp_http_referer' => rawurlencode(remove_query_arg(array(self::DONE, 'deactivate', 'activate'))), + ), admin_url('admin-post.php')), self::DEACTIVATE . '_' . $file); + } + + /** + * Core's deactivate link on the Plugins screen, keeping the list's + * status, page and search, so it comes back to the same list. + * + * @param string $file Plugin file. + * @return string Unescaped URL. + */ + private static function plugins_deactivate_url($file) { + // phpcs:disable WordPress.Security.NonceVerification.Recommended -- the list being shown. + $args = array( + 'action' => 'deactivate', + 'plugin' => rawurlencode($file), + 'plugin_status' => isset($_GET['plugin_status']) ? sanitize_key(wp_unslash($_GET['plugin_status'])) : 'all', + 'paged' => isset($_GET['paged']) ? absint($_GET['paged']) : 1, + 's' => isset($_GET['s']) ? rawurlencode(sanitize_text_field(wp_unslash($_GET['s']))) : '', + ); + // phpcs:enable + return wp_nonce_url(add_query_arg($args, self_admin_url('plugins.php')), 'deactivate-plugin_' . $file); + } + + /** + * admin-post: deactivate a replaced plugin on this site, then go back. + */ + public static function deactivate() { + $file = isset($_GET['plugin']) ? sanitize_text_field(wp_unslash($_GET['plugin'])) : ''; + check_admin_referer(self::DEACTIVATE . '_' . $file); + if ('' === $file || validate_file($file) || !current_user_can('deactivate_plugin', $file)) { + wp_die(esc_html__('You are not allowed to deactivate this plugin.', 'wp-plugin-starter-template'), '', array('response' => 403)); + } + if (!isset(self::replaced()[dirname($file)])) { + wp_die(esc_html__('WP Plugin Starter only deactivates plugins it replaces.', 'wp-plugin-starter-template'), '', array('response' => 400)); + } + if (!function_exists('is_plugin_active')) { + require_once ABSPATH . 'wp-admin/includes/plugin.php'; + } + $back = wp_get_referer(); + $back = $back ? $back : admin_url('plugins.php'); + // Network-wide plugins are deactivated in the network admin. + if (is_plugin_active($file) && !is_plugin_active_for_network($file)) { + deactivate_plugins($file); + update_option('recently_activated', array($file => time()) + (array) get_option('recently_activated'), false); + $back = add_query_arg(self::DONE, 1, $back); + } + wp_safe_redirect($back); + exit; + } + + /** + * "Plugin deactivated." on the page the link came back to. + */ + public static function deactivated_notice() { + echo '

    ' . esc_html__('Plugin deactivated.', 'wp-plugin-starter-template') . '

    '; + } + + /** + * A note under a replaced plugin's row on the Plugins screen: which + * setting does its job and what to do next. + * + * @param string $file Plugin file. + */ + public static function row_note($file) { + global $wp_list_table; + $states = self::states(); + if (!isset($states[$file])) { + return; + } + $item = $states[$file]; + $labels = esc_html(implode(', ', array_map(function ($label) { + return '‘' . $label . '’'; + }, $item['settings']))); + $setting = ''; + if (WPStarter_Settings::can_change()) { + $setting = sprintf(' %2$s', esc_url(WPStarter_Admin_Manager::tab_url(WPStarter_Admin_Manager::SEARCH, array('s' => $item['name']))), esc_html__('Show the setting', 'wp-plugin-starter-template')); + } + $extras = esc_html(implode(', ', $item['extras'])); + + switch ($item['step']) { + case 'deactivate': + /* translators: %s: WP Plugin Starter setting names */ + $text = sprintf(esc_html__('WP Plugin Starter makes this plugin redundant: %s is on and takes over once you deactivate this plugin. Then you can delete it.', 'wp-plugin-starter-template'), $labels); + break; + case 'partial': + /* translators: 1: WP Plugin Starter setting names, 2: the plugin's settings WP Plugin Starter does not have */ + $text = sprintf(esc_html__('WP Plugin Starter can do this plugin\'s job: %1$s is on and takes over once you deactivate it, except for these, which WP Plugin Starter does not do: %2$s.', 'wp-plugin-starter-template'), $labels, $extras); + break; + case 'switch_on': + /* translators: %s: WP Plugin Starter setting names */ + $text = sprintf(esc_html__('WP Plugin Starter makes this plugin redundant: turn on %s in WP Plugin Starter, then deactivate and delete this plugin.', 'wp-plugin-starter-template'), $labels) . $setting; + break; + case 'switch_on_partial': + /* translators: 1: WP Plugin Starter setting names, 2: the plugin's settings WP Plugin Starter does not have */ + $text = sprintf(esc_html__('WP Plugin Starter can do part of this plugin\'s job with %1$s. It does not do these, which this plugin has on: %2$s.', 'wp-plugin-starter-template'), $labels, $extras) . $setting; + break; + case 'switch_on_inactive': + /* translators: %s: WP Plugin Starter setting names */ + $text = sprintf(esc_html__('WP Plugin Starter makes this plugin redundant: turn on %s in WP Plugin Starter, then you can delete this plugin.', 'wp-plugin-starter-template'), $labels) . $setting; + break; + default: + /* translators: %s: WP Plugin Starter setting names */ + $text = sprintf(esc_html__('No longer needed: %s in WP Plugin Starter does this plugin\'s job. You can delete it.', 'wp-plugin-starter-template'), $labels); + } + $columns = ($wp_list_table instanceof WP_List_Table) ? $wp_list_table->get_column_count() : 4; + $active = in_array($item['step'], array('deactivate', 'partial', 'switch_on', 'switch_on_partial'), true) ? ' active' : ' inactive'; + printf( + '
    ', + esc_attr($active), + (int) $columns, + $text // phpcs:ignore WordPress.Security.EscapeOutput -- built from escaped parts above. + ); + } + + /** + * Replaced plugins, keyed by folder name, with the settings that replace + * them. + * + * @return array}> slug => name and setting key => label. + */ + private static function replaced() { + $replaced = array(); + foreach (WPStarter_Settings::schema() as $key => $field) { + if (empty($field['replaces']) || !is_array($field['replaces']) || !empty($field['parent'])) { + continue; + } + foreach ($field['replaces'] as $slug => $name) { + if (!isset($replaced[$slug])) { + $replaced[$slug] = array('name' => (string) $name, 'settings' => array()); + } + $replaced[$slug]['settings'][$key] = isset($field['label']) ? (string) $field['label'] : (string) $key; + } + } + return $replaced; + } + + /** + * What to show in the notice: one item per installed replaced plugin that + * needs a step, leaving out what the person hid. + * + * @return array}> + */ + private static function items() { + $items = array_filter(self::states(), function ($item) { + // Inactive with the setting off: only a note on its row. + return 'switch_on_inactive' !== $item['step'] + && ('switch_on' !== $item['step'] || WPStarter_Settings::can_change()); + }); + $hidden = (array) get_user_meta(get_current_user_id(), self::HIDDEN, true); + return array_values(array_filter($items, function ($item) use ($hidden) { + return !in_array($item['slug'] . ':' . $item['step'], $hidden, true); + })); + } + + /** + * Every installed replaced plugin that needs a step, keyed by plugin file. + * + * Steps: deactivate, partial (active, setting on, it does more), + * switch_on, switch_on_partial, delete (inactive, setting on) and + * switch_on_inactive (inactive, setting off; single sites only). + * + * @return array,extras:string[]}> + */ + private static function states() { + static $states = null; + if (null !== $states) { + return $states; + } + if (!function_exists('get_plugins')) { + require_once ABSPATH . 'wp-admin/includes/plugin.php'; + } + $installed = array(); + foreach (array_keys(get_plugins()) as $file) { + $slug = dirname($file); + if ('.' !== $slug) { + $installed[$slug] = $file; + } + } + + $network = is_multisite() && is_network_admin(); + // Active where this screen can deactivate it: network-wide in the + // network admin, on this site otherwise. Stored lists, so plugins + // skipped on this screen still count. + $here = $network + ? array_keys((array) get_site_option('active_sitewide_plugins', array())) + : WPStarter_Feature::stored_active_plugins(); + $all = WPStarter_Feature::active_plugins(); + + $items = array(); + foreach (self::replaced() as $slug => $plugin) { + if (!isset($installed[$slug])) { + continue; + } + $file = $installed[$slug]; + $all_on = true; + foreach (array_keys($plugin['settings']) as $key) { + $all_on = $all_on && (bool) WPStarter_Settings::get($key); + } + + if (in_array($file, $here, true)) { + $step = $all_on ? 'deactivate' : 'switch_on'; + } elseif (!isset($all[$slug]) && !is_multisite()) { + $step = $all_on ? 'delete' : 'switch_on_inactive'; + } else { + continue; + } + $extras = array(); + if ('deactivate' === $step || 'switch_on' === $step) { + /** + * What a replaced plugin does on this site that WP Plugin Starter, + * as set up, does not. When there is any, the notice lists it + * instead of saying the plugin can go. + * + * @param string[] $extras Plain names. + * @param string $slug Plugin folder. + */ + $extras = array_values(array_filter(array_map('strval', (array) apply_filters('wpstarter_replaced_plugin_extras', array(), (string) $slug)))); + } + if ($extras) { + $step = 'deactivate' === $step ? 'partial' : 'switch_on_partial'; + } + $items[$file] = array( + 'slug' => (string) $slug, + 'file' => $file, + 'name' => $plugin['name'], + 'step' => $step, + 'settings' => $plugin['settings'], + 'extras' => $extras, + ); + } + $states = $items; + return $states; + } + + /** + * The notice. + */ + public static function notice() { + $items = self::items(); + if (!$items) { + return; + } + $rows = array(); + foreach ($items as $item) { + $rows[] = self::row($item); + } + $keys = array_map(function ($item) { + return $item['slug'] . ':' . $item['step']; + }, $items); + $hide = wp_nonce_url(add_query_arg(array('action' => self::HIDE, 'items' => implode(',', $keys)), admin_url('admin-post.php')), self::HIDE); + ?> +
    +

    +
      + +
    • + +
    +

    +
    + ' . esc_html($item['name']) . ''; + $base = self_admin_url('plugins.php'); + + if ('deactivate' === $item['step']) { + /* translators: 1: plugin name, 2: WP Plugin Starter setting names */ + $text = sprintf(esc_html__('%1$s: %2$s is on and takes over once you deactivate it. Then you can delete it.', 'wp-plugin-starter-template'), $name, esc_html($labels)); + if (current_user_can('deactivate_plugin', $item['file'])) { + $url = self::plugins_deactivate_url($item['file']); + /* translators: %s: plugin name */ + $text .= sprintf(' %2$s', esc_url($url), esc_html(sprintf(__('Deactivate %s', 'wp-plugin-starter-template'), $item['name']))); + } + return $text; + } + + if ('partial' === $item['step'] || 'switch_on_partial' === $item['step']) { + $extras = esc_html(implode(', ', $item['extras'])); + if ('partial' === $item['step']) { + /* translators: 1: plugin name, 2: WP Plugin Starter setting names, 3: the plugin's settings WP Plugin Starter does not have */ + $text = sprintf(esc_html__('%1$s: %2$s is on and takes over once you deactivate it, except for these, which WP Plugin Starter does not do: %3$s. Deactivate it only if you no longer need them.', 'wp-plugin-starter-template'), $name, esc_html($labels), $extras); + if (current_user_can('deactivate_plugin', $item['file'])) { + $url = self::plugins_deactivate_url($item['file']); + /* translators: %s: plugin name */ + $text .= sprintf(' %2$s', esc_url($url), esc_html(sprintf(__('Deactivate %s', 'wp-plugin-starter-template'), $item['name']))); + } + return $text; + } + /* translators: 1: plugin name, 2: WP Plugin Starter setting names, 3: the plugin's settings WP Plugin Starter does not have */ + $text = sprintf(esc_html__('%1$s: %2$s can do part of its job. WP Plugin Starter does not do these, which it has on: %3$s.', 'wp-plugin-starter-template'), $name, esc_html($labels), $extras); + $url = WPStarter_Admin_Manager::tab_url(WPStarter_Admin_Manager::SEARCH, array('s' => $item['name'])); + return $text . sprintf(' %2$s', esc_url($url), esc_html__('Show the setting', 'wp-plugin-starter-template')); + } + + if ('delete' === $item['step']) { + /* translators: 1: plugin name, 2: WP Plugin Starter setting names */ + $text = sprintf(esc_html__('%1$s is inactive and no longer needed: %2$s does its job.', 'wp-plugin-starter-template'), $name, esc_html($labels)); + if (current_user_can('delete_plugins')) { + $url = wp_nonce_url(add_query_arg(array('action' => 'delete-selected', 'checked[]' => $item['file'], 'plugin_status' => 'all'), $base), 'bulk-plugins'); + /* translators: %s: plugin name */ + $text .= sprintf(' %2$s', esc_url($url), esc_html(sprintf(__('Delete %s', 'wp-plugin-starter-template'), $item['name']))); + } + return $text; + } + + /* translators: 1: plugin name, 2: WP Plugin Starter setting names */ + $text = sprintf(esc_html__('%1$s: switch on %2$s, then deactivate and delete it.', 'wp-plugin-starter-template'), $name, esc_html($labels)); + $url = WPStarter_Admin_Manager::tab_url(WPStarter_Admin_Manager::SEARCH, array('s' => $item['name'])); + return $text . sprintf(' %2$s', esc_url($url), esc_html__('Show the setting', 'wp-plugin-starter-template')); + } + + /** + * admin-post: hide the listed items for this person. + */ + public static function hide() { + check_admin_referer(self::HIDE); + if (!current_user_can('activate_plugins')) { + wp_die(esc_html__('You are not allowed to manage plugins on this site.', 'wp-plugin-starter-template'), '', array('response' => 403)); + } + $items = isset($_GET['items']) ? explode(',', sanitize_text_field(wp_unslash($_GET['items']))) : array(); + $items = array_filter($items, function ($item) { + return (bool) preg_match('/^[A-Za-z0-9._-]+:(deactivate|switch_on|delete|partial|switch_on_partial)$/', $item); + }); + $hidden = (array) get_user_meta(get_current_user_id(), self::HIDDEN, true); + update_user_meta(get_current_user_id(), self::HIDDEN, array_values(array_unique(array_filter(array_merge($hidden, $items))))); + + $back = wp_get_referer(); + wp_safe_redirect($back ? $back : self_admin_url('plugins.php')); + exit; + } +} diff --git a/admin/includes/class-settings-manager.php b/admin/includes/class-settings-manager.php new file mode 100644 index 0000000..855f854 --- /dev/null +++ b/admin/includes/class-settings-manager.php @@ -0,0 +1,449 @@ + $field) { + if (isset($tabs[$field['tab']])) { + $groups[$field['tab']][$key] = $field; + } + } + $count = array_sum(array_map('count', $groups)); + ?> +
    +
    +

    + +

    +

    + +

    + +

    + +
    + $fields) : ?> +

    + +

    +
    + $field) { + self::render_card($key, $field); + } + ?> +
    + +
    + +
    +
    +

    + +

    + + +

    + +
    + +
    + $field) { + self::render_card($key, $field); + } + ?> +
    + +
    +

    +
    + + +
    + +
    + +
    > + + + /> + + + + +
    +
    + + +
    + +

    + + +
    + + + + +
    + + + + +
    + $name) { + $items[] = esc_html($name); + if (!isset($active[$slug])) { + continue; + } + $busy[] = (string) $name; + if (isset($site[$slug]) && current_user_can('deactivate_plugin', $site[$slug])) { + // Comes back to this tab, where the setting then takes over. + $url = WPStarter_Replaced_Plugins::deactivate_url($site[$slug]); + /* translators: %s: plugin name */ + $links[] = sprintf('%2$s', esc_url($url), esc_html(sprintf(__('Deactivate %s', 'wp-plugin-starter-template'), $name))); + } + } + + printf( + '

    %1$s %2$s

    ', + esc_html__('Replaces:', 'wp-plugin-starter-template'), + implode(', ', $items) // phpcs:ignore WordPress.Security.EscapeOutput -- escaped above. + ); + if ($busy) { + printf( + '

    %1$s %2$s

    ', + /* translators: %s: plugin names */ + esc_html(sprintf(__('%s is still active, so it does this job and this setting waits until it is deactivated.', 'wp-plugin-starter-template'), implode(', ', $busy))), + implode(' · ', $links) // phpcs:ignore WordPress.Security.EscapeOutput -- escaped above. + ); + } + } + + /** + * Plugins active on this site (not network-wide) keyed by directory slug. + * + * @return array slug => plugin file + */ + private static function active_plugins_by_slug() { + static $active = null; + if (null === $active) { + $active = array(); + foreach (WPStarter_Feature::stored_active_plugins() as $file) { + $slug = dirname((string) $file); + if ('.' !== $slug) { + $active[$slug] = (string) $file; + } + } + } + return $active; + } + + /** + * Render a child field row. + * + * @param string $key Setting key. + * @param array $field Schema entry. + */ + public static function render_field($key, array $field) { + $value = WPStarter_Settings::get($key); + $id = 'wps-' . $key; + $desc_id = $id . '-desc'; + $attrs = sprintf('id="%1$s" data-wps-setting="%2$s" aria-describedby="%3$s"', esc_attr($id), esc_attr($key), esc_attr($desc_id)); + $is_multi = 'multi' === $field['type']; + ?> +
    + + + + + +
    + ', $attrs); // phpcs:ignore WordPress.Security.EscapeOutput -- escaped above. + $choices = WPStarter_Settings::options_for($field); + if (!empty($field['open']) && '' !== (string) $value && !array_key_exists((string) $value, $choices)) { + // A saved choice whose plugin is not loaded here stays shown. + $choices[(string) $value] = (string) $value; + } + foreach ($choices as $option_value => $option_label) { + printf( + '', + esc_attr((string) $option_value), + selected((string) $value, (string) $option_value, false), + esc_html($option_label) + ); + } + echo ''; + break; + + case 'multi': + $chosen = array_map('strval', (array) $value); + $choices = WPStarter_Settings::options_for($field); + // With some plugins skipped on this request, a saved + // choice may belong to one of them; keep it too. + if (!empty($field['open']) || WPStarter_Feature::plugins_skipped()) { + // Saved items that are not registered right now stay visible so they can be unticked. + foreach (array_diff($chosen, array_map('strval', array_keys($choices))) as $missing) { + $choices[$missing] = $missing; + } + } + $long = count($choices) > 12; + if ($long) { + // Long lists (such as every active plugin) scroll, with quick choices. + printf( + ' · ', + esc_attr($id), + esc_html__('Select all', 'wp-plugin-starter-template'), + esc_html__('Clear', 'wp-plugin-starter-template') + ); + } + // The group carries data-wps-setting; the JS saves every checked value. + printf( + '
    ', + $attrs, // phpcs:ignore WordPress.Security.EscapeOutput -- escaped above. + esc_attr($id . '-label'), + $long ? ' is-long' : '' + ); + foreach ($choices as $option_value => $option_label) { + printf( + '', + esc_attr((string) $option_value), + checked(in_array((string) $option_value, $chosen, true), true, false), + esc_html($option_label) + ); + } + echo '
    '; + break; + + case 'url': + printf( + '', + $attrs, // phpcs:ignore WordPress.Security.EscapeOutput -- escaped above. + esc_attr((string) $value), + esc_attr(isset($field['placeholder']) ? $field['placeholder'] : '') + ); + break; + + case 'times': + printf( + '', + $attrs, // phpcs:ignore WordPress.Security.EscapeOutput -- escaped above. + esc_attr((string) $value), + esc_attr(isset($field['placeholder']) ? $field['placeholder'] : '') + ); + break; + + case 'int': + printf( + '', + $attrs, // phpcs:ignore WordPress.Security.EscapeOutput -- escaped above. + esc_attr((string) $value), + esc_attr(isset($field['min']) ? (string) $field['min'] : ''), + esc_attr(isset($field['max']) ? (string) $field['max'] : '') + ); + if (!empty($field['unit'])) { + echo ' ' . esc_html($field['unit']) . ''; + } + break; + + case 'lines': + case 'domains': + printf( + '', + isset($field['rows']) ? (int) $field['rows'] : 3, + $attrs, // phpcs:ignore WordPress.Security.EscapeOutput -- escaped above. + esc_attr(isset($field['placeholder']) ? $field['placeholder'] : ''), + esc_textarea((string) $value) + ); + break; + + case 'media': + // The hidden input carries data-wps-setting; the JS sets it + // from the media dialog and saves it. + $image_id = (int) $value; + $preview = $image_id ? wp_get_attachment_image_url($image_id, 'thumbnail') : ''; + echo '
    '; + printf( + '', + esc_attr($key), + esc_attr((string) $image_id) + ); + if ($preview) { + printf('', esc_url($preview)); + } else { + echo ''; + } + printf( + '', + esc_attr($id), + esc_attr($desc_id), + esc_html__('Choose picture', 'wp-plugin-starter-template') + ); + printf( + '', + $image_id ? '' : ' hidden', + esc_html__('Remove', 'wp-plugin-starter-template') + ); + echo '
    '; + break; + + case 'bool': + printf( + '', + $attrs, // phpcs:ignore WordPress.Security.EscapeOutput -- escaped above. + checked((bool) $value, true, false) + ); + break; + + case 'text': + default: + printf( + '', + $attrs, // phpcs:ignore WordPress.Security.EscapeOutput -- escaped above. + esc_attr((string) $value), + esc_attr(isset($field['placeholder']) ? $field['placeholder'] : '') + ); + break; + } + ?> + + +

    + + + + + + + + + +

    + +
    +
    + =7.4" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "phpcompatibility/phpcompatibility-wp": "^2.1", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "szepeviktor/phpstan-wordpress": "^2.0", + "wp-coding-standards/wpcs": "^3.1" + }, + "config": { + "allow-plugins": { + "dealerdirect/phpcodesniffer-composer-installer": true, + "phpstan/extension-installer": true + }, + "platform": { + "php": "7.4.33" + }, + "sort-packages": true + }, + "scripts": { + "lint": "scripts/lint.sh", + "phpcs": "phpcs", + "phpcbf": "phpcbf", + "phpstan": "phpstan analyse --memory-limit=4G", + "baseline": "phpstan analyse --memory-limit=4G --generate-baseline=phpstan-baseline.neon" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..a57ff97 --- /dev/null +++ b/composer.lock @@ -0,0 +1,880 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "0914721d7ea1987ea4e5e41b78d877a3", + "packages": [], + "packages-dev": [ + { + "name": "dealerdirect/phpcodesniffer-composer-installer", + "version": "v1.2.1", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/composer-installer.git", + "reference": "963f0c67bffde0eac41b56be71ac0e8ba132f0bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/963f0c67bffde0eac41b56be71ac0e8ba132f0bd", + "reference": "963f0c67bffde0eac41b56be71ac0e8ba132f0bd", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.2", + "php": ">=5.4", + "squizlabs/php_codesniffer": "^3.1.0 || ^4.0" + }, + "require-dev": { + "composer/composer": "^2.2", + "ext-json": "*", + "ext-zip": "*", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpcompatibility/php-compatibility": "^9.0 || ^10.0.0@dev", + "yoast/phpunit-polyfills": "^1.0" + }, + "type": "composer-plugin", + "extra": { + "class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" + }, + "autoload": { + "psr-4": { + "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Franck Nijhof", + "email": "opensource@frenck.dev", + "homepage": "https://frenck.dev", + "role": "Open source developer" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer Standards Composer Installer Plugin", + "keywords": [ + "PHPCodeSniffer", + "PHP_CodeSniffer", + "code quality", + "codesniffer", + "composer", + "installer", + "phpcbf", + "phpcs", + "plugin", + "qa", + "quality", + "standard", + "standards", + "style guide", + "stylecheck", + "tests" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/composer-installer/issues", + "security": "https://github.com/PHPCSStandards/composer-installer/security/policy", + "source": "https://github.com/PHPCSStandards/composer-installer" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" + } + ], + "time": "2026-05-06T08:26:05+00:00" + }, + { + "name": "php-stubs/wordpress-stubs", + "version": "v7.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-stubs/wordpress-stubs.git", + "reference": "394570301894799e69a4aa117c9c995427e3ba04" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/394570301894799e69a4aa117c9c995427e3ba04", + "reference": "394570301894799e69a4aa117c9c995427e3ba04", + "shasum": "" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "5.6.1" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "nikic/php-parser": "^5.5", + "php": "^7.4 || ^8.0", + "php-stubs/generator": "^0.9", + "phpdocumentor/reflection-docblock": "^6.0", + "phpstan/phpstan": "^2.2", + "phpunit/phpunit": "^9.5", + "symfony/polyfill-php80": "*", + "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^1.2", + "wp-coding-standards/wpcs": "3.4.1 as 2.3.0" + }, + "suggest": { + "paragonie/sodium_compat": "Pure PHP implementation of libsodium", + "symfony/polyfill-php80": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "szepeviktor/phpstan-wordpress": "WordPress extensions for PHPStan" + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "WordPress function and class declaration stubs for static analysis.", + "homepage": "https://github.com/php-stubs/wordpress-stubs", + "keywords": [ + "PHPStan", + "static analysis", + "wordpress" + ], + "support": { + "issues": "https://github.com/php-stubs/wordpress-stubs/issues", + "source": "https://github.com/php-stubs/wordpress-stubs/tree/v7.1.0" + }, + "time": "2026-08-28T00:32:06+00:00" + }, + { + "name": "phpcompatibility/php-compatibility", + "version": "9.3.5", + "source": { + "type": "git", + "url": "https://github.com/PHPCompatibility/PHPCompatibility.git", + "reference": "9fb324479acf6f39452e0655d2429cc0d3914243" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243", + "reference": "9fb324479acf6f39452e0655d2429cc0d3914243", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "squizlabs/php_codesniffer": "^2.3 || ^3.0.2" + }, + "conflict": { + "squizlabs/php_codesniffer": "2.6.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0" + }, + "suggest": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.", + "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Wim Godden", + "homepage": "https://github.com/wimg", + "role": "lead" + }, + { + "name": "Juliette Reinders Folmer", + "homepage": "https://github.com/jrfnl", + "role": "lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors" + } + ], + "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.", + "homepage": "http://techblog.wimgodden.be/tag/codesniffer/", + "keywords": [ + "compatibility", + "phpcs", + "standards" + ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibility" + }, + "time": "2019-12-27T09:44:58+00:00" + }, + { + "name": "phpcompatibility/phpcompatibility-paragonie", + "version": "1.3.4", + "source": { + "type": "git", + "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git", + "reference": "244d7b04fc4bc2117c15f5abe23eb933b5f02bbf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/244d7b04fc4bc2117c15f5abe23eb933b5f02bbf", + "reference": "244d7b04fc4bc2117c15f5abe23eb933b5f02bbf", + "shasum": "" + }, + "require": { + "phpcompatibility/php-compatibility": "^9.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "paragonie/random_compat": "dev-master", + "paragonie/sodium_compat": "dev-master" + }, + "suggest": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", + "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Wim Godden", + "role": "lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "lead" + } + ], + "description": "A set of rulesets for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by the Paragonie polyfill libraries.", + "homepage": "http://phpcompatibility.com/", + "keywords": [ + "compatibility", + "paragonie", + "phpcs", + "polyfill", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/issues", + "security": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/security/policy", + "source": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie" + }, + "funding": [ + { + "url": "https://github.com/PHPCompatibility", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcompatibility", + "type": "thanks_dev" + } + ], + "time": "2025-09-19T17:43:28+00:00" + }, + { + "name": "phpcompatibility/phpcompatibility-wp", + "version": "2.1.8", + "source": { + "type": "git", + "url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git", + "reference": "7c8d18b4d90dac9e86b0869a608fa09158e168fa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/7c8d18b4d90dac9e86b0869a608fa09158e168fa", + "reference": "7c8d18b4d90dac9e86b0869a608fa09158e168fa", + "shasum": "" + }, + "require": { + "phpcompatibility/php-compatibility": "^9.0", + "phpcompatibility/phpcompatibility-paragonie": "^1.0", + "squizlabs/php_codesniffer": "^3.3" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0" + }, + "suggest": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.", + "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Wim Godden", + "role": "lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "lead" + } + ], + "description": "A ruleset for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by WordPress.", + "homepage": "http://phpcompatibility.com/", + "keywords": [ + "compatibility", + "phpcs", + "standards", + "static analysis", + "wordpress" + ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibilityWP/issues", + "security": "https://github.com/PHPCompatibility/PHPCompatibilityWP/security/policy", + "source": "https://github.com/PHPCompatibility/PHPCompatibilityWP" + }, + "funding": [ + { + "url": "https://github.com/PHPCompatibility", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcompatibility", + "type": "thanks_dev" + } + ], + "time": "2025-10-18T00:05:59+00:00" + }, + { + "name": "phpcsstandards/phpcsextra", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHPCSExtra.git", + "reference": "39467533fdb742446d68c1d10ac33d625ee0311c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/39467533fdb742446d68c1d10ac33d625ee0311c", + "reference": "39467533fdb742446d68c1d10ac33d625ee0311c", + "shasum": "" + }, + "require": { + "php": ">=5.4", + "phpcsstandards/phpcsutils": "^1.2.3", + "squizlabs/php_codesniffer": "^3.13.5 || ^4.0.1" + }, + "require-dev": { + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpcsstandards/phpcsdevcs": "^1.2.0", + "phpcsstandards/phpcsdevtools": "^1.2.1", + "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-stable": "1.x-dev", + "dev-develop": "1.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Juliette Reinders Folmer", + "homepage": "https://github.com/jrfnl", + "role": "lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHPCSExtra/graphs/contributors" + } + ], + "description": "A collection of sniffs and standards for use with PHP_CodeSniffer.", + "keywords": [ + "PHP_CodeSniffer", + "phpcbf", + "phpcodesniffer-standard", + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/PHPCSExtra/issues", + "security": "https://github.com/PHPCSStandards/PHPCSExtra/security/policy", + "source": "https://github.com/PHPCSStandards/PHPCSExtra" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" + } + ], + "time": "2026-07-27T11:13:17+00:00" + }, + { + "name": "phpcsstandards/phpcsutils", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHPCSUtils.git", + "reference": "5f35d9408c54d7b529501f3c688b6eae562aea1f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/5f35d9408c54d7b529501f3c688b6eae562aea1f", + "reference": "5f35d9408c54d7b529501f3c688b6eae562aea1f", + "shasum": "" + }, + "require": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0", + "php": ">=5.4", + "squizlabs/php_codesniffer": "^3.13.5 || ^4.0.1" + }, + "require-dev": { + "ext-filter": "*", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpcsstandards/phpcsdevcs": "^1.2.0", + "yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0 || ^3.0.0" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-stable": "1.x-dev", + "dev-develop": "1.x-dev" + } + }, + "autoload": { + "classmap": [ + "PHPCSUtils/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Juliette Reinders Folmer", + "homepage": "https://github.com/jrfnl", + "role": "lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHPCSUtils/graphs/contributors" + } + ], + "description": "A suite of utility functions for use with PHP_CodeSniffer", + "homepage": "https://phpcsutils.com/", + "keywords": [ + "PHP_CodeSniffer", + "phpcbf", + "phpcodesniffer-standard", + "phpcs", + "phpcs3", + "phpcs4", + "standards", + "static analysis", + "tokens", + "utility" + ], + "support": { + "docs": "https://phpcsutils.com/", + "issues": "https://github.com/PHPCSStandards/PHPCSUtils/issues", + "security": "https://github.com/PHPCSStandards/PHPCSUtils/security/policy", + "source": "https://github.com/PHPCSStandards/PHPCSUtils" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" + } + ], + "time": "2026-07-27T10:28:41+00:00" + }, + { + "name": "phpstan/extension-installer", + "version": "1.4.3", + "source": { + "type": "git", + "url": "https://github.com/phpstan/extension-installer.git", + "reference": "85e90b3942d06b2326fba0403ec24fe912372936" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/85e90b3942d06b2326fba0403ec24fe912372936", + "reference": "85e90b3942d06b2326fba0403ec24fe912372936", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0", + "php": "^7.2 || ^8.0", + "phpstan/phpstan": "^1.9.0 || ^2.0" + }, + "require-dev": { + "composer/composer": "^2.0", + "php-parallel-lint/php-parallel-lint": "^1.2.0", + "phpstan/phpstan-strict-rules": "^0.11 || ^0.12 || ^1.0" + }, + "type": "composer-plugin", + "extra": { + "class": "PHPStan\\ExtensionInstaller\\Plugin" + }, + "autoload": { + "psr-4": { + "PHPStan\\ExtensionInstaller\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Composer plugin for automatic installation of PHPStan extensions", + "keywords": [ + "dev", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpstan/extension-installer/issues", + "source": "https://github.com/phpstan/extension-installer/tree/1.4.3" + }, + "time": "2024-09-04T20:21:43+00:00" + }, + { + "name": "phpstan/phpstan", + "version": "2.2.16", + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/46a6d9060e5a7763adfcc21ebcb8b504ebdbcb92", + "reference": "46a6d9060e5a7763adfcc21ebcb8b504ebdbcb92", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0" + }, + "conflict": { + "phpstan/phpstan-shim": "*" + }, + "bin": [ + "phpstan", + "phpstan.phar" + ], + "type": "library", + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ondřej Mirtes" + }, + { + "name": "Markus Staab" + }, + { + "name": "Vincent Langlet" + } + ], + "description": "PHPStan - PHP Static Analysis Tool", + "keywords": [ + "dev", + "static analysis" + ], + "support": { + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", + "issues": "https://github.com/phpstan/phpstan/issues", + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" + }, + "funding": [ + { + "url": "https://github.com/ondrejmirtes", + "type": "github" + }, + { + "url": "https://github.com/phpstan", + "type": "github" + } + ], + "time": "2026-09-25T09:31:51+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.13.6", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", + "reference": "4c378e1a528ea066890fc2397cbdd2f94eb2fc91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/4c378e1a528ea066890fc2397cbdd2f94eb2fc91", + "reference": "4c378e1a528ea066890fc2397cbdd2f94eb2fc91", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" + }, + "bin": [ + "bin/phpcbf", + "bin/phpcs" + ], + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "Former lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "Current lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", + "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", + "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" + } + ], + "time": "2026-08-06T00:17:32+00:00" + }, + { + "name": "szepeviktor/phpstan-wordpress", + "version": "v2.0.4", + "source": { + "type": "git", + "url": "https://github.com/szepeviktor/phpstan-wordpress.git", + "reference": "84577e2ea1e4c2a95537fe5ea2ac8e18f4ceab1a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/szepeviktor/phpstan-wordpress/zipball/84577e2ea1e4c2a95537fe5ea2ac8e18f4ceab1a", + "reference": "84577e2ea1e4c2a95537fe5ea2ac8e18f4ceab1a", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "php-stubs/wordpress-stubs": ">=6.6.2", + "phpstan/phpstan": "^2.0" + }, + "require-dev": { + "composer/composer": "^2.1.14", + "composer/semver": "^3.4", + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.0", + "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^1.0", + "wp-coding-standards/wpcs": "3.1.0 as 2.3.0" + }, + "suggest": { + "swissspidy/phpstan-no-private": "Detect usage of internal core functions, classes and methods" + }, + "type": "phpstan-extension", + "extra": { + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "psr-4": { + "SzepeViktor\\PHPStan\\WordPress\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "WordPress extensions for PHPStan", + "keywords": [ + "PHPStan", + "code analyse", + "code analysis", + "static analysis", + "wordpress" + ], + "support": { + "issues": "https://github.com/szepeviktor/phpstan-wordpress/issues", + "source": "https://github.com/szepeviktor/phpstan-wordpress/tree/v2.0.4" + }, + "time": "2026-05-22T16:22:09+00:00" + }, + { + "name": "wp-coding-standards/wpcs", + "version": "3.4.1", + "source": { + "type": "git", + "url": "https://github.com/WordPress/WordPress-Coding-Standards.git", + "reference": "ec2ff942335f33683a5957a85d138753876a05cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/ec2ff942335f33683a5957a85d138753876a05cf", + "reference": "ec2ff942335f33683a5957a85d138753876a05cf", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "ext-libxml": "*", + "ext-tokenizer": "*", + "ext-xmlreader": "*", + "php": ">=7.2", + "phpcsstandards/phpcsextra": "^1.5.1", + "phpcsstandards/phpcsutils": "^1.2.3", + "squizlabs/php_codesniffer": "^3.13.5" + }, + "require-dev": { + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpcompatibility/php-compatibility": "^10.0.0@dev", + "phpcsstandards/phpcsdevtools": "^1.2.0", + "phpunit/phpunit": "^8.0 || ^9.0" + }, + "suggest": { + "ext-iconv": "For improved results", + "ext-mbstring": "For improved results" + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Contributors", + "homepage": "https://github.com/WordPress/WordPress-Coding-Standards/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions", + "keywords": [ + "phpcs", + "standards", + "static analysis", + "wordpress" + ], + "support": { + "issues": "https://github.com/WordPress/WordPress-Coding-Standards/issues", + "source": "https://github.com/WordPress/WordPress-Coding-Standards", + "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki" + }, + "funding": [ + { + "url": "https://opencollective.com/php_codesniffer", + "type": "custom" + } + ], + "time": "2026-07-27T11:53:23+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=7.4" + }, + "platform-dev": {}, + "platform-overrides": { + "php": "7.4.33" + }, + "plugin-api-version": "2.6.0" +} diff --git a/includes/class-wpstarter-feature.php b/includes/class-wpstarter-feature.php new file mode 100644 index 0000000..1e92693 --- /dev/null +++ b/includes/class-wpstarter-feature.php @@ -0,0 +1,273 @@ + KEY); + * - registers its hooks in boot(), which runs on `init` (priority 0, before + * widgets_init) for every registered feature. Disabled features should + * return early so they cost nothing; + * - optionally imports settings from the plugin it replaces in migrate(). + * + * While a plugin that a setting replaces is active, the setting waits: + * enabled() is false and that plugin keeps doing the job, so the two never + * run side by side (two admin bar menus, analytics loaded twice). The + * settings card says so, with a deactivate link. + * + * Register extra features with the `wpstarter_features` filter. + * + * @package WPStarter + * @since 0.3.0 + */ + +if (!defined('ABSPATH')) { + exit; +} + +abstract class WPStarter_Feature { + + /** Setting key of the feature's on/off switch. */ + const KEY = ''; + + /** + * Settings schema entries for this feature. + * + * @return array + */ + public static function settings() { + return array(); + } + + /** + * Whether the feature is switched on and not waiting for a plugin it + * replaces to be deactivated. + * + * @return bool + */ + public static function enabled() { + return static::switched_on() && !self::replaced_active(static::KEY); + } + + /** + * Whether the feature's switch is on, even if it is waiting. + * + * @return bool + */ + public static function switched_on() { + return '' !== static::KEY && (bool) WPStarter_Settings::get(static::KEY); + } + + /** + * Names of the active plugins that a setting replaces. + * + * @param string $key Setting key. + * @return array slug => name + */ + public static function replaced_active($key) { + $schema = WPStarter_Settings::schema(); + if (empty($schema[$key]['replaces']) || !is_array($schema[$key]['replaces'])) { + return array(); + } + return array_intersect_key($schema[$key]['replaces'], self::active_plugins()); + } + + /** + * Plugins active on this site or network-wide, keyed by folder name. + * + * @return array slug => plugin file + */ + public static function active_plugins() { + static $active = null; + if (null === $active) { + $files = self::stored_active_plugins(); + if (is_multisite()) { + $files = array_merge($files, array_keys((array) get_site_option('active_sitewide_plugins', array()))); + } + $active = array(); + foreach ($files as $file) { + $slug = dirname((string) $file); + if ('.' !== $slug) { + $active[$slug] = (string) $file; + } + } + } + return $active; + } + + /** + * Plugin files active on this site (not network-wide), as stored: a + * plugin skipped on this request still counts. + * + * @return string[] + */ + public static function stored_active_plugins() { + $files = get_option('active_plugins', array()); + $files = is_array($files) ? array_values(array_filter($files, 'is_string')) : array(); + /** + * Filter the active plugin files as stored, for code that skips + * plugins on some requests (WP Plugin Starter's "Load plugins only + * where needed" filters the option itself). + * + * @param string[] $files Plugin files, such as "akismet/akismet.php". + */ + $files = apply_filters('wpstarter_stored_active_plugins', $files); + return is_array($files) ? array_values(array_filter($files, 'is_string')) : array(); + } + + /** + * Whether some active plugins are skipped on this request, so things + * they register (post types, widgets) may be missing. + * + * @return bool + */ + public static function plugins_skipped() { + /** + * Filter whether some active plugins are skipped on this request. + * + * @param bool $skipped Whether they are. + */ + return (bool) apply_filters('wpstarter_plugins_skipped', false); + } + + /** + * Import settings once, when the stored settings version is older than + * WPStarter_Settings::DB_VERSION. Only fill keys that are not stored yet. + * + * @param array $options Stored settings (raw, without defaults). + * @param int $from_version Stored settings version before this upgrade. + * @return array + */ + public static function migrate(array $options, $from_version) { + return $options; + } + + /** + * Set a setting during migrate() unless it is already stored. + * (Named import_setting() so features may keep their own import() methods.) + * + * @param array $options Stored settings. + * @param string $key Setting key. + * @param mixed $value Raw value; null skips. + * @return array + */ + protected static function import_setting(array $options, $key, $value) { + $schema = WPStarter_Settings::schema(); + if (null !== $value && !array_key_exists($key, $options) && isset($schema[$key])) { + $options[$key] = WPStarter_Settings::sanitize_value($value, $schema[$key]); + } + return $options; + } + + /** + * Role options for multi settings. + * + * @return array + */ + public static function role_options() { + $roles = array(); + foreach (wp_roles()->get_names() as $role => $name) { + $roles[$role] = translate_user_role($name); + } + return $roles; + } + + /** + * Role options for settings that restrict people, without roles that can + * manage options (such as Administrator): current_user_in_roles() never + * matches them, so offering them would only mislead. + * + * @return array + */ + public static function restrictable_role_options() { + $roles = array(); + foreach (wp_roles()->roles as $role => $data) { + if (empty($data['capabilities']['manage_options'])) { + $roles[$role] = translate_user_role($data['name']); + } + } + return $roles; + } + + /** + * Whether the current user has one of the roles. Users who can manage + * options are never matched, so admins cannot lock themselves out. + * + * @param mixed $roles Role slugs. + * @return bool + */ + public static function current_user_in_roles($roles) { + $user = wp_get_current_user(); + if (!$user->exists() || user_can($user, 'manage_options')) { + return false; + } + return (bool) array_intersect((array) $user->roles, (array) $roles); + } + + /** + * Whether a batch that began at $start has time for one more item. + * + * The batch keeps to its own budget, and also to PHP's time limit for + * the whole request: WP-Cron runs every due batch in one request, so two + * 20-second batches would pass a 30-second limit. Where the host allows + * it, the limit is restarted for the next item instead. + * + * @param float $start microtime(true) when the batch began. + * @param int $budget Seconds the batch may run. + * @return bool + */ + public static function more_time($start, $budget) { + $now = microtime(true); + if ($now - $start >= $budget) { + return false; + } + $limit = (int) ini_get('max_execution_time'); + if ($limit <= 0) { + return true; + } + // set_time_limit() restarts the count; hosts may disable it. + if (function_exists('set_time_limit') && @set_time_limit(max($limit, 60))) { // phpcs:ignore WordPress.PHP.NoSilencedErrors, Squiz.PHP.DiscouragedFunctions -- may be disabled by the host. + return true; + } + $begun = isset($_SERVER['REQUEST_TIME_FLOAT']) ? (float) $_SERVER['REQUEST_TIME_FLOAT'] : $start; + $used = $now - $begun; + // On Linux the limit counts CPU time of every thread, and image + // libraries use several, so CPU time can run ahead of the clock. + // getrusage() counts the whole process, which under PHP-FPM serves + // many requests (thousands of seconds on a test site), so only CPU + // time since the first call in this request counts, plus the clock + // time before it. + $cpu = self::cpu_seconds(); + if (null !== $cpu) { + if (null === self::$cpu_base) { + self::$cpu_base = array($cpu, $now - $begun); + } + $used = max($used, $cpu - self::$cpu_base[0] + self::$cpu_base[1]); + } + return $used < $limit - min(10, $limit / 3); + } + + /** CPU seconds and request seconds at the first more_time() check. @var array|null */ + private static $cpu_base = null; + + /** + * CPU seconds this process has used, or null when unknown. + * + * @return float|null + */ + private static function cpu_seconds() { + if (!function_exists('getrusage')) { + return null; + } + $usage = getrusage(); + if (!is_array($usage) || !isset($usage['ru_utime.tv_sec'], $usage['ru_stime.tv_sec'], $usage['ru_utime.tv_usec'], $usage['ru_stime.tv_usec'])) { + return null; + } + return $usage['ru_utime.tv_sec'] + $usage['ru_stime.tv_sec'] + ($usage['ru_utime.tv_usec'] + $usage['ru_stime.tv_usec']) / 1e6; + } + + /** + * Register hooks. + */ + abstract public static function boot(); +} diff --git a/includes/class-wpstarter-settings.php b/includes/class-wpstarter-settings.php new file mode 100644 index 0000000..9e025ae --- /dev/null +++ b/includes/class-wpstarter-settings.php @@ -0,0 +1,599 @@ + label array, or a callable returning one (select, multi) + * - open: multi only; also keep key-like values that are not (yet) + * in options, e.g. post types or widgets registered later + * - replaces: top-level only; plugin slug => name this setting replaces + * - reload: true when the change shows only after a page load; the + * saved message then asks to reload the page + * - label, description, placeholder, min, max, unit, tokens, rows: UI metadata + * + * Types also include `url` (one URL or site path), `lines` (one entry + * per line, sanitized as plain text) and `media` (a Media Library + * picture's ID, chosen with the media dialog). + * + * @return array + */ + public static function schema() { + if (null !== self::$schema) { + return self::$schema; + } + + $schema = array(); + foreach (WPStarter::features() as $class) { + $schema += (array) $class::settings(); + } + + /** + * Filter the settings schema to add or adjust settings. + * + * @param array $schema Setting definitions keyed by setting key. + */ + $schema = (array) apply_filters('wpstarter_settings_schema', $schema); + + foreach ($schema as $key => $field) { + if (isset($field['tab']) && is_string($field['tab'])) { + $schema[$key]['tab'] = self::resolve_tab($field['tab']); + } + } + + self::$schema = $schema; + + return self::$schema; + } + + /** + * Resolve a select/multi field's options. + * + * Options may be a callable so they can depend on data registered at + * `init` (post types, roles) without building it for every request. + * + * @param array $field Schema entry. + * @return array value => label + */ + public static function options_for(array $field) { + if (empty($field['options'])) { + return array(); + } + $options = is_callable($field['options']) ? call_user_func($field['options']) : $field['options']; + return is_array($options) ? $options : array(); + } + + /** + * Default values for every setting. + * + * @return array + */ + public static function defaults() { + if (null === self::$defaults) { + self::$defaults = array(); + foreach (self::schema() as $key => $field) { + self::$defaults[$key] = isset($field['default']) ? $field['default'] : null; + } + } + return self::$defaults; + } + + /** + * All settings merged over defaults. + * + * @return array + */ + public static function all() { + $stored = get_option(self::OPTION, array()); + if (!is_array($stored)) { + $stored = array(); + } + return array_merge(self::defaults(), array_intersect_key($stored, self::schema())); + } + + /** + * Read one setting. + * + * @param string $key Setting key. + * @return mixed Value, or null for unknown keys. + */ + public static function get($key) { + $all = self::all(); + return array_key_exists($key, $all) ? $all[$key] : null; + } + + /** + * Update one setting after sanitizing it. + * + * @param string $key Setting key. + * @param mixed $value Raw value. + * @return mixed|WP_Error Sanitized value, or error for unknown keys. + */ + public static function set($key, $value) { + $schema = self::schema(); + if (!isset($schema[$key])) { + return new WP_Error('wpstarter_unknown_setting', __('Unknown setting.', 'wp-plugin-starter-template')); + } + + // Read what is stored now, not the copy loaded when this request + // began, so a save made meanwhile is not overwritten. + self::flush_cache(); + $options = self::all(); + $options[$key] = self::sanitize_value($value, $schema[$key]); + update_option(self::OPTION, $options); + + if (!self::stored($key, $options[$key])) { + return new WP_Error('wpstarter_not_saved', __('The setting could not be saved. Please try again.', 'wp-plugin-starter-template')); + } + return $options[$key]; + } + + /** + * Drop cached copies of the settings so the next read hits the database. + */ + private static function flush_cache() { + wp_cache_delete(self::OPTION, 'options'); + wp_cache_delete('alloptions', 'options'); + } + + /** + * Whether the database holds a value for a setting (update_option() + * returns false both for "unchanged" and for a failed write). + * + * @param string $key Setting key. + * @param mixed $value Expected value. + * @return bool + */ + private static function stored($key, $value) { + self::flush_cache(); + $stored = get_option(self::OPTION); + return is_array($stored) && array_key_exists($key, $stored) && $stored[$key] === $value; + } + + /** + * Top-level settings for a tab. + * + * @param string $tab Tab slug. + * @return array + */ + public static function fields_for_tab($tab) { + return array_filter(self::schema(), function ($field) use ($tab) { + return empty($field['parent']) && isset($field['tab']) && $field['tab'] === $tab; + }); + } + + /** + * Map a renamed tab slug to its current slug + * (WPStarter_Setup::RENAMED_TABS). + * + * @param string $tab Tab slug. + * @return string + */ + public static function resolve_tab($tab) { + $renamed = WPStarter_Setup::RENAMED_TABS; + return array_key_exists($tab, $renamed) ? $renamed[$tab] : $tab; + } + + /** + * Top-level settings that match a search, in schema order. + * + * Matches the label, description, replaced plugin names and the labels + * of child options, ignoring case. + * + * @param string $query Search text. + * @return array + */ + public static function search($query) { + $query = trim((string) $query); + if ('' === $query) { + return array(); + } + + $matches = array(); + foreach (self::schema() as $key => $field) { + if (!empty($field['parent']) || empty($field['tab'])) { + continue; + } + + $haystack = array( + $key, + isset($field['label']) ? $field['label'] : '', + isset($field['description']) ? $field['description'] : '', + ); + if (!empty($field['replaces']) && is_array($field['replaces'])) { + $haystack = array_merge($haystack, array_keys($field['replaces']), array_values($field['replaces'])); + } + foreach (self::children_of($key) as $child) { + $haystack[] = isset($child['label']) && empty($child['hidden']) ? (string) $child['label'] : ''; + } + + $text = implode(' ', array_map('strval', $haystack)); + $found = function_exists('mb_stripos') ? mb_stripos($text, $query) : stripos($text, $query); + if (false !== $found) { + $matches[$key] = $field; + } + } + + return $matches; + } + + /** + * Child settings rendered in a parent's panel. + * + * @param string $parent Parent setting key. + * @return array + */ + public static function children_of($parent) { + return array_filter(self::schema(), function ($field) use ($parent) { + return isset($field['parent']) && $field['parent'] === $parent; + }); + } + + /** + * Sanitize a value according to its schema entry. + * + * Must be idempotent: update_option() re-runs sanitize_all() on the + * already-sanitized array. + * + * @param mixed $value Raw value. + * @param array $field Schema entry. + * @return mixed + */ + public static function sanitize_value($value, array $field) { + $type = isset($field['type']) ? $field['type'] : 'text'; + $default = isset($field['default']) ? $field['default'] : null; + + switch ($type) { + case 'bool': + return rest_sanitize_boolean($value); + + case 'int': + $value = is_numeric($value) ? (int) $value : (int) $default; + if (isset($field['min'])) { + $value = max((int) $field['min'], $value); + } + if (isset($field['max'])) { + $value = min((int) $field['max'], $value); + } + return $value; + + case 'domains': + return implode("\n", self::parse_domains($value)); + + case 'media': + // A Media Library picture's ID, or 0. + $value = is_numeric($value) ? absint($value) : 0; + return $value && wp_attachment_is_image($value) ? $value : 0; + + case 'select': + $value = is_scalar($value) ? (string) $value : ''; + if (array_key_exists($value, self::options_for($field))) { + return $value; + } + // Open selects (another plugin's board or course) keep an + // identifier whose plugin is not loaded on this request. + return !empty($field['open']) && strlen($value) <= 200 && preg_match('/^[A-Za-z0-9_-]+$/', $value) ? $value : $default; + + case 'multi': + $values = is_array($value) ? $value : preg_split('/\s*,\s*/', (string) $value, -1, PREG_SPLIT_NO_EMPTY); + $values = array_map('strval', array_filter((array) $values, 'is_scalar')); + // Keep the options' order so stored values are stable. + $known = array_values(array_intersect(array_map('strval', array_keys(self::options_for($field))), $values)); + if (empty($field['open'])) { + return $known; + } + // Open lists also keep identifiers that are not registered right now + // (class names may contain namespace separators). + $extra = array_filter(array_diff($values, $known), function ($item) { + return strlen($item) <= 200 && (bool) preg_match('/^[A-Za-z0-9_\\\\-]+$/', $item); + }); + return array_values(array_unique(array_merge($known, $extra))); + + case 'times': + return implode(', ', self::parse_times($value)); + + case 'url': + $value = trim((string) $value); + if ('' === $value) { + return ''; + } + if ('/' === $value[0] && '/' !== substr($value, 1, 1)) { + // Site path: keep it relative so it survives domain changes. + return '/' . ltrim(preg_replace('/\s+/', '', sanitize_text_field($value)), '/'); + } + return esc_url_raw($value, array('http', 'https')); + + case 'lines': + $lines = preg_split('/[\r\n]+/', (string) $value); + // Not sanitize_text_field(): it strips %xx, which URL paths need. + $lines = array_filter(array_map(function ($line) { + return trim(preg_replace('/[\x00-\x1F\x7F]+/', '', wp_strip_all_tags($line))); + }, $lines), function ($line) { + return '' !== $line; + }); + return implode("\n", array_values(array_unique($lines))); + + case 'text': + default: + $value = (string) $value; + if (empty($field['tokens'])) { + return sanitize_text_field($value); + } + // sanitize_text_field() drops "%" plus two hex digits, which + // breaks tokens such as %date% and %day%; set them aside. + $tokens = array(); + foreach (array_values((array) $field['tokens']) as $i => $token) { + $tokens["\u{E000}{$i}\u{E001}"] = (string) $token; + } + $value = str_replace(array_values($tokens), array_keys($tokens), $value); + return str_replace(array_keys($tokens), array_values($tokens), sanitize_text_field($value)); + } + } + + /** + * Normalise a newline/comma separated domain list to bare lowercase hosts. + * + * @param mixed $value Raw list. + * @return string[] + */ + public static function parse_domains($value) { + $lines = preg_split('/[\r\n,]+/', (string) $value); + $domains = array(); + + foreach ($lines as $line) { + $line = trim($line); + if ('' === $line) { + continue; + } + $host = wp_parse_url(false === strpos($line, '://') ? 'http://' . $line : $line, PHP_URL_HOST); + $host = $host ? strtolower(preg_replace('/^www\./i', '', $host)) : ''; + if ('' !== $host && preg_match('/^[a-z0-9.-]+$/', $host)) { + $domains[] = $host; + } + } + + return array_values(array_unique($domains)); + } + + /** + * Whether a host is one of the domains or a subdomain of one. + * + * @param string $host Host name. + * @param string[] $domains Normalised domains from parse_domains(). + * @return bool + */ + public static function host_matches($host, array $domains) { + $host = strtolower(preg_replace('/^www\./i', '', (string) $host)); + foreach ($domains as $domain) { + if ($host === $domain || substr($host, -strlen('.' . $domain)) === '.' . $domain) { + return true; + } + } + return false; + } + + /** + * Normalise a list of times of day to sorted, unique 24-hour "HH:MM". + * + * Accepts "9", "9:30", "09:30", "9.30", "9pm", "9:30 am" separated by + * commas, spaces or new lines. + * + * @param mixed $value Raw list. + * @return string[] + */ + public static function parse_times($value) { + preg_match_all('/(\d{1,2})(?:[:.](\d{2}))?\s*(am|pm)?/i', (string) $value, $matches, PREG_SET_ORDER); + $times = array(); + + foreach ($matches as $match) { + $hour = (int) $match[1]; + $minute = isset($match[2]) && '' !== $match[2] ? (int) $match[2] : 0; + $suffix = isset($match[3]) ? strtolower($match[3]) : ''; + if ('pm' === $suffix && $hour < 12) { + $hour += 12; + } elseif ('am' === $suffix && 12 === $hour) { + $hour = 0; + } + if ($hour > 23 || $minute > 59) { + continue; + } + $times[] = sprintf('%02d:%02d', $hour, $minute); + } + + $times = array_values(array_unique($times)); + sort($times); + return $times; + } + + /** + * Sanitize the whole array when saved through options.php or update_option(). + * + * @param mixed $input Raw option value. + * @return array + */ + public static function sanitize_all($input) { + $input = is_array($input) ? $input : array(); + $schema = self::schema(); + $clean = self::all(); + + foreach ($input as $key => $value) { + if (isset($schema[$key])) { + $clean[$key] = self::sanitize_value($value, $schema[$key]); + } + } + + return $clean; + } + + /** + * Register the option with the Settings API. + */ + public static function register_setting() { + register_setting(self::GROUP, self::OPTION, array( + 'type' => 'object', + 'sanitize_callback' => array(__CLASS__, 'sanitize_all'), + 'default' => self::defaults(), + 'show_in_rest' => false, + )); + } + + /** + * AJAX: save a single setting (used by instant-save controls). + */ + public static function ajax_save() { + check_ajax_referer(self::NONCE, 'nonce'); + + if (!self::can_change()) { + wp_send_json_error(array('message' => __('You are not allowed to change these settings.', 'wp-plugin-starter-template')), 403); + } + + $key = isset($_POST['key']) ? sanitize_key(wp_unslash($_POST['key'])) : ''; + // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- sanitized per schema in set(). + $raw = isset($_POST['value']) ? wp_unslash($_POST['value']) : ''; + + $value = self::set($key, $raw); + if (is_wp_error($value)) { + wp_send_json_error(array('message' => $value->get_error_message()), 400); + } + + /** + * Fires after a setting is saved from the admin UI. + * + * @param string $key Setting key. + * @param mixed $value Sanitized value. + */ + do_action('wpstarter_setting_saved', $key, $value); + + $schema = self::schema(); + $reload = !empty($schema[$key]['reload']); + wp_send_json_success(array( + 'key' => $key, + 'value' => $value, + 'message' => $reload ? __('Saved. Reload the page to see the change.', 'wp-plugin-starter-template') : __('Saved', 'wp-plugin-starter-template'), + 'reload' => $reload, + )); + } + + /** + * One-off migrations, once per DB_VERSION: WPStarter_Setup::migrate() + * (imports that belong to no feature), then each feature's migrate(). + * The history of versions is in WPStarter_Setup::DB_VERSION. + * + * Old options are left in place so a downgrade keeps working; + * uninstall.php removes ours. Other plugins' options are never touched. + */ + public static function maybe_migrate() { + $from = (int) get_option(self::DB_VERSION_OPTION, 0); + if ($from >= self::DB_VERSION) { + return; + } + + $options = get_option(self::OPTION, array()); + $options = is_array($options) ? $options : array(); + $options = (array) WPStarter_Setup::migrate($options, $from); + + foreach (WPStarter::features() as $class) { + $options = (array) $class::migrate($options, $from); + } + + $clean = self::sanitize_all($options); + update_option(self::OPTION, $clean); + + // Only record the version once the settings are stored, so a failed + // write is retried on the next request instead of losing imports. + self::flush_cache(); + if (get_option(self::OPTION) != $clean) { // phpcs:ignore Universal.Operators.StrictComparisons -- key order may differ. + return; + } + update_option(self::DB_VERSION_OPTION, self::DB_VERSION); + } +} diff --git a/includes/class-wpstarter-setup.php b/includes/class-wpstarter-setup.php new file mode 100644 index 0000000..3d620d1 --- /dev/null +++ b/includes/class-wpstarter-setup.php @@ -0,0 +1,119 @@ + new. Settings that still use an old slug + * land on the new tab, and old admin links open the new tab. + */ + const RENAMED_TABS = array(); + + /** + * Links in the settings screen header; leave one out for no button. + * + * - website: the maker's website + * - support: where people report problems (the plugin's GitHub issues) + * - donate: where people can support the maker + * + * @return array + */ + public static function header_links() { + return array( + 'website' => 'https://www.wpallstars.com/', + 'support' => 'https://github.com/wpallstars/wp-plugin-starter-template-for-ai-coding/issues', + 'donate' => 'https://buymeacoffee.com/marcusquinn', + ); + } + + /** + * Load the plugin's own helpers, before the features. + */ + public static function load() { + } + + /** + * Register the helpers' hooks, after the settings store's. + */ + public static function init() { + } + + /** + * Imports that belong to no feature, run once per DB_VERSION before + * the features' own (for example settings from the plugin's earlier + * names). Never write or delete other plugins' options. + * + * @param array $options Stored settings (raw, without defaults). + * @param int $from_version Stored settings version before this upgrade. + * @return array + */ + public static function migrate(array $options, $from_version) { + unset($from_version); + return $options; + } + + /** + * Settings tabs, in navigation order. A tab shows only when a setting + * uses it; with no settings at all, the first one shows, empty. + * + * @return array + */ + public static function settings_tabs() { + return array( + 'general' => array( + 'label' => __('General', 'wp-plugin-starter-template'), + 'description' => __('WP Plugin Starter\'s settings appear here as features are added.', 'wp-plugin-starter-template'), + ), + ); + } + + /** + * Admin requests: load and start the plugin's own admin parts (other + * tabs with the wpstarter_admin_tabs filter, scripts with the + * wpstarter_admin_enqueue action). + */ + public static function admin() { + } +} diff --git a/includes/class-wpstarter.php b/includes/class-wpstarter.php new file mode 100644 index 0000000..f0f4230 --- /dev/null +++ b/includes/class-wpstarter.php @@ -0,0 +1,122 @@ + Plugin file => details. + */ + public static function plugins() { + static $found = null; + if (null !== $found) { + return $found; + } + if (!function_exists('get_plugins')) { + require_once ABSPATH . 'wp-admin/includes/plugin.php'; + } + + $found = array(); + foreach (get_plugins() as $file => $data) { + // Plugins in a folder only: an update replaces the whole folder. + if ('.' === dirname($file)) { + continue; + } + $headers = get_file_data(WP_PLUGIN_DIR . '/' . $file, array( + 'repo' => 'GitHub Plugin URI', + 'asset' => 'Release Asset', + )); + $repo = self::repo_name($headers['repo']); + if ('' === $repo) { + continue; + } + $found[$file] = array( + 'repo' => $repo, + 'asset_only' => in_array(strtolower(trim($headers['asset'])), array('true', 'yes', '1'), true), + 'version' => isset($data['Version']) ? (string) $data['Version'] : '', + 'name' => isset($data['Name']) ? (string) $data['Name'] : $file, + ); + } + + /** + * Filter the plugins updated from GitHub releases. + * + * @param array $found Plugin file => array(repo, asset_only, version, name). + */ + $filtered = (array) apply_filters('wpallstars_github_plugins', $found); + $found = array(); + foreach ($filtered as $file => $plugin) { + $repo = is_array($plugin) && isset($plugin['repo']) ? self::repo_name($plugin['repo']) : ''; + if ('' === $repo || '.' === dirname((string) $file)) { + continue; + } + $found[(string) $file] = array( + 'repo' => $repo, + 'asset_only' => !empty($plugin['asset_only']), + 'version' => isset($plugin['version']) ? (string) $plugin['version'] : '', + 'name' => isset($plugin['name']) ? (string) $plugin['name'] : (string) $file, + ); + } + return $found; + } + + /** + * owner/repo from a header value ("owner/repo" or a github.com address). + * + * @param mixed $value Header value. + * @return string owner/repo, or '' when it is not one. + */ + public static function repo_name($value) { + $value = trim((string) $value); + $value = preg_replace('#^(?:https?://)?(?:www\.)?github\.com/#i', '', $value); + $value = preg_replace('#(?:\.git)?/*$#', '', (string) $value); + return preg_match('#^[A-Za-z0-9](?:[A-Za-z0-9-]{0,38})/[A-Za-z0-9._-]{1,100}$#', (string) $value) ? (string) $value : ''; + } + + /** + * Token for a repository, if the site has one. + * + * @param string $repo owner/repo. + * @return string + */ + private static function token($repo) { + $token = defined('WPALLSTARS_GITHUB_TOKEN') ? (string) WPALLSTARS_GITHUB_TOKEN : ''; + /** + * Filter the GitHub token used for a repository (private repositories + * need one with read access to its contents). Return '' for none. + * + * @param string $token Token. + * @param string $repo owner/repo. + */ + return trim((string) apply_filters('wpallstars_github_token', $token, $repo)); + } + + /** + * GET from the GitHub API. + * + * @param string $repo owner/repo (for the token). + * @param string $path Path after /repos/{repo}. + * @param string $accept Accept header. + * @return array|WP_Error + */ + private static function api_get($repo, $path, $accept = 'application/vnd.github+json') { + $headers = array( + 'Accept' => $accept, + 'X-GitHub-Api-Version' => '2022-11-28', + ); + $token = self::token($repo); + if ('' !== $token) { + $headers['Authorization'] = 'Bearer ' . $token; + } + // No redirects: the token must never travel to another address. + return wp_safe_remote_get('https://api.github.com/repos/' . $repo . $path, array( + 'timeout' => 10, + 'redirection' => 0, + 'headers' => $headers, + )); + } + + /** + * Stored release answers. + * + * @return array + */ + private static function cache() { + if (null === self::$cache) { + $stored = get_site_transient(self::CACHE); + self::$cache = is_array($stored) ? $stored : array(); + } + return self::$cache; + } + + /** + * Whether someone pressed "Check again" on the Updates screen. + * + * @return bool + */ + private static function forced() { + global $pagenow; + // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- core's own link; it only refreshes data. + return is_admin() && 'update-core.php' === $pagenow && !empty($_GET['force-check']) && current_user_can('update_plugins'); + } + + /** + * Latest release of a repository, from the cache or GitHub. + * + * @param string $repo owner/repo. + * @param string $folder Plugin folder (picks the release asset). + * @param string $main Main file name in the folder (reads its requirements). + * @return array|null Release, or null when there is none or GitHub did not answer. + */ + public static function release($repo, $folder, $main) { + $cache = self::cache(); + // The asset and requirements depend on the plugin, not only the repository. + $key = $repo . '|' . $folder . '/' . $main; + $entry = isset($cache[$key]) && is_array($cache[$key]) ? $cache[$key] : null; + $age = $entry && isset($entry['checked']) ? time() - (int) $entry['checked'] : PHP_INT_MAX; + $keep = $entry && !empty($entry['failed']) ? self::RETRY : self::FRESH; + + if ($entry && $age < $keep && !(self::forced() && $age > self::RECENT)) { + return isset($entry['release']) ? $entry['release'] : null; + } + + $release = self::fetch($repo, $folder, $main); + if (is_wp_error($release)) { + // Keep the last good answer, and try again in an hour. + $entry = array( + 'checked' => time(), + 'failed' => $release->get_error_message(), + 'release' => $entry && isset($entry['release']) ? $entry['release'] : null, + ); + } else { + $entry = array('checked' => time(), 'release' => $release); + } + + self::$cache[$key] = $entry; + set_site_transient(self::CACHE, self::$cache, 2 * DAY_IN_SECONDS); + return $entry['release']; + } + + /** + * Ask GitHub for a repository's latest release. + * + * @param string $repo owner/repo. + * @param string $folder Plugin folder. + * @param string $main Main file name. + * @return array|null|WP_Error Release, null when there is no usable one, or the error. + */ + private static function fetch($repo, $folder, $main) { + return '' !== self::token($repo) ? self::fetch_api($repo, $folder, $main) : self::fetch_web($repo, $folder, $main); + } + + /** + * An error for a GitHub answer that was not the expected one. + * + * @param int $code HTTP status code. + * @return WP_Error + */ + private static function status_error($code) { + /* translators: %d: HTTP status code */ + return new WP_Error('wpallstars_github', sprintf(__('GitHub answered with status %d.', 'wp-plugin-starter-template'), $code)); + } + + /** + * Latest release from github.com's own pages, for public repositories. + * The GitHub API allows 60 requests an hour per server address without + * a token, which hosts share between many sites; these pages do not + * count towards it. + * + * @param string $repo owner/repo. + * @param string $folder Plugin folder. + * @param string $main Main file name. + * @return array|null|WP_Error + */ + private static function fetch_web($repo, $folder, $main) { + // Redirects to the newest release that is not a draft or pre-release. + $response = wp_safe_remote_head('https://github.com/' . $repo . '/releases/latest', array( + 'timeout' => 10, + 'redirection' => 0, + )); + if (is_wp_error($response)) { + return $response; + } + $code = (int) wp_remote_retrieve_response_code($response); + $location = (string) wp_remote_retrieve_header($response, 'location'); + if (404 === $code) { + // No such public repository (private ones need a token). + return null; + } + if ($code < 300 || $code > 399) { + return self::status_error($code); + } + if (!preg_match('#^https://github\.com/' . preg_quote($repo, '#') . '/releases/tag/([^/?\#]+)$#i', $location, $match)) { + // No releases yet: GitHub sends the releases list instead. + return null; + } + + $tag = rawurldecode($match[1]); + $version = preg_replace('/^v/i', '', $tag); + if (!preg_match('/^[0-9]+(\.[0-9]+)*$/', $version)) { + return null; + } + + // The release zip, by its usual name: {folder}-{version}.zip. + $asset = null; + $download = 'https://github.com/' . $repo . '/releases/download/' . rawurlencode($tag) . '/' . rawurlencode($folder . '-' . $version . '.zip'); + $head = wp_safe_remote_head($download, array('timeout' => 10, 'redirection' => 0)); + if (is_wp_error($head)) { + return $head; + } + $code = (int) wp_remote_retrieve_response_code($head); + if ($code >= 300 && $code < 400) { + $asset = array('public' => $download, 'api' => ''); + } elseif (404 !== $code) { + return self::status_error($code); + } + + $release = array( + 'tag' => $tag, + 'version' => $version, + 'url' => $location, + 'published' => '', + 'notes' => '', + 'asset' => $asset, + 'zipball' => 'https://github.com/' . $repo . '/archive/refs/tags/' . rawurlencode($tag) . '.zip', + ); + $file = wp_safe_remote_get('https://raw.githubusercontent.com/' . $repo . '/' . rawurlencode($tag) . '/' . rawurlencode($main), array( + 'timeout' => 10, + 'headers' => array('Range' => 'bytes=0-8191'), + )); + $body = !is_wp_error($file) && in_array((int) wp_remote_retrieve_response_code($file), array(200, 206), true) ? (string) wp_remote_retrieve_body($file) : ''; + return $release + self::requirements($body); + } + + /** + * Latest release from the GitHub API, with a token (private repositories). + * + * @param string $repo owner/repo. + * @param string $folder Plugin folder. + * @param string $main Main file name. + * @return array|null|WP_Error + */ + private static function fetch_api($repo, $folder, $main) { + // The newest release that is not a draft or pre-release. + $response = self::api_get($repo, '/releases/latest'); + if (is_wp_error($response)) { + return $response; + } + $code = (int) wp_remote_retrieve_response_code($response); + if (404 === $code) { + // No releases yet, or a private repository without a token. + return null; + } + if (200 !== $code) { + return self::status_error($code); + } + + $data = json_decode(wp_remote_retrieve_body($response), true); + $tag = is_array($data) && isset($data['tag_name']) ? (string) $data['tag_name'] : ''; + $version = preg_replace('/^v/i', '', $tag); + // Numbers only: anything else is not a finished version. + if (!preg_match('/^[0-9]+(\.[0-9]+)*$/', $version)) { + return null; + } + + $release = array( + 'tag' => $tag, + 'version' => $version, + 'url' => isset($data['html_url']) ? (string) $data['html_url'] : 'https://github.com/' . $repo . '/releases', + 'published' => isset($data['published_at']) ? (string) $data['published_at'] : '', + 'notes' => isset($data['body']) ? substr((string) $data['body'], 0, 20000) : '', + 'asset' => self::pick_asset($repo, $folder, isset($data['assets']) && is_array($data['assets']) ? $data['assets'] : array()), + 'zipball' => 'https://api.github.com/repos/' . $repo . '/zipball/' . rawurlencode($tag), + ); + $file = self::api_get($repo, '/contents/' . rawurlencode($main) . '?ref=' . rawurlencode($tag), 'application/vnd.github.raw+json'); + $body = !is_wp_error($file) && 200 === (int) wp_remote_retrieve_response_code($file) ? (string) wp_remote_retrieve_body($file) : ''; + return $release + self::requirements($body); + } + + /** + * The release zip for a plugin folder: a .zip asset whose name starts + * with the folder name (never the "wordpress-org-…" build). + * + * @param string $repo owner/repo. + * @param string $folder Plugin folder. + * @param array $assets Release assets. + * @return array{public:string,api:string}|null Download addresses. + */ + private static function pick_asset($repo, $folder, array $assets) { + foreach ($assets as $asset) { + $name = isset($asset['name']) ? (string) $asset['name'] : ''; + if (0 !== stripos($name, $folder) || '.zip' !== strtolower(substr($name, -4))) { + continue; + } + $public = isset($asset['browser_download_url']) ? (string) $asset['browser_download_url'] : ''; + $api = isset($asset['id']) ? 'https://api.github.com/repos/' . $repo . '/releases/assets/' . (int) $asset['id'] : ''; + if (0 === strpos($public, 'https://github.com/' . $repo . '/releases/download/')) { + return array('public' => $public, 'api' => $api); + } + } + return null; + } + + /** + * "Requires at least" and "Requires PHP" of the released main file, so + * WordPress does not offer an update the site cannot run. + * + * @param string $file Start of the released main file ('' when unknown). + * @return array{requires:string,requires_php:string} + */ + private static function requirements($file) { + $found = array('requires' => '', 'requires_php' => ''); + $head = substr((string) $file, 0, 8192); + foreach (array('requires' => 'Requires at least', 'requires_php' => 'Requires PHP') as $key => $header) { + if (preg_match('/^(?:[ \t]*<\?php)?[ \t\/*#@]*' . preg_quote($header, '/') . ':(.*)$/mi', $head, $match)) { + $value = trim(preg_replace('/\s*(?:\*\/|\?>).*/', '', $match[1])); + if (preg_match('/^[0-9]+(\.[0-9]+)*$/', $value)) { + $found[$key] = $value; + } + } + } + return $found; + } + + /** + * Download address WordPress installs from. + * + * @param string $repo owner/repo. + * @param array $release Release. + * @param bool $asset_only Install the release asset only. + * @return string '' when the release has nothing to install. + */ + private static function package($repo, array $release, $asset_only) { + $private = '' !== self::token($repo); + if (!empty($release['asset'])) { + // Assets of private repositories download through the API (see private_download()). + return $private && $release['asset']['api'] ? $release['asset']['api'] : $release['asset']['public']; + } + return $asset_only ? '' : (string) $release['zipball']; + } + + /** + * Whether WordPress.org offers updates for a plugin. + * + * @param object $transient update_plugins. + * @param string $file Plugin file. + * @return bool + */ + private static function on_wordpress_org($transient, $file) { + foreach (array('response', 'no_update') as $list) { + if (isset($transient->{$list}[$file])) { + $item = (object) $transient->{$list}[$file]; + $id = isset($item->id) ? (string) $item->id : ''; + if (0 !== strpos($id, self::ID_PREFIX)) { + return true; + } + } + } + return false; + } + + /** + * Tell WordPress about GitHub releases when it saves its update check. + * + * @param mixed $transient update_plugins. + * @return mixed + */ + public static function add_updates($transient) { + if (!is_object($transient)) { + return $transient; + } + /** + * Whether plugins also on WordPress.org take each version from GitHub + * as soon as it is released, instead of waiting for WordPress.org. + * + * @param bool $early Default false. + */ + $early = (bool) apply_filters('wpallstars_github_updater_early', false); + + foreach (self::plugins() as $file => $plugin) { + if (!$early && self::on_wordpress_org($transient, $file)) { + continue; + } + $folder = dirname($file); + $release = self::release($plugin['repo'], $folder, basename($file)); + $current = isset($transient->checked[$file]) ? (string) $transient->checked[$file] : $plugin['version']; + if (!$release) { + // Keep WordPress.org's answer, or say nothing. + continue; + } + $dot_org = isset($transient->response[$file]->new_version) ? (string) $transient->response[$file]->new_version : ''; + if ('' !== $dot_org && 0 !== strpos((string) ($transient->response[$file]->id ?? ''), self::ID_PREFIX) && version_compare($dot_org, $release['version'], '>=')) { + // WordPress.org already offers this version or a newer one. + continue; + } + + $item = (object) array( + 'id' => self::ID_PREFIX . $plugin['repo'], + 'slug' => $folder, + 'plugin' => $file, + 'new_version' => $release['version'], + 'url' => 'https://github.com/' . $plugin['repo'], + 'package' => self::package($plugin['repo'], $release, $plugin['asset_only']), + 'requires' => $release['requires'], + 'requires_php' => $release['requires_php'], + 'tested' => '', + 'icons' => array(), + 'banners' => array(), + 'banners_rtl' => array(), + 'compatibility' => new stdClass(), + ); + + if (!is_array($transient->response ?? null)) { + $transient->response = array(); + } + if (!is_array($transient->no_update ?? null)) { + $transient->no_update = array(); + } + if ('' === $item->package && self::on_wordpress_org($transient, $file)) { + // Nothing to install from GitHub: keep WordPress.org's answer. + continue; + } + unset($transient->response[$file], $transient->no_update[$file]); + if ('' !== $item->package && version_compare($release['version'], $current, '>')) { + $transient->response[$file] = $item; + } else { + // Listed as up to date, so the Plugins screen offers auto-updates. + $transient->no_update[$file] = $item; + } + } + return $transient; + } + + /** + * The plugin a "View details" request is about, if it is ours to answer. + * + * @param string $slug Plugin folder. + * @return string Plugin file, or ''. + */ + private static function file_for_slug($slug) { + $updates = get_site_transient('update_plugins'); + foreach (self::plugins() as $file => $plugin) { + if (dirname($file) !== $slug) { + continue; + } + foreach (array('response', 'no_update') as $list) { + if (is_object($updates) && isset($updates->{$list}[$file]->id) && 0 === strpos((string) $updates->{$list}[$file]->id, self::ID_PREFIX)) { + return $file; + } + } + } + return ''; + } + + /** + * "View details" for plugins updated from GitHub. + * + * @param false|object|array $result Result so far. + * @param string $action plugins_api action. + * @param object $args Request arguments. + * @return false|object|array + */ + public static function plugin_information($result, $action, $args) { + if ('plugin_information' !== $action || !is_object($args) || empty($args->slug)) { + return $result; + } + $file = self::file_for_slug((string) $args->slug); + if ('' === $file) { + return $result; + } + $plugins = self::plugins(); + $plugin = $plugins[$file]; + $release = self::release($plugin['repo'], dirname($file), basename($file)); + $data = get_plugin_data(WP_PLUGIN_DIR . '/' . $file, false, true); + + $sections = array( + 'description' => wpautop(esc_html(isset($data['Description']) ? wp_strip_all_tags($data['Description']) : '')), + ); + if ($release) { + $sections['changelog'] = '

    ' . esc_html($release['version']) . '

    ' + . ('' !== trim($release['notes']) ? self::notes_html($release['notes']) : '') + . sprintf('

    %2$s

    ', esc_url($release['url']), esc_html__('Release notes on GitHub', 'wp-plugin-starter-template')); + } + + return (object) array( + 'name' => $plugin['name'], + 'slug' => dirname($file), + 'version' => $release ? $release['version'] : $plugin['version'], + 'author' => isset($data['Author']) ? $data['Author'] : '', + 'homepage' => 'https://github.com/' . $plugin['repo'], + 'requires' => $release ? $release['requires'] : '', + 'requires_php' => $release ? $release['requires_php'] : '', + 'last_updated' => $release ? $release['published'] : '', + 'download_link' => $release ? self::package($plugin['repo'], $release, $plugin['asset_only']) : '', + 'sections' => $sections, + 'banners' => array(), + 'external' => true, + ); + } + + /** + * Release notes (Markdown) as simple HTML: headings, lists, paragraphs, + * bold and code. Everything is escaped first. + * + * @param string $markdown Release notes. + * @return string + */ + private static function notes_html($markdown) { + $html = ''; + $list = false; + foreach (preg_split('/\r\n|\r|\n/', (string) $markdown) as $line) { + $line = rtrim($line); + $text = esc_html(ltrim(preg_replace('/^(#{1,6}|[-*+])\s+/', '', trim($line)))); + $text = preg_replace('/\*\*(.+?)\*\*/', '$1', $text); + $text = preg_replace('/`([^`]+)`/', '$1', $text); + $item = (bool) preg_match('/^\s*[-*+]\s+/', $line); + if ($list && !$item) { + $html .= ''; + $list = false; + } + if ('' === trim($line)) { + continue; + } + if ($item) { + if (!$list) { + $html .= '
      '; + $list = true; + } + $html .= '
    • ' . $text . '
    • '; + } elseif (preg_match('/^#{1,6}\s/', $line)) { + $html .= '

      ' . $text . '

      '; + } else { + $html .= '

      ' . $text . '

      '; + } + } + return $html . ($list ? '
    ' : ''); + } + + /** + * Downloads from private repositories: ask the API with the token, then + * fetch the file from where GitHub sends us without it. + * + * @param mixed $reply False to let WordPress download. + * @param string $package Download address. + * @param WP_Upgrader $upgrader Upgrader. + * @return mixed File path, WP_Error or $reply. + */ + public static function private_download($reply, $package, $upgrader) { + if (false !== $reply || !is_string($package) || !preg_match('#^https://api\.github\.com/repos/([^/]+/[^/]+)/(?:releases/assets/[0-9]+|zipball/[^/?]+)$#', $package, $match)) { + return $reply; + } + $repo = $match[1]; + $known = false; + foreach (self::plugins() as $plugin) { + $known = $known || $plugin['repo'] === $repo; + } + $token = self::token($repo); + if (!$known || '' === $token) { + return $reply; + } + + $response = wp_safe_remote_get($package, array( + 'timeout' => 30, + 'redirection' => 0, + 'headers' => array( + 'Accept' => false !== strpos($package, '/releases/assets/') ? 'application/octet-stream' : 'application/vnd.github+json', + 'Authorization' => 'Bearer ' . $token, + ), + )); + if (is_wp_error($response)) { + return $response; + } + $location = (string) wp_remote_retrieve_header($response, 'location'); + if ('' === $location || !in_array((int) wp_remote_retrieve_response_code($response), array(301, 302, 303, 307, 308), true)) { + return new WP_Error('wpallstars_github_download', __('GitHub did not give a download address. Check the token’s access to the repository.', 'wp-plugin-starter-template')); + } + // A signed, short-lived address: no token needed (or wanted) there. + return download_url($location, 300); + } + + /** + * Keep a plugin in its folder when the zip's top folder has another name + * (GitHub's source zips are named owner-repo-commit). + * + * @param string|WP_Error $source Unpacked folder. + * @param string $remote_source Folder it was unpacked in. + * @param WP_Upgrader $upgrader Upgrader. + * @param array $hook_extra Context. + * @return string|WP_Error + */ + public static function fix_folder($source, $remote_source, $upgrader, $hook_extra = array()) { + global $wp_filesystem; + if (is_wp_error($source) || empty($hook_extra['plugin']) || !$wp_filesystem) { + return $source; + } + $file = (string) $hook_extra['plugin']; + if (!isset(self::plugins()[$file])) { + return $source; + } + $folder = dirname($file); + if (basename(untrailingslashit($source)) === $folder) { + return $source; + } + $target = trailingslashit($remote_source) . $folder . '/'; + $from = untrailingslashit($source); + if ($from === untrailingslashit($remote_source)) { + // A zip without a top folder: move its files aside, then into the folder. + $from = untrailingslashit($remote_source) . '-github-updater'; + if (!$wp_filesystem->move(untrailingslashit($remote_source), $from, true) || !$wp_filesystem->mkdir(untrailingslashit($remote_source), FS_CHMOD_DIR)) { + return new WP_Error('wpallstars_github_folder', __('The update could not be unpacked into the plugin’s folder.', 'wp-plugin-starter-template')); + } + } + if (!$wp_filesystem->move($from, untrailingslashit($target), true)) { + return new WP_Error('wpallstars_github_folder', __('The update could not be unpacked into the plugin’s folder.', 'wp-plugin-starter-template')); + } + return $target; + } +} diff --git a/includes/github-updater/load.php b/includes/github-updater/load.php new file mode 100644 index 0000000..0faca72 --- /dev/null +++ b/includes/github-updater/load.php @@ -0,0 +1,50 @@ + its class file. +$GLOBALS['wpallstars_github_updater']['1.0.0'] = __DIR__ . '/class-wpallstars-github-updater.php'; + +if (!function_exists('wpallstars_github_updater_load')) { + /** + * Load the newest registered copy of the updater (plugins_loaded). + */ + function wpallstars_github_updater_load() { + if (class_exists('WPAllStars_GitHub_Updater', false) || empty($GLOBALS['wpallstars_github_updater'])) { + return; + } + $copies = (array) $GLOBALS['wpallstars_github_updater']; + uksort($copies, 'version_compare'); + $file = (string) end($copies); + if (is_readable($file)) { + require_once $file; + WPAllStars_GitHub_Updater::load(); + } + } + // Every plugin's main file has run by then, so every copy is registered. + add_action('plugins_loaded', 'wpallstars_github_updater_load', 1); +} diff --git a/phpcs.xml.dist b/phpcs.xml.dist new file mode 100644 index 0000000..4daa33b --- /dev/null +++ b/phpcs.xml.dist @@ -0,0 +1,109 @@ + + + + WP Plugin Starter: what WordPress.org reviewers and Plugin Check look for + (security, the database, internationalisation, deprecated and + discouraged APIs, prefixes) plus compatibility with PHP 7.4 and + WordPress 6.2. Whitespace and formatting follow the code's own style + (4 spaces, no padding inside parentheses) and are not checked here. + + Every finding fails the check. When code is right as it is, say why + on the line: // phpcs:ignore Sniff.Name -- reason. + Run: composer phpcs, or scripts/lint.sh. + + + . + /vendor/* + /.cache/* + /node_modules/* + /dist/* + /reference-plugins/* + /project-documents/* + + + + + + + + + + + + + + + + + + /scripts/* + + + + + /scripts/* + + + + + /scripts/* + + + + + + + + + + + + + + /scripts/* + + + /scripts/* + + + + + /scripts/* + + + + + /scripts/* + + + + + + + + + + + + /scripts/* + + + + + + + + + + + + + + + + + diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon new file mode 100644 index 0000000..aab4991 --- /dev/null +++ b/phpstan-baseline.neon @@ -0,0 +1,2 @@ +parameters: + ignoreErrors: [] diff --git a/phpstan-plugin.neon b/phpstan-plugin.neon new file mode 100644 index 0000000..2c98d92 --- /dev/null +++ b/phpstan-plugin.neon @@ -0,0 +1,22 @@ +# PHPStan settings for WP Plugin Starter's own files, added to phpstan.neon.dist +# (which holds the settings every plugin made from the starter shares). +# Add the plugin's own folders under paths (for example blocks) and each +# ignore with the identifier, the file and the reason. +parameters: + ignoreErrors: + # The starter has no features, tabs to rename or helpers yet: + # WPStarter_Setup's lists are empty and its methods do nothing, so + # PHPStan reads the core code that uses them as having no effect. + # A plugin made from the starter fills them and drops these ignores. + - + identifiers: + - foreach.emptyArray + - staticMethod.resultUnused + path: includes/class-wpstarter.php + - + identifier: staticMethod.resultUnused + path: admin/settings.php + - + identifier: function.impossibleType + message: '#array_key_exists\(\) with mixed and array\{\}#' + path: includes/class-wpstarter-settings.php diff --git a/phpstan.neon.dist b/phpstan.neon.dist new file mode 100644 index 0000000..8e6ad85 --- /dev/null +++ b/phpstan.neon.dist @@ -0,0 +1,36 @@ +# PHPStan: finds calls to functions, methods and classes that do not exist, +# wrong argument counts and types, and code that cannot run, using the +# WordPress stubs (szepeviktor/phpstan-wordpress) and PHP 7.4's functions. +# +# phpstan-baseline.neon is empty: every finding fails the check. Fix the +# code. Where PHPStan or the stubs are wrong, add an entry under +# ignoreErrors with the identifier, the file and the reason: here for the +# files every plugin made from the starter shares, in phpstan-plugin.neon +# for this plugin's own files and paths. Never put findings in the baseline +# to get a change through. +includes: + - phpstan-baseline.neon + - phpstan-plugin.neon + +parameters: + level: 5 + phpVersion: 70400 + # Result cache, kept between CI runs so only changed files are analysed again. + tmpDir: .cache/phpstan + paths: + - wp-plugin-starter-template.php + - uninstall.php + - includes + - admin + bootstrapFiles: + - scripts/phpstan-bootstrap.php + reportUnmatchedIgnoredErrors: true + treatPhpDocTypesAsCertain: false + ignoreErrors: + # Closures that change variables passed by reference (use (&$x)): + # PHPStan does not see the changes, so it reads them as never set. + - + identifiers: + - if.alwaysFalse + - identical.alwaysFalse + path: admin/includes/class-readme-manager.php diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..fc7596d --- /dev/null +++ b/readme.txt @@ -0,0 +1,52 @@ +=== WP Plugin Starter === +Contributors: wpallstars +Donate link: https://buymeacoffee.com/marcusquinn +Tags: starter, boilerplate, settings, developer, template +Requires at least: 6.2 +Tested up to: 7.1 +Requires PHP: 7.4 +Stable tag: 1.0.0 +License: GPLv2 or later +License URI: https://www.gnu.org/licenses/gpl-2.0.html + +A clean start for a WordPress plugin: a settings screen, a Read Me tab, updates from GitHub and release scripts, ready for your features. + +== Description == + +WP Plugin Starter is what wpallstars plugins are made from. It has no features of its own: it holds the parts every plugin needs, so a new plugin starts with them working. + +* **A settings screen** (Settings → WP Plugin Starter) that features fill by declaring their settings, saved instantly, searchable, in tabs. With no features yet it shows one empty tab. +* **A Read Me tab** that shows the plugin's README.md, banner included. +* **Features as classes**, off by default, with settings, hooks, one-off imports from the plugins they replace and clean uninstall. +* **Release and check scripts**: lint, smoke test, release build, preflight and Plugin Check. + +Start a plugin from it on GitHub (wpallstars/wp-plugin-starter-template-for-ai-coding): the Read Me tab explains how. + += Built with AI = + +WP Plugin Starter is built and maintained with aidevops (https://aidevops.sh), the same developer's open-source AI harness for creating and managing anything online with AI. + +== Installation == + +1. Upload the `wp-plugin-starter-template` folder to `/wp-content/plugins/`, or install the zip from Plugins → Add New → Upload Plugin. +2. Activate it, then open Settings → WP Plugin Starter. + +== Frequently Asked Questions == + += Does it do anything on its own? = + +No. It adds an empty settings screen and a Read Me tab, ready for a plugin's features. + += Does it contact other services? = + +No. The WordPress.org build contacts nothing outside WordPress. + +== Changelog == + += 1.0.0 = +* A fresh start, made from the parts every wpallstars plugin needs: settings screen, Read Me tab, features as classes, release and check scripts. Earlier versions are retired; start again from this one. + +== Upgrade Notice == + += 1.0.0 = +A fresh start. Earlier versions of the starter are retired; start a new plugin from this one. diff --git a/scripts/build-banner.sh b/scripts/build-banner.sh new file mode 100755 index 0000000..c5b899b --- /dev/null +++ b/scripts/build-banner.sh @@ -0,0 +1,75 @@ +#!/usr/bin/env bash +# Build the plugin's banner from its source, .wordpress-org/banner.svg. +# +# admin/images/banner.svg +# Shipped with the plugin, shown at the top of the Read Me tab (and of +# README.md on GitHub). Text is turned into shapes, so it looks the same +# without the Zilla Slab font. +# .wordpress-org/banner-772x250.png +# .wordpress-org/banner-1544x500.png +# For the WordPress.org SVN assets/ folder (not in the plugin zip). +# +# Usage: scripts/build-banner.sh +# +# Needs Inkscape 1.x (INKSCAPE=/path/to/inkscape to choose one) and the Zilla Slab +# font installed (wpallstars.com's heading font). + +set -euo pipefail + +SOURCE=".wordpress-org/banner.svg" + +die() { + local message="$1" + printf 'build-banner: %s\n' "$message" >&2 + exit 1 +} + +find_inkscape() { + if [[ -n "${INKSCAPE:-}" ]]; then + printf '%s\n' "$INKSCAPE" + return 0 + fi + if command -v inkscape >/dev/null 2>&1; then + command -v inkscape + return 0 + fi + if [[ -x /Applications/Inkscape.app/Contents/MacOS/inkscape ]]; then + printf '%s\n' /Applications/Inkscape.app/Contents/MacOS/inkscape + return 0 + fi + return 1 +} + +export_png() { + local inkscape="$1" + local width="$2" + local height="$3" + "$inkscape" "$SOURCE" --export-type=png --export-background-opacity=1 \ + --export-width="$width" --export-height="$height" \ + --export-filename=".wordpress-org/banner-${width}x${height}.png" + return 0 +} + +main() { + cd "$(git rev-parse --show-toplevel)" + [[ -f "$SOURCE" ]] || die "missing $SOURCE" + + local inkscape + inkscape="$(find_inkscape)" || die "Inkscape not found; set INKSCAPE=/path/to/inkscape" + + if command -v fc-list >/dev/null 2>&1; then + local families + families="$(fc-list : family)" + grep -qi '^Zilla Slab' <<<"$families" || die "the Zilla Slab font is not installed" + fi + + "$inkscape" "$SOURCE" --export-text-to-path --export-plain-svg \ + --export-filename=admin/images/banner.svg + export_png "$inkscape" 1544 500 + export_png "$inkscape" 772 250 + + ls -l admin/images/banner.svg .wordpress-org/banner-1544x500.png .wordpress-org/banner-772x250.png + return 0 +} + +main "$@" diff --git a/scripts/build-release.sh b/scripts/build-release.sh new file mode 100755 index 0000000..9ba305b --- /dev/null +++ b/scripts/build-release.sh @@ -0,0 +1,195 @@ +#!/usr/bin/env bash +# Build the release zips of the plugin from a Git ref. +# +# Two builds of the same version, both with one {slug}/ folder inside (the +# slug is the main file's name, scripts/lib/plugin.sh): +# {slug}-X.Y.Z.zip +# GitHub release asset: the files in Git, less .distignore. +# wordpress-org-{slug}-X.Y.Z.zip +# WordPress.org build: the same, less the files in .distignore-wporg and +# the GitHub updater header lines. Its name does not start with the +# slug, so no updater picks it even if it is attached to a GitHub +# release by mistake (it takes the first asset whose name starts with +# the plugin slug). Never attach it to a GitHub release. +# SHA256SUMS +# +# Files come from the Git ref (git archive), never from the working tree, so +# uncommitted changes and untracked files are never included. +# +# Usage: scripts/build-release.sh [--ref REF] [--out DIR] [--quiet] +# --ref REF Commit, branch or tag to build (default: HEAD). +# --out DIR Output folder (default: dist/ in the repository, gitignored). +# --quiet Print only the paths of the zips. +# +# Needs git, rsync, zip, unzip and shasum or sha256sum. + +set -euo pipefail +umask 022 +export TZ=UTC + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +readonly SCRIPT_DIR +# shellcheck source=scripts/lib/plugin.sh disable=SC1091 # followed only with -x +. "$SCRIPT_DIR/lib/plugin.sh" +readonly WPORG_IGNORE=".distignore-wporg" +# Header lines read only by GitHub updaters (ours and Git Updater); left out of the WordPress.org build. +readonly WPORG_STRIP_HEADERS='GitHub Plugin URI|Primary Branch|Release Asset' + +TMP_DIR="" +SLUG="" +MAIN_FILE="" + +die() { + local message="$1" + printf 'build-release: %s\n' "$message" >&2 + exit 1 +} + +usage() { + sed -n '2,24p' "$0" | sed 's/^# \{0,1\}//' + return 0 +} + +cleanup() { + if [ -n "$TMP_DIR" ] && [ -d "$TMP_DIR" ]; then + rm -rf "$TMP_DIR" + fi + return 0 +} + +need() { + local tool="$1" + command -v "$tool" >/dev/null 2>&1 || die "needs $tool" + return 0 +} + +# Version: header of the main file at a commit. +version_at() { + local sha="$1" + git show "$sha:$MAIN_FILE" | sed -n 's/^[[:space:]*]*Version:[[:space:]]*\([^[:space:]]*\).*/\1/p' | head -n 1 + return 0 +} + +sha256_of() { + local file="$1" + if command -v shasum >/dev/null 2>&1; then + shasum -a 256 "$file" | cut -d' ' -f1 + else + sha256sum "$file" | cut -d' ' -f1 + fi + return 0 +} + +# Zip / as , with the slug folder at the top. Fixed times, +# modes (umask) and entry order make the same ref give the same zip anywhere. +make_zip() { + local folder="$1" + local zip_path="$2" + local partial="$zip_path.partial" + rm -f "$zip_path" "$partial" + (cd "$folder" && find "$SLUG" -exec touch -h -t 202001010000 {} + && find "$SLUG" | LC_ALL=C sort | zip -qX "$partial" -@) + mv "$partial" "$zip_path" + return 0 +} + +# Remove the GitHub updater header lines from the main file of a build. +strip_updater_headers() { + local main="$1" + local stripped="$main.tmp" + grep -Ev "^[[:space:]*]*($WPORG_STRIP_HEADERS):" "$main" >"$stripped" + mv "$stripped" "$main" + return 0 +} + +main() { + local ref="HEAD" + local out="" + local quiet=0 + local arg + while [ $# -gt 0 ]; do + arg="$1" + case "$arg" in + --ref) + [ $# -ge 2 ] || die "--ref needs a value" + ref="$2" + shift + ;; + --out) + [ $# -ge 2 ] || die "--out needs a value" + out="$2" + shift + ;; + --quiet) quiet=1 ;; + -h | --help) + usage + return 0 + ;; + *) die "unknown argument: $arg" ;; + esac + shift + done + + local tool + for tool in git rsync zip unzip; do + need "$tool" + done + + local root sha version + root="$(git rev-parse --show-toplevel)" || die "run this inside a checkout of the plugin" + cd "$root" + sha="$(git rev-parse --verify --quiet "$ref^{commit}")" || die "not a commit: $ref" + plugin_identity "$sha" || die "cannot tell which plugin this is at $ref" + SLUG="$PLUGIN_SLUG" + MAIN_FILE="$PLUGIN_MAIN_FILE" + version="$(version_at "$sha")" + [ -n "$version" ] || die "no Version: header in $MAIN_FILE at $ref" + + if [ "$ref" = "HEAD" ] && [ -n "$(git status --porcelain --untracked-files=no)" ] && [ "$quiet" -eq 0 ]; then + printf 'Note: uncommitted changes are not in the build (it is made from HEAD).\n' + fi + + [ -n "$out" ] || out="$root/dist" + mkdir -p "$out" + out="$(cd "$out" && pwd)" + + trap cleanup EXIT + TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/$SLUG-build.XXXXXX")" + mkdir -p "$TMP_DIR/src" "$TMP_DIR/github/$SLUG" "$TMP_DIR/wporg/$SLUG" + + git archive --format=tar "$sha" | tar -x -C "$TMP_DIR/src" + # .distignore lists itself and is export-ignored, so read it from Git. + git show "$sha:.distignore" >"$TMP_DIR/distignore" || die ".distignore missing at $ref" + rsync -a --exclude-from="$TMP_DIR/distignore" "$TMP_DIR/src/" "$TMP_DIR/github/$SLUG/" + [ -f "$TMP_DIR/github/$SLUG/$MAIN_FILE" ] || die "$MAIN_FILE is not in the build; check .distignore" + + if git cat-file -e "$sha:$WPORG_IGNORE" 2>/dev/null; then + git show "$sha:$WPORG_IGNORE" >"$TMP_DIR/wporg-ignore" + else + : >"$TMP_DIR/wporg-ignore" + fi + rsync -a --exclude-from="$TMP_DIR/wporg-ignore" "$TMP_DIR/github/$SLUG/" "$TMP_DIR/wporg/$SLUG/" + strip_updater_headers "$TMP_DIR/wporg/$SLUG/$MAIN_FILE" + + local github_zip="$out/$SLUG-$version.zip" + local wporg_zip="$out/wordpress-org-$SLUG-$version.zip" + make_zip "$TMP_DIR/github" "$github_zip" + make_zip "$TMP_DIR/wporg" "$wporg_zip" + + { + printf '%s %s\n' "$(sha256_of "$github_zip")" "$(basename "$github_zip")" + printf '%s %s\n' "$(sha256_of "$wporg_zip")" "$(basename "$wporg_zip")" + } >"$out/SHA256SUMS" + + if [ "$quiet" -eq 1 ]; then + printf '%s\n%s\n' "$github_zip" "$wporg_zip" + return 0 + fi + printf '%s %s from %s (%s)\n' "$PLUGIN_NAME" "$version" "$ref" "${sha:0:12}" + printf ' GitHub release: %s (%s files)\n' "$github_zip" "$(unzip -Z1 "$github_zip" | grep -cv '/$')" + printf ' WordPress.org: %s (%s files)\n' "$wporg_zip" "$(unzip -Z1 "$wporg_zip" | grep -cv '/$')" + printf ' Checksums: %s\n' "$out/SHA256SUMS" + printf 'Check them with: scripts/preflight-release.sh --ref %s\n' "$ref" + return 0 +} + +main "$@" diff --git a/scripts/core-files.txt b/scripts/core-files.txt new file mode 100644 index 0000000..37cdf37 --- /dev/null +++ b/scripts/core-files.txt @@ -0,0 +1,55 @@ +# Core files: the same in every plugin made from the starter, apart from the +# names (STANDARDS.md → Structure). scripts/sync-core.sh copies them from +# the starter with the plugin's names, and --check lists any that differ. +# Paths use the starter's names; a trailing / means every file below. +# Change a core file in the starter first, then sync each plugin. + +# Bootstrap, feature registry, base feature and settings store. +includes/class-wpstarter.php +includes/class-wpstarter-feature.php +includes/class-wpstarter-settings.php + +# Shared GitHub updater: only the newest copy on a site runs. +includes/github-updater/ + +# Admin screen, Read Me tab and the Plugins screen notes for replaced plugins. +admin/settings.php +admin/data/readme.php +admin/includes/class-admin-manager.php +admin/includes/class-settings-manager.php +admin/includes/class-readme-manager.php +admin/includes/class-replaced-plugins.php +admin/css/wpstarter-admin.css +admin/js/wpstarter-admin.js + +# Build, check, release and preview scripts. +scripts/build-banner.sh +scripts/build-release.sh +scripts/core-files.txt +scripts/lib/plugin.sh +scripts/lint.sh +scripts/phpstan-bootstrap.php +scripts/plugin-check.sh +scripts/preflight-release.sh +scripts/preview-site.sh +scripts/rename-plugin.sh +scripts/replaced-plugins.php +scripts/smoke-test.sh +scripts/sync-core.sh + +# CI and tool configuration. +.github/ +.distignore +.gitattributes +.gitignore +.gitleaks.toml +composer.json +phpcs.xml.dist +phpstan.neon.dist + +# Shared docs. +STANDARDS.md +DEVELOPMENT.md +RELEASING.md +CONTRIBUTING.md +SECURITY.md diff --git a/scripts/lib/plugin.sh b/scripts/lib/plugin.sh new file mode 100644 index 0000000..0bfd0d9 --- /dev/null +++ b/scripts/lib/plugin.sh @@ -0,0 +1,149 @@ +#!/usr/bin/env bash +# The PLUGIN_* variables are read by the scripts that source this file. +# shellcheck disable=SC2034 +# Who the plugin is, read from its main file, so the scripts in scripts/ work +# unchanged in every plugin made from the starter. Source it, then call +# plugin_identity [REF] (default HEAD). It sets: +# +# PLUGIN_MAIN_FILE the PHP file at the top of the repository with a +# "Plugin Name:" header, for example wp-plugin-starter-template.php +# PLUGIN_SLUG its name without .php: the plugin folder and text domain +# PLUGIN_NAME the Plugin Name header, for example WP Plugin Starter +# PLUGIN_PACKAGE the @package tag, which is also the class prefix +# (WPStarter: WPStarter_Settings, WPStarter::features()) +# PLUGIN_CONST the constant prefix, from define('_VERSION', ...) +# (WPSTARTER) +# PLUGIN_PREFIX the option, hook and transient prefix: PLUGIN_CONST in +# lower case (wpstarter) +# PLUGIN_CSS the CSS class and data attribute prefix, from the admin +# screen's "wrap -wrap" class (wps: .wps-card) +# PLUGIN_REPO the GitHub Plugin URI header, owner/repo (may be empty) +# +# Files come from the Git ref, never the working tree, like the release build. + +PLUGIN_MAIN_FILE="" +PLUGIN_SLUG="" +PLUGIN_NAME="" +PLUGIN_PACKAGE="" +PLUGIN_CONST="" +PLUGIN_PREFIX="" +PLUGIN_CSS="" +PLUGIN_REPO="" + +# Value of a "Key: value" header line in the text, case-insensitive. +plugin_header_field() { + local text="$1" + local key="$2" + printf '%s\n' "$text" | awk -v k="$key" ' + BEGIN { k = tolower(k) } + { + line = $0 + sub(/^[ \t*]*/, "", line) + i = index(line, ":") + if (i > 0 && tolower(substr(line, 1, i - 1)) == k) { + v = substr(line, i + 1) + gsub(/^[ \t]+|[ \t\r]+$/, "", v) + print v + exit + } + }' + return 0 +} + +plugin_identity() { + local ref="${1:-HEAD}" + local file text found="" + while IFS= read -r file; do + case "$file" in + *.php) ;; + *) continue ;; + esac + # WordPress reads the header from the first 8 KB of the file. + text="$(git show "$ref:$file" 2>/dev/null || true)" + if [ -n "$(plugin_header_field "${text:0:8192}" "Plugin Name")" ]; then + [ -z "$found" ] || { + printf 'plugin: more than one main file at %s: %s and %s\n' "$ref" "$found" "$file" >&2 + return 1 + } + found="$file" + fi + done < <(git ls-tree --name-only "$ref" 2>/dev/null) + if [ -z "$found" ]; then + printf 'plugin: no PHP file with a Plugin Name: header at the top of %s\n' "$ref" >&2 + return 1 + fi + + text="$(git show "$ref:$found")" + PLUGIN_MAIN_FILE="$found" + PLUGIN_SLUG="${found%.php}" + PLUGIN_NAME="$(plugin_header_field "${text:0:8192}" "Plugin Name")" + PLUGIN_PACKAGE="$(printf '%s\n' "$text" | sed -nE '/^[[:space:]*]*@package[[:space:]]+[A-Za-z0-9_]+/{s/^[[:space:]*]*@package[[:space:]]+([A-Za-z0-9_]+).*/\1/p;q;}')" + PLUGIN_CONST="$(printf '%s\n' "$text" | sed -nE "/define\([[:space:]]*['\"][A-Z0-9_]+_VERSION['\"]/{s/.*define\([[:space:]]*['\"]([A-Z0-9_]+)_VERSION['\"].*/\1/p;q;}")" + if [ -z "$PLUGIN_PACKAGE" ]; then + printf 'plugin: %s has no @package tag (the class prefix)\n' "$found" >&2 + return 1 + fi + if [ -z "$PLUGIN_CONST" ]; then + printf "plugin: %s does not define a _VERSION constant\n" "$found" >&2 + return 1 + fi + PLUGIN_PREFIX="$(printf '%s' "$PLUGIN_CONST" | tr '[:upper:]' '[:lower:]')" + PLUGIN_REPO="$(plugin_header_field "${text:0:8192}" "GitHub Plugin URI")" + PLUGIN_CSS="$(git show "$ref:admin/includes/class-admin-manager.php" 2>/dev/null | sed -nE 's/.*class="wrap ([a-z0-9]+)-wrap.*/\1/p' | head -n 1)" + if [ -z "$PLUGIN_CSS" ]; then + printf 'plugin: no "wrap -wrap" class in admin/includes/class-admin-manager.php at %s\n' "$ref" >&2 + return 1 + fi + return 0 +} + +# Copy the PLUGIN_* names into FROM_* (from) or TO_* (to), for plugin_map. +plugin_names_as() { + local side="$1" + local name + for name in SLUG NAME PACKAGE CONST PREFIX CSS REPO; do + eval "export ${side}_${name}=\"\$PLUGIN_${name}\"" + done + return 0 +} + +# Rewrite text on stdin from one plugin's names (FROM_*) to another's (TO_*): +# GitHub repository, name, class prefix, constant prefix, slug, prefix and +# CSS prefix, in that order. When the source plugin's slug is also its prefix +# (myplugin), the slug is only the quoted word ('myplugin': text domain, +# admin page) and the main file name; everywhere else it is the prefix. +plugin_map() { + perl -pe ' + BEGIN { %e = map { $_ => $ENV{$_} // "" } grep { /^(FROM|TO)_/ } keys %ENV; } + s{\Q$e{FROM_REPO}\E}{$e{TO_REPO}}g if $e{FROM_REPO} ne "" && $e{TO_REPO} ne ""; + s{\Q$e{FROM_NAME}\E}{$e{TO_NAME}}g; + s{\Q$e{FROM_PACKAGE}\E}{$e{TO_PACKAGE}}g; + s{\Q$e{FROM_CONST}\E}{$e{TO_CONST}}g; + if ($e{FROM_SLUG} eq $e{FROM_PREFIX}) { + s{(["\x27])\Q$e{FROM_SLUG}\E\1}{${1}$e{TO_SLUG}${1}}g; + s{\b\Q$e{FROM_SLUG}\E\.php\b}{$e{TO_SLUG}.php}g; + } else { + s{\Q$e{FROM_SLUG}\E}{$e{TO_SLUG}}g; + } + s{\Q$e{FROM_PREFIX}\E}{$e{TO_PREFIX}}g; + s{\b\Q$e{FROM_CSS}\E(?=[-_A-Z])}{$e{TO_CSS}}g; + ' + return 0 +} + +# Value of the environment variable _, or the default. +# For example plugin_env PREVIEW_SITE reads WPSTARTER_PREVIEW_SITE. +plugin_env() { + local name="${PLUGIN_CONST}_$1" + local default="${2:-}" + printf '%s' "${!name:-$default}" + return 0 +} + +# Paths the WordPress.org build leaves out (.distignore-wporg at the ref), +# one per line, without the leading slash: the GitHub updater. +plugin_wporg_only() { + local ref="${1:-HEAD}" + git show "$ref:.distignore-wporg" 2>/dev/null | sed -e 's/[[:space:]]*$//' -e '/^#/d' -e '/^$/d' -e 's|^/||' -e 's|/$||' + return 0 +} diff --git a/scripts/lint.sh b/scripts/lint.sh new file mode 100755 index 0000000..a524ce9 --- /dev/null +++ b/scripts/lint.sh @@ -0,0 +1,134 @@ +#!/usr/bin/env bash +# Code checks for the plugin, the same ones CI runs on every pull request +# (.github/workflows/ci.yml). Changes nothing. +# +# Usage: scripts/lint.sh [CHECK]... +# php PHP syntax of every PHP file, with the local php. +# js JavaScript syntax of every JS file (node --check). +# shell ShellCheck on every shell script. +# workflows actionlint on .github/workflows (skipped if not installed). +# phpcs WordPress Coding Standards, security sniffs and PHP 7.4 +# compatibility (phpcs.xml.dist). +# phpstan Static analysis (phpstan.neon.dist): no new findings beyond +# phpstan-baseline.neon. +# With no CHECK, runs them all. phpcs and phpstan need `composer install`. +# +# Exit status: 0 when every check passes, 1 when any fails, 2 on bad usage. + +set -euo pipefail + +readonly ALL_CHECKS="php js shell workflows phpcs phpstan" +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +readonly ROOT +FAILED="" + +usage() { + sed -n '2,17p' "$0" | sed 's/^# \{0,1\}//' + return 0 +} + +say() { + local message="$1" + printf '\n== %s\n' "$message" + return 0 +} + +need_vendor() { + local tool="$1" + if [ ! -x "$ROOT/vendor/bin/$tool" ]; then + printf 'lint: vendor/bin/%s is missing; run: composer install\n' "$tool" >&2 + return 1 + fi + return 0 +} + +check_php() { + local file output status=0 + while IFS= read -r -d '' file; do + if ! output="$(php -l "$file" 2>&1)"; then + printf '%s\n' "$output" + status=1 + fi + done < <(git -C "$ROOT" ls-files -z '*.php') + return "$status" +} + +check_js() { + local file status=0 + while IFS= read -r -d '' file; do + node --check "$file" || status=1 + done < <(git -C "$ROOT" ls-files -z '*.js') + return "$status" +} + +check_shell() { + local files=() + local file + while IFS= read -r -d '' file; do + files+=("$file") + done < <(git -C "$ROOT" ls-files -z '*.sh') + [ "${#files[@]}" -eq 0 ] && return 0 + # -x follows the scripts' `# shellcheck source=` lines (scripts/lib/). + shellcheck -x --severity=style "${files[@]}" + return $? +} + +check_workflows() { + if [ ! -d "$ROOT/.github/workflows" ]; then + return 0 + fi + if ! command -v actionlint >/dev/null 2>&1; then + printf 'actionlint is not installed; skipped (CI runs it)\n' + return 0 + fi + actionlint + return $? +} + +check_phpcs() { + need_vendor phpcs || return 1 + vendor/bin/phpcs -q --report=full + return $? +} + +check_phpstan() { + need_vendor phpstan || return 1 + vendor/bin/phpstan analyse --memory-limit=4G --no-progress + return $? +} + +main() { + local checks="$*" + local check + if [ -z "$checks" ]; then + checks="$ALL_CHECKS" + fi + for check in $checks; do + case " $ALL_CHECKS " in + *" $check "*) ;; + *) + usage >&2 + return 2 + ;; + esac + done + + cd "$ROOT" + for check in $checks; do + say "$check" + if "check_$check"; then + printf 'ok\n' + else + FAILED="$FAILED $check" + fi + done + + if [ -n "$FAILED" ]; then + printf '\nlint: failed:%s\n' "$FAILED" >&2 + return 1 + fi + printf '\nlint: all passed (%s)\n' "$checks" + return 0 +} + +main "$@" diff --git a/scripts/phpstan-bootstrap.php b/scripts/phpstan-bootstrap.php new file mode 100644 index 0000000..eeadb0b --- /dev/null +++ b/scripts/phpstan-bootstrap.php @@ -0,0 +1,18 @@ +&2 + exit 2 +} + +usage() { + sed -n '2,16p' "$0" | sed 's/^# \{0,1\}//' + return 0 +} + +cleanup() { + if [ "$STARTED" -eq 1 ]; then + local attempt id + # wp-cli containers still stopping (after Ctrl-C) keep the volume and + # network in use, so remove them first and retry. + for attempt in 1 2 3; do + docker ps -aq --filter "volume=$NAME-wp" | while IFS= read -r id; do + docker rm -f "$id" >/dev/null 2>&1 || true + done + docker rm -f "$NAME-db" >/dev/null 2>&1 || true + docker volume rm "$NAME-wp" >/dev/null 2>&1 || true + docker network rm "$NAME" >/dev/null 2>&1 || true + if ! docker volume inspect "$NAME-wp" >/dev/null 2>&1 && ! docker network inspect "$NAME" >/dev/null 2>&1; then + break + fi + [ "$attempt" -eq 3 ] && printf 'plugin-check: could not remove %s-wp or network %s\n' "$NAME" "$NAME" >&2 + sleep 2 + done + fi + if [ -n "$TMP_DIR" ] && [ -d "$TMP_DIR" ]; then + rm -rf "$TMP_DIR" + fi + return 0 +} + +# wp-cli in the disposable site; zips are mounted at /zips. The image's +# 128 MB PHP memory limit is too small to unpack WordPress. +wp_cli() { + docker run --rm --network "$NAME" -v "$NAME-wp:/var/www/html" -v "$TMP_DIR/zips:/zips:ro" \ + --user 33:33 "$CLI_IMAGE" php -d memory_limit=1G /usr/local/bin/wp "$@" + return $? +} + +start_site() { + printf 'Starting a disposable WordPress (%s)...\n' "$NAME" + STARTED=1 + docker network create "$NAME" >/dev/null + docker volume create "$NAME-wp" >/dev/null + docker run -d --name "$NAME-db" --network "$NAME" \ + -e MARIADB_ROOT_PASSWORD="$DB_PASSWORD" -e MARIADB_DATABASE=wordpress "$DB_IMAGE" >/dev/null + # The volume starts owned by root; let www-data (33) write to it. + docker run --rm -v "$NAME-wp:/var/www/html" --user 0:0 "$CLI_IMAGE" chown 33:33 /var/www/html + + # Ping over TCP: the image's first, socket-only server answers on the + # socket before the real server is listening. + local waited=0 + until docker exec "$NAME-db" mariadb-admin ping -h127.0.0.1 -uroot -p"$DB_PASSWORD" --silent >/dev/null 2>&1; do + [ "$waited" -lt 90 ] || die "the database did not start" + sleep 2 + waited=$((waited + 2)) + done + + wp_cli core download --quiet + wp_cli config create --dbname=wordpress --dbuser=root --dbpass="$DB_PASSWORD" --dbhost="$NAME-db" --skip-check --quiet + wp_cli core install --url=http://localhost --title=PluginCheck --admin_user=admin --admin_password="$DB_PASSWORD" \ + --admin_email=admin@example.com --skip-email --quiet + wp_cli plugin install plugin-check --activate --quiet + printf 'WordPress %s, Plugin Check %s\n' "$(wp_cli core version)" "$(wp_cli plugin get plugin-check --field=version)" + return 0 +} + +# Check one zip; returns 1 when Plugin Check reports errors. +check_zip() { + local zip_name="$1" + local keep="$2" + local report errors warnings + printf '\n== %s ==\n' "$zip_name" + if ! wp_cli plugin install "/zips/$zip_name" --force --quiet; then + printf 'Could not install %s.\n' "$zip_name" + return 1 + fi + report="$(wp_cli plugin check "$SLUG" --format=json 2>&1 || true)" + if [ -n "$keep" ]; then + printf '%s\n' "$report" >"$keep/${zip_name%.zip}-plugin-check.json" + fi + if ! printf '%s\n' "$report" | grep -Eq '^(FILE: |Success: )'; then + # Neither findings nor the success line: Plugin Check did not run. + printf 'Plugin Check did not run:\n%s\n' "$report" + wp_cli plugin delete "$SLUG" --quiet || true + return 1 + fi + errors="$( (printf '%s\n' "$report" | grep -o '"type":"ERROR"' || true) | wc -l | tr -d ' ')" + warnings="$( (printf '%s\n' "$report" | grep -o '"type":"WARNING"' || true) | wc -l | tr -d ' ')" + # The GitHub zip carries Updates from GitHub on purpose; Plugin Check + # reports it as an updater. Those findings are expected there (and only + # in those files); in the WordPress.org zip they stay errors. So are + # prefix warnings there: the shared updater's names (wpallstars_) are the + # same in every plugin, so that one copy can stand in for the others. + local expected=0 + local expected_warnings=0 + local counts + case "$zip_name" in + "$SLUG"-*) + # The file list goes through the environment: awk -v cannot hold newlines. + counts="$(printf '%s\n' "$report" | FILES="$UPDATER_FILES" awk ' + BEGIN { nfiles = split(ENVIRON["FILES"], list, "\n") } + # A listed file, or a file inside a listed folder. + function updater(path, i) { + for (i = 1; i <= nfiles; i++) { + if (list[i] != "" && (path == list[i] || index(path, list[i] "/") == 1)) { return 1 } + } + return 0 + } + /^FILE: / { current = substr($0, 7); next } + /^\[/ && updater(current) { + n = split($0, items, "},{") + for (i = 1; i <= n; i++) { + if (items[i] ~ /"type":"ERROR"/ && items[i] ~ /"code":"(plugin_updater_detected|update_modification_detected|PluginCheck\.CodeAnalysis\.Offloading\.OffloadedContent)"/) { count++ } + if (items[i] ~ /"type":"WARNING"/ && items[i] ~ /"code":"WordPress\.NamingConventions\.PrefixAllGlobals\./) { prefix++ } + } + } + END { print count + 0, prefix + 0 }')" + expected="${counts% *}" + expected_warnings="${counts#* }" + ;; + esac + if [ "$expected" -gt 0 ] || [ "$expected_warnings" -gt 0 ]; then + printf '%s updater error(s) and %s prefix warning(s) in %s are expected in the GitHub zip.\n' "$expected" "$expected_warnings" "$(printf '%s' "$UPDATER_FILES" | tr '\n' ' ')" + errors=$((errors - expected)) + warnings=$((warnings - expected_warnings)) + fi + # Readable summary: one line per finding (type, code, file:line). + printf '%s\n' "$report" | awk ' + /^FILE: / { file = substr($0, 7); next } + /^\[/ { + n = split($0, items, "},{") + for (i = 1; i <= n; i++) { + t = items[i]; c = items[i]; l = items[i] + sub(/.*"type":"/, "", t); sub(/".*/, "", t) + sub(/.*"code":"/, "", c); sub(/".*/, "", c) + sub(/.*"line":/, "", l); sub(/[^0-9].*/, "", l) + printf " %-7s %s %s:%s\n", t, c, file, l + } + }' + printf '%s error(s), %s warning(s)\n' "$errors" "$warnings" + wp_cli plugin delete "$SLUG" --quiet || true + [ "$errors" -eq 0 ] || return 1 + return 0 +} + +main() { + local ref="HEAD" + local keep="" + local zips="" + local arg + while [ $# -gt 0 ]; do + arg="$1" + case "$arg" in + --ref) + [ $# -ge 2 ] || die "--ref needs a value" + ref="$2" + shift + ;; + --zip) + [ $# -ge 2 ] || die "--zip needs a file" + [ -f "$2" ] || die "no such zip: $2" + zips="$zips +$(cd "$(dirname "$2")" && pwd)/$(basename "$2")" + shift + ;; + --keep-output) + [ $# -ge 2 ] || die "--keep-output needs a folder" + mkdir -p "$2" + keep="$(cd "$2" && pwd)" + shift + ;; + -h | --help) + usage + return 0 + ;; + *) die "unknown argument: $arg" ;; + esac + shift + done + + command -v docker >/dev/null 2>&1 || die "needs Docker" + docker info >/dev/null 2>&1 || die "Docker is not running" + local root + root="$(git rev-parse --show-toplevel)" || die "run this inside a checkout of the plugin" + cd "$root" + plugin_identity "$ref" || die "cannot tell which plugin this is at $ref" + SLUG="$PLUGIN_SLUG" + UPDATER_FILES="$(plugin_wporg_only "$ref")" + CLI_IMAGE="$(plugin_env CLI_IMAGE wordpress:cli-php8.3)" + DB_IMAGE="$(plugin_env DB_IMAGE mariadb:10.6)" + NAME="$SLUG-plugincheck-$$" + + trap cleanup EXIT + TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/$SLUG-plugincheck.XXXXXX")" + mkdir -p "$TMP_DIR/zips" + chmod 755 "$TMP_DIR" "$TMP_DIR/zips" + + local zip_path + if [ -z "$zips" ]; then + "$root/scripts/build-release.sh" --ref "$ref" --out "$TMP_DIR/zips" --quiet >/dev/null || die "build failed" + else + while IFS= read -r zip_path; do + [ -n "$zip_path" ] && cp "$zip_path" "$TMP_DIR/zips/" + done <&2 + exit 2 +} + +usage() { + sed -n '2,18p' "$0" | sed 's/^# \{0,1\}//' + return 0 +} + +cleanup() { + if [ -n "$TMP_DIR" ] && [ -d "$TMP_DIR" ]; then + rm -rf "$TMP_DIR" + fi + return 0 +} + +ok() { + local message="$1" + printf ' ok %s\n' "$message" + return 0 +} + +err() { + local message="$1" + printf ' ERROR %s\n' "$message" + ERRORS=$((ERRORS + 1)) + return 0 +} + +warn() { + local message="$1" + printf ' warn %s\n' "$message" + WARNINGS=$((WARNINGS + 1)) + return 0 +} + +note() { + local message="$1" + printf ' note %s\n' "$message" + return 0 +} + +section() { + local title="$1" + printf '\n%s\n' "$title" + return 0 +} + +# Value of "Key: value" in a header (plugin file comment or readme), case-insensitive. +field() { + local text="$1" + local key="$2" + printf '%s\n' "$text" | awk -v k="$key" ' + BEGIN { k = tolower(k) } + { + line = $0 + sub(/^[ \t*]*/, "", line) + i = index(line, ":") + if (i > 0 && tolower(substr(line, 1, i - 1)) == k) { + v = substr(line, i + 1) + gsub(/^[ \t]+|[ \t\r]+$/, "", v) + print v + exit + } + }' + return 0 +} + +# 1 if version a < b (numeric parts), else 0. +version_lt() { + local a="$1" + local b="$2" + awk -v a="$a" -v b="$b" 'BEGIN { + na = split(a, x, "."); nb = split(b, y, "."); n = (na > nb) ? na : nb + for (i = 1; i <= n; i++) { if ((x[i] + 0) < (y[i] + 0)) { print 1; exit } if ((x[i] + 0) > (y[i] + 0)) { print 0; exit } } + print 0 }' + return 0 +} + +# HTTP status of a URL (000 when offline or unreachable). +http_status() { + local url="$1" + local code + # curl prints 000 itself when it cannot connect, and exits non-zero. + code="$(curl -sL -o /dev/null -m 20 -w '%{http_code}' "$url" || true)" + printf '%s' "${code:-000}" + return 0 +} + +check_versions() { + local plugin_header="$1" + local readme="$2" + local main_php="$3" + section "Versions and headers" + + local version constant stable + version="$(field "$plugin_header" "Version")" + constant="$(printf '%s\n' "$main_php" | sed -nE "/define\([[:space:]]*['\"]${VERSION_CONSTANT}['\"]/{s/.*,[[:space:]]*['\"]([^'\"]+)['\"].*/\1/p;q;}")" + stable="$(field "$readme" "Stable tag")" + + if printf '%s' "$version" | grep -Eq '^[0-9]+\.[0-9]+(\.[0-9]+)?$'; then + ok "Version: $version (numbers only, so GitHub updates and WordPress.org treat it as stable)" + else + err "Version: '$version' is not X.Y.Z; pre-release versions on main are offered to sites still using Git Updater" + fi + if [ "$constant" = "$version" ]; then ok "version constant matches ($constant)"; else err "version constant is '$constant', Version: is '$version'"; fi + if [ "$stable" = "$version" ]; then ok "readme.txt Stable tag matches"; else err "readme.txt Stable tag is '$stable', Version: is '$version'"; fi + if [ "$(printf '%s' "$stable" | tr '[:upper:]' '[:lower:]')" = "trunk" ]; then err "Stable tag: trunk is not allowed for new plugins"; fi + + local key header_value readme_value + for key in "Requires at least" "Requires PHP"; do + header_value="$(field "$plugin_header" "$key")" + readme_value="$(field "$readme" "$key")" + if [ -z "$header_value" ]; then + err "$MAIN_FILE has no '$key' header (WordPress reads it from the plugin file)" + elif [ -n "$readme_value" ] && [ "$header_value" != "$readme_value" ]; then + err "$key: $header_value in $MAIN_FILE, $readme_value in readme.txt" + else + ok "$key: $header_value" + fi + done + + if printf '%s\n' "$main_php" | grep -Eiq '^[[:space:]*]*Update URI:'; then + err "Update URI header found: WordPress.org rejects it and Plugin Check reports an updater" + else + ok "no Update URI header" + fi + + local domain license plugin_uri author_uri + domain="$(field "$plugin_header" "Text Domain")" + if [ "$domain" = "$SLUG" ]; then ok "Text Domain: $domain"; else err "Text Domain is '$domain'; it must be the slug ($SLUG) for language packs"; fi + license="$(field "$plugin_header" "License")" + if printf '%s' "$license" | grep -Eiq 'GPL'; then ok "License: $license"; else err "License '$license' is not GPL-compatible as written"; fi + plugin_uri="$(field "$plugin_header" "Plugin URI")" + author_uri="$(field "$plugin_header" "Author URI")" + if [ -n "$plugin_uri" ] && [ "$plugin_uri" = "$author_uri" ]; then + warn "Plugin URI and Author URI are the same ($plugin_uri); WordPress.org asks for a Plugin URI unique to the plugin, or none" + fi + VERSION="$version" + return 0 +} + +# Changelog text (a readme section or changelog.txt): an entry for the version, +# and no Unreleased section left. +check_changelog() { + local label="$1" + local text="$2" + local version="$3" + if printf '%s\n' "$text" | grep -Eq "^= *v?$version *="; then + ok "$label changelog has $version" + else + warn "$label changelog has no '= $version =' entry" + fi + if printf '%s\n' "$text" | grep -Eiq '^= *unreleased *='; then + warn "$label changelog still has an Unreleased section; name it $version when releasing" + fi + return 0 +} + +check_readme() { + local readme="$1" + local plugin_header="$2" + local version="$3" + section "readme.txt" + + local bytes + bytes="$(printf '%s' "$readme" | wc -c | tr -d ' ')" + if [ "$bytes" -le "$README_MAX_BYTES" ]; then + ok "size ${bytes} bytes ($((README_MAX_BYTES - bytes)) left)" + else + warn "size ${bytes} bytes; WordPress.org says over 10 KB may cause errors (keep the current changelog, move older entries to changelog.txt, trim the description)" + fi + + local name readme_name + name="$(field "$plugin_header" "Plugin Name")" + readme_name="$(printf '%s\n' "$readme" | sed -n '1s/^===[[:space:]]*\(.*[^[:space:]]\)[[:space:]]*===.*/\1/p')" + if [ "$readme_name" = "$name" ]; then ok "name matches the plugin header ($name)"; else warn "readme name '$readme_name' differs from Plugin Name '$name'"; fi + + local short + short="$(printf '%s\n' "$readme" | awk 'NR == 1 { next } !h && /^[ \t]*$/ { h = 1; next } h && /^==/ { exit } h && !/^[ \t]*$/ { print; exit }')" + if [ -z "$short" ]; then + err "no short description (the line after the header)" + elif [ "${#short}" -le "$SHORT_DESC_MAX" ]; then + ok "short description ${#short} characters" + else + warn "short description ${#short} characters; WordPress.org cuts it at $SHORT_DESC_MAX" + fi + + local tags tag_count + tags="$(field "$readme" "Tags")" + tag_count="$(printf '%s\n' "$tags" | awk -F',' '{ print ($0 == "") ? 0 : NF }')" + if [ "$tag_count" -ge 1 ] && [ "$tag_count" -le "$MAX_TAGS" ]; then ok "$tag_count tags"; else warn "$tag_count tags; WordPress.org shows at most $MAX_TAGS"; fi + + local tested + tested="$(field "$readme" "Tested up to")" + if printf '%s' "$tested" | grep -Eq '^[0-9]+\.[0-9]+$'; then + ok "Tested up to: $tested" + else + err "Tested up to '$tested' should be a major version such as 6.8" + fi + if [ "$OFFLINE" -eq 0 ]; then + local latest latest_major + # The first offer is the latest release; later ones are older branches. + latest="$(curl -s -m 20 'https://api.wordpress.org/core/version-check/1.7/' | grep -o '"current":"[0-9.]*"' | head -n 1 | cut -d'"' -f4 || true)" + latest_major="$(printf '%s' "$latest" | cut -d. -f1-2)" + if [ -z "$latest_major" ]; then + note "could not read the latest WordPress version" + elif [ "$(version_lt "$tested" "$latest_major")" = "1" ]; then + warn "Tested up to $tested, latest WordPress is $latest; test and raise it" + else + ok "Tested up to is the latest WordPress ($latest)" + fi + fi + + check_changelog "readme.txt" "$(printf '%s\n' "$readme" | awk '/^== *[Cc]hangelog *==/ { c = 1; next } c && /^== / { exit } c')" "$version" + if [ -n "$CHANGELOG_TXT" ]; then + check_changelog "changelog.txt" "$CHANGELOG_TXT" "$version" + fi + if printf '%s\n' "$readme" | grep -Eiq '^== *upgrade notice *=='; then + if printf '%s\n' "$readme" | awk '/^== *[Uu]pgrade [Nn]otice *==/ { u = 1; next } u && /^== / { exit } u' | grep -Eq "^= *v?$version *="; then + ok "upgrade notice has $version" + else + note "no upgrade notice for $version (optional)" + fi + fi + return 0 +} + +check_wporg() { + local readme="$1" + local plugin_header="$2" + section "WordPress.org listing" + + local name derived + name="$(field "$plugin_header" "Plugin Name")" + derived="$(printf '%s' "$name" | tr '[:upper:]' '[:lower:]' | sed -E 's/[^a-z0-9]+/-/g; s/^-+|-+$//g')" + if [ "$derived" = "$SLUG" ]; then + ok "the slug WordPress.org makes from '$name' is $SLUG" + else + warn "WordPress.org makes the slug from Plugin Name: '$name' becomes '$derived', not '$SLUG'. Ask for '$SLUG' in the submission notes (it can change only before approval), or the text domain will not match" + fi + if printf '%s' "$name" | grep -Eiq '^(wordpress|wp|woocommerce|woo|gutenberg)([^a-z]|$)'; then + warn "Plugin Name starts with a trademark ('$name'); WordPress.org does not allow that" + fi + + if [ "$OFFLINE" -eq 1 ]; then + note "offline: slug and contributor profiles not checked" + return 0 + fi + local info + info="$(curl -s -m 20 "https://api.wordpress.org/plugins/info/1.2/?action=plugin_information&request%5Bslug%5D=$SLUG&request%5Bfields%5D%5Bsections%5D=0" || true)" + if printf '%s' "$info" | grep -q '"error"'; then + note "slug $SLUG is not listed on WordPress.org yet" + elif [ -n "$info" ]; then + note "slug $SLUG is already listed on WordPress.org; check it is this plugin" + fi + + local contributors user status + contributors="$(field "$readme" "Contributors")" + if [ -z "$contributors" ]; then + err "readme.txt has no Contributors" + fi + for user in $(printf '%s' "$contributors" | tr ',' ' '); do + status="$(http_status "https://profiles.wordpress.org/$user/")" + case "$status" in + 200) ok "contributor $user has a WordPress.org profile" ;; + 000) note "could not check contributor $user" ;; + *) warn "contributor '$user' has no WordPress.org profile (HTTP $status); Contributors must be WordPress.org usernames, case-sensitive" ;; + esac + done + return 0 +} + +# Lint PHP (PHP 7.4 in Docker when possible) and JS in an unpacked build. +check_syntax() { + local dir="$1" + local label="$2" + local out php_label + local expected + expected="$(find "$dir" -name '*.php' | wc -l | tr -d ' ')" + if [ "$USE_DOCKER" -eq 1 ] && command -v docker >/dev/null 2>&1 && docker info >/dev/null 2>&1; then + local image="php:7.4-cli" + if docker image inspect wordpress:php7.4-apache >/dev/null 2>&1; then image="wordpress:php7.4-apache"; fi + out="$(docker run --rm -v "$dir:/src:ro" "$image" sh -c 'find /src -name "*.php" -exec php -l {} \;' 2>&1 || true)" + php_label="PHP 7.4 syntax ($image)" + elif command -v php >/dev/null 2>&1; then + out="$(find "$dir" -name '*.php' -exec php -l {} \; 2>&1 || true)" + php_label="PHP syntax ($(php -r 'echo PHP_VERSION;'); not 7.4)" + else + out="" + php_label="" + warn "$label: no PHP to lint with" + fi + if [ -n "$php_label" ]; then + # Count the files php -l passed, so a lint that never ran cannot pass. + local passed problems + passed="$(printf '%s\n' "$out" | grep -c '^No syntax errors' || true)" + problems="$(printf '%s\n' "$out" | grep -v '^No syntax errors' | grep -v '^[[:space:]]*$' || true)" + if [ -z "$problems" ] && [ "$passed" -eq "$expected" ] && [ "$expected" -gt 0 ]; then + ok "$label: $php_label, $passed files" + elif [ -z "$problems" ]; then + err "$label: PHP lint checked $passed of $expected files" + else + err "$label: $php_label errors:" + printf '%s\n' "$problems" | sed 's/^/ /' + fi + fi + if command -v node >/dev/null 2>&1; then + out="$(find "$dir" -name '*.js' -exec node --check {} \; 2>&1 || true)" + if [ -z "$out" ]; then ok "$label: JS syntax"; else err "$label: JS syntax errors:"; printf '%s\n' "$out" | sed 's/^/ /'; fi + else + warn "$label: node not found, JS not checked" + fi + return 0 +} + +# Shared checks for a release zip; prints its unpacked folder in UNPACKED. +check_zip() { + local zip_path="$1" + local label="$2" + local dir="$TMP_DIR/unpacked-$label" + local list tops dev size + list="$(unzip -Z1 "$zip_path")" + tops="$(printf '%s\n' "$list" | cut -d/ -f1 | sort -u | tr '\n' ' ')" + if [ "$tops" = "$SLUG " ]; then ok "$label: one $SLUG/ folder"; else err "$label: top level is '$tops', must be only $SLUG/"; fi + if printf '%s\n' "$list" | grep -qx "$SLUG/$MAIN_FILE"; then ok "$label: $SLUG/$MAIN_FILE present"; else err "$label: $SLUG/$MAIN_FILE missing"; fi + dev="$(printf '%s\n' "$list" | grep -E "$DEV_FILES" || true)" + if [ -z "$dev" ]; then ok "$label: no development files"; else err "$label: development files: $(printf '%s' "$dev" | tr '\n' ' ')"; fi + size="$(wc -c <"$zip_path" | tr -d ' ')" + note "$label: $(basename "$zip_path"), $((size / 1024)) KB, $(printf '%s\n' "$list" | grep -cv '/$') files" + mkdir -p "$dir" + unzip -q "$zip_path" -d "$dir" + check_syntax "$dir" "$label" + UNPACKED="$dir/$SLUG" + return 0 +} + +check_builds() { + local github_zip="$1" + local wporg_zip="$2" + local version="$3" + section "Release zips" + + if [ "$(basename "$github_zip")" = "$SLUG-$version.zip" ]; then + ok "GitHub asset name $SLUG-$version.zip (sites pick assets starting with $SLUG)" + else + err "GitHub asset is $(basename "$github_zip"), expected $SLUG-$version.zip" + fi + case "$(basename "$wporg_zip")" in + "$SLUG"*) err "WordPress.org zip name starts with $SLUG; sites could install it from GitHub" ;; + *) ok "WordPress.org zip name does not start with $SLUG" ;; + esac + + UNPACKED="" + check_zip "$github_zip" "github" + local github_dir="$UNPACKED" path + if [ -z "$UPDATER_FILES" ]; then + note "no .distignore-wporg: both builds hold the same files" + fi + for path in $UPDATER_FILES; do + if [ -e "$github_dir/$path" ]; then ok "github: has $path"; else err "github: $path missing (listed in .distignore-wporg)"; fi + done + if grep -Eq "^[[:space:]*]*GitHub Plugin URI:" "$github_dir/$MAIN_FILE"; then ok "github: has the GitHub Plugin URI header"; else err "github: no GitHub Plugin URI header, sites cannot update it from GitHub"; fi + + check_zip "$wporg_zip" "wporg" + local wporg_dir="$UNPACKED" + for path in $UPDATER_FILES; do + if [ -e "$wporg_dir/$path" ]; then err "wporg: $path must not be in the WordPress.org build"; else ok "wporg: no $path"; fi + done + if grep -Eq "^[[:space:]*]*($UPDATER_HEADERS):" "$wporg_dir/$MAIN_FILE"; then err "wporg: GitHub updater header lines still in $MAIN_FILE"; else ok "wporg: no GitHub updater header lines"; fi + local hits + hits="$(grep -rEl --include='*.php' --include='*.js' 'gu_override_dot_org|api\.github\.com/repos|Plugin_Upgrader|Theme_Upgrader|site_transient_update_plugins|auto_update_(plugin|theme)' "$wporg_dir" 2>/dev/null | sed "s|^$wporg_dir/||" || true)" + if [ -z "$hits" ]; then + ok "wporg: no code that installs or updates plugins from elsewhere" + else + warn "wporg: check these install or update code (guideline 8 allows only WordPress.org sources): $(printf '%s' "$hits" | tr '\n' ' ')" + fi + + section "Remote assets and services (WordPress.org build)" + hits="$(grep -rEn "(wp_(enqueue|register)_(script|style)|/dev/null | sed "s|^$wporg_dir/||" | cut -c1-160 || true)" + if [ -z "$hits" ]; then ok "no scripts or styles loaded from other sites"; else warn "scripts or styles from other sites (guideline 8: ship them in the plugin unless they are part of a service):"; printf '%s\n' "$hits" | sed 's/^/ /'; fi + local readme_text hosts host missing="" + readme_text="$(cat "$wporg_dir/readme.txt")" + hosts="$(grep -rEoh 'https?://[A-Za-z0-9.-]+\.[a-z]{2,}' "$wporg_dir/includes" "$wporg_dir/blocks" 2>/dev/null | sed -E 's|https?://||; s|^www\.||' | sort -u || true)" + for host in $hosts; do + case "$host" in + w3.org | gnu.org | wordpress.org | *.wordpress.org | w.org | *.w.org | wp.org | *.wp.org | example.com | *.example.com) continue ;; + esac + if ! printf '%s' "$readme_text" | grep -Fqi "$host"; then missing="$missing $host"; fi + done + if [ -z "$missing" ]; then + ok "every host in includes/ and blocks/ is named in readme.txt" + else + note "hosts in code not named in readme.txt (fine if they are only links; services the plugin contacts need an External services entry):$missing" + fi + + # Checks for parts only some plugins have; each runs when its files exist. + # A plugin's own checks: scripts/preflight-plugin.sh defines plugin_preflight, + # which gets the unpacked GitHub build and can use section, ok, warn and err. + if [ -f "$SCRIPT_DIR/preflight-plugin.sh" ]; then + # shellcheck source=/dev/null + . "$SCRIPT_DIR/preflight-plugin.sh" + plugin_preflight "$github_dir" + fi + if [ -f "$SCRIPT_DIR/replaced-plugins.php" ]; then + check_replaced_count "$github_dir" + fi + return 0 +} + +# README.md's " replaces **N plugins**" line matches the +# 'replaces' entries in the code (scripts/replaced-plugins.php). +check_replaced_count() { + local dir="$1" + section "Replaced plugins" + if ! command -v php >/dev/null 2>&1; then + warn "php not found, the replaced plugins count in README.md was not checked" + return 0 + fi + local out + if out="$(php "$SCRIPT_DIR/replaced-plugins.php" --check "$dir" 2>&1)"; then + ok "$out" + else + err "$out" + fi + return 0 +} + +# Core files match the starter's (scripts/sync-core.sh --check), when a +# checkout of the starter is at hand. A warning, not an error: the starter's +# checkout may be behind, and only a person can tell which side is right. +check_core_files() { + section "Core files" + local out status=0 + out="$(bash "$SCRIPT_DIR/sync-core.sh" --check 2>&1)" || status=$? + case "$status" in + 0) ok "$(printf '%s\n' "$out" | tail -n 1)" ;; + 1) warn "$(printf '%s\n' "$out" | sed -n '2,$p' | tr '\n' ' ')" ;; + *) note "not compared: ${out#sync-core: }" ;; + esac + return 0 +} + +check_git() { + local ref="$1" + local sha="$2" + local version="$3" + section "Git" + local tag_sha + if tag_sha="$(git rev-parse --verify --quiet "refs/tags/v$version^{commit}")"; then + if [ "$tag_sha" = "$sha" ]; then ok "tag v$version is this commit"; else warn "tag v$version exists on another commit (${tag_sha:0:12}); bump the version"; fi + else + note "no tag v$version yet" + fi + local main_sha + if main_sha="$(git rev-parse --verify --quiet "refs/remotes/origin/main^{commit}")"; then + if git merge-base --is-ancestor "$sha" "$main_sha"; then ok "$ref is on origin/main"; else note "$ref is not on origin/main yet; release only from main"; fi + fi + if [ "$ref" = "HEAD" ] && [ -n "$(git status --porcelain --untracked-files=no)" ]; then + note "uncommitted changes are not checked (the build comes from HEAD)" + fi + return 0 +} + +main() { + local ref="HEAD" + local strict=0 + local arg + while [ $# -gt 0 ]; do + arg="$1" + case "$arg" in + --ref) + [ $# -ge 2 ] || die "--ref needs a value" + ref="$2" + shift + ;; + --offline) OFFLINE=1 ;; + --strict) strict=1 ;; + --no-docker) USE_DOCKER=0 ;; + -h | --help) + usage + return 0 + ;; + *) die "unknown argument: $arg" ;; + esac + shift + done + + local root sha + root="$(git rev-parse --show-toplevel)" || die "run this inside a checkout of the plugin" + cd "$root" + sha="$(git rev-parse --verify --quiet "$ref^{commit}")" || die "not a commit: $ref" + plugin_identity "$sha" || die "cannot tell which plugin this is at $ref" + SLUG="$PLUGIN_SLUG" + MAIN_FILE="$PLUGIN_MAIN_FILE" + VERSION_CONSTANT="${PLUGIN_CONST}_VERSION" + UPDATER_FILES="$(plugin_wporg_only "$sha")" + + trap cleanup EXIT + TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/$SLUG-preflight.XXXXXX")" + + local main_php readme plugin_header + main_php="$(git show "$sha:$MAIN_FILE")" + readme="$(git show "$sha:readme.txt")" || die "readme.txt missing at $ref" + if git cat-file -e "$sha:changelog.txt" 2>/dev/null; then + CHANGELOG_TXT="$(git show "$sha:changelog.txt")" + fi + plugin_header="$(printf '%s\n' "$main_php" | sed -n '1,/\*\//p')" + + printf '%s preflight: %s (%s)\n' "$PLUGIN_NAME" "$ref" "${sha:0:12}" + VERSION="" + check_versions "$plugin_header" "$readme" "$main_php" + check_readme "$readme" "$plugin_header" "$VERSION" + check_wporg "$readme" "$plugin_header" + + local zips github_zip wporg_zip + zips="$("$root/scripts/build-release.sh" --ref "$sha" --out "$TMP_DIR/dist" --quiet)" || die "build failed" + github_zip="$(printf '%s\n' "$zips" | sed -n 1p)" + wporg_zip="$(printf '%s\n' "$zips" | sed -n 2p)" + check_builds "$github_zip" "$wporg_zip" "$VERSION" + if [ -f "$SCRIPT_DIR/sync-core.sh" ]; then + check_core_files + fi + check_git "$ref" "$sha" "$VERSION" + + printf '\n%s error(s), %s warning(s).\n' "$ERRORS" "$WARNINGS" + if [ "$ERRORS" -gt 0 ]; then + printf 'Not ready: fix the errors.\n' + return 1 + fi + if [ "$strict" -eq 1 ] && [ "$WARNINGS" -gt 0 ]; then + printf 'Not ready (--strict): resolve or accept the warnings.\n' + return 1 + fi + printf 'Next: scripts/plugin-check.sh (Plugin Check on both zips).\n' + return 0 +} + +main "$@" diff --git a/scripts/preview-site.sh b/scripts/preview-site.sh new file mode 100755 index 0000000..d62ecf6 --- /dev/null +++ b/scripts/preview-site.sh @@ -0,0 +1,382 @@ +#!/usr/bin/env bash +# Copy a combined preview of the plugin to the shared local test site: +# origin/main plus every open pull request from this repository, merged in +# PR order. Branches that conflict are left out and reported, except when +# the only conflicts are in the changelogs (DOC_FILES): every PR adds lines +# at the top of the same lists, so after each merge to main the open PRs +# conflict there. For the preview those files keep both sides' lines (git's +# union merge) and the PR is included, with a note; real merges are not +# affected. +# +# Nothing is checked out, committed to a branch or pushed: merges are worked +# out with `git merge-tree` and exported with `git archive`, so any worktree +# can run it, and every run includes everyone's pushed work. The copy holds +# what a release build contains (.distignore applied). A checkout whose copy +# of this script differs from origin/main's runs origin/main's, so an old +# worktree cannot leave PRs out (_PREVIEW_OWN=1 runs its own; the +# prefix is the plugin's constant prefix, such as WPSTARTER). +# +# Usage: scripts/preview-site.sh [--dry-run] [] +# WordPress folder of the test site (the one with wp-load.php). +# Remembered for every worktree of this clone after first use; +# _PREVIEW_SITE overrides it. +# --dry-run Report what would be included; copy nothing. +# +# Needs git 2.38+ (merge-tree --write-tree), gh (signed in) and rsync. + +set -euo pipefail + +readonly LOCK_WAIT_SECONDS=180 +readonly LOCK_STALE_MINUTES=10 +# Files whose conflicts do not keep a PR out of the preview. +readonly DOC_FILES="changelog.txt readme.txt README.md" + +LOCK_DIR="" +TMP_DIR="" +UNION_ATTRIBUTES="" +# Set in main() from the plugin's main file (scripts/lib/plugin.sh). +STAMP_NAME="" + +# Results, set by the functions below (Bash 3.2 has no namerefs). +SITE="" +MAIN_SHA="" +PREVIEW_COMMIT="" +INCLUDED="" +SKIPPED="" + +die() { + local message="$1" + printf 'preview-site: %s\n' "$message" >&2 + exit 1 +} + +usage() { + sed -n '2,26p' "$0" | sed 's/^# \{0,1\}//' + return 0 +} + +# Source scripts/lib/plugin.sh: the copy beside this script, or origin/main's +# when this runs as origin/main's copy from a temporary file and an older +# checkout started it (run_latest) without the library beside it. +load_plugin_lib() { + local dir lib + dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + if [ -r "$dir/lib/plugin.sh" ]; then + # shellcheck source=scripts/lib/plugin.sh disable=SC1091 # followed only with -x + . "$dir/lib/plugin.sh" + return 0 + fi + lib="$(git show origin/main:scripts/lib/plugin.sh)" || die "scripts/lib/plugin.sh not found beside the script or on origin/main" + eval "$lib" + return 0 +} + +cleanup() { + if [ -n "$LOCK_DIR" ] && [ -f "$LOCK_DIR/pid" ] && [ "$(cat "$LOCK_DIR/pid" 2>/dev/null)" = "$$" ]; then + rm -rf "$LOCK_DIR" + fi + if [ -n "$TMP_DIR" ] && [ -d "$TMP_DIR" ]; then + rm -rf "$TMP_DIR" + fi + return 0 +} + +# One run at a time across all worktrees; a lock left by a dead run is taken over. +acquire_lock() { + local lock="$1" + local waited=0 + local owner="" + while ! mkdir "$lock" 2>/dev/null; do + owner="$(cat "$lock/pid" 2>/dev/null || true)" + if { [ -n "$owner" ] && ! kill -0 "$owner" 2>/dev/null; } || [ -n "$(find "$lock" -maxdepth 0 -mmin +"$LOCK_STALE_MINUTES" 2>/dev/null)" ]; then + rm -rf "$lock" + continue + fi + if [ "$waited" -ge "$LOCK_WAIT_SECONDS" ]; then + die "another preview run is still going (lock: $lock)" + fi + [ "$waited" -eq 0 ] && printf 'Waiting for another preview run to finish...\n' + sleep 3 + waited=$((waited + 3)) + done + LOCK_DIR="$lock" + printf '%s\n' "$$" >"$lock/pid" + return 0 +} + +# owner/repo of the GitHub remote "origin". +origin_slug() { + local url + url="$(git remote get-url origin)" + url="${url%.git}" + case "$url" in + *github.com[:/]*) printf '%s\n' "${url#*github.com[:/]}" ;; + *) die "origin is not a GitHub remote: $url" ;; + esac + return 0 +} + +# Sets SITE: the argument, then the environment, then the one remembered for +# this clone. A new argument is remembered unless this is a dry run. +resolve_site() { + local site_arg="$1" + local saved="$2" + local remember="$3" + SITE="$(plugin_env PREVIEW_SITE)" + [ -n "$site_arg" ] && SITE="$site_arg" + if [ -z "$SITE" ] && [ -f "$saved" ]; then + SITE="$(cat "$saved")" + fi + [ -n "$SITE" ] || die "which site? Run: scripts/preview-site.sh \"\" (remembered after that)" + SITE="${SITE%/}" + if [ ! -f "$SITE/wp-load.php" ] || [ ! -d "$SITE/wp-content/plugins" ]; then + die "not a WordPress folder: $SITE" + fi + if [ -n "$site_arg" ] && [ "$remember" -eq 1 ]; then + printf '%s\n' "$SITE" >"$saved" + fi + return 0 +} + +# Open same-repository PRs as "numberbranchdraft|readytitle", oldest first. +open_prs() { + local slug + slug="$(origin_slug)" + gh pr list --repo "$slug" --state open --limit 100 \ + --json number,headRefName,isDraft,isCrossRepository,title \ + --jq 'sort_by(.number) | .[] | select(.isCrossRepository | not) | [.number, .headRefName, (if .isDraft then "draft" else "ready" end), .title] | @tsv' || + return 1 + return 0 +} + +# Merge one PR branch onto PREVIEW_COMMIT, or record why it is left out. +merge_pr() { + local num="$1" + local ref="$2" + local state="$3" + local title="$4" + local sha out tree files + local note="" + local rc=0 + if ! sha="$(git rev-parse --verify --quiet "refs/remotes/origin/$ref^{commit}")"; then + SKIPPED="${SKIPPED} #$num $ref: branch not found on origin +" + return 0 + fi + if git merge-base --is-ancestor "$sha" "$PREVIEW_COMMIT"; then + INCLUDED="${INCLUDED} #$num $ref ${sha:0:7} ($state, nothing new) $title +" + return 0 + fi + out="$(git merge-tree --write-tree --name-only --no-messages "$PREVIEW_COMMIT" "$sha")" || rc=$? + if [ "$rc" -eq 1 ]; then + files="$(printf '%s\n' "$out" | sed 1d | sort -u | tr '\n' ' ')" + files="${files% }" + if only_doc_files "$files"; then + rc=0 + out="$(git -c core.attributesFile="$UNION_ATTRIBUTES" merge-tree --write-tree --name-only --no-messages "$PREVIEW_COMMIT" "$sha")" || rc=$? + [ "$rc" -eq 0 ] && note="; both sides' lines kept in $files" + fi + fi + if [ "$rc" -eq 0 ]; then + tree="${out%%$'\n'*}" + PREVIEW_COMMIT="$(git -c user.name=preview -c user.email=preview@localhost commit-tree "$tree" -p "$PREVIEW_COMMIT" -p "$sha" -m "preview: merge #$num $ref")" + INCLUDED="${INCLUDED} #$num $ref ${sha:0:7} ($state$note) $title +" + elif [ "$rc" -eq 1 ]; then + SKIPPED="${SKIPPED} #$num $ref ${sha:0:7}: conflicts with main or an earlier PR in $files +" + else + die "git merge-tree failed for #$num $ref" + fi + return 0 +} + +# Whether every file in the space-separated list is one of DOC_FILES. +only_doc_files() { + local files="$1" + local file + [ -n "$files" ] || return 1 + for file in $files; do + case " $DOC_FILES " in + *" $file "*) ;; + *) return 1 ;; + esac + done + return 0 +} + +# Write the attributes file that makes DOC_FILES merge as a union. +write_union_attributes() { + local file + : >"$UNION_ATTRIBUTES" + for file in $DOC_FILES; do + printf '/%s merge=union\n' "$file" >>"$UNION_ATTRIBUTES" + done + return 0 +} + +# Sets MAIN_SHA, PREVIEW_COMMIT, INCLUDED and SKIPPED. +build_preview() { + local prs num ref state title + prs="$(open_prs)" || + die "could not list open pull requests with gh; nothing copied (a copy without them would hide work in progress)" + MAIN_SHA="$(git rev-parse --verify 'refs/remotes/origin/main^{commit}')" + PREVIEW_COMMIT="$MAIN_SHA" + while IFS=$'\t' read -r num ref state title; do + [ -n "$num" ] || continue + merge_pr "$num" "$ref" "$state" "$title" + done </dev/null)"; then + changed="$(git diff --name-only "$PREVIEW_COMMIT" "$merged" | tr '\n' ' ')" + changed="${changed% }" + if [ -z "$changed" ] || only_doc_files "$changed"; then + return 0 + fi + fi + if ! printf '%s' "$INCLUDED" | grep -q " $current "; then + printf 'Your branch %s is not in the preview: push it and open a draft PR, or see skipped above.\n' "$current" + elif [ "$(git rev-parse HEAD)" != "$(git rev-parse --verify --quiet "refs/remotes/origin/$current" || true)" ]; then + printf 'Your branch %s is in the preview as pushed; local commits not pushed are not.\n' "$current" + fi + return 0 +} + +# The stamp text; it ends with a newline. +report() { + local root="$1" + local current="$2" + printf 'Combined preview: origin/main plus open pull requests, made by scripts/preview-site.sh.\n' + printf 'time: %s\n' "$(date '+%Y-%m-%d %H:%M %Z')" + printf 'run from: %s (%s)\n' "$root" "${current:-detached}" + printf 'main: %s\n' "$(git log -1 --format='%h %s' "$MAIN_SHA")" + printf 'preview commit: %s (local only)\n' "${PREVIEW_COMMIT:0:12}" + printf 'included:\n%s' "${INCLUDED:- none +}" + printf 'skipped:\n%s' "${SKIPPED:- none +}" + return 0 +} + +# Copy PREVIEW_COMMIT to the site as a release build would contain it. +copy_to_site() { + local destination="$SITE/wp-content/plugins/$PLUGIN_SLUG" + [ -n "$PLUGIN_SLUG" ] || die "no plugin slug" + mkdir "$TMP_DIR/plugin" + git archive --format=tar "$PREVIEW_COMMIT" | tar -x -C "$TMP_DIR/plugin" + git show "$PREVIEW_COMMIT:.distignore" >"$TMP_DIR/distignore" + mkdir -p "$destination" + rsync -a --delete --delete-excluded --exclude-from="$TMP_DIR/distignore" "$TMP_DIR/plugin/" "$destination/" + return 0 +} + +# Run origin/main's copy of this script when this checkout's differs, so a +# worktree made before a fix to the script cannot leave open PRs out of the +# shared preview. _PREVIEW_OWN=1 runs this copy instead (to try a +# change to the script itself). The copy goes in a temporary folder with +# origin/main's scripts/lib/plugin.sh beside it. +run_latest() { + local dry_run="$1" + local site_arg="$2" + local root="$3" + local latest_var="${PLUGIN_CONST}_PREVIEW_LATEST" + local latest + latest="$(plugin_env PREVIEW_LATEST)" + if [ -n "$latest" ]; then + # Already main's copy: bash has the file open and the library is + # loaded, so the folder can go now. + rm -rf "$latest" + return 0 + fi + if [ "$(plugin_env PREVIEW_OWN)" = "1" ]; then + return 0 + fi + git fetch --quiet --prune origin || return 0 + latest="$(mktemp -d "${TMPDIR:-/tmp}/$PLUGIN_SLUG-preview-latest.XXXXXX")" + mkdir -p "$latest/lib" + if ! git show origin/main:scripts/preview-site.sh >"$latest/preview-site.sh" 2>/dev/null || + ! git show origin/main:scripts/lib/plugin.sh >"$latest/lib/plugin.sh" 2>/dev/null || + { cmp -s "$latest/preview-site.sh" "$root/scripts/preview-site.sh" && cmp -s "$latest/lib/plugin.sh" "$root/scripts/lib/plugin.sh"; }; then + rm -rf "$latest" + return 0 + fi + printf 'preview-site: this checkout'\''s copy of the script differs from origin/main; running origin/main'\''s.\n' >&2 + if [ "$dry_run" -eq 1 ]; then + exec env "$latest_var=$latest" bash "$latest/preview-site.sh" --dry-run ${site_arg:+"$site_arg"} + fi + exec env "$latest_var=$latest" bash "$latest/preview-site.sh" ${site_arg:+"$site_arg"} +} + +main() { + local dry_run=0 + local site_arg="" + local arg + while [ $# -gt 0 ]; do + arg="$1" + case "$arg" in + --dry-run) dry_run=1 ;; + -h | --help) + usage + return 0 + ;; + -*) die "unknown option: $arg" ;; + *) site_arg="$arg" ;; + esac + shift + done + + local root common current text note + root="$(git rev-parse --show-toplevel)" || die "run this inside a checkout of the plugin" + common="$(git rev-parse --path-format=absolute --git-common-dir)" + cd "$root" + load_plugin_lib + plugin_identity HEAD || die "cannot tell which plugin this is" + STAMP_NAME="$PLUGIN_SLUG-synced-from.txt" + run_latest "$dry_run" "$site_arg" "$root" + resolve_site "$site_arg" "$common/$PLUGIN_SLUG-preview-site" "$((1 - dry_run))" + + trap cleanup EXIT + TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/$PLUGIN_SLUG-preview.XXXXXX")" + UNION_ATTRIBUTES="$TMP_DIR/union-attributes" + write_union_attributes + if [ "$dry_run" -eq 0 ]; then + acquire_lock "$common/$PLUGIN_SLUG-preview.lock" + fi + git fetch --quiet --prune origin + build_preview + + current="$(git symbolic-ref --short -q HEAD || true)" + text="$(report "$root" "$current")" + note="$(branch_note "$current")" + if [ "$dry_run" -eq 0 ]; then + copy_to_site + printf '%s\n' "$text" >"$SITE/wp-content/$STAMP_NAME" + fi + + printf '%s\n' "$text" + [ -n "$note" ] && printf '\n%s\n' "$note" + if [ "$dry_run" -eq 1 ]; then + printf '\nDry run: nothing copied to %s\n' "$SITE" + else + printf '\nCopied to %s/wp-content/plugins/%s\n' "$SITE" "$PLUGIN_SLUG" + fi + return 0 +} + +main "$@" diff --git a/scripts/rename-plugin.sh b/scripts/rename-plugin.sh new file mode 100755 index 0000000..4e53a20 --- /dev/null +++ b/scripts/rename-plugin.sh @@ -0,0 +1,132 @@ +#!/usr/bin/env bash +# Give this plugin new names: run it once in a fresh copy of the starter to +# start a new plugin. Renames every tracked file's contents and paths, then +# leaves the changes for you to review and commit. +# +# Usage: scripts/rename-plugin.sh --slug SLUG --name NAME --prefix Prefix +# [--const PREFIX] [--css CSS] [--repo OWNER/REPO] +# --slug Plugin folder, main file and text domain (my-plugin). +# --name Plugin Name (My Plugin). +# --prefix Class prefix (MyPlugin: MyPlugin_Settings). +# --const Constant prefix (default: --prefix in capitals, MYPLUGIN). In +# lower case it is the option, hook and function prefix (myplugin). +# --css CSS class and data attribute prefix (default: the lower-case +# prefix; a short one such as mp keeps the markup readable). +# --repo GitHub repository, owner/repo (default: wpallstars/SLUG). +# +# Needs a clean working tree. Then update README.md, readme.txt, +# changelog.txt, AGENTS.md and the banner (STANDARDS.md and DEVELOPMENT.md say how). + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +readonly SCRIPT_DIR +# shellcheck source=scripts/lib/plugin.sh disable=SC1091 # followed only with -x +. "$SCRIPT_DIR/lib/plugin.sh" + +die() { + local message="$1" + printf 'rename-plugin: %s\n' "$message" >&2 + exit 2 +} + +TMP_FILE="" + +cleanup() { + [ -z "$TMP_FILE" ] || rm -f "$TMP_FILE" + return 0 +} + +usage() { + sed -n '2,19p' "$0" | sed 's/^# \{0,1\}//' + return 0 +} + +need() { + local flag="$1" + local value="$2" + local pattern="$3" + [ -n "$value" ] || die "$flag is needed (see --help)" + printf '%s' "$value" | grep -Eq "$pattern" || die "$flag '$value' must match $pattern" + return 0 +} + +main() { + local slug="" name="" prefix="" const="" css="" repo="" + while [ $# -gt 0 ]; do + local arg="$1" + local value="${2:-}" + case "$arg" in + --slug | --name | --prefix | --const | --css | --repo) + [ $# -ge 2 ] || die "$arg needs a value" + case "$arg" in + --slug) slug="$value" ;; + --name) name="$value" ;; + --prefix) prefix="$value" ;; + --const) const="$value" ;; + --css) css="$value" ;; + --repo) repo="$value" ;; + esac + shift + ;; + -h | --help) + usage + return 0 + ;; + *) die "unknown argument: $arg" ;; + esac + shift + done + + [ -n "$const" ] || const="$(printf '%s' "$prefix" | tr '[:lower:]' '[:upper:]')" + [ -n "$css" ] || css="$(printf '%s' "$const" | tr '[:upper:]' '[:lower:]')" + [ -n "$repo" ] || repo="wpallstars/$slug" + need --slug "$slug" '^[a-z][a-z0-9-]*[a-z0-9]$' + need --name "$name" '^[^/\\]+$' + need --prefix "$prefix" '^[A-Z][A-Za-z0-9]*$' + need --const "$const" '^[A-Z][A-Z0-9]*$' + need --css "$css" '^[a-z][a-z0-9]*$' + need --repo "$repo" '^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$' + + local root + root="$(git rev-parse --show-toplevel)" || die "run this inside a checkout of the plugin" + cd "$root" + [ -z "$(git status --porcelain)" ] || die "commit or put away your changes first" + plugin_identity HEAD || die "cannot tell which plugin this is" + plugin_names_as FROM + + export TO_SLUG="$slug" TO_NAME="$name" TO_PACKAGE="$prefix" TO_CONST="$const" + export TO_PREFIX + TO_PREFIX="$(printf '%s' "$const" | tr '[:upper:]' '[:lower:]')" + export TO_CSS="$css" TO_REPO="$repo" + [ "$TO_SLUG" != "$FROM_SLUG" ] || die "the slug is already $slug" + + printf 'Renaming %s to %s: %s / %s / %s / %s / %s / %s\n' "$FROM_NAME" "$name" "$slug" "$TO_PREFIX" "$prefix" "$const" "$css" "$repo" + + local file target changed=0 moved=0 + trap cleanup EXIT + TMP_FILE="$(mktemp "${TMPDIR:-/tmp}/rename-plugin.XXXXXX")" + local tmp="$TMP_FILE" + while IFS= read -r file; do + [ -f "$file" ] || continue + # Text files only (pictures and other binaries keep their bytes). + if grep -Iq . "$file"; then + plugin_map <"$file" >"$tmp" + if ! cmp -s "$tmp" "$file"; then + cat "$tmp" >"$file" + changed=$((changed + 1)) + fi + fi + target="$(printf '%s' "$file" | plugin_map)" + if [ "$target" != "$file" ]; then + mkdir -p "$(dirname "$target")" + git mv "$file" "$target" + moved=$((moved + 1)) + fi + done < <(git ls-files) + + printf '%d files changed, %d renamed. Run composer update --lock (the package name changed), review with git diff and git status, then commit.\n' "$changed" "$moved" + return 0 +} + +main "$@" diff --git a/scripts/replaced-plugins.php b/scripts/replaced-plugins.php new file mode 100644 index 0000000..9980158 --- /dev/null +++ b/scripts/replaced-plugins.php @@ -0,0 +1,422 @@ + 'afragen/git-updater'); +const README_LINE = '/^WP Plugin Starter replaces \*\*(\d+) plugins\*\*.*$/m'; + +/** + * Stop with a message. + * + * @param string $message What went wrong. + */ +function fail($message) { + fwrite(STDERR, "replaced-plugins: $message\n"); + exit(2); +} + +/** + * Tokens of a PHP file without whitespace and comments, as [id, text, line]. + * + * @param string $file Path. + * @return array + */ +function tokens($file) { + $out = array(); + $line = 1; + foreach (token_get_all(file_get_contents($file)) as $token) { + if (is_array($token)) { + $line = $token[2]; + if (in_array($token[0], array(T_WHITESPACE, T_COMMENT, T_DOC_COMMENT), true)) { + continue; + } + $out[] = array($token[0], $token[1], $line); + } else { + $out[] = array($token, $token, $line); + } + } + return $out; +} + +/** + * Small evaluator for the expressions used in 'replaces'. + */ +final class Replaces_Reader { + /** @var array "Class::NAME" => array(file, tokens, start, class). */ + private $consts = array(); + /** @var array Slug => name. */ + public $plugins = array(); + /** @var array Slug => list of "file:line". */ + public $where = array(); + + /** @var array Current file's tokens. */ + private $t; + /** @var int Current position. */ + private $i; + /** @var string Current file. */ + private $file; + /** @var string Current class. */ + private $class; + /** @var array Variable name => position of its value in $t. */ + private $vars; + + /** + * Read every PHP file under $dir/includes. + * + * @param string $dir Plugin folder. + */ + public function read($dir) { + $files = array(); + $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir . '/includes', FilesystemIterator::SKIP_DOTS)); + foreach ($it as $f) { + if ('php' === $f->getExtension()) { + $files[] = $f->getPathname(); + } + } + sort($files); + $parsed = array(); + foreach ($files as $file) { + $parsed[$file] = tokens($file); + $this->collect_consts($file, $parsed[$file]); + } + foreach ($parsed as $file => $t) { + $this->collect_replaces($file, $t, $dir); + } + ksort($this->plugins); + } + + private function collect_consts($file, array $t) { + $class = ''; + foreach ($t as $i => $tok) { + if (T_CLASS === $tok[0] && isset($t[$i + 1]) && T_STRING === $t[$i + 1][0]) { + $class = $t[$i + 1][1]; + } + if (T_CONST === $tok[0] && '' !== $class && isset($t[$i + 2]) && '=' === $t[$i + 2][0]) { + $this->consts[$class . '::' . $t[$i + 1][1]] = array($file, $t, $i + 3, $class); + } + } + } + + private function collect_replaces($file, array $t, $dir) { + $this->file = $file; + $this->t = $t; + $this->class = ''; + $this->vars = array(); + $n = count($t); + for ($i = 0; $i < $n; $i++) { + $tok = $t[$i]; + if (T_CLASS === $tok[0] && isset($t[$i + 1]) && T_STRING === $t[$i + 1][0]) { + $this->class = $t[$i + 1][1]; + } elseif (T_VARIABLE === $tok[0] && isset($t[$i + 1]) && '=' === $t[$i + 1][0]) { + $this->vars[$tok[1]] = $i + 2; + } elseif (T_CONSTANT_ENCAPSED_STRING === $tok[0] && "'replaces'" === $tok[1] && isset($t[$i + 1]) && T_DOUBLE_ARROW === $t[$i + 1][0]) { + $this->i = $i + 2; + $value = $this->expr(); + if (!is_array($value)) { + $this->error('replaces is not an array'); + } + foreach ($value as $slug => $name) { + if (!is_string($name)) { + $this->error("replaces[$slug] is not a name"); + } + if (!isset($this->plugins[$slug])) { + $this->plugins[$slug] = $name; + } + $this->where[$slug][] = substr($file, strlen($dir) + 1) . ':' . $tok[2]; + } + } + } + } + + private function error($message) { + $line = isset($this->t[$this->i]) ? $this->t[$this->i][2] : '?'; + fail("{$this->file}:$line: $message"); + } + + private function peek() { + return isset($this->t[$this->i]) ? $this->t[$this->i] : array(null, '', 0); + } + + private function expect($id) { + $tok = $this->peek(); + if ($tok[0] !== $id) { + $this->error("expected $id, found '{$tok[1]}'"); + } + $this->i++; + } + + /** expr := term ('+' term)* */ + private function expr() { + $value = $this->term(); + while ('+' === $this->peek()[0]) { + $this->i++; + $right = $this->term(); + if (!is_array($value) || !is_array($right)) { + $this->error('+ on something that is not an array'); + } + $value = $value + $right; + } + return $value; + } + + private function term() { + $tok = $this->peek(); + if (T_ARRAY === $tok[0]) { + $this->i++; + $this->expect('('); + return $this->elements(')'); + } + if ('[' === $tok[0]) { + $this->i++; + return $this->elements(']'); + } + if (T_CONSTANT_ENCAPSED_STRING === $tok[0]) { + $this->i++; + return $this->string($tok[1]); + } + if (T_STRING === $tok[0] && isset($this->t[$this->i + 1]) && T_DOUBLE_COLON === $this->t[$this->i + 1][0]) { + $class = in_array(strtolower($tok[1]), array('self', 'static'), true) ? $this->class : $tok[1]; + $name = $this->t[$this->i + 2][1]; + $this->i += 3; + return $this->constant($class . '::' . $name); + } + if (T_STATIC === $tok[0] && isset($this->t[$this->i + 1]) && T_DOUBLE_COLON === $this->t[$this->i + 1][0]) { + $name = $this->t[$this->i + 2][1]; + $this->i += 3; + return $this->constant($this->class . '::' . $name); + } + if (T_VARIABLE === $tok[0]) { + if (!isset($this->vars[$tok[1]])) { + $this->error("{$tok[1]} is not assigned before it is used"); + } + $back = $this->i + 1; + $this->i = $this->vars[$tok[1]]; + $value = $this->expr(); + $this->i = $back; + return $value; + } + $this->error("cannot read '{$tok[1]}'"); + } + + private function elements($close) { + $out = array(); + while ($close !== $this->peek()[0]) { + $key = $this->expr(); + $this->expect(T_DOUBLE_ARROW); + $out[$key] = $this->expr(); + if (',' === $this->peek()[0]) { + $this->i++; + } elseif ($close !== $this->peek()[0]) { + $this->error("expected , or $close"); + } + } + $this->i++; + return $out; + } + + private function string($text) { + if ("'" !== $text[0]) { + $this->error("only single-quoted strings are read: $text"); + } + return strtr(substr($text, 1, -1), array("\\'" => "'", '\\\\' => '\\')); + } + + private function constant($key) { + if (!isset($this->consts[$key])) { + $this->error("unknown constant $key"); + } + list($file, $t, $start, $class) = $this->consts[$key]; + $saved = array($this->file, $this->t, $this->i, $this->class); + list($this->file, $this->t, $this->i, $this->class) = array($file, $t, $start, $class); + $value = $this->expr(); + list($this->file, $this->t, $this->i, $this->class) = $saved; + return $value; + } +} + +/** + * GET a URL; the body, or null on a network error. + * + * @param string $url URL. + * @param bool $head Only the headers (returns the Content-Length). + * @return string|int|null + */ +function fetch($url, $head = false) { + $args = array('-sSL', '-m', '30', '-A', 'wpstarter-replaced-plugins'); + if ($head) { + $args = array_merge($args, array('-o', '/dev/null', '-w', '%{http_code} %{size_download}')); + } + $cmd = 'curl ' . implode(' ', array_map('escapeshellarg', $args)) . ' ' . escapeshellarg($url); + exec($cmd, $lines, $status); + if (0 !== $status) { + return null; + } + $out = implode("\n", $lines); + if ($head) { + list($code, $bytes) = explode(' ', $out) + array('', '0'); + return '200' === $code ? (int) $bytes : null; + } + return $out; +} + +/** + * Size of a plugin's current zip: WordPress.org first, then GITHUB_SOURCES. + * + * @param string $slug Plugin folder. + * @return int|null Bytes, or null when it cannot be downloaded. + */ +function zip_size($slug) { + $info = fetch('https://api.wordpress.org/plugins/info/1.2/?action=plugin_information&request%5Bslug%5D=' . rawurlencode($slug) . '&request%5Bfields%5D%5Bsections%5D=0'); + if (null === $info) { + fail("could not reach WordPress.org for $slug"); + } + $data = json_decode($info, true); + if (is_array($data) && !empty($data['download_link'])) { + $bytes = fetch($data['download_link'], true); + if (null === $bytes) { + fail("could not download {$data['download_link']}"); + } + return $bytes; + } + if (isset(GITHUB_SOURCES[$slug])) { + $json = fetch('https://api.github.com/repos/' . GITHUB_SOURCES[$slug] . '/releases/latest'); + $data = null === $json ? null : json_decode($json, true); + foreach (is_array($data) && isset($data['assets']) ? $data['assets'] : array() as $asset) { + if (0 === strpos($asset['name'], $slug) && '.zip' === substr($asset['name'], -4)) { + return (int) $asset['size']; + } + } + fail('no release zip for ' . GITHUB_SOURCES[$slug]); + } + return null; // Pro editions and plugins closed on WordPress.org. +} + +/** + * Bytes as "1.2 MB" or "870 KB". + * + * @param int $bytes Bytes. + * @return string + */ +function size_label($bytes) { + if ($bytes >= 1024 * 1024) { + return number_format($bytes / (1024 * 1024), 1) . ' MB'; + } + return number_format($bytes / 1024) . ' KB'; +} + +$mode = ''; +$dir = dirname(__DIR__); +foreach (array_slice($argv, 1) as $arg) { + if ('--check' === $arg || '--write' === $arg) { + $mode = $arg; + } elseif ('-h' === $arg || '--help' === $arg) { + echo "Usage: php scripts/replaced-plugins.php [--check | --write] [DIR]\n"; + exit(0); + } elseif ('-' !== $arg[0]) { + $dir = rtrim($arg, '/'); + } else { + fail("unknown argument: $arg"); + } +} +if (!is_dir($dir . '/includes')) { + fail("$dir has no includes folder"); +} + +$reader = new Replaces_Reader(); +$reader->read($dir); +$count = count($reader->plugins); + +$readme_file = $dir . '/README.md'; +$readme = is_file($readme_file) ? file_get_contents($readme_file) : ''; + +if (0 === $count) { + // A plugin that replaces none has no count line in README.md. With the + // line there, finding none means the reader no longer understands the code. + if (preg_match(README_LINE, $readme)) { + fail('no replaced plugins found; the reader is out of date'); + } + echo "No replaced plugins, and README.md has no count line\n"; + exit(0); +} + +if ('' === $mode) { + foreach ($reader->plugins as $slug => $name) { + printf("%-42s %s\n", $slug, $name); + } + printf("%d plugins\n", $count); + exit(0); +} + +if ('--check' === $mode) { + if (!preg_match(README_LINE, $readme, $m)) { + fwrite(STDERR, "README.md has no \"WP Plugin Starter replaces **N plugins**\" line\n"); + exit(1); + } + if ((int) $m[1] !== $count) { + fwrite(STDERR, "README.md says {$m[1]} replaced plugins, the code has $count; run php scripts/replaced-plugins.php --write\n"); + exit(1); + } + echo "README.md says $count replaced plugins, as the code does\n"; + exit(0); +} + +// --write: sizes of every replaced plugin that can be downloaded, and ours. +$total = 0; +$sized = 0; +$no_size = array(); +foreach ($reader->plugins as $slug => $name) { + $bytes = zip_size($slug); + if (null === $bytes) { + $no_size[] = $name; + continue; + } + $total += $bytes; + $sized++; + printf("%-42s %10s\n", $slug, size_label($bytes)); +} + +$out = sys_get_temp_dir() . '/wpstarter-replaced-' . getmypid(); +exec('cd ' . escapeshellarg($dir) . ' && scripts/build-release.sh --ref HEAD --out ' . escapeshellarg($out) . ' --quiet', $zips, $status); +if (0 !== $status || empty($zips[0]) || !is_file($zips[0])) { + fail('scripts/build-release.sh failed'); +} +$ours = filesize($zips[0]); +array_map('unlink', glob($out . '/*.zip')); +@rmdir($out); + +$line = sprintf( + 'WP Plugin Starter replaces **%d plugins**, some of them in part, with free and Pro editions counted separately. The %d that can be downloaded come to %s zipped; WP Plugin Starter is %s.', + $count, + $sized, + size_label($total), + size_label($ours) +); +printf("%d plugins; %d downloadable, %s; WP Plugin Starter %s\n", $count, $sized, size_label($total), size_label($ours)); +if ($no_size) { + echo 'Not downloadable (Pro or closed): ' . implode(', ', $no_size) . "\n"; +} +if (!preg_match(README_LINE, $readme)) { + fail('README.md has no "WP Plugin Starter replaces **N plugins**" line to update; add one above the Features table'); +} +file_put_contents($readme_file, preg_replace(README_LINE, str_replace(array('\\', '$'), array('\\\\', '\\$'), $line), $readme, 1)); +echo "Updated README.md\n"; diff --git a/scripts/smoke-test.sh b/scripts/smoke-test.sh new file mode 100755 index 0000000..87e8c49 --- /dev/null +++ b/scripts/smoke-test.sh @@ -0,0 +1,333 @@ +#!/usr/bin/env bash +# Smoke test: install the release zip on a disposable WordPress in Docker and +# load the site and admin screens, first with the default settings and then +# with every feature switched on. Then uninstall it and check it left nothing +# behind. Nothing is kept and no other site is touched. +# +# Usage: scripts/smoke-test.sh [--wp VERSION] [--php VERSION] [--ref REF] +# [--zip FILE] [--wporg] [--keep-log FILE] +# --wp VERSION WordPress version (default: latest). The minimum is 6.2. +# --php VERSION PHP version of the Docker images (default: 8.3). The +# minimum is 7.4. +# --ref REF Build the zip from REF (default: HEAD). +# --zip FILE Test this zip instead of building one. +# --wporg Test the WordPress.org build instead of the GitHub one. +# --keep-log FILE Save the site's debug.log to FILE. +# +# Fails on any PHP error, warning, notice or deprecation in debug.log (from +# the pages loaded, WP-CLI and cron), a page that fails to load (HTTP 500 or +# WordPress's critical error page), or settings left after uninstalling. +# Needs Docker, curl and internet access (WordPress is downloaded). + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +readonly SCRIPT_DIR +# shellcheck source=scripts/lib/plugin.sh disable=SC1091 # followed only with -x +. "$SCRIPT_DIR/lib/plugin.sh" + +# Set in main() from the plugin's main file. +SLUG="" +DB_IMAGE="" +NAME="" +TMP_DIR="" +STARTED=0 +WP_VERSION="latest" +PHP_VERSION="8.3" +BASE_URL="" +DB_PASSWORD="" +ADMIN_PASSWORD="" +FAILED=0 + +die() { + local message="$1" + printf 'smoke-test: %s\n' "$message" >&2 + exit 2 +} + +usage() { + sed -n '2,20p' "$0" | sed 's/^# \{0,1\}//' + return 0 +} + +fail() { + local message="$1" + printf ' FAIL %s\n' "$message" + FAILED=1 + return 0 +} + +cleanup() { + if [ "$STARTED" -eq 1 ]; then + docker rm -f "$NAME-web" "$NAME-db" >/dev/null 2>&1 || true + docker volume rm "$NAME-wp" >/dev/null 2>&1 || true + docker network rm "$NAME" >/dev/null 2>&1 || true + fi + if [ -n "$TMP_DIR" ] && [ -d "$TMP_DIR" ]; then + rm -rf "$TMP_DIR" + fi + return 0 +} + +random_password() { + LC_ALL=C tr -dc 'A-Za-z0-9' /dev/null + docker volume create "$NAME-wp" >/dev/null + docker run -d --name "$NAME-db" --network "$NAME" \ + -e MARIADB_ROOT_PASSWORD="$DB_PASSWORD" -e MARIADB_DATABASE=wordpress "$DB_IMAGE" >/dev/null + docker run --rm -v "$NAME-wp:/var/www/html" --user 0:0 "wordpress:cli-php$PHP_VERSION" chown 33:33 /var/www/html + + local waited=0 + until docker exec "$NAME-db" mariadb-admin ping -h127.0.0.1 -uroot -p"$DB_PASSWORD" --silent >/dev/null 2>&1; do + [ "$waited" -lt 90 ] || die "the database did not start" + sleep 2 + waited=$((waited + 2)) + done + + # Core first, so the web image finds WordPress and does not copy its own. + wp_cli core download --version="$WP_VERSION" --quiet + docker run -d --name "$NAME-web" --network "$NAME" -v "$NAME-wp:/var/www/html" \ + -p 127.0.0.1::80 "wordpress:php$PHP_VERSION-apache" >/dev/null + BASE_URL="http://$(docker port "$NAME-web" 80 | head -n 1)" + + wp_cli config create --dbname=wordpress --dbuser=root --dbpass="$DB_PASSWORD" --dbhost="$NAME-db" --skip-check --quiet + wp_cli config set WP_DEBUG true --raw --quiet + wp_cli config set WP_DEBUG_LOG true --raw --quiet + wp_cli config set WP_DEBUG_DISPLAY false --raw --quiet + wp_cli config set DISABLE_WP_CRON true --raw --quiet + wp_cli core install --url="$BASE_URL" --title=SmokeTest --admin_user=admin --admin_password="$ADMIN_PASSWORD" \ + --admin_email=admin@example.com --skip-email --quiet + # WP-CLI cannot see Apache's mod_rewrite, so write core's rules itself. + wp_cli rewrite structure '/%postname%/' --quiet + docker exec -u www-data "$NAME-web" sh -c 'printf "%s\n" "# BEGIN WordPress" "RewriteEngine On" "RewriteBase /" \ + "RewriteRule ^index\.php$ - [L]" "RewriteCond %{REQUEST_FILENAME} !-f" "RewriteCond %{REQUEST_FILENAME} !-d" \ + "RewriteRule . /index.php [L]" "# END WordPress" >/var/www/html/.htaccess' + printf 'WordPress %s at %s\n' "$(wp_cli core version)" "$BASE_URL" + return 0 +} + +log_in() { + curl -sS -o /dev/null -c "$TMP_DIR/cookies" -b 'wordpress_test_cookie=WP%20Cookie%20check' \ + --data-urlencode 'log=admin' --data-urlencode "pwd=$ADMIN_PASSWORD" \ + --data-urlencode 'testcookie=1' --data-urlencode "redirect_to=$BASE_URL/wp-admin/" \ + "$BASE_URL/wp-login.php" + local status + status="$(curl -sS -o /dev/null -w '%{http_code}' -b "$TMP_DIR/cookies" "$BASE_URL/wp-admin/")" + [ "$status" = "200" ] || die "could not log in (wp-admin answered $status)" + return 0 +} + +# Load one page; $2 is "admin" to send the login cookie. Fails on 5xx or +# WordPress's critical error page; other statuses are listed. +fetch() { + local path="$1" + local who="$2" + local status + local args=(-sS -o "$TMP_DIR/page" -w '%{http_code}' --max-time 60) + [ "$who" = "admin" ] && args+=(-b "$TMP_DIR/cookies") + status="$(curl "${args[@]}" "$BASE_URL$path" || printf '000')" + if grep -q 'There has been a critical error' "$TMP_DIR/page"; then + fail "$status $who $path: critical error page" + elif [ "$status" -ge 500 ] || [ "$status" = "000" ]; then + fail "$status $who $path" + else + printf ' %s %s %s\n' "$status" "$who" "$path" + fi + return 0 +} + +load_pages() { + local path + local visitor_pages=( + '/' '/hello-world/' '/sample-page/' '/?s=hello' '/category/uncategorized/' '/feed/' + '/wp-json/' '/wp-json/wp/v2/posts' '/wp-sitemap.xml' '/no-such-page/' '/wp-login.php' + ) + local admin_pages=( + '/' '/hello-world/' '/wp-admin/' '/wp-admin/plugins.php' "/wp-admin/options-general.php?page=$SLUG" + '/wp-admin/edit.php' '/wp-admin/edit.php?post_type=page' '/wp-admin/post-new.php' + '/wp-admin/post.php?post=1&action=edit' '/wp-admin/upload.php' '/wp-admin/edit-comments.php' + '/wp-admin/themes.php' '/wp-admin/users.php' '/wp-admin/profile.php' '/wp-admin/tools.php' + '/wp-admin/site-health.php' '/wp-admin/options-general.php' '/wp-admin/options-permalink.php' + ) + for path in "${visitor_pages[@]}"; do + fetch "$path" visitor + done + for path in "${admin_pages[@]}"; do + fetch "$path" admin + done + wp_cli cron event run --due-now --quiet || fail "wp cron event run" + return 0 +} + +# Switch on every feature that has an on/off setting, except maintenance +# mode, which would answer every visitor page with its 503 notice. +switch_all_on() { + # The class prefix is the plugin's @package (scripts/lib/plugin.sh). + # shellcheck disable=SC2016 # PHP code: its $variables are PHP's, not the shell's. + wp_cli eval ' + $plugin = "'"$PLUGIN_PACKAGE"'"; + $settings = $plugin . "_Settings"; + $schema = $settings::schema(); + $on = 0; + foreach ($plugin::features() as $class) { + $key = defined($class . "::KEY") ? $class::KEY : ""; + if ("" !== $key && "maintenance" !== $key && isset($schema[$key]["type"]) && in_array($schema[$key]["type"], array("bool", "boolean"), true)) { + $settings::set($key, true); + $on++; + } + } + echo "$on features switched on\n";' + return $? +} + +check_uninstall() { + wp_cli plugin deactivate "$SLUG" --quiet || fail "deactivate" + wp_cli plugin uninstall "$SLUG" --quiet || fail "uninstall" + local left + left="$(wp_cli option list --search="*$PLUGIN_PREFIX*" --field=option_name 2>/dev/null || true)" + [ -z "$left" ] || fail "options left after uninstalling: $(printf '%s' "$left" | tr '\n' ' ')" + left="$(wp_cli cron event list --field=hook 2>/dev/null | grep -i "$PLUGIN_PREFIX" || true)" + [ -z "$left" ] || fail "cron events left after uninstalling: $(printf '%s' "$left" | tr '\n' ' ')" + return 0 +} + +# A must-use plugin that logs a notice for /?smoke-canary, so the test can +# prove that page loads reach debug.log (an empty log proves nothing otherwise). +add_canary() { + docker exec -u www-data "$NAME-web" sh -c 'mkdir -p /var/www/html/wp-content/mu-plugins && printf "%s\n" "/var/www/html/wp-content/mu-plugins/smoke-canary.php' + return $? +} + +check_debug_log() { + local keep="$1" + local log + fetch '/?smoke-canary' visitor + log="$(docker exec "$NAME-web" sh -c 'cat /var/www/html/wp-content/debug.log 2>/dev/null' || true)" + if [ -n "$keep" ]; then + printf '%s\n' "$log" >"$keep" + fi + if ! printf '%s\n' "$log" | grep -q 'smoke-test canary'; then + fail "debug.log does not work: the canary notice is missing" + return 0 + fi + log="$(printf '%s\n' "$log" | grep -v 'smoke-test canary' || true)" + if [ -n "$log" ]; then + printf '\ndebug.log:\n%s\n' "$log" + fail "PHP messages in debug.log" + else + printf '\ndebug.log: no PHP messages (the canary notice arrived)\n' + fi + return 0 +} + +main() { + local ref="HEAD" + local zip="" + local wporg=0 + local keep="" + local arg + while [ $# -gt 0 ]; do + arg="$1" + case "$arg" in + --wp | --php | --ref | --zip | --keep-log) + [ $# -ge 2 ] || die "$arg needs a value" + case "$arg" in + --wp) WP_VERSION="$2" ;; + --php) PHP_VERSION="$2" ;; + --ref) ref="$2" ;; + --zip) + [ -f "$2" ] || die "no such zip: $2" + zip="$(cd "$(dirname "$2")" && pwd)/$(basename "$2")" + ;; + --keep-log) + case "$2" in + /*) keep="$2" ;; + *) keep="$PWD/$2" ;; + esac + ;; + esac + shift + ;; + --wporg) wporg=1 ;; + -h | --help) + usage + return 0 + ;; + *) die "unknown argument: $arg" ;; + esac + shift + done + + command -v docker >/dev/null 2>&1 || die "needs Docker" + command -v curl >/dev/null 2>&1 || die "needs curl" + docker info >/dev/null 2>&1 || die "Docker is not running" + local root + root="$(git rev-parse --show-toplevel)" || die "run this inside a checkout of the plugin" + cd "$root" + plugin_identity "$ref" || die "cannot tell which plugin this is at $ref" + SLUG="$PLUGIN_SLUG" + DB_IMAGE="$(plugin_env DB_IMAGE mariadb:10.6)" + NAME="$SLUG-smoke-$$" + + trap cleanup EXIT + TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/$SLUG-smoke.XXXXXX")" + mkdir -p "$TMP_DIR/zips" + chmod 755 "$TMP_DIR" "$TMP_DIR/zips" + if [ -z "$zip" ]; then + "$root/scripts/build-release.sh" --ref "$ref" --out "$TMP_DIR/build" --quiet >/dev/null || die "build failed" + local built=() + if [ "$wporg" -eq 1 ]; then + built=("$TMP_DIR"/build/wordpress-org-"$SLUG"-*.zip) + else + built=("$TMP_DIR"/build/"$SLUG"-*.zip) + fi + [ -f "${built[0]}" ] || die "the build made no zip" + zip="${built[0]}" + fi + cp "$zip" "$TMP_DIR/zips/$SLUG.zip" + chmod 644 "$TMP_DIR/zips/$SLUG.zip" + + start_site + add_canary || die "could not add the debug.log canary" + printf '\nInstalling %s\n' "$(basename "$zip")" + wp_cli plugin install "/zips/$SLUG.zip" --activate --quiet || die "could not install and activate the plugin" + log_in + + printf '\nDefault settings:\n' + load_pages + + printf '\nEvery feature on:\n' + switch_all_on || fail "switching features on" + load_pages + + printf '\nUninstall:\n' + check_uninstall + check_debug_log "$keep" + + printf '\n' + if [ "$FAILED" -eq 1 ]; then + printf 'Smoke test failed (WordPress %s, PHP %s).\n' "$WP_VERSION" "$PHP_VERSION" + return 1 + fi + printf 'Smoke test passed (WordPress %s, PHP %s).\n' "$WP_VERSION" "$PHP_VERSION" + return 0 +} + +main "$@" diff --git a/scripts/sync-core.sh b/scripts/sync-core.sh new file mode 100755 index 0000000..c1c8b97 --- /dev/null +++ b/scripts/sync-core.sh @@ -0,0 +1,147 @@ +#!/usr/bin/env bash +# Copy the core files (scripts/core-files.txt) from the starter plugin into +# this plugin, with this plugin's names. Core files hold no code for one +# plugin, so after a sync they match the starter apart from the names. +# +# Usage: scripts/sync-core.sh [--check] [--from DIR] [--ref REF] +# --check Change nothing; list core files that differ from the starter's +# and exit 1 if any do (scripts/preflight-release.sh warns). +# --from DIR A checkout of the starter (default: _STARTER_DIR, then +# wp-plugin-starter-template-for-ai-coding next to this repository). +# --ref REF Starter commit, branch or tag to copy from (default: HEAD of +# that checkout; use origin/main after a git fetch there). +# +# The list of core files and their contents come from the starter at REF; +# the plugin's names come from this repository's main file at HEAD. +# Review the changes with git diff, then commit them. + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +readonly SCRIPT_DIR +# shellcheck source=scripts/lib/plugin.sh disable=SC1091 # followed only with -x +. "$SCRIPT_DIR/lib/plugin.sh" + +readonly STARTER_REPO_DIR="wp-plugin-starter-template-for-ai-coding" + +die() { + local message="$1" + printf 'sync-core: %s\n' "$message" >&2 + exit 2 +} + +TMP_FILE="" + +cleanup() { + [ -z "$TMP_FILE" ] || rm -f "$TMP_FILE" + return 0 +} + +usage() { + sed -n '2,17p' "$0" | sed 's/^# \{0,1\}//' + return 0 +} + +# Core paths at the starter ref, one per line, with directories expanded. +core_paths() { + local from="$1" + local ref="$2" + local line + git -C "$from" show "$ref:scripts/core-files.txt" | sed -e 's/[[:space:]]*$//' -e '/^#/d' -e '/^$/d' | while IFS= read -r line; do + case "$line" in + */) git -C "$from" ls-tree -r --name-only "$ref" -- "$line" ;; + *) printf '%s\n' "$line" ;; + esac + done + return 0 +} + +main() { + local check=0 from="" ref="HEAD" + while [ $# -gt 0 ]; do + local arg="$1" + local value="${2:-}" + case "$arg" in + --check) check=1 ;; + --from) + [ $# -ge 2 ] || die "--from needs a value" + from="$value" + shift + ;; + --ref) + [ $# -ge 2 ] || die "--ref needs a value" + ref="$value" + shift + ;; + -h | --help) + usage + return 0 + ;; + *) die "unknown argument: $arg" ;; + esac + shift + done + + local root + root="$(git rev-parse --show-toplevel)" || die "run this inside a checkout of the plugin" + cd "$root" + plugin_identity HEAD || die "cannot tell which plugin this is" + plugin_names_as TO + + if [ -z "$from" ]; then + from="$(plugin_env STARTER_DIR "$(dirname "$root")/$STARTER_REPO_DIR")" + fi + [ -d "$from" ] || die "no starter checkout at $from; clone it there or pass --from DIR" + from="$(cd "$from" && pwd)" + [ "$from" != "$root" ] || die "this is the starter; run it in a plugin made from the starter" + git -C "$from" rev-parse --verify --quiet "$ref^{commit}" >/dev/null || die "not a commit in the starter: $ref" + + cd "$from" + plugin_identity "$ref" || die "cannot read the starter's names at $ref" + plugin_names_as FROM + cd "$root" + + printf 'Core files from %s (%s) into %s, as %s / %s / %s / %s / %s\n' \ + "$FROM_NAME" "$(git -C "$from" rev-parse --short "$ref")" "$TO_NAME" \ + "$TO_SLUG" "$TO_PREFIX" "$TO_PACKAGE" "$TO_CONST" "$TO_CSS" + + local path target mode differ=0 count=0 + trap cleanup EXIT + TMP_FILE="$(mktemp "${TMPDIR:-/tmp}/sync-core.XXXXXX")" + local tmp="$TMP_FILE" + while IFS= read -r path; do + target="$(printf '%s' "$path" | plugin_map)" + git -C "$from" show "$ref:$path" | plugin_map >"$tmp" + count=$((count + 1)) + if [ -f "$target" ] && cmp -s "$tmp" "$target"; then + continue + fi + differ=$((differ + 1)) + if [ "$check" -eq 1 ]; then + if [ -f "$target" ]; then + printf ' differs %s\n' "$target" + else + printf ' missing %s\n' "$target" + fi + continue + fi + mkdir -p "$(dirname "$target")" + cp "$tmp" "$target" + mode="$(git -C "$from" ls-tree "$ref" -- "$path" | awk '{ print $1 }')" + if [ "$mode" = "100755" ]; then chmod +x "$target"; else chmod -x "$target"; fi + printf ' updated %s\n' "$target" + done < <(core_paths "$from" "$ref") + + if [ "$check" -eq 1 ]; then + if [ "$differ" -eq 0 ]; then + printf 'All %d core files match the starter.\n' "$count" + return 0 + fi + printf '%d of %d core files differ from the starter. Run scripts/sync-core.sh, or change the starter first.\n' "$differ" "$count" + return 1 + fi + printf '%d of %d core files updated. Review with git diff, then commit.\n' "$differ" "$count" + return 0 +} + +main "$@" diff --git a/uninstall.php b/uninstall.php new file mode 100644 index 0000000..ac36e86 --- /dev/null +++ b/uninstall.php @@ -0,0 +1,45 @@ +query($wpdb->prepare("DELETE FROM {$wpdb->options} WHERE option_name LIKE %s", $wpdb->esc_like($pattern) . '%')); + } +} + +if (is_multisite()) { + foreach (get_sites(array('fields' => 'ids', 'number' => 0)) as $wpstarter_site_id) { + switch_to_blog($wpstarter_site_id); + wpstarter_uninstall_site(); + restore_current_blog(); + } +} else { + wpstarter_uninstall_site(); +} + +// Hidden "WP Plugin Starter can do the job of these plugins" lines. +delete_metadata('user', 0, 'wpstarter_replaced_plugins_hidden', '', true); + +// Latest GitHub releases (the shared GitHub updater). Only a cache: another +// plugin's copy asks again. +delete_site_transient('wpallstars_github_releases'); diff --git a/wp-plugin-starter-template.php b/wp-plugin-starter-template.php new file mode 100644 index 0000000..1b36c74 --- /dev/null +++ b/wp-plugin-starter-template.php @@ -0,0 +1,44 @@ +

    %3$s

    `. +- `wpstarter_settings_tab_after`: print a section after a settings tab’s cards (tab slug). + +Read a setting with `WPStarter_Settings::get( 'key' )`. + +## Uninstall + +Deleting the plugin removes its settings, its cached data, who hid lines of the Plugins screen notice about replaced plugins, and the cached GitHub releases. + +## Changelog + +### 1.0.0 + +- A fresh start, made from the parts every wpallstars plugin needs, taken from plugins in daily use: the settings screen with search, the Read Me tab, features as classes, replaced plugins, the shared GitHub updater, the release and check scripts, CI and the shared rules (`STANDARDS.md`, `DEVELOPMENT.md`, `RELEASING.md`). Earlier versions of this starter are retired; start again from this one. +- New: `scripts/rename-plugin.sh` gives a copy of the starter its own names, and `scripts/sync-core.sh` keeps a plugin's core files the same as the starter's (`--check` lists any that differ). + +## Built with AI + +WP Plugin Starter is built and maintained with [aidevops](https://aidevops.sh), the same developer's open-source AI harness for creating and managing anything online with AI, plugins like this one included. It is free on [GitHub](https://github.com/marcusquinn/aidevops). + +## License + +GPL-2.0-or-later. diff --git a/RELEASING.md b/RELEASING.md new file mode 100644 index 0000000..e9b4df5 --- /dev/null +++ b/RELEASING.md @@ -0,0 +1,130 @@ +# Releasing + +How every plugin made from the wpallstars starter plugin is released. This +file is the same in each of them (names as placeholders: `STANDARDS.md` +lists them, and the plugin's `AGENTS.md` gives its values). The plugin's own +submission state and guideline review: `LAUNCH.md`. + +Releases on GitHub and the WordPress.org submission need the owner's say. +None of the scripts below tags, publishes, uploads or commits anything. + +## Scripts + +| Script | What it does | +|--------|--------------| +| `scripts/build-release.sh [--ref REF] [--out DIR]` | Builds both zips from a Git ref (default `HEAD`) into `dist/` (gitignored), with `SHA256SUMS`. Files come from Git, never the working tree. | +| `scripts/preflight-release.sh [--ref REF] [--strict] [--offline]` | Checks versions, headers, readme, both zips (layout, development files, PHP 7.4 and JS syntax, updater code), remote assets, presets and starter data where the plugin has them, and the Git tag. Errors stop a release; `--strict` also fails on warnings, for a WordPress.org submission. | +| `scripts/plugin-check.sh [--ref REF] [--zip FILE]` | Runs Plugin Check on both zips in a disposable WordPress in Docker, then removes it. | + +The two builds of each version: + +| Zip | Contents | Goes to | +|-----|----------|---------| +| `{slug}-X.Y.Z.zip` | Files in Git, less `.distignore` | GitHub release asset | +| `wordpress-org-{slug}-X.Y.Z.zip` | The same, less `.distignore-wporg` (the GitHub updater) and the `GitHub Plugin URI`, `Primary Branch` and `Release Asset` header lines | WordPress.org only | + +Sites install the release asset whose name starts with `{slug}` (the shared +GitHub updater, and Git Updater where it is still active), so the +WordPress.org zip is named differently and must never be attached to a +GitHub release. + +Plugin Check reports the GitHub updater as an updater +(`plugin_updater_detected`, `update_modification_detected`, and +`OffloadedContent` for its raw.githubusercontent.com address) and its shared +`wpallstars_` names as unprefixed, in the GitHub zip; `scripts/plugin-check.sh` +lists those as expected there and fails on the updater findings in the +WordPress.org zip. + +## GitHub release + +1. In a pull request, set the version in `{slug}.php` (`Version:` and + `{PREFIX}_VERSION`) and `readme.txt` (`Stable tag:`), rename the + changelog's Unreleased section to the version in `readme.txt`, + `changelog.txt` and `README.md`, and add an upgrade notice if people need + to act. `readme.txt` keeps only the newest version, in short, and must stay + under 10 KB; `changelog.txt` keeps every version in full. + Numbers only (`1.2.3`): sites still on Git Updater offer a `Version:` on + `main` to every site, and the shared updater skips tags with letters. +2. On the pull request's branch: `scripts/preflight-release.sh` (no errors) and + `scripts/plugin-check.sh` (no errors). +3. Merge, then straight away: + + ```bash + git fetch origin + scripts/preflight-release.sh --ref origin/main # no errors before tagging + git tag -a vX.Y.Z origin/main -m "{Name} X.Y.Z" + scripts/build-release.sh --ref vX.Y.Z + git push origin vX.Y.Z + gh release create vX.Y.Z dist/{slug}-X.Y.Z.zip --title "{Name} X.Y.Z" --notes-file + ``` + + Sites with the shared updater see the release when they next check. + Sites still on Git Updater are offered the `Version:` on `main` before the + release exists, so do this in the same sitting as the merge. +4. Check the release has exactly one asset, `{slug}-X.Y.Z.zip`, and on a + site with the previous version that **Check again** on the Updates screen + shows the update and that it installs. + +Sites read the repository without signing in, so it must be public for sites +to get updates. While it is private, a test site can use a read-only token +in `WPALLSTARS_GITHUB_TOKEN` (`wp-config.php`; it serves every plugin with +the shared updater). Making it public needs the owner's say; do the quality +sweep in `DEVELOPMENT.md` → At public launch in the same step. + +## WordPress.org + +Guidelines: [Detailed Plugin Guidelines](https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/), +[Planning, submitting and maintaining](https://developer.wordpress.org/plugins/wordpress-org/planning-submitting-and-maintaining-plugins/), +[Plugin readmes](https://developer.wordpress.org/plugins/wordpress-org/how-your-readme-txt-works/), +[Plugin assets](https://developer.wordpress.org/plugins/wordpress-org/plugin-assets/), +[Using Subversion](https://developer.wordpress.org/plugins/wordpress-org/how-to-use-subversion/). + +Before submitting, work through the plugin's `LAUNCH.md`: what +`scripts/preflight-release.sh --strict` still reports, and a review of the +code against each guideline (no code from elsewhere, external services, +scripts and styles shipped with the plugin, links, admin notices, defaults, +files outside the plugin folder, uninstall, GPL, name and trademarks, a +complete plugin). + +### Submitting + +1. `scripts/build-release.sh --ref vX.Y.Z` (a version already released on + GitHub), then `scripts/preflight-release.sh --ref vX.Y.Z --strict` passes, + or every warning is accepted. +2. `scripts/plugin-check.sh --ref vX.Y.Z` reports no errors; read every + warning. +3. Test the WordPress.org zip on a clean site (latest WordPress and 6.2 with + PHP 7.4), with `WP_DEBUG` on: activate, turn each feature on and off, + deactivate, delete. `debug.log` stays empty. +4. Signed in as the owner's WordPress.org account, upload + `dist/wordpress-org-{slug}-X.Y.Z.zip` at + [Add your plugin](https://wordpress.org/plugins/developers/add/), and ask + for the `{slug}` slug in the notes. +5. Review takes about 1 to 10 business days. Reply to the reviewer's email + from the same account; fix issues in the repository, not in a copy. + +### After approval (Subversion) + +The SVN repository is `https://plugins.svn.wordpress.org/{slug}/` (or the +slug given). It is for releases only, not development. The SVN password is +separate from the account password and is set on the WordPress.org profile +(see Using Subversion). Install Subversion first (`brew install subversion`). + +1. Check out the empty repository: `svn co https://plugins.svn.wordpress.org/{slug}/ svn-{slug}`. +2. Unzip the WordPress.org build's `{slug}/` folder into `trunk/` (no zip + files in SVN), `svn add` new files, `svn rm` removed ones. +3. Copy trunk to the tag: `svn cp trunk tags/X.Y.Z`. `Stable tag:` in + `trunk/readme.txt` and `tags/X.Y.Z/readme.txt` must be `X.Y.Z`; never + `trunk`. +4. Put the banners, icons and screenshots in `assets/`. +5. `svn ci -m "Release X.Y.Z"`, then check the plugin page and download. +6. Consider release confirmation emails (Plugin Handbook → Release + Confirmation Emails), so a release goes out only after it is confirmed. + +Each later WordPress.org release: build from the tag that is already on GitHub, +`--strict` preflight, Plugin Check, then steps 2 to 5. Readme-only changes +(such as raising Tested up to) go to trunk and the current tag. + +Once listed, sites with the GitHub build update from WordPress.org, unless +the plugin returns true from `wpallstars_github_updater_early` (a setting +such as Early updates from GitHub), which keeps them on GitHub releases. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..75cc438 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,37 @@ +# Security policy + +## Supported versions + +Security fixes go into the latest release only. Update to it before +reporting, and check that the problem is still there. + +## Reporting a vulnerability + +Please do not open a public issue, pull request or discussion for a +security problem. + +Report it privately on GitHub: open the repository's **Security** tab and +choose **Report a vulnerability**. Include: + +- the WP Plugin Starter version, and whether it came from GitHub or + WordPress.org; +- the WordPress and PHP versions; +- the feature involved and the settings needed; +- steps to reproduce it, and what an attacker gains (for example, which + role they need and what they can then read or change). + +We reply within 30 days, agree a fix and a date with you, and credit you in +the changelog unless you would rather not be named. If it is urgent (for +example, it is already being used against sites), report it on GitHub and +also email security@evergreen.je with a link to the report. Follow-up +emails are welcome. + +## Scope + +In scope: the code in this repository, as installed from a GitHub release +or WordPress.org. + +Out of scope: other plugins, themes and services that WP Plugin Starter +recommends, links to or works with (report those to their makers), and +problems that need an administrator account, since administrators can +already run code on their site. diff --git a/STANDARDS.md b/STANDARDS.md new file mode 100644 index 0000000..7df23c3 --- /dev/null +++ b/STANDARDS.md @@ -0,0 +1,278 @@ +# Plugin standards + +Rules every plugin made from the wpallstars starter plugin follows. This file +is the same in each of them: the starter holds the master copy, so a lesson +learned in one plugin goes into the starter's copy and then to every plugin +(`scripts/sync-core.sh` shows the differences). Never put rules for one +plugin here; they go in its `AGENTS.md`. + +Names below are placeholders. Each plugin's `AGENTS.md` gives its values: + +| Placeholder | Meaning | Example | +|---|---|---| +| `{slug}` | Folder, main file and text domain | `my-plugin` | +| `{prefix}` | Option, hook, function and file prefix: `{PREFIX}` in lower case | `myplugin` | +| `{Prefix}` | Class prefix (`@package`) | `MyPlugin` | +| `{PREFIX}` | Constant prefix | `MYPLUGIN` | +| `{Name}` | Plugin name | My Plugin | +| `{css}` | CSS class and data attribute prefix (`{css}-card`, `data-{css}-setting`) | `mp` | + +Minimums: **WordPress 6.2, PHP 7.4** (`readme.txt`, plugin header). +How changes are made and checked: `DEVELOPMENT.md`. Releases: `RELEASING.md`. + +## Structure + +- Core files are listed in `scripts/core-files.txt`: the feature registry + (`includes/class-{prefix}.php`), the base feature + (`includes/class-{prefix}-feature.php`), the settings store + (`includes/class-{prefix}-settings.php`), the admin screen and Read Me tab + (`admin/`), the shared GitHub updater (`includes/github-updater/`), the + scripts, the CI workflow and tool configuration, and the shared docs (this + file, `DEVELOPMENT.md`, `RELEASING.md`, `CONTRIBUTING.md`, `SECURITY.md`). + A plugin's copy differs from the starter's only in the names above. They + hold no code for one plugin: they read `{Prefix}_Setup` + (`includes/class-{prefix}-setup.php`: features, settings tabs, header + links, settings version and history, the plugin's own helpers and admin + parts) or use hooks (`{prefix}_admin_tabs` for tabs, + `{prefix}_admin_enqueue` for the plugin's own admin CSS and JS, + `scripts/preflight-plugin.sh` for its own release checks). Anything only + one plugin needs goes there, in a feature, or in its own file loaded from + there. To change a core file, change the starter first, then run + `scripts/sync-core.sh` in each plugin; `scripts/sync-core.sh --check` lists + core files that differ. A new plugin starts as a copy of the starter + renamed with `scripts/rename-plugin.sh`. +- One class per feature in `includes/features/`, extending `{Prefix}_Feature`, + registered in `{Prefix}_Setup::FEATURES`. Features some builds leave out + go in `{Prefix}_Setup::OPTIONAL_FEATURES` and load only when present. +- `settings()` declares the schema; the admin screen renders, searches and + saves it with no extra code. Field types and keys: `README.md` → Developers. +- `boot()` returns early unless `self::enabled()`. Features are **off by + default**; the plugin's `AGENTS.md` lists any the owner asked to be on. + Turning another feature on by default needs the owner's say. +- A feature that replaces another plugin sets `'replaces' => array(slug => name)` + and imports that plugin's settings in `migrate()` with + `self::import_setting()` (fills only unset keys). It never writes or + deletes the other plugin's options. While that plugin is active the + feature waits, and the Plugins screen suggests deactivating and deleting + it (`admin/includes/class-replaced-plugins.php`) with no extra code. +- Migrations run once per `{Prefix}_Setup::DB_VERSION`. After a release, a + new or changed import needs a version bump and a line in its docblock. +- New options, post meta, user meta, transients, cron hooks and files must be + removed in `uninstall.php`. +- `README.md` is also the plugin's Read Me tab + (`admin/includes/class-readme-manager.php`), which renders headings, lists, + tables, bold, italic, inline code, links (http(s) and `#heading` links, + with GitHub-style heading IDs) and images from the plugin folder on a line + of their own (`![alt](admin/images/banner.svg)`). Use only that Markdown, + or extend the renderer in the same change. +- Update `README.md` (feature section, hooks, changelog), `changelog.txt` + (the user-facing changelog entry) and `readme.txt` in the same change. + `readme.txt` must stay under 10 KB for WordPress.org: one short line per + feature, every service the plugin contacts under External services, and + only the newest version's changelog, in short. Details go in `README.md`. +- `.distignore` lists files kept out of the release zip. Add new + development-only files there (the preflight fails when a known one gets in), + then check the build with Plugin Check. + +## Code rules + +- PHP 7.4 syntax and WordPress 6.2 APIs. Guard newer core APIs with + `function_exists()` or `method_exists()`. +- Capability and nonce checks on every admin action and AJAX handler; escape on + output; sanitise through the schema. +- Prefix everything global with `{prefix}_`, `{Prefix}_` or `{PREFIX}_`. The + shared GitHub updater is the one exception: its `wpallstars_` names are the + same in every plugin, so that one copy can stand in for the others. +- Admin copy: short, plain words, sentence case, no jargon. +- Decide for the user. Within a feature, the plugin makes the choices + (which plugins, screens or items it applies to) from what it can detect. + Settings are there to bypass something that causes a problem, not choices + people need to understand first. A new setting must earn its place; + prefer detecting the right behaviour plus a short bypass list. +- Site owner in control, performance first: the owner decides what their site + sends, contacts and shows. Calls to outside services are opt-in where they + are not the point of the feature, made only as often and for as long as + needed (cache answers, never on every page load), and never block a + visitor's page when they can run later. Features that rein in other + plugins hand the choice to the owner instead of deciding for them. + WordPress update checks and downloads are the exception: leave them alone + (next rule). +- Do not change WordPress update behaviour (update transients, `auto_update_*` + filters, update checks) outside the shared GitHub updater. Plugin Check + reports `plugin_updater_detected` as an error, and WordPress.org asks plugins + not to interfere with the updater. +- Leave no PHP errors, warnings, notices or deprecations behind. Fix any that + the plugin causes as you find them, in the same change when it is small, + or as a tracked issue. That includes ones in other plugins that only happen + because of this one. Messages that other plugins cause on their own are + theirs: mention them, do not hide them. + +## Updates from GitHub + +The one exception to the update rule, at the owner's request (for speed, +reliability and site owners' control, and because the plugins are released +on GitHub first): the shared GitHub updater in `includes/github-updater/`. +It replaces Git Updater. + +- Every plugin made from the starter carries a copy. Each copy registers its + version from `load.php` when its plugin loads; on `plugins_loaded` only the + newest copy loads, once, and serves every installed plugin with a + `GitHub Plugin URI` header. One update check covers them all. +- It adds GitHub releases of those plugins to core's own update check and + `plugins_api`, and leaves the download, install, auto-updates and rollback + to core. It only adds entries for those plugins; it never removes or blocks + other updates. +- It is the same in every plugin apart from its text domain and `@package`. + Change it in the starter, raise the version in its `load.php`, and copy it + to each plugin. Plugins change what it does only through its filters + (`wpallstars_github_updater_enabled`, `wpallstars_github_updater_early`, + `wpallstars_github_plugins`, `wpallstars_github_token`), never by calling + its class: another plugin's copy may be the one that runs. +- Keep anything that installs or updates code from outside WordPress.org in + that folder (and in a feature listed in `.distignore-wporg`, when a plugin + has a setting for it), because the WordPress.org build leaves them out. +- Never add an `Update URI` header. Tokens for private repositories come only + from `wp-config.php` (`WPALLSTARS_GITHUB_TOKEN`) or the filter, go only to + api.github.com and are never stored. + +## Releases + +GitHub releases are the early channel; WordPress.org gets settled versions. +Sites install the latest GitHub release whose tag is a plain version and the +asset whose name starts with the plugin folder (the shared updater; Git +Updater, where still active, reads `Version:` on `main` instead), so: + +- Publish the GitHub release (tag `vX.Y.Z`, asset `{slug}-X.Y.Z.zip` with a + `{slug}/` folder, built with `.distignore`) straight after the version + change reaches `main`. +- Never put a pre-release version (`-beta1`, `-rc1`) in `Version:` on `main`; + mark test releases as pre-releases on GitHub. +- The WordPress.org build is the release build without the files in + `.distignore-wporg` (the GitHub updater) and the `GitHub Plugin URI`, + `Primary Branch` and `Release Asset` header lines. Its zip is named + `wordpress-org-{slug}-X.Y.Z.zip` so no updater picks it; never attach it + to a GitHub release. +- Any plugin released on GitHub (made from the starter or not) follows the + same pattern: a `GitHub Plugin URI: owner/repo` header (and + `Release Asset: true`), plain version tags, and a `{folder}-X.Y.Z.zip` + asset with a `{folder}/` inside. +- Build both zips with `scripts/build-release.sh`, check them with + `scripts/preflight-release.sh` and `scripts/plugin-check.sh`. None of them + tags, publishes or uploads anything. +- Releasing and submitting to WordPress.org need the owner's say. A private + repository cannot be read by sites without a token + (`WPALLSTARS_GITHUB_TOKEN`). + +Details: `RELEASING.md`; the plugin's own submission state: `LAUNCH.md`. + +## Front-end styling and dark mode + +Block, shortcode and other front-end styles must work with the Kadence Pro +dark mode switcher (and themes that switch palettes the same way). + +- How it switches: Kadence adds `color-switch-dark` or `color-switch-light` to + ``. The dark class sets `color-scheme: dark` and redefines + `--global-palette1`…`15` and `--wp--preset--color--theme-palette-N` **on + ``**. `` stays `color-scheme: light`. Palette 3 is the strongest + text and palette 9 the page background in light mode; dark mode swaps them. +- Use `currentColor`, `inherit`, translucent neutrals (for example + `rgba(127, 127, 127, 0.12)`) or palette variables, never fixed light or dark + colours for text, backgrounds or borders. +- Do not use `@media (prefers-color-scheme)` to follow the site: it tracks the + visitor's system, not the switcher. +- Do not define custom properties on `:root` from palette variables; they + resolve above `` and keep the light values. Read palette variables + where they are used, or define derived ones on the block. +- Preset references (`var:preset|color|theme-palette3`) become CSS variables + with kebab-cased slugs, as core does: `--wp--preset--color--theme-palette-3`. + Use `_wp_to_kebab_case()` in PHP and the same rule in editor JS (a hyphen + between letters and digits, lower case). +- Embedded pages (iframes) do not follow the switcher: they see the visitor's + system setting, and the browser paints their own background behind them, so + they stay readable in both modes. Do not make iframes transparent or tint them. +- Test light and dark with the Kadence theme by toggling the body class (see + Testing, step 5). + +## Testing + +CI (`.github/workflows/ci.yml`) runs the code checks, the release preflight, +Plugin Check and a smoke test on every pull request; details and local +commands: `DEVELOPMENT.md`. + +While a repository is private, CI and review apps only advise: nothing is +required to merge, for speed. Fix failures your change causes before merging; +open an issue for any other failure and merge anyway. Do not turn on branch +protection, required checks or paid reviewers. At public launch (owner's say), +run the full sweep in `DEVELOPMENT.md` → At public launch, which makes the +checks required. + +The checks catch errors, not wrong behaviour, so also verify on real +WordPress: + +1. `scripts/lint.sh` (syntax, ShellCheck, PHPCS, PHPStan; run + `composer install` once). Fix findings in the code; never grow + `phpstan-baseline.neon` or add a `phpcs:ignore` without a reason. +2. The user reviews on one local test site per plugin, shared by every + session and worktree. It shows a **combined preview**: `origin/main` plus + every open pull request from the repository, merged together. Update it + only with the script, from any worktree: + + ```bash + scripts/preview-site.sh # the first run on a clone takes the site: scripts/preview-site.sh "" + scripts/preview-site.sh --dry-run # report what would be included, copy nothing + ``` + + It fetches `origin`, merges each open PR's branch onto `origin/main` in PR + order without touching any checkout, leaves out branches that conflict + (and lists them), copies the result with `.distignore` applied (exactly + what a release build contains), and writes + `/wp-content/{slug}-synced-from.txt` listing what is included. + A lock stops two runs at once. Because every run includes everyone's + pushed work, no session hides another's. + + - **Never** `rsync` your worktree into the shared site: it hides every + other session's work until the next run. Do not use Git hooks either: + they are shared by every worktree and would deploy the wrong checkout. + - Only pushed work with an open PR is included. Before asking the user to + look at unmerged work, push the branch and open a draft PR, then run the + script. It says so if the branch you run it from is missing or has + commits that are not pushed. + - After merging a PR, run the script again, then check that the stamp + lists your merge in `main` before telling the user to look. + - Conflicts only in `changelog.txt`, `readme.txt` or `README.md` do not + leave a branch out: every PR adds lines at the top of the same + changelogs, so each merge to `main` would otherwise drop every other + open PR. The preview keeps both sides' lines there and says so in the + stamp; still merge `origin/main` into your branch before it merges. + - If your branch is left out because it conflicts in other files, merge + `origin/main` into it (or wait for the other PR), push and run the + script again. Tell the user which PRs are left out. + - To check your branch on its own, or for checks the user will not look + at, use a throwaway site of your own (step 4's Docker image on a free + port), which no one else overwrites: + `rsync -a --delete --delete-excluded --exclude-from=.distignore ./ "/wp-content/plugins/{slug}/"`. + - Size every test site, shared or throwaway, as `DEVELOPMENT.md` → Test + site resources says. PHP's defaults fill up and the slowdowns look like + bugs. + +3. Exercise the changed feature through the admin UI or HTTP, and check + the debug log for new messages mentioning `{slug}` or a plugin it affects + (`wp-content/debug.log`, or the file Debug Log Manager writes in + `wp-content/uploads/debug-log-manager/` when it is active). For settings + imports, seed the replaced plugin's options and delete `{prefix}_options` + and `{prefix}_db_version` while the plugin is inactive, then activate it. +4. For changes that touch core APIs, also smoke-test on WordPress 6.2 with + PHP 7.4 (`scripts/smoke-test.sh --wp 6.2 --php 7.4`, or the + `wordpress:php7.4-apache` Docker image with + `wp core download --version=6.2 --force`). +5. For front-end styling, view the page with the Kadence theme in light and + dark mode. Without Kadence Pro, simulate the switcher: print a + `body.color-switch-dark { color-scheme: dark; --global-palette1: …; }` + rule with a dark palette (palette 3 light, palette 9 dark, and the matching + `--wp--preset--color--theme-palette-N: var(--global-paletteN)` lines), then + swap the body class between `color-switch-light` and `color-switch-dark`. + Check text, backgrounds, borders and palette colours chosen in block + settings in both. + +Note: since WordPress 5.6, posts restored from the Bin become drafts. Republish +test posts after bulk-trash tests. diff --git a/admin/css/wpstarter-admin.css b/admin/css/wpstarter-admin.css new file mode 100644 index 0000000..2fdada1 --- /dev/null +++ b/admin/css/wpstarter-admin.css @@ -0,0 +1,848 @@ +/** + * WP Plugin Starter admin screen. + * + * Scoped to .wps-wrap. Uses core admin tokens so the screen follows the + * active admin colour scheme; core buttons, notices and plugin cards keep + * their native styles. Logical properties keep RTL working without a + * separate stylesheet. + */ + +.wps-wrap { + --wps-accent: var(--wp-admin-theme-color, #2271b1); + --wps-accent-dark: var(--wp-admin-theme-color-darker-10, #135e96); + --wps-text: #1d2327; + --wps-muted: #646970; + --wps-border: #dcdcde; + --wps-surface: #fff; + --wps-subtle: #f6f7f7; + --wps-success: #008a20; + --wps-error: #d63638; + --wps-radius: 8px; + --wps-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + --wps-focus: 0 0 0 2px var(--wps-surface), 0 0 0 4px var(--wps-accent); + + margin-block-start: 0; + margin-inline-start: -20px; + margin-inline-end: 0; + color: var(--wps-text); + /* Start below the Screen Options / Notices tabs, so they never narrow the header. */ + clear: both; +} + +.wps-wrap *, +.wps-wrap *::before, +.wps-wrap *::after { + box-sizing: border-box; +} + +/* Header ------------------------------------------------------------- */ + +.wps-header { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 12px 24px; + padding: 14px 24px; + background: var(--wps-surface); + border-block-end: 1px solid var(--wps-border); +} + +.wps-header__brand { + display: flex; + align-items: center; + gap: 10px; +} + +.wps-header__logo { + display: inline-flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + font-size: 20px; + color: #fff; + background: var(--wps-accent); + border-radius: 6px; +} + +.wps-wrap .wps-header__title { + margin: 0; + padding: 0; + font-size: 20px; + font-weight: 600; + line-height: 1.3; +} + +.wps-header__actions { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 8px; + margin-inline-start: auto; +} + +.wps-wrap .wps-header__support { + display: inline-flex; + align-items: center; + gap: 4px; +} + +/* line-height: 1 stops the icon taking the button's taller line height, + which draws the glyph below the middle of its box. */ +.wps-wrap .wps-header__support .dashicons { + width: 18px; + height: 18px; + font-size: 18px; + line-height: 1; +} + +/* Search ------------------------------------------------------------- */ + +/* Stretch, so the field always matches the button's height, whatever + size the admin colour scheme or WordPress version gives buttons. */ +.wps-search { + display: flex; + align-items: stretch; + gap: 6px; +} + +.wps-search__field { + position: relative; + display: flex; + align-items: stretch; +} + +.wps-wrap .wps-search__icon { + position: absolute; + inset-block: 0; + inset-inline-start: 9px; + margin-block: auto; + color: var(--wps-muted); + pointer-events: none; +} + +.wps-wrap .wps-search__input { + width: 260px; + max-width: 100%; + height: auto; + min-height: 30px; + margin: 0; + padding-block: 0; + padding-inline: 34px 10px; + font-size: 14px; + line-height: normal; + color: var(--wps-text); + background: var(--wps-surface); + /* Border and corners stay core's, so they match core buttons in each version. */ + box-shadow: none; + transition: border-color 0.1s ease-in-out, box-shadow 0.1s ease-in-out; +} + +.wps-wrap .wps-search__input::placeholder { + color: var(--wps-muted); + opacity: 1; +} + +.wps-wrap .wps-search__input:hover { + border-color: var(--wps-accent); +} + +.wps-wrap .wps-search__input:focus { + border-color: var(--wps-accent); + box-shadow: 0 0 0 1px var(--wps-accent); + outline: 2px solid transparent; +} + +.wps-wrap .wps-search__field:focus-within .wps-search__icon { + color: var(--wps-accent); +} + +.wps-wrap .wps-search__button { + margin: 0; +} + +.wps-wrap .wps-search__group { + margin: 24px 0 8px; + font-size: 14px; + font-weight: 600; +} + +.wps-wrap .wps-search__group:first-of-type { + margin-block-start: 8px; +} + +/* Navigation --------------------------------------------------------- */ + +.wps-nav { + display: flex; + flex-wrap: wrap; + align-items: stretch; + padding-inline: 12px; + background: var(--wps-surface); + border-block-end: 1px solid var(--wps-border); + overflow-x: auto; +} + +.wps-nav__group { + display: flex; + align-items: stretch; +} + +.wps-nav__group + .wps-nav__group { + margin-inline-start: 8px; + padding-inline-start: 8px; + border-inline-start: 1px solid var(--wps-border); +} + +.wps-nav__tab { + display: inline-flex; + align-items: center; + padding: 14px 12px 11px; + font-size: 14px; + font-weight: 500; + color: var(--wps-muted); + text-decoration: none; + white-space: nowrap; + border-block-end: 3px solid transparent; + transition: color 0.1s ease, border-color 0.1s ease; +} + +.wps-nav__tab:hover { + color: var(--wps-text); +} + +.wps-nav__tab:focus { + outline: none; + box-shadow: none; +} + +.wps-nav__tab:focus-visible { + outline: 2px solid var(--wps-accent); + outline-offset: -4px; + border-radius: 4px; +} + +.wps-nav__tab.is-active { + color: var(--wps-text); + font-weight: 600; + border-block-end-color: var(--wps-accent); +} + +/* Main --------------------------------------------------------------- */ + +.wps-wrap > .notice, +.wps-wrap > div.updated, +.wps-wrap > div.error { + margin: 16px 24px 0; +} + +.wps-main { + max-width: 1200px; + padding: 24px; +} + +.wps-section { + max-width: 860px; +} + +.wps-section__intro { + margin-block-end: 16px; +} + +.wps-wrap .wps-section__title { + margin: 0 0 4px; + font-size: 18px; + font-weight: 600; +} + +.wps-section__desc, +.wps-section__hint { + margin: 0; + color: var(--wps-muted); +} + +.wps-section__hint { + margin-block-start: 4px; + font-size: 12px; +} + +/* Cards -------------------------------------------------------------- */ + +.wps-card { + background: var(--wps-surface); + border: 1px solid var(--wps-border); + border-radius: var(--wps-radius); + box-shadow: var(--wps-shadow); +} + +.wps-cards { + display: grid; + gap: 12px; +} + +/* A settings tab with nothing in it yet. */ +.wps-empty { + padding: 16px 20px; + color: var(--wps-muted); +} + +.wps-empty p { + margin: 0; +} + +.wps-badge { + display: inline-block; + padding: 2px 8px; + font-size: 11px; + font-weight: 500; + line-height: 1.6; + color: var(--wps-muted); + vertical-align: middle; + background: var(--wps-subtle); + border: 1px solid var(--wps-border); + border-radius: 999px; +} + +.wps-badge--success { + color: #00450c; + background: #edfaef; + border-color: #b8e6bf; +} + +/* Setting cards ------------------------------------------------------ */ + +/* Clip the header hover and panel backgrounds to the rounded corners. */ +.wps-setting { + position: relative; + overflow: hidden; +} + +/* "On" stripe drawn above the header/panel backgrounds so hover never hides it. */ +.wps-setting::before { + content: ""; + position: absolute; + z-index: 1; + inset-block: 0; + inset-inline-start: 0; + width: 3px; + background: var(--wps-accent); + opacity: 0; + pointer-events: none; + transition: opacity 0.15s ease; +} + +.wps-setting.is-on::before { + opacity: 1; +} + +.wps-setting__header { + display: grid; + grid-template-columns: auto 1fr auto; + align-items: center; + gap: 16px; + padding: 16px 20px; +} + +.wps-setting.has-panel .wps-setting__header { + cursor: pointer; +} + +.wps-setting.has-panel .wps-setting__header:hover { + background: #fcfcfc; +} + +.wps-setting__text { + min-width: 0; +} + +/* Status sits beside the title so showing/hiding it never reflows the description. */ +.wps-setting__title-row { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 4px 10px; + min-height: 20px; +} + +.wps-setting__title { + font-size: 14px; + font-weight: 600; +} + +.wps-setting__desc { + margin: 2px 0 0; + color: var(--wps-muted); +} + +.wps-replaces { + margin: 4px 0 0; + font-size: 12px; + color: var(--wps-muted); +} + +.wps-replaces__active { + color: #996800; +} + +.wps-wrap .wps-setting__expand { + display: inline-flex; + align-items: center; + gap: 4px; + padding: 6px 8px; + color: var(--wps-accent); + text-decoration: none; + border-radius: 4px; +} + +.wps-wrap .wps-setting__expand:hover { + background: var(--wps-subtle); +} + +.wps-wrap .wps-setting__expand:focus-visible { + outline: none; + box-shadow: var(--wps-focus); +} + +.wps-setting__expand .dashicons { + transition: transform 0.15s ease; +} + +.wps-setting__expand[aria-expanded="true"] .dashicons { + transform: rotate(180deg); +} + +.wps-setting__panel { + padding: 4px 20px 8px; + border-block-start: 1px solid var(--wps-border); + background: #fcfcfc; +} + +.wps-setting__panel[hidden] { + display: none; +} + +/* Status a feature prints above its options (wpstarter_setting_panel). */ +.wps-panel-note { + padding: 12px 0; + border-block-end: 1px solid #f0f0f1; + color: var(--wps-muted); +} + +.wps-panel-note p { + margin: 0 0 6px; +} + +.wps-panel-note p:last-child { + margin-block-end: 0; +} + +.wps-panel-note--warning { + color: #1d2327; +} + +.wps-panel-note--warning p::before { + content: "\f534"; + margin-inline-end: 6px; + font: 16px/1 dashicons; + vertical-align: -3px; + color: #dba617; +} + +.wps-media__preview { + flex: none; + width: 64px; + height: 64px; + object-fit: contain; + background: repeating-conic-gradient(#f0f0f1 0% 25%, #fff 0% 50%) 0 0 / 16px 16px; + border: 1px solid var(--wps-border); + border-radius: 4px; +} + +.wps-code { + max-width: 100%; + margin: 6px 0 0; + padding: 10px 12px; + overflow-x: auto; + font-size: 12px; + line-height: 1.5; + color: #1d2327; + background: #f6f7f7; + border: 1px solid var(--wps-border); + border-radius: 4px; + white-space: pre; +} + +/* Fields ------------------------------------------------------------- */ + +.wps-field { + display: grid; + grid-template-columns: 200px 1fr; + gap: 8px 24px; + padding: 16px 0; +} + +.wps-field + .wps-field { + border-block-start: 1px solid #f0f0f1; +} + +.wps-field__label { + padding-block-start: 6px; + font-weight: 600; +} + +.wps-field__control .description { + margin-block-start: 6px; +} + +.wps-field__unit { + color: var(--wps-muted); +} + +.wps-field__control textarea.large-text { + max-width: 480px; +} + +.wps-media { + display: flex; + flex-wrap: wrap; + gap: 8px 12px; + align-items: center; +} + +.wps-media__preview[hidden], +.wps-media__remove[hidden] { + display: none; +} + +.wps-checkboxes { + display: flex; + flex-wrap: wrap; + gap: 6px 20px; + margin: 0; + padding: 6px 0 0; + border: 0; +} + +.wps-checkbox { + display: inline-flex; + align-items: center; + gap: 6px; +} + +/* Long lists, such as every active plugin: columns that scroll. */ +.wps-checkboxes.is-long { + display: block; + max-height: 320px; + overflow-y: auto; + columns: 16em auto; + column-gap: 20px; + padding: 6px 8px; + border: 1px solid #dcdcde; + border-radius: 4px; +} + +.wps-checkboxes.is-long .wps-checkbox { + display: flex; + align-items: flex-start; + margin-block-end: 6px; + break-inside: avoid; +} + +.wps-checkboxes.is-long .wps-checkbox input { + margin-block-start: 2px; +} + +.wps-checkboxes__all { + display: block; + margin-block-end: 4px; +} + +.wps-tokens { + display: block; + margin-block-start: 6px; +} + +.wps-wrap .wps-token { + margin: 2px 4px 2px 0; + padding: 0; + cursor: pointer; + background: none; + border: 0; +} + +.wps-token code { + display: inline-block; + padding: 1px 6px; + font-size: 12px; + background: var(--wps-subtle); + border: 1px solid var(--wps-border); + border-radius: 4px; +} + +.wps-token:hover code, +.wps-token:focus-visible code { + color: var(--wps-accent); + border-color: var(--wps-accent); +} + +.wps-token:focus { + outline: none; +} + +/* Switch ------------------------------------------------------------- */ + +.wps-switch { + position: relative; + display: inline-block; + flex: none; + width: 36px; + height: 20px; + vertical-align: middle; +} + +.wps-wrap .wps-switch__input { + position: absolute; + inset: 0; + z-index: 1; + width: 100%; + height: 100%; + margin: 0; + cursor: pointer; + opacity: 0; +} + +.wps-switch__track { + position: absolute; + inset: 0; + background: #fff; + border: 1px solid #1e1e1e; + border-radius: 999px; + transition: background-color 0.15s ease, border-color 0.15s ease; +} + +.wps-switch__track::after { + content: ""; + position: absolute; + inset-block-start: 3px; + inset-inline-start: 3px; + width: 12px; + height: 12px; + background: #1e1e1e; + border-radius: 50%; + transition: transform 0.15s ease, background-color 0.15s ease; +} + +.wps-switch__input:checked + .wps-switch__track { + background: var(--wps-accent); + border-color: var(--wps-accent); +} + +.wps-switch__input:checked + .wps-switch__track::after { + background: #fff; + transform: translateX(16px); +} + +[dir="rtl"] .wps-switch__input:checked + .wps-switch__track::after { + transform: translateX(-16px); +} + +.wps-switch__input:focus-visible + .wps-switch__track { + box-shadow: var(--wps-focus); +} + +.wps-switch__input:disabled + .wps-switch__track { + opacity: 0.5; +} + +/* Save status -------------------------------------------------------- */ + +.wps-status { + display: inline-flex; + align-items: center; + gap: 4px; + min-height: 20px; + font-size: 12px; + color: var(--wps-muted); + white-space: nowrap; +} + +.wps-field__control .wps-status { + margin-inline-start: 8px; +} + +.wps-status.is-saving::before { + content: ""; + width: 12px; + height: 12px; + border: 2px solid var(--wps-border); + border-block-start-color: var(--wps-accent); + border-radius: 50%; + animation: wps-spin 0.8s linear infinite; +} + +.wps-status.is-saved { + color: var(--wps-success); +} + +.wps-status.is-saved::before { + content: "\f147"; + font: normal 18px/1 dashicons; +} + +.wps-status.is-error { + color: var(--wps-error); + white-space: normal; +} + +@keyframes wps-spin { + to { + transform: rotate(360deg); + } +} + +/* Read Me ------------------------------------------------------------ */ + +.wps-readme { + max-width: 820px; + padding: 24px 32px; + font-size: 14px; + line-height: 1.65; +} + +.wps-readme-image { + margin: 0 0 16px; +} + +.wps-readme-image img { + display: block; + max-width: 100%; + height: auto; + border-radius: var(--wps-radius); +} + +/* The banner at the top of README.md fills the top of the card. */ +.wps-readme > .wps-readme-image:first-child { + margin: -24px -32px 24px; +} + +.wps-readme > .wps-readme-image:first-child img { + width: 100%; + border-radius: calc(var(--wps-radius) - 1px) calc(var(--wps-radius) - 1px) 0 0; +} + +.wps-wrap .wps-readme h2 { + margin: 0 0 8px; + font-size: 22px; +} + +.wps-wrap .wps-readme h3 { + margin: 24px 0 8px; + padding-block-start: 16px; + font-size: 16px; + border-block-start: 1px solid #f0f0f1; +} + +.wps-wrap .wps-readme h4 { + margin: 16px 0 6px; + font-size: 14px; +} + +.wps-readme ul, +.wps-readme ol { + margin: 8px 0 12px; + padding-inline-start: 22px; +} + +.wps-readme ul { + list-style: disc; +} + +.wps-readme ol { + list-style: decimal; +} + +.wps-readme-table { + margin: 8px 0 16px; + overflow-x: auto; +} + +.wps-readme table { + border-collapse: collapse; + font-size: 13px; + line-height: 1.5; +} + +.wps-readme th, +.wps-readme td { + padding: 6px 10px; + text-align: start; + vertical-align: top; + border: 1px solid rgba(127, 127, 127, 0.25); +} + +.wps-readme th { + background: rgba(127, 127, 127, 0.08); +} + +/* Responsive --------------------------------------------------------- */ + +@media screen and (max-width: 782px) { + .wps-wrap { + margin-inline-start: -10px; + } + + .wps-header, + .wps-main { + padding-inline: 12px; + } + + .wps-nav { + flex-wrap: nowrap; + } + + /* Brand and website link on the first row, search across the second. */ + .wps-search { + order: 1; + flex: 1 1 100%; + min-width: 0; + } + + .wps-search__field { + flex: 1 1 0; + min-width: 0; + } + + .wps-wrap .wps-search__input { + flex: 1 1 0; + width: auto; + min-width: 0; + min-height: 40px; + font-size: 16px; + } + + .wps-search .button { + flex-shrink: 0; + } + + .wps-setting__header { + grid-template-columns: auto 1fr; + } + + .wps-setting__expand { + grid-column: 2; + justify-self: start; + } + + .wps-field { + grid-template-columns: 1fr; + } +} + +@media (prefers-reduced-motion: reduce) { + .wps-wrap *, + .wps-wrap *::before, + .wps-wrap *::after { + transition: none !important; + animation: none !important; + } +} diff --git a/admin/data/readme.php b/admin/data/readme.php new file mode 100644 index 0000000..80f48a1 --- /dev/null +++ b/admin/data/readme.php @@ -0,0 +1,30 @@ + __('Read Me', 'wp-plugin-starter-template'), + 'content' => $content, + ); +} diff --git a/admin/images/banner.svg b/admin/images/banner.svg new file mode 100644 index 0000000..d76298e --- /dev/null +++ b/admin/images/banner.svg @@ -0,0 +1,434 @@ + + + + + WPALLSTARS WP Plugin Starter: Built with AI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/admin/includes/class-admin-manager.php b/admin/includes/class-admin-manager.php new file mode 100644 index 0000000..a5a890d --- /dev/null +++ b/admin/includes/class-admin-manager.php @@ -0,0 +1,360 @@ + + */ + public static function settings_tabs() { + return WPStarter_Setup::settings_tabs(); + } + + /** + * Registered tabs. + * + * @return array + */ + public static function get_tabs() { + $tabs = array(); + + // Settings tabs without settings are hidden (they can be filled via + // the schema filter). With no settings at all, the first tab shows + // and says so, so a new plugin still has a settings screen. + $settings_tabs = self::settings_tabs(); + $has_settings = false; + foreach (array_keys($settings_tabs) as $slug) { + if (WPStarter_Settings::fields_for_tab($slug)) { + $has_settings = true; + break; + } + } + foreach ($settings_tabs as $slug => $tab) { + if ($has_settings && !WPStarter_Settings::fields_for_tab($slug)) { + continue; + } + if (!$has_settings && $tabs) { + break; + } + $tabs[$slug] = array( + 'label' => $tab['label'], + 'group' => 'settings', + 'render' => function () use ($slug, $tab) { + WPStarter_Settings_Manager::render_tab($slug, $tab['label'], $tab['description']); + }, + ); + } + + $tabs += array( + 'readme' => array( + 'label' => __('Read Me', 'wp-plugin-starter-template'), + 'group' => 'about', + 'render' => array('WPStarter_Readme_Manager', 'display_tab_content'), + ), + ); + + /** + * Filter the admin tabs. + * + * @param array $tabs Tabs keyed by slug: label, group (settings|discover|about), + * render callback, optional capability. + */ + $tabs = (array) apply_filters('wpstarter_admin_tabs', $tabs); + + // Hide tabs the current user cannot use. + return array_filter($tabs, function ($tab) { + return empty($tab['capability']) || current_user_can($tab['capability']); + }); + } + + /** + * Active tab slug, falling back to the first registered tab. + * + * @return string + */ + public static function get_active_tab() { + // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only navigation. + $tab = isset($_GET['tab']) ? sanitize_key(wp_unslash($_GET['tab'])) : ''; + if (self::SEARCH === $tab && '' !== self::search_query()) { + return $tab; + } + + $tabs = self::get_tabs(); + $tab = WPStarter_Settings::resolve_tab($tab); + if (!isset($tabs[$tab])) { + $tab = (string) key($tabs); + } + return $tab; + } + + /** + * Current settings search text. + * + * @return string + */ + public static function search_query() { + // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only search. + $query = isset($_GET['s']) ? sanitize_text_field(wp_unslash($_GET['s'])) : ''; + return trim(function_exists('mb_substr') ? mb_substr($query, 0, 100) : substr($query, 0, 100)); + } + + /** + * URL of a tab. + * + * @param string $tab Tab slug. + * @param array $args Extra query args. + * @return string + */ + public static function tab_url($tab, array $args = array()) { + return add_query_arg(array_merge(array('page' => self::PAGE, 'tab' => $tab), $args), admin_url('options-general.php')); + } + + /** + * Add the Settings link on the Plugins screen. + * + * @param array $links Action links. + * @return array + */ + public static function plugin_action_links($links) { + array_unshift($links, sprintf('%s', esc_url(add_query_arg('page', self::PAGE, admin_url('options-general.php'))), esc_html__('Settings', 'wp-plugin-starter-template'))); + return $links; + } + + /** + * Register Settings → WP Plugin Starter. + */ + public static function register_admin_menu() { + add_options_page( + __('WP Plugin Starter', 'wp-plugin-starter-template'), + __('WP Plugin Starter', 'wp-plugin-starter-template'), + 'manage_options', + self::PAGE, + array(__CLASS__, 'render_settings_page') + ); + } + + /** + * Enqueue the admin stylesheet and script on our screen only. + * + * @param string $hook Current admin page hook. + */ + public static function enqueue_assets($hook) { + if (self::HOOK !== $hook) { + return; + } + + $tab = self::get_active_tab(); + $css = file_exists(WPSTARTER_DIR . 'admin/css/wpstarter-admin.css') ? filemtime(WPSTARTER_DIR . 'admin/css/wpstarter-admin.css') : WPSTARTER_VERSION; + $js = file_exists(WPSTARTER_DIR . 'admin/js/wpstarter-admin.js') ? filemtime(WPSTARTER_DIR . 'admin/js/wpstarter-admin.js') : WPSTARTER_VERSION; + + wp_enqueue_style('wpstarter-admin', WPSTARTER_URL . 'admin/css/wpstarter-admin.css', array('dashicons'), $css); + + /** + * Filter the admin script's dependencies; enqueue what a tab needs. + * + * @param string[] $deps Script handles. + * @param string $tab Active tab. + */ + $deps = (array) apply_filters('wpstarter_admin_script_deps', array('jquery', 'wp-a11y', 'wp-i18n'), $tab); + + if (self::shows_media_field($tab)) { + wp_enqueue_media(); + } + + wp_enqueue_script('wpstarter-admin', WPSTARTER_URL . 'admin/js/wpstarter-admin.js', $deps, $js, true); + wp_set_script_translations('wpstarter-admin', 'wp-plugin-starter-template'); + + /** + * Filter the data the admin script reads (wpstarterAdmin). + * + * @param array $data Script data. + * @param string $tab Active tab. + */ + wp_localize_script('wpstarter-admin', 'wpstarterAdmin', (array) apply_filters('wpstarter_admin_script_data', array( + 'ajaxUrl' => admin_url('admin-ajax.php'), + 'nonce' => wp_create_nonce(WPStarter_Settings::NONCE), + 'tab' => $tab, + 'i18n' => array( + 'saving' => __('Saving…', 'wp-plugin-starter-template'), + 'saved' => __('Saved', 'wp-plugin-starter-template'), + 'saveFailed' => __('Could not save. Please try again.', 'wp-plugin-starter-template'), + 'chooseImage' => __('Choose a picture', 'wp-plugin-starter-template'), + 'useImage' => __('Use this picture', 'wp-plugin-starter-template'), + ), + ), $tab)); + + /** + * Fires after the admin stylesheet and script are enqueued: enqueue + * the plugin's own, depending on 'wpstarter-admin'. + * + * @param string $tab Active tab. + */ + do_action('wpstarter_admin_enqueue', $tab); + } + + /** + * Whether a tab (or the search results) may show a media field, which + * needs the media dialog. + * + * @param string $tab Tab slug. + * @return bool + */ + private static function shows_media_field($tab) { + $schema = WPStarter_Settings::schema(); + foreach ($schema as $field) { + if (!isset($field['type']) || 'media' !== $field['type']) { + continue; + } + if (self::SEARCH === $tab) { + return true; + } + $field_tab = isset($field['tab']) ? $field['tab'] : ''; + if (!$field_tab && isset($field['parent'], $schema[$field['parent']]['tab'])) { + $field_tab = $schema[$field['parent']]['tab']; + } + if ($field_tab === $tab) { + return true; + } + } + return false; + } + + /** + * Render the page chrome and the active tab. + */ + public static function render_settings_page() { + if (!current_user_can('manage_options')) { + return; + } + + $tabs = self::get_tabs(); + $active = self::get_active_tab(); + $links = WPStarter_Setup::header_links(); + $groups = array( + 'settings' => __('Settings', 'wp-plugin-starter-template'), + 'discover' => __('Discover', 'wp-plugin-starter-template'), + 'about' => __('About', 'wp-plugin-starter-template'), + ); + ?> +
    +
    +
    + +

    + +
    + +
    + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + + + + : core's #wpbody already carries role="main". ?> +
    + +
    +
    + +
    + +
    + '; + $list = ''; + } + if ($table) { + $html .= ('head' === $table ? '' : '') . '