{"_id":"@bodonkey/pally-extension","_rev":"7-20c6e054bd777f17de0e26f6358182f1","name":"@bodonkey/pally-extension","dist-tags":{"latest":"1.1.5"},"versions":{"1.0.0":{"name":"@bodonkey/pally-extension","version":"1.0.0","author":{"url":"Bob Means","name":"BoDonkey"},"license":"MIT","_id":"@bodonkey/pally-extension@1.0.0","maintainers":[{"name":"bodonkey","email":"robert@robertmeans.net"}],"dist":{"shasum":"abfd5483eec0abf867d0cc7cdd49c6af9baea9cf","tarball":"https://registry.npmjs.org/@bodonkey/pally-extension/-/pally-extension-1.0.0.tgz","fileCount":6,"integrity":"sha512-nSxujNk3UlgFjTzzfJVI9FCMtPlvmX+9yL1PYkj66Z9v0OKIhCdx7WhGQYe1uMOGaOBuJ8eb1WH9jx/8rhwmBA==","signatures":[{"sig":"MEUCIQDO0PGOihd8RUrvCHvA3/VbYi6dd0LmRtUR+MMAPmdQnAIgKxw+Dne1AKmjY3JaKOHFftvk4x8XLdeYGBXbOg/gwfI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39578},"main":"index.js","gitHead":"1432177075c17d4b09dd28847f74d09c778b3286","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"bodonkey","email":"robert@robertmeans.net"},"_npmVersion":"9.8.1","description":"This extension adds the a pa11y dashboard to your ApostropheCMS project","directories":{},"_nodeVersion":"18.18.0","dependencies":{"axios":"^1.7.7","pa11y":"^8.0.0","cheerio":"^1.0.0","fast-xml-parser":"^4.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pally-extension_1.0.0_1726519811473_0.6645032610078443","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@bodonkey/pally-extension","version":"1.1.0","author":{"url":"Bob Means","name":"BoDonkey"},"license":"MIT","_id":"@bodonkey/pally-extension@1.1.0","maintainers":[{"name":"bodonkey","email":"robert@robertmeans.net"}],"dist":{"shasum":"f13ece62a4b02849b5c85af0bd6725472fca14b5","tarball":"https://registry.npmjs.org/@bodonkey/pally-extension/-/pally-extension-1.1.0.tgz","fileCount":6,"integrity":"sha512-CZWtcDA6803oRjjmz0j7vViru4GF1Hj1jL5ukSlxVuS/DkuhoN67we7XLzvNf0h2j4EODGDa+/HlPPtlOwAexw==","signatures":[{"sig":"MEUCIC3cBMZWy4U2XsqmDM8rwcmpb2B8bTmJjtDULQwp1drLAiEAtE0UFz3o5mqfXT1IDHbRx5L6DuFuNE9/5wsiwkFr/uM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43480},"main":"index.js","gitHead":"90453976d19fb4b2f003b73fffce401c628834d9","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"bodonkey","email":"robert@robertmeans.net"},"_npmVersion":"9.8.1","description":"This extension adds the a pa11y dashboard to your ApostropheCMS project","directories":{},"_nodeVersion":"18.18.0","dependencies":{"axios":"^1.7.7","pa11y":"^8.0.0","cheerio":"^1.0.0","puppeteer":"^23.3.1","fast-xml-parser":"^4.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pally-extension_1.1.0_1726741910644_0.31990426215437817","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@bodonkey/pally-extension","version":"1.1.1","author":{"url":"Bob Means","name":"BoDonkey"},"license":"MIT","_id":"@bodonkey/pally-extension@1.1.1","maintainers":[{"name":"bodonkey","email":"robert@robertmeans.net"}],"dist":{"shasum":"8e4803c7c3bfc3f2e0546f4717fa5e566d692944","tarball":"https://registry.npmjs.org/@bodonkey/pally-extension/-/pally-extension-1.1.1.tgz","fileCount":6,"integrity":"sha512-ihe3FAglp1bvuQEBoqLNphJS8JWARapGPROEatpuSnubC8uHZLemrVDMmhcl+VfKIpjvQMNwq8/4WElFvBYy9g==","signatures":[{"sig":"MEYCIQClt4U6sLHrIqKF83UYzC4FacDveN5JEzC/oki+zkKvtQIhALUfEA1B/mGR3USCRCsTZglcUKBHc87IHlmZGTi51Vmj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":44307},"main":"index.js","gitHead":"daa5baff5ca6abc3ce5f711541f3ca2a63d0177c","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"bodonkey","email":"robert@robertmeans.net"},"_npmVersion":"9.8.1","description":"This extension adds the a pa11y dashboard to your ApostropheCMS project","directories":{},"_nodeVersion":"18.18.0","dependencies":{"axios":"^1.7.7","pa11y":"^8.0.0","cheerio":"^1.0.0","puppeteer":"^23.3.1","fast-xml-parser":"^4.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pally-extension_1.1.1_1726746747110_0.08073925581793273","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@bodonkey/pally-extension","version":"1.1.2","author":{"url":"Bob Means","name":"BoDonkey"},"license":"MIT","_id":"@bodonkey/pally-extension@1.1.2","maintainers":[{"name":"bodonkey","email":"robert@robertmeans.net"}],"dist":{"shasum":"e51c715f8be82c39f656ea8c0bede7a484852e3b","tarball":"https://registry.npmjs.org/@bodonkey/pally-extension/-/pally-extension-1.1.2.tgz","fileCount":8,"integrity":"sha512-SL83+gBNZAOZQDlgdw1bxpCYth6y4tmX07kyBJopNPBr/PIgq+b6gd22vxxkNMNnjoKbpn2TzXE7f2ji2RlKmw==","signatures":[{"sig":"MEUCIQD4s9hi9rgV7DijwclUtN7vQ8G00kv/bupymqE9Ua6YYAIgPcbvuUNtB7VCD6Fh1vERzXZJDhvpF0l7pX/hB+oKA0A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":389022},"main":"index.js","gitHead":"d5dfb5506d3249764f37ae2b4f9b9f32bffa2259","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"bodonkey","email":"robert@robertmeans.net"},"_npmVersion":"9.8.1","description":"This extension adds the a pa11y dashboard to your ApostropheCMS project","directories":{},"_nodeVersion":"18.18.0","dependencies":{"axios":"^1.7.7","pa11y":"^8.0.0","cheerio":"^1.0.0","puppeteer":"^23.3.1","fast-xml-parser":"^4.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pally-extension_1.1.2_1728390476705_0.34511455039107464","host":"s3://npm-registry-packages"}},"1.1.3":{"name":"@bodonkey/pally-extension","version":"1.1.3","author":{"url":"Bob Means","name":"BoDonkey"},"license":"MIT","_id":"@bodonkey/pally-extension@1.1.3","maintainers":[{"name":"bodonkey","email":"robert@robertmeans.net"}],"dist":{"shasum":"73d2395518308be85eb5b0564a2b52b9b57c2691","tarball":"https://registry.npmjs.org/@bodonkey/pally-extension/-/pally-extension-1.1.3.tgz","fileCount":8,"integrity":"sha512-l0KEaXgMZb7rEJZJ5YzPbutjwXlit/+YAC7vg5Ql5djn1TjOhnZAC7MdD4DuwTFTP+OLWaNZ8cFloHlvRZHnDg==","signatures":[{"sig":"MEQCID0xA00M0pKGQZPLq0SxoX0GRb/h+XFtnvskDq60cmviAiBnvYNcza8UYmjlnfJB0pN9v7EIc5o+VcQJFDB+ZcOv7Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":389239},"main":"index.js","gitHead":"cfda4936db2efc16f9b071320a3b36703bafeab1","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"bodonkey","email":"robert@robertmeans.net"},"_npmVersion":"9.8.1","description":"This extension adds the a pa11y dashboard to your ApostropheCMS project","directories":{},"_nodeVersion":"18.18.0","dependencies":{"axios":"^1.7.7","pa11y":"^8.0.0","cheerio":"^1.0.0","puppeteer":"^23.3.1","fast-xml-parser":"^4.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pally-extension_1.1.3_1728503884553_0.1796715029411089","host":"s3://npm-registry-packages"}},"1.1.4":{"name":"@bodonkey/pally-extension","version":"1.1.4","author":{"url":"Bob Means","name":"BoDonkey"},"license":"MIT","_id":"@bodonkey/pally-extension@1.1.4","maintainers":[{"name":"bodonkey","email":"robert.means1969+apostrophecms@gmail.com"}],"dist":{"shasum":"64de167b03702416e11045ac71adcf8743cdcc5f","tarball":"https://registry.npmjs.org/@bodonkey/pally-extension/-/pally-extension-1.1.4.tgz","fileCount":8,"integrity":"sha512-Ne2sl7USCyNyt4Y8KX7eSdCIVETX5zs10g8g+kgiUXS9LzeEG3CWDT5DQs6/u/lGq5Ju1aL4e8TFocZD1tmp1g==","signatures":[{"sig":"MEQCIDqWfP+VKzs8iAPGrV58zDCD68SImES6DXQ/982c5CYWAiBrSoW9aOJ/gpjFveZ5tsKNrSkI8I6BZumGhp/yl+UpgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389293},"main":"index.js","gitHead":"51b04bbe141fe2ca03e9d40e9def9ea1ea769d05","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"bodonkey","email":"robert.means1969+apostrophecms@gmail.com"},"_npmVersion":"11.3.0","description":"This extension adds the a pa11y dashboard to your ApostropheCMS project","directories":{},"_nodeVersion":"22.14.0","dependencies":{"axios":"^1.7.7","pa11y":"^8.0.0","cheerio":"^1.0.0","puppeteer":"^23.3.1","fast-xml-parser":"^4.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pally-extension_1.1.4_1749212501220_0.8850869259073255","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@bodonkey/pally-extension","version":"1.1.5","description":"This extension adds the a pa11y dashboard to your ApostropheCMS project","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"BoDonkey","url":"Bob Means"},"license":"MIT","dependencies":{"axios":"^1.7.7","cheerio":"^1.0.0","fast-xml-parser":"^4.5.0","pa11y":"^8.0.0","puppeteer":"^23.3.1"},"_id":"@bodonkey/pally-extension@1.1.5","gitHead":"f20b70eb20e7f5d907ad355715e015fc7bed6233","_nodeVersion":"22.23.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-bzR++KFQYICC+JvrR8LFwEAZFA9aAbRwWKTqIeieacKAI5uv0FwoQCc/1L1L4nQB+rNeLjUtNG5HuAArRBCk+g==","shasum":"3dbd6476f20cb0fe00b6cb33be77c11e2061ce53","tarball":"https://registry.npmjs.org/@bodonkey/pally-extension/-/pally-extension-1.1.5.tgz","fileCount":8,"unpackedSize":389512,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCtHfOd3VPEWWsUR+EWWw3Q07t1/agnFM4EJ7ko3OlOlwIgPZJfebvuEXi+wJN8B3kJPCKj9n2kG5d6jmDLboXTNjU="}]},"_npmUser":{"name":"bodonkey","email":"robert.means1969+apostrophecms@gmail.com"},"directories":{},"maintainers":[{"name":"bodonkey","email":"robert.means1969+apostrophecms@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pally-extension_1.1.5_1787840657966_0.8001699766550872"},"_hasShrinkwrap":false}},"time":{"created":"2024-09-16T20:50:11.387Z","modified":"2026-08-27T14:24:18.263Z","1.0.0":"2024-09-16T20:50:11.648Z","1.1.0":"2024-09-19T10:31:50.791Z","1.1.1":"2024-09-19T11:52:27.376Z","1.1.2":"2024-10-08T12:27:56.960Z","1.1.3":"2024-10-09T19:58:04.798Z","1.1.4":"2025-06-06T12:21:41.497Z","1.1.5":"2026-08-27T14:24:18.113Z"},"author":{"name":"BoDonkey","url":"Bob Means"},"license":"MIT","description":"This extension adds the a pa11y dashboard to your ApostropheCMS project","maintainers":[{"name":"bodonkey","email":"robert.means1969+apostrophecms@gmail.com"}],"readme":"# Pally Extension for ApostropheCMS\n<img width=\"1468\" alt=\"Screenshot of the main pa11y-dashboard\" src=\"https://github.com/user-attachments/assets/a0fbcd47-acce-47e9-a32d-377d261eb50e\">\n\nPally Extension is a modern ApostropheCMS module that integrates Pa11y to perform accessibility audits on your website. It provides functionalities to crawl your site, scan pages for accessibility issues, manage scan results, and monitor scan progress — all within the ApostropheCMS admin interface.\n\n## Features\n\n- **Automated Accessibility Scanning**: Utilize Pa11y to detect accessibility issues across your website.\n- **Sitemap Parsing & Crawling**: Automatically parse your sitemap or perform link crawling to identify pages to scan.\n- **Scan Management**: Start, monitor, and cancel scans directly from the admin dashboard.\n- **Result Storage**: Stores scan results in a dedicated MongoDB collection for easy access and management.\n- **Admin Dashboard Integration**: Seamlessly integrates with the ApostropheCMS admin bar and modal interfaces.\n\n## Installation\n\n### Steps\n\n1. **Install the Module**\n\n   Use npm to install the Pally Extension module as a dependency in your ApostropheCMS project:\n\n   ```bash\n   npm install @bodonkey/pally-extension\n   ```\n\n2. **Configure ApostropheCMS to Use the Module**\n\n   In your `app.js` (or equivalent) file, register the Pally Extension module:\n\n   ```javascript\n   modules: {\n     // ... other modules ...\n\n     '@bodonkey/pally-extension': {\n       // Module options can be specified here\n     }\n   }\n   ```\n\n### Additional Setup for Ubuntu, CentOS, & WSL\n\nIf you are using WSL, Ubuntu, or CentOS, you will need to install some additional dependencies to ensure Puppeteer (used by Pa11y) runs correctly.\n\n#### WSL\n\nFor WSL, follow these steps:\n\n1. **Update Package List**:\n   Make sure your package lists are up to date:\n   \n```bash\nsudo apt-get update\n```\n\n2. **Installing Required Dependencies**:\n   Install the following packages:\n\n```bash\nsudo apt install libgtk-3-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2\n```\n\n#### Ubuntu\n\nFor a standard Ubuntu setup, follow these steps:\n\n1. **Update Package List**:\n   Run the following to update your package list:\n   ```bash\n   sudo apt-get update\n   ```\n\n2. **Install Required Dependencies**:\n   > Some newer versions of Puppeteer might not need this. Additionally, if you are already using the chromium-browser your system should already have the needed dependencies.\n\n   Install the necessary packages for Chromium and Puppeteer:\n   ```bash\n   sudo apt install libnss3 libxss1 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libgbm1 libxkbcommon0 libxcomposite1 libasound2 libwayland-client0 libwayland-egl1 libwayland-server0 libappindicator3-1 libdbusmenu-glib4 libdbusmenu-gtk3-4\n   ```\n\n3. **Install Chromium**:\n   Since Puppeteer may not always download the correct version of Chromium, install it manually:\n   ```bash\n   sudo apt install chromium-browser\n   ```\n\n4. **Configure Puppeteer**:\n   Point Puppeteer to the installed Chromium:\n\n   Find where the browser is installed:\n   ```bash\n   $ which chromium-browser\n   ```\n\n   ```javascript\n   // app.js\n   modules: {\n     '@bodonkey/pally-extension': {\n        options: {\n           puppeteer: {\n            // Specify the custom Chromium executable path\n           // returned from command above\n           executablePath: '/usr/bin/chromium-browser'\n           }\n        }\n     }\n   }\n   ```\n\n#### CentOS\n\nFor CentOS, follow these steps:\n\n1. **Update Packages**:\n   Ensure your package manager is up-to-date:\n   ```bash\n   sudo yum update -y\n   ```\n\n2. **Install Dependencies**:\n   Install required packages to run Chromium and Puppeteer:\n   ```bash\n   sudo yum install -y libX11 libxkbcommon libXScrnSaver libatk libgtk3 dbus-libs libXtst nss alsa-lib\n   ```\n\n3. **Install Chromium**:\n   Enable the EPEL (Extra Packages for Enterprise Linux) repository to install Chromium:\n   ```bash\n   sudo yum install -y epel-release\n   sudo yum install -y chromium\n   ```\n\n4. **Configure Puppeteer**:\n   Similar to Ubuntu, specify the executable path to Chromium for Puppeteer:\n\n   Find where the browser is installed:\n   ```bash\n   rpm -ql chromium\n   ```\n\n   ```javascript\n   // app.js\n   modules: {\n     '@bodonkey/pally-extension': {\n        options: {\n           puppeteer: {\n            // Specify the custom Chromium executable path\n           // returned from command above\n           executablePath: '/usr/bin/chromium-browser',\n            // To resolve sandboxing issues on some servers\n           args: ['--no-sandbox', '--disable-setuid-sandbox']\n           }\n        }\n     }\n   }\n   ```\n\n### Database\n\nWhen this module is installed, it creates a new collection in your MongoDB called `pa11y-results`. If you uninstall this extension, you will need to delete this collection manually.\n\n## Configuration\n\nPally Extension offers several configurable options to tailor its behavior to your project's needs. These options can be set in the module configuration within `app.js`.\n\n### Available Options\n\n| Option            | Type    | Default | Description                                                                 |\n| ----------------- | ------- | ------- | --------------------------------------------------------------------------- |\n| `maxPages`        | Number  | 500      | The maximum number of pages to scan.                                        |\n| `includeWarnings` | Boolean | false   | Whether to include warnings in scan results.                                |\n| `includeNotices`  | Boolean | false   | Whether to include notices in scan results.                                 |\n| `puppeteer`       | Object  | {}      | Puppeteer launch configuration. You can specify any valid Puppeteer options.|\n\n#### Puppeteer Options\n\nThe `puppeteer` option allows you to pass custom configuration settings for Puppeteer. This is useful for adjusting settings like the headless mode, specifying a custom Chromium executable path, or adding arguments to Puppeteer.\n\n**Example Configuration:**\n\n```javascript\nmodules: {\n  '@bodonkey/pally-extension': {\n    options: {\n      maxPages: 10,\n      includeWarnings: false,\n      includeNotices: false,\n      puppeteer: {\n        headless: true, // Run in headless mode\n        args: ['--no-sandbox', '--disable-setuid-sandbox'], // For environments requiring specific arguments\n        executablePath: '/usr/bin/chromium-browser' // Specify a custom Chromium executable path\n      }\n    }\n  }\n}\n```\n\n## Usage\n\n### Starting a Scan\n<img width=\"190\" alt=\"Screenshot of the pally-dashboard icon added to the admin-bar\" src=\"https://github.com/user-attachments/assets/308d8774-800b-4639-93e4-c576d9e92298\">\n\n- Click on the Pally Dashboard icon added to the admin bar.\n- Enter the URL of the website you wish to scan (it is pre-populated with the `baseURL` of your site).\n- Select the desired ruleset (e.g., `WCAG2AA`).\n- Choose between a full scan or a single-page scan.\n- Click the \"Start Scan\" button.\n\n   The scan will begin asynchronously, and progress will be displayed in real-time.\n\n### Cancelling a Scan\n\n- Scanning numerous pages can take a long time. If the scanner follows an undesired link or begins scanning an undesired site, click the cancel scan button below the progress bar.\n\n### Viewing Scan History\n\n- Navigate to the `History` section within the Pally Dashboard to view past scan results.\n- Each entry includes details such as the scan date, URL, ruleset used, and the number of errors, warnings, and notices found.\n\n### Clearing Scan History\n\n- Use the clear history button below the scan list to delete all scan records.\n- To delete a specific scan record, use the delete button within the scan item.\n\n## Contributing\n\nContributions are welcome! Please follow these steps to contribute:\n\n1. **Fork the Repository**\n\n2. **Create a Feature Branch**\n\n   ```bash\n   git checkout -b feature/YourFeature\n   ```\n\n3. **Commit Your Changes**\n\n   ```bash\n   git commit -m \"Add Your Feature\"\n   ```\n\n4. **Push to the Branch**\n\n   ```bash\n   git push origin feature/YourFeature\n   ```\n\n5. **Open a Pull Request**\n\n## License\n\nThis project is licensed under the [MIT License](https://github.com/BoDonkey/pally-extension/blob/main/LICENSE).\n\n## Support\n\nFor support or questions, please open an issue on the [GitHub repository](https://github.com/BoDonkey/pally-extension/issues).\n\n# Acknowledgements\n\n- [ApostropheCMS](https://apostrophecms.com/)\n- [Pa11y](https://pa11y.org/)\n","readmeFilename":"README.md"}