@triagly/sdk 0.1.2 → 1.4.0-beta.2
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/README.md +1 -24
- package/dist/annotation.d.ts +111 -0
- package/dist/annotation.d.ts.map +1 -0
- package/dist/api.d.ts +2 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +1262 -129
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1262 -129
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/screenshot.d.ts +42 -0
- package/dist/screenshot.d.ts.map +1 -0
- package/dist/types.d.ts +16 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts +6 -0
- package/dist/ui.d.ts.map +1 -1
- package/dist/utils.d.ts +0 -4
- package/dist/utils.d.ts.map +1 -1
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
> JavaScript SDK for Triagly - Turn user feedback into GitHub issues instantly.
|
|
4
4
|
|
|
5
|
-
Lightweight (<10KB gzipped) browser widget that captures user feedback
|
|
5
|
+
Lightweight (<10KB gzipped) browser widget that captures user feedback and automatically creates issues in your tracker.
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
9
|
- 🎨 **Beautiful UI Widget** - Clean, customizable feedback form
|
|
10
|
-
- 📸 **Screenshot Capture** - Automatic page screenshots (with html2canvas)
|
|
11
10
|
- 🐛 **Console Log Capture** - Automatically captures browser console errors and warnings for debugging
|
|
12
11
|
- 🤖 **Bot Protection** - Cloudflare Turnstile integration to prevent spam
|
|
13
12
|
- 🔒 **Secure Authentication** - Uses publishable keys with optional hardened mode
|
|
@@ -34,9 +33,6 @@ yarn add @triagly/sdk
|
|
|
34
33
|
<!-- Include Cloudflare Turnstile for bot protection -->
|
|
35
34
|
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
|
|
36
35
|
|
|
37
|
-
<!-- Include html2canvas for screenshot support (optional) -->
|
|
38
|
-
<script src="https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"></script>
|
|
39
|
-
|
|
40
36
|
<!-- Include Triagly SDK -->
|
|
41
37
|
<script src="https://unpkg.com/@triagly/sdk/dist/index.min.js"></script>
|
|
42
38
|
```
|
|
@@ -419,25 +415,6 @@ try {
|
|
|
419
415
|
|
|
420
416
|
See [Styling Guide](./docs/guides/STYLING.md) for all available variables and more examples.
|
|
421
417
|
|
|
422
|
-
## Screenshot Support
|
|
423
|
-
|
|
424
|
-
To enable screenshot capture, include html2canvas:
|
|
425
|
-
|
|
426
|
-
```html
|
|
427
|
-
<script src="https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"></script>
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
Or install via NPM and import in your bundle:
|
|
431
|
-
|
|
432
|
-
```bash
|
|
433
|
-
npm install html2canvas
|
|
434
|
-
```
|
|
435
|
-
|
|
436
|
-
```typescript
|
|
437
|
-
import html2canvas from 'html2canvas';
|
|
438
|
-
(window as any).html2canvas = html2canvas;
|
|
439
|
-
```
|
|
440
|
-
|
|
441
418
|
## Console Log Capture
|
|
442
419
|
|
|
443
420
|
The SDK automatically captures browser console messages (errors and warnings by default) to help developers debug issues.
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
export type AnnotationTool = 'highlight' | 'arrow' | 'freehand' | 'text';
|
|
2
|
+
export declare class AnnotationEditor {
|
|
3
|
+
private overlay;
|
|
4
|
+
private canvas;
|
|
5
|
+
private ctx;
|
|
6
|
+
private imageData;
|
|
7
|
+
private image;
|
|
8
|
+
private annotations;
|
|
9
|
+
private currentTool;
|
|
10
|
+
private currentColor;
|
|
11
|
+
private strokeWidth;
|
|
12
|
+
private isDrawing;
|
|
13
|
+
private currentAnnotation;
|
|
14
|
+
private onComplete;
|
|
15
|
+
private onCancel;
|
|
16
|
+
private scale;
|
|
17
|
+
private offsetX;
|
|
18
|
+
private offsetY;
|
|
19
|
+
private pendingTextPoint;
|
|
20
|
+
constructor(imageData: string, onComplete: (annotatedImage: string) => void, onCancel: () => void);
|
|
21
|
+
/**
|
|
22
|
+
* Open the annotation editor
|
|
23
|
+
*/
|
|
24
|
+
open(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Load image from data URL
|
|
27
|
+
*/
|
|
28
|
+
private loadImage;
|
|
29
|
+
/**
|
|
30
|
+
* Create the fullscreen overlay UI
|
|
31
|
+
*/
|
|
32
|
+
private createOverlay;
|
|
33
|
+
/**
|
|
34
|
+
* Set up the canvas with correct dimensions
|
|
35
|
+
*/
|
|
36
|
+
private setupCanvas;
|
|
37
|
+
/**
|
|
38
|
+
* Set up event listeners
|
|
39
|
+
*/
|
|
40
|
+
private setupEventListeners;
|
|
41
|
+
private handleKeyDown;
|
|
42
|
+
/**
|
|
43
|
+
* Get canvas coordinates from mouse event
|
|
44
|
+
*/
|
|
45
|
+
private getCanvasPoint;
|
|
46
|
+
/**
|
|
47
|
+
* Handle mouse down - start drawing
|
|
48
|
+
*/
|
|
49
|
+
private handleMouseDown;
|
|
50
|
+
/**
|
|
51
|
+
* Show the text input modal
|
|
52
|
+
*/
|
|
53
|
+
private showTextModal;
|
|
54
|
+
/**
|
|
55
|
+
* Hide the text input modal
|
|
56
|
+
*/
|
|
57
|
+
private hideTextModal;
|
|
58
|
+
/**
|
|
59
|
+
* Confirm text annotation from modal
|
|
60
|
+
*/
|
|
61
|
+
private confirmTextAnnotation;
|
|
62
|
+
/**
|
|
63
|
+
* Handle mouse move - continue drawing
|
|
64
|
+
*/
|
|
65
|
+
private handleMouseMove;
|
|
66
|
+
/**
|
|
67
|
+
* Handle mouse up - finish drawing
|
|
68
|
+
*/
|
|
69
|
+
private handleMouseUp;
|
|
70
|
+
/**
|
|
71
|
+
* Render the canvas with image and annotations
|
|
72
|
+
*/
|
|
73
|
+
private render;
|
|
74
|
+
/**
|
|
75
|
+
* Draw a single annotation
|
|
76
|
+
*/
|
|
77
|
+
private drawAnnotation;
|
|
78
|
+
/**
|
|
79
|
+
* Draw a semi-transparent highlight rectangle
|
|
80
|
+
*/
|
|
81
|
+
private drawHighlight;
|
|
82
|
+
/**
|
|
83
|
+
* Draw an arrow from start to end
|
|
84
|
+
*/
|
|
85
|
+
private drawArrow;
|
|
86
|
+
/**
|
|
87
|
+
* Draw a freehand path
|
|
88
|
+
*/
|
|
89
|
+
private drawFreehand;
|
|
90
|
+
/**
|
|
91
|
+
* Draw text annotation
|
|
92
|
+
*/
|
|
93
|
+
private drawText;
|
|
94
|
+
/**
|
|
95
|
+
* Close the editor
|
|
96
|
+
*/
|
|
97
|
+
private close;
|
|
98
|
+
/**
|
|
99
|
+
* Render the final annotated image at full resolution
|
|
100
|
+
*/
|
|
101
|
+
private renderFinalImage;
|
|
102
|
+
private drawHighlightOnCtx;
|
|
103
|
+
private drawArrowOnCtx;
|
|
104
|
+
private drawFreehandOnCtx;
|
|
105
|
+
private drawTextOnCtx;
|
|
106
|
+
/**
|
|
107
|
+
* Inject annotation editor styles
|
|
108
|
+
*/
|
|
109
|
+
private injectStyles;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=annotation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotation.d.ts","sourceRoot":"","sources":["../src/annotation.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAezE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,GAAG,CAAyC;IACpD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,gBAAgB,CAAsB;gBAG5C,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,EAC5C,QAAQ,EAAE,MAAM,IAAI;IAOtB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B;;OAEG;IACH,OAAO,CAAC,SAAS;IASjB;;OAEG;IACH,OAAO,CAAC,aAAa;IAuErB;;OAEG;IACH,OAAO,CAAC,WAAW;IA4CnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAsF3B,OAAO,CAAC,aAAa,CAInB;IAEF;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,MAAM;IAoBd;;OAEG;IACH,OAAO,CAAC,cAAc;IAyBtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAgBrB;;OAEG;IACH,OAAO,CAAC,SAAS;IA4BjB;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,QAAQ;IA2BhB;;OAEG;IACH,OAAO,CAAC,KAAK;IAkBb;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoDxB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,OAAO,CAAC,YAAY;CA2MrB"}
|
package/dist/api.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { FeedbackData, FeedbackMetadata, FeedbackResponse } from './types';
|
|
2
|
+
export type Environment = 'production' | 'staging';
|
|
2
3
|
export declare class TriaglyAPI {
|
|
3
4
|
private apiUrl;
|
|
4
5
|
private publishableKey;
|
|
5
6
|
private getToken?;
|
|
6
7
|
private turnstileSiteKey;
|
|
7
8
|
private static readonly DEFAULT_TURNSTILE_SITE_KEY;
|
|
8
|
-
constructor(publishableKey: string, apiUrl?: string, getToken?: () => Promise<string>, turnstileSiteKey?: string);
|
|
9
|
+
constructor(publishableKey: string, environment?: Environment, apiUrl?: string, getToken?: () => Promise<string>, turnstileSiteKey?: string);
|
|
9
10
|
/**
|
|
10
11
|
* Get the Turnstile site key
|
|
11
12
|
*/
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAOjB,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;AAEnD,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,CAAwB;IACzC,OAAO,CAAC,gBAAgB,CAAS;IAGjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAA8B;gBAG9E,cAAc,EAAE,MAAM,EACtB,WAAW,GAAE,WAA0B,EACvC,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAChC,gBAAgB,CAAC,EAAE,MAAM;IAU3B;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;YACW,iBAAiB;IA4B/B;;OAEG;IACG,cAAc,CAClB,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,gBAAgB,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,gBAAgB,CAAC;CA2E7B"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,YAAY,EACb,MAAM,SAAS,CAAC;AAKjB,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAA8B;gBAEvC,MAAM,EAAE,aAAa;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,YAAY,EACb,MAAM,SAAS,CAAC;AAKjB,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAA8B;gBAEvC,MAAM,EAAE,aAAa;IAyDjC;;OAEG;IACH,OAAO,CAAC,IAAI;IAkBZ;;OAEG;YACW,YAAY;IAwD1B;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACG,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxE;;OAEG;IACH,OAAO,IAAI,IAAI;CAKhB;AAGD,cAAc,SAAS,CAAC;AAexB,eAAe,OAAO,CAAC"}
|