{"_id":"text-sanctifier","_rev":"27-7a1af8378e740b47ac90eb3dd49ff18e","name":"text-sanctifier","dist-tags":{"latest":"1.0.20"},"versions":{"1.0.6":{"name":"text-sanctifier","version":"1.0.6","keywords":["text","sanitize","normalize","invisible","scrubber","unicode","clean","sanctify"],"author":{"name":"👾Dr.Watt👾","email":"WATT3D@protonmail.com"},"license":"👾Dr.Watt👾 License v2.0","_id":"text-sanctifier@1.0.6","maintainers":[{"name":"whatty","email":"whattydev@gmail.com"}],"homepage":"https://github.com/iWhatty/text-sanctifier#readme","bugs":{"url":"https://github.com/iWhatty/text-sanctifier/issues"},"dist":{"shasum":"729b2449b029fb6c808a2a559c398378c2848db9","tarball":"https://registry.npmjs.org/text-sanctifier/-/text-sanctifier-1.0.6.tgz","fileCount":7,"integrity":"sha512-8tJtohpEShFCzFhfxy+pFneJ3oh804foygqwIQTFrzlOhds0xPqxnorxB3DOqUfv4+CiJaeDPC200YHAi2B42g==","signatures":[{"sig":"MEQCIH3Z3BQn2W3DNNZFCvtBUV3CjxTGr8BvvFKbGeiIYSuZAiAD1u2JyqB7aNL0270il8T+xJMqlyBwvYA+YyrqVBn3IA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18551},"main":"./src/index.js","type":"module","types":"./src/index.d.ts","module":"./src/index.js","browser":"./dist/text-sanctifier.min.js","exports":{".":"./src/index.js","./browser":"./dist/text-sanctifier.min.js"},"gitHead":"2ba5de04603d13334334b31d411534f78c8297b1","scripts":{"test":"node tests/sanctifyText.test.js","build":"node scripts/buildc.js","test-min":"node tests/sanctifyText.test.min.js"},"_npmUser":{"name":"whatty","email":"whattydev@gmail.com"},"repository":{"url":"git+https://github.com/iWhatty/text-sanctifier.git","type":"git"},"_npmVersion":"10.8.2","description":"A brutal text normalizer and invisible trash scrubber for modern web projects.","directories":{"test":"tests"},"sideEffects":false,"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"devDependencies":{"terser":"^5.39.0","esbuild":"^0.25.3","google-closure-compiler":"^20240317.0.0"},"_npmOperationalInternal":{"tmp":"tmp/text-sanctifier_1.0.6_1745944313402_0.9033239035538043","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"text-sanctifier","version":"1.0.7","keywords":["text","sanitize","normalize","invisible","scrubber","unicode","clean","sanctify"],"author":{"name":"👾Dr.Watt👾","email":"WATT3D@protonmail.com"},"license":"👾Dr.Watt👾 License v2.0","_id":"text-sanctifier@1.0.7","maintainers":[{"name":"whatty","email":"whattydev@gmail.com"}],"homepage":"https://github.com/iWhatty/text-sanctifier#readme","bugs":{"url":"https://github.com/iWhatty/text-sanctifier/issues"},"dist":{"shasum":"cbe1cee021eb8a287fd7dac721c549098ee20acd","tarball":"https://registry.npmjs.org/text-sanctifier/-/text-sanctifier-1.0.7.tgz","fileCount":7,"integrity":"sha512-RG4Zo+ggfqyqownLG/ixESR0ICG9zlS3NrZIlaZrlS12gMBrhbQTKoThCIqWRu0MbrHQ/cp3V2WrpEkQao/ZZw==","signatures":[{"sig":"MEUCIHOOeKURL0aAd1s88e9vv5cli8nGQX42DUHt4kMbsY9YAiEA4d8JbccAtBwzDUD3+xa1I+zY9O0tC6+aHfeEIHxSni8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23708},"main":"./src/index.js","type":"module","types":"./src/index.d.ts","module":"./src/index.js","browser":"./dist/text-sanctifier.min.js","exports":{".":"./src/index.js","./browser":"./dist/text-sanctifier.min.js"},"gitHead":"92474127ebef806827bff1e5458e67742e3bbfe1","scripts":{"test":"node tests/sanctifyText.test.js","build":"node scripts/buildc.js","test-min":"node tests/sanctifyText.test.min.js"},"_npmUser":{"name":"whatty","email":"whattydev@gmail.com"},"repository":{"url":"git+https://github.com/iWhatty/text-sanctifier.git","type":"git"},"_npmVersion":"10.8.2","description":"A brutal text normalizer and invisible trash scrubber for modern web projects.","directories":{"test":"tests"},"sideEffects":false,"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"devDependencies":{"terser":"^5.39.0","esbuild":"^0.25.3","google-closure-compiler":"^20240317.0.0"},"_npmOperationalInternal":{"tmp":"tmp/text-sanctifier_1.0.7_1746749315396_0.9184765178448786","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"text-sanctifier","version":"1.0.8","keywords":["text","sanitize","normalize","invisible","scrubber","unicode","clean","sanctify"],"author":{"name":"👾Dr.Watt👾","email":"WATT3D@protonmail.com"},"license":"👾Dr.Watt👾 License v2.0","_id":"text-sanctifier@1.0.8","maintainers":[{"name":"whatty","email":"whattydev@gmail.com"}],"homepage":"https://github.com/iWhatty/text-sanctifier#readme","bugs":{"url":"https://github.com/iWhatty/text-sanctifier/issues"},"dist":{"shasum":"b595997f94d488be95efa12dd0ba7f84f07b1826","tarball":"https://registry.npmjs.org/text-sanctifier/-/text-sanctifier-1.0.8.tgz","fileCount":7,"integrity":"sha512-2vAwSi53xlwNjW1q0rr9MUwI/eJ40EcjZVzJJzu475UZVTHdaOV3rLaaR9lbok0uKe4pqJnIHtSIQHlU/ARvvA==","signatures":[{"sig":"MEUCIQDemnASz6zm5NuwUZLfjQk4wFCP4xRICN09J0nFQfPb9wIgc34xKx6o1UdjP+pmctFoguiFrDhO8uReKJcMDpoR17E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23997},"main":"./src/index.js","type":"module","types":"./src/index.d.ts","module":"./src/index.js","browser":"./dist/text-sanctifier.min.js","exports":{".":"./src/index.js","./browser":"./dist/text-sanctifier.min.js"},"gitHead":"d8616e5ecffe40d2b61a3abf7869152e44e84fdd","scripts":{"test":"node tests/sanctifyText.test.js","build":"node scripts/buildc.js","test-min":"node tests/sanctifyText.test.min.js"},"_npmUser":{"name":"whatty","email":"whattydev@gmail.com"},"repository":{"url":"git+https://github.com/iWhatty/text-sanctifier.git","type":"git"},"_npmVersion":"10.8.2","description":"A brutal text normalizer and invisible trash scrubber for modern web projects.","directories":{"test":"tests"},"sideEffects":false,"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"devDependencies":{"terser":"^5.39.0","esbuild":"^0.25.3","google-closure-compiler":"^20240317.0.0"},"_npmOperationalInternal":{"tmp":"tmp/text-sanctifier_1.0.8_1746749589452_0.15531044609427447","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"text-sanctifier","version":"1.0.9","keywords":["text","sanitize","normalize","invisible","scrubber","unicode","clean","sanctify"],"author":{"name":"👾Dr.Watt👾","email":"WATT3D@protonmail.com"},"license":"👾Dr.Watt👾 License v2.0","_id":"text-sanctifier@1.0.9","maintainers":[{"name":"whatty","email":"whattydev@gmail.com"}],"homepage":"https://github.com/iWhatty/text-sanctifier#readme","bugs":{"url":"https://github.com/iWhatty/text-sanctifier/issues"},"dist":{"shasum":"adc48cc98f5c5c09cefc04fed6a728fc5a9435cb","tarball":"https://registry.npmjs.org/text-sanctifier/-/text-sanctifier-1.0.9.tgz","fileCount":8,"integrity":"sha512-C95PDqc9HmB2MiXQDCNhjVy+9ibVAe1RE+Uq8vswlYHJJLye2jNVAMtWFbGJ985cNy4E8/FHxeqaW/Iyjqd8jA==","signatures":[{"sig":"MEQCIA7qaZD+HRLY0iLE93oJ1EUqsbBbb5thD93MddAJBuuIAiBHF7SSnlnvc2wXIP4wYuYEjrJs0+rMM1yuMaOGIOPvgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28654},"main":"./src/index.js","type":"module","types":"./src/index.d.ts","module":"./src/index.js","browser":"./dist/text-sanctifier.min.js","exports":{".":"./src/index.js","./browser":"./dist/text-sanctifier.min.js"},"gitHead":"e9d2d88f2532b7e633c19bed77c74eb485e86563","scripts":{"test":"node tests/sanctifyText.test.js","build":"node scripts/buildc.js","test-min":"node tests/sanctifyText.test.min.js"},"_npmUser":{"name":"whatty","email":"whattydev@gmail.com"},"repository":{"url":"git+https://github.com/iWhatty/text-sanctifier.git","type":"git"},"_npmVersion":"10.8.2","description":"A brutal text normalizer and invisible trash scrubber for modern web projects.","directories":{"test":"tests"},"sideEffects":false,"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"devDependencies":{"terser":"^5.39.0","esbuild":"^0.25.3","google-closure-compiler":"^20240317.0.0"},"_npmOperationalInternal":{"tmp":"tmp/text-sanctifier_1.0.9_1747249386152_0.31973178961100035","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"text-sanctifier","version":"1.0.10","keywords":["text","sanitize","normalize","invisible","scrubber","unicode","clean","sanctify"],"author":{"name":"👾Dr.Watt👾","email":"WATT3D@protonmail.com"},"license":"👾Dr.Watt👾 License v2.0","_id":"text-sanctifier@1.0.10","maintainers":[{"name":"whatty","email":"whattydev@gmail.com"}],"homepage":"https://github.com/iWhatty/text-sanctifier#readme","bugs":{"url":"https://github.com/iWhatty/text-sanctifier/issues"},"dist":{"shasum":"8a804b157137827d8a59ac11bedce87a0b67b8c7","tarball":"https://registry.npmjs.org/text-sanctifier/-/text-sanctifier-1.0.10.tgz","fileCount":8,"integrity":"sha512-6TmlFIJDTqYzGiWpNHaJfG2bP58KwjtFWVmi4vSt1l26aZ8M1CF/D6xZ5aW3o6z38KMG9/FenamaNUqnACiK/w==","signatures":[{"sig":"MEYCIQDdrc00cz0jlly4qiBuQD7dBt8utZ+7p2ApxnhYG2oBsgIhAKbVxJ/sXSFtDYObvOIa8T0n5r1FRVfp3ITEonyVtASO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34608},"main":"./src/index.js","type":"module","types":"./src/index.d.ts","module":"./src/index.js","browser":"./dist/text-sanctifier.min.js","exports":{".":"./src/index.js","./browser":"./dist/text-sanctifier.min.js"},"gitHead":"60977da2a7078de24858f9d1ae5e111247e49ced","scripts":{"test":"node tests/sanctifyText.test.js","build":"node scripts/buildc.js","test-min":"node tests/sanctifyText.test.min.js"},"_npmUser":{"name":"whatty","email":"whattydev@gmail.com"},"repository":{"url":"git+https://github.com/iWhatty/text-sanctifier.git","type":"git"},"_npmVersion":"10.8.2","description":"A brutal text normalizer and invisible trash scrubber for modern web projects.","directories":{"test":"tests"},"sideEffects":false,"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"devDependencies":{"terser":"^5.39.0","esbuild":"^0.25.3","google-closure-compiler":"^20240317.0.0"},"_npmOperationalInternal":{"tmp":"tmp/text-sanctifier_1.0.10_1747272323749_0.29419831915745087","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"text-sanctifier","version":"1.0.11","keywords":["text","sanitize","normalize","invisible","scrubber","unicode","clean","sanctify"],"author":{"name":"👾Dr.Watt👾","email":"WATT3D@protonmail.com"},"license":"👾Dr.Watt👾 License v2.0","_id":"text-sanctifier@1.0.11","maintainers":[{"name":"whatty","email":"whattydev@gmail.com"}],"homepage":"https://github.com/iWhatty/text-sanctifier#readme","bugs":{"url":"https://github.com/iWhatty/text-sanctifier/issues"},"dist":{"shasum":"367f09233c38ad0955d5f22c01ff5bed4aeb0784","tarball":"https://registry.npmjs.org/text-sanctifier/-/text-sanctifier-1.0.11.tgz","fileCount":8,"integrity":"sha512-tc3wV4rtSFviIz2AZt4wgh6w7BUsXuoXB4IFW4Qv/9p2n3u8KfYT5grGHeYQDW2/AP/4it0xZLWJoh8m7RFD1w==","signatures":[{"sig":"MEUCIQDxUGuYH78L9xlcxqqyC0mSOHVtq/uaZ11Syd4OjJ0HkQIgEpO2FjwTY0+RL6fMi98UiIH6PL+PGGfqb4L4UtlfFtw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35359},"main":"./src/index.js","type":"module","types":"./src/index.d.ts","module":"./src/index.js","browser":"./dist/text-sanctifier.min.js","exports":{".":"./src/index.js","./browser":"./dist/text-sanctifier.min.js"},"gitHead":"ae12ad77c82cf5d36c2f8cc929e0aa884d68ef08","scripts":{"test":"node tests/sanctifyText.test.js","build":"node scripts/buildc.js","test-min":"node tests/sanctifyText.test.min.js"},"_npmUser":{"name":"whatty","email":"whattydev@gmail.com"},"repository":{"url":"git+https://github.com/iWhatty/text-sanctifier.git","type":"git"},"_npmVersion":"10.8.2","description":"A brutal text normalizer and invisible trash scrubber for modern web projects.","directories":{"test":"tests"},"sideEffects":false,"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"devDependencies":{"terser":"^5.39.0","esbuild":"^0.25.3","google-closure-compiler":"^20240317.0.0"},"_npmOperationalInternal":{"tmp":"tmp/text-sanctifier_1.0.11_1747941145491_0.7578982409682828","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"text-sanctifier","version":"1.0.12","keywords":["text","sanitize","normalize","invisible","scrubber","unicode","clean","sanctify"],"author":{"name":"👾Dr.Watt👾","email":"WATT3D@protonmail.com"},"license":"👾Dr.Watt👾 License v3.0","_id":"text-sanctifier@1.0.12","maintainers":[{"name":"whatty","email":"whattydev@gmail.com"}],"homepage":"https://github.com/iWhatty/text-sanctifier#readme","bugs":{"url":"https://github.com/iWhatty/text-sanctifier/issues"},"dist":{"shasum":"532726dff7e5652d500641934b966cca97c961f4","tarball":"https://registry.npmjs.org/text-sanctifier/-/text-sanctifier-1.0.12.tgz","fileCount":8,"integrity":"sha512-ZYziL9RYfSJpWrkVl8NYbXoimJAfnwrCNEYkiFsJDdGeHfqKbfHPC0wMeN/fXLhBTfmtgFxqFMLEBMNvI0zFvg==","signatures":[{"sig":"MEUCIQCNUU6K7oYIXrrnKuL10QTqPZnFwc6xsvoOeDKnDhA3WwIgTnvizF3jAL/idVU2WplrRVKltdEDJJag3DUZItLHXLo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35359},"main":"./src/index.js","type":"module","types":"./src/index.d.ts","module":"./src/index.js","browser":"./dist/text-sanctifier.min.js","exports":{".":"./src/index.js","./browser":"./dist/text-sanctifier.min.js"},"gitHead":"09dd7fbeb90f3b37f6345facee6f947632644f25","scripts":{"test":"node tests/sanctifyText.test.js","build":"node scripts/buildc.js","test-min":"node tests/sanctifyText.test.min.js"},"_npmUser":{"name":"whatty","email":"whattydev@gmail.com"},"repository":{"url":"git+https://github.com/iWhatty/text-sanctifier.git","type":"git"},"_npmVersion":"10.8.2","description":"A brutal text normalizer and invisible trash scrubber for modern web projects.","directories":{"test":"tests"},"sideEffects":false,"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"devDependencies":{"terser":"^5.39.0","esbuild":"^0.25.3","google-closure-compiler":"^20240317.0.0"},"_npmOperationalInternal":{"tmp":"tmp/text-sanctifier_1.0.12_1747941240359_0.10688425380041555","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"text-sanctifier","version":"1.0.13","keywords":["text","sanitize","normalize","invisible","scrubber","unicode","clean","sanctify"],"author":{"name":"👾Dr.Watt👾","email":"WATT3D@protonmail.com"},"license":"👾Dr.Watt👾 License v3.0","_id":"text-sanctifier@1.0.13","maintainers":[{"name":"whatty","email":"whattydev@gmail.com"}],"homepage":"https://github.com/iWhatty/text-sanctifier#readme","bugs":{"url":"https://github.com/iWhatty/text-sanctifier/issues"},"dist":{"shasum":"77ebe510dd5c8eac182ca2976e22b91f2f0f24a6","tarball":"https://registry.npmjs.org/text-sanctifier/-/text-sanctifier-1.0.13.tgz","fileCount":8,"integrity":"sha512-fHkuJ2zYMzEloyvwSKuxBDtnV7pEwJtYKTM7J+SIOkutoj99yLqYgd+cQMqjym+STYzc1E1/i8E2XaH1us1S/Q==","signatures":[{"sig":"MEYCIQCc2I94DorAdzjHZ9p2/9ixU0WRso5AYufohRoca8cT7wIhAMJ07QOsxgKl4hcfqA+PeOqv4UwVT9titcHpIP++0ed5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35609},"main":"./src/index.js","type":"module","types":"./src/index.d.ts","module":"./src/index.js","browser":"./dist/text-sanctifier.min.js","exports":{".":"./src/index.js","./browser":"./dist/text-sanctifier.min.js"},"gitHead":"86c212c512911a4079be4a95c86713d2d93f22d4","scripts":{"test":"node tests/sanctifyText.test.js","build":"node scripts/buildc.js","test-min":"node tests/sanctifyText.test.min.js"},"_npmUser":{"name":"whatty","email":"whattydev@gmail.com"},"repository":{"url":"git+https://github.com/iWhatty/text-sanctifier.git","type":"git"},"_npmVersion":"10.8.2","description":"A brutal text normalizer and invisible trash scrubber for modern web projects.","directories":{"test":"tests"},"sideEffects":false,"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"devDependencies":{"terser":"^5.39.0","esbuild":"^0.25.3","google-closure-compiler":"^20240317.0.0"},"_npmOperationalInternal":{"tmp":"tmp/text-sanctifier_1.0.13_1747945533723_0.3255260294952025","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"text-sanctifier","version":"1.0.14","keywords":["text","sanitize","normalize","invisible","scrubber","unicode","clean","sanctify"],"author":{"name":"👾Dr.Watt👾","email":"WATT3D@protonmail.com"},"license":"👾Dr.Watt👾 License v3.0","_id":"text-sanctifier@1.0.14","maintainers":[{"name":"whatty","email":"whattydev@gmail.com"}],"homepage":"https://github.com/iWhatty/text-sanctifier#readme","bugs":{"url":"https://github.com/iWhatty/text-sanctifier/issues"},"dist":{"shasum":"37725f46167ea58dd5dc9e3b35a45b05b73b2ac7","tarball":"https://registry.npmjs.org/text-sanctifier/-/text-sanctifier-1.0.14.tgz","fileCount":8,"integrity":"sha512-76ucXq6RzjTX4tpQ8sD9jYZT5tB7b75SNpzjDBWzZMm7lUNkFoQzU9YW/K6hktiwYJdvbDVb+QzsFY/AqsRfDQ==","signatures":[{"sig":"MEQCIDbuUDxaiclCLRTjK9KngwpAMWBN74AnkeloDqMuSAycAiBWk1Mo5o8K3uzD0/bk5GImqYekbEe5qeTMM2CYZYWt9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38400},"main":"./src/index.js","type":"module","types":"./src/index.d.ts","module":"./src/index.js","browser":"./dist/text-sanctifier.min.js","exports":{".":"./src/index.js","./browser":"./dist/text-sanctifier.min.js"},"gitHead":"ddd7119c0706656a133639ef882eb0375af8c7e0","scripts":{"test":"node tests/sanctifyText.test.js","build":"node scripts/buildc.js","test-min":"node tests/sanctifyText.test.min.js"},"_npmUser":{"name":"whatty","email":"whattydev@gmail.com"},"repository":{"url":"git+https://github.com/iWhatty/text-sanctifier.git","type":"git"},"_npmVersion":"10.8.2","description":"A brutal text normalizer and invisible trash scrubber for modern web projects.","directories":{"test":"tests"},"sideEffects":false,"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"devDependencies":{"terser":"^5.39.0","esbuild":"^0.25.3","google-closure-compiler":"^20240317.0.0"},"_npmOperationalInternal":{"tmp":"tmp/text-sanctifier_1.0.14_1747950027062_0.8495344078900284","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"text-sanctifier","version":"1.0.15","keywords":["text","sanitize","normalize","invisible","scrubber","unicode","clean","sanctify"],"author":{"name":"👾Dr.Watt👾","email":"WATT3D@protonmail.com"},"license":"👾Dr.Watt👾 License v3.0","_id":"text-sanctifier@1.0.15","maintainers":[{"name":"whatty","email":"whattydev@gmail.com"}],"homepage":"https://github.com/iWhatty/text-sanctifier#readme","bugs":{"url":"https://github.com/iWhatty/text-sanctifier/issues"},"dist":{"shasum":"f41375ff6b8a3699d7731d11bfcd56488fc0405c","tarball":"https://registry.npmjs.org/text-sanctifier/-/text-sanctifier-1.0.15.tgz","fileCount":8,"integrity":"sha512-NkwdbkrNs/PAw+UuWRWZF3VBlzNFA97767fLZZZWU4fEX1aiUy1mg8ENs25fyCZXnRsZg2ST/bGgaJmxrHZ8OA==","signatures":[{"sig":"MEUCICe0shqRhJnxix9NaQlWCiqw6zr7AAsN7ei2JiK1ZC/TAiEA5ovFMP/4s5gjH8z2MkPdaUfPLeMCzlF6CZHSylYu1dg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40355},"main":"./src/index.js","type":"module","types":"./src/index.d.ts","module":"./src/index.js","browser":"./dist/text-sanctifier.min.js","exports":{".":"./src/index.js","./browser":"./dist/text-sanctifier.min.js"},"gitHead":"ddd7119c0706656a133639ef882eb0375af8c7e0","scripts":{"test":"node tests/sanctifyText.test.js","build":"node scripts/buildc.js","test-min":"node tests/sanctifyText.test.min.js"},"_npmUser":{"name":"whatty","email":"whattydev@gmail.com"},"repository":{"url":"git+https://github.com/iWhatty/text-sanctifier.git","type":"git"},"_npmVersion":"10.8.2","description":"A brutal text normalizer and invisible trash scrubber for modern web projects.","directories":{"test":"tests"},"sideEffects":false,"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"devDependencies":{"terser":"^5.39.0","esbuild":"^0.25.3","google-closure-compiler":"^20240317.0.0"},"_npmOperationalInternal":{"tmp":"tmp/text-sanctifier_1.0.15_1747962200461_0.7851169372244664","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"text-sanctifier","version":"1.0.16","keywords":["text","sanitize","normalize","invisible","scrubber","unicode","clean","sanctify"],"author":{"name":"👾Dr.Watt👾","email":"WATT3D@protonmail.com"},"license":"👾Dr.Watt👾 License v3.0","_id":"text-sanctifier@1.0.16","maintainers":[{"name":"whatty","email":"whattydev@gmail.com"}],"homepage":"https://github.com/iWhatty/text-sanctifier#readme","bugs":{"url":"https://github.com/iWhatty/text-sanctifier/issues"},"dist":{"shasum":"a22a9f27ac29004eb994ad77707ad076e26d547b","tarball":"https://registry.npmjs.org/text-sanctifier/-/text-sanctifier-1.0.16.tgz","fileCount":8,"integrity":"sha512-46pJ1FJ7Io7U4IgRWIZf+K0ml3jdEL9vgXN76YNhjWdswOTBs5rUVT91QF/KEdcNOcIBWUhSagDqdmXnIL9Wtg==","signatures":[{"sig":"MEQCIFwLlPqxg3yvf2WhSxH7u/UJYFl1CnVHj0gqqJykVabdAiAflmjTj+8rU2sOIcxu0h2FSbOpFNQS61sjU1dxTQREuw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40791},"main":"./src/index.js","type":"module","types":"./src/index.d.ts","module":"./src/index.js","browser":"./dist/text-sanctifier.min.js","exports":{".":"./src/index.js","./browser":"./dist/text-sanctifier.min.js"},"gitHead":"6d8439f1837f9f8524a6f4793dd8fbab4ee0ea44","scripts":{"test":"node tests/sanctifyText.test.js","build":"node scripts/buildc.js","test-min":"node tests/sanctifyText.test.min.js"},"_npmUser":{"name":"whatty","email":"whattydev@gmail.com"},"repository":{"url":"git+https://github.com/iWhatty/text-sanctifier.git","type":"git"},"_npmVersion":"10.8.2","description":"A brutal text normalizer and invisible trash scrubber for modern web projects.","directories":{"test":"tests"},"sideEffects":false,"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"devDependencies":{"terser":"^5.39.0","esbuild":"^0.25.3","google-closure-compiler":"^20240317.0.0"},"_npmOperationalInternal":{"tmp":"tmp/text-sanctifier_1.0.16_1748133484598_0.6525447994966309","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"text-sanctifier","version":"1.0.17","keywords":["text","sanitize","normalize","invisible","scrubber","unicode","clean","sanctify"],"author":{"name":"👾Dr.Watt👾","email":"WATT3D@protonmail.com"},"license":"👾Dr.Watt👾 License v3.0","_id":"text-sanctifier@1.0.17","maintainers":[{"name":"whatty","email":"whattydev@gmail.com"}],"homepage":"https://github.com/iWhatty/text-sanctifier#readme","bugs":{"url":"https://github.com/iWhatty/text-sanctifier/issues"},"dist":{"shasum":"9461e6d6f414490fa4293945fe407c6fb80ea3a6","tarball":"https://registry.npmjs.org/text-sanctifier/-/text-sanctifier-1.0.17.tgz","fileCount":8,"integrity":"sha512-0+8VIulhsbTsYEZTGGorRDEOvrzoB/rbKOP37jwFnYSPqTerH2hOe76/cGotlcARco93afHTSpNT3L9hsGb3Ew==","signatures":[{"sig":"MEQCIEqRRN9q+TxSBO72pdMMd7prpZOS0yNtI2apH1+bi8M0AiA5TSzVgP9ov0UU2rb513YGR8qzgrQyJfAcmkidgLbyrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43788},"main":"./src/index.js","type":"module","types":"./src/index.d.ts","module":"./src/index.js","browser":"./dist/text-sanctifier.min.js","exports":{".":"./src/index.js","./browser":"./dist/text-sanctifier.min.js"},"gitHead":"182b19fc4915652313d54d71d80e5da6329e1e2c","scripts":{"test":"node tests/sanctifyText.test.js","build":"node scripts/buildc.js","test-min":"node tests/sanctifyText.test.min.js"},"_npmUser":{"name":"whatty","email":"whattydev@gmail.com"},"repository":{"url":"git+https://github.com/iWhatty/text-sanctifier.git","type":"git"},"_npmVersion":"11.6.1","description":"A brutal text normalizer and invisible trash scrubber for modern web projects.","directories":{"test":"tests"},"sideEffects":false,"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"terser":"^5.39.0","esbuild":"^0.25.3","google-closure-compiler":"^20240317.0.0"},"_npmOperationalInternal":{"tmp":"tmp/text-sanctifier_1.0.17_1772479676264_0.6130532955984445","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"text-sanctifier","version":"1.0.18","keywords":["text","sanitize","normalize","invisible","scrubber","unicode","clean","sanctify"],"author":{"name":"👾Dr.Watt👾","email":"WATT3D@protonmail.com"},"license":"👾Dr.Watt👾 License v3.0","_id":"text-sanctifier@1.0.18","maintainers":[{"name":"whatty","email":"whattydev@gmail.com"}],"homepage":"https://github.com/iWhatty/text-sanctifier#readme","bugs":{"url":"https://github.com/iWhatty/text-sanctifier/issues"},"dist":{"shasum":"ee491bcf3cdeec8021ac0d081af1385810fb7443","tarball":"https://registry.npmjs.org/text-sanctifier/-/text-sanctifier-1.0.18.tgz","fileCount":11,"integrity":"sha512-yTzLr9SpyK/zv6SEJ9/OffPvUcMfQOEBw137TX3O/qgETzZeEVhP6WumjRlVNEYcGAtfyrLvSrQtCijyuYqQMg==","signatures":[{"sig":"MEYCIQDrfK68Jthp+YGP7ExTdA1D2s2e45x3ftgDrVQMTMX+xAIhANifApZMFufgXfvBsLQdyuPwae6plnD8ILbhpUFkLKuw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52552},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./src/index.js","browser":"./dist/text-sanctifier.min.js","exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./browser":{"default":"./dist/text-sanctifier.min.js"}},"gitHead":"198c6442afe7e167821a69a85a292355d1d6c3f1","scripts":{"ci":"npm run test && npm run build && npm run build:types && npm run test-min","test":"node tests/sanctifyText.test.js","build":"node scripts/buildc.js","test-min":"node tests/sanctifyText.test.min.js","build:types":"tsc -p tsconfig.types.json"},"_npmUser":{"name":"whatty","email":"whattydev@gmail.com"},"repository":{"url":"git+https://github.com/iWhatty/text-sanctifier.git","type":"git"},"_npmVersion":"11.6.1","description":"A brutal text normalizer and invisible trash scrubber for modern web projects.","directories":{"test":"tests"},"sideEffects":false,"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"terser":"^5.39.0","esbuild":"^0.25.3","typescript":"^5.9.3","google-closure-compiler":"^20240317.0.0"},"_npmOperationalInternal":{"tmp":"tmp/text-sanctifier_1.0.18_1772481312707_0.6780290946524699","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"text-sanctifier","version":"1.0.19","keywords":["text","sanitize","normalize","invisible","scrubber","unicode","clean","sanctify"],"author":{"name":"WATT3D","email":"WATT3D@protonmail.com"},"license":"SEE LICENSE IN LICENSE","_id":"text-sanctifier@1.0.19","maintainers":[{"name":"whatty","email":"whattydev@gmail.com"}],"homepage":"https://github.com/iWhatty/text-sanctifier#readme","bugs":{"url":"https://github.com/iWhatty/text-sanctifier/issues"},"dist":{"shasum":"69681105e73f1a612d343db664c07ed20614d0e4","tarball":"https://registry.npmjs.org/text-sanctifier/-/text-sanctifier-1.0.19.tgz","fileCount":13,"integrity":"sha512-gn1yJmk63+5puf6y3oOSMTABm8X20LV9VyDdpK99InUNkPGSE2uzAW8b69oJ52+XOQ6mRfwNjAaiR9uyzsYAXA==","signatures":[{"sig":"MEQCIC3Hpl+WKW3MmKN84PS+rLu0hzv9O5rYSOvC9ZBirJ6nAiAWKDDxPDDUljVN5b2LrSSFwsc0PVBdSjpNAK/CXJnNoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90265},"main":"./src/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./src/index.js","browser":"./dist/text-sanctifier.min.js","exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./browser":{"default":"./dist/text-sanctifier.min.js"}},"scripts":{"ci":"npm run test && npm run build && npm run build:types && npm run test-min","test":"node tests/sanctifyText.test.js","build":"node scripts/buildc.js","test-min":"node tests/sanctifyText.test.min.js","build:types":"tsc -p tsconfig.types.json"},"_npmUser":{"name":"whatty","email":"whattydev@gmail.com"},"repository":{"url":"git+https://github.com/iWhatty/text-sanctifier.git","type":"git"},"_npmVersion":"11.12.0","description":"A brutal text normalizer and invisible trash scrubber for modern web projects.","directories":{"test":"tests"},"sideEffects":false,"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"terser":"^5.39.0","esbuild":"^0.25.3","typescript":"^5.9.3","google-closure-compiler":"^20240317.0.0"},"_npmOperationalInternal":{"tmp":"tmp/text-sanctifier_1.0.19_1779243521431_0.13766365113871037","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"text-sanctifier","version":"1.0.20","type":"module","description":"A brutal text normalizer and invisible trash scrubber for modern web projects.","engines":{"node":">=18"},"main":"./src/index.js","module":"./src/index.js","browser":"./dist/text-sanctifier.min.js","exports":{".":{"types":"./dist/types/index.d.ts","default":"./src/index.js"},"./browser":{"types":"./dist/types/index.d.ts","default":"./dist/text-sanctifier.min.js"}},"types":"./dist/types/index.d.ts","sideEffects":false,"scripts":{"build":"node scripts/buildc.js","build:types":"tsc -p tsconfig.types.json","test":"node tests/sanctifyText.test.js","test-min":"node tests/sanctifyText.test.min.js","ci":"npm run test && npm run build && npm run build:types && npm run test-min"},"keywords":["text","sanitize","normalize","invisible","scrubber","unicode","clean","sanctify"],"author":{"name":"WATT3D","email":"WATT3D@protonmail.com"},"license":"SEE LICENSE IN LICENSE","repository":{"type":"git","url":"git+https://github.com/iWhatty/text-sanctifier.git"},"bugs":{"url":"https://github.com/iWhatty/text-sanctifier/issues"},"homepage":"https://github.com/iWhatty/text-sanctifier#readme","directories":{"test":"tests"},"devDependencies":{"esbuild":"^0.25.3","google-closure-compiler":"^20240317.0.0","terser":"^5.39.0","typescript":"^5.9.3"},"_id":"text-sanctifier@1.0.20","_nodeVersion":"24.14.0","_npmVersion":"11.12.0","dist":{"integrity":"sha512-xNwzlgUCvxl/BQQlalMA6iYW/l5Zsc+CK5z6l3fUI8zBAkw1zsg/0Im6LKy4XU49tx/1uWSiZm7QFL0oS9Lgag==","shasum":"070caada112ccfb55a354ea0f64ce0936cb2179b","tarball":"https://registry.npmjs.org/text-sanctifier/-/text-sanctifier-1.0.20.tgz","fileCount":13,"unpackedSize":90346,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDbCcc47/YEwqxhpmATmj3cwOKh9OzwrQ6TlkVkHZ84mQIgO75KUGPaQKLN+TtaL7ApBGYaxu0EP4IZxVlZs+Iypdc="}]},"_npmUser":{"name":"whatty","email":"whattydev@gmail.com"},"maintainers":[{"name":"whatty","email":"whattydev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/text-sanctifier_1.0.20_1779802781099_0.4032710386659295"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-28T18:23:34.856Z","modified":"2026-05-26T13:39:41.714Z","1.0.0":"2025-04-28T18:23:35.139Z","1.0.1":"2025-04-29T00:22:09.156Z","1.0.2":"2025-04-29T15:39:12.358Z","1.0.3":"2025-04-29T15:42:30.779Z","1.0.4":"2025-04-29T15:45:22.094Z","1.0.5":"2025-04-29T16:28:05.338Z","1.0.6":"2025-04-29T16:31:53.581Z","1.0.7":"2025-05-09T00:08:40.605Z","1.0.8":"2025-05-09T00:13:09.679Z","1.0.9":"2025-05-14T19:03:06.313Z","1.0.10":"2025-05-15T01:25:23.965Z","1.0.11":"2025-05-22T19:12:25.753Z","1.0.12":"2025-05-22T19:14:00.606Z","1.0.13":"2025-05-22T20:25:33.920Z","1.0.14":"2025-05-22T21:40:27.286Z","1.0.15":"2025-05-23T01:03:20.678Z","1.0.16":"2025-05-25T00:38:04.793Z","1.0.17":"2026-03-02T19:27:56.418Z","1.0.18":"2026-03-02T19:55:12.843Z","1.0.19":"2026-05-20T02:18:41.571Z","1.0.20":"2026-05-26T13:39:41.234Z"},"bugs":{"url":"https://github.com/iWhatty/text-sanctifier/issues"},"author":{"name":"WATT3D","email":"WATT3D@protonmail.com"},"license":"SEE LICENSE IN LICENSE","homepage":"https://github.com/iWhatty/text-sanctifier#readme","keywords":["text","sanitize","normalize","invisible","scrubber","unicode","clean","sanctify"],"repository":{"type":"git","url":"git+https://github.com/iWhatty/text-sanctifier.git"},"description":"A brutal text normalizer and invisible trash scrubber for modern web projects.","maintainers":[{"name":"whatty","email":"whattydev@gmail.com"}],"readme":"# text-sanctifier\n\n[![npm](https://img.shields.io/npm/v/text-sanctifier)](https://www.npmjs.com/package/text-sanctifier)\n[![downloads](https://img.shields.io/npm/dm/text-sanctifier)](https://www.npmjs.com/package/text-sanctifier)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/text-sanctifier)](https://bundlephobia.com/package/text-sanctifier)\n[![license](https://img.shields.io/npm/l/text-sanctifier)](https://github.com/iWhatty/text-sanctifier/blob/main/LICENSE)\n[![stars](https://img.shields.io/github/stars/iWhatty/text-sanctifier?style=social)](https://github.com/iWhatty/text-sanctifier)\n\nBrutal text normalizer and invisible Unicode scrubber for modern web projects. ~1.66 KB gzipped.\n\n## Features\n\n- Purges zero-width Unicode garbage\n- Normalizes line endings (CRLF, CR, LF) to LF\n- Collapses unwanted spaces and paragraphs\n- Nukes control characters (if enabled)\n- Smart normalization of typographic junk (quotes, dashes, bullets, full-width punctuation)\n- Keyboard-only filtering (retain printable ASCII + full emoji sequences)\n  - Preserves ZWJ emoji clusters (👨‍👩‍👧‍👦)\n  - Preserves VS16 emoji presentation variants (✌️, ‼️)\n- Configurable via fine-grained flags or ready-made presets\n- Includes strict, loose, and keyboard-only modes\n- Deterministic RegExp usage (no global `lastIndex` state leaks)\n\n---\n\n## Install\n\n```sh\npnpm add text-sanctifier\n```\n\n---\n\n## Quick start\n\n**Custom config:**\n\n```js\nimport { summonSanctifier } from 'text-sanctifier';\n\nconst clean = summonSanctifier({\n  purgeInvisibleChars: true,\n  purgeEmojis: true,\n  collapseSpaces: true,\n  collapseNewLines: true,\n  preserveParagraphs: true,\n  finalTrim: true,\n});\n\nconst output = clean(rawText);\n```\n\n**Strict preset:**\n\n```js\nconst output = summonSanctifier.strict(rawText);\n```\n\n**Loose preset:**\n\n```js\nconst output = summonSanctifier.loose(rawText);\n```\n\n**Keyboard-only (no emojis):**\n\n```js\nconst output = summonSanctifier.keyboardOnly(userInput);\n```\n\n**Keyboard-only (with emojis):**\n\n```js\nconst output = summonSanctifier.keyboardOnlyEmoji(commentText);\n```\n\n---\n\n## Security notes\n\n- **Not an HTML/XSS sanitizer.** This library normalizes and filters plain text.\n- If you need to render **untrusted content**, render it as text (e.g. `textContent`), not HTML (`innerHTML`).\n- If you need to sanitize **HTML**, use a dedicated HTML sanitizer (e.g. DOMPurify / sanitize-html).\n- Like any text-processing library, extremely large untrusted inputs can be used for CPU/DoS pressure; consider input size limits in high-risk environments.\n\n---\n\n## API\n\n### `summonSanctifier(options?: SanctifyOptions): (text: string) => string`\n\nCreates a reusable sanitizer from an option object.\n\n### `summonSanctifier.strict`\n\nAggressively purges: emojis, control characters, extra spacing, and newlines.\n\n### `summonSanctifier.loose`\n\nGently normalizes spacing and newlines while preserving emojis and paragraphs.\n\n### `summonSanctifier.keyboardOnly`\n\nRestricts to printable ASCII only (removes emojis).\n\n### `summonSanctifier.keyboardOnlyEmoji`\n\nRestricts to printable ASCII + full emoji sequences. Preserves ZWJ emoji clusters and emoji presentation variants.\n\n### `inspectText(text: string): UnicodeTrashReport`\n\nReturns a structural report of control codes, invisible chars, newline styles, and more.\n\n```js\nimport { inspectText } from 'text-sanctifier';\n\nconst report = inspectText(input);\n\n/*\n{\n  hasControlChars: true,\n  hasInvisibleChars: true,\n  hasMixedNewlines: false,\n  newlineStyle: 'LF',\n  hasEmojis: true,\n  hasNonKeyboardChars: false,\n  summary: [\n    'Control characters detected.',\n    'Invisible Unicode characters detected.',\n    'Emojis detected.',\n    'Consistent newline style: LF'\n  ]\n}\n*/\n```\n\nUse `inspectText` to preflight text content before rendering, storing, or linting. It's a diagnostic tool to help inform sanitization needs. Pass the report to `getRecommendedSanctifierOptions(report)` to auto-generate config flags for `summonSanctifier()`.\n\n---\n\n## Notes\n\n### Runtime requirements\n\nRequires a modern JavaScript runtime with ES2020+ support:\n\n- Node.js 14+\n- Modern evergreen browsers\n\n### Package and build info\n\n- **Source (`src/`):** ES2020+ ESM modules with JSDoc\n- **Browser build (`dist/`):** Minified ESM bundle for `<script type=\"module\">`\n- **Tree-shake friendly:** ships `sideEffects: false`\n- **Zero transpilation:** no built-in polyfills or runtime overhead\n- **Bundler ready:** works with Vite, Rollup, Webpack, Parcel, esbuild\n\n---\n\n## License\n\nLicensed under AGPL-3.0 with WATT3D Additional Terms. See [LICENSE](./LICENSE) and [ADDITIONAL_TERMS.md](./ADDITIONAL_TERMS.md). Commercial AI/model-training use requires compliance with those terms or a separate WATT3D license. © WATT3D.\n","readmeFilename":"README.md"}