{"_id":"@cjser/filename-reserved-regex","_rev":"2-0411382f76ea0ac12112a44eeaf4a09b","name":"@cjser/filename-reserved-regex","dist-tags":{"latest":"4.0.1-cjser.2"},"versions":{"4.0.0-cjser.2":{"name":"@cjser/filename-reserved-regex","version":"4.0.0-cjser.2","keywords":["regex","regexp","filename","reserved","illegal"],"author":{"url":"https://sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"license":"MIT","_id":"@cjser/filename-reserved-regex@4.0.0-cjser.2","maintainers":[{"name":"nanahira","email":"nanahira@momobako.com"}],"dist":{"shasum":"f748854f65bf3b8c51fe2dd47273fdb513c9f590","tarball":"https://registry.npmjs.org/@cjser/filename-reserved-regex/-/filename-reserved-regex-4.0.0-cjser.2.tgz","fileCount":5,"integrity":"sha512-XJr7zlpTKmWVCb62tLnazXGQ3ap2RgZEQxc5+u1XwPmuWVZuxOfJPiku9IE0L1C2JBwA0grsWDJ/IOTl0UE5eQ==","signatures":[{"sig":"MEQCIHD5SE+MJhQ6wYvjRia056jJZdwmnt/yFtQBkRg10SDbAiAvyRtQeTnaaLbRKHj0T//nJZ5CceQgHj6wbvs4Y1uKvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5546},"main":"./dist-cjser/index.cjs","type":"module","cjser":{"original":{"name":"filename-reserved-regex","files":["index.js"],"exports":{"types":"./index.d.ts","default":"./index.js"},"scripts":{"test":"xo && ava"},"version":"4.0.0","repository":"sindresorhus/filename-reserved-regex"},"cjserVersion":2,"sourceVersion":"4.0.0"},"types":"./index.d.ts","engines":{"node":">=20"},"exports":{"types":"./index.d.ts","default":"./index.js","require":"./dist-cjser/index.cjs"},"funding":"https://github.com/sponsors/sindresorhus","gitHead":"a4bef54d7d22d3d9a6b84528457938d84cd65fe7","scripts":{"test":"xo && ava"},"_npmUser":{"name":"nanahira","email":"nanahira@momobako.com"},"repository":{"url":"https://code.moenext.com/3rdeye/cjser.git","type":"git"},"_npmVersion":"10.7.0","description":"Regular expression for matching reserved filename characters","directories":{},"sideEffects":false,"_nodeVersion":"20.14.0","_hasShrinkwrap":false,"devDependencies":{"xo":"^1.2.2","ava":"^6.4.1"},"_npmOperationalInternal":{"tmp":"tmp/filename-reserved-regex_4.0.0-cjser.2_1778158073903_0.48792892053558123","host":"s3://npm-registry-packages-npm-production"}},"4.0.1-cjser.2":{"name":"@cjser/filename-reserved-regex","version":"4.0.1-cjser.2","description":"Regular expression for matching reserved filename characters","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"},"keywords":["regex","regexp","filename","reserved","illegal"],"devDependencies":{"ava":"^6.4.1","xo":"^1.2.2"},"types":"./index.d.ts","main":"./dist-cjser/index.cjs","cjser":{"sourceVersion":"4.0.1","cjserVersion":2,"original":{"name":"filename-reserved-regex","version":"4.0.1","exports":{"types":"./index.d.ts","default":"./index.js"},"repository":"sindresorhus/filename-reserved-regex","files":["index.js"],"scripts":{"test":"xo && ava"}}},"gitHead":"a4bef54d7d22d3d9a6b84528457938d84cd65fe7","_id":"@cjser/filename-reserved-regex@4.0.1-cjser.2","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-jvcWtBZ3MLK7U2tiCVdJaMpg083zkzJvxwotRWRXJH/u8qOeT8tQnAZn3tLeWqKDq5MVvm2aZLboxLa7CQwVaQ==","shasum":"c88dd8ad0f6882206e6f642fba673ee7f8c93b2a","tarball":"https://registry.npmjs.org/@cjser/filename-reserved-regex/-/filename-reserved-regex-4.0.1-cjser.2.tgz","fileCount":5,"unpackedSize":5939,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBon9sutxPX+8nwgkbclzUt8kdX61ouswRwTXmWpvfAFAiEA5Rle43/F7jeNVrqOVBwayjE0KsV09vWM17g+wEqhlGM="}]},"_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/filename-reserved-regex_4.0.1-cjser.2_1788288809290_0.7052697983230676"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-07T12:47:53.817Z","modified":"2026-09-01T18:53:29.625Z","4.0.0-cjser.2":"2026-05-07T12:47:54.044Z","4.0.1-cjser.2":"2026-09-01T18:53:29.424Z"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"license":"MIT","keywords":["regex","regexp","filename","reserved","illegal"],"repository":{"type":"git","url":"https://code.moenext.com/3rdeye/cjser.git"},"description":"Regular expression for matching reserved filename characters","maintainers":[{"name":"nanahira","email":"nanahira@momobako.com"}],"readme":"# filename-reserved-regex\n\n> Regular expression for matching reserved filename characters\n\nOn Unix-like systems `/` is reserved and [`<>:\"/\\|?*`](https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions) as well as non-printable characters `\\u0000-\\u001F` on Windows. Windows also doesn't allow names ending in space or period.\n\n## Install\n\n```sh\nnpm install filename-reserved-regex\n```\n\n## Usage\n\n```js\nimport filenameReservedRegex, {windowsReservedNameRegex} from 'filename-reserved-regex';\n\nfilenameReservedRegex().test('foo/bar');\n//=> true\n\nfilenameReservedRegex().test('foo-bar');\n//=> false\n\n'foo/bar'.replace(filenameReservedRegex(), '!');\n//=> 'foo!bar'\n\nwindowsReservedNameRegex().test('aux');\n//=> true\n```\n\n## API\n\n### filenameReservedRegex()\n\nReturns a regex that matches all invalid characters.\n\n### windowsReservedNameRegex()\n\nReturns an exact-match case-insensitive regex that matches reserved Windows device names.\n\nThese include `CON`, `PRN`, `AUX`, `NUL`, `CONIN$`, `CONOUT$`, `COM1` through `COM9`, `COM¹`, `COM²`, `COM³`, `LPT1` through `LPT9`, `LPT¹`, `LPT²`, and `LPT³`. `COM0` and `LPT0` are conservatively matched for compatibility with previous versions.\n\nNames followed by an extension are also matched because, for example, `NUL.txt` and `NUL.tar.gz` are both equivalent to `NUL`. ASCII spaces before the extension or at the end of the name are ignored in the same way as on Windows.\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/filename-reserved-regex\n","readmeFilename":"readme.md"}