{"_id":"@binance/ua-parser-url","name":"@binance/ua-parser-url","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@binance/ua-parser-url","version":"0.0.1","description":"Mini UAParser implementation for Binance web projects","publishConfig":{"public":true,"access":"public"},"author":{"name":"binance"},"keywords":["binance","ua-parser","user-agent","device-detection","browser-detection"],"license":"MIT","main":"dist/lib/index.js","module":"dist/esm/index.js","types":"dist/types/index.d.ts","sideEffects":false,"exports":{"./package.json":"./package.json",".":{"types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","require":"./dist/lib/index.js"}},"scripts":{"build":"npm-run-all -p build:swc build:type","build:swc":"node ../cli-scripts/bin/swc.mjs --esm --cjs","build:cjs":"tsc -p tsconfig.build.json -m commonjs --outDir dist/lib --declaration false","build:es":"tsc -p tsconfig.build.json -m esNext --outDir dist/esm --declarationDir dist/types","build:type":"node ../cli-scripts/bin/tsc.mjs --tsconfig tsconfig.build.json","test":"jest","test:coverage":"jest --coverage","lint":"eslint \"src/**/*.{ts,tsx}\"","fix":"prettier-eslint \"src/**/*.{ts,tsx}\" --write"},"repository":{"type":"git","url":"https://git.toolsfdg.net/fe/mono.git"},"dependencies":{"tslib":"^2.3.1"},"devDependencies":{"@testing-library/jest-dom":"^5.16.5","@types/jest":"^27.0.1","jest":"^27.3.1","jest-environment-jsdom":"^27.3.1","npm-run-all":"^4.1.5","ts-jest":"^27.0.5","typescript":"^4.9.5"},"gitHead":"7bd5e9cfd963d645be82d456523ba1af515d003a","_id":"@binance/ua-parser-url@0.0.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-gg4y/9HiwHVp/Q+f5LHQZlnXDH5oY6oVxm4ks9h+mdvGVrxdQs+kcYj9ZkmYDZtr8tzU7w26zTZ/kJtoTTpAJQ==","shasum":"27950915f689cbf28ea1cc6aece0b91dcbec8ee8","tarball":"https://registry.npmjs.org/@binance/ua-parser-url/-/ua-parser-url-0.0.1.tgz","fileCount":18,"unpackedSize":38649,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC+2bXOe3nzFZBVv6+MwEDy3/njVrBCVDSz3ff9NQv69QIhAPqBCDLDHhCsz+l7N/RY8SmLrJE817/V+VG1+cdPPD3o"}]},"_npmUser":{"name":"binance-bot","email":"binance-bot@binance.com"},"directories":{},"maintainers":[{"name":"binance-bot","email":"binance-bot@binance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ua-parser-url_0.0.1_1753928843251_0.4976579164842725"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-31T02:27:23.166Z","0.0.1":"2025-07-31T02:27:23.464Z","modified":"2025-07-31T02:27:23.786Z"},"maintainers":[{"name":"binance-bot","email":"binance-bot@binance.com"}],"description":"Mini UAParser implementation for Binance web projects","keywords":["binance","ua-parser","user-agent","device-detection","browser-detection"],"repository":{"type":"git","url":"https://git.toolsfdg.net/fe/mono.git"},"author":{"name":"binance"},"license":"MIT","readme":"# @binance/ua-parser-url\n\nA lightweight User-Agent parser for Binance web projects, designed to replace `ua-parser-js` with a smaller, more focused implementation.\n\n## Features\n\n- **Lightweight**: Only ~5KB minified, compared to ~40KB for ua-parser-js\n- **Focused**: Only implements the functionality actually used in Binance projects\n- **TypeScript**: Full TypeScript support with proper type definitions\n- **Compatible**: API compatible with ua-parser-js for easy migration\n\n## Installation\n\n```bash\nnpm install @binance/ua-parser-url\n```\n\n## Usage\n\n### Basic Usage\n\n```typescript\nimport { UAParser } from '@binance/ua-parser-url'\n\n// Create parser with current user agent\nconst parser = new UAParser()\n\n// Get complete result\nconst result = parser.getResult()\nconsole.log(result)\n// {\n//   ua: \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...\",\n//   browser: { name: \"Chrome\", version: \"126.0.0.0\", major: \"126\" },\n//   engine: { name: \"Blink\", version: \"126.0.0.0\" },\n//   os: { name: \"macOS\", version: \"10.15.7\" },\n//   device: { model: \"Macintosh\", type: \"desktop\", vendor: \"Apple\" },\n//   cpu: { architecture: undefined }\n// }\n\n// Create parser with custom user agent\nconst customParser = new UAParser('Custom User Agent String')\n```\n\n### Device Detection\n\n```typescript\nimport { UAParser } from '@binance/ua-parser-url'\n\nconst parser = new UAParser()\n\n// Get device information\nconst device = parser.getDevice()\nconsole.log(device)\n// { model: \"iPhone\", type: \"mobile\", vendor: \"Apple\" }\n```\n\n### Browser Detection\n\n```typescript\nimport { UAParser } from '@binance/ua-parser-url'\n\nconst parser = new UAParser()\nconst result = parser.getResult()\n\nconsole.log(result.browser)\n// { name: \"Chrome\", version: \"126.0.0.0\", major: \"126\" }\n```\n\n### OS Detection\n\n```typescript\nimport { UAParser } from '@binance/ua-parser-url'\n\nconst parser = new UAParser()\nconst result = parser.getResult()\n\nconsole.log(result.os)\n// { name: \"macOS\", version: \"10.15.7\" }\n```\n\n## Supported Browsers\n\n- Chrome\n- Chrome WebView\n- Safari\n- Mobile Safari\n- Firefox\n- Edge\n- WebKit (fallback)\n\n## Supported Operating Systems\n\n- macOS\n- iOS\n- Windows\n- Android\n- Linux\n\n## Supported Devices\n\n- iPhone (mobile)\n- iPad (tablet)\n- Android devices (mobile)\n- Desktop devices\n\n## API Reference\n\n### UAParser\n\n#### Constructor\n\n```typescript\nnew UAParser(userAgent?: string)\n```\n\n- `userAgent` (optional): Custom user agent string. If not provided, uses `navigator.userAgent`\n\n#### Methods\n\n##### `getResult(): IUAParser`\n\nReturns the complete parsing result.\n\n##### `getDevice(): IUAParser['device']`\n\nReturns device information (model, type, vendor).\n\n##### `setUA(userAgent: string): UAParser`\n\nSets a custom user agent string and returns the parser instance for chaining.\n\n##### `getUA(): string`\n\nReturns the current user agent string.\n\n### Types\n\n```typescript\ninterface IUAParser {\n  ua: string\n  browser: {\n    name: string | undefined\n    version: string | undefined\n    major: string | undefined\n  }\n  engine: {\n    name: string | undefined\n    version: string | undefined\n  }\n  os: {\n    name: string | undefined\n    version: string | undefined\n  }\n  device: {\n    model: string | undefined\n    type: string | undefined\n    vendor: string | undefined\n  }\n  cpu: {\n    architecture: string | undefined\n  }\n}\n```\n\n## Migration from ua-parser-js\n\nThis library is designed to be a drop-in replacement for `ua-parser-js` in most cases:\n\n```typescript\n// Before (ua-parser-js)\nimport { UAParser } from 'ua-parser-js'\nconst parser = new UAParser()\nconst result = parser.getResult()\n\n// After (@binance/ua-parser-url)\nimport { UAParser } from '@binance/ua-parser-url'\nconst parser = new UAParser()\nconst result = parser.getResult()\n```\n\n### Differences from ua-parser-js\n\n1. **Smaller size**: ~5KB vs ~40KB\n2. **Focused functionality**: Only implements features used in Binance projects\n3. **Simplified API**: Some advanced features are not implemented\n4. **Better TypeScript support**: Native TypeScript implementation\n\n## Development\n\n### Building\n\n```bash\nnpm run build\n```\n\n### Testing\n\n```bash\nnpm test\n```\n\n### Linting\n\n```bash\nnpm run lint\n```\n\n## License\n\nMIT ","readmeFilename":"README.md","_rev":"1-049393bb1be233d0a4b62308a0f3fcae"}