{"_id":"@arcblock/is-valid-domain","name":"@arcblock/is-valid-domain","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.5":{"name":"@arcblock/is-valid-domain","version":"1.0.5","publishConfig":{"access":"public"},"description":"Validate domain name","type":"module","repository":{"type":"git","url":"git+https://github.com/tahul/is-valid-domain.git"},"keywords":["valid","validate","validator","check","checker","domain","subdomain","wildcard","host","hostname"],"author":{"name":"Miguel Mota","email":"hello@miguelmota.com","url":"https://miguelmota.com/"},"license":"MIT","bugs":{"url":"https://github.com/tahul/is-valid-domain/issues"},"homepage":"https://github.com/tahul/is-valid-domain","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"main":"./dist/index.mjs","types":"./dist/index.d.ts","scripts":{"build":"unbuild -c build.config.ts","stub":"unbuild -c build.config.ts --stub","lint":"eslint --cache --quiet","lint:fix":"eslint --cache --fix --quiet","release":"release-it","test":"pnpm lint && vitest run --coverage","test:ui":"vitest --ui --open=false","typecheck":"tsc --noEmit --skipLibCheck","build:example":"browserify example/main.js -o example/dist/bundle.js","generate":"node data/generate.js"},"dependencies":{"punycode":"^2.3.1"},"devDependencies":{"@antfu/eslint-config":"^2.9.0","@types/node":"^20.11.30","@vitest/coverage-v8":"^1.4.0","benchmark":"^2.1.4","eslint":"^8.57.0","jiti":"1.21.0","release-it":"^17.1.1","typescript":"^5.4.3","unbuild":"^2.0.0","vitest":"^1.4.0"},"_id":"@arcblock/is-valid-domain@1.0.5","gitHead":"08de7fe4fea20bf43fb308c0c1b02394c605f84d","_nodeVersion":"21.7.3","_npmVersion":"10.5.0","dist":{"integrity":"sha512-lOTGtH9bd3/2oKQV4B59+VoW2iXNnKwA4PMmRaTnxwXNUvDGTOEsW+hYr7YQFwonATgwrDo3jOQIeZ4s8rC6rw==","shasum":"544979b0b7c7035ee12b89aac5ceeda6edf2ffaf","tarball":"https://registry.npmjs.org/@arcblock/is-valid-domain/-/is-valid-domain-1.0.5.tgz","fileCount":12,"unpackedSize":121356,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIElQRUjXhMpysmvcPxhjSCYNUSEKZb6hxq8wv83FATZTAiEA//sHEq4mjVWTudSH0YN47RhpRl7LA71OruVaggJflKU="}]},"_npmUser":{"name":"wangshijun","email":"wangshijun2010@gmail.com"},"directories":{},"maintainers":[{"name":"wangshijun","email":"wangshijun2010@gmail.com"},{"name":"polunzh","email":"polunzh@gmail.com"},{"name":"mave99a","email":"rob@arcblock.io"},{"name":"gxw","email":"840501291@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/is-valid-domain_1.0.5_1718790884761_0.6276359449433238"},"_hasShrinkwrap":false}},"time":{"created":"2024-06-19T09:54:44.660Z","1.0.5":"2024-06-19T09:54:44.985Z","modified":"2024-06-19T09:54:45.350Z"},"maintainers":[{"name":"wangshijun","email":"wangshijun2010@gmail.com"},{"name":"polunzh","email":"polunzh@gmail.com"},{"name":"mave99a","email":"rob@arcblock.io"},{"name":"gxw","email":"840501291@qq.com"}],"description":"Validate domain name","homepage":"https://github.com/tahul/is-valid-domain","keywords":["valid","validate","validator","check","checker","domain","subdomain","wildcard","host","hostname"],"repository":{"type":"git","url":"git+https://github.com/tahul/is-valid-domain.git"},"author":{"name":"Miguel Mota","email":"hello@miguelmota.com","url":"https://miguelmota.com/"},"bugs":{"url":"https://github.com/tahul/is-valid-domain/issues"},"license":"MIT","readme":"# is-valid-domain\n\n> Validate domain name in JavaScript\n\n## Demo\n\n[https://lab.miguelmota.com/is-valid-domain](https://lab.miguelmota.com/is-valid-domain)\n\n## Install\n\n```bash\nnpm install is-valid-domain\n```\n\n## Usage\n\n```javascript\nconst isValidDomain = require('is-valid-domain')\n\nisValidDomain('example.com') // true\nisValidDomain('foo.example.com') // true\nisValidDomain('bar.foo.example.com') // true\nisValidDomain('exa-mple.co.uk') // true\nisValidDomain('xn--80ak6aa92e.com') // true\nisValidDomain('_dnslink.ipfs.io') // true\nisValidDomain('exa_mple.com') // false\nisValidDomain('-example.co.uk') // false\nisValidDomain('example') // false\nisValidDomain('ex*mple.com') // false\nisValidDomain('*.example.com') // false\nisValidDomain('*.com') // false\nisValidDomain(3434) // false\n\nisValidDomain('foo.example.com', {subdomain: true}) // true\nisValidDomain('foo.example.com', {subdomain: false}) // false\nisValidDomain('*.example.com', {wildcard: false}) // false\nisValidDomain('*.example.com', {wildcard: true}) // true\nisValidDomain('*.example.com', {subdomain: false, wildcard: true}) // false\nisValidDomain('はじめよう.みんな') // false\nisValidDomain('はじめよう.みんな', {allowUnicode: true}) // true\nisValidDomain('ai.') // false\nisValidDomain('ai.', {topLevel: true}) // true\n```\n\nview more [examples](./test/domain.test.js)\n\n## Test\n\n```bash\nnpm test\n```\n\n## Contributing\n\nAdding new domains:\n\n- Add second level domain to `data/second_level_domains.csv`\n- Run `npm run generate` to generate JSON map file\n- Run `npm test`\n\n## FAQ\n\n- Q: Why is trailing dot `.` in domain names verified as `true`?\n\n  - A: Fully qualified domain names allow the trailing dot which represents the root zone. More info [here](http://www.dns-sd.org/trailingdotsindomainnames.html) and [here](https://en.wikipedia.org/wiki/Fully_qualified_domain_name).\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}