{"_id":"@bxptr/smithers","name":"@bxptr/smithers","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@bxptr/smithers","version":"0.1.0","description":"SDK for Smithers.cloud","type":"module","main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./style.css":"./dist/index.css","./index.css":"./dist/index.css"},"sideEffects":["**/*.css"],"publishConfig":{"access":"public"},"scripts":{"build":"vite build","dev":"vite","prepare":"npm run build","test":"vitest run","typecheck":"tsc --noEmit"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"dependencies":{"class-variance-authority":"^0.7.1","clsx":"^2.1.1","framer-motion":"^11.18.2","html2canvas":"^1.4.1","lucide-react":"^0.469.0","tailwind-merge":"^2.5.5"},"devDependencies":{"@testing-library/jest-dom":"^6.6.3","@testing-library/react":"^16.0.1","@types/node":"^22.10.2","@types/react":"^18.3.18","@types/react-dom":"^18.3.5","@vitejs/plugin-react":"^4.3.4","autoprefixer":"^10.4.20","jsdom":"^25.0.1","postcss":"^8.4.49","tailwindcss":"^3.4.17","typescript":"^5.6.3","vite":"^5.4.11","vite-plugin-lib-inject-css":"^2.1.1","vite-plugin-dts":"^4.3.0","vitest":"^2.1.8"},"_id":"@bxptr/smithers@0.1.0","gitHead":"cbdb5fc2ffd810817c76fbd55e09ced4fe1c572f","_nodeVersion":"24.3.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-+XPYwUS3Dv28uqztHZ+lCb1zrt0u0bumrubYyadPRIrqa+tA2RUzhCpt3jPjIcaACgSRwMu+F7nAhh8SH7HN/w==","shasum":"752123180a815bab249216026f924de004464c61","tarball":"https://registry.npmjs.org/@bxptr/smithers/-/smithers-0.1.0.tgz","fileCount":35,"unpackedSize":1928710,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB59Mh0xePkfMEKVKLyhG7K4HoGSmC3gfwGSqBQfCeS/AiEA4u18U+T5IuzhOzjsiEJ6cXOVkXvarldoBSYzKFlQ7BA="}]},"_npmUser":{"name":"bxptr","email":"hiaarushgupta@gmail.com"},"directories":{},"maintainers":[{"name":"bxptr","email":"hiaarushgupta@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/smithers_0.1.0_1772393252268_0.8664921484209431"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-01T19:27:32.205Z","0.1.0":"2026-03-01T19:27:32.460Z","modified":"2026-03-01T19:27:32.624Z"},"maintainers":[{"name":"bxptr","email":"hiaarushgupta@gmail.com"}],"description":"SDK for Smithers.cloud","readme":"# `@bxptr/smithers`\n\nSDK for [Smithers](https://smithers.cloud)\n\n## Install\n\n```bash\nnpm install @bxptr/smithers\n```\n\nPeer deps:\n- `react` `^18 || ^19`\n- `react-dom` `^18 || ^19`\n\n## Usage\n\n### Imperative inject\n\n```tsx\nimport { injectHelp } from \"@bxptr/smithers\";\n\nconst handle = injectHelp({\n  ws: {\n    url: \"wss://example.com/help\",\n    token: () => localStorage.getItem(\"help_token\") ?? \"\",\n    tokenParam: \"token\"\n  }\n});\n\n// later\nhandle.destroy();\n```\n\n## API\n\n```ts\ntype WsOpts = {\n  url: string;\n  token?: string | (() => string | Promise<string>);\n  tokenParam?: string;\n  retry?: { attempts?: number; baseMs?: number; maxMs?: number };\n  onOpen?: () => void;\n  onClose?: () => void;\n  onError?: (error: Event) => void;\n  onMessage?: (event: MessageEvent) => void;\n};\n\ntype HelpProps = {\n  ws?: WsOpts;\n  agent?: {\n    url: string;\n    token?: string | (() => string | Promise<string>);\n    tokenParam?: string;\n    retry?: { attempts?: number; baseMs?: number; maxMs?: number };\n    auto?: boolean;\n    capture?: { format?: \"jpeg\" | \"webp\"; quality?: number; maxWidth?: number };\n    context?: () => Record<string, unknown> | Promise<Record<string, unknown>>;\n  };\n  open?: boolean;\n  defaultOpen?: boolean;\n  onOpenChange?: (open: boolean) => void;\n  z?: number;\n  className?: string;\n};\n\ntype InjectOpts = HelpProps & { target?: Element };\n```\n\n## CSP / networking\n\nThe SDK does not inject inline script tags.  \nTo enable WebSocket help transport, allow your endpoint in `connect-src`.\n\nExample:\n\n```txt\nContent-Security-Policy: connect-src 'self' wss://your-help-domain.com;\n```\n\n## Styling\n\nStyles are auto-loaded when you import the package entry:\n\n```ts\nimport { Help } from \"@bxptr/smithers\";\n```\n\nNo manual CSS import is required for default usage.\n\n## Publish\n\n```bash\nnpm run build\nnpm publish --access public\n```\n","readmeFilename":"README.md","_rev":"1-1086519330ced640062e754def74a461"}