@jaak.ai/stamps 2.1.0 → 2.2.0-dev.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.
Files changed (57) hide show
  1. package/README.md +42 -9
  2. package/dist/cjs/{index-Ga0t6BMe.js → index-D6NBn_qu.js} +30 -5
  3. package/dist/cjs/index-D6NBn_qu.js.map +1 -0
  4. package/dist/cjs/jaak-stamps-webcomponent.cjs.js +2 -2
  5. package/dist/cjs/jaak-stamps.cjs.entry.js +20082 -11
  6. package/dist/cjs/jaak-stamps.cjs.entry.js.map +1 -1
  7. package/dist/cjs/jaak-stamps.entry.cjs.js.map +1 -1
  8. package/dist/cjs/loader.cjs.js +2 -2
  9. package/dist/collection/components/my-component/my-component.css +82 -2
  10. package/dist/collection/components/my-component/my-component.js +475 -9
  11. package/dist/collection/components/my-component/my-component.js.map +1 -1
  12. package/dist/collection/services/LicenseValidationService.js +111 -0
  13. package/dist/collection/services/LicenseValidationService.js.map +1 -0
  14. package/dist/collection/services/MetricsService.js +350 -0
  15. package/dist/collection/services/MetricsService.js.map +1 -0
  16. package/dist/collection/services/ServiceContainer.js +66 -1
  17. package/dist/collection/services/ServiceContainer.js.map +1 -1
  18. package/dist/collection/services/TracingService.js +442 -0
  19. package/dist/collection/services/TracingService.js.map +1 -0
  20. package/dist/collection/services/interfaces/ILicenseValidationService.js +2 -0
  21. package/dist/collection/services/interfaces/ILicenseValidationService.js.map +1 -0
  22. package/dist/collection/services/interfaces/IMetricsService.js +2 -0
  23. package/dist/collection/services/interfaces/IMetricsService.js.map +1 -0
  24. package/dist/collection/services/interfaces/ITracingService.js +2 -0
  25. package/dist/collection/services/interfaces/ITracingService.js.map +1 -0
  26. package/dist/components/index.js +28 -3
  27. package/dist/components/index.js.map +1 -1
  28. package/dist/components/jaak-stamps.js +20096 -10
  29. package/dist/components/jaak-stamps.js.map +1 -1
  30. package/dist/esm/{index-Drbzcuq-.js → index-BCfAsrzL.js} +30 -5
  31. package/dist/esm/index-BCfAsrzL.js.map +1 -0
  32. package/dist/esm/jaak-stamps-webcomponent.js +3 -3
  33. package/dist/esm/jaak-stamps.entry.js +20082 -11
  34. package/dist/esm/jaak-stamps.entry.js.map +1 -1
  35. package/dist/esm/loader.js +3 -3
  36. package/dist/jaak-stamps-webcomponent/jaak-stamps-webcomponent.esm.js +1 -1
  37. package/dist/jaak-stamps-webcomponent/jaak-stamps.entry.esm.js.map +1 -1
  38. package/dist/jaak-stamps-webcomponent/p-8c49893d.entry.js +7 -0
  39. package/dist/jaak-stamps-webcomponent/p-8c49893d.entry.js.map +1 -0
  40. package/dist/jaak-stamps-webcomponent/p-BCfAsrzL.js +3 -0
  41. package/dist/jaak-stamps-webcomponent/p-BCfAsrzL.js.map +1 -0
  42. package/dist/types/components/my-component/my-component.d.ts +23 -0
  43. package/dist/types/components.d.ts +76 -0
  44. package/dist/types/services/LicenseValidationService.d.ts +59 -0
  45. package/dist/types/services/MetricsService.d.ts +74 -0
  46. package/dist/types/services/ServiceContainer.d.ts +14 -1
  47. package/dist/types/services/TracingService.d.ts +67 -0
  48. package/dist/types/services/interfaces/ILicenseValidationService.d.ts +4 -0
  49. package/dist/types/services/interfaces/IMetricsService.d.ts +70 -0
  50. package/dist/types/services/interfaces/ITracingService.d.ts +59 -0
  51. package/package.json +18 -2
  52. package/dist/cjs/index-Ga0t6BMe.js.map +0 -1
  53. package/dist/esm/index-Drbzcuq-.js.map +0 -1
  54. package/dist/jaak-stamps-webcomponent/p-Drbzcuq-.js +0 -3
  55. package/dist/jaak-stamps-webcomponent/p-Drbzcuq-.js.map +0 -1
  56. package/dist/jaak-stamps-webcomponent/p-c06e5d7b.entry.js +0 -2
  57. package/dist/jaak-stamps-webcomponent/p-c06e5d7b.entry.js.map +0 -1
package/README.md CHANGED
@@ -58,6 +58,10 @@ yarn add @jaak.ai/stamps
58
58
 
59
59
  | Property | Type | Default | Description |
60
60
  |----------|------|---------|-------------|
61
+ | `license` | `string` | `undefined` | License key for component authentication (required) |
62
+ | `environment` | `'dev' \| 'qa' \| 'staging' \| 'prod'` | `'prod'` | API environment for license validation |
63
+ | `trace-id` | `string` | `undefined` | Optional trace ID for request tracing (auto-generated if not provided) |
64
+ | `app-id` | `string` | `'jaak-stamps-web'` | Application identifier for analytics and tracking |
61
65
  | `debug` | `boolean` | `false` | Enable debug mode with additional logging and overlays |
62
66
  | `mask-size` | `number` | `90` | Size percentage of the document detection mask |
63
67
  | `alignment-tolerance` | `number` | `15` | Tolerance level for document alignment detection |
@@ -152,6 +156,7 @@ preloadModel(): Promise<{
152
156
  |-------|-------------|-------------|
153
157
  | `isReady` | `boolean` | Fired when component is fully initialized and ready |
154
158
  | `captureCompleted` | `object` | Fired when document capture process is completed |
159
+ | `traceIdGenerated` | `{ traceId: string }` | Fired after license validation with the generated or provided trace ID for request tracing |
155
160
 
156
161
  ### Type Definitions
157
162
 
@@ -206,6 +211,9 @@ interface StatusResponse {
206
211
  <body>
207
212
  <jaak-stamps
208
213
  id="documentScanner"
214
+ license="your-license-key-here"
215
+ environment="prod"
216
+ app-id="my-custom-app"
209
217
  preferred-camera="auto"
210
218
  capture-delay="1500"
211
219
  use-document-detector="true"
@@ -214,23 +222,29 @@ interface StatusResponse {
214
222
 
215
223
  <script>
216
224
  const scanner = document.getElementById('documentScanner');
217
-
225
+
226
+ // Handle trace ID generation
227
+ scanner.addEventListener('traceIdGenerated', (event) => {
228
+ console.log('Trace ID for this session:', event.detail.traceId);
229
+ // Use this trace ID for correlating requests across your system
230
+ });
231
+
218
232
  // Wait for component to be ready
219
233
  scanner.addEventListener('isReady', () => {
220
234
  console.log('Document scanner is ready');
221
-
235
+
222
236
  // Start the capture process
223
237
  scanner.startCapture();
224
238
  });
225
-
239
+
226
240
  // Handle capture completion
227
241
  scanner.addEventListener('captureCompleted', async (event) => {
228
242
  console.log('Capture completed:', event.detail);
229
-
243
+
230
244
  // Get captured images
231
245
  const images = await scanner.getCapturedImages();
232
246
  console.log('Captured images:', images);
233
-
247
+
234
248
  // Process the images as needed
235
249
  if (images.front.cropped) {
236
250
  // Display or upload the cropped front image
@@ -285,22 +299,29 @@ const DocumentScanner: React.FC = () => {
285
299
  const scanner = scannerRef.current;
286
300
  if (!scanner) return;
287
301
 
302
+ // Trace ID generation handler
303
+ const handleTraceIdGenerated = (event: CustomEvent) => {
304
+ console.log('Trace ID:', event.detail.traceId);
305
+ };
306
+
288
307
  // Component ready handler
289
308
  const handleReady = () => {
290
309
  setIsReady(true);
291
310
  };
292
-
311
+
293
312
  // Capture completion handler
294
313
  const handleCaptureCompleted = async () => {
295
314
  const images = await (scanner as any).getCapturedImages();
296
315
  setCapturedImages(images);
297
316
  };
298
-
317
+
299
318
  // Add event listeners
319
+ scanner.addEventListener('traceIdGenerated', handleTraceIdGenerated);
300
320
  scanner.addEventListener('isReady', handleReady);
301
321
  scanner.addEventListener('captureCompleted', handleCaptureCompleted);
302
322
 
303
323
  return () => {
324
+ scanner.removeEventListener('traceIdGenerated', handleTraceIdGenerated);
304
325
  scanner.removeEventListener('isReady', handleReady);
305
326
  scanner.removeEventListener('captureCompleted', handleCaptureCompleted);
306
327
  };
@@ -318,6 +339,10 @@ const DocumentScanner: React.FC = () => {
318
339
 
319
340
  <jaak-stamps
320
341
  ref={scannerRef}
342
+ license="your-license-key-here"
343
+ environment="prod"
344
+ app-id="my-react-app"
345
+ trace-id="" // Leave empty to auto-generate
321
346
  preferred-camera="auto"
322
347
  capture-delay={1500}
323
348
  use-document-classification={true}
@@ -390,6 +415,9 @@ interface CapturedImages {
390
415
 
391
416
  <jaak-stamps
392
417
  #scanner
418
+ license="your-license-key-here"
419
+ environment="prod"
420
+ app-id="my-angular-app"
393
421
  preferred-camera="auto"
394
422
  [capture-delay]="1500"
395
423
  [use-document-classification]="true"
@@ -506,12 +534,17 @@ export class DocumentScannerComponent implements AfterViewInit {
506
534
 
507
535
  ngAfterViewInit() {
508
536
  const scanner = this.scannerRef.nativeElement;
509
-
537
+
538
+ // Trace ID generation handler
539
+ scanner.addEventListener('traceIdGenerated', (event: CustomEvent) => {
540
+ console.log('Trace ID:', event.detail.traceId);
541
+ });
542
+
510
543
  // Component ready handler
511
544
  scanner.addEventListener('isReady', () => {
512
545
  this.isReady = true;
513
546
  });
514
-
547
+
515
548
  // Capture completion handler
516
549
  scanner.addEventListener('captureCompleted', async () => {
517
550
  this.capturedImages = await scanner.getCapturedImages();
@@ -12,6 +12,10 @@ var __export = (target, all) => {
12
12
  __defProp(target, name, { get: all[name], enumerable: true });
13
13
  };
14
14
 
15
+ // src/utils/constants.ts
16
+ var SVG_NS = "http://www.w3.org/2000/svg";
17
+ var HTML_NS = "http://www.w3.org/1999/xhtml";
18
+
15
19
  // src/utils/es2022-rewire-class-members.ts
16
20
  var reWireGetterSetter = (instance, hostRef) => {
17
21
  var _a;
@@ -547,7 +551,7 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
547
551
  }
548
552
  } else {
549
553
  const isComplex = isComplexType(newValue);
550
- if ((isProp || isComplex && newValue !== null) && true) {
554
+ if ((isProp || isComplex && newValue !== null) && !isSvg) {
551
555
  try {
552
556
  if (!elm.tagName.includes("-")) {
553
557
  const n = newValue == null ? "" : newValue;
@@ -640,14 +644,21 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
640
644
  if (newVNode2.$text$ !== null) {
641
645
  elm = newVNode2.$elm$ = win.document.createTextNode(newVNode2.$text$);
642
646
  } else {
647
+ if (!isSvgMode) {
648
+ isSvgMode = newVNode2.$tag$ === "svg";
649
+ }
643
650
  if (!win.document) {
644
651
  throw new Error(
645
652
  "You are trying to render a Stencil component in an environment that doesn't support the DOM. Make sure to populate the [`window`](https://developer.mozilla.org/en-US/docs/Web/API/Window/window) object before rendering a component."
646
653
  );
647
654
  }
648
- elm = newVNode2.$elm$ = win.document.createElement(
655
+ elm = newVNode2.$elm$ = win.document.createElementNS(
656
+ isSvgMode ? SVG_NS : HTML_NS,
649
657
  newVNode2.$tag$
650
- );
658
+ ) ;
659
+ if (isSvgMode && newVNode2.$tag$ === "foreignObject") {
660
+ isSvgMode = false;
661
+ }
651
662
  {
652
663
  updateElement(null, newVNode2, isSvgMode);
653
664
  }
@@ -659,6 +670,13 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
659
670
  }
660
671
  }
661
672
  }
673
+ {
674
+ if (newVNode2.$tag$ === "svg") {
675
+ isSvgMode = false;
676
+ } else if (elm.tagName === "foreignObject") {
677
+ isSvgMode = true;
678
+ }
679
+ }
662
680
  }
663
681
  elm["s-hn"] = hostTagName;
664
682
  return elm;
@@ -791,8 +809,12 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
791
809
  const elm = newVNode2.$elm$ = oldVNode.$elm$;
792
810
  const oldChildren = oldVNode.$children$;
793
811
  const newChildren = newVNode2.$children$;
812
+ const tag = newVNode2.$tag$;
794
813
  const text = newVNode2.$text$;
795
814
  if (text === null) {
815
+ {
816
+ isSvgMode = tag === "svg" ? true : tag === "foreignObject" ? false : isSvgMode;
817
+ }
796
818
  {
797
819
  updateElement(oldVNode, newVNode2, isSvgMode);
798
820
  }
@@ -809,6 +831,9 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
809
831
  ) {
810
832
  removeVnodes(oldChildren, 0, oldChildren.length - 1);
811
833
  } else ;
834
+ if (isSvgMode && tag === "svg") {
835
+ isSvgMode = false;
836
+ }
812
837
  } else if (oldVNode.$text$ !== text) {
813
838
  elm.data = text;
814
839
  }
@@ -1457,6 +1482,6 @@ exports.h = h;
1457
1482
  exports.promiseResolve = promiseResolve;
1458
1483
  exports.registerInstance = registerInstance;
1459
1484
  exports.setNonce = setNonce;
1460
- //# sourceMappingURL=index-Ga0t6BMe.js.map
1485
+ //# sourceMappingURL=index-D6NBn_qu.js.map
1461
1486
 
1462
- //# sourceMappingURL=index-Ga0t6BMe.js.map
1487
+ //# sourceMappingURL=index-D6NBn_qu.js.map