{"_id":"sanitize-filename-ts","_rev":"10-d43ae7c759bcc494507b91b39a9c387f","name":"sanitize-filename-ts","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"sanitize-filename-ts","version":"1.0.0","description":"Sanitize a string for use as a filename","keywords":["file","name","filename","sanitize","validate","escape"],"license":"WTFPL OR ISC","author":{"name":"Ivan Vasilov"},"main":"build/index.js","types":"build/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/hfour/sanitize-filename-ts.git"},"scripts":{"build":"tsc","test":"tape build/test.js","prettier":"prettier -l **/*.{ts,json,md}","pretest":"yarn build","prepublish":"yarn build"},"dependencies":{"truncate-utf8-bytes":"^1.0.2"},"devDependencies":{"@types/tape":"^4.2.33","big-list-of-naughty-strings":"^1.0.0","mktemp":"^1.0.0","tape":"^4.2.2","typescript":"^3.0.0","prettier":"^1.18.2"},"contributors":[{"name":"Ivan Vasilov","email":"vasilov.ivan@gmail.com"},{"name":"Parsha Pourkhomami","email":"parshap@gmail.com"},{"name":"Joel Mukuthu","email":"joelmukuthu@gmail.com"}],"gitHead":"7756629f7785204e6624fc2f2925ad811600779f","bugs":{"url":"https://github.com/hfour/sanitize-filename-ts/issues"},"homepage":"https://github.com/hfour/sanitize-filename-ts#readme","_id":"sanitize-filename-ts@1.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"ivasilov","email":"vasilov.ivan@gmail.com"},"dist":{"integrity":"sha512-u6rf3W6wDG4HEg3HVKX84itCtPJWUKRLOBnjoD/nXNZ7RktU0TirCug8iGHCRsYNe00SJ5utKkSg+1WitKf8CA==","shasum":"60e603451419363daf7e3052df0ef81e78c64b81","tarball":"https://registry.npmjs.org/sanitize-filename-ts/-/sanitize-filename-ts-1.0.0.tgz","fileCount":6,"unpackedSize":8742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOdE3CRA9TVsSAnZWagAAdngP/0QhMYnFrUfBVOZ2/4Qj\nYCuzkv0FdsYCBYn/Hm6lnQbmm1qurnV40TqPkfUjP6u8NMSHAaeU555r3tVj\na17xBSfvlAw+m6Lcr3GIFV9GPru4OOgWeSlk5CUZ4VAR3RoM64eihwPZm0Id\n1ZDHBll4SZHSAHzzZCKUZqR3LispHVvBOletYcpB+FVvzAxj88sirTATEqHP\nOHtdxHs3rZKFtJnkFGwbLq6mCNS7XPxgVKRH/pwPRrdUZYo2NCVLGS7J0HiT\nYzOd96DaFaEK03zb0IvihoSkappI2joqWGD6S5m7YjFfhE6osZ4OjoQ/Z6on\n4ozhaInJ4XXFpqFSMMQR3FhkW/sZiv+OsoZmyIkLqNlAViuK+jFphJcAV2Q/\n7Ec4OSDAwXCVFAScFsYf7S2yLfNLaPePaTdr+xkxq1Tq2dFFHEfp76F7JzKS\nsVzZRXtMjd+UpPUnOne28KncHWQPEGKNklCZnmg2VXCcXQDDPsP8gFL/+eSR\n9VqPSskKnBUK6UpqtA6GtI5Im+b5/rep6yZ8ESbnXDIk5cbyE7ZGnZLagZK/\nFM/kdAWyJf+bcdElA3/hIe80pzWLFIjNXM8doSPoBywXkeKRR5tYb8bMiQj5\nPxmNCk2IcC4Oaogl4LqCj6xS9ovA9GPnEJzEQIGE4uCyuecklM1f2ZMNcqH0\nyS5p\r\n=MAlD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF7mevRH43Iu/WQGfDwzLeMiqjI58W33rR3f7D1m2/xqAiALP3AbgMpuOo8LOVJw35/r4+bSEccY8rJbd9aM7WRgkg=="}]},"maintainers":[{"name":"ivasilov","email":"vasilov.ivan@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanitize-filename-ts_1.0.0_1564070198640_0.1550082624567859"},"_hasShrinkwrap":false},"1.0.1":{"name":"sanitize-filename-ts","version":"1.0.1","description":"Sanitize a string for use as a filename","keywords":["file","name","filename","sanitize","validate","escape"],"license":"WTFPL OR ISC","author":{"name":"Ivan Vasilov"},"main":"build/index.js","types":"build/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/hfour/sanitize-filename-ts.git"},"scripts":{"build":"tsc","test":"tape build/test.js","prettier":"prettier -l **/*.{ts,json,md}","prepare":"npm run-script build"},"dependencies":{"truncate-utf8-bytes":"^1.0.2"},"devDependencies":{"@types/tape":"^4.2.33","big-list-of-naughty-strings":"^1.0.0","mktemp":"^1.0.0","tape":"^4.2.2","typescript":"^3.0.0","prettier":"^1.18.2"},"contributors":[{"name":"Ivan Vasilov","email":"vasilov.ivan@gmail.com"},{"name":"Parsha Pourkhomami","email":"parshap@gmail.com"},{"name":"Joel Mukuthu","email":"joelmukuthu@gmail.com"}],"gitHead":"b101d181a9ccd4ab3ab2516ec0929f9d9c4234e1","bugs":{"url":"https://github.com/hfour/sanitize-filename-ts/issues"},"homepage":"https://github.com/hfour/sanitize-filename-ts#readme","_id":"sanitize-filename-ts@1.0.1","_nodeVersion":"10.16.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-MU553iNJI+qdaiNcLDR/V3VZ+/d/SIGT0oBGjQZZPQgl5Ke0jZzgWf8oDexeYciEszjdI9B0YUIbcf34du0gtw==","shasum":"7ce6540c46eb0e9366e41ecb9ea0c7932d33b659","tarball":"https://registry.npmjs.org/sanitize-filename-ts/-/sanitize-filename-ts-1.0.1.tgz","fileCount":5,"unpackedSize":7765,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdTAtPCRA9TVsSAnZWagAAXTcP/Rc/VqFy9qYFKNDLFPy2\nwFFkDTbHBzBnRFRQMf1/SxzqHP7DUjoQZCYAgM626TgdUiD6E49M/EyqEJZQ\nOF87X0UuSsFw7SmE3yYGq8Hdl3G0mpRoKdm/9oHe7NdvljYCO1TrBaelhfxz\nTW2NFRK0+rwsDAWa25MUCWBCmBbRLbJ3vxGjvaaWVSFE8ryg+WuJoEbtDibG\nz4OAjrDe1xLh0K+ROZ2d3BjB8OEVF9AkJbOUNsiRpqpL8II4uUc/aKnoY+Wp\np1/g4NvFl+N6h5I+nDzhPEYwzgvgYF/WjhdcTKZ1EaCBvQwyA+kGOkV73SPv\nGn5WI835Ywgohg2JknZojthzu4uRB1VdezfW1kmBuBpJDalPbxoX9h4aUhqX\nUkYyKF6gVzP/DUU+uJvywGLKK2q+syoxBgmkGzcg1CGZB1GndfrCrILR0lf9\n79Ww4tTqWvP6gJhtn7NjNVdMhASeGFiXEpedn+rV1V9vlp4qPumEEVLLePsZ\neiHAK6dTKlnaEgh9S8G1dQhX1ER9YI/vxebYxVUS9SJTDf8MEp7sluSqgKKN\ndSc+7BVLWOrHiUVehXvxJ/kWEegGAPzZpoZDGx+ZEMInYMSTyvk1CjFzhemo\nPjI0IZl1hfuSu+KG9+2DhkE5dSorVtsGcxBbFbADRA1IpgRRJK7n5L/SPX35\ntjiw\r\n=8mO1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCs6bN0JJn/1tdlz99gYnJ7oddvadpA5SdCISxSx/9EtwIgUW+C/4I+s05c1cILFzuSGdH5bhScNwH2J42NiGBMB8E="}]},"maintainers":[{"email":"gdamjan@hfour.com","name":"gdamjan-h4"},{"email":"gpeshans@hfour.com","name":"gphfour"},{"email":"vasilov.ivan@gmail.com","name":"ivasilov"},{"email":"jordanovskid@gmail.com","name":"skid"},{"email":"gorgi.kosev@gmail.com","name":"spion"},{"email":"tin@hfour.com","name":"tin-h4"},{"email":"andrejtrajchevski@gmail.com","name":"whoeverest"}],"_npmUser":{"name":"ivasilov","email":"vasilov.ivan@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanitize-filename-ts_1.0.1_1565264718690_0.9422279871706838"},"_hasShrinkwrap":false},"1.0.2":{"name":"sanitize-filename-ts","version":"1.0.2","description":"Sanitize a string for use as a filename","keywords":["file","name","filename","sanitize","validate","escape"],"license":"WTFPL OR ISC","author":{"name":"Ivan Vasilov"},"main":"build/index.js","types":"build/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/hfour/sanitize-filename-ts.git"},"scripts":{"build":"tsc","test":"tape build/test.js","prettier":"prettier -l **/*.{ts,json,md}","prepare":"npm run-script build"},"dependencies":{"truncate-utf8-bytes":"^1.0.2"},"devDependencies":{"@types/tape":"^4.2.33","big-list-of-naughty-strings":"^1.0.0","mktemp":"^1.0.0","tape":"^4.2.2","typescript":"^3.0.0","prettier":"^1.18.2"},"contributors":[{"name":"Ivan Vasilov","email":"vasilov.ivan@gmail.com"},{"name":"Parsha Pourkhomami","email":"parshap@gmail.com"},{"name":"Joel Mukuthu","email":"joelmukuthu@gmail.com"}],"gitHead":"535f9b56e94cdf4d282d66e3e5489089795d1f9b","bugs":{"url":"https://github.com/hfour/sanitize-filename-ts/issues"},"homepage":"https://github.com/hfour/sanitize-filename-ts#readme","_id":"sanitize-filename-ts@1.0.2","_nodeVersion":"10.16.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-bON2VOJoappmaBHlnxvBNk5R7HkUAsirf5m1M5Kz15uZykDGbHfGPCQNcEQKR8HrQhgh9CmQ6Xe9y71yM9ywkw==","shasum":"831b0f727a5a8f2cadc0a2cfd65353936b1d5d99","tarball":"https://registry.npmjs.org/sanitize-filename-ts/-/sanitize-filename-ts-1.0.2.tgz","fileCount":5,"unpackedSize":7732,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdTA1TCRA9TVsSAnZWagAA7s4P+wbeeQ6xcxrBDcmc0elv\ni9/LaDHACMhpgC7bmu+I9t8UmKasLn2YoL61d6jkupIV8IYFCHCUBAQT0wHj\nasXVA+yWDaIMeNc25J+0lijZCPvi1CWQZAbwfQe2PX3YJ3XmlNIaF72teg2K\nFgzsGDLAa87XlQwBPxblB9nvXP9lhDiQoz3UjiSALaNiIGHGc3hTOA1uWra7\nVBUfZY7n0AqaqCJBrJPL2O1olHm8uBI67MQNDDjI2c63S5z0RGV+Eiof/eyP\nIYmy6/9eCbF/YTjYIE8VlpIBYOA3LQ5m1I8Rwc0sYLua79mLnoj/otMSNeId\n67DHnVn5fCHILudhfMheKt3HHg59VDPmnQhVQ7GY4FO4Lk4Zp5ZomyNmXdTG\ncpOrzBsCgJd9KWnxhNHwt/PnUZLet2Kb0WVKbUpkjNDEnKpPepsqYBchXTRq\nDkDG0v70aNR5pGP0JfjyzKmFKi3Tk1Ee0F8uEbDUGwMBgA33fgUhYblXlDVS\noV0oTR8NK1biPHATOXmdzbnvTwiQlLoY9+f5PgP8mSY7AtioaiYmquFzkQ6a\nt3tPs+EUMP7HHnQOkVgltnu+CwI7eobAa45YrlLI1wF8zpoxGK64zDnG4tSq\nXtK1Hcbo+7YEz5f2H0ZFLydcYjRrf9FiQ113f6rQx/pXCGdhCCmzurGy22+F\njtdz\r\n=4sNa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC2dJWBpI5lX/4cor0NWk+Mp63wngxyGvnPtE7wCstP7AiB6lsMmDJdba/w2rA0JyMkWbCyJMp/RL4FIPs2Azxs1kw=="}]},"maintainers":[{"email":"gdamjan@hfour.com","name":"gdamjan-h4"},{"email":"gpeshans@hfour.com","name":"gphfour"},{"email":"vasilov.ivan@gmail.com","name":"ivasilov"},{"email":"jordanovskid@gmail.com","name":"skid"},{"email":"gorgi.kosev@gmail.com","name":"spion"},{"email":"tin@hfour.com","name":"tin-h4"},{"email":"andrejtrajchevski@gmail.com","name":"whoeverest"}],"_npmUser":{"name":"ivasilov","email":"vasilov.ivan@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanitize-filename-ts_1.0.2_1565265234500_0.679934890410266"},"_hasShrinkwrap":false}},"time":{"created":"2019-07-25T15:56:38.639Z","1.0.0":"2019-07-25T15:56:38.786Z","modified":"2022-07-06T05:53:37.694Z","1.0.1":"2019-08-08T11:45:18.793Z","1.0.2":"2019-08-08T11:53:54.634Z"},"maintainers":[{"email":"damien.puig@gmail.com","name":"damienpuig"},{"email":"aingram@hfour.com","name":"aingram-hfour"},{"email":"vasilov.ivan@gmail.com","name":"ivasilov"}],"description":"Sanitize a string for use as a filename","homepage":"https://github.com/hfour/sanitize-filename-ts#readme","keywords":["file","name","filename","sanitize","validate","escape"],"repository":{"type":"git","url":"git+ssh://git@github.com/hfour/sanitize-filename-ts.git"},"contributors":[{"name":"Ivan Vasilov","email":"vasilov.ivan@gmail.com"},{"name":"Parsha Pourkhomami","email":"parshap@gmail.com"},{"name":"Joel Mukuthu","email":"joelmukuthu@gmail.com"}],"author":{"name":"Ivan Vasilov"},"bugs":{"url":"https://github.com/hfour/sanitize-filename-ts/issues"},"license":"WTFPL OR ISC","readme":"# sanitize-filename-ts\n\nSanitize a string to be safe for use as a filename by removing directory\npaths and invalid characters. This package is a fork of sanitize-filename, updated and rewritten in\nTypescript.\n\n## Install\n\n[npm: _sanitize-filename-ts_](https://www.npmjs.com/package/sanitize-filename-ts)\n\n```\nnpm install sanitize-filename-ts\n```\n\n## Example\n\n```js\nimport { sanitize } from \"sanitize-filename-ts\";\n\n// Some string that may be unsafe or invalid as a filename\nvar UNSAFE_USER_INPUT = \"~/.\\u0000ssh/authorized_keys\";\n\n// Sanitize the string to be safe for use as a filename.\nvar filename = sanitize(UNSAFE_USER_INPUT);\n// -> \"~.sshauthorized_keys\"\n```\n\n## Details\n\n_sanitize-filename-ts_ removes the following:\n\n- [Control characters][] (`0x00`–`0x1f` and `0x80`–`0x9f`)\n- [Reserved characters][] (`/`, `?`, `<`, `>`, `\\`, `:`, `*`, `|`, and\n  `\"`)\n- Unix reserved filenames (`.` and `..`)\n- Trailing periods and spaces ([for Windows][windows trailing])\n- Windows reserved filenames (`CON`, `PRN`, `AUX`, `NUL`, `COM1`,\n  `COM2`, `COM3`, `COM4`, `COM5`, `COM6`, `COM7`, `COM8`, `COM9`,\n  `LPT1`, `LPT2`, `LPT3`, `LPT4`, `LPT5`, `LPT6`, `LPT7`, `LPT8`, and\n  `LPT9`)\n\n[control characters]: https://en.wikipedia.org/wiki/C0_and_C1_control_codes\n[reserved characters]: https://kb.acronis.com/content/39790\n[windows trailing]: https://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx#Naming_Conventions\n\nThe resulting string is truncated to [255 bytes in length][255]. The\nstring will not contain any directory paths and will be safe to use as a\nfilename.\n\n[255]: http://unix.stackexchange.com/questions/32795/what-is-the-maximum-allowed-filename-and-folder-size-with-ecryptfs\n\n### Empty String `\"\"` Result\n\nAn empty string `\"\"` can be returned. For example:\n\n```js\nimport { sanitize } from \"sanitize-filename-ts\";\nsanitize(\"..\");\n// -> \"\"\n```\n\n### Non-unique Filenames\n\nTwo different inputs can return the same value. For example:\n\n```js\nimport { sanitize } from \"sanitize-filename-ts\";\nsanitize(\"file?\");\n// -> \"file\"\nsanitize(\"*file*\");\n// -> \"file\"\n```\n\n### File Systems\n\nSanitized filenames will be safe for use on modern Windows, OS X, and\nUnix file systems (`NTFS`, `ext`, etc.).\n\n[`FAT` 8.3 filenames][8.3] are not supported.\n\n[8.3]: https://en.wikipedia.org/wiki/8.3_filename\n\n#### Test Your File System\n\nThe test program will use various strings (including the [Big List of\nNaughty Strings][blns]) to create files in the working directory. Run\n`npm test` to run tests against your file system.\n\n[blns]: https://github.com/minimaxir/big-list-of-naughty-strings\n\n## API\n\n### `sanitize(inputString, [options])`\n\nSanitize `inputString` by removing or replacing invalid characters.\n\nOptions:\n\n- `options.replacement`: _optional, string/function, default: `\"\"`_. If passed\n  as a string, it's used as the replacement for invalid characters. If passed as\n  a function, the function will be called with the invalid characters and it's\n  return value will be used as the replacement. See [`String.prototype.replace`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace)\n  for more info.\n","readmeFilename":"README.md"}