{"_id":"utf8-sanitize","_rev":"4-8304d82cf1d10f17c230dd0478312124","name":"utf8-sanitize","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"utf8-sanitize","version":"1.0.0","keywords":["utf8","utf-8","sanitize","sanitization","zero-dependencies","zero-dependency","mojibake","performant","lightweight","xss","verify-length","verify-text-length","text-length","text-length-verify","string-repair","text-cleaning","text-processing","encoding","encoding-fix","input-sanitization","validator","validation","latin1","secure","security","input","safe-string","data-pipeline"],"author":{"name":"charuse"},"license":"MIT","_id":"utf8-sanitize@1.0.0","maintainers":[{"name":"charuse","email":"chilimuffin15@gmail.com"}],"homepage":"https://github.com/charuse/utf8-sanitize#readme","bugs":{"url":"https://github.com/charuse/utf8-sanitize/issues"},"dist":{"shasum":"e813b0da7cd7da8856cd4826b45202e8fc3dcf0d","tarball":"https://registry.npmjs.org/utf8-sanitize/-/utf8-sanitize-1.0.0.tgz","fileCount":7,"integrity":"sha512-8UZO/VXJdyr9logmOP6DVAuIWCT5mY3So7w1/PoAE+M5NKkJgxzirVRinx4yvPJCtOlXz2Y/V6XEnX0U4F4r0w==","signatures":[{"sig":"MEUCIQCt7OJK9NOScxRQXrlzowLjyS9ENoRQaAyeTQiUD8/5PAIgMZSoGoGwQmaHG0GXB4il7HkJUE8lk628+KXJIGEOUBQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16049},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"charuse","actor":{"name":"charuse","type":"user","email":"chilimuffin15@gmail.com"},"email":"chilimuffin15@gmail.com"},"repository":{"url":"git+https://github.com/charuse/utf8-sanitize.git","type":"git"},"_npmVersion":"11.4.1","description":"A performant zero-dependency utility to clean UTF-8 text, fix mojibake from latin1, verify string length, and sanitize input","directories":{},"_nodeVersion":"24.0.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utf8-sanitize_1.0.0_1750835424231_0.2708361981916594","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"utf8-sanitize","version":"1.0.1","keywords":["utf8","utf-8","sanitize","sanitization","zero-dependencies","zero-dependency","mojibake","performant","lightweight","xss","verify-length","verify-text-length","text-length","text-length-verify","string-repair","text-cleaning","text-processing","encoding","encoding-fix","input-sanitization","validator","validation","latin1","secure","security","input","safe-string","data-pipeline"],"author":{"name":"charuse"},"license":"MIT","_id":"utf8-sanitize@1.0.1","maintainers":[{"name":"charuse","email":"chilimuffin15@gmail.com"}],"homepage":"https://github.com/charuse/utf8-sanitize#readme","bugs":{"url":"https://github.com/charuse/utf8-sanitize/issues"},"dist":{"shasum":"03a3481c906b3608c055e73040dfa0d8ded7846c","tarball":"https://registry.npmjs.org/utf8-sanitize/-/utf8-sanitize-1.0.1.tgz","fileCount":7,"integrity":"sha512-psbbr9oMAme1CyFbVJdIf/yOuerfykvuHS1/boBrdawMwSSm/HcOIVH32aXaGd4kQ7MO4oEuA8R2Y15UzA4H3A==","signatures":[{"sig":"MEQCIG9k8im6LcL0NxM3eOMKH+/ac04DtFtODBKRpe30i6SAAiBN2Fax3qUJ3xSvvnI2tQmlHYPu9DQhWY4ZoxXs6eg5Mw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14798},"main":"index.js","gitHead":"341bebd91fcbb537d371be6a6211b2717f7d23c6","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"charuse","actor":{"name":"charuse","type":"user","email":"chilimuffin15@gmail.com"},"email":"chilimuffin15@gmail.com"},"repository":{"url":"git+https://github.com/charuse/utf8-sanitize.git","type":"git"},"_npmVersion":"11.4.1","description":"A performant zero-dependency utility to clean UTF-8 text, fix mojibake from latin1, verify string length, and sanitize input","directories":{},"_nodeVersion":"24.0.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utf8-sanitize_1.0.1_1750838533385_0.5833862374419019","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"utf8-sanitize","version":"1.0.2","keywords":["utf8","utf-8","sanitize","sanitization","zero-dependencies","zero-dependency","mojibake","latin1","performant","lightweight","xss","verify-length","verify-text-length","text-length","text-length-verify","string-repair","text-cleaning","text-processing","encoding","encoding-fix","input-sanitization","validator","validation","secure","security","input","safe-string","data-pipeline"],"author":{"name":"charuse"},"license":"MIT","_id":"utf8-sanitize@1.0.2","maintainers":[{"name":"charuse","email":"chilimuffin15@gmail.com"}],"homepage":"https://github.com/charuse/utf8-sanitize#readme","bugs":{"url":"https://github.com/charuse/utf8-sanitize/issues"},"dist":{"shasum":"5ddb6be146e7ead7cb48f3ce7d15dc8d283f24f2","tarball":"https://registry.npmjs.org/utf8-sanitize/-/utf8-sanitize-1.0.2.tgz","fileCount":6,"integrity":"sha512-PNoMhjrfP8Rkc8MesV441uk1iElzT8E7FGhgMLXQflb1qjcqzci9uocDtq46g+NpAT1cI8V7kdkESknhygWXKw==","signatures":[{"sig":"MEUCIQDFYClZoBtXdNalmRQW5ZpmMMk9gJizk5S38q0YwVgAdwIgJmMBfeSJdJHl0oJk7/1azIdaAKdWP+r4MhHkVec112M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13787},"main":"index.js","gitHead":"7c48beef797eabfbcb8369f66ba93490f6da94bc","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"charuse","actor":{"name":"charuse","type":"user","email":"chilimuffin15@gmail.com"},"email":"chilimuffin15@gmail.com"},"repository":{"url":"git+https://github.com/charuse/utf8-sanitize.git","type":"git"},"_npmVersion":"11.4.1","description":"A performant zero-dependency utility to clean UTF-8 text, fix mojibake from latin1, verify string length, and sanitize input","directories":{},"_nodeVersion":"24.0.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utf8-sanitize_1.0.2_1750838909140_0.08858195791242052","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-06-25T07:10:24.230Z","modified":"2025-12-25T23:41:53.275Z","1.0.0":"2025-06-25T07:10:24.449Z","1.0.1":"2025-06-25T08:02:13.576Z","1.0.2":"2025-06-25T08:08:29.325Z"},"bugs":{"url":"https://github.com/charuse/utf8-sanitize/issues"},"author":{"name":"charuse"},"license":"MIT","homepage":"https://github.com/charuse/utf8-sanitize#readme","keywords":["utf8","utf-8","sanitize","sanitization","zero-dependencies","zero-dependency","mojibake","latin1","performant","lightweight","xss","verify-length","verify-text-length","text-length","text-length-verify","string-repair","text-cleaning","text-processing","encoding","encoding-fix","input-sanitization","validator","validation","secure","security","input","safe-string","data-pipeline"],"repository":{"url":"git+https://github.com/charuse/utf8-sanitize.git","type":"git"},"description":"A performant zero-dependency utility to clean UTF-8 text, fix mojibake from latin1, verify string length, and sanitize input","maintainers":[{"email":"chilimuffin15@gmail.com","name":"charuse"},{"email":"jeffeatskale@gmail.com","name":"cha1r"}],"readme":"# `utf8-sanitize`\r\n\r\n[![NPM version](https://img.shields.io/npm/v/utf8-sanitize.svg)](https://npmjs.org/package/utf8-sanitize)\r\n\r\n> UTF-8 Sanitization and Repair Utility\r\n\r\nA lightweight, performant utility with zero dependencies to sanitize and repair UTF-8 text including:\r\n* **🛠️** Repairing mojibake corruption in latin1 single-byte to multi-byte UTF-8 character conversion\r\n* **📏** Check if a string's length matches its expected or safe 32-bit length\r\n* **🚫** Cleans string by removing/escaping characters based on a specifiable sanitization mode\r\n* **🔄** Function that provides a full pipeline for repair and sanitization through `FullSanitize` \r\n\r\n\r\n# Install\r\n\r\n```bash\r\nnpm install utf8-sanitize\r\n```\r\n\r\n\r\n# Usage\r\n### Import:\r\n```sh\r\nconst { FullSanitize } = require ('utf8-sanitize') # Import pipeline\r\nconst { FullSanitize, FixLatin1Corrupt, VerifyByteLength, SanitizeInput, MAX_SAFE_CHAR_LIMIT } = require ('utf8-sanitize') # Import all\r\n```\r\n\r\n### Functions:\r\n```js\r\nFullSanitize(); // => string\r\n// Full pipeline for mojibake repair from latin1 to UTF-8 string encoding, verifies expected string length and sanitizes string\r\n\r\nFixLatin1Corrupt() // => string\r\n// Repairs mojibake corruption from latin1 single-byte to multi-byte UTF-8 character conversion\r\n\r\nVerifyByteLength() // => boolean\r\n// Check if a string's length matches its expected or safe 32-bit length\r\n\r\nSanitizeInput() // => string\r\n// Cleans string by removing/escaping characters based on a sanitization mode specifiable via options (alphanumeric, html, filename)\r\n\r\nMAX_SAFE_CHAR_LIMIT // => number\r\n// Max safe V8 32-bit character string limit used by VerifyByteLength()\r\n```\r\n\r\n***Check*** `USAGE_EX.MD` ***for in-depth function usage examples***\r\n\r\n### Testing\r\nBasic assert tests are included in `/test/` folder in `index.test.js`\r\n\r\n### [Github Project Link](https://github.com/charuse/utf8-sanitize)\r\n\r\n# Credit\r\n### **Author:** *[charuse](https://github.com/charuse)*\r\n\r\n### **License:** *[MIT](LICENSE)*\r\n\r\n#### *Made with the help of [Google Gemini 2.5 Pro](https://aistudio.google.com)*","readmeFilename":"README.MD"}