@myinterview/widget-react 1.1.67-development-9de5afe → 1.1.68-development-a33be59

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/cjs/index.js CHANGED
@@ -35057,7 +35057,7 @@ const configGenerator = () => {
35057
35057
  let release;
35058
35058
  try {
35059
35059
  environment !== null && environment !== void 0 ? environment : (environment = "staging");
35060
- release !== null && release !== void 0 ? release : (release = "1.1.67");
35060
+ release !== null && release !== void 0 ? release : (release = "1.1.68");
35061
35061
  }
35062
35062
  catch (_a) {
35063
35063
  console.error('sentry configGenerator error');
@@ -41633,16 +41633,16 @@ const G = getGlobal();
41633
41633
  const FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;
41634
41634
 
41635
41635
  const isFormData = (thing) => {
41636
- let kind;
41637
- return thing && (
41638
- (FormDataCtor && thing instanceof FormDataCtor) || (
41639
- isFunction$2(thing.append) && (
41640
- (kind = kindOf(thing)) === 'formdata' ||
41641
- // detect form-data instance
41642
- (kind === 'object' && isFunction$2(thing.toString) && thing.toString() === '[object FormData]')
41643
- )
41644
- )
41645
- );
41636
+ if (!thing) return false;
41637
+ if (FormDataCtor && thing instanceof FormDataCtor) return true;
41638
+ // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData (GHSA-6chq-wfr3-2hj9).
41639
+ const proto = getPrototypeOf(thing);
41640
+ if (!proto || proto === Object.prototype) return false;
41641
+ if (!isFunction$2(thing.append)) return false;
41642
+ const kind = kindOf(thing);
41643
+ return kind === 'formdata' ||
41644
+ // detect form-data instance
41645
+ (kind === 'object' && isFunction$2(thing.toString) && thing.toString() === '[object FormData]');
41646
41646
  };
41647
41647
 
41648
41648
  /**
@@ -42309,40 +42309,40 @@ class AxiosError extends Error {
42309
42309
  return axiosError;
42310
42310
  }
42311
42311
 
42312
- /**
42313
- * Create an Error with the specified message, config, error code, request and response.
42314
- *
42315
- * @param {string} message The error message.
42316
- * @param {string} [code] The error code (for example, 'ECONNABORTED').
42317
- * @param {Object} [config] The config.
42318
- * @param {Object} [request] The request.
42319
- * @param {Object} [response] The response.
42320
- *
42321
- * @returns {Error} The created error.
42322
- */
42323
- constructor(message, code, config, request, response) {
42324
- super(message);
42325
-
42326
- // Make message enumerable to maintain backward compatibility
42327
- // The native Error constructor sets message as non-enumerable,
42328
- // but axios < v1.13.3 had it as enumerable
42329
- Object.defineProperty(this, 'message', {
42330
- value: message,
42331
- enumerable: true,
42332
- writable: true,
42333
- configurable: true
42334
- });
42335
-
42336
- this.name = 'AxiosError';
42337
- this.isAxiosError = true;
42338
- code && (this.code = code);
42339
- config && (this.config = config);
42340
- request && (this.request = request);
42341
- if (response) {
42342
- this.response = response;
42343
- this.status = response.status;
42344
- }
42312
+ /**
42313
+ * Create an Error with the specified message, config, error code, request and response.
42314
+ *
42315
+ * @param {string} message The error message.
42316
+ * @param {string} [code] The error code (for example, 'ECONNABORTED').
42317
+ * @param {Object} [config] The config.
42318
+ * @param {Object} [request] The request.
42319
+ * @param {Object} [response] The response.
42320
+ *
42321
+ * @returns {Error} The created error.
42322
+ */
42323
+ constructor(message, code, config, request, response) {
42324
+ super(message);
42325
+
42326
+ // Make message enumerable to maintain backward compatibility
42327
+ // The native Error constructor sets message as non-enumerable,
42328
+ // but axios < v1.13.3 had it as enumerable
42329
+ Object.defineProperty(this, 'message', {
42330
+ value: message,
42331
+ enumerable: true,
42332
+ writable: true,
42333
+ configurable: true,
42334
+ });
42335
+
42336
+ this.name = 'AxiosError';
42337
+ this.isAxiosError = true;
42338
+ code && (this.code = code);
42339
+ config && (this.config = config);
42340
+ request && (this.request = request);
42341
+ if (response) {
42342
+ this.response = response;
42343
+ this.status = response.status;
42345
42344
  }
42345
+ }
42346
42346
 
42347
42347
  toJSON() {
42348
42348
  return {
@@ -42378,6 +42378,7 @@ AxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';
42378
42378
  AxiosError.ERR_CANCELED = 'ERR_CANCELED';
42379
42379
  AxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';
42380
42380
  AxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';
42381
+ AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';
42381
42382
 
42382
42383
  // eslint-disable-next-line strict
42383
42384
  var httpAdapter = null;
@@ -42492,6 +42493,7 @@ function toFormData(obj, formData, options) {
42492
42493
  const dots = options.dots;
42493
42494
  const indexes = options.indexes;
42494
42495
  const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);
42496
+ const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;
42495
42497
  const useBlob = _Blob && utils$3.isSpecCompliantForm(formData);
42496
42498
 
42497
42499
  if (!utils$3.isFunction(visitor)) {
@@ -42584,9 +42586,16 @@ function toFormData(obj, formData, options) {
42584
42586
  isVisitable,
42585
42587
  });
42586
42588
 
42587
- function build(value, path) {
42589
+ function build(value, path, depth = 0) {
42588
42590
  if (utils$3.isUndefined(value)) return;
42589
42591
 
42592
+ if (depth > maxDepth) {
42593
+ throw new AxiosError(
42594
+ 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,
42595
+ AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED
42596
+ );
42597
+ }
42598
+
42590
42599
  if (stack.indexOf(value) !== -1) {
42591
42600
  throw Error('Circular reference detected in ' + path.join('.'));
42592
42601
  }
@@ -42599,7 +42608,7 @@ function toFormData(obj, formData, options) {
42599
42608
  visitor.call(formData, el, utils$3.isString(key) ? key.trim() : key, path, exposedHelpers);
42600
42609
 
42601
42610
  if (result === true) {
42602
- build(el, path ? path.concat(key) : [key]);
42611
+ build(el, path ? path.concat(key) : [key], depth + 1);
42603
42612
  }
42604
42613
  });
42605
42614
 
@@ -42631,9 +42640,8 @@ function encode$1(str) {
42631
42640
  ')': '%29',
42632
42641
  '~': '%7E',
42633
42642
  '%20': '+',
42634
- '%00': '\x00',
42635
42643
  };
42636
- return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
42644
+ return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {
42637
42645
  return charMap[match];
42638
42646
  });
42639
42647
  }
@@ -42953,7 +42961,9 @@ function formDataToJSON(formData) {
42953
42961
 
42954
42962
  if (isLast) {
42955
42963
  if (utils$3.hasOwnProp(target, name)) {
42956
- target[name] = [target[name], value];
42964
+ target[name] = utils$3.isArray(target[name])
42965
+ ? target[name].concat(value)
42966
+ : [target[name], value];
42957
42967
  } else {
42958
42968
  target[name] = value;
42959
42969
  }
@@ -42987,6 +42997,8 @@ function formDataToJSON(formData) {
42987
42997
  return null;
42988
42998
  }
42989
42999
 
43000
+ const own = (obj, key) => (obj != null && utils$3.hasOwnProp(obj, key) ? obj[key] : undefined);
43001
+
42990
43002
  /**
42991
43003
  * It takes a string, tries to parse it, and if it fails, it returns the stringified version
42992
43004
  * of the input
@@ -43054,20 +43066,22 @@ const defaults = {
43054
43066
  let isFileList;
43055
43067
 
43056
43068
  if (isObjectPayload) {
43069
+ const formSerializer = own(this, 'formSerializer');
43057
43070
  if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {
43058
- return toURLEncodedForm(data, this.formSerializer).toString();
43071
+ return toURLEncodedForm(data, formSerializer).toString();
43059
43072
  }
43060
43073
 
43061
43074
  if (
43062
43075
  (isFileList = utils$3.isFileList(data)) ||
43063
43076
  contentType.indexOf('multipart/form-data') > -1
43064
43077
  ) {
43065
- const _FormData = this.env && this.env.FormData;
43078
+ const env = own(this, 'env');
43079
+ const _FormData = env && env.FormData;
43066
43080
 
43067
43081
  return toFormData(
43068
43082
  isFileList ? { 'files[]': data } : data,
43069
43083
  _FormData && new _FormData(),
43070
- this.formSerializer
43084
+ formSerializer
43071
43085
  );
43072
43086
  }
43073
43087
  }
@@ -43083,9 +43097,10 @@ const defaults = {
43083
43097
 
43084
43098
  transformResponse: [
43085
43099
  function transformResponse(data) {
43086
- const transitional = this.transitional || defaults.transitional;
43100
+ const transitional = own(this, 'transitional') || defaults.transitional;
43087
43101
  const forcedJSONParsing = transitional && transitional.forcedJSONParsing;
43088
- const JSONRequested = this.responseType === 'json';
43102
+ const responseType = own(this, 'responseType');
43103
+ const JSONRequested = responseType === 'json';
43089
43104
 
43090
43105
  if (utils$3.isResponse(data) || utils$3.isReadableStream(data)) {
43091
43106
  return data;
@@ -43094,17 +43109,17 @@ const defaults = {
43094
43109
  if (
43095
43110
  data &&
43096
43111
  utils$3.isString(data) &&
43097
- ((forcedJSONParsing && !this.responseType) || JSONRequested)
43112
+ ((forcedJSONParsing && !responseType) || JSONRequested)
43098
43113
  ) {
43099
43114
  const silentJSONParsing = transitional && transitional.silentJSONParsing;
43100
43115
  const strictJSONParsing = !silentJSONParsing && JSONRequested;
43101
43116
 
43102
43117
  try {
43103
- return JSON.parse(data, this.parseReviver);
43118
+ return JSON.parse(data, own(this, 'parseReviver'));
43104
43119
  } catch (e) {
43105
43120
  if (strictJSONParsing) {
43106
43121
  if (e.name === 'SyntaxError') {
43107
- throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);
43122
+ throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));
43108
43123
  }
43109
43124
  throw e;
43110
43125
  }
@@ -43216,41 +43231,41 @@ var parseHeaders = (rawHeaders) => {
43216
43231
 
43217
43232
  const $internals = Symbol('internals');
43218
43233
 
43219
- const isValidHeaderValue = (value) => !/[\r\n]/.test(value);
43220
-
43221
- function assertValidHeaderValue(value, header) {
43222
- if (value === false || value == null) {
43223
- return;
43224
- }
43234
+ const INVALID_HEADER_VALUE_CHARS_RE = /[^\x09\x20-\x7E\x80-\xFF]/g;
43225
43235
 
43226
- if (utils$3.isArray(value)) {
43227
- value.forEach((v) => assertValidHeaderValue(v, header));
43228
- return;
43229
- }
43236
+ function trimSPorHTAB(str) {
43237
+ let start = 0;
43238
+ let end = str.length;
43230
43239
 
43231
- if (!isValidHeaderValue(String(value))) {
43232
- throw new Error(`Invalid character in header content ["${header}"]`);
43233
- }
43234
- }
43240
+ while (start < end) {
43241
+ const code = str.charCodeAt(start);
43235
43242
 
43236
- function normalizeHeader(header) {
43237
- return header && String(header).trim().toLowerCase();
43238
- }
43243
+ if (code !== 0x09 && code !== 0x20) {
43244
+ break;
43245
+ }
43239
43246
 
43240
- function stripTrailingCRLF(str) {
43241
- let end = str.length;
43247
+ start += 1;
43248
+ }
43242
43249
 
43243
- while (end > 0) {
43244
- const charCode = str.charCodeAt(end - 1);
43250
+ while (end > start) {
43251
+ const code = str.charCodeAt(end - 1);
43245
43252
 
43246
- if (charCode !== 10 && charCode !== 13) {
43253
+ if (code !== 0x09 && code !== 0x20) {
43247
43254
  break;
43248
43255
  }
43249
43256
 
43250
43257
  end -= 1;
43251
43258
  }
43252
43259
 
43253
- return end === str.length ? str : str.slice(0, end);
43260
+ return start === 0 && end === str.length ? str : str.slice(start, end);
43261
+ }
43262
+
43263
+ function normalizeHeader(header) {
43264
+ return header && String(header).trim().toLowerCase();
43265
+ }
43266
+
43267
+ function sanitizeHeaderValue(str) {
43268
+ return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, ''));
43254
43269
  }
43255
43270
 
43256
43271
  function normalizeValue(value) {
@@ -43258,7 +43273,7 @@ function normalizeValue(value) {
43258
43273
  return value;
43259
43274
  }
43260
43275
 
43261
- return utils$3.isArray(value) ? value.map(normalizeValue) : stripTrailingCRLF(String(value));
43276
+ return utils$3.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));
43262
43277
  }
43263
43278
 
43264
43279
  function parseTokens(str) {
@@ -43340,7 +43355,6 @@ class AxiosHeaders {
43340
43355
  _rewrite === true ||
43341
43356
  (_rewrite === undefined && self[key] !== false)
43342
43357
  ) {
43343
- assertValidHeaderValue(_value, _header);
43344
43358
  self[key || _header] = normalizeValue(_value);
43345
43359
  }
43346
43360
  }
@@ -43763,13 +43777,13 @@ const progressEventReducer = (listener, isDownloadStream, freq = 3) => {
43763
43777
  const _speedometer = speedometer(50, 250);
43764
43778
 
43765
43779
  return throttle((e) => {
43766
- const loaded = e.loaded;
43780
+ const rawLoaded = e.loaded;
43767
43781
  const total = e.lengthComputable ? e.total : undefined;
43768
- const progressBytes = loaded - bytesNotified;
43782
+ const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;
43783
+ const progressBytes = Math.max(0, loaded - bytesNotified);
43769
43784
  const rate = _speedometer(progressBytes);
43770
- const inRange = loaded <= total;
43771
43785
 
43772
- bytesNotified = loaded;
43786
+ bytesNotified = Math.max(bytesNotified, loaded);
43773
43787
 
43774
43788
  const data = {
43775
43789
  loaded,
@@ -43777,7 +43791,7 @@ const progressEventReducer = (listener, isDownloadStream, freq = 3) => {
43777
43791
  progress: total ? loaded / total : undefined,
43778
43792
  bytes: progressBytes,
43779
43793
  rate: rate ? rate : undefined,
43780
- estimated: rate && total && inRange ? (total - loaded) / rate : undefined,
43794
+ estimated: rate && total ? (total - loaded) / rate : undefined,
43781
43795
  event: e,
43782
43796
  lengthComputable: total != null,
43783
43797
  [isDownloadStream ? 'download' : 'upload']: true,
@@ -43911,7 +43925,7 @@ function combineURLs(baseURL, relativeURL) {
43911
43925
  */
43912
43926
  function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
43913
43927
  let isRelativeUrl = !isAbsoluteURL(requestedURL);
43914
- if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {
43928
+ if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {
43915
43929
  return combineURLs(baseURL, requestedURL);
43916
43930
  }
43917
43931
  return requestedURL;
@@ -43931,7 +43945,18 @@ const headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing }
43931
43945
  function mergeConfig(config1, config2) {
43932
43946
  // eslint-disable-next-line no-param-reassign
43933
43947
  config2 = config2 || {};
43934
- const config = {};
43948
+
43949
+ // Use a null-prototype object so that downstream reads such as `config.auth`
43950
+ // or `config.baseURL` cannot inherit polluted values from Object.prototype
43951
+ // (see GHSA-q8qp-cvcw-x6jj). `hasOwnProperty` is restored as a non-enumerable
43952
+ // own slot to preserve ergonomics for user code that relies on it.
43953
+ const config = Object.create(null);
43954
+ Object.defineProperty(config, 'hasOwnProperty', {
43955
+ value: Object.prototype.hasOwnProperty,
43956
+ enumerable: false,
43957
+ writable: true,
43958
+ configurable: true,
43959
+ });
43935
43960
 
43936
43961
  function getMergedValue(target, source, prop, caseless) {
43937
43962
  if (utils$3.isPlainObject(target) && utils$3.isPlainObject(source)) {
@@ -43970,9 +43995,9 @@ function mergeConfig(config1, config2) {
43970
43995
 
43971
43996
  // eslint-disable-next-line consistent-return
43972
43997
  function mergeDirectKeys(a, b, prop) {
43973
- if (prop in config2) {
43998
+ if (utils$3.hasOwnProp(config2, prop)) {
43974
43999
  return getMergedValue(a, b);
43975
- } else if (prop in config1) {
44000
+ } else if (utils$3.hasOwnProp(config1, prop)) {
43976
44001
  return getMergedValue(undefined, a);
43977
44002
  }
43978
44003
  }
@@ -44004,6 +44029,7 @@ function mergeConfig(config1, config2) {
44004
44029
  httpsAgent: defaultToConfig2,
44005
44030
  cancelToken: defaultToConfig2,
44006
44031
  socketPath: defaultToConfig2,
44032
+ allowedSocketPaths: defaultToConfig2,
44007
44033
  responseEncoding: defaultToConfig2,
44008
44034
  validateStatus: mergeDirectKeys,
44009
44035
  headers: (a, b, prop) =>
@@ -44013,7 +44039,9 @@ function mergeConfig(config1, config2) {
44013
44039
  utils$3.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {
44014
44040
  if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;
44015
44041
  const merge = utils$3.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;
44016
- const configValue = merge(config1[prop], config2[prop], prop);
44042
+ const a = utils$3.hasOwnProp(config1, prop) ? config1[prop] : undefined;
44043
+ const b = utils$3.hasOwnProp(config2, prop) ? config2[prop] : undefined;
44044
+ const configValue = merge(a, b, prop);
44017
44045
  (utils$3.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
44018
44046
  });
44019
44047
 
@@ -44023,12 +44051,24 @@ function mergeConfig(config1, config2) {
44023
44051
  var resolveConfig = (config) => {
44024
44052
  const newConfig = mergeConfig({}, config);
44025
44053
 
44026
- let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;
44054
+ // Read only own properties to prevent prototype pollution gadgets
44055
+ // (e.g. Object.prototype.baseURL = 'https://evil.com'). See GHSA-q8qp-cvcw-x6jj.
44056
+ const own = (key) => (utils$3.hasOwnProp(newConfig, key) ? newConfig[key] : undefined);
44057
+
44058
+ const data = own('data');
44059
+ let withXSRFToken = own('withXSRFToken');
44060
+ const xsrfHeaderName = own('xsrfHeaderName');
44061
+ const xsrfCookieName = own('xsrfCookieName');
44062
+ let headers = own('headers');
44063
+ const auth = own('auth');
44064
+ const baseURL = own('baseURL');
44065
+ const allowAbsoluteUrls = own('allowAbsoluteUrls');
44066
+ const url = own('url');
44027
44067
 
44028
44068
  newConfig.headers = headers = AxiosHeaders.from(headers);
44029
44069
 
44030
44070
  newConfig.url = buildURL(
44031
- buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls),
44071
+ buildFullPath(baseURL, url, allowAbsoluteUrls),
44032
44072
  config.params,
44033
44073
  config.paramsSerializer
44034
44074
  );
@@ -44067,10 +44107,18 @@ var resolveConfig = (config) => {
44067
44107
  // Specifically not if we're in a web worker, or react-native.
44068
44108
 
44069
44109
  if (platform.hasStandardBrowserEnv) {
44070
- withXSRFToken && utils$3.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));
44110
+ if (utils$3.isFunction(withXSRFToken)) {
44111
+ withXSRFToken = withXSRFToken(newConfig);
44112
+ }
44113
+
44114
+ // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)
44115
+ // and misconfigurations (e.g. "false") from short-circuiting the same-origin check and leaking
44116
+ // the XSRF token cross-origin. See GHSA-xx6v-rp6x-q39c.
44117
+ const shouldSendXSRF =
44118
+ withXSRFToken === true ||
44119
+ (withXSRFToken == null && isURLSameOrigin(newConfig.url));
44071
44120
 
44072
- if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {
44073
- // Add xsrf header
44121
+ if (shouldSendXSRF) {
44074
44122
  const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);
44075
44123
 
44076
44124
  if (xsrfValue) {
@@ -44489,18 +44537,20 @@ const factory = (env) => {
44489
44537
  test(() => {
44490
44538
  let duplexAccessed = false;
44491
44539
 
44492
- const body = new ReadableStream$1();
44493
-
44494
- const hasContentType = new Request(platform.origin, {
44495
- body,
44540
+ const request = new Request(platform.origin, {
44541
+ body: new ReadableStream$1(),
44496
44542
  method: 'POST',
44497
44543
  get duplex() {
44498
44544
  duplexAccessed = true;
44499
44545
  return 'half';
44500
44546
  },
44501
- }).headers.has('Content-Type');
44547
+ });
44548
+
44549
+ const hasContentType = request.headers.has('Content-Type');
44502
44550
 
44503
- body.cancel();
44551
+ if (request.body != null) {
44552
+ request.body.cancel();
44553
+ }
44504
44554
 
44505
44555
  return duplexAccessed && !hasContentType;
44506
44556
  });
@@ -44644,6 +44694,19 @@ const factory = (env) => {
44644
44694
  // see https://github.com/cloudflare/workerd/issues/902
44645
44695
  const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;
44646
44696
 
44697
+ // If data is FormData and Content-Type is multipart/form-data without boundary,
44698
+ // delete it so fetch can set it correctly with the boundary
44699
+ if (utils$3.isFormData(data)) {
44700
+ const contentType = headers.getContentType();
44701
+ if (
44702
+ contentType &&
44703
+ /^multipart\/form-data/i.test(contentType) &&
44704
+ !/boundary=/i.test(contentType)
44705
+ ) {
44706
+ headers.delete('content-type');
44707
+ }
44708
+ }
44709
+
44647
44710
  const resolvedOptions = {
44648
44711
  ...fetchOptions,
44649
44712
  signal: composedSignal,
@@ -44952,7 +45015,7 @@ function dispatchRequest(config) {
44952
45015
  );
44953
45016
  }
44954
45017
 
44955
- const VERSION = "1.15.0";
45018
+ const VERSION = "1.15.2";
44956
45019
 
44957
45020
  const validators$1 = {};
44958
45021
 
@@ -45037,7 +45100,9 @@ function assertOptions(options, schema, allowUnknown) {
45037
45100
  let i = keys.length;
45038
45101
  while (i-- > 0) {
45039
45102
  const opt = keys[i];
45040
- const validator = schema[opt];
45103
+ // Use hasOwnProperty so a polluted Object.prototype.<opt> cannot supply
45104
+ // a non-function validator and cause a TypeError. See GHSA-q8qp-cvcw-x6jj.
45105
+ const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;
45041
45106
  if (validator) {
45042
45107
  const value = options[opt];
45043
45108
  const result = value === undefined || validator(value, opt, options);
@@ -56074,7 +56139,7 @@ const FOCUSABLE_SELECTORS = Object.freeze([
56074
56139
  'a[href]', 'button:not([disabled]):not([tabindex="-1"])', 'textarea', 'input', 'select', '[tabindex]:not([tabindex="-1"])',
56075
56140
  ]);
56076
56141
  const Widget = React.forwardRef(({ candidate, job, video, config, disabled = false, buttonText = 'START INTERVIEW', buttonStyle = {}, children, styleUrls = [], fontsUrls = [], }, clientRef) => {
56077
- const widget_version = "1.1.67";
56142
+ const widget_version = "1.1.68";
56078
56143
  const [isWidgetOpen, setIsWidgetOpen] = React.useState(false);
56079
56144
  const [isWidgetMinimized, setIsWidgetMinimized] = React.useState(false);
56080
56145
  const [isIncognitoMode, setIsIncognitoMode] = React.useState(false);