{"_id":"@cjser/is-safe-filename","name":"@cjser/is-safe-filename","dist-tags":{"latest":"0.1.1-cjser.2"},"versions":{"0.1.1-cjser.2":{"name":"@cjser/is-safe-filename","version":"0.1.1-cjser.2","description":"Check if a filename is safe to use in a path join operation","license":"MIT","repository":{"type":"git","url":"https://code.moenext.com/3rdeye/cjser.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","require":"./dist-cjser/index.cjs","default":"./index.js"},"sideEffects":false,"engines":{"node":">=20"},"scripts":{"test":"xo && ava && tsc index.d.ts"},"keywords":["filename","safe","secure","path","traversal","security","validate","check","local"],"devDependencies":{"ava":"^6.2.0","typescript":"^5.7.3","xo":"^0.60.0"},"types":"./index.d.ts","main":"./dist-cjser/index.cjs","cjser":{"sourceVersion":"0.1.1","cjserVersion":2,"original":{"name":"is-safe-filename","version":"0.1.1","exports":{"types":"./index.d.ts","default":"./index.js"},"repository":"sindresorhus/is-safe-filename","files":["index.js","index.d.ts"],"scripts":{"test":"xo && ava && tsc index.d.ts"}}},"_id":"@cjser/is-safe-filename@0.1.1-cjser.2","gitHead":"0168e4aac54a1a9ca6f921419fa5ed9edb53ef4a","_nodeVersion":"20.14.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-0OqfTrm5AecUBciIrslXPS+2dFYgYQPOfRxWDk6CKsPXEPZ1fEdjl34TUIJMvfG9GSxaJyd2p4AIpxgSWaH80Q==","shasum":"d3f482f5d8951dbf74a90420afe3897c4e66ccfd","tarball":"https://registry.npmjs.org/@cjser/is-safe-filename/-/is-safe-filename-0.1.1-cjser.2.tgz","fileCount":6,"unpackedSize":8173,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDtCSBU/IdhSqm0El1ZF5fgkWBAw65GzPuTLz4YKAFUkgIhAIuF1U9DVi9yDxyUyh5Qh4kUhHjD8psd3yCukCMrwUcx"}]},"_npmUser":{"name":"nanahira","email":"nanahira@momobako.com"},"directories":{},"maintainers":[{"name":"nanahira","email":"nanahira@momobako.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/is-safe-filename_0.1.1-cjser.2_1778130683391_0.7070328719538963"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-07T05:11:23.242Z","0.1.1-cjser.2":"2026-05-07T05:11:23.520Z","modified":"2026-05-07T05:11:23.807Z"},"maintainers":[{"name":"nanahira","email":"nanahira@momobako.com"}],"description":"Check if a filename is safe to use in a path join operation","keywords":["filename","safe","secure","path","traversal","security","validate","check","local"],"repository":{"type":"git","url":"https://code.moenext.com/3rdeye/cjser.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"license":"MIT","readme":"# is-safe-filename\n\n> Check if a filename is safe to use in a path join operation\n\nA safe filename is one that won't escape the intended directory via path traversal.\n\nThis is a purely lexical check. It does not account for symlinks that may exist on the filesystem.\n\n## Install\n\n```sh\nnpm install is-safe-filename\n```\n\n## Usage\n\n```js\nimport isSafeFilename from 'is-safe-filename';\n\nisSafeFilename('foo');\n//=> true\n\nisSafeFilename('../foo');\n//=> false\n\nisSafeFilename('foo/bar');\n//=> false\n```\n\n## API\n\n### isSafeFilename(filename)\n\nReturns `true` if the filename is safe.\n\n### assertSafeFilename(filename)\n\nThrows an error if the filename is not safe.\n\n```js\nimport {assertSafeFilename} from 'is-safe-filename';\n\nassertSafeFilename('foo');\n// No error\n\nassertSafeFilename('../foo');\n//=> Error: Unsafe filename: \"../foo\"\n```\n\n### unsafeFilenameFixtures\n\nA list of common unsafe filename fixtures for testing path traversal vulnerabilities.\n\nUseful for testing that your code properly rejects unsafe filenames.\n\n```js\nimport {unsafeFilenameFixtures} from 'is-safe-filename';\n\nfor (const filename of unsafeFilenameFixtures) {\n\tassert.throws(() => myFunction(filename));\n}\n```\n\n## cjser\n\nThis package is a CommonJS-compatible build generated by cjser for projects that still need `require()` support. The source version matches the original npm package version, with a cjser prerelease suffix for this generated build.\nOriginal repository: https://github.com/sindresorhus/is-safe-filename\n","readmeFilename":"readme.md","_rev":"1-6918ee2050db668d6fca8b8a5b362959"}