Skip to content
CAI
Software that uses CAICheck a score

zenorocha/clipboard.js

52.2

Adequate · 25 September 2026

283

lines of production code

JavaScript

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Features

Added new demo pages for ClipboardJS constructor and programmatic API

Added 12 new demo files in the demo directory, including constructor-node, constructor-nodelist, constructor-selector, function-target, function-text, target-div, target-input, target-input-number, target-programmatic-copy, target-programmatic-cut, target-textarea, and text-programmatic-copy. These demos illustrate various ways to instantiate the clipboard functionality, such as passing HTML elements, node lists, or CSS selectors to the constructor, using functions for dynamic text or target selection, and utilizing the new programmatic copy/cut methods.

demo · high confidence

Refactor to modular action classes and expose static copy/cut methods

The library has been refactored to separate copy and cut logic into distinct action classes, allowing for better code organization and programmatic usage. Users can now invoke copy or cut operations directly via the new static \Clipboard.copy()\ and \Clipboard.cut()\ methods, which return the copied text. The internal implementation now relies on a \command\ helper to execute browser commands and a \createFakeElement\ helper to handle text selection, improving cross-browser support and performance. Additionally, TypeScript definitions have been updated to reflect the new class structure and static methods.

src · high confidence

Behavioural changes

Automated pre-commit linting via Husky

The project now automatically runs lint-staged on staged files before each commit, ensuring code quality checks are enforced at the Git level. This is enabled by adding a Husky pre-commit hook that executes \npx --no-install lint-staged\, with a corresponding \.gitignore\ entry to keep the hook directory clean.

.husky · medium confidence

Project configuration and build tooling updates

The project introduces a comprehensive set of configuration files to standardize code style and build processes. A new Webpack configuration is added to handle the build, alongside a Babel configuration for ES5 compatibility. Additionally, ESLint and Prettier are configured to enforce code quality and formatting rules, while supporting files like .gitignore, .editorconfig, and contributing guidelines are updated or added to support the new development workflow.

(repo-wide) · high confidence

Refactored clipboard actions into isolated strategy modules

The copy and cut logic has been separated into dedicated modules (copy.js, cut.js) and orchestrated by a new default strategy (default.js). This change isolates the copy and cut implementations to improve code maintainability and enable programmatic usage of these specific actions.

src/actions · high confidence

Updated dist bundle to v2.0.11

The distributed bundle (dist/clipboard.js and dist/clipboard.min.js) has been updated to version 2.0.11. This update includes the latest implementation of the clipboard API, supporting both 'copy' and 'cut' actions, with improved cross-browser compatibility and error handling for browsers that do not support the Clipboard API.

dist · medium confidence

Test coverage

Added comprehensive unit tests for the Clipboard module; Added unit tests for clipboard action strategies and common utilities.

Dependencies

Initial release of Clipboard.js v2.0.11 with modern build tooling

The project introduces a new package.json and package-lock.json for version 2.0.11, establishing a modern build pipeline using Webpack 5 and Babel 7 for transpilation. It also adds TypeScript type definitions (tsd) and a suite of dev dependencies including ESLint, Prettier, and Karma for testing. Additionally, a composer.json file is added to support installation via Composer, specifying the 'oomphinc/composer-installers-extender' package.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 41 → 52 (+11.6)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 57 → 69 (+12.1)
  • Architecture 69 (new)
  • Maturity 55 → 46 (-9.3)
  • Readiness 31 → 54 (+22.7)
  • Security 45 → 56 (+10.5)

Resolved (63)

  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Dimension evaluation failed
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • …and 43 more

New (77)

  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Dependency hygiene PARTLY measured — Composer dependencies read, no committed lock to grade for currency
  • End-of-life runtime: Node.js 14
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • …and 57 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

zenorocha/clipboard.js was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 25 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 899378dee9681dcf4cb3d702c23a3f3cd9f473d8 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-dd72cc24c749.