From 753c6336be7cc761f9b7873390482d00ed8b9987 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Tue, 23 Jun 2026 12:33:57 -0500 Subject: [PATCH 01/57] chore: sync workflows from Template-Joomla (metadata first-class fields) Pull latest workflow versions from MokoConsulting/Template-Joomla. These use the updated mokocli tools with manifest metadata as first-class fields instead of README FILE INFORMATION blocks. Updated: ci-joomla.yml, pre-release.yml, workflow-sync-trigger.yml Added: version-set.yml Removed: deploy-manual.yml, update-server.yml, composer-publish.yml (superseded by auto-release.yml pipeline) Authored-by: Moko Consulting --- .mokogitea/workflows/ci-joomla.yml | 331 ++++++++++++++++++ .mokogitea/workflows/deploy-manual.yml | 126 ------- .mokogitea/workflows/pre-release.yml | 16 - .../workflows/workflow-sync-trigger.yml | 7 + 4 files changed, 338 insertions(+), 142 deletions(-) delete mode 100644 .mokogitea/workflows/deploy-manual.yml diff --git a/.mokogitea/workflows/ci-joomla.yml b/.mokogitea/workflows/ci-joomla.yml index 727f661..6f184a2 100644 --- a/.mokogitea/workflows/ci-joomla.yml +++ b/.mokogitea/workflows/ci-joomla.yml @@ -164,6 +164,75 @@ jobs: echo "**Manifest validation passed.**" >> $GITHUB_STEP_SUMMARY fi + - name: Update server & packaging checks + continue-on-error: true + run: | + echo "### Update Server & Packaging" >> $GITHUB_STEP_SUMMARY + WARNINGS=0 + + # Find the extension manifest + MANIFEST="" + for XML_FILE in $(find . -maxdepth 2 -name "*.xml" -not -path "./.git/*" -not -path "./vendor/*"); do + if grep -q "/dev/null; then + MANIFEST="$XML_FILE" + break + fi + done + + if [ -z "$MANIFEST" ]; then + echo "No manifest found — skipping." >> $GITHUB_STEP_SUMMARY + else + EXT_TYPE=$(grep -oP ']*\btype="\K[^"]+' "$MANIFEST" | head -1) + + # 1. Check exists and uses MokoGitea update server + if ! grep -q '' "$MANIFEST" 2>/dev/null; then + echo "::warning file=${MANIFEST}::Missing \`\` tag — extension will not receive OTA updates" + echo "- **Missing** \`\` — extension will not receive OTA updates" >> $GITHUB_STEP_SUMMARY + WARNINGS=$((WARNINGS + 1)) + else + SERVER_URL=$(grep -oP ']*>\K[^<]+' "$MANIFEST" 2>/dev/null | head -1) + if [ -z "$SERVER_URL" ]; then + echo "::warning file=${MANIFEST}::\`\` is empty — no server URL defined" + echo "- **Empty** \`\` — no server URL defined" >> $GITHUB_STEP_SUMMARY + WARNINGS=$((WARNINGS + 1)) + elif ! echo "$SERVER_URL" | grep -q 'git\.mokoconsulting\.tech'; then + echo "::warning file=${MANIFEST}::Update server does not use MokoGitea engine: ${SERVER_URL}" + echo "- **Non-MokoGitea update server:** \`${SERVER_URL}\`" >> $GITHUB_STEP_SUMMARY + echo " Expected: \`https://git.mokoconsulting.tech/{org}/{repo}/updates.xml\`" >> $GITHUB_STEP_SUMMARY + WARNINGS=$((WARNINGS + 1)) + else + echo "- \`\`: MokoGitea engine ✓" >> $GITHUB_STEP_SUMMARY + fi + fi + + # 2. Check tag exists + if ! grep -q '/dev/null; then + echo "::warning file=${MANIFEST}::Missing \`\` tag — download ID authentication is not configured" + echo "- **Missing** \`\` — download ID authentication not configured" >> $GITHUB_STEP_SUMMARY + WARNINGS=$((WARNINGS + 1)) + else + echo "- \`\`: present ✓" >> $GITHUB_STEP_SUMMARY + fi + + # 3. For packages: check tag + if [ "$EXT_TYPE" = "package" ]; then + if ! grep -q '' "$MANIFEST" 2>/dev/null; then + echo "::warning file=${MANIFEST}::Package is missing \`\` — child extensions will not be removed on uninstall" + echo "- **Missing** \`\` — child extensions will remain when package is uninstalled" >> $GITHUB_STEP_SUMMARY + WARNINGS=$((WARNINGS + 1)) + else + echo "- \`\`: present ✓" >> $GITHUB_STEP_SUMMARY + fi + fi + fi + + echo "" >> $GITHUB_STEP_SUMMARY + if [ "$WARNINGS" -gt 0 ]; then + echo "**${WARNINGS} packaging warning(s).** These won't block CI but should be addressed." >> $GITHUB_STEP_SUMMARY + else + echo "**Update server & packaging checks passed.**" >> $GITHUB_STEP_SUMMARY + fi + - name: Check language files referenced in manifest run: | echo "### Language File Check" >> $GITHUB_STEP_SUMMARY @@ -647,6 +716,268 @@ jobs: echo "**Service provider check passed.**" >> $GITHUB_STEP_SUMMARY fi + - name: Script file reference check + run: | + echo "### Script File Reference" >> $GITHUB_STEP_SUMMARY + ERRORS=0 + + MANIFEST="" + for XML_FILE in $(find . -maxdepth 2 -name "*.xml" -not -path "./.git/*" -not -path "./vendor/*"); do + if grep -q "/dev/null; then + MANIFEST="$XML_FILE" + break + fi + done + + if [ -z "$MANIFEST" ]; then + echo "No manifest found — skipping." >> $GITHUB_STEP_SUMMARY + else + MANIFEST_DIR=$(dirname "$MANIFEST") + SCRIPT_FILE=$(grep -oP '\K[^<]+' "$MANIFEST" 2>/dev/null | head -1) + if [ -z "$SCRIPT_FILE" ]; then + echo "No \`\` referenced — skipping." >> $GITHUB_STEP_SUMMARY + elif [ ! -f "${MANIFEST_DIR}/${SCRIPT_FILE}" ]; then + echo "::error file=${MANIFEST}::Manifest references \`${SCRIPT_FILE}\` but file does not exist" + echo "- **Missing** \`${SCRIPT_FILE}\` — referenced in \`\` but not found" >> $GITHUB_STEP_SUMMARY + ERRORS=$((ERRORS + 1)) + else + echo "- \`${SCRIPT_FILE}\`: present ✓" >> $GITHUB_STEP_SUMMARY + fi + fi + + echo "" >> $GITHUB_STEP_SUMMARY + if [ "${ERRORS}" -gt 0 ]; then + echo "**${ERRORS} script file issue(s).**" >> $GITHUB_STEP_SUMMARY + exit 1 + else + echo "**Script file reference check passed.**" >> $GITHUB_STEP_SUMMARY + fi + + - name: Media folder validation + run: | + echo "### Media Folder Validation" >> $GITHUB_STEP_SUMMARY + ERRORS=0 + + MANIFEST="" + for XML_FILE in $(find . -maxdepth 2 -name "*.xml" -not -path "./.git/*" -not -path "./vendor/*"); do + if grep -q "/dev/null; then + MANIFEST="$XML_FILE" + break + fi + done + + if [ -z "$MANIFEST" ]; then + echo "No manifest found — skipping." >> $GITHUB_STEP_SUMMARY + else + MANIFEST_DIR=$(dirname "$MANIFEST") + + # Check tag and its folder/filename children + MEDIA_DEST=$(grep -oP ']*\bdestination="\K[^"]+' "$MANIFEST" 2>/dev/null | head -1) + MEDIA_FOLDER=$(grep -oP ']*\bfolder="\K[^"]+' "$MANIFEST" 2>/dev/null | head -1) + + if [ -z "$MEDIA_DEST" ] && [ -z "$MEDIA_FOLDER" ]; then + echo "No \`\` tag found — skipping." >> $GITHUB_STEP_SUMMARY + else + if [ -n "$MEDIA_FOLDER" ] && [ ! -d "${MANIFEST_DIR}/${MEDIA_FOLDER}" ]; then + echo "::error file=${MANIFEST}::\`\` references missing directory" + echo "- **Missing** media folder \`${MEDIA_FOLDER}\`" >> $GITHUB_STEP_SUMMARY + ERRORS=$((ERRORS + 1)) + else + echo "- Media folder \`${MEDIA_FOLDER:-(inline)}\`: present ✓" >> $GITHUB_STEP_SUMMARY + + # Check child references inside block + if [ -n "$MEDIA_FOLDER" ]; then + MEDIA_FOLDERS=$(sed -n '//p' "$MANIFEST" | grep -oP '\K[^<]+' 2>/dev/null || true) + for F in $MEDIA_FOLDERS; do + if [ ! -d "${MANIFEST_DIR}/${MEDIA_FOLDER}/${F}" ]; then + echo "- **Missing** media subfolder \`${MEDIA_FOLDER}/${F}\`" >> $GITHUB_STEP_SUMMARY + ERRORS=$((ERRORS + 1)) + fi + done + + MEDIA_FILES=$(sed -n '//p' "$MANIFEST" | grep -oP '\K[^<]+' 2>/dev/null || true) + for F in $MEDIA_FILES; do + if [ ! -f "${MANIFEST_DIR}/${MEDIA_FOLDER}/${F}" ]; then + echo "- **Missing** media file \`${MEDIA_FOLDER}/${F}\`" >> $GITHUB_STEP_SUMMARY + ERRORS=$((ERRORS + 1)) + fi + done + fi + fi + fi + fi + + echo "" >> $GITHUB_STEP_SUMMARY + if [ "${ERRORS}" -gt 0 ]; then + echo "**${ERRORS} media reference issue(s).**" >> $GITHUB_STEP_SUMMARY + exit 1 + else + echo "**Media folder validation passed.**" >> $GITHUB_STEP_SUMMARY + fi + + - name: Target platform check + continue-on-error: true + run: | + echo "### Target Platform Check" >> $GITHUB_STEP_SUMMARY + WARNINGS=0 + + MANIFEST="" + for XML_FILE in $(find . -maxdepth 2 -name "*.xml" -not -path "./.git/*" -not -path "./vendor/*"); do + if grep -q "/dev/null; then + MANIFEST="$XML_FILE" + break + fi + done + + if [ -z "$MANIFEST" ]; then + echo "No manifest found — skipping." >> $GITHUB_STEP_SUMMARY + else + # Check updates.xml for targetplatform if it exists + if [ -f "updates.xml" ]; then + if ! grep -q '/dev/null; then + echo "::warning file=updates.xml::No \`\` found — Joomla updater cannot filter by compatible version" + echo "- **Missing** \`\` in updates.xml" >> $GITHUB_STEP_SUMMARY + WARNINGS=$((WARNINGS + 1)) + else + echo "- \`\` in updates.xml: present ✓" >> $GITHUB_STEP_SUMMARY + fi + fi + + # Check manifest for minimum PHP/Joomla version hints + if ! grep -qP '|targetplatform|joomla.*version' "$MANIFEST" 2>/dev/null; then + echo "::warning file=${MANIFEST}::No minimum Joomla or PHP version constraint found in manifest" + echo "- **Missing** version constraints (\`\` or \`\`)" >> $GITHUB_STEP_SUMMARY + WARNINGS=$((WARNINGS + 1)) + else + echo "- Version constraints in manifest: present ✓" >> $GITHUB_STEP_SUMMARY + fi + fi + + echo "" >> $GITHUB_STEP_SUMMARY + if [ "$WARNINGS" -gt 0 ]; then + echo "**${WARNINGS} target platform warning(s).**" >> $GITHUB_STEP_SUMMARY + else + echo "**Target platform check passed.**" >> $GITHUB_STEP_SUMMARY + fi + + - name: Changelog URL check + continue-on-error: true + run: | + echo "### Changelog URL Check" >> $GITHUB_STEP_SUMMARY + WARNINGS=0 + + MANIFEST="" + for XML_FILE in $(find . -maxdepth 2 -name "*.xml" -not -path "./.git/*" -not -path "./vendor/*"); do + if grep -q "/dev/null; then + MANIFEST="$XML_FILE" + break + fi + done + + if [ -z "$MANIFEST" ]; then + echo "No manifest found — skipping." >> $GITHUB_STEP_SUMMARY + else + if ! grep -q '' "$MANIFEST" 2>/dev/null; then + echo "::warning file=${MANIFEST}::Missing \`\` — Joomla updater will not display changelogs" + echo "- **Missing** \`\` — Joomla 4+ shows changelogs in the update manager when this is set" >> $GITHUB_STEP_SUMMARY + WARNINGS=$((WARNINGS + 1)) + else + CHANGELOG_URL=$(grep -oP '\K[^<]+' "$MANIFEST" | head -1) + echo "- \`\`: \`${CHANGELOG_URL}\` ✓" >> $GITHUB_STEP_SUMMARY + fi + fi + + echo "" >> $GITHUB_STEP_SUMMARY + if [ "$WARNINGS" -gt 0 ]; then + echo "**${WARNINGS} changelog URL warning(s).**" >> $GITHUB_STEP_SUMMARY + else + echo "**Changelog URL check passed.**" >> $GITHUB_STEP_SUMMARY + fi + + - name: Duplicate file references check + continue-on-error: true + run: | + echo "### Duplicate File References" >> $GITHUB_STEP_SUMMARY + WARNINGS=0 + + MANIFEST="" + for XML_FILE in $(find . -maxdepth 2 -name "*.xml" -not -path "./.git/*" -not -path "./vendor/*"); do + if grep -q "/dev/null; then + MANIFEST="$XML_FILE" + break + fi + done + + if [ -z "$MANIFEST" ]; then + echo "No manifest found — skipping." >> $GITHUB_STEP_SUMMARY + else + # Extract all and references + ALL_REFS=$(grep -oP '<(filename|folder)[^>]*>\K[^<]+' "$MANIFEST" 2>/dev/null | sort || true) + if [ -z "$ALL_REFS" ]; then + echo "No file/folder references found — skipping." >> $GITHUB_STEP_SUMMARY + else + DUPES=$(echo "$ALL_REFS" | uniq -d) + if [ -n "$DUPES" ]; then + while IFS= read -r DUP; do + COUNT=$(echo "$ALL_REFS" | grep -cx "$DUP") + echo "::warning file=${MANIFEST}::Duplicate reference: \`${DUP}\` appears ${COUNT} times (may be valid if in different sections)" + echo "- **Duplicate:** \`${DUP}\` (${COUNT}x) — check if cross-section" >> $GITHUB_STEP_SUMMARY + WARNINGS=$((WARNINGS + 1)) + done <<< "$DUPES" + else + TOTAL=$(echo "$ALL_REFS" | wc -l) + echo "All ${TOTAL} file/folder references are unique." >> $GITHUB_STEP_SUMMARY + fi + fi + fi + + echo "" >> $GITHUB_STEP_SUMMARY + if [ "$WARNINGS" -gt 0 ]; then + echo "**${WARNINGS} duplicate reference(s) found.** Review for cross-section validity." >> $GITHUB_STEP_SUMMARY + else + echo "**Duplicate file references check passed.**" >> $GITHUB_STEP_SUMMARY + fi + + - name: Empty language keys check + continue-on-error: true + run: | + echo "### Empty Language Keys" >> $GITHUB_STEP_SUMMARY + WARNINGS=0 + + LANG_FILES=$(find . -name "*.ini" -not -path "./.git/*" -not -path "./vendor/*" 2>/dev/null) + if [ -z "$LANG_FILES" ]; then + echo "No .ini language files found — skipping." >> $GITHUB_STEP_SUMMARY + else + TOTAL_FILES=0 + for FILE in $LANG_FILES; do + TOTAL_FILES=$((TOTAL_FILES + 1)) + # Find lines with KEY= but no value (empty or whitespace-only after =) + EMPTY_KEYS=$(grep -nP '^[A-Z_]+=\s*$' "$FILE" 2>/dev/null || true) + if [ -n "$EMPTY_KEYS" ]; then + COUNT=$(echo "$EMPTY_KEYS" | wc -l) + echo "::warning file=${FILE}::${COUNT} empty language key(s)" + echo "- \`${FILE}\`: ${COUNT} empty key(s)" >> $GITHUB_STEP_SUMMARY + while IFS= read -r LINE; do + LINE_NUM=$(echo "$LINE" | cut -d: -f1) + KEY=$(echo "$LINE" | cut -d: -f2 | cut -d= -f1) + echo " - Line ${LINE_NUM}: \`${KEY}\`" >> $GITHUB_STEP_SUMMARY + done <<< "$EMPTY_KEYS" + WARNINGS=$((WARNINGS + COUNT)) + fi + done + + if [ "$WARNINGS" -eq 0 ]; then + echo "All ${TOTAL_FILES} language file(s) have populated keys." >> $GITHUB_STEP_SUMMARY + fi + fi + + echo "" >> $GITHUB_STEP_SUMMARY + if [ "$WARNINGS" -gt 0 ]; then + echo "**${WARNINGS} empty language key(s) across ${TOTAL_FILES} file(s).**" >> $GITHUB_STEP_SUMMARY + else + echo "**Empty language keys check passed.**" >> $GITHUB_STEP_SUMMARY + fi + release-readiness: name: Release Readiness Check runs-on: ubuntu-latest diff --git a/.mokogitea/workflows/deploy-manual.yml b/.mokogitea/workflows/deploy-manual.yml deleted file mode 100644 index 1af323c..0000000 --- a/.mokogitea/workflows/deploy-manual.yml +++ /dev/null @@ -1,126 +0,0 @@ -# Copyright (C) 2026 Moko Consulting -# -# SPDX-License-Identifier: GPL-3.0-or-later -# -# FILE INFORMATION -# DEFGROUP: Gitea.Workflow -# INGROUP: MokoStandards.Deploy -# REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoStandards-API -# PATH: /templates/workflows/joomla/deploy-manual.yml.template -# VERSION: 04.07.00 -# BRIEF: Manual SFTP deploy to dev server for Joomla repos - -name: "Universal: Deploy to Dev (Manual)" - -on: - workflow_dispatch: - inputs: - clear_remote: - description: 'Delete all remote files before uploading' - required: false - default: 'false' - type: boolean - -env: - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - -permissions: - contents: read - -jobs: - deploy: - name: SFTP Deploy to Dev - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - - name: Setup PHP - run: | - php -v && composer --version - - - name: Setup MokoStandards tools - env: - MOKOGITEA_TOKEN: ${{ secrets.MOKOGITEA_TOKEN || github.token }} - MOKO_CLONE_TOKEN: ${{ secrets.MOKOGITEA_TOKEN || github.token }} - MOKO_CLONE_HOST: ${{ secrets.MOKOGITEA_TOKEN && 'git.mokoconsulting.tech/MokoConsulting' || 'github.com/mokoconsulting-tech' }} - COMPOSER_AUTH: '{"github-oauth":{"github.com":"${{ secrets.MOKOGITEA_TOKEN || github.token }}"}}' - run: | - git clone --depth 1 --branch main --quiet \ - "https://x-access-token:${MOKO_CLONE_TOKEN}@${MOKO_CLONE_HOST}/MokoStandards-API.git" \ - /tmp/mokostandards-api 2>/dev/null || true - if [ -d "/tmp/mokostandards-api" ] && [ -f "/tmp/mokostandards-api/composer.json" ]; then - cd /tmp/mokostandards-api && composer install --no-dev --no-interaction --quiet 2>/dev/null || true - fi - - - name: Check FTP configuration - id: check - env: - HOST: ${{ vars.DEV_FTP_HOST }} - PATH_VAR: ${{ vars.DEV_FTP_PATH }} - PORT: ${{ vars.DEV_FTP_PORT }} - run: | - if [ -z "$HOST" ] || [ -z "$PATH_VAR" ]; then - echo "DEV_FTP_HOST or DEV_FTP_PATH not configured -- cannot deploy" - echo "skip=true" >> "$GITHUB_OUTPUT" - exit 0 - fi - echo "skip=false" >> "$GITHUB_OUTPUT" - echo "host=$HOST" >> "$GITHUB_OUTPUT" - - REMOTE="${PATH_VAR%/}" - echo "remote=$REMOTE" >> "$GITHUB_OUTPUT" - - [ -z "$PORT" ] && PORT="22" - echo "port=$PORT" >> "$GITHUB_OUTPUT" - - - name: Deploy via SFTP - if: steps.check.outputs.skip != 'true' - env: - SFTP_KEY: ${{ secrets.DEV_FTP_KEY }} - SFTP_PASS: ${{ secrets.DEV_FTP_PASSWORD }} - SFTP_USER: ${{ vars.DEV_FTP_USERNAME }} - run: | - SOURCE_DIR="src" - [ ! -d "$SOURCE_DIR" ] && SOURCE_DIR="htdocs" - [ ! -d "$SOURCE_DIR" ] && { echo "No src/ or htdocs/ -- nothing to deploy"; exit 0; } - - printf '{"host":"%s","port":%s,"username":"%s","remotePath":"%s"' \ - "${{ steps.check.outputs.host }}" "${{ steps.check.outputs.port }}" "$SFTP_USER" "${{ steps.check.outputs.remote }}" \ - > /tmp/sftp-config.json - - if [ -n "$SFTP_KEY" ]; then - echo "$SFTP_KEY" > /tmp/deploy_key - chmod 600 /tmp/deploy_key - printf ',"privateKeyPath":"/tmp/deploy_key"}' >> /tmp/sftp-config.json - else - printf ',"password":"%s"}' "$SFTP_PASS" >> /tmp/sftp-config.json - fi - - DEPLOY_ARGS=(--path . --src-dir "$SOURCE_DIR" --config /tmp/sftp-config.json) - [ "${{ inputs.clear_remote }}" = "true" ] && DEPLOY_ARGS+=(--clear-remote) - - PLATFORM=$(php /tmp/mokostandards-api/cli/platform_detect.php --path . 2>/dev/null || true) - if [ "$PLATFORM" = "waas-component" ] && [ -f "/tmp/mokostandards-api/deploy/deploy-joomla.php" ]; then - php /tmp/mokostandards-api/deploy/deploy-joomla.php "${DEPLOY_ARGS[@]}" - else - php /tmp/mokostandards-api/deploy/deploy-sftp.php "${DEPLOY_ARGS[@]}" - fi - - rm -f /tmp/deploy_key /tmp/sftp-config.json - - - name: Summary - if: always() - run: | - if [ "${{ steps.check.outputs.skip }}" = "true" ]; then - echo "### Deploy Skipped -- FTP not configured" >> $GITHUB_STEP_SUMMARY - else - echo "### Manual Dev Deploy Complete" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "| Field | Value |" >> $GITHUB_STEP_SUMMARY - echo "|-------|-------|" >> $GITHUB_STEP_SUMMARY - echo "| Host | \`${{ steps.check.outputs.host }}\` |" >> $GITHUB_STEP_SUMMARY - echo "| Remote | \`${{ steps.check.outputs.remote }}\` |" >> $GITHUB_STEP_SUMMARY - echo "| Clear | ${{ inputs.clear_remote }} |" >> $GITHUB_STEP_SUMMARY - fi diff --git a/.mokogitea/workflows/pre-release.yml b/.mokogitea/workflows/pre-release.yml index efb3d1b..9d9f6f9 100644 --- a/.mokogitea/workflows/pre-release.yml +++ b/.mokogitea/workflows/pre-release.yml @@ -93,20 +93,8 @@ jobs: php ${MOKO_CLI}/platform_detect.php --path . --github-output 2>/dev/null || true php ${MOKO_CLI}/manifest_read.php --path . --github-output - - name: Check platform eligibility (Joomla only) - id: eligibility - run: | - PLATFORM="${{ steps.platform.outputs.platform }}" - if [[ "$PLATFORM" == joomla* ]] || [[ "$PLATFORM" == "joomla" ]]; then - echo "proceed=true" >> "$GITHUB_OUTPUT" - else - echo "proceed=false" >> "$GITHUB_OUTPUT" - echo "::notice::Platform '$PLATFORM' — non-Joomla, skipping pre-release auto-bump" - fi - - name: Resolve metadata and bump version id: meta - if: steps.eligibility.outputs.proceed == 'true' run: | # Auto-detect stability from branch name on push, or use input on dispatch if [ "${{ github.event_name }}" = "push" ]; then @@ -183,7 +171,6 @@ jobs: - name: Create release id: release - if: steps.eligibility.outputs.proceed == 'true' run: | TAG="${{ steps.meta.outputs.tag }}" VERSION="${{ steps.meta.outputs.version }}" @@ -194,7 +181,6 @@ jobs: --repo "${GITEA_REPO}" --branch "${{ github.ref_name }}" --prerelease - name: Update release notes from CHANGELOG.md - if: steps.eligibility.outputs.proceed == 'true' run: | TAG="${{ steps.meta.outputs.tag }}" VERSION="${{ steps.meta.outputs.version }}" @@ -231,7 +217,6 @@ jobs: - name: Build package and upload id: package - if: steps.eligibility.outputs.proceed == 'true' run: | VERSION="${{ steps.meta.outputs.version }}" TAG="${{ steps.meta.outputs.tag }}" @@ -245,7 +230,6 @@ jobs: # No need to build, commit, or sync updates.xml from workflows - name: "Delete lesser pre-release channels (cascade)" - if: steps.eligibility.outputs.proceed == 'true' continue-on-error: true run: | API_BASE="${GITEA_URL}/api/v1/repos/${GITEA_ORG}/${GITEA_REPO}" diff --git a/.mokogitea/workflows/workflow-sync-trigger.yml b/.mokogitea/workflows/workflow-sync-trigger.yml index 34891e8..97b8da2 100644 --- a/.mokogitea/workflows/workflow-sync-trigger.yml +++ b/.mokogitea/workflows/workflow-sync-trigger.yml @@ -47,6 +47,13 @@ jobs: echo "platform=$PLATFORM" >> "$GITHUB_OUTPUT" echo "Platform: ${PLATFORM:-all}" + - name: Setup PHP + run: | + if ! command -v php &> /dev/null; then + sudo apt-get update -qq + sudo apt-get install -y -qq php-cli php-mbstring php-xml php-zip php-curl composer >/dev/null 2>&1 + fi + - name: Clone mokocli env: MOKOGITEA_TOKEN: ${{ secrets.MOKOGITEA_TOKEN }} -- 2.52.0 From 97fb560864e333dcfd360e5e695bac8e932e0c48 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Tue, 23 Jun 2026 12:42:06 -0500 Subject: [PATCH 02/57] chore: align version format to MokoStandards XX.YY.ZZ (01.00.00) mokocli tools require two-digit zero-padded version groups (01.00.00) per MokoStandards convention. Fixes auto-release pipeline failure. Changed in: pkg manifest, component manifest, both module manifests, and CHANGELOG.md. Authored-by: Moko Consulting --- CHANGELOG.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5bdd974..1b06b74 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,7 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - CSV import view accessible from admin toolbar and submenu - Language strings for directions, geocoding feedback, and import UI -## [1.0.0] - 2026-06-23 +## [01.00.00] - 2026-06-23 ### Added - Admin `LocationController` (FormController) for single-record save/cancel/apply diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 05789af..64f75dd 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 1.0.0 + 01.00.00 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 25a83c0..8824e10 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 1.0.0 + 01.00.00 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 5594d77..2524e57 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 1.0.0 + 01.00.00 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index a7d7569..2eb71ca 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 1.0.0 + 01.00.00 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 6e2056724087c39278d1a1a12a16a0f722b81849 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Tue, 23 Jun 2026 17:44:39 +0000 Subject: [PATCH 03/57] chore(version): pre-release bump to 01.00.01-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 11958bd..9854dfb 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.00 +# VERSION: 01.00.01 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 9e68438..714711d 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 04.04.01 + VERSION: 01.00.01 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 5a7fba6..3abcc1d 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 04.04.01 +VERSION: 01.00.01 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 64f75dd..3f2dc58 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.00 + 01.00.01 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 8824e10..0568efd 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.00 + 01.00.01 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 2524e57..4d8dd0e 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.00 + 01.00.01 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 2eb71ca..9eac2e4 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.00 + 01.00.01 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From cf495cd8ceff39dd88684cb489834634f848a34e Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Tue, 23 Jun 2026 13:04:09 -0500 Subject: [PATCH 04/57] feat: FocalPoint (Shack Locations) migration import MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add one-click import from installed FocalPoint/Shack Locations component: - Reads #__focalpoint_locations table directly via Joomla DB layer - Parses customfieldsdata JSON for email, website, hours, phone - Maps FocalPoint schema to MokoSuiteStoreLocator fields - Copies coordinates (DECIMAL 10,6 → 10,8), published state, ordering - Combines description + fulldescription into single description field - Import button on admin Import view with CSRF + ACL protection - Graceful handling: checks table exists, reports per-row errors Field mapping: FocalPoint.title → title FocalPoint.address → address (single field, no city/state split) FocalPoint.latitude/longitude → latitude/longitude FocalPoint.phone → phone FocalPoint.customfieldsdata.email → email FocalPoint.customfieldsdata.website → website FocalPoint.customfieldsdata.hours → hours FocalPoint.state → published Authored-by: Moko Consulting --- .../en-GB/com_mokosuitestorelocator.ini | 5 + .../admin/src/Controller/ImportController.php | 41 +++++ .../admin/src/Model/ImportModel.php | 160 ++++++++++++++++++ .../admin/tmpl/import/default.php | 15 ++ 4 files changed, 221 insertions(+) diff --git a/source/packages/com_mokosuitestorelocator/admin/language/en-GB/com_mokosuitestorelocator.ini b/source/packages/com_mokosuitestorelocator/admin/language/en-GB/com_mokosuitestorelocator.ini index 90a0380..3747e74 100644 --- a/source/packages/com_mokosuitestorelocator/admin/language/en-GB/com_mokosuitestorelocator.ini +++ b/source/packages/com_mokosuitestorelocator/admin/language/en-GB/com_mokosuitestorelocator.ini @@ -59,3 +59,8 @@ COM_MOKOJOOMSTORELOCATOR_IMPORT_NO_FILE="No file was uploaded." COM_MOKOJOOMSTORELOCATOR_IMPORT_INVALID_FILE="The uploaded file is not a valid CSV." COM_MOKOJOOMSTORELOCATOR_IMPORT_NO_ROWS="The CSV file contains no data rows." COM_MOKOJOOMSTORELOCATOR_IMPORT_MISSING_TITLE="Row %d: Title is required." + +COM_MOKOJOOMSTORELOCATOR_IMPORT_FP_TITLE="Import from FocalPoint" +COM_MOKOJOOMSTORELOCATOR_IMPORT_FP_DESC="Migrate locations from an installed FocalPoint (Shack Locations) component. Coordinates, custom fields (email, website, hours), and metadata are mapped automatically." +COM_MOKOJOOMSTORELOCATOR_IMPORT_FP_BUTTON="Import FocalPoint Locations" +COM_MOKOJOOMSTORELOCATOR_IMPORT_FP_SUCCESS="%d location(s) imported from FocalPoint." diff --git a/source/packages/com_mokosuitestorelocator/admin/src/Controller/ImportController.php b/source/packages/com_mokosuitestorelocator/admin/src/Controller/ImportController.php index 58585f0..148841f 100644 --- a/source/packages/com_mokosuitestorelocator/admin/src/Controller/ImportController.php +++ b/source/packages/com_mokosuitestorelocator/admin/src/Controller/ImportController.php @@ -84,4 +84,45 @@ class ImportController extends BaseController $this->setRedirect(Route::_('index.php?option=com_mokosuitestorelocator&view=locations', false)); } + + /** + * Import locations from an installed FocalPoint (Shack Locations) component. + * + * @return void + * + * @since 1.1.0 + */ + public function focalpoint(): void + { + Session::checkToken() or jexit(Text::_('JINVALID_TOKEN')); + + if (!Factory::getApplication()->getIdentity()->authorise('core.create', 'com_mokosuitestorelocator')) + { + $this->setMessage(Text::_('JLIB_APPLICATION_ERROR_CREATE_RECORD_NOT_PERMITTED'), 'error'); + $this->setRedirect(Route::_('index.php?option=com_mokosuitestorelocator&view=locations', false)); + + return; + } + + /** @var \Moko\Component\MokoSuiteStoreLocator\Administrator\Model\ImportModel $model */ + $model = $this->getModel('Import', 'Administrator'); + $result = $model->importFromFocalPoint(); + + if ($result['imported'] > 0) + { + $this->setMessage(Text::sprintf('COM_MOKOJOOMSTORELOCATOR_IMPORT_FP_SUCCESS', $result['imported'])); + } + + if ($result['skipped'] > 0) + { + $this->setMessage(Text::sprintf('COM_MOKOJOOMSTORELOCATOR_IMPORT_SKIPPED', $result['skipped']), 'warning'); + } + + foreach ($result['errors'] as $error) + { + $this->setMessage($error, 'error'); + } + + $this->setRedirect(Route::_('index.php?option=com_mokosuitestorelocator&view=locations', false)); + } } diff --git a/source/packages/com_mokosuitestorelocator/admin/src/Model/ImportModel.php b/source/packages/com_mokosuitestorelocator/admin/src/Model/ImportModel.php index e859cb1..cb2177e 100644 --- a/source/packages/com_mokosuitestorelocator/admin/src/Model/ImportModel.php +++ b/source/packages/com_mokosuitestorelocator/admin/src/Model/ImportModel.php @@ -211,4 +211,164 @@ class ImportModel extends BaseDatabaseModel return $data; } + + /** + * Import locations from an installed FocalPoint (Shack Locations) component. + * + * Reads directly from #__focalpoint_locations and #__focalpoint_locationtypes + * tables and inserts into #__mokosuitestorelocator_locations using the standard + * bind()->check()->store() flow. + * + * @return array ['imported' => int, 'skipped' => int, 'errors' => string[]] + * + * @since 1.1.0 + */ + public function importFromFocalPoint(): array + { + $result = ['imported' => 0, 'skipped' => 0, 'errors' => []]; + + $db = $this->getDatabase(); + + // Check if FocalPoint tables exist + $tables = $db->getTableList(); + $prefix = $db->getPrefix(); + $fpTable = $prefix . 'focalpoint_locations'; + + if (!\in_array($fpTable, $tables)) + { + $result['errors'][] = 'FocalPoint is not installed — table #__focalpoint_locations not found.'; + return $result; + } + + // Load all FocalPoint locations + $query = $db->getQuery(true) + ->select('a.*') + ->from($db->quoteName('#__focalpoint_locations', 'a')) + ->order($db->quoteName('a.id') . ' ASC'); + + $db->setQuery($query); + $fpLocations = $db->loadObjectList(); + + if (empty($fpLocations)) + { + $result['errors'][] = 'No locations found in FocalPoint.'; + return $result; + } + + // Load location type names for category context + $typeQuery = $db->getQuery(true) + ->select([$db->quoteName('id'), $db->quoteName('title')]) + ->from($db->quoteName('#__focalpoint_locationtypes')); + + $db->setQuery($typeQuery); + $typeNames = $db->loadObjectList('id'); + + /** @var \Moko\Component\MokoSuiteStoreLocator\Administrator\Table\LocationTable $table */ + $table = $this->getMVCFactory()->createTable('Location', 'Administrator'); + + foreach ($fpLocations as $fpLoc) + { + $table->reset(); + $table->id = 0; + + // Parse custom fields JSON for email, website, phone, hours + $customData = $this->parseFocalPointCustomFields($fpLoc->customfieldsdata ?? ''); + + // Map FocalPoint fields to our schema + $data = [ + 'title' => $fpLoc->title, + 'alias' => $fpLoc->alias ?: '', + 'description' => trim(($fpLoc->description ?? '') . "\n" . ($fpLoc->fulldescription ?? '')), + 'address' => $fpLoc->address ?? '', + 'city' => $customData['city'] ?? '', + 'state' => $customData['state'] ?? '', + 'postcode' => $customData['postcode'] ?? $customData['zip'] ?? '', + 'country' => $customData['country'] ?? '', + 'latitude' => $fpLoc->latitude != 0 ? $fpLoc->latitude : null, + 'longitude' => $fpLoc->longitude != 0 ? $fpLoc->longitude : null, + 'phone' => $customData['phone'] ?? $fpLoc->phone ?? '', + 'email' => $customData['email'] ?? '', + 'website' => $customData['website'] ?? $customData['url'] ?? '', + 'hours' => $customData['hours'] ?? $customData['business_hours'] ?? '', + 'image' => $fpLoc->image ?? '', + 'published' => (int) ($fpLoc->state ?? 0), + 'ordering' => (int) ($fpLoc->ordering ?? 0), + 'params' => '{}', + ]; + + if (!$table->bind($data)) + { + $result['errors'][] = "FocalPoint #{$fpLoc->id} ({$fpLoc->title}): " . $table->getError(); + $result['skipped']++; + continue; + } + + if (!$table->check()) + { + $result['errors'][] = "FocalPoint #{$fpLoc->id} ({$fpLoc->title}): " . $table->getError(); + $result['skipped']++; + continue; + } + + if (!$table->store()) + { + $result['errors'][] = "FocalPoint #{$fpLoc->id} ({$fpLoc->title}): " . $table->getError(); + $result['skipped']++; + continue; + } + + $result['imported']++; + } + + return $result; + } + + /** + * Parse FocalPoint customfieldsdata JSON into a flat key-value array. + * + * FocalPoint stores custom field data as JSON. The structure varies by version: + * - Simple: {"fieldname": "value", ...} + * - Nested: {"fieldname": {"value": "...", "label": "..."}, ...} + * + * We normalize to lowercase keys with string values for easy field matching. + * + * @param string $json The customfieldsdata JSON string. + * + * @return array Flat associative array of field_name => value. + * + * @since 1.1.0 + */ + private function parseFocalPointCustomFields(string $json): array + { + if (empty($json) || $json === '{}') + { + return []; + } + + $decoded = json_decode($json, true); + + if (!\is_array($decoded)) + { + return []; + } + + $fields = []; + + foreach ($decoded as $key => $value) + { + $normalizedKey = strtolower(trim(str_replace([' ', '-'], '_', $key))); + + if (\is_array($value)) + { + // Nested format: {"value": "...", "label": "..."} + $fields[$normalizedKey] = trim((string) ($value['value'] ?? $value[0] ?? '')); + } + else + { + $fields[$normalizedKey] = trim((string) $value); + } + } + + return $fields; + } } diff --git a/source/packages/com_mokosuitestorelocator/admin/tmpl/import/default.php b/source/packages/com_mokosuitestorelocator/admin/tmpl/import/default.php index 9a0c282..b311f27 100644 --- a/source/packages/com_mokosuitestorelocator/admin/tmpl/import/default.php +++ b/source/packages/com_mokosuitestorelocator/admin/tmpl/import/default.php @@ -60,6 +60,21 @@ use Joomla\CMS\Session\Session;
+
+
+

+

+
+ + +
+
+
+

-- 2.52.0 From 6426fee4287641a4f75ddee644c478b9f0b9540b Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 27 Jun 2026 14:37:15 -0500 Subject: [PATCH 05/57] feat: v1.2 multi-category, REST API, ACL, security hardening (#1, #2, #29, #30, #31, #34, #48) Multi-category support with parent/child hierarchy, junction table, admin CRUD, and per-category custom marker icons on the Leaflet map. REST API via Web Services plugin with JSON:API endpoints. ACL permissions via access.xml. SQL update schema for safe upgrades. Shop integration bridge (LocationBridgeHelper, LocationSavedEvent). Security: CSV formula injection prevention, MIME validation, file size limit, ORDER BY allowlist, map height CSS regex validation. Authored-by: Moko Consulting --- CHANGELOG.md | 31 +++- README.md | 20 ++- .../com_mokosuitestorelocator/access.xml | 12 ++ .../admin/forms/category.xml | 69 ++++++++ .../admin/forms/filter_categories.xml | 47 +++++ .../admin/forms/location.xml | 10 ++ .../en-GB/com_mokosuitestorelocator.ini | 14 ++ .../admin/sql/install.mysql.sql | 35 ++++ .../admin/sql/uninstall.mysql.sql | 2 + .../admin/sql/updates/mysql/01.00.00.sql | 1 + .../admin/sql/updates/mysql/01.00.01.sql | 28 +++ .../src/Controller/CategoriesController.php | 37 ++++ .../src/Controller/CategoryController.php | 22 +++ .../admin/src/Controller/ImportController.php | 28 +++ .../admin/src/Event/LocationSavedEvent.php | 46 +++++ .../admin/src/Helper/LocationBridgeHelper.php | 162 ++++++++++++++++++ .../admin/src/Model/CategoriesModel.php | 126 ++++++++++++++ .../admin/src/Model/CategoryModel.php | 85 +++++++++ .../admin/src/Model/ImportModel.php | 25 ++- .../admin/src/Model/LocationModel.php | 109 ++++++++++-- .../admin/src/Model/LocationsModel.php | 15 +- .../admin/src/Table/CategoryTable.php | 81 +++++++++ .../admin/src/View/Categories/HtmlView.php | 51 ++++++ .../admin/src/View/Category/HtmlView.php | 54 ++++++ .../admin/tmpl/categories/default.php | 102 +++++++++++ .../admin/tmpl/category/edit.php | 52 ++++++ .../admin/tmpl/location/edit.php | 8 + .../src/Controller/LocationsController.php | 37 ++++ .../api/src/View/Locations/JsonapiView.php | 68 ++++++++ .../mokosuitestorelocator.xml | 13 ++ .../site/src/Model/LocationsModel.php | 29 +++- .../src/Dispatcher/Dispatcher.php | 49 ++++-- .../tmpl/default.php | 16 +- .../plg_webservices_mokosuitestorelocator.ini | 2 + .../plg_webservices_mokosuitestorelocator.xml | 24 +++ .../services/provider.php | 37 ++++ .../src/Extension/MokoSuiteStoreLocator.php | 57 ++++++ source/pkg_mokosuitestorelocator.xml | 1 + 38 files changed, 1559 insertions(+), 46 deletions(-) create mode 100644 source/packages/com_mokosuitestorelocator/access.xml create mode 100644 source/packages/com_mokosuitestorelocator/admin/forms/category.xml create mode 100644 source/packages/com_mokosuitestorelocator/admin/forms/filter_categories.xml create mode 100644 source/packages/com_mokosuitestorelocator/admin/sql/updates/mysql/01.00.00.sql create mode 100644 source/packages/com_mokosuitestorelocator/admin/sql/updates/mysql/01.00.01.sql create mode 100644 source/packages/com_mokosuitestorelocator/admin/src/Controller/CategoriesController.php create mode 100644 source/packages/com_mokosuitestorelocator/admin/src/Controller/CategoryController.php create mode 100644 source/packages/com_mokosuitestorelocator/admin/src/Event/LocationSavedEvent.php create mode 100644 source/packages/com_mokosuitestorelocator/admin/src/Helper/LocationBridgeHelper.php create mode 100644 source/packages/com_mokosuitestorelocator/admin/src/Model/CategoriesModel.php create mode 100644 source/packages/com_mokosuitestorelocator/admin/src/Model/CategoryModel.php create mode 100644 source/packages/com_mokosuitestorelocator/admin/src/Table/CategoryTable.php create mode 100644 source/packages/com_mokosuitestorelocator/admin/src/View/Categories/HtmlView.php create mode 100644 source/packages/com_mokosuitestorelocator/admin/src/View/Category/HtmlView.php create mode 100644 source/packages/com_mokosuitestorelocator/admin/tmpl/categories/default.php create mode 100644 source/packages/com_mokosuitestorelocator/admin/tmpl/category/edit.php create mode 100644 source/packages/com_mokosuitestorelocator/api/src/Controller/LocationsController.php create mode 100644 source/packages/com_mokosuitestorelocator/api/src/View/Locations/JsonapiView.php create mode 100644 source/packages/plg_webservices_mokosuitestorelocator/language/en-GB/plg_webservices_mokosuitestorelocator.ini create mode 100644 source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml create mode 100644 source/packages/plg_webservices_mokosuitestorelocator/services/provider.php create mode 100644 source/packages/plg_webservices_mokosuitestorelocator/src/Extension/MokoSuiteStoreLocator.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b06b74..e92ed7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,35 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [1.1.0] - Unreleased +## [1.2.0] - Unreleased + +### Added +- Multi-category support with parent/child hierarchy (#1) +- Categories admin CRUD — list, edit, color picker, custom marker icon +- Location-category junction table (many-to-many) +- Categories tab on location edit form (multi-select) +- Category filtering on site frontend (`catid` parameter) +- Custom map markers per category — SVG/PNG icon support (#2) +- Map module JOINs category data for marker icons and colors +- `access.xml` with full Joomla ACL permissions (#30) +- SQL update schema with `sql/updates/mysql/` versioned files (#31) +- REST API via Web Services plugin (`plg_webservices_mokosuitestorelocator`) (#29) +- API controller + JSON:API view for locations CRUD at `/api/v1/mokosuitestorelocator/locations` +- `LocationBridgeHelper` — static helper for cross-extension integration (#48) +- `LocationSavedEvent` — fires `onStoreLocatorLocationSaved` for cache invalidation +- Plugin added to package manifest + +### Changed +- Map module dispatcher uses aliased table queries with category JOIN +- ORDER BY clauses in admin and site models now validated against filter_fields allowlist + +### Security +- CSV import: MIME type validation, 2 MB file size limit, delimiter allowlist (#34) +- CSV import: formula injection prevention (strips leading `=+\-@\t\r` characters) +- ORDER BY injection prevention — replaced `$db->escape()` with allowlist validation +- Map module: `$mapHeight` CSS value validated with regex pattern + +## [1.1.0] - 2026-06-23 ### Added - Haversine proximity search — filter locations by distance from user's coordinates @@ -18,6 +46,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - CSV import: auto-detect column headers (title/name/store, address/street, city, etc.) - CSV import: per-row validation via LocationTable::bind()->check()->store() - CSV import view accessible from admin toolbar and submenu +- FocalPoint (Shack Locations) migration import - Language strings for directions, geocoding feedback, and import UI ## [01.00.00] - 2026-06-23 diff --git a/README.md b/README.md index 4d997c6..d64748d 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ A Joomla 4/5 package providing a store locator listing component with coordinati | Store Locator Component | component | `com_mokosuitestorelocator` | | Store Locator Map | module (site) | `mod_mokosuitestorelocator_map` | | Store Locator Search | module (site) | `mod_mokosuitestorelocator_search` | +| Web Services API | plugin (webservices) | `plg_webservices_mokosuitestorelocator` | ## Requirements @@ -27,7 +28,9 @@ A Joomla 4/5 package providing a store locator listing component with coordinati ### Implemented - **Admin CRUD** — full location management with tabbed edit form (details, address, coordinates, contact, image) - **Admin list** — searchable, filterable, sortable locations list with bulk publish/unpublish/delete -- **Site frontend** — locations list and detail views with pagination +- **Multi-category** — categories with parent/child hierarchy, color, custom marker icons, many-to-many assignments +- **Custom map markers** — per-category SVG/PNG marker icons on the Leaflet map +- **Site frontend** — locations list and detail views with pagination and category filtering - **Schema.org** — LocalBusiness structured data markup on all frontend templates - **SEF URLs** — router with menu, standard, and nomenu rules - **Menu items** — "All Locations" list and single "Location Detail" picker @@ -37,13 +40,18 @@ A Joomla 4/5 package providing a store locator listing component with coordinati - **Get Directions** — Google Maps directions link on detail page and map popups - **Auto-geocoding** — coordinates auto-populated from address on save (Nominatim/OSM) - **CSV import** — bulk-create locations from spreadsheet with auto-detected column mapping +- **FocalPoint migration** — one-click import from Shack Locations / FocalPoint +- **REST API** — JSON:API endpoints via Joomla Web Services plugin +- **ACL permissions** — `access.xml` with standard Joomla permission actions +- **SQL update schema** — versioned migration files for safe upgrades +- **Shop integration** — `LocationBridgeHelper` for cross-extension data access, `LocationSavedEvent` for cache invalidation +- **Security hardening** — CSV injection prevention, MIME validation, ORDER BY allowlists, input sanitization ### Planned -- Marker clustering for dense location areas -- Multi-category support with custom map markers -- ACL permissions and SQL upgrade schema -- REST API via Joomla Web Services plugin -- MokoSuiteShop integration for multi-store ecommerce +- Marker clustering for dense location areas (Leaflet.markercluster) +- Google Maps provider as alternative to Leaflet +- CSV export +- Photo gallery per location ## Development diff --git a/source/packages/com_mokosuitestorelocator/access.xml b/source/packages/com_mokosuitestorelocator/access.xml new file mode 100644 index 0000000..74c1a43 --- /dev/null +++ b/source/packages/com_mokosuitestorelocator/access.xml @@ -0,0 +1,12 @@ + + +
+ + + + + + + +
+
diff --git a/source/packages/com_mokosuitestorelocator/admin/forms/category.xml b/source/packages/com_mokosuitestorelocator/admin/forms/category.xml new file mode 100644 index 0000000..2453fab --- /dev/null +++ b/source/packages/com_mokosuitestorelocator/admin/forms/category.xml @@ -0,0 +1,69 @@ + + +
+
+ + + + + + + + + + + + + + + + +
+ +
+ + + +
+
diff --git a/source/packages/com_mokosuitestorelocator/admin/forms/filter_categories.xml b/source/packages/com_mokosuitestorelocator/admin/forms/filter_categories.xml new file mode 100644 index 0000000..04b3ff3 --- /dev/null +++ b/source/packages/com_mokosuitestorelocator/admin/forms/filter_categories.xml @@ -0,0 +1,47 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + +
diff --git a/source/packages/com_mokosuitestorelocator/admin/forms/location.xml b/source/packages/com_mokosuitestorelocator/admin/forms/location.xml index cb7cb2f..2816f1e 100644 --- a/source/packages/com_mokosuitestorelocator/admin/forms/location.xml +++ b/source/packages/com_mokosuitestorelocator/admin/forms/location.xml @@ -43,6 +43,16 @@ +
+ +
+
true]) + { + return parent::getModel($name, $prefix, $config); + } +} diff --git a/source/packages/com_mokosuitestorelocator/admin/src/Controller/CategoryController.php b/source/packages/com_mokosuitestorelocator/admin/src/Controller/CategoryController.php new file mode 100644 index 0000000..4b90780 --- /dev/null +++ b/source/packages/com_mokosuitestorelocator/admin/src/Controller/CategoryController.php @@ -0,0 +1,22 @@ +input->files->get('jform', [], 'array'); $delimiter = $this->input->post->getString('delimiter', ','); + // Validate delimiter against allowlist + if (!\in_array($delimiter, [',', ';', '|', "\t"], true)) + { + $delimiter = ','; + } + $csvFile = $file['csv_file'] ?? null; if (!$csvFile || $csvFile['error'] !== UPLOAD_ERR_OK || !is_uploaded_file($csvFile['tmp_name'])) @@ -59,6 +65,15 @@ class ImportController extends BaseController return; } + // Enforce 2 MB file size limit + if ($csvFile['size'] > 2 * 1024 * 1024) + { + $this->setMessage(Text::_('COM_MOKOJOOMSTORELOCATOR_IMPORT_FILE_TOO_LARGE'), 'error'); + $this->setRedirect(Route::_('index.php?option=com_mokosuitestorelocator&view=import', false)); + + return; + } + // Validate file extension $ext = strtolower(pathinfo($csvFile['name'], PATHINFO_EXTENSION)); @@ -70,6 +85,19 @@ class ImportController extends BaseController return; } + // Validate MIME type + $finfo = new \finfo(FILEINFO_MIME_TYPE); + $mime = $finfo->file($csvFile['tmp_name']); + $allowedMimes = ['text/csv', 'text/plain', 'application/csv', 'application/vnd.ms-excel', 'application/octet-stream']; + + if (!$mime || !\in_array($mime, $allowedMimes, true)) + { + $this->setMessage(Text::_('COM_MOKOJOOMSTORELOCATOR_IMPORT_INVALID_FILE'), 'error'); + $this->setRedirect(Route::_('index.php?option=com_mokosuitestorelocator&view=import', false)); + + return; + } + $result = $model->processImport($csvFile['tmp_name'], $delimiter); if ($result['imported'] > 0) diff --git a/source/packages/com_mokosuitestorelocator/admin/src/Event/LocationSavedEvent.php b/source/packages/com_mokosuitestorelocator/admin/src/Event/LocationSavedEvent.php new file mode 100644 index 0000000..da81be1 --- /dev/null +++ b/source/packages/com_mokosuitestorelocator/admin/src/Event/LocationSavedEvent.php @@ -0,0 +1,46 @@ + array]. + * + * @since 1.2.0 + */ + public function __construct(string $name, array $arguments = []) + { + parent::__construct($name, $arguments); + } + + /** + * Get the saved location data. + * + * @return array + * + * @since 1.2.0 + */ + public function getLocationData(): array + { + return $this->getArgument('locationData', []); + } +} diff --git a/source/packages/com_mokosuitestorelocator/admin/src/Helper/LocationBridgeHelper.php b/source/packages/com_mokosuitestorelocator/admin/src/Helper/LocationBridgeHelper.php new file mode 100644 index 0000000..d56071f --- /dev/null +++ b/source/packages/com_mokosuitestorelocator/admin/src/Helper/LocationBridgeHelper.php @@ -0,0 +1,162 @@ +get('DatabaseDriver'); + $query = $db->getQuery(true) + ->select('*') + ->from($db->quoteName('#__mokosuitestorelocator_locations')); + + if ($publishedOnly) + { + $query->where($db->quoteName('published') . ' = 1'); + } + + $query->order($db->quoteName('ordering') . ' ASC'); + + $db->setQuery($query); + + return $db->loadObjectList() ?: []; + } + + /** + * Get a single location by ID. + * + * @param int $locationId The location ID. + * + * @return object|null + * + * @since 1.2.0 + */ + public static function getById(int $locationId): ?object + { + $db = Factory::getContainer()->get('DatabaseDriver'); + $query = $db->getQuery(true) + ->select('*') + ->from($db->quoteName('#__mokosuitestorelocator_locations')) + ->where($db->quoteName('id') . ' = :id') + ->bind(':id', $locationId, ParameterType::INTEGER); + + $db->setQuery($query); + + return $db->loadObject() ?: null; + } + + /** + * Get locations within a radius using Haversine formula. + * + * @param float $lat Latitude of the search origin. + * @param float $lng Longitude of the search origin. + * @param float $radiusMiles Search radius in miles. + * @param int $limit Maximum results. + * + * @return array Objects with an additional `distance` property (miles). + * + * @since 1.2.0 + */ + public static function getNearby(float $lat, float $lng, float $radiusMiles = 25, int $limit = 10): array + { + $db = Factory::getContainer()->get('DatabaseDriver'); + $query = $db->getQuery(true); + + $haversine = '(3959 * ACOS(LEAST(1, GREATEST(-1, ' + . 'SIN(RADIANS(' . $db->quoteName('latitude') . ')) * SIN(RADIANS(' . (float) $lat . ')) ' + . '+ COS(RADIANS(' . $db->quoteName('latitude') . ')) * COS(RADIANS(' . (float) $lat . ')) ' + . '* COS(RADIANS(' . $db->quoteName('longitude') . ' - ' . (float) $lng . '))' + . '))))'; + + $query->select('*') + ->select($haversine . ' AS distance') + ->from($db->quoteName('#__mokosuitestorelocator_locations')) + ->where($db->quoteName('published') . ' = 1') + ->where($db->quoteName('latitude') . ' IS NOT NULL') + ->where($db->quoteName('longitude') . ' IS NOT NULL') + ->where($haversine . ' <= ' . (float) $radiusMiles) + ->order('distance ASC'); + + $db->setQuery($query, 0, $limit); + + return $db->loadObjectList() ?: []; + } + + /** + * Get locations by city. + * + * @param string $city City name. + * + * @return array + * + * @since 1.2.0 + */ + public static function getByCity(string $city): array + { + $db = Factory::getContainer()->get('DatabaseDriver'); + $query = $db->getQuery(true) + ->select('*') + ->from($db->quoteName('#__mokosuitestorelocator_locations')) + ->where($db->quoteName('published') . ' = 1') + ->where($db->quoteName('city') . ' = :city') + ->bind(':city', $city) + ->order($db->quoteName('ordering') . ' ASC'); + + $db->setQuery($query); + + return $db->loadObjectList() ?: []; + } + + /** + * Get locations by state/province. + * + * @param string $state State/province name. + * + * @return array + * + * @since 1.2.0 + */ + public static function getByState(string $state): array + { + $db = Factory::getContainer()->get('DatabaseDriver'); + $query = $db->getQuery(true) + ->select('*') + ->from($db->quoteName('#__mokosuitestorelocator_locations')) + ->where($db->quoteName('published') . ' = 1') + ->where($db->quoteName('state') . ' = :state') + ->bind(':state', $state) + ->order($db->quoteName('ordering') . ' ASC'); + + $db->setQuery($query); + + return $db->loadObjectList() ?: []; + } +} diff --git a/source/packages/com_mokosuitestorelocator/admin/src/Model/CategoriesModel.php b/source/packages/com_mokosuitestorelocator/admin/src/Model/CategoriesModel.php new file mode 100644 index 0000000..4efd63f --- /dev/null +++ b/source/packages/com_mokosuitestorelocator/admin/src/Model/CategoriesModel.php @@ -0,0 +1,126 @@ +getUserStateFromRequest($this->context . '.filter.search', 'filter_search', '', 'string'); + $this->setState('filter.search', $search); + + $published = $this->getUserStateFromRequest($this->context . '.filter.published', 'filter_published', '', 'string'); + $this->setState('filter.published', $published); + + parent::populateState($ordering, $direction); + } + + /** + * Build an SQL query to load the list data. + * + * @return QueryInterface + * + * @since 1.2.0 + */ + protected function getListQuery(): QueryInterface + { + $db = $this->getDatabase(); + $query = $db->getQuery(true); + + $query->select('a.*') + ->from($db->quoteName('#__mokosuitestorelocator_categories', 'a')); + + // Count locations per category + $subQuery = $db->getQuery(true) + ->select('COUNT(*)') + ->from($db->quoteName('#__mokosuitestorelocator_location_categories', 'lc')) + ->where($db->quoteName('lc.category_id') . ' = ' . $db->quoteName('a.id')); + + $query->select('(' . $subQuery . ') AS ' . $db->quoteName('location_count')); + + // Filter by published state + $published = $this->getState('filter.published'); + + if (is_numeric($published)) + { + $query->where($db->quoteName('a.published') . ' = :published') + ->bind(':published', $published, \Joomla\Database\ParameterType::INTEGER); + } + elseif ($published === '') + { + $query->where($db->quoteName('a.published') . ' IN (0, 1)'); + } + + // Search filter + $search = $this->getState('filter.search'); + + if (!empty($search)) + { + $search = '%' . trim($search) . '%'; + $query->where($db->quoteName('a.title') . ' LIKE :search') + ->bind(':search', $search); + } + + // Ordering — validate against filter_fields allowlist + $orderCol = $this->state->get('list.ordering', 'a.ordering'); + $orderDir = $this->state->get('list.direction', 'ASC'); + + if (!\in_array($orderCol, $this->filter_fields, true)) + { + $orderCol = 'a.ordering'; + } + + $orderDir = strtoupper($orderDir) === 'DESC' ? 'DESC' : 'ASC'; + $query->order($db->quoteName($orderCol) . ' ' . $orderDir); + + return $query; + } +} diff --git a/source/packages/com_mokosuitestorelocator/admin/src/Model/CategoryModel.php b/source/packages/com_mokosuitestorelocator/admin/src/Model/CategoryModel.php new file mode 100644 index 0000000..b0a1c9a --- /dev/null +++ b/source/packages/com_mokosuitestorelocator/admin/src/Model/CategoryModel.php @@ -0,0 +1,85 @@ +loadForm( + 'com_mokosuitestorelocator.category', + 'category', + ['control' => 'jform', 'load_data' => $loadData] + ); + + if (empty($form)) + { + return false; + } + + return $form; + } + + /** + * Load the data for the form. + * + * @return mixed + * + * @since 1.2.0 + */ + protected function loadFormData() + { + return $this->getItem(); + } + + /** + * Get the table for this model. + * + * @param string $name The table name. + * @param string $prefix The table prefix. + * @param array $options Configuration array. + * + * @return Table + * + * @since 1.2.0 + */ + public function getTable($name = 'Category', $prefix = 'Administrator', $options = []) + { + return parent::getTable($name, $prefix, $options); + } +} diff --git a/source/packages/com_mokosuitestorelocator/admin/src/Model/ImportModel.php b/source/packages/com_mokosuitestorelocator/admin/src/Model/ImportModel.php index cb2177e..9168eb9 100644 --- a/source/packages/com_mokosuitestorelocator/admin/src/Model/ImportModel.php +++ b/source/packages/com_mokosuitestorelocator/admin/src/Model/ImportModel.php @@ -206,12 +206,35 @@ class ImportModel extends BaseDatabaseModel foreach ($mapping as $dbField => $csvIndex) { - $data[$dbField] = trim($row[$csvIndex] ?? ''); + $value = trim($row[$csvIndex] ?? ''); + $data[$dbField] = $this->sanitizeCsvValue($value); } return $data; } + /** + * Sanitize a CSV value to prevent formula injection. + * + * Strips leading characters that spreadsheet applications interpret as formulas. + * + * @param string $value Raw CSV cell value. + * + * @return string Sanitized value. + * + * @since 1.1.0 + */ + private function sanitizeCsvValue(string $value): string + { + if ($value === '') + { + return $value; + } + + // Strip leading formula trigger characters + return ltrim($value, "=+\-@\t\r"); + } + /** * Import locations from an installed FocalPoint (Shack Locations) component. * diff --git a/source/packages/com_mokosuitestorelocator/admin/src/Model/LocationModel.php b/source/packages/com_mokosuitestorelocator/admin/src/Model/LocationModel.php index aed8fff..1c314eb 100644 --- a/source/packages/com_mokosuitestorelocator/admin/src/Model/LocationModel.php +++ b/source/packages/com_mokosuitestorelocator/admin/src/Model/LocationModel.php @@ -13,6 +13,7 @@ defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\Form\Form; use Joomla\CMS\Http\HttpFactory; +use Moko\Component\MokoSuiteStoreLocator\Administrator\Event\LocationSavedEvent; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Model\AdminModel; use Joomla\CMS\Table\Table; @@ -58,20 +59,6 @@ class LocationModel extends AdminModel return $form; } - /** - * Load the data for the form. - * - * @return mixed The data for the form. - * - * @since 1.0.0 - */ - protected function loadFormData() - { - $data = $this->getItem(); - - return $data; - } - /** * Get the table for this model. * @@ -118,7 +105,99 @@ class LocationModel extends AdminModel } } - return parent::save($data); + // Extract categories before parent::save (it won't know about junction table) + $categories = $data['categories'] ?? []; + unset($data['categories']); + + if (!parent::save($data)) + { + return false; + } + + // Save category associations + $locationId = (int) $this->getState($this->getName() . '.id'); + $this->saveCategories($locationId, $categories); + + // Fire event for cross-extension integration (e.g. MokoSuiteShop) + $data['id'] = $locationId; + Factory::getApplication()->getDispatcher()->dispatch( + 'onStoreLocatorLocationSaved', + new LocationSavedEvent('onStoreLocatorLocationSaved', ['locationData' => $data]) + ); + + return true; + } + + /** + * Save location-category associations in the junction table. + * + * @param int $locationId The location ID. + * @param array $categories Array of category IDs. + * + * @return void + * + * @since 1.2.0 + */ + private function saveCategories(int $locationId, array $categories): void + { + $db = $this->getDatabase(); + + // Remove existing associations + $query = $db->getQuery(true) + ->delete($db->quoteName('#__mokosuitestorelocator_location_categories')) + ->where($db->quoteName('location_id') . ' = :locationId') + ->bind(':locationId', $locationId, \Joomla\Database\ParameterType::INTEGER); + + $db->setQuery($query); + $db->execute(); + + // Insert new associations + if (!empty($categories)) + { + $query = $db->getQuery(true) + ->insert($db->quoteName('#__mokosuitestorelocator_location_categories')) + ->columns([$db->quoteName('location_id'), $db->quoteName('category_id')]); + + foreach ($categories as $catId) + { + $catId = (int) $catId; + + if ($catId > 0) + { + $query->values($locationId . ', ' . $catId); + } + } + + $db->setQuery($query); + $db->execute(); + } + } + + /** + * Load the data for the form, including category associations. + * + * @return mixed + * + * @since 1.0.0 + */ + protected function loadFormData() + { + $data = $this->getItem(); + + if ($data && (int) $data->id > 0) + { + $db = $this->getDatabase(); + $query = $db->getQuery(true) + ->select($db->quoteName('category_id')) + ->from($db->quoteName('#__mokosuitestorelocator_location_categories')) + ->where($db->quoteName('location_id') . ' = :id') + ->bind(':id', $data->id, \Joomla\Database\ParameterType::INTEGER); + + $db->setQuery($query); + $data->categories = $db->loadColumn(); + } + + return $data; } /** diff --git a/source/packages/com_mokosuitestorelocator/admin/src/Model/LocationsModel.php b/source/packages/com_mokosuitestorelocator/admin/src/Model/LocationsModel.php index d756a14..e78621a 100644 --- a/source/packages/com_mokosuitestorelocator/admin/src/Model/LocationsModel.php +++ b/source/packages/com_mokosuitestorelocator/admin/src/Model/LocationsModel.php @@ -111,10 +111,17 @@ class LocationsModel extends ListModel ->bind(':search4', $search); } - // Ordering - $orderCol = $this->state->get('list.ordering', 'a.title'); - $orderDir = $this->state->get('list.direction', 'ASC'); - $query->order($db->escape($orderCol) . ' ' . $db->escape($orderDir)); + // Ordering — validate against filter_fields allowlist + $orderCol = $this->state->get('list.ordering', 'a.title'); + $orderDir = $this->state->get('list.direction', 'ASC'); + + if (!\in_array($orderCol, $this->filter_fields, true)) + { + $orderCol = 'a.title'; + } + + $orderDir = strtoupper($orderDir) === 'DESC' ? 'DESC' : 'ASC'; + $query->order($db->quoteName($orderCol) . ' ' . $orderDir); return $query; } diff --git a/source/packages/com_mokosuitestorelocator/admin/src/Table/CategoryTable.php b/source/packages/com_mokosuitestorelocator/admin/src/Table/CategoryTable.php new file mode 100644 index 0000000..c2448f7 --- /dev/null +++ b/source/packages/com_mokosuitestorelocator/admin/src/Table/CategoryTable.php @@ -0,0 +1,81 @@ +title) === '') + { + $this->setError(Text::_('COM_MOKOJOOMSTORELOCATOR_ERROR_CATEGORY_TITLE_REQUIRED')); + + return false; + } + + if (trim($this->alias) === '') + { + $this->alias = $this->title; + } + + $this->alias = OutputFilter::stringURLSafe($this->alias); + + // Validate color format + if ($this->color !== '' && !preg_match('/^#[0-9a-fA-F]{6}$/', $this->color)) + { + $this->color = ''; + } + + $now = Factory::getDate()->toSql(); + + if (!(int) $this->id) + { + if (!$this->created || $this->created === '0000-00-00 00:00:00') + { + $this->created = $now; + } + } + + $this->modified = $now; + + return parent::check(); + } +} diff --git a/source/packages/com_mokosuitestorelocator/admin/src/View/Categories/HtmlView.php b/source/packages/com_mokosuitestorelocator/admin/src/View/Categories/HtmlView.php new file mode 100644 index 0000000..4b3b069 --- /dev/null +++ b/source/packages/com_mokosuitestorelocator/admin/src/View/Categories/HtmlView.php @@ -0,0 +1,51 @@ +items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + $this->filterForm = $this->get('FilterForm'); + $this->activeFilters = $this->get('ActiveFilters'); + + $this->addToolbar(); + + parent::display($tpl); + } + + protected function addToolbar(): void + { + ToolbarHelper::title(Text::_('COM_MOKOJOOMSTORELOCATOR_CATEGORIES'), 'folder'); + ToolbarHelper::addNew('category.add'); + ToolbarHelper::publish('categories.publish', 'JTOOLBAR_PUBLISH', true); + ToolbarHelper::unpublish('categories.unpublish', 'JTOOLBAR_UNPUBLISH', true); + ToolbarHelper::deleteList('', 'categories.delete', 'JTOOLBAR_DELETE'); + } +} diff --git a/source/packages/com_mokosuitestorelocator/admin/src/View/Category/HtmlView.php b/source/packages/com_mokosuitestorelocator/admin/src/View/Category/HtmlView.php new file mode 100644 index 0000000..2067665 --- /dev/null +++ b/source/packages/com_mokosuitestorelocator/admin/src/View/Category/HtmlView.php @@ -0,0 +1,54 @@ +form = $this->get('Form'); + $this->item = $this->get('Item'); + + $this->addToolbar(); + + parent::display($tpl); + } + + protected function addToolbar(): void + { + Factory::getApplication()->input->set('hidemainmenu', true); + + $isNew = ($this->item->id == 0); + + ToolbarHelper::title( + Text::_('COM_MOKOJOOMSTORELOCATOR_CATEGORY_' . ($isNew ? 'NEW' : 'EDIT')), + 'folder' + ); + + ToolbarHelper::apply('category.apply'); + ToolbarHelper::save('category.save'); + ToolbarHelper::save2new('category.save2new'); + ToolbarHelper::cancel('category.cancel', $isNew ? 'JTOOLBAR_CANCEL' : 'JTOOLBAR_CLOSE'); + } +} diff --git a/source/packages/com_mokosuitestorelocator/admin/tmpl/categories/default.php b/source/packages/com_mokosuitestorelocator/admin/tmpl/categories/default.php new file mode 100644 index 0000000..45523f7 --- /dev/null +++ b/source/packages/com_mokosuitestorelocator/admin/tmpl/categories/default.php @@ -0,0 +1,102 @@ + +
+ +
+
+
+ $this]); ?> + + items)) : ?> +
+ + +
+ + + + + + + + + + + + + + + items as $i => $item) : ?> + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
+ id, false, 'cid', 'cb', $item->title); ?> + + level > 1) : ?> + —', (int) $item->level - 1); ?> + + + escape($item->title); ?> + + + color) : ?> + + + — + + + location_count; ?> + + published, $i, 'categories.', true, 'cb'); ?> + + id; ?> +
+ + pagination->getListFooter(); ?> + + + + + +
+
+
+
diff --git a/source/packages/com_mokosuitestorelocator/admin/tmpl/category/edit.php b/source/packages/com_mokosuitestorelocator/admin/tmpl/category/edit.php new file mode 100644 index 0000000..4eb2923 --- /dev/null +++ b/source/packages/com_mokosuitestorelocator/admin/tmpl/category/edit.php @@ -0,0 +1,52 @@ + +
+ + 'details', 'recall' => true, 'breakpoint' => 768]); ?> + + +
+
+ form->renderField('title'); ?> + form->renderField('alias'); ?> + form->renderField('parent_id'); ?> + form->renderField('description'); ?> +
+
+ form->renderField('published'); ?> +
+
+ + + +
+
+ form->renderField('color'); ?> + form->renderField('marker_icon'); ?> +
+
+ + + + + + +
diff --git a/source/packages/com_mokosuitestorelocator/admin/tmpl/location/edit.php b/source/packages/com_mokosuitestorelocator/admin/tmpl/location/edit.php index d8aec50..2eb6251 100644 --- a/source/packages/com_mokosuitestorelocator/admin/tmpl/location/edit.php +++ b/source/packages/com_mokosuitestorelocator/admin/tmpl/location/edit.php @@ -37,6 +37,14 @@ HTMLHelper::_('behavior.keepalive');
+ +
+
+ form->renderField('categories'); ?> +
+
+ +
diff --git a/source/packages/com_mokosuitestorelocator/api/src/Controller/LocationsController.php b/source/packages/com_mokosuitestorelocator/api/src/Controller/LocationsController.php new file mode 100644 index 0000000..9ab379e --- /dev/null +++ b/source/packages/com_mokosuitestorelocator/api/src/Controller/LocationsController.php @@ -0,0 +1,37 @@ + + + + sql/updates/mysql + + + language src tmpl + + + src + + + forms @@ -57,6 +69,7 @@ COM_MOKOJOOMSTORELOCATOR COM_MOKOJOOMSTORELOCATOR_LOCATIONS + COM_MOKOJOOMSTORELOCATOR_CATEGORIES COM_MOKOJOOMSTORELOCATOR_IMPORT diff --git a/source/packages/com_mokosuitestorelocator/site/src/Model/LocationsModel.php b/source/packages/com_mokosuitestorelocator/site/src/Model/LocationsModel.php index 6d44b90..7e78ab5 100644 --- a/source/packages/com_mokosuitestorelocator/site/src/Model/LocationsModel.php +++ b/source/packages/com_mokosuitestorelocator/site/src/Model/LocationsModel.php @@ -99,6 +99,9 @@ class LocationsModel extends ListModel $this->setState('filter.radius_unit', in_array($radiusUnit, ['miles', 'km']) ? $radiusUnit : 'miles'); + $catid = $app->input->getInt('catid', 0); + $this->setState('filter.catid', $catid); + parent::populateState($ordering, $direction); } @@ -154,6 +157,17 @@ class LocationsModel extends ListModel ->bind(':state', $state); } + // Category filter + $catid = (int) $this->getState('filter.catid'); + + if ($catid > 0) + { + $query->join('INNER', $db->quoteName('#__mokosuitestorelocator_location_categories', 'lc') + . ' ON ' . $db->quoteName('lc.location_id') . ' = ' . $db->quoteName('a.id')) + ->where($db->quoteName('lc.category_id') . ' = :catid') + ->bind(':catid', $catid, ParameterType::INTEGER); + } + // Proximity / Haversine distance filter $lat = $this->getState('filter.lat'); $lng = $this->getState('filter.lng'); @@ -179,10 +193,17 @@ class LocationsModel extends ListModel } else { - // Default ordering - $orderCol = $this->state->get('list.ordering', 'a.ordering'); - $orderDir = $this->state->get('list.direction', 'ASC'); - $query->order($db->escape($orderCol) . ' ' . $db->escape($orderDir)); + // Default ordering — validate against filter_fields allowlist + $orderCol = $this->state->get('list.ordering', 'a.ordering'); + $orderDir = $this->state->get('list.direction', 'ASC'); + + if (!\in_array($orderCol, $this->filter_fields, true)) + { + $orderCol = 'a.ordering'; + } + + $orderDir = strtoupper($orderDir) === 'DESC' ? 'DESC' : 'ASC'; + $query->order($db->quoteName($orderCol) . ' ' . $orderDir); } return $query; diff --git a/source/packages/mod_mokosuitestorelocator_map/src/Dispatcher/Dispatcher.php b/source/packages/mod_mokosuitestorelocator_map/src/Dispatcher/Dispatcher.php index 4b3c131..3d7eb3c 100644 --- a/source/packages/mod_mokosuitestorelocator_map/src/Dispatcher/Dispatcher.php +++ b/source/packages/mod_mokosuitestorelocator_map/src/Dispatcher/Dispatcher.php @@ -41,20 +41,29 @@ class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareI $query = $db->getQuery(true); $query->select([ - $db->quoteName('id'), - $db->quoteName('title'), - $db->quoteName('address'), - $db->quoteName('city'), - $db->quoteName('state'), - $db->quoteName('postcode'), - $db->quoteName('phone'), - $db->quoteName('latitude'), - $db->quoteName('longitude'), + $db->quoteName('a.id'), + $db->quoteName('a.title'), + $db->quoteName('a.address'), + $db->quoteName('a.city'), + $db->quoteName('a.state'), + $db->quoteName('a.postcode'), + $db->quoteName('a.phone'), + $db->quoteName('a.latitude'), + $db->quoteName('a.longitude'), ]) - ->from($db->quoteName('#__mokosuitestorelocator_locations')) - ->where($db->quoteName('published') . ' = 1') - ->where($db->quoteName('latitude') . ' IS NOT NULL') - ->where($db->quoteName('longitude') . ' IS NOT NULL'); + ->from($db->quoteName('#__mokosuitestorelocator_locations', 'a')) + ->where($db->quoteName('a.published') . ' = 1') + ->where($db->quoteName('a.latitude') . ' IS NOT NULL') + ->where($db->quoteName('a.longitude') . ' IS NOT NULL'); + + // Join to get primary category marker icon + $query->select([$db->quoteName('c.marker_icon'), $db->quoteName('c.color', 'cat_color')]) + ->join('LEFT', $db->quoteName('#__mokosuitestorelocator_location_categories', 'lc') + . ' ON ' . $db->quoteName('lc.location_id') . ' = ' . $db->quoteName('a.id')) + ->join('LEFT', $db->quoteName('#__mokosuitestorelocator_categories', 'c') + . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('lc.category_id') + . ' AND ' . $db->quoteName('c.published') . ' = 1') + ->group($db->quoteName('a.id')); $db->setQuery($query); $locations = $db->loadObjectList() ?: []; @@ -63,7 +72,7 @@ class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareI foreach ($locations as $loc) { - $markers[] = [ + $marker = [ 'id' => (int) $loc->id, 'title' => $loc->title, 'address' => trim($loc->address . ', ' . $loc->city . ', ' . $loc->state . ' ' . $loc->postcode, ', '), @@ -71,6 +80,18 @@ class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareI 'lat' => (float) $loc->latitude, 'lng' => (float) $loc->longitude, ]; + + if (!empty($loc->marker_icon)) + { + $marker['marker_icon'] = $loc->marker_icon; + } + + if (!empty($loc->cat_color)) + { + $marker['cat_color'] = $loc->cat_color; + } + + $markers[] = $marker; } $data['locations'] = $markers; diff --git a/source/packages/mod_mokosuitestorelocator_map/tmpl/default.php b/source/packages/mod_mokosuitestorelocator_map/tmpl/default.php index 2fed686..16964dd 100644 --- a/source/packages/mod_mokosuitestorelocator_map/tmpl/default.php +++ b/source/packages/mod_mokosuitestorelocator_map/tmpl/default.php @@ -15,6 +15,11 @@ $params = $displayData['params']; $locations = $displayData['locations'] ?? []; $moduleId = $displayData['module']->id; $mapHeight = $params->get('map_height', '400px'); + +if (!preg_match('/^\d+(px|em|rem|vh|%)$/', $mapHeight)) +{ + $mapHeight = '400px'; +} $mapZoom = (int) $params->get('map_zoom', 10); $provider = $params->get('map_provider', 'leaflet'); $apiKey = $params->get('api_key', ''); @@ -69,7 +74,16 @@ document.addEventListener('DOMContentLoaded', function() { } locations.forEach(function(loc) { - var marker = L.marker([loc.lat, loc.lng]).addTo(map); + var markerOptions = {}; + if (loc.marker_icon) { + markerOptions.icon = L.icon({ + iconUrl: loc.marker_icon, + iconSize: [32, 32], + iconAnchor: [16, 32], + popupAnchor: [0, -32] + }); + } + var marker = L.marker([loc.lat, loc.lng], markerOptions).addTo(map); var popup = '' + esc(loc.title) + ''; if (loc.address) popup += '
' + esc(loc.address); if (loc.phone) popup += '
' + esc(loc.phone) + ''; diff --git a/source/packages/plg_webservices_mokosuitestorelocator/language/en-GB/plg_webservices_mokosuitestorelocator.ini b/source/packages/plg_webservices_mokosuitestorelocator/language/en-GB/plg_webservices_mokosuitestorelocator.ini new file mode 100644 index 0000000..a79710d --- /dev/null +++ b/source/packages/plg_webservices_mokosuitestorelocator/language/en-GB/plg_webservices_mokosuitestorelocator.ini @@ -0,0 +1,2 @@ +PLG_WEBSERVICES_MOKOSUITESTORELOCATOR="MokoSuiteStoreLocator - Web Services" +PLG_WEBSERVICES_MOKOSUITESTORELOCATOR_DESC="Provides REST API endpoints for the MokoSuiteStoreLocator component." diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml new file mode 100644 index 0000000..4316def --- /dev/null +++ b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml @@ -0,0 +1,24 @@ + + + + plg_webservices_mokosuitestorelocator + 01.00.01 + 2026-06-24 + Moko Consulting + hello@mokoconsulting.tech + https://mokoconsulting.tech + Copyright (C) 2026 Moko Consulting. All rights reserved. + GNU General Public License version 3 or later; see LICENSE + PLG_WEBSERVICES_MOKOSUITESTORELOCATOR_DESC + + Moko\Plugin\WebServices\MokoSuiteStoreLocator + + + services + src + language + + diff --git a/source/packages/plg_webservices_mokosuitestorelocator/services/provider.php b/source/packages/plg_webservices_mokosuitestorelocator/services/provider.php new file mode 100644 index 0000000..85cca5e --- /dev/null +++ b/source/packages/plg_webservices_mokosuitestorelocator/services/provider.php @@ -0,0 +1,37 @@ +set( + PluginInterface::class, + function (Container $container) { + $dispatcher = $container->get(DispatcherInterface::class); + $plugin = new MokoSuiteStoreLocator( + $dispatcher, + (array) PluginHelper::getPlugin('webservices', 'mokosuitestorelocator') + ); + $plugin->setApplication(Factory::getApplication()); + + return $plugin; + } + ); + } +}; diff --git a/source/packages/plg_webservices_mokosuitestorelocator/src/Extension/MokoSuiteStoreLocator.php b/source/packages/plg_webservices_mokosuitestorelocator/src/Extension/MokoSuiteStoreLocator.php new file mode 100644 index 0000000..710c9f0 --- /dev/null +++ b/source/packages/plg_webservices_mokosuitestorelocator/src/Extension/MokoSuiteStoreLocator.php @@ -0,0 +1,57 @@ + 'onBeforeApiRoute', + ]; + } + + /** + * Register API routes. + * + * @param \Joomla\CMS\Event\ApiRouterEvent $event The event. + * + * @return void + * + * @since 1.2.0 + */ + public function onBeforeApiRoute($event): void + { + $router = $event->getArgument('router') ?? $event->getRouter(); + + $router->createCRUDRoutes( + 'v1/mokosuitestorelocator/locations', + 'locations', + ['component' => 'com_mokosuitestorelocator'] + ); + } +} diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 9eac2e4..27929cf 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -32,6 +32,7 @@ com_mokosuitestorelocator.zip mod_mokosuitestorelocator_map.zip mod_mokosuitestorelocator_search.zip + plg_webservices_mokosuitestorelocator.zip -- 2.52.0 From 1c443be9ea2c66ad9409f41731f541580bbd925d Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sat, 27 Jun 2026 19:44:07 +0000 Subject: [PATCH 06/57] chore(version): auto-bump patch 01.00.02-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../plg_webservices_mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 9854dfb..9db0f4c 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.01 +# VERSION: 01.00.02 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 714711d..9987cdc 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.01 + VERSION: 01.00.02 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 3abcc1d..b1b9246 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.01 +VERSION: 01.00.02 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 76f1598..dd0fe45 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.01 + 01.00.02 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 0568efd..a0d446e 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.01 + 01.00.02 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 4d8dd0e..418ad4f 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.01 + 01.00.02 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml index 4316def..7b2281a 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.01 + 01.00.02 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 27929cf..0d40729 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.01 + 01.00.02 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From f469aa7e6446d72a5ed4a923dc366ae259bbee60 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sat, 27 Jun 2026 19:44:16 +0000 Subject: [PATCH 07/57] chore(version): pre-release bump to 01.00.03-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../plg_webservices_mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 9db0f4c..b5b8acc 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.02 +# VERSION: 01.00.03 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 9987cdc..9655fc1 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.02 + VERSION: 01.00.03 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index b1b9246..8dc4930 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.02 +VERSION: 01.00.03 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index dd0fe45..d947a13 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.02 + 01.00.03 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index a0d446e..a99b2b9 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.02 + 01.00.03 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 418ad4f..bfc8a5d 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.02 + 01.00.03 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml index 7b2281a..cf21f62 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.02 + 01.00.03 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 0d40729..68e0da5 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.02 + 01.00.03 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From f0d8c7ecbf3e54a96439565576f3795c474b02be Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sat, 27 Jun 2026 20:19:25 +0000 Subject: [PATCH 08/57] chore(version): pre-release bump to 01.00.04-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../plg_webservices_mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index b5b8acc..be20e03 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.03 +# VERSION: 01.00.04 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 9655fc1..9525212 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.03 + VERSION: 01.00.04 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 8dc4930..d284631 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.03 +VERSION: 01.00.04 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index d947a13..25e03a5 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.03 + 01.00.04 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index a99b2b9..9257ea4 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.03 + 01.00.04 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index bfc8a5d..48efc2a 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.03 + 01.00.04 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml index cf21f62..ee2de9c 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.03 + 01.00.04 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 68e0da5..5c61e98 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.03 + 01.00.04 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 3efd423e74727c9f1346f104d36d996e8d0de461 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 27 Jun 2026 15:23:31 -0500 Subject: [PATCH 09/57] fix: add module services/provider.php and fix manifest packaging MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both modules were missing services/provider.php — the Joomla 5 DI entry point that registers the ModuleDispatcherFactory. Without it, Joomla falls back to a mod_*.php entry point file that doesn't exist, causing "No module file specified" on install. Also moves access.xml into admin/ and adds it to the component manifest so it gets included in the package ZIP. Authored-by: Moko Consulting --- .../{ => admin}/access.xml | 0 .../mokosuitestorelocator.xml | 1 + .../mod_mokosuitestorelocator_map.xml | 1 + .../services/provider.php | 25 +++++++++++++++++++ .../mod_mokosuitestorelocator_search.xml | 1 + .../services/provider.php | 25 +++++++++++++++++++ 6 files changed, 53 insertions(+) rename source/packages/com_mokosuitestorelocator/{ => admin}/access.xml (100%) create mode 100644 source/packages/mod_mokosuitestorelocator_map/services/provider.php create mode 100644 source/packages/mod_mokosuitestorelocator_search/services/provider.php diff --git a/source/packages/com_mokosuitestorelocator/access.xml b/source/packages/com_mokosuitestorelocator/admin/access.xml similarity index 100% rename from source/packages/com_mokosuitestorelocator/access.xml rename to source/packages/com_mokosuitestorelocator/admin/access.xml diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 25e03a5..1098761 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -58,6 +58,7 @@ + access.xml forms language services diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 9257ea4..ab09fa5 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -26,6 +26,7 @@ Moko\Module\MokoSuiteStoreLocatorMap + services src tmpl language diff --git a/source/packages/mod_mokosuitestorelocator_map/services/provider.php b/source/packages/mod_mokosuitestorelocator_map/services/provider.php new file mode 100644 index 0000000..6ad82a0 --- /dev/null +++ b/source/packages/mod_mokosuitestorelocator_map/services/provider.php @@ -0,0 +1,25 @@ +registerServiceProvider(new ModuleDispatcherFactory('\\Moko\\Module\\MokoSuiteStoreLocatorMap')); + $container->registerServiceProvider(new HelperFactory('\\Moko\\Module\\MokoSuiteStoreLocatorMap\\Helper')); + $container->registerServiceProvider(new Module()); + } +}; diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 48efc2a..42965b1 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -26,6 +26,7 @@ Moko\Module\MokoSuiteStoreLocatorSearch + services src tmpl language diff --git a/source/packages/mod_mokosuitestorelocator_search/services/provider.php b/source/packages/mod_mokosuitestorelocator_search/services/provider.php new file mode 100644 index 0000000..bd0e032 --- /dev/null +++ b/source/packages/mod_mokosuitestorelocator_search/services/provider.php @@ -0,0 +1,25 @@ +registerServiceProvider(new ModuleDispatcherFactory('\\Moko\\Module\\MokoSuiteStoreLocatorSearch')); + $container->registerServiceProvider(new HelperFactory('\\Moko\\Module\\MokoSuiteStoreLocatorSearch\\Helper')); + $container->registerServiceProvider(new Module()); + } +}; -- 2.52.0 From 4258fd1d4f62da0b039268e897d1d178db5b6bc7 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sat, 27 Jun 2026 20:23:59 +0000 Subject: [PATCH 10/57] chore(version): auto-bump patch 01.00.05-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../plg_webservices_mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index be20e03..ae567e5 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.04 +# VERSION: 01.00.05 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 9525212..88597e8 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.04 + VERSION: 01.00.05 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index d284631..a8d391a 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.04 +VERSION: 01.00.05 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 1098761..f58c06d 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.04 + 01.00.05 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index ab09fa5..a9c3838 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.04 + 01.00.05 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 42965b1..6be5114 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.04 + 01.00.05 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml index ee2de9c..07cfd63 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.04 + 01.00.05 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 5c61e98..f2b86e4 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.04 + 01.00.05 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 569f9075126b824e63396e7addf5fbe70b57e1d8 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sat, 27 Jun 2026 20:24:14 +0000 Subject: [PATCH 11/57] chore(version): pre-release bump to 01.00.06-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../plg_webservices_mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index ae567e5..7479247 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.05 +# VERSION: 01.00.06 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 88597e8..612a41b 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.05 + VERSION: 01.00.06 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index a8d391a..c638a31 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.05 +VERSION: 01.00.06 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index f58c06d..c4ecd57 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.05 + 01.00.06 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index a9c3838..dc6ad04 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.05 + 01.00.06 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 6be5114..e23538d 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.05 + 01.00.06 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml index 07cfd63..fdecfba 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.05 + 01.00.06 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index f2b86e4..604f87a 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.05 + 01.00.06 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 81854440de2c382e9dd4fcbf42518f5eeec6d3ba Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 27 Jun 2026 15:35:10 -0500 Subject: [PATCH 12/57] fix: move dlid before updateservers so Joomla registers download key The element was placed after , causing Joomla's installer to skip it when registering the update site. Moving it before ensures the extra_query field is populated in the #__update_sites table. Authored-by: Moko Consulting --- source/pkg_mokosuitestorelocator.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 604f87a..800d10e 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -35,9 +35,9 @@ plg_webservices_mokosuitestorelocator.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteStoreLocator/updates.xml - true -- 2.52.0 From 4e9e698d2cf2dbcd4ab13568ebeaf0f5c8c74acb Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sat, 27 Jun 2026 20:35:36 +0000 Subject: [PATCH 13/57] chore(version): auto-bump patch 01.00.07-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../plg_webservices_mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 7479247..3c279dd 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.06 +# VERSION: 01.00.07 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 612a41b..21af3b6 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.06 + VERSION: 01.00.07 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index c638a31..96635e2 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.06 +VERSION: 01.00.07 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index c4ecd57..8aea492 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.06 + 01.00.07 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index dc6ad04..db937f9 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.06 + 01.00.07 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index e23538d..ffbfdea 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.06 + 01.00.07 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml index fdecfba..50d971d 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.06 + 01.00.07 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 800d10e..db8bf26 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.06 + 01.00.07 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 7c51396d8df8a5e776a0210f95fe74c3ed09a30b Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sat, 27 Jun 2026 20:35:46 +0000 Subject: [PATCH 14/57] chore(version): pre-release bump to 01.00.08-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../plg_webservices_mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 3c279dd..6acab30 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.07 +# VERSION: 01.00.08 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 21af3b6..2850012 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.07 + VERSION: 01.00.08 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 96635e2..0067a21 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.07 +VERSION: 01.00.08 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 8aea492..0aabfd9 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.07 + 01.00.08 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index db937f9..ac1ba4a 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.07 + 01.00.08 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index ffbfdea..79ddb1d 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.07 + 01.00.08 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml index 50d971d..b7e4dfc 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.07 + 01.00.08 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index db8bf26..1beaeb8 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.07 + 01.00.08 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From e16e15dc000dc1031c39421c2a8fab40cdd96a74 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 27 Jun 2026 15:40:19 -0500 Subject: [PATCH 15/57] fix: align dlid and updateservers with MokoSuiteClient pattern Move to right after (before ) and add priority="1" to element, matching the MokoSuiteClient manifest structure so Joomla properly registers the download key field. Authored-by: Moko Consulting --- source/pkg_mokosuitestorelocator.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 1beaeb8..af4b6c0 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -26,6 +26,7 @@ Copyright (C) 2026 Moko Consulting. All rights reserved. GNU General Public License version 3 or later; see LICENSE PKG_MOKOJOOMSTORELOCATOR_DESC + script.php @@ -35,9 +36,8 @@ plg_webservices_mokosuitestorelocator.zip - - https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteStoreLocator/updates.xml + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteStoreLocator/updates.xml true -- 2.52.0 From 5ccc0246bbfad601b6acb9ca429c32c8c71a8411 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sat, 27 Jun 2026 20:40:35 +0000 Subject: [PATCH 16/57] chore(version): auto-bump patch 01.00.09-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../plg_webservices_mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 6acab30..a0f3e4c 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.08 +# VERSION: 01.00.09 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 2850012..16cf8e6 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.08 + VERSION: 01.00.09 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 0067a21..c5d49dd 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.08 +VERSION: 01.00.09 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 0aabfd9..d4fdd1c 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.08 + 01.00.09 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index ac1ba4a..fb230fc 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.08 + 01.00.09 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 79ddb1d..7fe6230 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.08 + 01.00.09 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml index b7e4dfc..82ad824 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.08 + 01.00.09 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index af4b6c0..087b00c 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.08 + 01.00.09 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From bb30e0cd20389ed71e56265338f5b4558f24b63e Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sat, 27 Jun 2026 20:40:46 +0000 Subject: [PATCH 17/57] chore(version): pre-release bump to 01.00.10-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../plg_webservices_mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index a0f3e4c..5af1ae6 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.09 +# VERSION: 01.00.10 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 16cf8e6..3481a82 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.09 + VERSION: 01.00.10 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index c5d49dd..82f4496 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.09 +VERSION: 01.00.10 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index d4fdd1c..4105536 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.09 + 01.00.10 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index fb230fc..3c6fa65 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.09 + 01.00.10 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 7fe6230..c750086 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.09 + 01.00.10 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml index 82ad824..791ad77 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.09 + 01.00.10 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 087b00c..82c46fd 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.09 + 01.00.10 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 36eb55758e731d19ea91d0c3978efa5742086cf3 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 27 Jun 2026 19:26:44 -0500 Subject: [PATCH 18/57] fix: add module attribute to services folder and hardcode package description Joomla's ModuleAdapter requires the `module` attribute on a child to identify the module element. Without it, install fails with "No module file specified" even when namespace and services/provider.php are present. Pattern confirmed against MokoSuiteClient modules. Also hardcodes the package description since packages don't load language files during install, causing the raw key to display. Authored-by: Moko Consulting --- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 3c6fa65..66750d1 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -26,7 +26,7 @@ Moko\Module\MokoSuiteStoreLocatorMap - services + services src tmpl language diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index c750086..1e20a32 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -26,7 +26,7 @@ Moko\Module\MokoSuiteStoreLocatorSearch - services + services src tmpl language diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 82c46fd..38bfc2c 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -25,7 +25,7 @@ https://mokoconsulting.tech Copyright (C) 2026 Moko Consulting. All rights reserved. GNU General Public License version 3 or later; see LICENSE - PKG_MOKOJOOMSTORELOCATOR_DESC + MokoSuiteStoreLocator — store locator component with interactive map and search modules for Joomla 5/6. script.php -- 2.52.0 From 8a9a3851e0cea47ae2d44b1e64f85ebc64aa1a13 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 00:26:59 +0000 Subject: [PATCH 19/57] chore(version): auto-bump patch 01.00.11-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../plg_webservices_mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 5af1ae6..5ea8b3a 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.10 +# VERSION: 01.00.11 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 3481a82..73ae42b 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.10 + VERSION: 01.00.11 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 82f4496..f2a53f6 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.10 +VERSION: 01.00.11 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 4105536..29ff83a 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.10 + 01.00.11 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 66750d1..424f6df 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.10 + 01.00.11 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 1e20a32..d71e677 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.10 + 01.00.11 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml index 791ad77..32803f9 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.10 + 01.00.11 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 38bfc2c..ba1fd9f 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.10 + 01.00.11 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From d9460d3f07265082bcc1b161f761f5125f8aadc1 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 00:27:09 +0000 Subject: [PATCH 20/57] chore(version): pre-release bump to 01.00.12-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../plg_webservices_mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 5ea8b3a..e4d58aa 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.11 +# VERSION: 01.00.12 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 73ae42b..09277a0 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.11 + VERSION: 01.00.12 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index f2a53f6..03fb34a 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.11 +VERSION: 01.00.12 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 29ff83a..ef31a7b 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.11 + 01.00.12 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 424f6df..4faa179 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.11 + 01.00.12 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index d71e677..9fb77ba 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.11 + 01.00.12 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml index 32803f9..de69c43 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.11 + 01.00.12 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index ba1fd9f..91b74b7 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.11 + 01.00.12 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 5f8ab19abdce3bc3d5577606633778660f82b053 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 02:07:04 +0000 Subject: [PATCH 21/57] chore(version): pre-release bump to 01.00.13-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../plg_webservices_mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index e4d58aa..524edf9 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.12 +# VERSION: 01.00.13 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 09277a0..b057c79 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.12 + VERSION: 01.00.13 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 03fb34a..e8c794b 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.12 +VERSION: 01.00.13 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index ef31a7b..4be52af 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.12 + 01.00.13 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 4faa179..a03bb99 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.12 + 01.00.13 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 9fb77ba..d747987 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.12 + 01.00.13 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml index de69c43..554e8e4 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.12 + 01.00.13 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 91b74b7..0d20588 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.12 + 01.00.13 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From b75677a6eccbab5bf259d726561f8a8ddedb2920 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 27 Jun 2026 21:59:35 -0500 Subject: [PATCH 22/57] fix: add plugin attribute to webservices manifest files element Joomla's PluginAdapter requires plugin="xxx" on a child to determine filesystem deployment path and extension element. Without it, plugin files are not deployed and the element field is empty in #__extensions. Pattern confirmed from MokoSuiteClient. Authored-by: Moko Consulting --- .../plg_webservices_mokosuitestorelocator.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml index 554e8e4..b87bc80 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml @@ -17,7 +17,7 @@ Moko\Plugin\WebServices\MokoSuiteStoreLocator - services + services src language -- 2.52.0 From 6c83e5530f4435cd50873aae7d742569629b3e12 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 02:59:49 +0000 Subject: [PATCH 23/57] chore(version): auto-bump patch 01.00.14-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../plg_webservices_mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 524edf9..60f42e7 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.13 +# VERSION: 01.00.14 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index b057c79..cffb1c5 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.13 + VERSION: 01.00.14 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index e8c794b..b3ce1e7 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.13 +VERSION: 01.00.14 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 4be52af..6c5c448 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.13 + 01.00.14 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index a03bb99..9ca943c 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.13 + 01.00.14 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index d747987..41a506b 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.13 + 01.00.14 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml index b87bc80..0f762bd 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.13 + 01.00.14 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 0d20588..fb21923 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.13 + 01.00.14 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 72949fefa521f677be340ac0d931472c19e691e6 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 02:59:59 +0000 Subject: [PATCH 24/57] chore(version): pre-release bump to 01.00.15-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../plg_webservices_mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 60f42e7..73299f2 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.14 +# VERSION: 01.00.15 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index cffb1c5..9a16b75 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.14 + VERSION: 01.00.15 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index b3ce1e7..48ed8b9 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.14 +VERSION: 01.00.15 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 6c5c448..c601ae1 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.14 + 01.00.15 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 9ca943c..0393007 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.14 + 01.00.15 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 41a506b..aa3b1c5 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.14 + 01.00.15 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml index 0f762bd..8ce73d4 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.14 + 01.00.15 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index fb21923..6b07418 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.14 + 01.00.15 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 7835e779200d21f92959077c79df63c3f69e4d22 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 27 Jun 2026 22:09:48 -0500 Subject: [PATCH 25/57] fix: rename plugin manifest to match element name Joomla's autoloader namespace scanner expects plugin manifests to be named {element}.xml (e.g. mokosuitestorelocator.xml), not the full prefixed name (plg_webservices_mokosuitestorelocator.xml). Without the correct filename, the PSR-4 namespace mapping is not registered in autoload_psr4.php, causing "Class not found" errors. Pattern confirmed from MokoSuiteClient's webservices plugin. Authored-by: Moko Consulting --- ...rvices_mokosuitestorelocator.xml => mokosuitestorelocator.xml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename source/packages/plg_webservices_mokosuitestorelocator/{plg_webservices_mokosuitestorelocator.xml => mokosuitestorelocator.xml} (100%) diff --git a/source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml similarity index 100% rename from source/packages/plg_webservices_mokosuitestorelocator/plg_webservices_mokosuitestorelocator.xml rename to source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml -- 2.52.0 From 0be86aec5a06bcc4b6f5db29eed72d0f50185c0d Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 03:10:01 +0000 Subject: [PATCH 26/57] chore(version): auto-bump patch 01.00.16-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 73299f2..439df17 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.15 +# VERSION: 01.00.16 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 9a16b75..8e3fe22 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.15 + VERSION: 01.00.16 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 48ed8b9..4d6ae5f 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.15 +VERSION: 01.00.16 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index c601ae1..9fe0b79 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.15 + 01.00.16 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 0393007..6322dac 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.15 + 01.00.16 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index aa3b1c5..f82f03b 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.15 + 01.00.16 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index 8ce73d4..19480ed 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.15 + 01.00.16 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 6b07418..a87a6d2 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.15 + 01.00.16 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 45661df50eb996e897e80bed2e49e09185c79ecd Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 03:10:09 +0000 Subject: [PATCH 27/57] chore(version): pre-release bump to 01.00.17-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 439df17..b173209 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.16 +# VERSION: 01.00.17 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 8e3fe22..a706aa6 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.16 + VERSION: 01.00.17 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 4d6ae5f..dd8e115 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.16 +VERSION: 01.00.17 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 9fe0b79..7a1f8da 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.16 + 01.00.17 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 6322dac..b1dc1b1 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.16 + 01.00.17 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index f82f03b..da3069f 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.16 + 01.00.17 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index 19480ed..448f079 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.16 + 01.00.17 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index a87a6d2..ce7318a 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.16 + 01.00.17 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 1d600184b1132443142f3463cedc11909c2ccd54 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 03:44:05 +0000 Subject: [PATCH 28/57] chore(version): pre-release bump to 01.00.18-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index b173209..93b5844 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.17 +# VERSION: 01.00.18 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index a706aa6..6df31e5 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.17 + VERSION: 01.00.18 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index dd8e115..5c50e49 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.17 +VERSION: 01.00.18 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 7a1f8da..c968733 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.17 + 01.00.18 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index b1dc1b1..738cff6 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.17 + 01.00.18 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index da3069f..5161576 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.17 + 01.00.18 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index 448f079..f58038b 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.17 + 01.00.18 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index ce7318a..235c683 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.17 + 01.00.18 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 99df65b66f384813d4fcd4b7f3c03bc28c91f221 Mon Sep 17 00:00:00 2001 From: Jonathan Miller <1+jmiller@noreply.git.mokoconsulting.tech> Date: Sun, 28 Jun 2026 07:58:38 +0000 Subject: [PATCH 29/57] chore: sync GOVERNANCE.md from Template-Joomla Authored-by: Moko Consulting --- GOVERNANCE.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 GOVERNANCE.md diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 0000000..bad8ed0 --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1 @@ +PCEtLQogQ29weXJpZ2h0IChDKSAyMDI2IE1va28gQ29uc3VsdGluZyA8aGVsbG9AbW9rb2NvbnN1bHRpbmcudGVjaD4KCiBUaGlzIGZpbGUgaXMgcGFydCBvZiBhIE1va28gQ29uc3VsdGluZyBwcm9qZWN0LgoKIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMy4wLW9yLWxhdGVyCgogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mCiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMKIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7CiB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgogU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICguL0xJQ0VOU0UpLgoKIEZJTEUgSU5GT1JNQVRJT04KIERFRkdST1VQOiBtb2tvY29uc3VsdGluZy10ZWNoLlRlbXBsYXRlLUpvb21sYQogSU5HUk9VUDogTW9rb1N0YW5kYXJkcy5Hb3Zlcm5hbmNlCiBSRVBPOiBodHRwczovL2dpdGh1Yi5jb20vbW9rb2NvbnN1bHRpbmctdGVjaC9UZW1wbGF0ZS1Kb29tbGEKIFZFUlNJT046IDAxLjAxLjAwCiBQQVRIOiAvR09WRVJOQU5DRS5tZAogQlJJRUY6IFByb2plY3QgZ292ZXJuYW5jZSBydWxlcywgcm9sZXMsIGFuZCBkZWNpc2lvbiBwcm9jZXNzIGZvciBUZW1wbGF0ZS1Kb29tbGEKLS0+CgpbIVtNb2tvU3RhbmRhcmRzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL01va29TdGFuZGFyZHMtMDQuMDAuMDQtYmx1ZSldKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2tvY29uc3VsdGluZy10ZWNoL01va29TdGFuZGFyZHMpCgojIFByb2plY3QgR292ZXJuYW5jZQoKIyMgT3ZlcnZpZXcKClRoaXMgZG9jdW1lbnQgZGVmaW5lcyB0aGUgZ292ZXJuYW5jZSBtb2RlbCBmb3IgdGhlIGBUZW1wbGF0ZS1Kb29tbGFgIHJlcG9zaXRvcnkgd2l0aGluIHRoZQpgbW9rb2NvbnN1bHRpbmctdGVjaGAgb3JnYW5pemF0aW9uLiBJdCBpcyBhdXRvbWF0aWNhbGx5IG1haW50YWluZWQgYnkKW01va29TdGFuZGFyZHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2tvY29uc3VsdGluZy10ZWNoL01va29TdGFuZGFyZHMpIHYwNC4wMC4wNC4KCkZ1bGwgZ292ZXJuYW5jZSBwb2xpY3kgaXMgZGVmaW5lZCBpbiB0aGUgTW9rb1N0YW5kYXJkcyBzb3VyY2UgcmVwb3NpdG9yeToKW2RvY3MvcG9saWN5L0dPVkVSTkFOQ0UubWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2tvY29uc3VsdGluZy10ZWNoL01va29TdGFuZGFyZHMvYmxvYi9tYWluL2RvY3MvcG9saWN5L0dPVkVSTkFOQ0UubWQpCgotLS0KCiMjIFJvbGVzIGFuZCBSZXNwb25zaWJpbGl0aWVzCgojIyMgTWFpbnRhaW5lcgoKKipHaXRIdWIqKjogQG1va29jb25zdWx0aW5nLXRlY2gKCioqQXV0aG9yaXR5Kio6IEZpbmFsIGRlY2lzaW9uLW1ha2luZyBhdXRob3JpdHkgb24gYWxsIG1hdHRlcnMgZm9yIHRoaXMgcmVwb3NpdG9yeS4KCioqUmVzcG9uc2liaWxpdGllcyoqOgotIFJldmlldyBhbmQgbWVyZ2UgcHVsbCByZXF1ZXN0cwotIE1haW50YWluIGNvZGUgcXVhbGl0eSBhbmQgc3RhbmRhcmRzIGNvbXBsaWFuY2UKLSBNYW5hZ2UgcmVsZWFzZXMgYW5kIHZlcnNpb25pbmcKLSBSZXNwb25kIHRvIGlzc3VlcyBhbmQgc2VjdXJpdHkgcmVwb3J0cwoKIyMjIENvbnRyaWJ1dG9ycwoKKipBdXRob3JpdHkqKjogU3VibWl0IGNoYW5nZXMgdmlhIHB1bGwgcmVxdWVzdHMuCgoqKlJlcXVpcmVtZW50cyoqOgotIFJlYWQgYW5kIGFjY2VwdCBgQ09ERV9PRl9DT05EVUNULm1kYAotIEZvbGxvdyBgQ09OVFJJQlVUSU5HLm1kYCBndWlkZWxpbmVzCgotLS0KCiMjIERlY2lzaW9uLU1ha2luZwoKQWxsIGNoYW5nZXMgbXVzdCBiZSBzdWJtaXR0ZWQgYXMgcHVsbCByZXF1ZXN0cy4gVGhlIG1haW50YWluZXIgKEBtb2tvY29uc3VsdGluZy10ZWNoKQpyZXZpZXdzIGFuZCBhcHByb3ZlcyBhbGwgY2hhbmdlcyBiZWZvcmUgdGhleSBhcmUgbWVyZ2VkLgoKIyMjIFNvbGUgT3BlcmF0b3IgUG9saWN5CgpUaGlzIG9yZ2FuaXphdGlvbiBvcGVyYXRlcyB1bmRlciBhICoqc29sZSBvcGVyYXRvcioqIG1vZGVsLiBUaGUgbWFpbnRhaW5lciAoQG1va29jb25zdWx0aW5nLXRlY2gpCmlzIHRoZSBzb2xlIGVtcGxveWVlIGFuZCBvd25lciBhbmQgbWF5IHNlbGYtYXBwcm92ZSBwdWxsIHJlcXVlc3RzIHdoZW4gbm8gc2Vjb25kIHJldmlld2VyIGlzCmF2YWlsYWJsZS4gVGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHMgcmVtYWluIG1hbmRhdG9yeSByZWdhcmRsZXNzOgoKMS4gKipQdWxsIFJlcXVlc3RzIFJlcXVpcmVkKiog4oCUIGFsbCBjaGFuZ2VzIHRvIHByb3RlY3RlZCBicmFuY2hlcyBnbyB0aHJvdWdoIGEgUFIuCjIuICoqQXV0b21hdGVkIENoZWNrcyoqIOKAlCBhbGwgQ0kgY2hlY2tzIG11c3QgcGFzcyBiZWZvcmUgbWVyZ2luZy4KMy4gKipBdWRpdCBUcmFpbCoqIOKAlCBpc3N1ZXMsIHB1bGwgcmVxdWVzdHMsIGFuZCBjb21taXQgaGlzdG9yeSBhcmUgcHJlc2VydmVkLgo0LiAqKkRvY3VtZW50YXRpb24qKiDigJQgY2hhbmdlcyBhcmUgZG9jdW1lbnRlZCBpbiBgQ0hBTkdFTE9HLm1kYC4KClNlZSB0aGUgZnVsbCBwb2xpY3k6CltTb2xlIE9wZXJhdG9yIFBvbGljeV0oaHR0cHM6Ly9naXRodWIuY29tL21va29jb25zdWx0aW5nLXRlY2gvTW9rb1N0YW5kYXJkcy9ibG9iL21haW4vZG9jcy9wb2xpY3kvR09WRVJOQU5DRS5tZCNzb2xlLW9wZXJhdG9yLXBvbGljeSkKCi0tLQoKIyMgQ2hhbmdlIE1hbmFnZW1lbnQKCnwgQ2hhbmdlIFR5cGUgfCBBcHByb3ZhbCB8IFByb2Nlc3MgfAp8LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLXwKfCBSb3V0aW5lIChkb2NzLCBidWcgZml4ZXMpIHwgTWFpbnRhaW5lciB8IFBSIOKGkiBDSSBwYXNzIOKGkiBtZXJnZSB8CnwgU2lnbmlmaWNhbnQgKG5ldyBmZWF0dXJlcykgfCBNYWludGFpbmVyIHwgUFIgd2l0aCBkZXNjcmlwdGlvbiDihpIgQ0kgcGFzcyDihpIgbWVyZ2UgfAp8IE1ham9yIChicmVha2luZywgYXJjaGl0ZWN0dXJlKSB8IE1haW50YWluZXIgfCBJc3N1ZSBkaXNjdXNzaW9uIOKGkiBQUiDihpIgQ0kgcGFzcyDihpIgbWVyZ2UgfAp8IEVtZXJnZW5jeSAoc2VjdXJpdHkpIHwgTWFpbnRhaW5lciB8IExhYmVsbGVkIGBFTUVSR0VOQ1lgIOKGkiBpbW1lZGlhdGUgbWVyZ2Ug4oaSIHBvc3QtbW9ydGVtIHwKCi0tLQoKIyMgUmVwb3J0aW5nIElzc3VlcwoKLSAqKkJ1Z3MgLyBGZWF0dXJlcyoqOiBPcGVuIGEgW0dpdEh1YiBJc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL21va29jb25zdWx0aW5nLXRlY2gvVGVtcGxhdGUtSm9vbWxhL2lzc3VlcykKLSAqKlNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcyoqOiBTZWUgW1NFQ1VSSVRZLm1kXSguL1NFQ1VSSVRZLm1kKQotICoqQ29kZSBvZiBDb25kdWN0Kio6IFNlZSBbQ09ERV9PRl9DT05EVUNULm1kXSguL0NPREVfT0ZfQ09ORFVDVC5tZCkKLSAqKkNvbnRhY3QqKjogZGV2QG1va29jb25zdWx0aW5nLnRlY2gKCi0tLQoKIyMgTWV0YWRhdGEKCnwgRmllbGQgICAgICAgICB8IFZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IERvY3VtZW50IFR5cGUgfCBQb2xpY3kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRG9tYWluICAgICAgICB8IEdvdmVybmFuY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBBcHBsaWVzIFRvICAgIHwgbW9rb2NvbnN1bHRpbmctdGVjaC9UZW1wbGF0ZS1Kb29tbGEgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSnVyaXNkaWN0aW9uICB8IFRlbm5lc3NlZSwgVVNBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBNYWludGFpbmVyICAgIHwgQG1va29jb25zdWx0aW5nLXRlY2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFN0YW5kYXJkcyAgICAgfCBNb2tvU3RhbmRhcmRzIHYwNC4wMC4wNCAgICAgICAgICAgIHwKfCBSZXBvICAgICAgICAgIHwgaHR0cHM6Ly9naXRodWIuY29tL21va29jb25zdWx0aW5nLXRlY2gvVGVtcGxhdGUtSm9vbWxhICAgICAgICB8CnwgUGF0aCAgICAgICAgICB8IC9HT1ZFUk5BTkNFLm1kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBTdGF0dXMgICAgICAgIHwgQWN0aXZlIOKAlCBhdXRvLW1haW50YWluZWQgYnkgTW9rb1N0YW5kYXJkcyAgICAgICB8Cg== \ No newline at end of file -- 2.52.0 From 1b177f267d6b3a3e1ec380778645b5ab5e940f09 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 08:07:56 +0000 Subject: [PATCH 30/57] chore(version): auto-bump patch 01.00.19-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 93b5844..07768a8 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.18 +# VERSION: 01.00.19 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 6df31e5..6508682 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.18 + VERSION: 01.00.19 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 5c50e49..cccc38a 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.18 +VERSION: 01.00.19 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index c968733..ab7ba0e 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.18 + 01.00.19 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 738cff6..31c94b2 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.18 + 01.00.19 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 5161576..937e0ff 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.18 + 01.00.19 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index f58038b..a1f8c7f 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.18 + 01.00.19 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 235c683..74aba1d 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.18 + 01.00.19 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 85a3566ae3469661534d40af0e5e37ef979b9b3f Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 08:08:05 +0000 Subject: [PATCH 31/57] chore(version): pre-release bump to 01.00.20-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 07768a8..f232084 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.19 +# VERSION: 01.00.20 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 6508682..cdf3819 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.19 + VERSION: 01.00.20 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index cccc38a..4630973 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.19 +VERSION: 01.00.20 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index ab7ba0e..1180ea3 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.19 + 01.00.20 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 31c94b2..de09b02 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.19 + 01.00.20 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 937e0ff..0b25a79 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.19 + 01.00.20 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index a1f8c7f..e043b9d 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.19 + 01.00.20 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 74aba1d..a99ee61 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.19 + 01.00.20 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 32b541597a9275e855605f573f869c5ad0d6a346 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sun, 28 Jun 2026 11:22:10 -0500 Subject: [PATCH 32/57] =?UTF-8?q?fix:=20resolve=20all=20open=20issues=20?= =?UTF-8?q?=E2=80=94=20detail=20map,=20clustering,=20CSP,=20GROUP=20BY,=20?= =?UTF-8?q?cleanup=20(#34=20#57=20#58=20#59=20#60=20#61)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add Leaflet map to location detail page with marker and popup (#57) - Implement Leaflet.markercluster with toggleable module parameter (#61) - Convert inline +JS, [], ['position' => 'after'], ['leaflet']); +?> -- 2.52.0 From 80cefe1624569779af2aa9fa517f6b43ec2e68d8 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 16:23:03 +0000 Subject: [PATCH 33/57] chore(version): auto-bump patch 01.00.21-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index f232084..197f8bf 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.20 +# VERSION: 01.00.21 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index cdf3819..932fac7 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.20 + VERSION: 01.00.21 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 4630973..f80ad60 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.20 +VERSION: 01.00.21 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 1180ea3..19fe685 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.20 + 01.00.21 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 5697900..6257531 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.20 + 01.00.21 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 0b25a79..01fb4d2 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.20 + 01.00.21 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index e043b9d..e6aa994 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.20 + 01.00.21 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index a99ee61..2ab3415 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.20 + 01.00.21 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 926b4c75768a1a26ca8bdea67c6c4a0838213544 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 16:23:11 +0000 Subject: [PATCH 34/57] chore(version): pre-release bump to 01.00.22-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 197f8bf..c96dfbd 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.21 +# VERSION: 01.00.22 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 932fac7..a4a9412 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.21 + VERSION: 01.00.22 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index f80ad60..7a28068 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.21 +VERSION: 01.00.22 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 19fe685..0748f21 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.21 + 01.00.22 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 6257531..ab19599 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.21 + 01.00.22 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 01fb4d2..a02245f 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.21 + 01.00.22 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index e6aa994..576bf41 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.21 + 01.00.22 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 2ab3415..7931979 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.21 + 01.00.22 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 2897a1ceba1a3a883026d36396590f92509def9a Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sun, 28 Jun 2026 11:24:12 -0500 Subject: [PATCH 35/57] fix: escape location title in detail map popup to prevent XSS Use DOM-based textContent instead of raw string in Leaflet bindPopup() to prevent HTML injection via location titles. Authored-by: Moko Consulting --- .../com_mokosuitestorelocator/site/tmpl/location/default.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/packages/com_mokosuitestorelocator/site/tmpl/location/default.php b/source/packages/com_mokosuitestorelocator/site/tmpl/location/default.php index bf9b2ea..ef2df01 100644 --- a/source/packages/com_mokosuitestorelocator/site/tmpl/location/default.php +++ b/source/packages/com_mokosuitestorelocator/site/tmpl/location/default.php @@ -137,7 +137,9 @@ if ($item->latitude && $item->longitude) attribution: '© OpenStreetMap contributors', maxZoom: 19 }).addTo(map); - L.marker([lat, lng]).addTo(map).bindPopup(el.getAttribute('data-title') || '').openPopup(); + var span = document.createElement('span'); + span.textContent = el.getAttribute('data-title') || ''; + L.marker([lat, lng]).addTo(map).bindPopup(span).openPopup(); }); JS, [], ['position' => 'after'], ['leaflet']); ?> -- 2.52.0 From dccdb88617922a0662e5abced93718f83b2babc8 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 16:24:51 +0000 Subject: [PATCH 36/57] chore(version): auto-bump patch 01.00.23-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index c96dfbd..835fe3c 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.22 +# VERSION: 01.00.23 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index a4a9412..d41c813 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.22 + VERSION: 01.00.23 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 7a28068..b905dcc 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.22 +VERSION: 01.00.23 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 0748f21..c47594e 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.22 + 01.00.23 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index ab19599..ac8ece0 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.22 + 01.00.23 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index a02245f..f1c4640 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.22 + 01.00.23 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index 576bf41..b68c6de 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.22 + 01.00.23 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 7931979..f50ed4d 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.22 + 01.00.23 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 797101474a335aec2a80f8753f4ca48707b03d44 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 16:24:59 +0000 Subject: [PATCH 37/57] chore(version): pre-release bump to 01.00.24-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 835fe3c..a6de5d4 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.23 +# VERSION: 01.00.24 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index d41c813..2cf92bd 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.23 + VERSION: 01.00.24 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index b905dcc..2b9545f 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.23 +VERSION: 01.00.24 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index c47594e..5abcf93 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.23 + 01.00.24 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index ac8ece0..b6b6af9 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.23 + 01.00.24 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index f1c4640..07d3084 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.23 + 01.00.24 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index b68c6de..c52f682 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.23 + 01.00.24 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index f50ed4d..96551ea 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.23 + 01.00.24 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 41875e7878b85fb97ef88fdb33ee015a6fa1281f Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 17:53:42 +0000 Subject: [PATCH 38/57] chore(version): pre-release bump to 01.00.25-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index a6de5d4..7d76864 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.24 +# VERSION: 01.00.25 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 2cf92bd..09f754f 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.24 + VERSION: 01.00.25 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 2b9545f..d20a5c4 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.24 +VERSION: 01.00.25 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 5abcf93..69e3d39 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.24 + 01.00.25 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index b6b6af9..8336552 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.24 + 01.00.25 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 07d3084..8c81cf0 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.24 + 01.00.25 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index c52f682..0b3c25a 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.24 + 01.00.25 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 96551ea..4604b9d 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.24 + 01.00.25 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 8b42c016a8f90014c86a45a14004e3a3b49575ad Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sun, 28 Jun 2026 13:07:45 -0500 Subject: [PATCH 39/57] fix: remove IF EXISTS syntax from SQL migration for MySQL 5.7 compat Joomla's SQL update runner doesn't support DELIMITER or stored procedures. DROP COLUMN IF EXISTS is MySQL 8.0.13+ only. Plain DROP COLUMN is safe here because update files only run on upgrades from versions that had the catid column. Authored-by: Moko Consulting --- .../admin/sql/updates/mysql/01.00.02.sql | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/packages/com_mokosuitestorelocator/admin/sql/updates/mysql/01.00.02.sql b/source/packages/com_mokosuitestorelocator/admin/sql/updates/mysql/01.00.02.sql index 363495b..d454261 100644 --- a/source/packages/com_mokosuitestorelocator/admin/sql/updates/mysql/01.00.02.sql +++ b/source/packages/com_mokosuitestorelocator/admin/sql/updates/mysql/01.00.02.sql @@ -1,4 +1,5 @@ --- MokoSuiteStoreLocator 01.00.02 — Drop dead catid column, add FK cascade on junction table. +-- MokoSuiteStoreLocator 01.00.02 — Drop legacy catid column. +-- This file only runs on upgrades from < 01.00.02 where catid existed. -ALTER TABLE `#__mokosuitestorelocator_locations` DROP COLUMN IF EXISTS `catid`; -ALTER TABLE `#__mokosuitestorelocator_locations` DROP INDEX IF EXISTS `idx_catid`; +ALTER TABLE `#__mokosuitestorelocator_locations` DROP COLUMN `catid`; +ALTER TABLE `#__mokosuitestorelocator_locations` DROP INDEX `idx_catid`; -- 2.52.0 From edc6bbf62ce78e811e5bc9bd6642dd34c0c5d41e Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 18:08:29 +0000 Subject: [PATCH 40/57] chore(version): auto-bump patch 01.00.26-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 7d76864..268a074 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.25 +# VERSION: 01.00.26 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 09f754f..76585b8 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.25 + VERSION: 01.00.26 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index d20a5c4..d7f9101 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.25 +VERSION: 01.00.26 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 69e3d39..18e2396 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.25 + 01.00.26 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 8336552..4257c7b 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.25 + 01.00.26 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 8c81cf0..42bacd9 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.25 + 01.00.26 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index 0b3c25a..2b90afe 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.25 + 01.00.26 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 4604b9d..3e8a87a 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.25 + 01.00.26 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 3487072b8a0aca433af2ce47b5b89fff9b5d9e53 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 18:08:38 +0000 Subject: [PATCH 41/57] chore(version): pre-release bump to 01.00.27-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 268a074..4fc17b7 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.26 +# VERSION: 01.00.27 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 76585b8..d19b3ec 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.26 + VERSION: 01.00.27 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index d7f9101..d766f16 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.26 +VERSION: 01.00.27 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 18e2396..98c9f93 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.26 + 01.00.27 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 4257c7b..35c7806 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.26 + 01.00.27 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 42bacd9..54aab99 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.26 + 01.00.27 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index 2b90afe..9ea0874 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.26 + 01.00.27 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 3e8a87a..f4c6818 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.26 + 01.00.27 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 086c50e150c64669fff1a7a21c0af5a15bdcf174 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 18:08:49 +0000 Subject: [PATCH 42/57] chore(version): pre-release bump to 01.00.28-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 4fc17b7..3bab18a 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.27 +# VERSION: 01.00.28 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index d19b3ec..e38eb2b 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.27 + VERSION: 01.00.28 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index d766f16..6f884b8 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.27 +VERSION: 01.00.28 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 98c9f93..4a34bd0 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.27 + 01.00.28 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 35c7806..65c490a 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.27 + 01.00.28 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 54aab99..9bd2974 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.27 + 01.00.28 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index 9ea0874..9ab43f6 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.27 + 01.00.28 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index f4c6818..6f1448e 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.27 + 01.00.28 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 58f3ac96d918000eb13395e286c75c8ed74f6857 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sun, 28 Jun 2026 13:45:44 -0500 Subject: [PATCH 43/57] feat: add license key warning and download key preservation Save/restore the download key (dlid) across package upgrades so users don't lose their license key. Show a warning with direct edit link when no license key is configured. Mirrors the pattern from MokoSuiteCross. Authored-by: Moko Consulting --- source/script.php | 113 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) diff --git a/source/script.php b/source/script.php index 0a77084..1f4058e 100644 --- a/source/script.php +++ b/source/script.php @@ -69,6 +69,8 @@ class Pkg_MokosuitestorelocatorInstallerScript implements InstallerScriptInterfa return false; } + $this->saveDownloadKey(); + return true; } @@ -126,6 +128,117 @@ class Pkg_MokosuitestorelocatorInstallerScript implements InstallerScriptInterfa */ public function postflight(string $type, InstallerAdapter $parent): bool { + $this->restoreDownloadKey(); + $this->warnMissingLicenseKey(); + return true; } + + private ?string $savedDownloadKey = null; + + private function saveDownloadKey(): void + { + try + { + $db = \Joomla\CMS\Factory::getDbo(); + $db->setQuery( + $db->getQuery(true) + ->select($db->quoteName('us.extra_query')) + ->from($db->quoteName('#__update_sites', 'us')) + ->join('INNER', $db->quoteName('#__update_sites_extensions', 'use') . ' ON use.update_site_id = us.update_site_id') + ->join('INNER', $db->quoteName('#__extensions', 'e') . ' ON e.extension_id = use.extension_id') + ->where($db->quoteName('e.element') . ' = ' . $db->quote('pkg_mokosuitestorelocator')) + ->setLimit(1) + ); + $key = $db->loadResult(); + + if (!empty($key)) + { + $this->savedDownloadKey = $key; + } + } + catch (\Throwable $e) {} + } + + private function restoreDownloadKey(): void + { + if ($this->savedDownloadKey === null) + { + return; + } + + try + { + $db = \Joomla\CMS\Factory::getDbo(); + $db->setQuery( + $db->getQuery(true) + ->select($db->quoteName('us.update_site_id')) + ->from($db->quoteName('#__update_sites', 'us')) + ->join('INNER', $db->quoteName('#__update_sites_extensions', 'use') . ' ON use.update_site_id = us.update_site_id') + ->join('INNER', $db->quoteName('#__extensions', 'e') . ' ON e.extension_id = use.extension_id') + ->where($db->quoteName('e.element') . ' = ' . $db->quote('pkg_mokosuitestorelocator')) + ->setLimit(1) + ); + $siteId = (int) $db->loadResult(); + + if ($siteId > 0) + { + $db->setQuery( + $db->getQuery(true) + ->update($db->quoteName('#__update_sites')) + ->set($db->quoteName('extra_query') . ' = ' . $db->quote($this->savedDownloadKey)) + ->where($db->quoteName('update_site_id') . ' = ' . $siteId) + )->execute(); + } + } + catch (\Throwable $e) {} + } + + private function warnMissingLicenseKey(): void + { + try + { + $db = \Joomla\CMS\Factory::getDbo(); + $db->setQuery( + $db->getQuery(true) + ->select([$db->quoteName('update_site_id'), $db->quoteName('extra_query')]) + ->from($db->quoteName('#__update_sites')) + ->where( + '(' . $db->quoteName('name') . ' LIKE ' . $db->quote('%MokoSuiteStoreLocator%') + . ' OR ' . $db->quoteName('location') . ' LIKE ' . $db->quote('%MokoSuiteStoreLocator%') . ')' + ) + ->setLimit(1) + ); + $site = $db->loadObject(); + + if ($site) + { + $eq = (string) ($site->extra_query ?? ''); + + if (!empty($eq) && strpos($eq, 'dlid=') !== false) + { + parse_str($eq, $p); + + if (!empty($p['dlid'])) + { + return; + } + } + + $editUrl = 'index.php?option=com_installer&task=updatesite.edit&update_site_id=' . (int) $site->update_site_id; + } + else + { + $editUrl = 'index.php?option=com_installer&view=updatesites'; + } + + \Joomla\CMS\Factory::getApplication()->enqueueMessage( + 'Moko Consulting License Key Required — ' + . 'No download key is configured. Updates will not be available until a valid license key is entered. ' + . 'Enter License Key', + 'warning' + ); + } + catch (\Throwable $e) {} + } } -- 2.52.0 From 056b339dee6dbe547837bd0aa7653a2c71021cd5 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 18:47:35 +0000 Subject: [PATCH 44/57] chore(version): auto-bump patch 01.00.29-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 3bab18a..b305d83 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.28 +# VERSION: 01.00.29 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index e38eb2b..f640be5 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.28 + VERSION: 01.00.29 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 6f884b8..2a28591 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.28 +VERSION: 01.00.29 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 4a34bd0..b1e82ad 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.28 + 01.00.29 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 65c490a..cab1214 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.28 + 01.00.29 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 9bd2974..50b9774 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.28 + 01.00.29 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index 9ab43f6..923840d 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.28 + 01.00.29 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 6f1448e..6f9f958 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.28 + 01.00.29 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 8c2bf7b02c5ee071ac15a2c0ae2d953493c475c7 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 18:47:43 +0000 Subject: [PATCH 45/57] chore(version): pre-release bump to 01.00.30-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index b305d83..8945670 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.29 +# VERSION: 01.00.30 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index f640be5..5b4407c 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.29 + VERSION: 01.00.30 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 2a28591..6235319 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.29 +VERSION: 01.00.30 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index b1e82ad..c22417c 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.29 + 01.00.30 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index cab1214..4839968 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.29 + 01.00.30 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 50b9774..21e04f3 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.29 + 01.00.30 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index 923840d..7a1fe63 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.29 + 01.00.30 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 6f9f958..964e7b2 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.29 + 01.00.30 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 03c9ca53a6c79038bfab2ae73a06b15fa4c03b23 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sun, 28 Jun 2026 13:48:31 -0500 Subject: [PATCH 46/57] docs: update changelog with license key, XSS fix, SQL compat entries Authored-by: Moko Consulting --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c26c599..30e1f7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Leaflet.markercluster for automatic marker grouping at low zoom levels (#61) - Clustering toggle parameter in map module settings (enabled by default) - Junction table orphan cleanup on location/category delete (#60) +- License key warning on install/update when no download key is configured +- Download key (dlid) preserved across package upgrades ### Changed - Map module dispatcher uses aliased table queries with category JOIN @@ -43,6 +45,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - ORDER BY injection prevention — replaced `$db->escape()` with allowlist validation - Map module: `$mapHeight` CSS value validated with regex pattern - CSP compatibility: all inline scripts use WebAssetManager for automatic nonce injection (#34) +- XSS fix: detail map popup uses DOM textContent instead of raw string in bindPopup() + +### Fixed +- SQL migration compatibility: removed `DROP COLUMN IF EXISTS` (MySQL 8.0.13+ only) in favor of plain `DROP COLUMN` ## [1.1.0] - 2026-06-23 -- 2.52.0 From ecfb7c426da6cbce009156a5bdf8c1b4441e66ee Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 18:49:42 +0000 Subject: [PATCH 47/57] chore(version): auto-bump patch 01.00.31-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 8945670..1e78c36 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.30 +# VERSION: 01.00.31 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 5b4407c..d893cd8 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.30 + VERSION: 01.00.31 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 6235319..3999f9e 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.30 +VERSION: 01.00.31 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index c22417c..88c2878 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.30 + 01.00.31 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 4839968..794d2c7 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.30 + 01.00.31 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 21e04f3..7d1ab01 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.30 + 01.00.31 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index 7a1fe63..7d9968a 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.30 + 01.00.31 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 964e7b2..896d520 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.30 + 01.00.31 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From b6900aec6ef382b8993837cf7b17d774f1004efc Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 18:49:53 +0000 Subject: [PATCH 48/57] chore(version): pre-release bump to 01.00.32-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 1e78c36..8b3369e 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.31 +# VERSION: 01.00.32 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index d893cd8..6de7c3e 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.31 + VERSION: 01.00.32 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 3999f9e..191d408 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.31 +VERSION: 01.00.32 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 88c2878..b3c2e8b 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.31 + 01.00.32 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 794d2c7..c1e0c31 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.31 + 01.00.32 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 7d1ab01..1fe2747 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.31 + 01.00.32 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index 7d9968a..bfdcfb1 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.31 + 01.00.32 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 896d520..701e510 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.31 + 01.00.32 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 5ea2fd2b98285e0196e40296c279fca2aab0a8fa Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sun, 28 Jun 2026 13:54:40 -0500 Subject: [PATCH 49/57] fix: make SQL migration 01.00.02 a no-op to prevent install abort Joomla aborts the entire package install on any SQL error in update files. DROP COLUMN fails when catid doesn't exist (fresh installs, or systems where it was already removed). Since install.mysql.sql already omits catid, no runtime migration is needed. Authored-by: Moko Consulting --- .../admin/sql/updates/mysql/01.00.02.sql | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/packages/com_mokosuitestorelocator/admin/sql/updates/mysql/01.00.02.sql b/source/packages/com_mokosuitestorelocator/admin/sql/updates/mysql/01.00.02.sql index d454261..70b72cc 100644 --- a/source/packages/com_mokosuitestorelocator/admin/sql/updates/mysql/01.00.02.sql +++ b/source/packages/com_mokosuitestorelocator/admin/sql/updates/mysql/01.00.02.sql @@ -1,5 +1,5 @@ --- MokoSuiteStoreLocator 01.00.02 — Drop legacy catid column. --- This file only runs on upgrades from < 01.00.02 where catid existed. - -ALTER TABLE `#__mokosuitestorelocator_locations` DROP COLUMN `catid`; -ALTER TABLE `#__mokosuitestorelocator_locations` DROP INDEX `idx_catid`; +-- MokoSuiteStoreLocator 01.00.02 +-- Legacy catid column removed from install.mysql.sql. +-- No runtime migration needed — Joomla aborts on DROP errors +-- and fresh installs never had the column. +SELECT 1; -- 2.52.0 From 1ece8a006faf84cd052b2376c38770be259faa78 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 18:55:15 +0000 Subject: [PATCH 50/57] chore(version): auto-bump patch 01.00.33-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 8b3369e..cb36dd7 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.32 +# VERSION: 01.00.33 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 6de7c3e..ad0cf8c 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.32 + VERSION: 01.00.33 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 191d408..c9f2be6 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.32 +VERSION: 01.00.33 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index b3c2e8b..ad9cf2c 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.32 + 01.00.33 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index c1e0c31..823ce18 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.32 + 01.00.33 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 1fe2747..80337de 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.32 + 01.00.33 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index bfdcfb1..7700a99 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.32 + 01.00.33 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 701e510..bf29a73 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.32 + 01.00.33 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From f7bbddd98dd77330dc8545547aec5eba9eb7565a Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 18:55:32 +0000 Subject: [PATCH 51/57] chore(version): pre-release bump to 01.00.34-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index cb36dd7..c155fcc 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.33 +# VERSION: 01.00.34 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index ad0cf8c..2b7e4d1 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.33 + VERSION: 01.00.34 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index c9f2be6..4415afd 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.33 +VERSION: 01.00.34 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index ad9cf2c..f5c1509 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.33 + 01.00.34 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 823ce18..2b971ae 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.33 + 01.00.34 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 80337de..7a5dae5 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.33 + 01.00.34 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index 7700a99..73e8acc 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.33 + 01.00.34 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index bf29a73..cffcd4a 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.33 + 01.00.34 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From e8d67215b112b3938c1eea80fcf8927a6f5d3be6 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 18:55:48 +0000 Subject: [PATCH 52/57] chore(version): pre-release bump to 01.00.35-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index c155fcc..1216fca 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.34 +# VERSION: 01.00.35 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 2b7e4d1..f0b7cd5 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.34 + VERSION: 01.00.35 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 4415afd..419242b 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.34 +VERSION: 01.00.35 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index f5c1509..15c11d7 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.34 + 01.00.35 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 2b971ae..ec84fa6 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.34 + 01.00.35 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 7a5dae5..46ba938 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.34 + 01.00.35 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index 73e8acc..d22cec9 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.34 + 01.00.35 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index cffcd4a..789919e 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ pkg_mokosuitestorelocator mokosuitestorelocator - 01.00.34 + 01.00.35 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 8dfc1227cb0202dec960cc30b4fdef2e3bc00b0b Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sun, 28 Jun 2026 14:54:12 -0500 Subject: [PATCH 53/57] feat: add pretty display names for all extensions in Joomla admin Authored-by: Moko Consulting --- .../admin/language/en-GB/com_mokosuitestorelocator.ini | 1 + .../admin/language/en-GB/com_mokosuitestorelocator.sys.ini | 1 + .../site/language/en-GB/com_mokosuitestorelocator.ini | 1 + .../language/en-GB/mod_mokosuitestorelocator_map.ini | 1 + .../language/en-GB/mod_mokosuitestorelocator_map.sys.ini | 1 + .../language/en-GB/mod_mokosuitestorelocator_search.ini | 1 + .../language/en-GB/mod_mokosuitestorelocator_search.sys.ini | 1 + .../en-GB/plg_webservices_mokosuitestorelocator.ini | 2 +- .../en-GB/plg_webservices_mokosuitestorelocator.sys.ini | 6 ++++++ source/pkg_mokosuitestorelocator.xml | 2 +- 10 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 source/packages/plg_webservices_mokosuitestorelocator/language/en-GB/plg_webservices_mokosuitestorelocator.sys.ini diff --git a/source/packages/com_mokosuitestorelocator/admin/language/en-GB/com_mokosuitestorelocator.ini b/source/packages/com_mokosuitestorelocator/admin/language/en-GB/com_mokosuitestorelocator.ini index de2b8a4..d5d3a53 100644 --- a/source/packages/com_mokosuitestorelocator/admin/language/en-GB/com_mokosuitestorelocator.ini +++ b/source/packages/com_mokosuitestorelocator/admin/language/en-GB/com_mokosuitestorelocator.ini @@ -2,6 +2,7 @@ ; Copyright (C) 2026 Moko Consulting. All rights reserved. ; License: GNU General Public License version 3 or later; see LICENSE +COM_MOKOSUITESTORELOCATOR="MokoSuite Store Locator" COM_MOKOJOOMSTORELOCATOR="Store Locator" COM_MOKOJOOMSTORELOCATOR_DESC="A store locator component for managing and displaying location listings." COM_MOKOJOOMSTORELOCATOR_LOCATIONS="Locations" diff --git a/source/packages/com_mokosuitestorelocator/admin/language/en-GB/com_mokosuitestorelocator.sys.ini b/source/packages/com_mokosuitestorelocator/admin/language/en-GB/com_mokosuitestorelocator.sys.ini index fa1f199..2ef78d9 100644 --- a/source/packages/com_mokosuitestorelocator/admin/language/en-GB/com_mokosuitestorelocator.sys.ini +++ b/source/packages/com_mokosuitestorelocator/admin/language/en-GB/com_mokosuitestorelocator.sys.ini @@ -2,6 +2,7 @@ ; Copyright (C) 2026 Moko Consulting. All rights reserved. ; License: GNU General Public License version 3 or later; see LICENSE +COM_MOKOSUITESTORELOCATOR="MokoSuite Store Locator" COM_MOKOJOOMSTORELOCATOR="Store Locator" COM_MOKOJOOMSTORELOCATOR_DESC="A store locator component for managing and displaying location listings." COM_MOKOJOOMSTORELOCATOR_LOCATIONS="Locations" diff --git a/source/packages/com_mokosuitestorelocator/site/language/en-GB/com_mokosuitestorelocator.ini b/source/packages/com_mokosuitestorelocator/site/language/en-GB/com_mokosuitestorelocator.ini index 41badd2..e6861bb 100644 --- a/source/packages/com_mokosuitestorelocator/site/language/en-GB/com_mokosuitestorelocator.ini +++ b/source/packages/com_mokosuitestorelocator/site/language/en-GB/com_mokosuitestorelocator.ini @@ -2,6 +2,7 @@ ; Copyright (C) 2026 Moko Consulting. All rights reserved. ; License: GNU General Public License version 3 or later; see LICENSE +COM_MOKOSUITESTORELOCATOR="MokoSuite Store Locator" COM_MOKOJOOMSTORELOCATOR="Store Locator" COM_MOKOJOOMSTORELOCATOR_LOCATIONS="Locations" COM_MOKOJOOMSTORELOCATOR_NO_LOCATIONS="No locations found." diff --git a/source/packages/mod_mokosuitestorelocator_map/language/en-GB/mod_mokosuitestorelocator_map.ini b/source/packages/mod_mokosuitestorelocator_map/language/en-GB/mod_mokosuitestorelocator_map.ini index feef2cb..eebe6f3 100644 --- a/source/packages/mod_mokosuitestorelocator_map/language/en-GB/mod_mokosuitestorelocator_map.ini +++ b/source/packages/mod_mokosuitestorelocator_map/language/en-GB/mod_mokosuitestorelocator_map.ini @@ -2,6 +2,7 @@ ; Copyright (C) 2026 Moko Consulting. All rights reserved. ; License: GNU General Public License version 3 or later; see LICENSE +MOD_MOKOSUITESTORELOCATOR_MAP="MokoSuite Store Locator - Map" MOD_MOKOJOOMSTORELOCATOR_MAP="Store Locator Map" MOD_MOKOJOOMSTORELOCATOR_MAP_DESC="Displays an interactive map with store location markers." MOD_MOKOJOOMSTORELOCATOR_MAP_HEIGHT="Map Height" diff --git a/source/packages/mod_mokosuitestorelocator_map/language/en-GB/mod_mokosuitestorelocator_map.sys.ini b/source/packages/mod_mokosuitestorelocator_map/language/en-GB/mod_mokosuitestorelocator_map.sys.ini index ab9924f..233e755 100644 --- a/source/packages/mod_mokosuitestorelocator_map/language/en-GB/mod_mokosuitestorelocator_map.sys.ini +++ b/source/packages/mod_mokosuitestorelocator_map/language/en-GB/mod_mokosuitestorelocator_map.sys.ini @@ -2,5 +2,6 @@ ; Copyright (C) 2026 Moko Consulting. All rights reserved. ; License: GNU General Public License version 3 or later; see LICENSE +MOD_MOKOSUITESTORELOCATOR_MAP="MokoSuite Store Locator - Map" MOD_MOKOJOOMSTORELOCATOR_MAP="Store Locator Map" MOD_MOKOJOOMSTORELOCATOR_MAP_DESC="Displays an interactive map with store location markers." diff --git a/source/packages/mod_mokosuitestorelocator_search/language/en-GB/mod_mokosuitestorelocator_search.ini b/source/packages/mod_mokosuitestorelocator_search/language/en-GB/mod_mokosuitestorelocator_search.ini index fb04db5..3187c04 100644 --- a/source/packages/mod_mokosuitestorelocator_search/language/en-GB/mod_mokosuitestorelocator_search.ini +++ b/source/packages/mod_mokosuitestorelocator_search/language/en-GB/mod_mokosuitestorelocator_search.ini @@ -2,6 +2,7 @@ ; Copyright (C) 2026 Moko Consulting. All rights reserved. ; License: GNU General Public License version 3 or later; see LICENSE +MOD_MOKOSUITESTORELOCATOR_SEARCH="MokoSuite Store Locator - Search" MOD_MOKOJOOMSTORELOCATOR_SEARCH="Store Locator Search" MOD_MOKOJOOMSTORELOCATOR_SEARCH_DESC="Provides a search/filter form for finding store locations." MOD_MOKOJOOMSTORELOCATOR_SEARCH_LABEL="Find a Store" diff --git a/source/packages/mod_mokosuitestorelocator_search/language/en-GB/mod_mokosuitestorelocator_search.sys.ini b/source/packages/mod_mokosuitestorelocator_search/language/en-GB/mod_mokosuitestorelocator_search.sys.ini index 5400537..27b42b5 100644 --- a/source/packages/mod_mokosuitestorelocator_search/language/en-GB/mod_mokosuitestorelocator_search.sys.ini +++ b/source/packages/mod_mokosuitestorelocator_search/language/en-GB/mod_mokosuitestorelocator_search.sys.ini @@ -2,5 +2,6 @@ ; Copyright (C) 2026 Moko Consulting. All rights reserved. ; License: GNU General Public License version 3 or later; see LICENSE +MOD_MOKOSUITESTORELOCATOR_SEARCH="MokoSuite Store Locator - Search" MOD_MOKOJOOMSTORELOCATOR_SEARCH="Store Locator Search" MOD_MOKOJOOMSTORELOCATOR_SEARCH_DESC="Provides a search/filter form for finding store locations." diff --git a/source/packages/plg_webservices_mokosuitestorelocator/language/en-GB/plg_webservices_mokosuitestorelocator.ini b/source/packages/plg_webservices_mokosuitestorelocator/language/en-GB/plg_webservices_mokosuitestorelocator.ini index a79710d..fd78b4b 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/language/en-GB/plg_webservices_mokosuitestorelocator.ini +++ b/source/packages/plg_webservices_mokosuitestorelocator/language/en-GB/plg_webservices_mokosuitestorelocator.ini @@ -1,2 +1,2 @@ -PLG_WEBSERVICES_MOKOSUITESTORELOCATOR="MokoSuiteStoreLocator - Web Services" +PLG_WEBSERVICES_MOKOSUITESTORELOCATOR="MokoSuite Store Locator - Web Services" PLG_WEBSERVICES_MOKOSUITESTORELOCATOR_DESC="Provides REST API endpoints for the MokoSuiteStoreLocator component." diff --git a/source/packages/plg_webservices_mokosuitestorelocator/language/en-GB/plg_webservices_mokosuitestorelocator.sys.ini b/source/packages/plg_webservices_mokosuitestorelocator/language/en-GB/plg_webservices_mokosuitestorelocator.sys.ini new file mode 100644 index 0000000..5ca667c --- /dev/null +++ b/source/packages/plg_webservices_mokosuitestorelocator/language/en-GB/plg_webservices_mokosuitestorelocator.sys.ini @@ -0,0 +1,6 @@ +; MokoSuiteStoreLocator Web Services Plugin - System language strings +; Copyright (C) 2026 Moko Consulting. All rights reserved. +; License: GNU General Public License version 3 or later; see LICENSE + +PLG_WEBSERVICES_MOKOSUITESTORELOCATOR="MokoSuite Store Locator - Web Services" +PLG_WEBSERVICES_MOKOSUITESTORELOCATOR_DESC="Provides REST API endpoints for the MokoSuiteStoreLocator component." diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 789919e..269600f 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -16,7 +16,7 @@ ========================================================================= --> - pkg_mokosuitestorelocator + MokoSuite Store Locator mokosuitestorelocator 01.00.35 2026-06-23 -- 2.52.0 From c8f742299644b121547d2f9a223489efd062e425 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 19:54:54 +0000 Subject: [PATCH 54/57] chore(version): auto-bump patch 01.00.36-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 1216fca..4f0edf1 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.35 +# VERSION: 01.00.36 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index f0b7cd5..d50fad2 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.35 + VERSION: 01.00.36 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index 419242b..fb43ac3 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.35 +VERSION: 01.00.36 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 15c11d7..60c2b23 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.35 + 01.00.36 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index ec84fa6..a706b16 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.35 + 01.00.36 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 46ba938..47876f4 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.35 + 01.00.36 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index d22cec9..325e43f 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.35 + 01.00.36 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 269600f..1f76e06 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ MokoSuite Store Locator mokosuitestorelocator - 01.00.35 + 01.00.36 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 7f4451628d06be85d9fc9e07acd10f3a88f6f774 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 19:55:09 +0000 Subject: [PATCH 55/57] chore(version): pre-release bump to 01.00.37-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 4f0edf1..dc0ce10 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.36 +# VERSION: 01.00.37 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index d50fad2..ba0c448 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.36 + VERSION: 01.00.37 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/SECURITY.md b/SECURITY.md index fb43ac3..948857f 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.36 +VERSION: 01.00.37 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 60c2b23..64b7d86 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.36 + 01.00.37 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index a706b16..b3f192b 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.36 + 01.00.37 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 47876f4..7de2429 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.36 + 01.00.37 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index 325e43f..f1d01c8 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.36 + 01.00.37 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 1f76e06..aa86bc3 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ MokoSuite Store Locator mokosuitestorelocator - 01.00.36 + 01.00.37 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 9ed2fb196315da0176a1193f4d955cb16005167e Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 20:04:38 +0000 Subject: [PATCH 56/57] chore(version): auto-bump patch 01.00.38-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- GOVERNANCE.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index dc0ce10..93e5c59 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.37 +# VERSION: 01.00.38 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index ba0c448..cfb6d87 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.37 + VERSION: 01.00.38 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 47fa254..69f9ad4 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -19,7 +19,7 @@ DEFGROUP: mokoconsulting-tech.Template-Joomla INGROUP: MokoStandards.Governance REPO: https://github.com/mokoconsulting-tech/Template-Joomla - VERSION: 01.01.00 + VERSION: 01.00.38 PATH: /GOVERNANCE.md BRIEF: Project governance rules, roles, and decision process for Template-Joomla --> diff --git a/SECURITY.md b/SECURITY.md index 948857f..2086a6b 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.37 +VERSION: 01.00.38 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index 64b7d86..b9e928c 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.37 + 01.00.38 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index b3f192b..7f902f5 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.37 + 01.00.38 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 7de2429..9fe4df3 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.37 + 01.00.38 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index f1d01c8..55562ee 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.37 + 01.00.38 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index aa86bc3..25afaef 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ MokoSuite Store Locator mokosuitestorelocator - 01.00.37 + 01.00.38 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0 From 84d42f70a112a13a4534907fad1d1ebafeda1e80 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 28 Jun 2026 20:04:56 +0000 Subject: [PATCH 57/57] chore(version): pre-release bump to 01.00.39-dev [skip ci] --- .mokogitea/workflows/issue-branch.yml | 2 +- CODE_OF_CONDUCT.md | 2 +- GOVERNANCE.md | 2 +- SECURITY.md | 2 +- .../com_mokosuitestorelocator/mokosuitestorelocator.xml | 2 +- .../mod_mokosuitestorelocator_map.xml | 2 +- .../mod_mokosuitestorelocator_search.xml | 2 +- .../mokosuitestorelocator.xml | 2 +- source/pkg_mokosuitestorelocator.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 93e5c59..f094e97 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Automation -# VERSION: 01.00.38 +# VERSION: 01.00.39 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index cfb6d87..1fc7766 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: INGROUP: Project.Documentation REPO: - VERSION: 01.00.38 + VERSION: 01.00.39 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 69f9ad4..428db12 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -19,7 +19,7 @@ DEFGROUP: mokoconsulting-tech.Template-Joomla INGROUP: MokoStandards.Governance REPO: https://github.com/mokoconsulting-tech/Template-Joomla - VERSION: 01.00.38 + VERSION: 01.00.39 PATH: /GOVERNANCE.md BRIEF: Project governance rules, roles, and decision process for Template-Joomla --> diff --git a/SECURITY.md b/SECURITY.md index 2086a6b..2ea2ee7 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 01.00.38 +VERSION: 01.00.39 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml index b9e928c..5f8d6b8 100644 --- a/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/com_mokosuitestorelocator/mokosuitestorelocator.xml @@ -15,7 +15,7 @@ --> com_mokosuitestorelocator - 01.00.38 + 01.00.39 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml index 7f902f5..43ded3f 100644 --- a/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml +++ b/source/packages/mod_mokosuitestorelocator_map/mod_mokosuitestorelocator_map.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_map - 01.00.38 + 01.00.39 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml index 9fe4df3..27b2c64 100644 --- a/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml +++ b/source/packages/mod_mokosuitestorelocator_search/mod_mokosuitestorelocator_search.xml @@ -14,7 +14,7 @@ --> mod_mokosuitestorelocator_search - 01.00.38 + 01.00.39 2026-06-23 Moko Consulting hello@mokoconsulting.tech diff --git a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml index 55562ee..9412d95 100644 --- a/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml +++ b/source/packages/plg_webservices_mokosuitestorelocator/mokosuitestorelocator.xml @@ -5,7 +5,7 @@ ========================================================================= --> plg_webservices_mokosuitestorelocator - 01.00.38 + 01.00.39 2026-06-24 Moko Consulting hello@mokoconsulting.tech diff --git a/source/pkg_mokosuitestorelocator.xml b/source/pkg_mokosuitestorelocator.xml index 25afaef..52e6bfb 100644 --- a/source/pkg_mokosuitestorelocator.xml +++ b/source/pkg_mokosuitestorelocator.xml @@ -18,7 +18,7 @@ MokoSuite Store Locator mokosuitestorelocator - 01.00.38 + 01.00.39 2026-06-23 Moko Consulting hello@mokoconsulting.tech -- 2.52.0