@pulseboard/react-native 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../node_modules/promise/setimmediate/core.js","../node_modules/promise/setimmediate/rejection-tracking.js","../src/client.ts","../src/queue.ts","../src/auto-capture.ts","../src/specs/NativePulseBoardDevice.ts","../src/specs/NativePulseBoardNetwork.ts","../src/context.ts","../src/index.ts"],"names":["exports","Promise","resolve","reject","id","TurboModuleRegistry","I18nManager","Dimensions","Platform"],"mappings":"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","file":"index.js","sourcesContent":["'use strict';\n\n\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._x = 0;\n this._y = 0;\n this._z = null;\n this._A = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._B = null;\nPromise._C = null;\nPromise._D = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._y === 3) {\n self = self._z;\n }\n if (Promise._B) {\n Promise._B(self);\n }\n if (self._y === 0) {\n if (self._x === 0) {\n self._x = 1;\n self._A = deferred;\n return;\n }\n if (self._x === 1) {\n self._x = 2;\n self._A = [self._A, deferred];\n return;\n }\n self._A.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n setImmediate(function() {\n var cb = self._y === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._y === 1) {\n resolve(deferred.promise, self._z);\n } else {\n reject(deferred.promise, self._z);\n }\n return;\n }\n var ret = tryCallOne(cb, self._z);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._y = 3;\n self._z = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._y = 1;\n self._z = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._y = 2;\n self._z = newValue;\n if (Promise._C) {\n Promise._C(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._x === 1) {\n handle(self, self._A);\n self._A = null;\n }\n if (self._x === 2) {\n for (var i = 0; i < self._A.length; i++) {\n handle(self, self._A[i]);\n }\n self._A = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n","'use strict';\n\nvar Promise = require('./core');\n\nvar DEFAULT_WHITELIST = [\n ReferenceError,\n TypeError,\n RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n enabled = false;\n Promise._B = null;\n Promise._C = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n options = options || {};\n if (enabled) disable();\n enabled = true;\n var id = 0;\n var displayId = 0;\n var rejections = {};\n Promise._B = function (promise) {\n if (\n promise._y === 2 && // IS REJECTED\n rejections[promise._E]\n ) {\n if (rejections[promise._E].logged) {\n onHandled(promise._E);\n } else {\n clearTimeout(rejections[promise._E].timeout);\n }\n delete rejections[promise._E];\n }\n };\n Promise._C = function (promise, err) {\n if (promise._x === 0) { // not yet handled\n promise._E = id++;\n rejections[promise._E] = {\n displayId: null,\n error: err,\n timeout: setTimeout(\n onUnhandled.bind(null, promise._E),\n // For reference errors and type errors, this almost always\n // means the programmer made a mistake, so log them after just\n // 100ms\n // otherwise, wait 2 seconds to see if they get handled\n matchWhitelist(err, DEFAULT_WHITELIST)\n ? 100\n : 2000\n ),\n logged: false\n };\n }\n };\n function onUnhandled(id) {\n if (\n options.allRejections ||\n matchWhitelist(\n rejections[id].error,\n options.whitelist || DEFAULT_WHITELIST\n )\n ) {\n rejections[id].displayId = displayId++;\n if (options.onUnhandled) {\n rejections[id].logged = true;\n options.onUnhandled(\n rejections[id].displayId,\n rejections[id].error\n );\n } else {\n rejections[id].logged = true;\n logError(\n rejections[id].displayId,\n rejections[id].error\n );\n }\n }\n }\n function onHandled(id) {\n if (rejections[id].logged) {\n if (options.onHandled) {\n options.onHandled(rejections[id].displayId, rejections[id].error);\n } else if (!rejections[id].onUnhandled) {\n console.warn(\n 'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n );\n console.warn(\n ' This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n rejections[id].displayId + '.'\n );\n }\n }\n }\n}\n\nfunction logError(id, error) {\n console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n var errStr = (error && (error.stack || error)) + '';\n errStr.split('\\n').forEach(function (line) {\n console.warn(' ' + line);\n });\n}\n\nfunction matchWhitelist(error, list) {\n return list.some(function (cls) {\n return error instanceof cls;\n });\n}","import { PulseEvent } from \"./types\";\n\ntype AnalyticsType = \"crash\" | \"session\" | \"screen-view\" | \"api-call\";\n\nexport class PulseBoardClient {\n private host: string;\n private debug: boolean;\n\n constructor(host: string, debug = false) {\n this.host = host.replace(/\\/$/, \"\");\n this.debug = debug;\n }\n\n // ─── Event Ingest ─────────────────────────────────────────────────\n\n async send(event: PulseEvent): Promise<boolean> {\n try {\n const response = await fetch(`${this.host}/ingest`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(event),\n });\n\n if (!response.ok) {\n this.log(\n `Failed to send event: ${response.status} ${response.statusText}`,\n );\n return false;\n }\n\n this.log(`Event sent: ${event.type} — ${event.name}`);\n return true;\n } catch (err) {\n this.log(`Network error sending event: ${err}`);\n return false;\n }\n }\n\n async sendBatch(events: PulseEvent[]): Promise<boolean> {\n const chunks = this.chunk(events, 5);\n\n for (const chunk of chunks) {\n await Promise.all(chunk.map((e) => this.send(e)));\n }\n\n return true;\n }\n\n // ─── Analytics Ingest ─────────────────────────────────────────────\n\n async sendAnalytics(\n type: AnalyticsType,\n payload: Record<string, unknown>,\n ): Promise<boolean> {\n try {\n const response = await fetch(`${this.host}/analytics/${type}`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(payload),\n });\n\n if (!response.ok) {\n this.log(\n `Failed to send analytics: ${response.status} ${response.statusText}`,\n );\n return false;\n }\n\n this.log(`Analytics sent: ${type}`);\n return true;\n } catch (err) {\n this.log(`Network error sending analytics: ${err}`);\n return false;\n }\n }\n\n // ─── Private ──────────────────────────────────────────────────────\n\n private chunk<T>(arr: T[], size: number): T[][] {\n return Array.from({ length: Math.ceil(arr.length / size) }, (_, i) =>\n arr.slice(i * size, i * size + size),\n );\n }\n\n private log(message: string): void {\n if (this.debug) {\n console.log(`[PulseBoard] ${message}`);\n }\n }\n}\n","import { PulseEvent } from \"./types\";\n\nexport class EventQueue {\n private queue: PulseEvent[] = [];\n private maxSize: number;\n\n constructor(maxSize = 100) {\n this.maxSize = maxSize;\n }\n\n enqueue(event: PulseEvent): void {\n if (this.queue.length >= this.maxSize) {\n this.queue.shift();\n }\n\n this.queue.push(event);\n }\n\n dequeue(count: number): PulseEvent[] {\n return this.queue.splice(0, count);\n }\n\n get size(): number {\n return this.queue.length;\n }\n\n get isEmpty(): boolean {\n return this.queue.length === 0;\n }\n\n clear(): void {\n this.queue = [];\n }\n}\n","type ErrorHandler = (\n name: string,\n error: Error,\n context?: Record<string, unknown>,\n) => void;\n\nexport class AutoCapture {\n private handler: ErrorHandler;\n private attached: boolean = false;\n private previousHandler: ((error: Error, isFatal?: boolean) => void) | null =\n null;\n\n constructor(handler: ErrorHandler) {\n this.handler = handler;\n }\n\n attach(): void {\n if (this.attached) return;\n\n // React Native's global error handler - catches all unhandled JS errors\n this.previousHandler = ErrorUtils.getGlobalHandler();\n\n ErrorUtils.setGlobalHandler((error: Error, isFatal?: boolean) => {\n this.handler(\"uncaughtException\", error, { isFatal: isFatal ?? false });\n\n // Always call the previous handler (React Native's default crash reporter)\n if (this.previousHandler) {\n this.previousHandler(error, isFatal);\n }\n });\n\n // Unhandled promise rejections\n const tracking = require(\"promise/setimmediate/rejection-tracking\");\n tracking.enable({\n allRejections: true,\n onUnhandled: (_id: number, error: unknown) => {\n const err = error instanceof Error ? error : new Error(String(error));\n this.handler(\"unhandledRejection\", err, { fatal: false });\n },\n });\n\n this.attached = true;\n }\n\n detach(): void {\n if (!this.attached) return;\n\n // Restore the previous error handler\n if (this.previousHandler) {\n ErrorUtils.setGlobalHandler(this.previousHandler);\n this.previousHandler = null;\n }\n\n this.attached = false;\n }\n}\n","import type { TurboModule } from \"react-native\";\nimport { TurboModuleRegistry } from \"react-native\";\n\nexport type DeviceInfo = {\n model: string;\n manufacturer: string;\n brand: string;\n os: string;\n osVersion: string;\n appVersion: string;\n buildNumber: string;\n bundleId: string;\n screenWidth: number;\n screenHeight: number;\n isTablet: boolean;\n isEmulator: boolean;\n};\n\nexport interface Spec extends TurboModule {\n getDeviceInfo(): Promise<DeviceInfo>;\n}\n\nexport default TurboModuleRegistry.getEnforcing<Spec>(\"PulseBoardDevice\");\n","import type { TurboModule } from \"react-native\";\nimport { TurboModuleRegistry } from \"react-native\";\n\nexport type NetowrkInfo = {\n type: string;\n isConnected: boolean;\n isWifiEnabled: boolean;\n carrier: string;\n ipAddress: string;\n};\n\nexport interface Spec extends TurboModule {\n getNetworkInfo(): Promise<NetowrkInfo>;\n}\n\nexport default TurboModuleRegistry.getEnforcing<Spec>(\"PulseBoardNetwork\");\n","import { Platform, Dimensions, I18nManager } from \"react-native\";\nimport NativePulseBoardDevice from \"./specs/NativePulseBoardDevice\";\nimport NativePulseBoardNetwork from \"./specs/NativePulseBoardNetwork\";\nimport {\n Platform as PlatformType,\n NetworkType,\n DeviceContext,\n NetworkContext,\n SessionContext,\n AppContext,\n UserContext,\n EnrichedContext,\n} from \"./types\";\n\nfunction generateSessionId(): string {\n const timestamp = Date.now().toString(36);\n const random = Math.random().toString(36).substring(2, 10);\n return `${timestamp}-${random}`;\n}\n\nfunction mapNetworkType(type: string): NetworkType {\n switch (type) {\n case \"wifi\":\n return \"wifi\";\n case \"cellular\":\n return \"cellular\";\n case \"offline\":\n return \"offline\";\n default:\n return \"unknown\";\n }\n}\n\nfunction getTimezone(): string {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n } catch {\n return \"unknown\";\n }\n}\n\nfunction getLanguage(): string {\n try {\n return (\n I18nManager.getConstants?.()?.localeIdentifier?.replace(\"_\", \"-\") ??\n Intl.DateTimeFormat().resolvedOptions().locale ??\n \"unknown\"\n );\n } catch {\n return \"unknown\";\n }\n}\n\nexport class ContextCollector {\n private sessionContext: SessionContext;\n private appContext: AppContext;\n private userContext: UserContext = {};\n\n constructor(appContext: AppContext = {}) {\n this.appContext = appContext;\n this.sessionContext = {\n sessionId: generateSessionId(),\n startedAt: new Date().toISOString(),\n };\n }\n\n identify(user: UserContext): void {\n this.userContext = { ...this.userContext, ...user };\n }\n\n clearUser(): void {\n this.userContext = {};\n }\n\n async collect(): Promise<EnrichedContext> {\n const { width, height } = Dimensions.get(\"window\");\n\n // Collect device info — fall back gracefully if native module unavailable\n let deviceInfo = null;\n let networkInfo = null;\n\n try {\n if (NativePulseBoardDevice) {\n deviceInfo = await NativePulseBoardDevice.getDeviceInfo();\n }\n } catch (e) {\n console.warn(\"[PulseBoard] Failed to collect device info:\", e);\n }\n\n try {\n if (NativePulseBoardNetwork) {\n networkInfo = await NativePulseBoardNetwork.getNetworkInfo();\n }\n } catch (e) {\n console.warn(\"[PulseBoard] Failed to collect network info:\", e);\n }\n\n const device: DeviceContext = {\n platform: Platform.OS === \"ios\" ? \"ios\" : \"android\",\n os: deviceInfo?.os ?? (Platform.OS === \"ios\" ? \"iOS\" : \"Android\"),\n osVersion:\n deviceInfo?.osVersion ?? Platform.Version?.toString() ?? \"unknown\",\n model: deviceInfo?.model ?? \"unknown\",\n manufacturer: deviceInfo?.manufacturer ?? \"unknown\",\n brand: deviceInfo?.brand ?? \"unknown\",\n isTablet: deviceInfo?.isTablet ?? false,\n appVersion:\n this.appContext.appVersion ?? deviceInfo?.appVersion ?? \"unknown\",\n buildNumber:\n this.appContext.buildNumber ?? deviceInfo?.buildNumber ?? \"unknown\",\n bundleId: deviceInfo?.bundleId ?? \"unknown\",\n screenWidth: deviceInfo?.screenWidth ?? width,\n screenHeight: deviceInfo?.screenHeight ?? height,\n fontScale: Dimensions.get(\"window\").fontScale ?? 1,\n isEmulator: deviceInfo?.isEmulator ?? false,\n language: getLanguage(),\n timezone: getTimezone(),\n };\n\n const network: NetworkContext = {\n type: mapNetworkType(networkInfo?.type ?? \"unknown\"),\n isConnected: networkInfo?.isConnected ?? false,\n isWifiEnabled: networkInfo?.isWifiEnabled ?? false,\n carrier: networkInfo?.carrier ?? \"unknown\",\n ipAddress: networkInfo?.ipAddress ?? \"unknown\",\n };\n\n return {\n app: this.appContext,\n device,\n network,\n session: this.sessionContext,\n user: this.userContext,\n };\n }\n}\n","import {\n SDKConfig,\n TrackOptions,\n CaptureErrorOptions,\n PulseEvent,\n UserContext,\n EnrichedContext,\n} from \"./types\";\nimport { PulseBoardClient } from \"./client\";\nimport { EventQueue } from \"./queue\";\nimport { AutoCapture } from \"./auto-capture\";\nimport { ContextCollector } from \"./context\";\n\nclass PulseBoardSDK {\n private config: SDKConfig | null = null;\n private client: PulseBoardClient | null = null;\n private queue: EventQueue | null = null;\n private autoCapture: AutoCapture | null = null;\n private contextCollector: ContextCollector | null = null;\n private flushTimer: ReturnType<typeof setInterval> | null = null;\n private initialized: boolean = false;\n\n // ─── Public API ───────────────────────────────────────────────────\n\n init(config: SDKConfig): void {\n if (this.initialized) {\n this.log(\"SDK already initialized — skipping\");\n return;\n }\n\n this.config = {\n autoCapture: true,\n debug: false,\n flushInterval: 5000,\n maxQueueSize: 100,\n ...config,\n };\n\n this.client = new PulseBoardClient(this.config.host, this.config.debug);\n this.queue = new EventQueue(this.config.maxQueueSize);\n this.contextCollector = new ContextCollector(this.config.app ?? {});\n\n this.flushTimer = setInterval(\n () => this.flush(),\n this.config.flushInterval,\n );\n\n if (this.config.autoCapture) {\n this.autoCapture = new AutoCapture((name, error, context) => {\n this.captureError(error, { payload: context });\n });\n this.autoCapture.attach();\n }\n\n this.initialized = true;\n this.log(`Initialized — host: ${this.config.host}`);\n }\n\n async getContext(): Promise<EnrichedContext> {\n this.assertInitialized(\"getContext\");\n return this.contextCollector!.collect();\n }\n\n identify(user: UserContext): void {\n this.assertInitialized(\"identify\");\n this.contextCollector!.identify(user);\n this.log(`User identified: ${JSON.stringify(user)}`);\n }\n\n clearUser(): void {\n this.assertInitialized(\"clearUser\");\n this.contextCollector!.clearUser();\n }\n\n track(name: string, options: TrackOptions = {}): void {\n this.assertInitialized(\"track\");\n this.buildAndEnqueue(\n \"event\",\n name,\n options.payload ?? {},\n options.timestamp,\n );\n }\n\n metric(name: string, value: number, options: TrackOptions = {}): void {\n this.assertInitialized(\"metric\");\n this.buildAndEnqueue(\n \"metric\",\n name,\n { value, ...options.payload },\n options.timestamp,\n );\n }\n\n captureError(error: Error, options: CaptureErrorOptions = {}): void {\n this.assertInitialized(\"captureError\");\n this.buildAndEnqueue(\"error\", error.name ?? \"UnknownError\", {\n message: error.message,\n stack: error.stack,\n ...options.payload,\n });\n }\n\n // ─── Analytics API ────────────────────────────────────────────────\n\n startSession(): void {\n this.assertInitialized(\"startSession\");\n this.contextCollector!.collect()\n .then((context) => {\n this.client!.sendAnalytics(\"session\", {\n apiKey: this.config!.apiKey,\n sessionId: context.session.sessionId,\n startedAt: context.session.startedAt,\n context,\n });\n this.log(`Session started: ${context.session.sessionId}`);\n })\n .catch((err) => {\n this.log(`Failed to start session: ${err}`);\n });\n }\n\n endSession(duration?: number): void {\n this.assertInitialized(\"endSession\");\n this.contextCollector!.collect()\n .then((context) => {\n this.client!.sendAnalytics(\"session\", {\n apiKey: this.config!.apiKey,\n sessionId: context.session.sessionId,\n startedAt: context.session.startedAt,\n endedAt: new Date().toISOString(),\n duration,\n context,\n });\n this.flush();\n this.log(`Session ended: ${context.session.sessionId}`);\n })\n .catch((err) => {\n this.log(`Failed to end session: ${err}`);\n });\n }\n\n trackScreen(screenName: string, loadTime?: number): void {\n this.assertInitialized(\"trackScreen\");\n this.contextCollector!.collect()\n .then((context) => {\n this.client!.sendAnalytics(\"screen-view\", {\n apiKey: this.config!.apiKey,\n screenName,\n loadTime,\n sessionId: context.session.sessionId,\n context,\n });\n this.log(`Screen tracked: ${screenName}`);\n })\n .catch((err) => {\n this.log(`Failed to track screen: ${err}`);\n });\n }\n\n trackApiCall(\n endpoint: string,\n httpMethod: string,\n statusCode: number,\n duration: number,\n payloadSize?: number,\n ): void {\n this.assertInitialized(\"trackApiCall\");\n this.contextCollector!.collect()\n .then((context) => {\n this.client!.sendAnalytics(\"api-call\", {\n apiKey: this.config!.apiKey,\n endpoint,\n httpMethod,\n statusCode,\n duration,\n payloadSize,\n sessionId: context.session.sessionId,\n context,\n });\n this.log(`API call tracked: ${httpMethod} ${endpoint} ${statusCode}`);\n })\n .catch((err) => {\n this.log(`Failed to track API call: ${err}`);\n });\n }\n\n trackCrash(error: Error, isFatal = false): void {\n this.assertInitialized(\"trackCrash\");\n this.contextCollector!.collect()\n .then((context) => {\n this.client!.sendAnalytics(\"crash\", {\n apiKey: this.config!.apiKey,\n errorName: error.name,\n errorMessage: error.message,\n stackTrace: error.stack ?? \"\",\n isFatal,\n sessionId: context.session.sessionId,\n context,\n });\n this.log(`Crash tracked: ${error.name} — fatal: ${isFatal}`);\n })\n .catch((err) => {\n this.log(`Failed to track crash: ${err}`);\n });\n }\n\n // ─── Flush & Destroy ─────────────────────────────────────────────\n\n async flush(): Promise<void> {\n if (!this.queue || this.queue.isEmpty) return;\n if (!this.client) return;\n\n const events = this.queue.dequeue(10);\n this.log(`Flushing ${events.length} event(s)`);\n await this.client.sendBatch(events);\n }\n\n destroy(): void {\n if (this.flushTimer) {\n clearInterval(this.flushTimer);\n this.flushTimer = null;\n }\n\n this.autoCapture?.detach();\n this.queue?.clear();\n\n this.initialized = false;\n this.config = null;\n this.client = null;\n this.queue = null;\n this.contextCollector = null;\n\n this.log(\"SDK destroyed\");\n }\n\n // ─── Private ─────────────────────────────────────────────────────\n\n private buildAndEnqueue(\n type: \"event\" | \"metric\" | \"error\",\n name: string,\n payload: Record<string, unknown>,\n timestamp?: string,\n ): void {\n this.contextCollector!.collect()\n .then((context) => {\n const event: PulseEvent = {\n apiKey: this.config!.apiKey,\n type,\n name,\n payload,\n timestamp: timestamp ?? new Date().toISOString(),\n context,\n };\n\n this.queue!.enqueue(event);\n this.log(`Queued: ${type} — ${name}`);\n\n if (type === \"error\") {\n this.flush();\n }\n })\n .catch((err) => {\n this.log(`Failed to collect context: ${err}`);\n });\n }\n\n private assertInitialized(method: string): void {\n if (!this.initialized) {\n throw new Error(`PulseBoard.${method}() called before PulseBoard.init()`);\n }\n }\n\n private log(message: string): void {\n if (this.config?.debug) {\n console.log(`[PulseBoard] ${message}`);\n }\n }\n}\n\nexport const PulseBoard = new PulseBoardSDK();\n\nexport type {\n SDKConfig,\n TrackOptions,\n CaptureErrorOptions,\n PulseEvent,\n EventType,\n UserContext,\n AppContext,\n DeviceContext,\n NetworkContext,\n SessionContext,\n EnrichedContext,\n} from \"./types\";\n"]}