{"_id":"@clienwork/errors","_rev":"3-02368dae8bdab174a82803485fe49b1c","name":"@clienwork/errors","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@clienwork/errors","version":"1.0.0","keywords":["error","tracking","monitoring","clienwork"],"license":"MIT","_id":"@clienwork/errors@1.0.0","maintainers":[{"name":"clienwork","email":"webplug@gmail.com"}],"homepage":"https://github.com/clienwork/clienwork#readme","bugs":{"url":"https://github.com/clienwork/clienwork/issues"},"dist":{"shasum":"1b761c6da7c35ad2ee94b6199f4ff293e5f67a17","tarball":"https://registry.npmjs.org/@clienwork/errors/-/errors-1.0.0.tgz","fileCount":11,"integrity":"sha512-bc+exQk+TN/omu9AeN6CTdtk3DrAyrGEsW+il759CQv+ZXBxF8Q3o7QtIMOlicf39fKckN8GarTKFkOW0Pp5rA==","signatures":[{"sig":"MEQCIDeB8UG1DyQDDdqAdeP0aMUjawW5JWhEPIefvfbYPoRBAiB7bfLjC6Vg4Q3VUbrjYAvQrhFkde8jNCdodzqc0/1vHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28460},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.mjs","require":"./dist/react.js"}},"gitHead":"2cca961982507eced372d92ee52c3b5e2f6f24df","scripts":{"dev":"tsup src/index.ts src/react.ts --format cjs,esm --dts --watch","build":"tsup src/index.ts src/react.ts --format cjs,esm --dts --clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"clienwork","email":"webplug@gmail.com"},"repository":{"url":"git+https://github.com/clienwork/clienwork.git","type":"git"},"_npmVersion":"10.9.3","description":"Error collection SDK for Clienwork","directories":{},"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0"},"peerDependencies":{"react":">=16.8.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/errors_1.0.0_1769771638007_0.6218982409334186","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@clienwork/errors","version":"1.0.2","keywords":["error","tracking","monitoring","clienwork"],"author":{"name":"Clienwork","email":"support@clienwork.com"},"license":"MIT","_id":"@clienwork/errors@1.0.2","maintainers":[{"name":"clienwork","email":"webplug@gmail.com"}],"homepage":"https://clienwork.com","bugs":{"url":"https://github.com/clienwork/clienwork/issues"},"bin":{"clienwork-upload-sourcemaps":"dist/upload-sourcemaps.js"},"dist":{"shasum":"c18af9fa53119590242ff7d3a960ed1bde9c6156","tarball":"https://registry.npmjs.org/@clienwork/errors/-/errors-1.0.2.tgz","fileCount":14,"integrity":"sha512-6u40qyEeLkRXppZ6Y0cS328FSTEuvb+BgJta9vrQUcEe53W04O1qqCGaMWSUThsL7b622veNeE8vOfuMZ3aFzQ==","signatures":[{"sig":"MEQCIHJQJBTEnNFPntGNBQISuwDyG4yXMJ1uJUXYH1US+mDQAiBHHy+1mD9IK9PFv+LPsFE/7D63JskBB0m6m7VjODDeLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52714},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.mjs","require":"./dist/react.js"},"./upload-sourcemaps":{"types":"./dist/upload-sourcemaps.d.ts","import":"./dist/upload-sourcemaps.mjs","require":"./dist/upload-sourcemaps.js"}},"gitHead":"ef1e0a8ca2cb35bd38f3ce5cb14937939d5978b5","scripts":{"dev":"tsup src/index.ts src/react.ts src/upload-sourcemaps.ts --format cjs,esm --dts --watch","build":"tsup src/index.ts --format cjs,esm --dts --clean && tsup src/react.ts --format cjs,esm --dts && tsup src/upload-sourcemaps.ts --format cjs,esm --dts","prepublishOnly":"npm run build"},"_npmUser":{"name":"clienwork","email":"webplug@gmail.com"},"repository":{"url":"git+https://github.com/clienwork/clienwork.git","type":"git"},"_npmVersion":"10.9.3","description":"Error collection SDK for Clienwork","directories":{},"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"react":">=16.8.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/errors_1.0.2_1769875057013_0.8947580886004829","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@clienwork/errors","version":"1.1.0","description":"Error collection SDK for Clienwork","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","bin":{"clienwork-errors-init":"dist/init.js","clienwork-upload-sourcemaps":"dist/upload-sourcemaps.js"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./auto":{"types":"./dist/auto.d.ts","import":"./dist/auto.mjs","require":"./dist/auto.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.mjs","require":"./dist/react.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.mjs","require":"./dist/nextjs.js"},"./upload-sourcemaps":{"types":"./dist/upload-sourcemaps.d.ts","import":"./dist/upload-sourcemaps.mjs","require":"./dist/upload-sourcemaps.js"}},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts --clean && tsup src/auto.ts --format cjs,esm --dts && tsup src/react.ts --format cjs,esm --dts && tsup src/nextjs.ts --format cjs,esm --dts && tsup src/init.ts --format cjs --dts && tsup src/upload-sourcemaps.ts --format cjs,esm --dts","dev":"tsup src/index.ts src/react.ts src/upload-sourcemaps.ts --format cjs,esm --dts --watch","prepublishOnly":"npm run build"},"peerDependencies":{"react":">=16.8.0"},"peerDependenciesMeta":{"react":{"optional":true}},"devDependencies":{"@types/node":"^20.0.0","react":"^18.0.0","tsup":"^8.0.0","typescript":"^5.0.0"},"keywords":["error","tracking","monitoring","clienwork"],"license":"MIT","homepage":"https://clienwork.com","repository":{"type":"git","url":"git+https://github.com/clienwork/clienwork.git"},"bugs":{"url":"https://github.com/clienwork/clienwork/issues"},"author":{"name":"Clienwork","email":"support@clienwork.com"},"_id":"@clienwork/errors@1.1.0","gitHead":"5fcd3bdec875ff0c71b38639d1ce4795aa1f535e","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-b2URRtWhzspgSnBEyD1EwFYG1ONi3K8b/hgbYL11VCvI8IdDX3YSy+AJzFxHIrVFVh57SuVxQv8FDmNAIGBK5w==","shasum":"2ee3f7703339b13a2cea293affb1e10eb44fb4e1","tarball":"https://registry.npmjs.org/@clienwork/errors/-/errors-1.1.0.tgz","fileCount":24,"unpackedSize":83587,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGbjNGfp1MU6gCFCx6mWr1nCaZSg4no+zf2NvSOkRC+8AiBuVyV16ez0nPjdr/NsaEGcgJpBfb/EEwz5n4Ha/IziYQ=="}]},"_npmUser":{"name":"clienwork","email":"webplug@gmail.com"},"directories":{},"maintainers":[{"name":"clienwork","email":"webplug@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/errors_1.1.0_1770015837122_0.8573233476253621"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-30T11:13:57.873Z","modified":"2026-02-02T07:03:57.389Z","1.0.0":"2026-01-30T11:13:58.154Z","1.0.2":"2026-01-31T15:57:37.184Z","1.1.0":"2026-02-02T07:03:57.263Z"},"bugs":{"url":"https://github.com/clienwork/clienwork/issues"},"author":{"name":"Clienwork","email":"support@clienwork.com"},"license":"MIT","homepage":"https://clienwork.com","keywords":["error","tracking","monitoring","clienwork"],"repository":{"type":"git","url":"git+https://github.com/clienwork/clienwork.git"},"description":"Error collection SDK for Clienwork","maintainers":[{"name":"clienwork","email":"webplug@gmail.com"}],"readme":"# @clienwork/errors\n\n[![npm version](https://img.shields.io/npm/v/@clienwork/errors.svg)](https://www.npmjs.com/package/@clienwork/errors)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\nError collection SDK for [Clienwork](https://clienwork.com)\n\nAutomatically collect and monitor errors from your frontend and backend applications. View error logs, analyze stack traces, and receive Slack notifications from the Clienwork dashboard.\n\n**[Get Started](https://clienwork.com)** | **[Documentation](https://clienwork.com/docs)** | **[Dashboard](https://app.clienwork.com)**\n\n## Automatic Setup (Recommended)\n\nRun the setup wizard to automatically configure your project:\n\n```bash\nnpx @clienwork/errors init\n```\n\nThe wizard will:\n- Detect your project type (Next.js, React, Express, Node.js)\n- Automatically configure the necessary files\n- Guide you through setting up your API token\n\n---\n\n## Quick Start\n\n### Option A: Next.js (Recommended)\n\n**3 steps to start collecting errors:**\n\n**1. Install**\n\n```bash\nnpm install @clienwork/errors\n```\n\n**2. Set environment variable**\n\n```bash\n# .env.local\nNEXT_PUBLIC_CLIENWORK_ERROR_TOKEN=clw_err_xxx\n```\n\n> Get your token from **Project Settings → Error Collection** in the [Clienwork dashboard](https://app.clienwork.com)\n\n**3. Add to next.config.js**\n\n```javascript\nconst { withClienworkErrors } = require('@clienwork/errors/nextjs')\n\nmodule.exports = withClienworkErrors({\n  // your existing config\n})\n```\n\n**Done! Errors are now automatically collected.**\n\n---\n\n### Option B: Auto Import\n\nFor any JavaScript/TypeScript project:\n\n**1. Install**\n\n```bash\nnpm install @clienwork/errors\n```\n\n**2. Set environment variable**\n\n```bash\n# .env or .env.local\nNEXT_PUBLIC_CLIENWORK_ERROR_TOKEN=clw_err_xxx  # Frontend\nCLIENWORK_ERROR_TOKEN=clw_err_xxx              # Backend\n```\n\n**3. Import once at app startup**\n\n```typescript\nimport '@clienwork/errors/auto'\n```\n\n**Done! Errors are now automatically collected.**\n\n---\n\n### Option C: Manual Setup\n\nFor full control over initialization:\n\n```typescript\nimport { init } from '@clienwork/errors'\n\ninit({\n  apiToken: process.env.NEXT_PUBLIC_CLIENWORK_ERROR_TOKEN!,\n  source: 'frontend',\n})\n```\n\n---\n\n## Advanced Usage\n\n### Manual Error Reporting\n\n```typescript\nimport { report } from '@clienwork/errors'\n\ntry {\n  // Risky operation\n} catch (error) {\n  report(error, { context: 'checkout' })\n}\n```\n\n### User Identification\n\nAssociate errors with specific users:\n\n```typescript\nimport { setUser, clearUser } from '@clienwork/errors'\n\n// After user login\nsetUser('user-123')  // or user email, UUID, etc.\n\n// After user logout\nclearUser()\n```\n\n### React Error Boundary\n\n```tsx\nimport { ClienworkErrorBoundary } from '@clienwork/errors/react'\n\nfunction App() {\n  return (\n    <ClienworkErrorBoundary fallback={<div>Something went wrong.</div>}>\n      <MyComponent />\n    </ClienworkErrorBoundary>\n  )\n}\n```\n\n### useErrorReporter Hook\n\n```tsx\nimport { useErrorReporter } from '@clienwork/errors/react'\n\nfunction MyComponent() {\n  const { report } = useErrorReporter()\n\n  const handleClick = async () => {\n    try {\n      await riskyOperation()\n    } catch (error) {\n      report(error, { action: 'button-click' })\n    }\n  }\n\n  return <button onClick={handleClick}>Click</button>\n}\n```\n\n### HOC\n\n```tsx\nimport { withErrorBoundary } from '@clienwork/errors/react'\n\nconst SafeComponent = withErrorBoundary(MyComponent, <div>Error occurred</div>)\n```\n\n## Backend Usage (Node.js)\n\n### Basic Usage\n\n```typescript\nimport { createBackendReporter } from '@clienwork/errors'\n\nconst errorReporter = createBackendReporter({\n  apiToken: process.env.CLIENWORK_ERROR_TOKEN!,\n})\n\ntry {\n  // Risky operation\n} catch (error) {\n  await errorReporter.report(error, { endpoint: '/api/users' })\n}\n```\n\n### Express Middleware\n\n```typescript\nimport { createBackendReporter, expressErrorHandler } from '@clienwork/errors'\n\nconst errorReporter = createBackendReporter({\n  apiToken: process.env.CLIENWORK_ERROR_TOKEN!,\n})\n\napp.use(expressErrorHandler(errorReporter))\n```\n\n### Next.js API Routes\n\n```typescript\nimport { createBackendReporter } from '@clienwork/errors'\n\nconst errorReporter = createBackendReporter({\n  apiToken: process.env.CLIENWORK_ERROR_TOKEN!,\n})\n\nexport async function GET(request: Request) {\n  try {\n    // ...\n  } catch (error) {\n    await errorReporter.report(error as Error)\n    return new Response('Error', { status: 500 })\n  }\n}\n```\n\n## Configuration Options\n\n```typescript\ninit({\n  apiToken: 'clw_err_xxx',     // Required: API token\n  endpoint: 'https://...',     // Optional: Custom endpoint\n  source: 'frontend',          // Optional: 'frontend' | 'backend'\n  enabled: true,               // Optional: Enable/disable (useful for dev)\n  defaultMetadata: {},         // Optional: Default metadata for all errors\n  beforeSend: (error) => {     // Optional: Modify/filter before sending\n    // Return null to cancel sending\n    return error\n  },\n})\n```\n\n## Support\n\n- [Clienwork Homepage](https://clienwork.com)\n- [Contact Us](mailto:support@clienwork.com)\n- [GitHub Issues](https://github.com/clienwork/clienwork/issues)\n\n## License\n\nMIT - [Clienwork](https://clienwork.com)\n","readmeFilename":"README.md"}