quick-bug-reporter-react 1.2.0 → 1.3.1

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.
package/dist/index.d.cts CHANGED
@@ -1,153 +1,8 @@
1
+ import { NetworkLogger, BugSessionArtifacts, RecordingStopReason, ReportCaptureMode, BugReporterIntegration, BugClientMetadata, ConsoleLogEntry, CapturedJsError, SubmitProgressCallback, BugSubmitResult, BugTrackerProvider, BugReporterIntegrations, ScreenshotHighlightRegion } from '@quick-bug-reporter/core';
2
+ export { BugClientMetadata, BugReportPayload, BugReporterIntegration, BugReporterIntegrations, BugSessionArtifacts, BugSubmitResult, BugTrackerProvider, CapturedJsError, CloudIntegration, CloudIntegrationOptions, ConsoleCapture, ConsoleLogEntry, DEFAULT_MAX_RECORDING_MS, JiraIntegration, JiraIntegrationOptions, LinearIntegration, LinearIntegrationOptions, NetworkLogEntry, NetworkLogger, RecordingStopReason, ReportCaptureMode, ScreenshotHighlightRegion, SubmitProgressCallback, formatConsoleLogs, formatJsErrors, formatNetworkLogs, toErrorMessage } from '@quick-bug-reporter/core';
1
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
4
  import { ReactNode } from 'react';
3
5
 
4
- type ConsoleLogEntry = {
5
- level: "log" | "info" | "warn" | "error";
6
- timestamp: string;
7
- args: string[];
8
- };
9
- type CapturedJsError = {
10
- timestamp: string;
11
- message: string;
12
- source?: string;
13
- lineno?: number;
14
- colno?: number;
15
- stack?: string;
16
- type: "error" | "unhandledrejection";
17
- };
18
- declare class ConsoleCapture {
19
- private consoleLogs;
20
- private errors;
21
- private originals;
22
- private errorHandler;
23
- private rejectionHandler;
24
- private active;
25
- start(): void;
26
- snapshot(): {
27
- consoleLogs: ConsoleLogEntry[];
28
- jsErrors: CapturedJsError[];
29
- };
30
- stop(): void;
31
- clear(): void;
32
- }
33
-
34
- declare const DEFAULT_MAX_RECORDING_MS: number;
35
- type BugTrackerProvider = "linear" | "jira";
36
- type ReportCaptureMode = "video" | "screenshot";
37
- type RecordingStopReason = "manual" | "time_limit" | "screen_ended";
38
- type NetworkLogEntry = {
39
- method: string;
40
- url: string;
41
- status: number | null;
42
- durationMs: number;
43
- timestamp: string;
44
- };
45
- type ScreenshotHighlightRegion = {
46
- x: number;
47
- y: number;
48
- width: number;
49
- height: number;
50
- };
51
- type BugClientMetadata = {
52
- locale: string | null;
53
- timezone: string | null;
54
- language: string | null;
55
- languages: string[];
56
- platform: string | null;
57
- referrer: string | null;
58
- colorScheme: "light" | "dark" | "unknown";
59
- viewport: {
60
- width: number | null;
61
- height: number | null;
62
- pixelRatio: number | null;
63
- };
64
- screen: {
65
- width: number | null;
66
- height: number | null;
67
- availWidth: number | null;
68
- availHeight: number | null;
69
- colorDepth: number | null;
70
- };
71
- device: {
72
- hardwareConcurrency: number | null;
73
- deviceMemoryGb: number | null;
74
- maxTouchPoints: number | null;
75
- online: boolean | null;
76
- cookieEnabled: boolean | null;
77
- };
78
- connection: {
79
- effectiveType: string | null;
80
- downlinkMbps: number | null;
81
- rttMs: number | null;
82
- saveData: boolean | null;
83
- };
84
- captureMode: ReportCaptureMode;
85
- capture: {
86
- startedAt: string;
87
- stoppedAt: string;
88
- elapsedMs: number;
89
- };
90
- annotation?: {
91
- imageWidth: number;
92
- imageHeight: number;
93
- highlights: ScreenshotHighlightRegion[];
94
- };
95
- };
96
- type BugSessionArtifacts = {
97
- videoBlob: Blob | null;
98
- screenshotBlob: Blob | null;
99
- networkLogs: NetworkLogEntry[];
100
- captureMode: ReportCaptureMode;
101
- startedAt: string;
102
- stoppedAt: string;
103
- elapsedMs: number;
104
- stopReason: RecordingStopReason;
105
- };
106
- type BugReportPayload = {
107
- title: string;
108
- description: string;
109
- videoBlob: Blob | null;
110
- screenshotBlob: Blob | null;
111
- networkLogs: NetworkLogEntry[];
112
- consoleLogs: ConsoleLogEntry[];
113
- jsErrors: CapturedJsError[];
114
- captureMode: ReportCaptureMode;
115
- pageUrl: string;
116
- userAgent: string;
117
- startedAt: string;
118
- stoppedAt: string;
119
- elapsedMs: number;
120
- metadata: BugClientMetadata;
121
- };
122
- type BugSubmitResult = {
123
- provider: BugTrackerProvider;
124
- issueId: string;
125
- issueKey: string;
126
- issueUrl: string | null;
127
- warnings: string[];
128
- };
129
- type SubmitProgressCallback = (message: string) => void;
130
- interface BugReporterIntegration {
131
- readonly provider: BugTrackerProvider;
132
- submit(payload: BugReportPayload, onProgress?: SubmitProgressCallback): Promise<BugSubmitResult>;
133
- }
134
- declare function formatConsoleLogs(logs: ConsoleLogEntry[]): string;
135
- declare function formatJsErrors(errors: CapturedJsError[]): string;
136
- declare function formatNetworkLogs(logs: NetworkLogEntry[]): string;
137
- declare function toErrorMessage(error: unknown): string;
138
- declare function collectClientEnvironmentMetadata(): Omit<BugClientMetadata, "captureMode" | "capture">;
139
-
140
- declare class NetworkLogger {
141
- private originalFetch;
142
- private logs;
143
- private recording;
144
- start(): void;
145
- stop(): NetworkLogEntry[];
146
- clear(): void;
147
- getLogs(): NetworkLogEntry[];
148
- isRecording(): boolean;
149
- }
150
-
151
6
  type ScreenRecorderStartOptions = {
152
7
  onEnded?: () => void;
153
8
  };
@@ -254,65 +109,7 @@ declare class BugReporter {
254
109
  dispose(): Promise<void>;
255
110
  }
256
111
 
257
- type LinearIntegrationOptions = {
258
- apiKey?: string;
259
- teamId?: string;
260
- projectId?: string;
261
- graphqlEndpoint?: string;
262
- submitProxyEndpoint?: string;
263
- createIssueProxyEndpoint?: string;
264
- uploadProxyEndpoint?: string;
265
- fetchImpl?: typeof fetch;
266
- };
267
- declare class LinearIntegration implements BugReporterIntegration {
268
- readonly provider: "linear";
269
- private readonly apiKey?;
270
- private readonly teamId?;
271
- private readonly projectId?;
272
- private readonly graphqlEndpoint;
273
- private readonly submitProxyEndpoint?;
274
- private readonly createIssueProxyEndpoint?;
275
- private readonly uploadProxyEndpoint?;
276
- private readonly fetchImpl;
277
- constructor(options: LinearIntegrationOptions);
278
- submit(payload: BugReportPayload, onProgress?: SubmitProgressCallback): Promise<BugSubmitResult>;
279
- private submitViaProxy;
280
- private createIssue;
281
- private addComment;
282
- private uploadAsset;
283
- private requestUploadTarget;
284
- }
285
-
286
- type JiraIntegrationOptions = {
287
- baseUrl?: string;
288
- email?: string;
289
- apiToken?: string;
290
- projectKey?: string;
291
- issueType?: string;
292
- submitProxyEndpoint?: string;
293
- createIssueProxyEndpoint?: string;
294
- uploadAttachmentProxyEndpoint?: string;
295
- fetchImpl?: typeof fetch;
296
- };
297
- declare class JiraIntegration implements BugReporterIntegration {
298
- readonly provider: "jira";
299
- private readonly baseUrl?;
300
- private readonly email?;
301
- private readonly apiToken?;
302
- private readonly projectKey?;
303
- private readonly issueType;
304
- private readonly submitProxyEndpoint?;
305
- private readonly createIssueProxyEndpoint?;
306
- private readonly uploadAttachmentProxyEndpoint?;
307
- private readonly fetchImpl;
308
- constructor(options: JiraIntegrationOptions);
309
- submit(payload: BugReportPayload, onProgress?: SubmitProgressCallback): Promise<BugSubmitResult>;
310
- private submitViaProxy;
311
- private createIssue;
312
- private uploadAttachment;
313
- }
314
-
315
- type BugReporterIntegrations = Partial<Record<"linear" | "jira", BugReporterIntegration>>;
112
+ declare function collectClientEnvironmentMetadata(): Omit<BugClientMetadata, "captureMode" | "capture">;
316
113
 
317
114
  type BugReporterProviderProps = {
318
115
  children: ReactNode;
@@ -364,4 +161,4 @@ declare function FloatingBugButton(): react_jsx_runtime.JSX.Element | null;
364
161
 
365
162
  declare function BugReporterModal(): react_jsx_runtime.JSX.Element;
366
163
 
367
- export { type BugClientMetadata, type BugReportPayload, BugReporter, type BugReporterIntegration, type BugReporterIntegrations, BugReporterModal, BugReporterProvider, BugSession, type BugSessionArtifacts, type BugSubmitResult, type BugTrackerProvider, type CaptureRegion, type CapturedJsError, ConsoleCapture, type ConsoleLogEntry, DEFAULT_MAX_RECORDING_MS, FloatingBugButton, JiraIntegration, type JiraIntegrationOptions, LinearIntegration, type LinearIntegrationOptions, type NetworkLogEntry, NetworkLogger, type RecordingStopReason, type ReportCaptureMode, ScreenRecorder, ScreenshotCapturer, type ScreenshotHighlightRegion, type SubmitProgressCallback, collectClientEnvironmentMetadata, formatConsoleLogs, formatJsErrors, formatNetworkLogs, toErrorMessage, useBugReporter };
164
+ export { BugReporter, BugReporterModal, BugReporterProvider, BugSession, type CaptureRegion, FloatingBugButton, ScreenRecorder, ScreenshotCapturer, collectClientEnvironmentMetadata, useBugReporter };
package/dist/index.d.ts CHANGED
@@ -1,153 +1,8 @@
1
+ import { NetworkLogger, BugSessionArtifacts, RecordingStopReason, ReportCaptureMode, BugReporterIntegration, BugClientMetadata, ConsoleLogEntry, CapturedJsError, SubmitProgressCallback, BugSubmitResult, BugTrackerProvider, BugReporterIntegrations, ScreenshotHighlightRegion } from '@quick-bug-reporter/core';
2
+ export { BugClientMetadata, BugReportPayload, BugReporterIntegration, BugReporterIntegrations, BugSessionArtifacts, BugSubmitResult, BugTrackerProvider, CapturedJsError, CloudIntegration, CloudIntegrationOptions, ConsoleCapture, ConsoleLogEntry, DEFAULT_MAX_RECORDING_MS, JiraIntegration, JiraIntegrationOptions, LinearIntegration, LinearIntegrationOptions, NetworkLogEntry, NetworkLogger, RecordingStopReason, ReportCaptureMode, ScreenshotHighlightRegion, SubmitProgressCallback, formatConsoleLogs, formatJsErrors, formatNetworkLogs, toErrorMessage } from '@quick-bug-reporter/core';
1
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
4
  import { ReactNode } from 'react';
3
5
 
4
- type ConsoleLogEntry = {
5
- level: "log" | "info" | "warn" | "error";
6
- timestamp: string;
7
- args: string[];
8
- };
9
- type CapturedJsError = {
10
- timestamp: string;
11
- message: string;
12
- source?: string;
13
- lineno?: number;
14
- colno?: number;
15
- stack?: string;
16
- type: "error" | "unhandledrejection";
17
- };
18
- declare class ConsoleCapture {
19
- private consoleLogs;
20
- private errors;
21
- private originals;
22
- private errorHandler;
23
- private rejectionHandler;
24
- private active;
25
- start(): void;
26
- snapshot(): {
27
- consoleLogs: ConsoleLogEntry[];
28
- jsErrors: CapturedJsError[];
29
- };
30
- stop(): void;
31
- clear(): void;
32
- }
33
-
34
- declare const DEFAULT_MAX_RECORDING_MS: number;
35
- type BugTrackerProvider = "linear" | "jira";
36
- type ReportCaptureMode = "video" | "screenshot";
37
- type RecordingStopReason = "manual" | "time_limit" | "screen_ended";
38
- type NetworkLogEntry = {
39
- method: string;
40
- url: string;
41
- status: number | null;
42
- durationMs: number;
43
- timestamp: string;
44
- };
45
- type ScreenshotHighlightRegion = {
46
- x: number;
47
- y: number;
48
- width: number;
49
- height: number;
50
- };
51
- type BugClientMetadata = {
52
- locale: string | null;
53
- timezone: string | null;
54
- language: string | null;
55
- languages: string[];
56
- platform: string | null;
57
- referrer: string | null;
58
- colorScheme: "light" | "dark" | "unknown";
59
- viewport: {
60
- width: number | null;
61
- height: number | null;
62
- pixelRatio: number | null;
63
- };
64
- screen: {
65
- width: number | null;
66
- height: number | null;
67
- availWidth: number | null;
68
- availHeight: number | null;
69
- colorDepth: number | null;
70
- };
71
- device: {
72
- hardwareConcurrency: number | null;
73
- deviceMemoryGb: number | null;
74
- maxTouchPoints: number | null;
75
- online: boolean | null;
76
- cookieEnabled: boolean | null;
77
- };
78
- connection: {
79
- effectiveType: string | null;
80
- downlinkMbps: number | null;
81
- rttMs: number | null;
82
- saveData: boolean | null;
83
- };
84
- captureMode: ReportCaptureMode;
85
- capture: {
86
- startedAt: string;
87
- stoppedAt: string;
88
- elapsedMs: number;
89
- };
90
- annotation?: {
91
- imageWidth: number;
92
- imageHeight: number;
93
- highlights: ScreenshotHighlightRegion[];
94
- };
95
- };
96
- type BugSessionArtifacts = {
97
- videoBlob: Blob | null;
98
- screenshotBlob: Blob | null;
99
- networkLogs: NetworkLogEntry[];
100
- captureMode: ReportCaptureMode;
101
- startedAt: string;
102
- stoppedAt: string;
103
- elapsedMs: number;
104
- stopReason: RecordingStopReason;
105
- };
106
- type BugReportPayload = {
107
- title: string;
108
- description: string;
109
- videoBlob: Blob | null;
110
- screenshotBlob: Blob | null;
111
- networkLogs: NetworkLogEntry[];
112
- consoleLogs: ConsoleLogEntry[];
113
- jsErrors: CapturedJsError[];
114
- captureMode: ReportCaptureMode;
115
- pageUrl: string;
116
- userAgent: string;
117
- startedAt: string;
118
- stoppedAt: string;
119
- elapsedMs: number;
120
- metadata: BugClientMetadata;
121
- };
122
- type BugSubmitResult = {
123
- provider: BugTrackerProvider;
124
- issueId: string;
125
- issueKey: string;
126
- issueUrl: string | null;
127
- warnings: string[];
128
- };
129
- type SubmitProgressCallback = (message: string) => void;
130
- interface BugReporterIntegration {
131
- readonly provider: BugTrackerProvider;
132
- submit(payload: BugReportPayload, onProgress?: SubmitProgressCallback): Promise<BugSubmitResult>;
133
- }
134
- declare function formatConsoleLogs(logs: ConsoleLogEntry[]): string;
135
- declare function formatJsErrors(errors: CapturedJsError[]): string;
136
- declare function formatNetworkLogs(logs: NetworkLogEntry[]): string;
137
- declare function toErrorMessage(error: unknown): string;
138
- declare function collectClientEnvironmentMetadata(): Omit<BugClientMetadata, "captureMode" | "capture">;
139
-
140
- declare class NetworkLogger {
141
- private originalFetch;
142
- private logs;
143
- private recording;
144
- start(): void;
145
- stop(): NetworkLogEntry[];
146
- clear(): void;
147
- getLogs(): NetworkLogEntry[];
148
- isRecording(): boolean;
149
- }
150
-
151
6
  type ScreenRecorderStartOptions = {
152
7
  onEnded?: () => void;
153
8
  };
@@ -254,65 +109,7 @@ declare class BugReporter {
254
109
  dispose(): Promise<void>;
255
110
  }
256
111
 
257
- type LinearIntegrationOptions = {
258
- apiKey?: string;
259
- teamId?: string;
260
- projectId?: string;
261
- graphqlEndpoint?: string;
262
- submitProxyEndpoint?: string;
263
- createIssueProxyEndpoint?: string;
264
- uploadProxyEndpoint?: string;
265
- fetchImpl?: typeof fetch;
266
- };
267
- declare class LinearIntegration implements BugReporterIntegration {
268
- readonly provider: "linear";
269
- private readonly apiKey?;
270
- private readonly teamId?;
271
- private readonly projectId?;
272
- private readonly graphqlEndpoint;
273
- private readonly submitProxyEndpoint?;
274
- private readonly createIssueProxyEndpoint?;
275
- private readonly uploadProxyEndpoint?;
276
- private readonly fetchImpl;
277
- constructor(options: LinearIntegrationOptions);
278
- submit(payload: BugReportPayload, onProgress?: SubmitProgressCallback): Promise<BugSubmitResult>;
279
- private submitViaProxy;
280
- private createIssue;
281
- private addComment;
282
- private uploadAsset;
283
- private requestUploadTarget;
284
- }
285
-
286
- type JiraIntegrationOptions = {
287
- baseUrl?: string;
288
- email?: string;
289
- apiToken?: string;
290
- projectKey?: string;
291
- issueType?: string;
292
- submitProxyEndpoint?: string;
293
- createIssueProxyEndpoint?: string;
294
- uploadAttachmentProxyEndpoint?: string;
295
- fetchImpl?: typeof fetch;
296
- };
297
- declare class JiraIntegration implements BugReporterIntegration {
298
- readonly provider: "jira";
299
- private readonly baseUrl?;
300
- private readonly email?;
301
- private readonly apiToken?;
302
- private readonly projectKey?;
303
- private readonly issueType;
304
- private readonly submitProxyEndpoint?;
305
- private readonly createIssueProxyEndpoint?;
306
- private readonly uploadAttachmentProxyEndpoint?;
307
- private readonly fetchImpl;
308
- constructor(options: JiraIntegrationOptions);
309
- submit(payload: BugReportPayload, onProgress?: SubmitProgressCallback): Promise<BugSubmitResult>;
310
- private submitViaProxy;
311
- private createIssue;
312
- private uploadAttachment;
313
- }
314
-
315
- type BugReporterIntegrations = Partial<Record<"linear" | "jira", BugReporterIntegration>>;
112
+ declare function collectClientEnvironmentMetadata(): Omit<BugClientMetadata, "captureMode" | "capture">;
316
113
 
317
114
  type BugReporterProviderProps = {
318
115
  children: ReactNode;
@@ -364,4 +161,4 @@ declare function FloatingBugButton(): react_jsx_runtime.JSX.Element | null;
364
161
 
365
162
  declare function BugReporterModal(): react_jsx_runtime.JSX.Element;
366
163
 
367
- export { type BugClientMetadata, type BugReportPayload, BugReporter, type BugReporterIntegration, type BugReporterIntegrations, BugReporterModal, BugReporterProvider, BugSession, type BugSessionArtifacts, type BugSubmitResult, type BugTrackerProvider, type CaptureRegion, type CapturedJsError, ConsoleCapture, type ConsoleLogEntry, DEFAULT_MAX_RECORDING_MS, FloatingBugButton, JiraIntegration, type JiraIntegrationOptions, LinearIntegration, type LinearIntegrationOptions, type NetworkLogEntry, NetworkLogger, type RecordingStopReason, type ReportCaptureMode, ScreenRecorder, ScreenshotCapturer, type ScreenshotHighlightRegion, type SubmitProgressCallback, collectClientEnvironmentMetadata, formatConsoleLogs, formatJsErrors, formatNetworkLogs, toErrorMessage, useBugReporter };
164
+ export { BugReporter, BugReporterModal, BugReporterProvider, BugSession, type CaptureRegion, FloatingBugButton, ScreenRecorder, ScreenshotCapturer, collectClientEnvironmentMetadata, useBugReporter };