idmission-web-sdk 2.3.125 → 2.3.126

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.
@@ -20,6 +20,8 @@ export type ReadTextPromptProps = {
20
20
  minReadingMs?: number;
21
21
  classNames?: ReadTextPromptClassNames;
22
22
  verbiage?: ReadTextPromptVerbiage;
23
+ onPromptTextRendered?: (element: HTMLDivElement) => void;
23
24
  };
24
- export declare const ReadTextPrompt: ({ onComplete, durationMs, minReadingMs, classNames, verbiage: rawVerbiage, }: ReadTextPromptProps) => React.JSX.Element;
25
+ declare const ReadTextPromptWrapped: React.MemoExoticComponent<({ onComplete, durationMs, minReadingMs, classNames, verbiage: rawVerbiage, onPromptTextRendered, }: ReadTextPromptProps) => React.JSX.Element>;
26
+ export { ReadTextPromptWrapped as ReadTextPrompt };
25
27
  //# sourceMappingURL=ReadTextPrompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReadTextPrompt.d.ts","sourceRoot":"","sources":["../../../src/components/read_text_prompt/ReadTextPrompt.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAEvE,OAAO,EAAE,wBAAwB,EAAmB,MAAM,mBAAmB,CAAA;AAI7E,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,CAAC,EAAE,wBAAwB,CAAA;IACtC,UAAU,CAAC,EAAE,wBAAwB,CAAA;IACrC,WAAW,CAAC,EAAE,wBAAwB,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,wBAAwB,CAAA;IACrC,QAAQ,CAAC,EAAE,sBAAsB,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,cAAc,iFAMxB,mBAAmB,sBA6ErB,CAAA"}
1
+ {"version":3,"file":"ReadTextPrompt.d.ts","sourceRoot":"","sources":["../../../src/components/read_text_prompt/ReadTextPrompt.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAA;AAE7E,OAAO,EAAE,wBAAwB,EAAmB,MAAM,mBAAmB,CAAA;AAI7E,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,CAAC,EAAE,wBAAwB,CAAA;IACtC,UAAU,CAAC,EAAE,wBAAwB,CAAA;IACrC,WAAW,CAAC,EAAE,wBAAwB,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,wBAAwB,CAAA;IACrC,QAAQ,CAAC,EAAE,sBAAsB,CAAA;IACjC,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAA;CACzD,CAAA;AAwLD,QAAA,MAAM,qBAAqB,iIAvKxB,mBAAmB,uBAuK4B,CAAA;AAElD,OAAO,EAAE,qBAAqB,IAAI,cAAc,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"IdVideoCapture.d.ts","sourceRoot":"","sources":["../../../src/components/video_id/IdVideoCapture.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IdVideoCapture.d.ts","sourceRoot":"","sources":["../../../src/components/video_id/IdVideoCapture.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function getRawTextFromHtml(str: string): string;
2
+ //# sourceMappingURL=getRawTextFromHtml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRawTextFromHtml.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/getRawTextFromHtml/getRawTextFromHtml.ts"],"names":[],"mappings":"AA4DA,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAqDtD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getRawTextFromHtml.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRawTextFromHtml.test.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/getRawTextFromHtml/getRawTextFromHtml.test.ts"],"names":[],"mappings":""}
@@ -17,7 +17,6 @@ var middleware = require('zustand/middleware');
17
17
  var shallow = require('zustand/react/shallow');
18
18
  var cn = require('clsx');
19
19
  var SignatureCanvas = require('react-signature-canvas');
20
- var server = require('react-dom/server');
21
20
 
22
21
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
23
22
 
@@ -236,7 +235,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
236
235
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
237
236
  };
238
237
 
239
- var webSdkVersion = '2.3.125';
238
+ var webSdkVersion = '2.3.126';
240
239
 
241
240
  function getPlatform() {
242
241
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -16162,6 +16161,13 @@ var useVideoRecorder = function useVideoRecorder(mergeAVStreams) {
16162
16161
  }, [audioRecordingIntentionallyStopped, audioRecordingStopped, audioUrl, isRecordingAudio, isRecordingVideo, videoRecordingIntentionallyStopped, videoRecordingStopped, videoUrl]);
16163
16162
  };
16164
16163
 
16164
+ var DEFAULT_CLASSNAMES = {};
16165
+ var DEFAULT_VERBIAGE = {};
16166
+ var VERBIAGE_FALLBACKS = {
16167
+ headingText: 'Please read the following text aloud',
16168
+ promptText: '',
16169
+ doneBtnText: 'Done'
16170
+ };
16165
16171
  var ReadTextPrompt = function ReadTextPrompt(_a) {
16166
16172
  var onComplete = _a.onComplete,
16167
16173
  _b = _a.durationMs,
@@ -16169,18 +16175,27 @@ var ReadTextPrompt = function ReadTextPrompt(_a) {
16169
16175
  _c = _a.minReadingMs,
16170
16176
  minReadingMs = _c === void 0 ? 10000 : _c,
16171
16177
  _d = _a.classNames,
16172
- classNames = _d === void 0 ? {} : _d,
16178
+ classNames = _d === void 0 ? DEFAULT_CLASSNAMES : _d,
16173
16179
  _e = _a.verbiage,
16174
- rawVerbiage = _e === void 0 ? {} : _e;
16180
+ rawVerbiage = _e === void 0 ? DEFAULT_VERBIAGE : _e,
16181
+ onPromptTextRendered = _a.onPromptTextRendered;
16175
16182
  var countdownTimeoutRef = React.useRef(undefined);
16176
16183
  var _f = React.useState(durationMs / 1000),
16177
16184
  countdownRemaining = _f[0],
16178
16185
  setCountdownRemaining = _f[1];
16179
- var verbiage = useTranslations(rawVerbiage, {
16180
- headingText: 'Please read the following text aloud',
16181
- promptText: '',
16182
- doneBtnText: 'Done'
16183
- });
16186
+ var promptTextRef = React.useRef(null);
16187
+ var verbiage = useTranslations(rawVerbiage, VERBIAGE_FALLBACKS);
16188
+ // Each time the rendered DOM contents changes for the prompt text,
16189
+ // notify the parent via callback so it can respond.
16190
+ // [NOTE]
16191
+ // This is a bit of a workaround for extracting the text of a react component.
16192
+ // Grabbing from the dom is not ideal but it works for now.
16193
+ // [TODO] Can this be pulled form the react tree instead?
16194
+ React.useEffect(function () {
16195
+ if (promptTextRef.current && onPromptTextRendered) {
16196
+ onPromptTextRendered(promptTextRef.current);
16197
+ }
16198
+ }, [onPromptTextRendered, verbiage.promptText]);
16184
16199
  var manualCountdown = React.useCallback(function (remainingTime) {
16185
16200
  if (remainingTime > 0) {
16186
16201
  var nextCycle_1 = remainingTime - 1;
@@ -16215,7 +16230,8 @@ var ReadTextPrompt = function ReadTextPrompt(_a) {
16215
16230
  }, /*#__PURE__*/React__namespace.default.createElement(ReadTextPromptHeading, {
16216
16231
  className: classNames.heading
16217
16232
  }, verbiage.headingText), /*#__PURE__*/React__namespace.default.createElement(ReadTextPromptText, {
16218
- className: classNames.prompt
16233
+ className: classNames.prompt,
16234
+ ref: promptTextRef
16219
16235
  }, verbiage.promptText), /*#__PURE__*/React__namespace.default.createElement(ReadTextPromptButtonsRow, {
16220
16236
  className: classNames.buttonsRow
16221
16237
  }, /*#__PURE__*/React__namespace.default.createElement(ReadTextPromptTimeRemaining, {
@@ -16261,8 +16277,101 @@ var ReadTextPromptTimeRemaining = styled__default.default.div(templateObject_5$1
16261
16277
  return ((_c = (_b = (_a = props.theme.idVideoCapture) === null || _a === void 0 ? void 0 : _a.readTextPrompt) === null || _b === void 0 ? void 0 : _b.timeRemaining) === null || _c === void 0 ? void 0 : _c.borderRadius) ? "border-radius: ".concat((_f = (_e = (_d = props.theme.idVideoCapture) === null || _d === void 0 ? void 0 : _d.readTextPrompt) === null || _e === void 0 ? void 0 : _e.timeRemaining) === null || _f === void 0 ? void 0 : _f.borderRadius, ";") : "";
16262
16278
  });
16263
16279
  var DoneButton = styled__default.default(LoaderButton)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n margin: auto 0;\n"], ["\n margin: auto 0;\n"])));
16280
+ var ReadTextPromptWrapped = /*#__PURE__*/React.memo(ReadTextPrompt);
16264
16281
  var templateObject_1$6, templateObject_2$6, templateObject_3$5, templateObject_4$1, templateObject_5$1, templateObject_6;
16265
16282
 
16283
+ // Precompiled regexes for performance and clarity
16284
+ var RE_ESCAPE_N = /\\n/g;
16285
+ var RE_ESCAPE_T = /\\t/g;
16286
+ var RE_ESCAPE_R = /\\r/g;
16287
+ // Remove entire script/style blocks before anything else
16288
+ var RE_SCRIPT_BLOCK = /<script[\s\S]*?<\/script>/gi;
16289
+ var RE_STYLE_BLOCK = /<style[\s\S]*?<\/style>/gi;
16290
+ // Replace common block-level tags with spaces to preserve boundaries
16291
+ var RE_BLOCK_OPEN = /<(div|p|h[1-6]|li|ul|ol|blockquote|pre|section|article|header|footer|aside|nav|main|form|fieldset|table|tr|td|th|br)[^>]*>/gi;
16292
+ var RE_BLOCK_CLOSE = /<\/(div|p|h[1-6]|li|ul|ol|blockquote|pre|section|article|header|footer|aside|nav|main|form|fieldset|table|tr|td|th|br)>/gi;
16293
+ // Any remaining HTML tag
16294
+ var RE_ALL_TAGS = /<[^>]*>/g;
16295
+ // Numeric entities (be lenient on optional semicolon)
16296
+ var RE_NUM_DEC = /&#(\d+);?/g;
16297
+ var RE_NUM_HEX = /&#x([0-9a-f]+);?/gi;
16298
+ // Invisible/whitespace variants
16299
+ var RE_NBSP_CHAR = /\u00A0/g;
16300
+ var RE_ZERO_WIDTH = /[\u200B-\u200D\uFEFF]/g;
16301
+ // Named entities map; case-insensitive replacement will be applied
16302
+ var NAMED_ENTITIES = {
16303
+ nbsp: ' ',
16304
+ amp: '&',
16305
+ lt: '<',
16306
+ gt: '>',
16307
+ quot: '"',
16308
+ '#39': "'",
16309
+ // some encoders output &#39; but handle via numeric too
16310
+ apos: "'",
16311
+ cent: '¢',
16312
+ pound: '£',
16313
+ yen: '¥',
16314
+ euro: '€',
16315
+ copy: '©',
16316
+ reg: '®',
16317
+ mdash: '—',
16318
+ ndash: '–',
16319
+ hellip: '…',
16320
+ ldquo: '"',
16321
+ rdquo: '"',
16322
+ lsquo: "'",
16323
+ rsquo: "'"
16324
+ };
16325
+ function decodeNamedEntities(input) {
16326
+ return input.replace(/&([a-z#0-9]+);/gi, function (_, name) {
16327
+ var key = name.toLowerCase();
16328
+ if (Object.prototype.hasOwnProperty.call(NAMED_ENTITIES, key)) {
16329
+ return NAMED_ENTITIES[key];
16330
+ }
16331
+ return "&".concat(name, ";");
16332
+ });
16333
+ }
16334
+ function getRawTextFromHtml(str) {
16335
+ if (!str) return '';
16336
+ var s = str;
16337
+ // 1) Handle literal escape sequences (avoid confusing with HTML)
16338
+ s = s.replace(RE_ESCAPE_N, ' ').replace(RE_ESCAPE_T, ' ').replace(RE_ESCAPE_R, ' ');
16339
+ // 2) Remove script/style blocks entirely
16340
+ s = s.replace(RE_SCRIPT_BLOCK, ' ').replace(RE_STYLE_BLOCK, ' ');
16341
+ // 3) Replace block-level elements with spaces, then strip remaining tags
16342
+ s = s.replace(RE_BLOCK_OPEN, ' ').replace(RE_BLOCK_CLOSE, ' ');
16343
+ s = s.replace(RE_ALL_TAGS, '');
16344
+ // 4) Decode numeric entities using code points (handles >0xFFFF)
16345
+ s = s.replace(RE_NUM_DEC, function (_, dec) {
16346
+ var codePoint = parseInt(dec, 10);
16347
+ if (Number.isFinite(codePoint) && codePoint >= 0) {
16348
+ try {
16349
+ return String.fromCodePoint(codePoint);
16350
+ } catch (_a) {
16351
+ return '';
16352
+ }
16353
+ }
16354
+ return '';
16355
+ }).replace(RE_NUM_HEX, function (_, hex) {
16356
+ var codePoint = parseInt(hex, 16);
16357
+ if (Number.isFinite(codePoint) && codePoint >= 0) {
16358
+ try {
16359
+ return String.fromCodePoint(codePoint);
16360
+ } catch (_a) {
16361
+ return '';
16362
+ }
16363
+ }
16364
+ return '';
16365
+ });
16366
+ // 5) Decode common named entities (case-insensitive)
16367
+ s = decodeNamedEntities(s);
16368
+ // 6) Replace Unicode NBSP and remove zero-width characters
16369
+ s = s.replace(RE_NBSP_CHAR, ' ').replace(RE_ZERO_WIDTH, '');
16370
+ // 7) Normalize whitespace
16371
+ s = s.replace(/\s+/g, ' ').trim();
16372
+ return s;
16373
+ }
16374
+
16266
16375
  var edgeBoundary = 0.05;
16267
16376
  var defaultVideoIdCaptureThresholds = {
16268
16377
  detection: {
@@ -16493,18 +16602,22 @@ var IdVideoCapture = function IdVideoCapture(_a) {
16493
16602
  }, [goodFramesCount]);
16494
16603
  var delaySatisfied = !['SHOW_ID_FRONT', 'SHOW_PASSPORT'].includes(requestedAction) || idFrontCaptureStartedAt !== null && new Date().getTime() > idFrontCaptureStartedAt + idCardFrontDelay;
16495
16604
  var translatedText = useVerbiage(readTextPrompt, '');
16605
+ var handlePromptTextRendered = React.useCallback(function (element) {
16606
+ if (element) {
16607
+ var rawText = getRawTextFromHtml(element.innerHTML);
16608
+ setExpectedAudioText(rawText);
16609
+ }
16610
+ }, [setExpectedAudioText]);
16496
16611
  var onIdCaptureComplete = React.useCallback(function () {
16497
16612
  var _a;
16498
16613
  if (translatedText) {
16499
16614
  setRequestedAction('READ_TEXT');
16500
16615
  useVideoRecorderStore.getState().startRecordingAudio();
16501
16616
  setIdCaptureVideoAudioStartsAt(new Date().getTime() - ((_a = videoStartsAt === null || videoStartsAt === void 0 ? void 0 : videoStartsAt.getTime()) !== null && _a !== void 0 ? _a : 0));
16502
- var renderedTranslatedText = typeof translatedText === 'string' ? translatedText : server.renderToString(translatedText);
16503
- setExpectedAudioText(renderedTranslatedText);
16504
16617
  } else {
16505
16618
  useVideoRecorderStore.getState().stopRecordingVideo();
16506
16619
  }
16507
- }, [setExpectedAudioText, setIdCaptureVideoAudioStartsAt, translatedText, videoStartsAt]);
16620
+ }, [setIdCaptureVideoAudioStartsAt, translatedText, videoStartsAt]);
16508
16621
  var frameWidth = (_c = (_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.videoWidth) !== null && _c !== void 0 ? _c : 0;
16509
16622
  var frameHeight = (_e = (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.videoHeight) !== null && _e !== void 0 ? _e : 0;
16510
16623
  var faceBox = face === null || face === void 0 ? void 0 : face.box;
@@ -16662,13 +16775,14 @@ var IdVideoCapture = function IdVideoCapture(_a) {
16662
16775
  className: classNames.container
16663
16776
  }, /*#__PURE__*/React__namespace.default.createElement(InvisibleCanvas, {
16664
16777
  ref: photoCanvas
16665
- }), requestedAction === 'READ_TEXT' ? ( /*#__PURE__*/React__namespace.default.createElement(ReadTextPrompt, {
16778
+ }), requestedAction === 'READ_TEXT' ? ( /*#__PURE__*/React__namespace.default.createElement(ReadTextPromptWrapped, {
16666
16779
  startedAt: timeoutStartedAt || undefined,
16667
16780
  durationMs: readTextTimeoutDurationMs,
16668
16781
  minReadingMs: readTextMinReadingMs,
16669
16782
  classNames: classNames.readTextPrompt,
16670
16783
  verbiage: readTextPromptVerbiage,
16671
- onComplete: stopRecording
16784
+ onComplete: stopRecording,
16785
+ onPromptTextRendered: handlePromptTextRendered
16672
16786
  })) : ( /*#__PURE__*/React__namespace.default.createElement(React__namespace.default.Fragment, null, /*#__PURE__*/React__namespace.default.createElement(IdVideoCaptureGuides, {
16673
16787
  classNames: classNames.guides,
16674
16788
  verbiage: rawVerbiage.guides,