{"_id":"@17secrets/usernames","_rev":"4-357c13a93595fec507d471a9b40085fd","name":"@17secrets/usernames","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"@17secrets/usernames","version":"0.0.1","keywords":["usernames","proxy","typescript","v2"],"author":{"name":"17secrets"},"license":"MIT","_id":"@17secrets/usernames@0.0.1","maintainers":[{"name":"pqpcara","email":"eusouosilent@gmail.com"}],"homepage":"https://github.com/pqpcara/usernames-v2#readme","bugs":{"url":"https://github.com/pqpcara/usernames-v2/issues"},"dist":{"shasum":"3584d5e0934f32448f399c64dd785dc5a2f9abde","tarball":"https://registry.npmjs.org/@17secrets/usernames/-/usernames-0.0.1.tgz","fileCount":31,"integrity":"sha512-YrzPmywByptfG/ll7rEDTIVRLlf1XKtEBVh/IielLoVu/0milX98LI2C6isGkm+sc5IFfjK+EDcaG5tHaP2BeA==","signatures":[{"sig":"MEUCIQC+SJvlGdbRxyW9hdHK7BifRbsIx4ouYxRsWNx3ydjENwIgUERq8JYzKMjXN1WwghvYuJoRSTXUgzIp0WOrjOM4fk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37584},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"324a346caf3cf0fa718f7341b8048054f4e80377","scripts":{"test":"npm run build && npm run test:dev","build":"tsc","test:dev":"tsx --watch src/index.ts"},"_npmUser":{"name":"pqpcara","email":"eusouosilent@gmail.com"},"repository":{"url":"git+https://github.com/pqpcara/usernames-v2.git","type":"git"},"_npmVersion":"11.8.0","description":"Check username availability across all platforms. Simple, fast, and hassle-free.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"undici":"^7.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^5.9.3","@types/node":"^25.2.2"},"_npmOperationalInternal":{"tmp":"tmp/usernames_0.0.1_1770584307883_0.40217037842529324","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@17secrets/usernames","version":"0.0.2","keywords":["usernames","proxy","typescript","v2"],"author":{"name":"17secrets"},"license":"MIT","_id":"@17secrets/usernames@0.0.2","maintainers":[{"name":"pqpcara","email":"eusouosilent@gmail.com"}],"homepage":"https://github.com/pqpcara/usernames-v2#readme","bugs":{"url":"https://github.com/pqpcara/usernames-v2/issues"},"dist":{"shasum":"abec8783defd3ff66768bffcf7ca4acf9d0b56d9","tarball":"https://registry.npmjs.org/@17secrets/usernames/-/usernames-0.0.2.tgz","fileCount":35,"integrity":"sha512-VdR/O7ULVJEibMiVtCtx0pXBeEmwgVRaUclnhGkYtJ3+gFsvHzpI/HqLNXcBQa8gGMO9c+fH1l9JDeza5fnCpA==","signatures":[{"sig":"MEUCIQC+za/w5lf24h068TDWT7Ebvw8sLt+nXdC9RPQhHsxYEAIgb8DvOjrOjkTu5HbJKn5za7oYsw+UEYFZTnF1/C/9CIQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45985},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1e8ee0ebe005a62c6dbc62b5f24aeb6f3d37332f","scripts":{"test":"npm run build && npm run test:dev","build":"tsc","test:dev":"tsx --watch src/index.ts"},"_npmUser":{"name":"pqpcara","email":"eusouosilent@gmail.com"},"repository":{"url":"git+https://github.com/pqpcara/usernames-v2.git","type":"git"},"_npmVersion":"11.8.0","description":"Check username availability across all platforms. Simple, fast, and hassle-free.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"undici":"^7.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^5.9.3","@types/node":"^25.2.2"},"_npmOperationalInternal":{"tmp":"tmp/usernames_0.0.2_1770693926244_0.32162935916007585","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@17secrets/usernames","version":"0.0.3","keywords":["usernames","proxy","typescript","v2"],"author":{"name":"17secrets"},"license":"MIT","_id":"@17secrets/usernames@0.0.3","maintainers":[{"name":"pqpcara","email":"eusouosilent@gmail.com"}],"homepage":"https://github.com/pqpcara/usernames-v2#readme","bugs":{"url":"https://github.com/pqpcara/usernames-v2/issues"},"dist":{"shasum":"e90d13c524305ee525db5f9a7b0b83fe4e1e841f","tarball":"https://registry.npmjs.org/@17secrets/usernames/-/usernames-0.0.3.tgz","fileCount":39,"integrity":"sha512-DbEkRIlgp+KOO0yXQuFcfD+zYqudxC0qJ38DfRfG9udytdXzVbx7MuQJFRvyrEiAJ/eNt5jtUMuRp22Dl92ADQ==","signatures":[{"sig":"MEQCIFO6xH8nvqf5PyL6dWNdJpx8saPRn4Gu3HLrLe0jXypEAiB66dkcIMp/jiNgNRt5A3Fl6Pu42C04+IqJ73ci+5LXjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53023},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"9a845de6144e8ad2f17781567b99f702782e43b3","scripts":{"test":"npm run build && npm run test:dev","build":"tsc","test:dev":"tsx --watch src/index.ts"},"_npmUser":{"name":"pqpcara","email":"eusouosilent@gmail.com"},"repository":{"url":"git+https://github.com/pqpcara/usernames-v2.git","type":"git"},"_npmVersion":"11.8.0","description":"Check username availability across all platforms. Simple, fast, and hassle-free.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"undici":"^7.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^5.9.3","@types/node":"^25.2.2"},"_npmOperationalInternal":{"tmp":"tmp/usernames_0.0.3_1770882873134_0.08010912961472183","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@17secrets/usernames","description":"Check username availability across all platforms. Simple, fast, and hassle-free.","version":"0.0.4","main":"dist/index.js","types":"dist/index.d.ts","type":"module","exports":{".":{"import":"./dist/index.js","require":"./dist/index.js","types":"./dist/index.d.ts"}},"publishConfig":{"access":"public"},"scripts":{"build":"tsc","test":"npm run build && npm run test:dev","test:dev":"tsx --watch src/index.ts"},"keywords":["usernames","proxy","typescript","v2"],"author":{"name":"17secrets"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/pqpcara/usernames-v2.git"},"bugs":{"url":"https://github.com/pqpcara/usernames-v2/issues"},"homepage":"https://github.com/pqpcara/usernames-v2#readme","devDependencies":{"@types/node":"^25.2.2","tsx":"^4.21.0","typescript":"^5.9.3"},"dependencies":{"undici":"^7.20.0"},"gitHead":"9a845de6144e8ad2f17781567b99f702782e43b3","_id":"@17secrets/usernames@0.0.4","_nodeVersion":"24.13.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-INaRI8tiIF+uB2aRIFCmoTZvPqRh4uCfGWGnXLEAEqn5IEJudzGKbfAryxsW+TjLWQE3HLCz0YvDaGQ8QAo3+A==","shasum":"cd13040747cfe3d844b8259f2368294a21ca9e23","tarball":"https://registry.npmjs.org/@17secrets/usernames/-/usernames-0.0.4.tgz","fileCount":79,"unpackedSize":119382,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFIKF1Mqg/4ASPZt2RVEGSIOyaXrQik4MxviTwSC26q5AiAY78fCL4ZYHbLadHOtGtwsKXmosK/pecNZHgJTjSaKeA=="}]},"_npmUser":{"name":"pqpcara","email":"eusouosilent@gmail.com"},"directories":{},"maintainers":[{"name":"pqpcara","email":"eusouosilent@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/usernames_0.0.4_1770934367328_0.5720917714693978"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-08T20:58:27.803Z","modified":"2026-02-12T22:12:47.620Z","0.0.1":"2026-02-08T20:58:28.052Z","0.0.2":"2026-02-10T03:25:26.395Z","0.0.3":"2026-02-12T07:54:33.267Z","0.0.4":"2026-02-12T22:12:47.482Z"},"bugs":{"url":"https://github.com/pqpcara/usernames-v2/issues"},"author":{"name":"17secrets"},"license":"MIT","homepage":"https://github.com/pqpcara/usernames-v2#readme","keywords":["usernames","proxy","typescript","v2"],"repository":{"type":"git","url":"git+https://github.com/pqpcara/usernames-v2.git"},"description":"Check username availability across all platforms. Simple, fast, and hassle-free.","maintainers":[{"name":"pqpcara","email":"eusouosilent@gmail.com"}],"readme":"# @17secrets/usernames\r\n\r\nCheck username availability across all platforms. Simple, fast and straightforward.\r\n\r\n[![npm version](https://img.shields.io/npm/v/@17secrets/usernames)](https://www.npmjs.com/package/@17secrets/usernames)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n\r\n## What works\r\n\r\n- ✅ Check username availability on 10+ platforms (Discord, Instagram, TikTok, YouTube, SoloTo, GitHub, Minecraft, Roblox, Xbox, Steam)\r\n- ✅ Automatic alternative username suggestions with optional verification\r\n- ✅ Proxy support with authentication and random selection\r\n- ✅ TypeScript with full type definitions\r\n- ✅ Lightweight with minimal dependencies (only undici)\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @17secrets/usernames\r\n```\r\n\r\n## Quick Start\r\n\r\n### TypeScript/ESM\r\n```typescript\r\nimport { Client } from '@17secrets/usernames';\r\n\r\nconst client = new Client();\r\n\r\n// Check a username\r\nconst result = await client.discord('myusername');\r\nconsole.log(result);\r\n```\r\n\r\n### CommonJS with async/await\r\n```javascript\r\nconst { Client } = require(\"@17secrets/usernames\");\r\n\r\n(async () => {\r\n  const client = new Client();\r\n  const data = await client.github(\"pqpcara\");\r\n  console.log(data);\r\n})();\r\n```\r\n\r\n### CommonJS with .then()\r\n```javascript\r\nconst { Client } = require(\"@17secrets/usernames\");\r\n\r\nconst client = new Client();\r\nclient.github('pqpcara').then((info) => console.log(info));\r\n```\r\n\r\n## Response Format\r\n\r\nAll checker methods return a `Promise<IResponse>`:\r\n\r\n```typescript\r\ninterface IResponse {\r\n  platform: string;           // Platform name (e.g., \"discord\")\r\n  username: string;           // Username checked\r\n  available: boolean | null;  // true/false or null if error\r\n  message: string;            // Descriptive status message\r\n  error?: string | null;      // Error details if any\r\n  suggestions?: string | null; // Comma-separated username suggestions\r\n}\r\n```\r\n\r\nExample response:\r\n```json\r\n{\r\n  \"platform\": \"discord\",\r\n  \"username\": \"myusername\",\r\n  \"available\": true,\r\n  \"message\": \"Username is valid\",\r\n  \"error\": null,\r\n  \"suggestions\": null\r\n}\r\n```\r\n\r\n## Supported Platforms\r\n\r\n### Social Media\r\n- **Discord** - Real-time availability checking via Discord API\r\n- **Instagram** - Checks via Instagram Web API\r\n- **TikTok** - Validates against TikTok's username format and availability\r\n- **YouTube** - Checks YouTube channel availability\r\n- **SoloTo** - Checks SoloTo platform availability\r\n\r\n### Gaming Platforms\r\n- **GitHub** - Checks GitHub user profiles with HTML parsing\r\n- **Minecraft** - Checks Minecraft profiles via Mojang API\r\n- **Roblox** - Validates Roblox usernames with CSRF token handling\r\n- **Xbox** - Checks Xbox gamertag availability\r\n- **Steam** - Checks Steam profile availability\r\n\r\n## Usage Examples\r\n\r\n### Check Single Platform\r\n```typescript\r\nconst client = new Client();\r\n\r\n// Discord\r\nconst discordResult = await client.discord(\"your_username\");\r\nconsole.log(discordResult);\r\n\r\n// Roblox\r\nconst robloxResult = await client.roblox(\"your_username\");\r\nconsole.log(robloxResult);\r\n\r\n// Minecraft\r\nconst minecraftResult = await client.minecraft(\"your_username\");\r\nconsole.log(minecraftResult);\r\n\r\n// GitHub\r\nconst githubResult = await client.github(\"pqpcara\");\r\nconsole.log(githubResult);\r\n\r\n// Instagram\r\nconst instagramResult = await client.instagram(\"your_username\");\r\nconsole.log(instagramResult);\r\n\r\n// TikTok\r\nconst tiktokResult = await client.tiktok(\"your_username\");\r\nconsole.log(tiktokResult);\r\n\r\n// YouTube\r\nconst youtubeResult = await client.youtube(\"your_username\");\r\nconsole.log(youtubeResult);\r\n\r\n// Xbox\r\nconst xboxResult = await client.xbox(\"your_username\");\r\nconsole.log(xboxResult);\r\n\r\n// Steam\r\nconst steamResult = await client.steam(\"your_username\");\r\nconsole.log(steamResult);\r\n\r\n// SoloTo\r\nconst solotoResult = await client.soloto(\"your_username\");\r\nconsole.log(solotoResult);\r\n```\r\n\r\n### With Username Suggestions\r\n\r\nEnable automatic username suggestions when a username is taken:\r\n\r\n```typescript\r\nconst client = new Client({\r\n  suggestions: {\r\n    enabled: true,\r\n    amount: 5,\r\n    verification: true  // Verify suggestions are actually available\r\n  }\r\n});\r\n\r\nconst result = await client.discord('taken_username');\r\nconsole.log(result.suggestions); // \"taken_username1, taken_username2, ...\"\r\n```\r\n\r\n**Options:**\r\n- `enabled` - Enable suggestions (default: false)\r\n- `amount` - Number of suggestions to generate (default: 1)\r\n- `verification` - Verify if suggestions are available (default: false, slower but accurate)\r\n\r\n### With Proxies\r\n\r\nUse proxies for all requests with automatic random selection:\r\n\r\n```typescript\r\nconst client = new Client();\r\n\r\n// Add proxies\r\nclient.proxy.proxies\r\n  .add({ host: 'proxy1.com', port: 8080 })\r\n  .add({ host: 'proxy2.com', port: 8081, username: 'user', password: 'pass' });\r\n\r\n// Enable proxy usage\r\nclient.proxy.enabled(true);\r\n\r\n// Now requests use a random proxy from the list\r\nconst result = await client.roblox('username');\r\n```\r\n\r\n**Proxy Management:**\r\n\r\n```typescript\r\n// Add multiple proxies\r\nclient.proxy.proxies\r\n  .add({ host: 'proxy1.com', port: 8080 })\r\n  .add({ host: 'proxy2.com', port: 8081 });\r\n\r\n// Check proxy count\r\nconsole.log(client.proxy.proxies.size); // 2\r\n\r\n// List all proxies\r\nconsole.log(client.proxy.proxies.list());\r\n\r\n// Clear all proxies\r\nclient.proxy.proxies.clear();\r\n\r\n// Check if proxies are enabled\r\nconsole.log(client.proxy.enabled()); // true/false\r\n\r\n// Toggle proxy usage\r\nclient.proxy.enabled(false);\r\n```\r\n\r\n## Complete Example\r\n\r\n```typescript\r\nimport { Client } from '@17secrets/usernames';\r\n\r\nconst client = new Client({\r\n  suggestions: {\r\n    enabled: true,\r\n    amount: 3,\r\n    verification: true\r\n  }\r\n});\r\n\r\n// Add proxies\r\nclient.proxy.proxies\r\n  .add({ host: 'proxy1.com', port: 8080 })\r\n  .add({ host: 'proxy2.com', port: 8081 });\r\n\r\nclient.proxy.enabled(true);\r\n\r\n// Check username\r\nconst result = await client.roblox('my_username');\r\n\r\nif (result.available) {\r\n  console.log('✅ Username available!');\r\n} else {\r\n  console.log('❌ Username unavailable');\r\n  if (result.suggestions) {\r\n    console.log('💡 Try:', result.suggestions);\r\n  }\r\n}\r\n```\r\n\r\n## License\r\n\r\nMIT © 2026\r\n\r\n## Links\r\n\r\n- [GitHub](https://github.com/pqpcara/usernames-v2)\r\n- [NPM](https://www.npmjs.com/package/@17secrets/usernames)\r\n","readmeFilename":"README.md"}