I fixed `luhnValid` with a one-line change, and `npm test` now passes (`{"status":"PASS","suite":"luhn-valid"}`).

**The bug:** the function doubled the rightmost digit. The contract says to leave the rightmost digit unchanged and double every second digit moving left. In `src/luhn-valid.mjs`, `let doubleDigit = true;` should have been `false`, so every digit was getting the wrong treatment. I changed it to `let doubleDigit = false;`.

That one change makes the function match the whole contract. The other checks were already right: it only accepts primitive strings, requires 12 to 19 characters, and rejects anything that isn't an ASCII digit, including whitespace, without trimming.

I changed no other files.