{"_id":"filenamify","_rev":"4210182","name":"filenamify","description":"Convert a string to a valid safe filename","dist-tags":{"latest":"7.0.1"},"maintainers":[{"name":"sindresorhus","email":""}],"time":{"modified":"2026-03-04T17:05:17.000Z","created":"2015-01-14T05:42:09.381Z","7.0.1":"2025-11-05T15:54:03.685Z","7.0.0":"2025-09-14T23:39:51.474Z","6.0.0":"2023-04-23T14:50:12.323Z","5.1.1":"2022-04-27T16:41:39.152Z","5.1.0":"2022-01-06T13:18:40.092Z","5.0.2":"2021-10-17T12:11:45.231Z","5.0.1":"2021-08-26T22:33:23.944Z","5.0.0":"2021-07-05T07:47:20.275Z","4.3.0":"2021-04-26T16:15:18.365Z","4.2.0":"2020-09-24T10:09:35.418Z","4.1.0":"2019-05-30T07:00:50.584Z","4.0.0":"2019-03-31T17:45:38.500Z","3.0.0":"2019-03-07T18:30:17.699Z","2.1.0":"2018-06-14T13:17:13.549Z","2.0.0":"2017-01-12T08:36:13.907Z","1.2.1":"2016-04-07T15:29:11.286Z","1.2.0":"2015-06-27T10:18:36.977Z","1.1.0":"2015-03-13T10:22:47.355Z","1.0.1":"2015-01-16T15:41:52.581Z","1.0.0":"2015-01-14T05:42:09.381Z"},"users":{"sixertoy":true,"zhenguo.zhao":true},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"versions":{"7.0.1":{"name":"filenamify","version":"7.0.1","description":"Convert a string to a valid safe filename","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":{".":{"types":"./index.d.ts","default":"./index.js"},"./browser":{"types":"./filenamify.d.ts","default":"./filenamify.js"}},"sideEffects":false,"engines":{"node":">=20"},"scripts":{"test":"xo && ava"},"keywords":["filename","safe","sanitize","file","name","string","path","filepath","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^4.0.0"},"devDependencies":{"ava":"^6.4.1","xo":"^1.2.2"},"gitHead":"5f4f97ce51825aa00afb0887a376e8e74be2e9b6","types":"./index.d.ts","_id":"filenamify@7.0.1","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify#readme","_nodeVersion":"20.19.5","_npmVersion":"11.6.1","dist":{"shasum":"aabe4f3fe93f8cd2a563fa367ff7f2bb98188c4c","size":4449,"noattachment":false,"key":"/filenamify/-/filenamify-7.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-7.0.1.tgz"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/filenamify_7.0.1_1762358043477_0.11261015482563752"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-11-05T15:54:03.685Z","publish_time":1762358043685,"_source_registry_name":"default","_cnpm_publish_time":1762358043685},"7.0.0":{"name":"filenamify","version":"7.0.0","description":"Convert a string to a valid safe filename","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":{".":{"types":"./index.d.ts","default":"./index.js"},"./browser":{"types":"./filenamify.d.ts","default":"./filenamify.js"}},"sideEffects":false,"engines":{"node":">=20"},"scripts":{"test":"xo && ava"},"keywords":["filename","safe","sanitize","file","name","string","path","filepath","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^4.0.0"},"devDependencies":{"ava":"^6.4.1","xo":"^1.2.2"},"_id":"filenamify@7.0.0","gitHead":"1dca567780ae28a3803acd29b00b7b2c2103bb0a","types":"./index.d.ts","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify#readme","_nodeVersion":"20.19.1","_npmVersion":"10.9.2","dist":{"shasum":"603ff44a22c9af57b94c42a702489e64327ad7ab","size":4045,"noattachment":false,"key":"/filenamify/-/filenamify-7.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-7.0.0.tgz"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/filenamify_7.0.0_1757893191294_0.5806594577226536"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-09-14T23:39:51.474Z","publish_time":1757893191474,"_source_registry_name":"default","_cnpm_publish_time":1757893191474},"6.0.0":{"name":"filenamify","version":"6.0.0","description":"Convert a string to a valid safe filename","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":{".":"./index.js","./browser":"./filenamify.js"},"engines":{"node":">=16"},"scripts":{"test":"xo && ava && tsd"},"keywords":["filename","safe","sanitize","file","name","string","path","filepath","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^3.0.0"},"devDependencies":{"ava":"^5.2.0","tsd":"^0.28.1","xo":"^0.54.1"},"types":"./index.d.ts","gitHead":"7b52f70bb5fdc7f590327accadb542309d9e6401","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify#readme","_id":"filenamify@6.0.0","_nodeVersion":"16.16.0","_npmVersion":"9.2.0","dist":{"shasum":"38def94098c62154c42a41d822650f5f55bcbac2","size":3248,"noattachment":false,"key":"/filenamify/-/filenamify-6.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-6.0.0.tgz"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/filenamify_6.0.0_1682261412068_0.10617357551980922"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-04-23T14:50:12.323Z","publish_time":1682261412323,"_cnpm_publish_time":1682261412323},"5.1.1":{"name":"filenamify","version":"5.1.1","description":"Convert a string to a valid safe filename","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":{".":"./index.js","./browser":"./filenamify.js"},"engines":{"node":">=12.20"},"scripts":{"test":"xo && ava && tsd"},"keywords":["filename","safe","sanitize","file","name","string","path","filepath","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^3.0.0","strip-outer":"^2.0.0","trim-repeated":"^2.0.0"},"devDependencies":{"ava":"^3.15.0","tsd":"^0.18.0","xo":"^0.45.0"},"types":"./index.d.ts","gitHead":"c2f67113511070d5033fa7b057f293ba1073faec","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify#readme","_id":"filenamify@5.1.1","_nodeVersion":"14.19.1","_npmVersion":"8.3.2","dist":{"shasum":"a1ccc5ae678a5e34f578afcb9b72898264d166d2","size":3261,"noattachment":false,"key":"/filenamify/-/filenamify-5.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-5.1.1.tgz"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/filenamify_5.1.1_1651077699042_0.23392645900144138"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-04-27T18:22:34.226Z","publish_time":1651077699152,"_cnpm_publish_time":1651077699152},"5.1.0":{"name":"filenamify","version":"5.1.0","description":"Convert a string to a valid safe filename","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":{".":"./index.js","./browser":"./filenamify.js"},"engines":{"node":">=12.20"},"scripts":{"test":"xo && ava && tsd"},"keywords":["filename","safe","sanitize","file","name","string","path","filepath","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^3.0.0","strip-outer":"^2.0.0","trim-repeated":"^2.0.0"},"devDependencies":{"ava":"^3.15.0","tsd":"^0.18.0","xo":"^0.45.0"},"types":"./index.d.ts","gitHead":"ed4acc09f49c46bac5d201afbe4a31dd932a461d","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify#readme","_id":"filenamify@5.1.0","_nodeVersion":"12.22.1","_npmVersion":"8.1.0","dist":{"shasum":"b1b9d90d061cc1be9ad261ecb4169c3ea8b6f776","size":3022,"noattachment":false,"key":"/filenamify/-/filenamify-5.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-5.1.0.tgz"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/filenamify_5.1.0_1641475119894_0.6003972794652224"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-01-06T13:18:54.690Z","publish_time":1641475120092,"_cnpm_publish_time":1641475120092},"5.0.2":{"name":"filenamify","version":"5.0.2","description":"Convert a string to a valid safe filename","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":{".":"./index.js","./browser":"./filenamify.js"},"engines":{"node":">=12.20"},"scripts":{"test":"xo && ava && tsd"},"keywords":["filename","safe","sanitize","file","name","string","path","filepath","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^3.0.0","strip-outer":"^2.0.0","trim-repeated":"^2.0.0"},"devDependencies":{"ava":"^3.15.0","tsd":"^0.18.0","xo":"^0.45.0"},"gitHead":"2b8d3a7864c40dacf75b6f76b63e73953cac76c4","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify#readme","_id":"filenamify@5.0.2","_nodeVersion":"12.22.1","_npmVersion":"7.20.3","dist":{"shasum":"d0c1659888d7ba23be9b66d98159cb89dde60b3c","size":3006,"noattachment":false,"key":"/filenamify/-/filenamify-5.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-5.0.2.tgz"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/filenamify_5.0.2_1634472705088_0.24023697384084297"},"_hasShrinkwrap":false,"publish_time":1634472705231,"_cnpm_publish_time":1634472705231},"5.0.1":{"name":"filenamify","version":"5.0.1","description":"Convert a string to a valid safe filename","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":{".":"./index.js","./browser":"./filenamify.js"},"engines":{"node":">=12.20"},"scripts":{"test":"xo && ava && tsd"},"keywords":["filename","safe","sanitize","file","name","string","path","filepath","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^2.0.0","strip-outer":"^1.0.1","trim-repeated":"^1.0.0"},"devDependencies":{"ava":"^3.15.0","tsd":"^0.17.0","xo":"^0.40.3"},"gitHead":"43f3f32743df4c9230749a29b00f700ef4e93878","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify#readme","_id":"filenamify@5.0.1","_nodeVersion":"16.7.0","_npmVersion":"7.20.3","dist":{"shasum":"dca105c0d610ecc6f3249957fd11733019d1f64b","size":2943,"noattachment":false,"key":"/filenamify/-/filenamify-5.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-5.0.1.tgz"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/filenamify_5.0.1_1630017203823_0.2129800909153483"},"_hasShrinkwrap":false,"publish_time":1630017203944,"_cnpm_publish_time":1630017203944},"5.0.0":{"name":"filenamify","version":"5.0.0","description":"Convert a string to a valid safe filename","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":{".":"./index.js","./browser":"./filenamify.js"},"engines":{"node":">=12.20"},"scripts":{"test":"xo && ava && tsd"},"keywords":["filename","safe","sanitize","file","name","string","path","filepath","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^2.0.0","strip-outer":"^1.0.1","trim-repeated":"^1.0.0"},"devDependencies":{"ava":"^3.15.0","tsd":"^0.17.0","xo":"^0.40.3"},"gitHead":"127d79743e9ac2026b70df32581d3263f7c4aaf3","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify#readme","_id":"filenamify@5.0.0","_nodeVersion":"14.16.1","_npmVersion":"7.10.0","dist":{"shasum":"59a20e8291b181266fd3ef31931a710987527330","size":2904,"noattachment":false,"key":"/filenamify/-/filenamify-5.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-5.0.0.tgz"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/filenamify_5.0.0_1625471240136_0.36861930123362696"},"_hasShrinkwrap":false,"publish_time":1625471240275,"_cnpm_publish_time":1625471240275},"4.3.0":{"name":"filenamify","version":"4.3.0","description":"Convert a string to a valid safe filename","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava && tsd"},"exports":{".":"./index.js","./browser":"./filenamify.js"},"keywords":["filename","safe","sanitize","file","name","string","path","filepath","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^2.0.0","strip-outer":"^1.0.1","trim-repeated":"^1.0.0"},"devDependencies":{"ava":"^1.4.1","tsd":"^0.7.1","xo":"^0.24.0"},"gitHead":"729b2ece2f667b6b58a88ddfe2e9598e9ffd42b9","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify#readme","_id":"filenamify@4.3.0","_nodeVersion":"16.0.0","_npmVersion":"6.14.10","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"62391cb58f02b09971c9d4f9d63b3cf9aba03106","size":3053,"noattachment":false,"key":"/filenamify/-/filenamify-4.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-4.3.0.tgz"},"directories":{},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/filenamify_4.3.0_1619453718223_0.1278006475874407"},"_hasShrinkwrap":false,"publish_time":1619453718365,"_cnpm_publish_time":1619453718365},"4.2.0":{"name":"filenamify","version":"4.2.0","description":"Convert a string to a valid safe filename","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava && tsd"},"exports":{".":"./index.js","./browser":"./filenamify.js"},"keywords":["filename","safe","sanitize","file","name","string","path","filepath","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^2.0.0","strip-outer":"^1.0.1","trim-repeated":"^1.0.0"},"devDependencies":{"ava":"^1.4.1","tsd":"^0.7.1","xo":"^0.24.0"},"gitHead":"dddbc39dc9c1711a2372168e0fd2ece1f73a8b56","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify#readme","_id":"filenamify@4.2.0","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"c99716d676869585b3b5d328b3f06590d032e89f","size":3055,"noattachment":false,"key":"/filenamify/-/filenamify-4.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-4.2.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/filenamify_4.2.0_1600942175305_0.03981259418330496"},"_hasShrinkwrap":false,"publish_time":1600942175418,"_cnpm_publish_time":1600942175418},"4.1.0":{"name":"filenamify","version":"4.1.0","description":"Convert a string to a valid safe filename","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava && tsd"},"keywords":["filename","safe","sanitize","file","name","string","path","filepath","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^2.0.0","strip-outer":"^1.0.1","trim-repeated":"^1.0.0"},"devDependencies":{"ava":"^1.4.1","tsd":"^0.7.1","xo":"^0.24.0"},"gitHead":"120141454e7dc9cba84e58f94ce5fa3f79ee6565","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify#readme","_id":"filenamify@4.1.0","_nodeVersion":"8.16.0","_npmVersion":"6.9.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"54d110810ae74eebfe115c1b995bd07e03cf2184","size":2645,"noattachment":false,"key":"/filenamify/-/filenamify-4.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-4.1.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/filenamify_4.1.0_1559199650429_0.395468369342002"},"_hasShrinkwrap":false,"publish_time":1559199650584,"_cnpm_publish_time":1559199650584},"4.0.0":{"name":"filenamify","version":"4.0.0","description":"Convert a string to a valid safe filename","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava && tsd"},"keywords":["filename","safe","sanitize","file","name","string","path","filepath","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^2.0.0","strip-outer":"^1.0.1","trim-repeated":"^1.0.0"},"devDependencies":{"ava":"^1.4.1","tsd":"^0.7.1","xo":"^0.24.0"},"gitHead":"24da672ada6ba652dc19617f2f6d85257b112c8f","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify#readme","_id":"filenamify@4.0.0","_nodeVersion":"8.15.0","_npmVersion":"6.9.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"1f93b56e7340447bbb95f7f71ab9d9c4fa3d5393","size":2497,"noattachment":false,"key":"/filenamify/-/filenamify-4.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-4.0.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/filenamify_4.0.0_1554054338380_0.7050791580951987"},"_hasShrinkwrap":false,"publish_time":1554054338500,"_cnpm_publish_time":1554054338500},"3.0.0":{"name":"filenamify","version":"3.0.0","description":"Convert a string to a valid safe filename","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=6"},"scripts":{"test":"xo && ava && tsd-check"},"keywords":["filename","safe","sanitize","file","name","string","path","filepath","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^2.0.0","strip-outer":"^1.0.0","trim-repeated":"^1.0.0"},"devDependencies":{"ava":"^1.3.1","tsd-check":"^0.3.0","xo":"^0.24.0"},"gitHead":"0e63c9c9964ece988bb2c919f9f307d19155223c","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify#readme","_id":"filenamify@3.0.0","_nodeVersion":"8.15.0","_npmVersion":"6.8.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"9603eb688179f8c5d40d828626dcbb92c3a4672c","size":2525,"noattachment":false,"key":"/filenamify/-/filenamify-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-3.0.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/filenamify_3.0.0_1551983417566_0.8617997684743963"},"_hasShrinkwrap":false,"publish_time":1551983417699,"_cnpm_publish_time":1551983417699},"2.1.0":{"name":"filenamify","version":"2.1.0","description":"Convert a string to a valid safe filename","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=4"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["filename","safe","sanitize","file","name","string","path","filepath","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^2.0.0","strip-outer":"^1.0.0","trim-repeated":"^1.0.0"},"devDependencies":{"ava":"*","xo":"*"},"gitHead":"d67866dea4e3dde4e8e2ebae35ac5df30cd0d026","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify#readme","_id":"filenamify@2.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.2","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"88faf495fb1b47abfd612300002a16228c677ee9","size":2302,"noattachment":false,"key":"/filenamify/-/filenamify-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-2.1.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/filenamify_2.1.0_1528982233460_0.0236329601002907"},"_hasShrinkwrap":false,"publish_time":1528982233549,"_cnpm_publish_time":1528982233549},"2.0.0":{"name":"filenamify","version":"2.0.0","description":"Convert a string to a valid safe filename","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=4"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["filename","safe","sanitize","file","name","string","path","filepath","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^2.0.0","strip-outer":"^1.0.0","trim-repeated":"^1.0.0"},"devDependencies":{"ava":"*","xo":"*"},"gitHead":"a8e05179eef22454326889556d4951e42cd01919","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify#readme","_id":"filenamify@2.0.0","_shasum":"bd162262c0b6e94bfbcdcf19a3bbb3764f785695","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.2","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"bd162262c0b6e94bfbcdcf19a3bbb3764f785695","size":2286,"noattachment":false,"key":"/filenamify/-/filenamify-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-2.0.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/filenamify-2.0.0.tgz_1484210171890_0.7004520031623542"},"directories":{},"publish_time":1484210173907,"_cnpm_publish_time":1484210173907,"_hasShrinkwrap":false},"1.2.1":{"name":"filenamify","version":"1.2.1","description":"Convert a string to a valid safe filename","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/filenamify.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=0.10.0"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["filename","safe","sanitize","file","name","string","path","filepath","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^1.0.0","strip-outer":"^1.0.0","trim-repeated":"^1.0.0"},"devDependencies":{"ava":"*","xo":"*"},"gitHead":"b1286ebb2eb8c2440778cb2326c356cd66995829","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify#readme","_id":"filenamify@1.2.1","_shasum":"a9f2ffd11c503bed300015029272378f1f1365a5","_from":".","_npmVersion":"3.8.5","_nodeVersion":"4.3.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"a9f2ffd11c503bed300015029272378f1f1365a5","size":2213,"noattachment":false,"key":"/filenamify/-/filenamify-1.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-1.2.1.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/filenamify-1.2.1.tgz_1460042950766_0.10711343213915825"},"directories":{},"publish_time":1460042951286,"_cnpm_publish_time":1460042951286,"_hasShrinkwrap":false},"1.2.0":{"name":"filenamify","version":"1.2.0","description":"Convert a string to a valid filename","license":"MIT","repository":{"type":"git","url":"https://github.com/sindresorhus/filenamify"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=0.10.0"},"scripts":{"test":"node test.js"},"files":["index.js"],"keywords":["filename","file","name","string","str","path","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^1.0.0","strip-outer":"^1.0.0","trim-repeated":"^1.0.0"},"devDependencies":{"ava":"0.0.4"},"gitHead":"f596c643ce7ea96bcd835a3cd19884cbb326e867","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify","_id":"filenamify@1.2.0","_shasum":"55ce57cec2966431f34ab002eb70659210bbde49","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.5","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"55ce57cec2966431f34ab002eb70659210bbde49","size":2188,"noattachment":false,"key":"/filenamify/-/filenamify-1.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-1.2.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"directories":{},"publish_time":1435400316977,"_cnpm_publish_time":1435400316977,"_hasShrinkwrap":false},"1.1.0":{"name":"filenamify","version":"1.1.0","description":"Convert a string to a valid filename","license":"MIT","repository":{"type":"git","url":"https://github.com/sindresorhus/filenamify"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=0.10.0"},"scripts":{"test":"node test.js"},"files":["index.js"],"keywords":["filename","file","name","string","str","path","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^1.0.0","strip-outer":"^1.0.0","trim-repeated":"^1.0.0"},"devDependencies":{"ava":"0.0.4"},"gitHead":"3b13da003841e4c9e6f660a4606146f5f9765db3","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify","_id":"filenamify@1.1.0","_shasum":"731bea2de068913d8fda99efbadc37c33de69cec","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"maintainers":[{"name":"sindresorhus","email":""}],"dist":{"shasum":"731bea2de068913d8fda99efbadc37c33de69cec","size":1427,"noattachment":false,"key":"/filenamify/-/filenamify-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-1.1.0.tgz"},"directories":{},"publish_time":1426242167355,"_cnpm_publish_time":1426242167355,"_hasShrinkwrap":false},"1.0.1":{"name":"filenamify","version":"1.0.1","description":"Convert a string to a valid filename","license":"MIT","repository":{"type":"git","url":"https://github.com/sindresorhus/filenamify"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=0.10.0"},"scripts":{"test":"node test.js"},"files":["index.js"],"keywords":["filename","file","name","string","str","path","convert","valid","dirname"],"dependencies":{"filename-reserved-regex":"^1.0.0","strip-outer":"^1.0.0","trim-repeated":"^1.0.0"},"devDependencies":{"ava":"0.0.4"},"gitHead":"69e333c99631305785f35e066cb2d8dc24541cbb","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify","_id":"filenamify@1.0.1","_shasum":"2bd23f05b23a4ef7d5aab5c33550998719aaf612","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"maintainers":[{"name":"sindresorhus","email":""}],"dist":{"shasum":"2bd23f05b23a4ef7d5aab5c33550998719aaf612","size":1345,"noattachment":false,"key":"/filenamify/-/filenamify-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-1.0.1.tgz"},"directories":{},"publish_time":1421422912581,"_cnpm_publish_time":1421422912581,"_hasShrinkwrap":false},"1.0.0":{"name":"filenamify","version":"1.0.0","description":"Convert a string to a valid filename","license":"MIT","repository":{"type":"git","url":"https://github.com/sindresorhus/filenamify"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=0.10.0"},"scripts":{"test":"node test.js"},"files":["index.js"],"keywords":["filename","file","name","string","str","path","convert","valid","dirname"],"dependencies":{"escape-string-regexp":"^1.0.2","filename-reserved-regex":"^1.0.0","trim-repeated":"^1.0.0"},"devDependencies":{"ava":"0.0.4"},"gitHead":"da2f31488427aa637b49bf8d3e8ac1f7b1baa27f","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"homepage":"https://github.com/sindresorhus/filenamify","_id":"filenamify@1.0.0","_shasum":"bcbecdf4948a0995a0517303065e5bb1c5cb5606","_from":".","_npmVersion":"2.1.18","_nodeVersion":"1.0.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"maintainers":[{"name":"sindresorhus","email":""}],"dist":{"shasum":"bcbecdf4948a0995a0517303065e5bb1c5cb5606","size":2061,"noattachment":false,"key":"/filenamify/-/filenamify-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/filenamify/download/filenamify-1.0.0.tgz"},"directories":{},"publish_time":1421214129381,"_cnpm_publish_time":1421214129381,"_hasShrinkwrap":false}},"readme":"# filenamify\n\n> Convert a string to a valid safe filename\n\nOn Unix-like systems, `/` is reserved. On Windows, [`<>:\"/\\|?*`](http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29#naming_conventions) along with trailing periods and spaces are reserved.\n\nThis module also removes non-printable control characters (including Unicode bidirectional marks) and normalizes Unicode whitespace.\n\n## Install\n\n```sh\nnpm install filenamify\n```\n\n## Usage\n\n```js\nimport filenamify from 'filenamify';\n\nfilenamify('<foo/bar>');\n//=> '!foo!bar!'\n\nfilenamify('foo:\"bar\"', {replacement: '????'});\n//=> 'foo????bar????'\n```\n\n## API\n\n### filenamify(string, options?)\n\nConvert a string to a valid filename.\n\n### filenamifyPath(path, options?)\n\nConvert the filename in a path to a valid filename and return the augmented path.\n\n```js\nimport {filenamifyPath} from 'filenamify';\n\nfilenamifyPath('foo:bar');\n//=> 'foo!bar'\n```\n\n#### options\n\nType: `object`\n\n##### replacement\n\nType: `string`\\\nDefault: `'!'`\n\nString to use as replacement for reserved filename characters.\n\nCannot contain: `<` `>` `:` `\"` `/` `\\` `|` `?` `*` or control characters.\n\n##### maxLength\n\nType: `number`\\\nDefault: `100`\n\nTruncate the filename to the given length.\n\nOnly the base of the filename is truncated, preserving the extension. If the extension itself is longer than `maxLength`, you will get a string that is longer than `maxLength`, so you need to check for that if you allow arbitrary extensions.\n\nTruncation is grapheme-aware and will not split Unicode characters (surrogate pairs or extended grapheme clusters). If the remaining budget (after accounting for the extension) is smaller than a whole grapheme, the base filename may be truncated to an empty string to avoid splitting.\n\nSystems generally allow up to 255 characters, but we default to 100 for usability reasons.\n\n## Browser-only import\n\nYou can also import `filenamify/browser`, which only imports `filenamify` and not `filenamifyPath`, which relies on `path` being available or polyfilled. Importing `filenamify` this way is therefore useful when it is shipped using `webpack` or similar tools, and if `filenamifyPath` is not needed.\n\n```js\nimport filenamify from 'filenamify/browser';\n\nfilenamify('<foo/bar>');\n//=> '!foo!bar!'\n```\n\n## Related\n\n- [filenamify-cli](https://github.com/sindresorhus/filenamify-cli) - CLI for this module\n- [filenamify-url](https://github.com/sindresorhus/filenamify-url) - Convert a URL to a valid filename\n- [valid-filename](https://github.com/sindresorhus/valid-filename) - Check if a string is a valid filename\n- [unused-filename](https://github.com/sindresorhus/unused-filename) - Get a unused filename by appending a number if it exists\n- [slugify](https://github.com/sindresorhus/slugify) - Slugify a string\n","_attachments":{},"homepage":"https://github.com/sindresorhus/filenamify#readme","bugs":{"url":"https://github.com/sindresorhus/filenamify/issues"},"license":"MIT"}