Skip to content
CAI
Software that uses CAICheck a score

adamwdraper/Numeral-js

40.4

Weak · 2 October 2026

5.1k

lines of production code

JavaScript

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a number formatting and manipulation library, specifically Numeral.js version 2.0.6. It provides capabilities for formatting numbers, currencies, percentages, and time durations across 28 international locales. The library supports various output formats including exponential, ordinal, and byte-based representations, with configurable options for scaling and rounding.

Features

Add wrapper templates for anonymous and AMD/CommonJS module formats

New template files (templates/anon.js and templates/types.js) have been added to wrap generated content. The anonymous template (anon.js) wraps content in an IIFE to avoid global scope pollution, while the types template (types.js) provides a UMD wrapper supporting AMD, CommonJS, and global exports for the numeral.js library.

templates · high confidence

Added numeral.js locale configurations for 28 languages and regions

The \locales\ directory now includes configuration files for numeral.js covering a wide range of international formats, including Bulgarian, Simplified Chinese, Czech, Danish, German (general and Swiss), English variants (Australia, UK, South Africa), Spanish (general and Spain), Estonian, Finnish, French (general, Canada, Switzerland), Hungarian, Italian, Japanese, Latvian, Dutch (Belgium and Netherlands), Norwegian, Polish, Portuguese (Brazil and Portugal), Russian (general and Ukraine), Slovak, Slovenian, Thai, Turkish, Ukrainian, and Vietnamese. These files define locale-specific rules for number delimiters, abbreviations, ordinal suffixes, and currency symbols, enabling accurate number formatting for users in these regions.

locales · high confidence

Expanded locale support with new regional configurations

The library has added support for numerous new locales, including Bulgarian (bg), Simplified Chinese (chs), Czech (cs), Danish (da-dk), German variants (de, de-ch), English variants (en-au, en-gb, en-za), Spanish variants (es, es-es), Estonian (et), Finnish (fi), French variants (fr, fr-ca, fr-ch), Hungarian (hu), Italian (it), Japanese (ja), Latvian (lv), Dutch variants (nl-be, nl-nl), Norwegian (no), Polish (pl), Portuguese variants (pt-br, pt-pt), Russian variants (ru, ru-ua), Slovak (sk), Slovenian (sl), Thai (th), Turkish (tr), Ukrainian (uk-ua), and Vietnamese (vi). These additions allow users to format numbers, currency, and ordinals according to specific regional standards for these languages.

src/locales · high confidence

New dedicated format modules for BPS, bytes, currency, exponential, ordinal, percentage, and time

The library now includes specific format modules for BPS, bytes, currency, exponential, ordinal, percentage, and time, each registered via the new \register\ function. This introduces dedicated handling for basis points (BPS), binary and decimal byte suffixes (e.g., KiB, MB), locale-aware currency symbols, exponential notation, ordinal suffixes, and time durations. The percentage format now respects a \scalePercentBy100\ option to control whether input values are treated as raw percentages or decimals, and the bytes format explicitly avoids conflicting with BPS parsing.

src/formats · high confidence

Behavioural changes

Numeral.js 2.0.6 release with locale and formatting updates

This release updates the Numeral.js library to version 2.0.6, introducing support for formatting numbers with leading zeros and a new 'Basic Point' format. It also adds the \scalePercentBy100\ option to control percentage scaling and fixes issues with multi-letter currency symbols and spacing. The release includes updated locale definitions and a reorganized build process using Grunt, Karma, and Mocha for testing and distribution.

(repo-wide) · high confidence

Numeral.js library updated to version 2.0.6 with new configuration options

The core number formatting library has been upgraded to version 2.0.6. This update introduces a new \scalePercentBy100\ configuration option, which defaults to true, allowing users to control whether percentage values are scaled by 100 during formatting. The change also includes fixes for decimal rounding issues and currency formatting, ensuring more accurate number representation across various locales and formats.

src · high confidence

Numeral.js updated to version 2.0.6 with expanded locale support

The minified distribution files for numeral.js have been updated to version 2.0.6. This release includes a comprehensive set of new locale definitions in \min/locales.min.js\ and individual locale files (such as \nl-be\, \bg\, \chs\, \da-dk\, \de-ch\, \en-au\, \en-gb\, \en-za\, \es-es\, \et\, \fi\, \fr-ca\, \fr-ch\, \hu\, \it\, \ja\, \lv\, \nl-nl\, \no\, \pl\, \pt-br\, \pt-pt\, \ru-ua\, \sk\, \sl\, \th\, \tr\, \uk-ua\, and \vi\), enabling correct number formatting, currency symbols, and ordinal rules for these regions. The core \numeral.min.js\ file also reflects this version bump, ensuring that the library's internal locale data and formatting logic are synchronized with the newly added regional configurations.

min · high confidence

Test coverage

Added locale regression tests for Bulgarian, Chinese, Czech, Danish, German, English, Spanish, Estonian, Finnish, French, Hungarian, Italian, and Japanese; Added test coverage for new number formatting options; Added test suite for numeral formatting and value handling.

Dependencies

Initial release of Numeral.js v2.0.6

This change introduces the Numeral.js package (version 2.0.6) to the project, providing a library for formatting and manipulating numbers. The package.json defines the main entry point as numeral.js and includes a comprehensive set of development dependencies for building, linting, and testing, such as Grunt, Karma, Mocha, and UglifyJS.

(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

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 39 → 40 (+1.4)
  • Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 33 → 34 (+1.4)
  • Architecture 100 → 100 (+0.0)
  • Maturity 45 → 47 (+2.2)
  • Readiness 25 → 27 (+2.0)
  • Security 100 → 97 (-3.3)

Resolved (4)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Hotspot: numeral.js (numeral.js)
  • Hotspot: src/numeral.js (src/numeral.js)

New (7)

  • FileTooLong: numeral.js (numeral.js)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • numeral.numeral.validate (cognitive 31) (numeral.js)
  • numeral.numeral.validate (cognitive 31) (src/numeral.js)
  • numeral.numeral.validate (cyclomatic 23) (numeral.js)
  • numeral.numeral.validate (cyclomatic 23) (src/numeral.js)

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

Survey your own repository

adamwdraper/Numeral-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 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 7de892ffb438af6e63b9c4f6aff0c9bc3932f09f — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.