{"_id":"@dex-monit/observability-contracts","_rev":"4-26604ba6668f17924d295cd9c7cd810c","name":"@dex-monit/observability-contracts","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@dex-monit/observability-contracts","version":"1.0.0","keywords":["observability","monitoring","typescript","contracts"],"author":{"name":"Dex Team"},"license":"MIT","_id":"@dex-monit/observability-contracts@1.0.0","maintainers":[{"name":"dexchangegroup","email":"team@dexchange.sn"}],"homepage":"https://github.com/dex/dex-monit#readme","bugs":{"url":"https://github.com/dex/dex-monit/issues"},"nx":{"name":"contracts"},"dist":{"shasum":"31cc8e36bd0f00e182b48dade10c67c875a85256","tarball":"https://registry.npmjs.org/@dex-monit/observability-contracts/-/observability-contracts-1.0.0.tgz","fileCount":8,"integrity":"sha512-jXemZZp1EpD03mIXlBxQ/JlYvbZDxlGjJ+P0mszOqeEU0G7oGsAj3jTWSHpoUgeNsuaWI8lhu8DeDpupBpOZgw==","signatures":[{"sig":"MEUCIEucC27d3CA4CGRO82bTNNmcXvhp0ZMY8A07xJ84PpOSAiEA5OUMaFsGRDfyBfUYXT/awojATW57dxmXs0HcQuphvqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50324},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"17a5b0a643da2999276f90b5c79661318e183e99","_npmUser":{"name":"dexchangegroup","email":"team@dexchange.sn"},"repository":{"url":"git+https://github.com/dex/dex-monit.git","type":"git","directory":"packages/observability/contracts"},"_npmVersion":"10.8.2","description":"TypeScript contracts and interfaces for Dex Monitoring SDK","directories":{},"_nodeVersion":"20.19.5","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/observability-contracts_1.0.0_1768430026277_0.2792271486860627","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@dex-monit/observability-contracts","version":"1.0.1","keywords":["observability","monitoring","typescript","contracts"],"author":{"name":"Dex Team"},"license":"MIT","_id":"@dex-monit/observability-contracts@1.0.1","maintainers":[{"name":"dexchangegroup","email":"team@dexchange.sn"}],"homepage":"https://github.com/dex/dex-monit#readme","bugs":{"url":"https://github.com/dex/dex-monit/issues"},"nx":{"name":"contracts"},"dist":{"shasum":"25758329eca589c0c20936ab3f058e6d4bd52762","tarball":"https://registry.npmjs.org/@dex-monit/observability-contracts/-/observability-contracts-1.0.1.tgz","fileCount":8,"integrity":"sha512-jkzCjM34Dh9I+gi5cCKH1IzzvQKJOx3i7TZLIkz1ADSb/sETHBqeSvHSWyRvBX2TJCQoxMG3XTNhNwCB2xjIOw==","signatures":[{"sig":"MEQCICcoerbiYNLRuTf9BORPjGzqMKylgBFC1sr5+MF7CSzsAiA24fWTyPUxl52kbrG9vIK2fOhPoUtyXOZi7XljCZbx0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51536},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"17a5b0a643da2999276f90b5c79661318e183e99","_npmUser":{"name":"dexchangegroup","email":"team@dexchange.sn"},"repository":{"url":"git+https://github.com/dex/dex-monit.git","type":"git","directory":"packages/observability/contracts"},"_npmVersion":"10.8.2","description":"TypeScript contracts and interfaces for Dex Monitoring SDK","directories":{},"_nodeVersion":"20.19.5","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/observability-contracts_1.0.1_1768498440425_0.5500777803409123","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@dex-monit/observability-contracts","version":"1.0.2","keywords":["observability","monitoring","typescript","contracts"],"author":{"name":"Dex Team"},"license":"MIT","_id":"@dex-monit/observability-contracts@1.0.2","maintainers":[{"name":"dexchangegroup","email":"team@dexchange.sn"}],"homepage":"https://github.com/dex/dex-monit#readme","bugs":{"url":"https://github.com/dex/dex-monit/issues"},"nx":{"name":"contracts"},"dist":{"shasum":"2ef5a20e4aee8f3792ee761df847448e22b2240a","tarball":"https://registry.npmjs.org/@dex-monit/observability-contracts/-/observability-contracts-1.0.2.tgz","fileCount":8,"integrity":"sha512-7nE6IlKEKMss2VFR15UR8ma7S6q+bNIzYVxvX7/zyadtONM25JjDI0bpp69DRiMNuNx7YlIKg5NSg6kPHY+TQA==","signatures":[{"sig":"MEUCIQCSSP8EqICF3GRWhRfj+2k5NdA5KLOkcrhsWr7yKvFY2QIgVaFVOYrMZyoYnz4loUfm5OZVVU0u5uaZCnGLuyBs/I0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51446},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"442d8b5f94724fa499a15fffcbaf3f3852ef7319","_npmUser":{"name":"dexchangegroup","email":"team@dexchange.sn"},"repository":{"url":"git+https://github.com/dex/dex-monit.git","type":"git","directory":"packages/observability/contracts"},"_npmVersion":"10.8.2","description":"TypeScript contracts and interfaces for Dex Monitoring SDK","directories":{},"_nodeVersion":"20.19.5","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/observability-contracts_1.0.2_1768537047322_0.41048791668455364","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@dex-monit/observability-contracts","version":"1.0.3","description":"TypeScript contracts and interfaces for Dex Monitoring SDK","keywords":["observability","monitoring","typescript","contracts"],"author":{"name":"Dex Team"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dex/dex-monit.git","directory":"packages/observability/contracts"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{"./package.json":"./package.json",".":{"types":"./dist/index.d.ts","require":"./dist/index.js","default":"./dist/index.js"}},"nx":{"name":"contracts"},"dependencies":{"tslib":"^2.3.0"},"_id":"@dex-monit/observability-contracts@1.0.3","gitHead":"f8d5879e26adab29d1e4795e149c616b62f8c59c","bugs":{"url":"https://github.com/dex/dex-monit/issues"},"homepage":"https://github.com/dex/dex-monit#readme","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-pCsSzicZmIlV4sQuEryMRc03i0Jd4ONUN/7mzbK6GKtpG053mic1Bg4ah4qC2SXyZxLtKjAxgbm77LyL4rCQ8A==","shasum":"7d7d913407fdfeb20c94f94ed9c8a61ff0b39d8d","tarball":"https://registry.npmjs.org/@dex-monit/observability-contracts/-/observability-contracts-1.0.3.tgz","fileCount":9,"unpackedSize":56570,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHOFsUFe71/cyQNjXDhUqF2mpNC7/M1308SlIWDqrqnCAiBX6BAYeZubCLyH58BWJ6nk7/NoVT4buttfvusJBPwU9g=="}]},"_npmUser":{"name":"dexchangegroup","email":"team@dexchange.sn"},"directories":{},"maintainers":[{"name":"dexchangegroup","email":"team@dexchange.sn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/observability-contracts_1.0.3_1768697556933_0.7328599865906877"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-14T22:33:46.182Z","modified":"2026-01-18T00:52:37.225Z","1.0.0":"2026-01-14T22:33:46.427Z","1.0.1":"2026-01-15T17:34:00.575Z","1.0.2":"2026-01-16T04:17:27.486Z","1.0.3":"2026-01-18T00:52:37.083Z"},"bugs":{"url":"https://github.com/dex/dex-monit/issues"},"author":{"name":"Dex Team"},"license":"MIT","homepage":"https://github.com/dex/dex-monit#readme","keywords":["observability","monitoring","typescript","contracts"],"repository":{"type":"git","url":"git+https://github.com/dex/dex-monit.git","directory":"packages/observability/contracts"},"description":"TypeScript contracts and interfaces for Dex Monitoring SDK","maintainers":[{"name":"dexchangegroup","email":"team@dexchange.sn"}],"readme":"# @dex-monit/observability-contracts\n\nTypeScript contracts and interfaces for the Dex Monitoring platform.\n\n## Installation\n\n```bash\nnpm install @dex-monit/observability-contracts\n```\n\n## Overview\n\nThis package provides all the TypeScript interfaces and types used by the Dex Monitoring SDKs and platform. It ensures type safety and consistency across all integrations.\n\n## Interfaces\n\n### Core Types\n\n#### Severity\n```typescript\ntype Severity = 'debug' | 'info' | 'warning' | 'error' | 'fatal';\n```\n\n#### IssueStatus\n```typescript\ntype IssueStatus = 'unresolved' | 'resolved' | 'ignored' | 'archived';\n```\n\n### Error Events\n\n#### ErrorEvent\nThe main structure for reporting errors to the monitoring platform.\n\n```typescript\ninterface ErrorEvent {\n  eventId: string;           // Unique event identifier\n  timestamp: string;         // ISO 8601 timestamp\n  level: Severity;           // Error severity\n  platform: string;          // 'node', 'browser', 'react-native'\n  sdk: { name: string; version: string };\n  project: string;           // Project identifier\n  environment: string;       // 'production', 'staging', 'development'\n  serverName?: string;\n  release?: string;\n  message: string;           // Error message\n  exception?: ExceptionDetails;\n  breadcrumbs?: Breadcrumb[];\n  requestId?: string;\n  transactionId?: string;\n  contexts?: EventContext;\n  fingerprint?: string[];\n}\n```\n\n#### ExceptionDetails\n```typescript\ninterface ExceptionDetails {\n  type: string;              // Error type (e.g., 'TypeError')\n  value: string;             // Error message\n  stacktrace?: StackFrame[];\n}\n```\n\n#### StackFrame\n```typescript\ninterface StackFrame {\n  filename: string;\n  function: string;\n  lineno: number;\n  colno: number;\n  context?: string[];        // Source code context\n}\n```\n\n### Log Events\n\n#### LogEvent\n```typescript\ninterface LogEvent {\n  id: string;\n  timestamp: string;\n  level: Severity;\n  message: string;\n  project: string;\n  environment: string;\n  serverName?: string;\n  requestId?: string;\n  transactionId?: string;\n  data?: Record<string, unknown>;\n  tags?: Record<string, string>;\n}\n```\n\n### Context Interfaces\n\n#### EventContext\n```typescript\ninterface EventContext {\n  client?: ClientContext;    // Browser info\n  runtime?: RuntimeContext;  // Node.js version, etc.\n  os?: OSContext;            // Operating system\n  device?: DeviceContext;    // Server/device info\n  app?: AppContext;          // Application metrics\n  request?: RequestContext;  // HTTP request details\n  user?: UserContext;        // User information\n  tags?: Record<string, string>;\n  extra?: Record<string, unknown>;\n}\n```\n\n#### UserContext\n```typescript\ninterface UserContext {\n  id?: string;\n  email?: string;\n  username?: string;\n  ipAddress?: string;\n}\n```\n\n#### RequestContext\n```typescript\ninterface RequestContext {\n  url?: string;\n  method?: string;\n  headers?: Record<string, string>;\n  query?: Record<string, string>;\n  body?: Record<string, unknown>;\n  cookies?: Record<string, string>;\n  data?: Record<string, unknown>;\n}\n```\n\n### Issues\n\n#### Issue\n```typescript\ninterface Issue {\n  id: string;\n  shortId: string;           // Human-readable ID (e.g., 'PROJ-123')\n  title: string;\n  culprit?: string;          // Error origin\n  project: string;\n  status: IssueStatus;\n  level: Severity;\n  firstSeen: string;\n  lastSeen: string;\n  count: number;             // Total events\n  userCount: number;         // Affected users\n  platform: string;\n  fingerprint: string[];\n  metadata?: { type?: string; value?: string; filename?: string; function?: string };\n  assignedTo?: string;\n  tags?: Record<string, string>;\n}\n```\n\n### API Types\n\n#### PaginatedResponse\n```typescript\ninterface PaginatedResponse<T> {\n  data: T[];\n  meta: {\n    page: number;\n    pageSize: number;\n    total: number;\n    totalPages: number;\n  };\n}\n```\n\n#### ApiResponse\n```typescript\ninterface ApiResponse<T> {\n  success: boolean;\n  data?: T;\n  error?: {\n    code: string;\n    message: string;\n    details?: unknown;\n  };\n}\n```\n\n### Query Parameters\n\n#### ListIssuesQuery\n```typescript\ninterface ListIssuesQuery {\n  project?: string;\n  status?: IssueStatus;\n  level?: Severity;\n  page?: number;\n  pageSize?: number;\n  sortBy?: 'lastSeen' | 'firstSeen' | 'count' | 'userCount';\n  sortOrder?: 'asc' | 'desc';\n}\n```\n\n#### ListLogsQuery\n```typescript\ninterface ListLogsQuery {\n  project?: string;\n  level?: Severity;\n  requestId?: string;\n  transactionId?: string;\n  from?: string;\n  to?: string;\n  search?: string;\n  page?: number;\n  pageSize?: number;\n}\n```\n\n## Usage Example\n\n```typescript\nimport type { \n  ErrorEvent, \n  LogEvent, \n  Severity,\n  UserContext \n} from '@dex-monit/observability-contracts';\n\n// Type-safe error event\nconst errorEvent: ErrorEvent = {\n  eventId: 'abc123',\n  timestamp: new Date().toISOString(),\n  level: 'error',\n  platform: 'node',\n  sdk: { name: 'sdk-node', version: '1.0.0' },\n  project: 'my-project',\n  environment: 'production',\n  message: 'Something went wrong',\n  contexts: {\n    user: {\n      id: 'user-123',\n      email: 'user@example.com',\n    } as UserContext,\n  },\n};\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}