@jaak.ai/stamps 2.0.0 → 2.1.0-dev.10

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.
Files changed (71) hide show
  1. package/README.md +11 -1
  2. package/dist/cjs/app-globals-V2Kpy_OQ.js +8 -0
  3. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -0
  4. package/dist/cjs/{index-BfhtOB0D.js → index-Ga0t6BMe.js} +176 -119
  5. package/dist/cjs/index-Ga0t6BMe.js.map +1 -0
  6. package/dist/cjs/jaak-stamps-webcomponent.cjs.js +5 -4
  7. package/dist/cjs/jaak-stamps-webcomponent.cjs.js.map +1 -1
  8. package/dist/cjs/jaak-stamps.cjs.entry.js +1174 -655
  9. package/dist/cjs/jaak-stamps.cjs.entry.js.map +1 -1
  10. package/dist/cjs/jaak-stamps.entry.cjs.js.map +1 -1
  11. package/dist/cjs/loader.cjs.js +4 -3
  12. package/dist/cjs/loader.cjs.js.map +1 -1
  13. package/dist/collection/collection-manifest.json +1 -1
  14. package/dist/collection/components/my-component/my-component.css +224 -13
  15. package/dist/collection/components/my-component/my-component.js +950 -281
  16. package/dist/collection/components/my-component/my-component.js.map +1 -1
  17. package/dist/collection/services/CameraService.js +156 -344
  18. package/dist/collection/services/CameraService.js.map +1 -1
  19. package/dist/collection/services/DetectionService.js +100 -42
  20. package/dist/collection/services/DetectionService.js.map +1 -1
  21. package/dist/collection/services/EventBusService.js +1 -1
  22. package/dist/collection/services/EventBusService.js.map +1 -1
  23. package/dist/collection/services/ServiceContainer.js +4 -13
  24. package/dist/collection/services/ServiceContainer.js.map +1 -1
  25. package/dist/collection/services/interfaces/ICameraService.js.map +1 -1
  26. package/dist/collection/types/component-types.js.map +1 -1
  27. package/dist/components/index.js +165 -113
  28. package/dist/components/index.js.map +1 -1
  29. package/dist/components/jaak-stamps.js +1182 -658
  30. package/dist/components/jaak-stamps.js.map +1 -1
  31. package/dist/esm/app-globals-DQuL1Twl.js +6 -0
  32. package/dist/esm/app-globals-DQuL1Twl.js.map +1 -0
  33. package/dist/esm/{index-BP1Q4KOg.js → index-Drbzcuq-.js} +177 -119
  34. package/dist/esm/index-Drbzcuq-.js.map +1 -0
  35. package/dist/esm/jaak-stamps-webcomponent.js +5 -4
  36. package/dist/esm/jaak-stamps-webcomponent.js.map +1 -1
  37. package/dist/esm/jaak-stamps.entry.js +1174 -655
  38. package/dist/esm/jaak-stamps.entry.js.map +1 -1
  39. package/dist/esm/loader.js +4 -3
  40. package/dist/esm/loader.js.map +1 -1
  41. package/dist/jaak-stamps-webcomponent/jaak-stamps-webcomponent.esm.js +1 -1
  42. package/dist/jaak-stamps-webcomponent/jaak-stamps-webcomponent.esm.js.map +1 -1
  43. package/dist/jaak-stamps-webcomponent/jaak-stamps.entry.esm.js.map +1 -1
  44. package/dist/jaak-stamps-webcomponent/loader.esm.js.map +1 -1
  45. package/dist/jaak-stamps-webcomponent/p-5f7301f1.entry.js +2 -0
  46. package/dist/jaak-stamps-webcomponent/p-5f7301f1.entry.js.map +1 -0
  47. package/dist/jaak-stamps-webcomponent/p-DQuL1Twl.js +2 -0
  48. package/dist/jaak-stamps-webcomponent/p-DQuL1Twl.js.map +1 -0
  49. package/dist/jaak-stamps-webcomponent/p-Drbzcuq-.js +3 -0
  50. package/dist/jaak-stamps-webcomponent/p-Drbzcuq-.js.map +1 -0
  51. package/dist/types/components/my-component/my-component.d.ts +87 -17
  52. package/dist/types/components.d.ts +14 -8
  53. package/dist/types/services/CameraService.d.ts +12 -14
  54. package/dist/types/services/DetectionService.d.ts +10 -3
  55. package/dist/types/services/ServiceContainer.d.ts +1 -2
  56. package/dist/types/services/interfaces/ICameraService.d.ts +3 -12
  57. package/dist/types/stencil-public-runtime.d.ts +12 -5
  58. package/dist/types/types/component-types.d.ts +3 -0
  59. package/package.json +4 -2
  60. package/dist/cjs/index-BfhtOB0D.js.map +0 -1
  61. package/dist/collection/services/LoggerService.js +0 -40
  62. package/dist/collection/services/LoggerService.js.map +0 -1
  63. package/dist/collection/services/interfaces/ILogger.js +0 -2
  64. package/dist/collection/services/interfaces/ILogger.js.map +0 -1
  65. package/dist/esm/index-BP1Q4KOg.js.map +0 -1
  66. package/dist/jaak-stamps-webcomponent/p-2264b5b4.entry.js +0 -2
  67. package/dist/jaak-stamps-webcomponent/p-2264b5b4.entry.js.map +0 -1
  68. package/dist/jaak-stamps-webcomponent/p-BP1Q4KOg.js +0 -3
  69. package/dist/jaak-stamps-webcomponent/p-BP1Q4KOg.js.map +0 -1
  70. package/dist/types/services/LoggerService.d.ts +0 -12
  71. package/dist/types/services/interfaces/ILogger.d.ts +0 -8
@@ -7,6 +7,7 @@ export declare class JaakStamps {
7
7
  maskSize: number;
8
8
  cropMargin: number;
9
9
  useDocumentClassification: boolean;
10
+ useDocumentDetector: boolean;
10
11
  preferredCamera: 'auto' | 'front' | 'back';
11
12
  captureDelay: number;
12
13
  enableBackDocumentTimer: boolean;
@@ -31,6 +32,18 @@ export declare class JaakStamps {
31
32
  showCameraSelector: boolean;
32
33
  isSwitchingCamera: boolean;
33
34
  hasDocumentDetected: boolean;
35
+ cameraInfoWithAutofocus: {
36
+ availableCameras: Array<{
37
+ id: string;
38
+ label: string;
39
+ selected: boolean;
40
+ hasAutofocus: boolean;
41
+ }>;
42
+ selectedCameraId: string | null;
43
+ deviceType: string;
44
+ isMultipleCamerasAvailable: boolean;
45
+ preferredFacing: 'environment' | 'user' | null;
46
+ };
34
47
  currentStatus: {
35
48
  message: string;
36
49
  description?: string;
@@ -48,8 +61,12 @@ export declare class JaakStamps {
48
61
  detectionRate: number;
49
62
  };
50
63
  backDocumentTimerRemaining: number;
64
+ showManualCaptureButton: boolean;
65
+ performanceDegradedMode: boolean;
66
+ showPerformanceMessage: boolean;
67
+ captureStateVersion: number;
68
+ processingButton: 'capture-front' | 'capture-back' | 'skip-back' | null;
51
69
  private serviceContainer;
52
- private logger;
53
70
  private eventBus;
54
71
  private stateManager;
55
72
  private cameraService;
@@ -64,14 +81,25 @@ export declare class JaakStamps {
64
81
  private alignmentStartTime?;
65
82
  private alignmentTimer?;
66
83
  private backDocumentTimer?;
84
+ private orientationTimer?;
67
85
  private performanceMetrics;
68
86
  private performanceUpdateInterval?;
69
87
  private frameSkipCounter;
70
- private readonly FRAME_SKIP;
88
+ private readonly BASE_FRAME_SKIP;
89
+ private readonly MAX_FRAME_SKIP;
71
90
  private consecutiveFailures;
72
91
  private readonly MAX_FAILURES;
73
92
  private lastInferenceTime;
74
93
  private readonly MIN_INFERENCE_INTERVAL;
94
+ private performanceHistory;
95
+ private readonly PERFORMANCE_HISTORY_SIZE;
96
+ private readonly PERFORMANCE_THRESHOLD_MS;
97
+ private readonly SLOW_FRAMES_TO_TRIGGER;
98
+ private slowFrameCount;
99
+ private processedFramesCount;
100
+ private hasAutoSwitchedToManual;
101
+ private canvasPool;
102
+ private readonly MAX_CANVAS_POOL_SIZE;
75
103
  componentDidLoad(): Promise<void>;
76
104
  private initializeServices;
77
105
  private setupEventListeners;
@@ -81,16 +109,44 @@ export declare class JaakStamps {
81
109
  private finalizeInitialization;
82
110
  private updateStatus;
83
111
  private emitReadyEvent;
112
+ private checkCameraPermissions;
84
113
  private handleStateChange;
85
114
  private initializeResizeObserver;
86
115
  private handleResize;
116
+ private triggerRerender;
117
+ private getGuideText;
87
118
  private updateMaskDimensions;
119
+ private isComponentReady;
88
120
  getCapturedImages(): Promise<CapturedImagesResponse>;
89
121
  isProcessCompleted(): Promise<boolean>;
90
- startCapture(): Promise<void>;
91
- stopCapture(): Promise<void>;
92
- resetCapture(): Promise<void>;
93
- skipBackCapture(): Promise<void>;
122
+ startCapture(): Promise<{
123
+ success: boolean;
124
+ error?: undefined;
125
+ } | {
126
+ success: boolean;
127
+ error: any;
128
+ }>;
129
+ stopCapture(): Promise<{
130
+ success: boolean;
131
+ error?: undefined;
132
+ } | {
133
+ success: boolean;
134
+ error: any;
135
+ }>;
136
+ resetCapture(): Promise<{
137
+ success: boolean;
138
+ error?: undefined;
139
+ } | {
140
+ success: boolean;
141
+ error: any;
142
+ }>;
143
+ skipBackCapture(): Promise<{
144
+ success: boolean;
145
+ error?: undefined;
146
+ } | {
147
+ success: boolean;
148
+ error: any;
149
+ }>;
94
150
  getStatus(): Promise<StatusResponse>;
95
151
  preloadModel(): Promise<{
96
152
  success: boolean;
@@ -106,23 +162,24 @@ export declare class JaakStamps {
106
162
  success: boolean;
107
163
  selectedCamera: string;
108
164
  availableCameras: number;
165
+ error?: undefined;
166
+ } | {
167
+ success: boolean;
168
+ error: any;
169
+ selectedCamera: any;
170
+ availableCameras: number;
109
171
  }>;
110
172
  setCaptureDelay(delay: number): Promise<{
111
173
  success: boolean;
174
+ error: string;
112
175
  captureDelay: number;
113
- }>;
114
- getCaptureDelay(): Promise<number>;
115
- setTorchEnabled(enabled: boolean): Promise<{
116
- success: boolean;
117
- enabled: boolean;
118
- }>;
119
- focusAtPoint(x: number, y: number): Promise<{
176
+ } | {
120
177
  success: boolean;
121
- coordinates: {
122
- x: number;
123
- y: number;
124
- };
178
+ captureDelay: number;
179
+ error?: undefined;
125
180
  }>;
181
+ getCaptureDelay(): Promise<number>;
182
+ private checkDeviceCapabilities;
126
183
  private startDetection;
127
184
  private initializeVideoStream;
128
185
  private detectFrame;
@@ -131,13 +188,22 @@ export declare class JaakStamps {
131
188
  render(): any;
132
189
  private updateDetectionBoxes;
133
190
  private updateMaskColor;
191
+ private takeManualScreenshot;
192
+ private takeScreenshotWithMaskCoordinates;
134
193
  private takeScreenshot;
135
194
  private triggerCaptureAnimation;
195
+ private switchToManualMode;
196
+ private switchToManualModeWithWarning;
197
+ private continueWithCameraSetup;
198
+ private switchToManualModeWithError;
199
+ private stopPerformanceMonitoring;
200
+ private releaseOnnxResources;
136
201
  private completeProcess;
137
202
  private stopDetection;
138
203
  private startBackDocumentTimer;
139
204
  private clearBackDocumentTimer;
140
205
  private toggleCameraSelector;
206
+ private updateCameraInfoWithAutofocus;
141
207
  private handleCameraSwitch;
142
208
  private resetDetection;
143
209
  private exitSession;
@@ -145,4 +211,8 @@ export declare class JaakStamps {
145
211
  private updatePerformanceMetrics;
146
212
  private recordOnnxPerformance;
147
213
  private recordFrameProcessing;
214
+ private getAdaptiveFrameSkip;
215
+ private resetMaskToWhite;
216
+ private getPooledCanvas;
217
+ private returnCanvasToPool;
148
218
  }
@@ -33,7 +33,6 @@ export namespace Components {
33
33
  * @default false
34
34
  */
35
35
  "enableBackDocumentTimer": boolean;
36
- "focusAtPoint": (x: number, y: number) => Promise<{ success: boolean; coordinates: { x: number; y: number; }; }>;
37
36
  "getCameraInfo": () => Promise<CameraInfoResponse>;
38
37
  "getCaptureDelay": () => Promise<number>;
39
38
  "getCapturedImages": () => Promise<CapturedImagesResponse>;
@@ -48,17 +47,20 @@ export namespace Components {
48
47
  */
49
48
  "preferredCamera": 'auto' | 'front' | 'back';
50
49
  "preloadModel": () => Promise<{ success: boolean; message: string; error?: undefined; } | { success: boolean; error: any; message?: undefined; }>;
51
- "resetCapture": () => Promise<void>;
52
- "setCaptureDelay": (delay: number) => Promise<{ success: boolean; captureDelay: number; }>;
53
- "setPreferredCamera": (camera: "auto" | "front" | "back") => Promise<{ success: boolean; selectedCamera: string; availableCameras: number; }>;
54
- "setTorchEnabled": (enabled: boolean) => Promise<{ success: boolean; enabled: boolean; }>;
55
- "skipBackCapture": () => Promise<void>;
56
- "startCapture": () => Promise<void>;
57
- "stopCapture": () => Promise<void>;
50
+ "resetCapture": () => Promise<{ success: boolean; error?: undefined; } | { success: boolean; error: any; }>;
51
+ "setCaptureDelay": (delay: number) => Promise<{ success: boolean; error: string; captureDelay: number; } | { success: boolean; captureDelay: number; error?: undefined; }>;
52
+ "setPreferredCamera": (camera: "auto" | "front" | "back") => Promise<{ success: boolean; selectedCamera: string; availableCameras: number; error?: undefined; } | { success: boolean; error: any; selectedCamera: any; availableCameras: number; }>;
53
+ "skipBackCapture": () => Promise<{ success: boolean; error?: undefined; } | { success: boolean; error: any; }>;
54
+ "startCapture": () => Promise<{ success: boolean; error?: undefined; } | { success: boolean; error: any; }>;
55
+ "stopCapture": () => Promise<{ success: boolean; error?: undefined; } | { success: boolean; error: any; }>;
58
56
  /**
59
57
  * @default false
60
58
  */
61
59
  "useDocumentClassification": boolean;
60
+ /**
61
+ * @default true
62
+ */
63
+ "useDocumentDetector": boolean;
62
64
  }
63
65
  }
64
66
  export interface JaakStampsCustomEvent<T> extends CustomEvent<T> {
@@ -128,6 +130,10 @@ declare namespace LocalJSX {
128
130
  * @default false
129
131
  */
130
132
  "useDocumentClassification"?: boolean;
133
+ /**
134
+ * @default true
135
+ */
136
+ "useDocumentDetector"?: boolean;
131
137
  }
132
138
  interface IntrinsicElements {
133
139
  "jaak-stamps": JaakStamps;
@@ -1,16 +1,18 @@
1
1
  import { ICameraService, CameraInfo } from './interfaces/ICameraService';
2
- import { ILogger } from './interfaces/ILogger';
3
2
  import { IEventBus } from './interfaces/IEventBus';
4
3
  export declare class CameraService implements ICameraService {
5
- private logger;
6
4
  private eventBus;
7
5
  private availableCameras;
8
6
  private selectedCameraId;
9
7
  private deviceType;
10
8
  private preferredCameraFacing;
11
9
  private preferredCamera;
12
- private isManuallySelected;
13
- constructor(logger: ILogger, eventBus: IEventBus, preferredCamera?: 'auto' | 'front' | 'back');
10
+ private static cameraCapabilitiesCache;
11
+ private static deviceEnumerationCache;
12
+ private static readonly CACHE_DURATION;
13
+ private currentStreamPromise?;
14
+ private lastStreamConstraints?;
15
+ constructor(eventBus: IEventBus, preferredCamera?: 'auto' | 'front' | 'back');
14
16
  detectDeviceType(): Promise<'mobile' | 'desktop' | 'tablet'>;
15
17
  enumerateDevices(): Promise<MediaDeviceInfo[]>;
16
18
  getAvailableCameras(): MediaDeviceInfo[];
@@ -20,28 +22,24 @@ export declare class CameraService implements ICameraService {
20
22
  getPreferredFacing(): 'environment' | 'user' | null;
21
23
  setupCamera(constraints?: MediaTrackConstraints): Promise<MediaStream>;
22
24
  switchCamera(cameraId: string): Promise<void>;
23
- flipToNextCamera(): Promise<void>;
24
- savePreference(): void;
25
- loadPreference(): void;
26
25
  isRearCamera(stream: MediaStream): boolean;
27
- getCameraInfo(): {
26
+ getCameraInfo(): Promise<{
28
27
  availableCameras: CameraInfo[];
29
28
  selectedCameraId: string | null;
30
29
  deviceType: string;
31
30
  isMultipleCamerasAvailable: boolean;
32
31
  preferredFacing: 'environment' | 'user' | null;
33
- };
32
+ }>;
34
33
  private checkCameraPermission;
35
34
  private handleCameraPermissionError;
36
35
  private setInitialCameraPreference;
36
+ private checkCameraAutofocus;
37
37
  private selectFrontCamera;
38
38
  private selectBackCamera;
39
39
  private selectAutoCamera;
40
40
  private updatePreferredFacing;
41
41
  private getMaxResolution;
42
- private applyAdvancedCameraSettings;
43
- private applyBasicFocusSettings;
44
- private getCapabilitiesSummary;
45
- setTorchEnabled(enabled: boolean, stream?: MediaStream): Promise<boolean>;
46
- focusAtPoint(x: number, y: number, stream?: MediaStream): Promise<boolean>;
42
+ private constraintsEqual;
43
+ static clearCaches(): void;
44
+ invalidateDeviceCache(): void;
47
45
  }
@@ -1,9 +1,8 @@
1
1
  import { IDetectionService, DetectionBox, SideAlignment, ClassificationResult } from './interfaces/IDetectionService';
2
- import { ILogger } from './interfaces/ILogger';
3
2
  export declare class DetectionService implements IDetectionService {
4
- private logger;
5
3
  private debug;
6
4
  private useDocumentClassification;
5
+ private useDocumentDetector;
7
6
  private session?;
8
7
  private mobileNetSession?;
9
8
  private mobileNetClassMap?;
@@ -17,7 +16,9 @@ export declare class DetectionService implements IDetectionService {
17
16
  private preprocessCanvas?;
18
17
  private preprocessCtx?;
19
18
  private captureCanvas?;
20
- constructor(logger: ILogger, debug?: boolean, useDocumentClassification?: boolean);
19
+ private static canvasPool;
20
+ private static readonly MAX_POOL_SIZE;
21
+ constructor(debug?: boolean, useDocumentClassification?: boolean, useDocumentDetector?: boolean);
21
22
  loadModel(): Promise<void>;
22
23
  loadClassificationModel(): Promise<void>;
23
24
  isModelLoaded(): boolean;
@@ -32,4 +33,10 @@ export declare class DetectionService implements IDetectionService {
32
33
  private cleanupCanvasPool;
33
34
  private float32ToFloat16;
34
35
  private preprocessMobileNet;
36
+ private getCanvas;
37
+ private returnCanvas;
38
+ static clearCanvasPools(): void;
39
+ getPoolStats(): {
40
+ [key: string]: number;
41
+ };
35
42
  }
@@ -1,4 +1,3 @@
1
- import { ILogger } from './interfaces/ILogger';
2
1
  import { ICameraService } from './interfaces/ICameraService';
3
2
  import { IDetectionService } from './interfaces/IDetectionService';
4
3
  import { IStateManager } from './interfaces/IStateManager';
@@ -9,6 +8,7 @@ export interface ComponentConfig {
9
8
  maskSize: number;
10
9
  cropMargin: number;
11
10
  useDocumentClassification: boolean;
11
+ useDocumentDetector: boolean;
12
12
  preferredCamera: 'auto' | 'front' | 'back';
13
13
  captureDelay: number;
14
14
  }
@@ -17,7 +17,6 @@ export declare class ServiceContainer {
17
17
  constructor(config: ComponentConfig);
18
18
  private initializeServices;
19
19
  get<T>(serviceName: string): T;
20
- getLogger(): ILogger;
21
20
  getEventBus(): IEventBus;
22
21
  getStateManager(): IStateManager;
23
22
  getCameraService(): ICameraService;
@@ -2,11 +2,7 @@ export interface CameraInfo {
2
2
  id: string;
3
3
  label: string;
4
4
  selected: boolean;
5
- }
6
- export interface CameraPreference {
7
- cameraId: string;
8
- facing: 'environment' | 'user' | null;
9
- timestamp: number;
5
+ hasAutofocus: boolean;
10
6
  }
11
7
  export interface ICameraService {
12
8
  detectDeviceType(): Promise<'mobile' | 'desktop' | 'tablet'>;
@@ -18,17 +14,12 @@ export interface ICameraService {
18
14
  getPreferredFacing(): 'environment' | 'user' | null;
19
15
  setupCamera(constraints?: MediaTrackConstraints): Promise<MediaStream>;
20
16
  switchCamera(cameraId: string): Promise<void>;
21
- flipToNextCamera(): Promise<void>;
22
- savePreference(): void;
23
- loadPreference(): void;
24
17
  isRearCamera(stream: MediaStream): boolean;
25
- setTorchEnabled(enabled: boolean, stream?: MediaStream): Promise<boolean>;
26
- focusAtPoint(x: number, y: number, stream?: MediaStream): Promise<boolean>;
27
- getCameraInfo(): {
18
+ getCameraInfo(): Promise<{
28
19
  availableCameras: CameraInfo[];
29
20
  selectedCameraId: string | null;
30
21
  deviceType: string;
31
22
  isMultipleCamerasAvailable: boolean;
32
23
  preferredFacing: 'environment' | 'user' | null;
33
- };
24
+ }>;
34
25
  }
@@ -846,7 +846,7 @@ export declare namespace JSXBase {
846
846
  interface DetailsHTMLAttributes<T> extends HTMLAttributes<T> {
847
847
  open?: boolean;
848
848
  name?: string;
849
- onToggle?: (event: Event) => void;
849
+ onToggle?: (event: ToggleEvent) => void;
850
850
  }
851
851
  interface DelHTMLAttributes<T> extends HTMLAttributes<T> {
852
852
  cite?: string;
@@ -1552,6 +1552,13 @@ export declare namespace JSXBase {
1552
1552
  z?: number | string;
1553
1553
  zoomAndPan?: string;
1554
1554
  }
1555
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ToggleEvent) */
1556
+ interface ToggleEvent extends Event {
1557
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ToggleEvent/newState) */
1558
+ readonly newState: string;
1559
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ToggleEvent/oldState) */
1560
+ readonly oldState: string;
1561
+ }
1555
1562
  interface DOMAttributes<T> extends JSXAttributes<T> {
1556
1563
  slot?: string;
1557
1564
  part?: string;
@@ -1568,6 +1575,10 @@ export declare namespace JSXBase {
1568
1575
  onCompositionstartCapture?: (event: CompositionEvent) => void;
1569
1576
  onCompositionupdate?: (event: CompositionEvent) => void;
1570
1577
  onCompositionupdateCapture?: (event: CompositionEvent) => void;
1578
+ onBeforeToggle?: (event: ToggleEvent) => void;
1579
+ onBeforeToggleCapture?: (event: ToggleEvent) => void;
1580
+ onToggle?: (event: ToggleEvent) => void;
1581
+ onToggleCapture?: (event: ToggleEvent) => void;
1571
1582
  onFocus?: (event: FocusEvent) => void;
1572
1583
  onFocusCapture?: (event: FocusEvent) => void;
1573
1584
  onFocusin?: (event: FocusEvent) => void;
@@ -1586,10 +1597,6 @@ export declare namespace JSXBase {
1586
1597
  onSubmitCapture?: (event: Event) => void;
1587
1598
  onInvalid?: (event: Event) => void;
1588
1599
  onInvalidCapture?: (event: Event) => void;
1589
- onBeforeToggle?: (event: Event) => void;
1590
- onBeforeToggleCapture?: (event: Event) => void;
1591
- onToggle?: (event: Event) => void;
1592
- onToggleCapture?: (event: Event) => void;
1593
1600
  onLoad?: (event: Event) => void;
1594
1601
  onLoadCapture?: (event: Event) => void;
1595
1602
  onError?: (event: Event) => void;
@@ -11,6 +11,7 @@ export interface CameraInfoResponse {
11
11
  deviceType: string;
12
12
  isMultipleCamerasAvailable: boolean;
13
13
  preferredFacing: 'environment' | 'user' | null;
14
+ error?: string;
14
15
  }
15
16
  export interface CapturedImagesResponse {
16
17
  front: {
@@ -33,4 +34,6 @@ export interface StatusResponse {
33
34
  hasImages: boolean;
34
35
  isProcessCompleted: boolean;
35
36
  isModelPreloaded: boolean;
37
+ componentStatus?: 'initializing' | 'loading' | 'ready' | 'error';
38
+ componentMessage?: string;
36
39
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaak.ai/stamps",
3
- "version": "2.0.0",
3
+ "version": "2.1.0-dev.10",
4
4
  "description": "Jaak Document Identifier",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -34,6 +34,7 @@
34
34
  "scripts": {
35
35
  "build": "stencil build",
36
36
  "start": "stencil build --dev --watch --serve",
37
+ "start:demo": "http-server src -p 8080 -o /demo.html",
37
38
  "test": "stencil test --spec --e2e",
38
39
  "test.watch": "stencil test --spec --e2e --watchAll",
39
40
  "generate": "stencil generate"
@@ -42,6 +43,7 @@
42
43
  "@stencil/core": "^4.27.1",
43
44
  "@types/jest": "^29.5.14",
44
45
  "@types/node": "^22.13.5",
46
+ "http-server": "^14.1.1",
45
47
  "jest": "^29.7.0",
46
48
  "jest-cli": "^29.7.0",
47
49
  "puppeteer": "^24.3.0"
@@ -51,7 +53,7 @@
51
53
  "@semantic-release/changelog": "^6.0.3",
52
54
  "@semantic-release/commit-analyzer": "^13.0.1",
53
55
  "@semantic-release/git": "^10.0.1",
54
- "@semantic-release/github": "^11.0.3",
56
+ "@semantic-release/github": "^11.0.4",
55
57
  "@semantic-release/npm": "^12.0.2",
56
58
  "@semantic-release/release-notes-generator": "^14.0.3",
57
59
  "semantic-release": "^24.2.7"