glitch-javascript-sdk 0.6.4 → 0.6.6

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
@@ -784,7 +784,7 @@ const isAsyncFn = kindOfTest('AsyncFunction');
784
784
  const isThenable = (thing) =>
785
785
  thing && (isObject(thing) || isFunction$1(thing)) && isFunction$1(thing.then) && isFunction$1(thing.catch);
786
786
 
787
- var utils = {
787
+ var utils$1 = {
788
788
  isArray,
789
789
  isArrayBuffer,
790
790
  isBuffer: isBuffer$1,
@@ -866,7 +866,7 @@ function AxiosError(message, code, config, request, response) {
866
866
  response && (this.response = response);
867
867
  }
868
868
 
869
- utils.inherits(AxiosError, Error, {
869
+ utils$1.inherits(AxiosError, Error, {
870
870
  toJSON: function toJSON() {
871
871
  return {
872
872
  // Standard
@@ -881,7 +881,7 @@ utils.inherits(AxiosError, Error, {
881
881
  columnNumber: this.columnNumber,
882
882
  stack: this.stack,
883
883
  // Axios
884
- config: utils.toJSONObject(this.config),
884
+ config: utils$1.toJSONObject(this.config),
885
885
  code: this.code,
886
886
  status: this.response && this.response.status ? this.response.status : null
887
887
  };
@@ -916,7 +916,7 @@ Object.defineProperty(prototype$1, 'isAxiosError', {value: true});
916
916
  AxiosError.from = (error, code, config, request, response, customProps) => {
917
917
  const axiosError = Object.create(prototype$1);
918
918
 
919
- utils.toFlatObject(error, axiosError, function filter(obj) {
919
+ utils$1.toFlatObject(error, axiosError, function filter(obj) {
920
920
  return obj !== Error.prototype;
921
921
  }, prop => {
922
922
  return prop !== 'isAxiosError';
@@ -13070,7 +13070,7 @@ var FormData$2 = /*@__PURE__*/getDefaultExportFromCjs(form_data);
13070
13070
  * @returns {boolean}
13071
13071
  */
13072
13072
  function isVisitable(thing) {
13073
- return utils.isPlainObject(thing) || utils.isArray(thing);
13073
+ return utils$1.isPlainObject(thing) || utils$1.isArray(thing);
13074
13074
  }
13075
13075
 
13076
13076
  /**
@@ -13081,7 +13081,7 @@ function isVisitable(thing) {
13081
13081
  * @returns {string} the key without the brackets.
13082
13082
  */
13083
13083
  function removeBrackets(key) {
13084
- return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;
13084
+ return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;
13085
13085
  }
13086
13086
 
13087
13087
  /**
@@ -13110,10 +13110,10 @@ function renderKey(path, key, dots) {
13110
13110
  * @returns {boolean}
13111
13111
  */
13112
13112
  function isFlatArray(arr) {
13113
- return utils.isArray(arr) && !arr.some(isVisitable);
13113
+ return utils$1.isArray(arr) && !arr.some(isVisitable);
13114
13114
  }
13115
13115
 
13116
- const predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {
13116
+ const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {
13117
13117
  return /^is[A-Z]/.test(prop);
13118
13118
  });
13119
13119
 
@@ -13141,7 +13141,7 @@ const predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {
13141
13141
  * @returns
13142
13142
  */
13143
13143
  function toFormData(obj, formData, options) {
13144
- if (!utils.isObject(obj)) {
13144
+ if (!utils$1.isObject(obj)) {
13145
13145
  throw new TypeError('target must be an object');
13146
13146
  }
13147
13147
 
@@ -13149,13 +13149,13 @@ function toFormData(obj, formData, options) {
13149
13149
  formData = formData || new (FormData$2 || FormData)();
13150
13150
 
13151
13151
  // eslint-disable-next-line no-param-reassign
13152
- options = utils.toFlatObject(options, {
13152
+ options = utils$1.toFlatObject(options, {
13153
13153
  metaTokens: true,
13154
13154
  dots: false,
13155
13155
  indexes: false
13156
13156
  }, false, function defined(option, source) {
13157
13157
  // eslint-disable-next-line no-eq-null,eqeqeq
13158
- return !utils.isUndefined(source[option]);
13158
+ return !utils$1.isUndefined(source[option]);
13159
13159
  });
13160
13160
 
13161
13161
  const metaTokens = options.metaTokens;
@@ -13164,24 +13164,24 @@ function toFormData(obj, formData, options) {
13164
13164
  const dots = options.dots;
13165
13165
  const indexes = options.indexes;
13166
13166
  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;
13167
- const useBlob = _Blob && utils.isSpecCompliantForm(formData);
13167
+ const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);
13168
13168
 
13169
- if (!utils.isFunction(visitor)) {
13169
+ if (!utils$1.isFunction(visitor)) {
13170
13170
  throw new TypeError('visitor must be a function');
13171
13171
  }
13172
13172
 
13173
13173
  function convertValue(value) {
13174
13174
  if (value === null) return '';
13175
13175
 
13176
- if (utils.isDate(value)) {
13176
+ if (utils$1.isDate(value)) {
13177
13177
  return value.toISOString();
13178
13178
  }
13179
13179
 
13180
- if (!useBlob && utils.isBlob(value)) {
13180
+ if (!useBlob && utils$1.isBlob(value)) {
13181
13181
  throw new AxiosError('Blob is not supported. Use a Buffer instead.');
13182
13182
  }
13183
13183
 
13184
- if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {
13184
+ if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {
13185
13185
  return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);
13186
13186
  }
13187
13187
 
@@ -13202,20 +13202,20 @@ function toFormData(obj, formData, options) {
13202
13202
  let arr = value;
13203
13203
 
13204
13204
  if (value && !path && typeof value === 'object') {
13205
- if (utils.endsWith(key, '{}')) {
13205
+ if (utils$1.endsWith(key, '{}')) {
13206
13206
  // eslint-disable-next-line no-param-reassign
13207
13207
  key = metaTokens ? key : key.slice(0, -2);
13208
13208
  // eslint-disable-next-line no-param-reassign
13209
13209
  value = JSON.stringify(value);
13210
13210
  } else if (
13211
- (utils.isArray(value) && isFlatArray(value)) ||
13212
- ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))
13211
+ (utils$1.isArray(value) && isFlatArray(value)) ||
13212
+ ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))
13213
13213
  )) {
13214
13214
  // eslint-disable-next-line no-param-reassign
13215
13215
  key = removeBrackets(key);
13216
13216
 
13217
13217
  arr.forEach(function each(el, index) {
13218
- !(utils.isUndefined(el) || el === null) && formData.append(
13218
+ !(utils$1.isUndefined(el) || el === null) && formData.append(
13219
13219
  // eslint-disable-next-line no-nested-ternary
13220
13220
  indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),
13221
13221
  convertValue(el)
@@ -13243,7 +13243,7 @@ function toFormData(obj, formData, options) {
13243
13243
  });
13244
13244
 
13245
13245
  function build(value, path) {
13246
- if (utils.isUndefined(value)) return;
13246
+ if (utils$1.isUndefined(value)) return;
13247
13247
 
13248
13248
  if (stack.indexOf(value) !== -1) {
13249
13249
  throw Error('Circular reference detected in ' + path.join('.'));
@@ -13251,9 +13251,9 @@ function toFormData(obj, formData, options) {
13251
13251
 
13252
13252
  stack.push(value);
13253
13253
 
13254
- utils.forEach(value, function each(el, key) {
13255
- const result = !(utils.isUndefined(el) || el === null) && visitor.call(
13256
- formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers
13254
+ utils$1.forEach(value, function each(el, key) {
13255
+ const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(
13256
+ formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers
13257
13257
  );
13258
13258
 
13259
13259
  if (result === true) {
@@ -13264,7 +13264,7 @@ function toFormData(obj, formData, options) {
13264
13264
  stack.pop();
13265
13265
  }
13266
13266
 
13267
- if (!utils.isObject(obj)) {
13267
+ if (!utils$1.isObject(obj)) {
13268
13268
  throw new TypeError('data must be an object');
13269
13269
  }
13270
13270
 
@@ -13368,7 +13368,7 @@ function buildURL(url, params, options) {
13368
13368
  if (serializeFn) {
13369
13369
  serializedParams = serializeFn(params, options);
13370
13370
  } else {
13371
- serializedParams = utils.isURLSearchParams(params) ?
13371
+ serializedParams = utils$1.isURLSearchParams(params) ?
13372
13372
  params.toString() :
13373
13373
  new AxiosURLSearchParams(params, options).toString(_encode);
13374
13374
  }
@@ -13443,7 +13443,7 @@ class InterceptorManager {
13443
13443
  * @returns {void}
13444
13444
  */
13445
13445
  forEach(fn) {
13446
- utils.forEach(this.handlers, function forEachHandler(h) {
13446
+ utils$1.forEach(this.handlers, function forEachHandler(h) {
13447
13447
  if (h !== null) {
13448
13448
  fn(h);
13449
13449
  }
@@ -13461,7 +13461,7 @@ var transitionalDefaults = {
13461
13461
 
13462
13462
  var URLSearchParams = require$$0$1.URLSearchParams;
13463
13463
 
13464
- var platform = {
13464
+ var platform$1 = {
13465
13465
  isNode: true,
13466
13466
  classes: {
13467
13467
  URLSearchParams,
@@ -13471,10 +13471,64 @@ var platform = {
13471
13471
  protocols: [ 'http', 'https', 'file', 'data' ]
13472
13472
  };
13473
13473
 
13474
+ const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';
13475
+
13476
+ /**
13477
+ * Determine if we're running in a standard browser environment
13478
+ *
13479
+ * This allows axios to run in a web worker, and react-native.
13480
+ * Both environments support XMLHttpRequest, but not fully standard globals.
13481
+ *
13482
+ * web workers:
13483
+ * typeof window -> undefined
13484
+ * typeof document -> undefined
13485
+ *
13486
+ * react-native:
13487
+ * navigator.product -> 'ReactNative'
13488
+ * nativescript
13489
+ * navigator.product -> 'NativeScript' or 'NS'
13490
+ *
13491
+ * @returns {boolean}
13492
+ */
13493
+ const hasStandardBrowserEnv = (
13494
+ (product) => {
13495
+ return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0
13496
+ })(typeof navigator !== 'undefined' && navigator.product);
13497
+
13498
+ /**
13499
+ * Determine if we're running in a standard browser webWorker environment
13500
+ *
13501
+ * Although the `isStandardBrowserEnv` method indicates that
13502
+ * `allows axios to run in a web worker`, the WebWorker will still be
13503
+ * filtered out due to its judgment standard
13504
+ * `typeof window !== 'undefined' && typeof document !== 'undefined'`.
13505
+ * This leads to a problem when axios post `FormData` in webWorker
13506
+ */
13507
+ const hasStandardBrowserWebWorkerEnv = (() => {
13508
+ return (
13509
+ typeof WorkerGlobalScope !== 'undefined' &&
13510
+ // eslint-disable-next-line no-undef
13511
+ self instanceof WorkerGlobalScope &&
13512
+ typeof self.importScripts === 'function'
13513
+ );
13514
+ })();
13515
+
13516
+ var utils = /*#__PURE__*/Object.freeze({
13517
+ __proto__: null,
13518
+ hasBrowserEnv: hasBrowserEnv,
13519
+ hasStandardBrowserEnv: hasStandardBrowserEnv,
13520
+ hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv
13521
+ });
13522
+
13523
+ var platform = {
13524
+ ...utils,
13525
+ ...platform$1
13526
+ };
13527
+
13474
13528
  function toURLEncodedForm(data, options) {
13475
13529
  return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({
13476
13530
  visitor: function(value, key, path, helpers) {
13477
- if (utils.isBuffer(value)) {
13531
+ if (platform.isNode && utils$1.isBuffer(value)) {
13478
13532
  this.append(key, value.toString('base64'));
13479
13533
  return false;
13480
13534
  }
@@ -13496,7 +13550,7 @@ function parsePropPath(name) {
13496
13550
  // foo.x.y.z
13497
13551
  // foo-x-y-z
13498
13552
  // foo x y z
13499
- return utils.matchAll(/\w+|\[(\w*)]/g, name).map(match => {
13553
+ return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(match => {
13500
13554
  return match[0] === '[]' ? '' : match[1] || match[0];
13501
13555
  });
13502
13556
  }
@@ -13533,10 +13587,10 @@ function formDataToJSON(formData) {
13533
13587
  let name = path[index++];
13534
13588
  const isNumericKey = Number.isFinite(+name);
13535
13589
  const isLast = index >= path.length;
13536
- name = !name && utils.isArray(target) ? target.length : name;
13590
+ name = !name && utils$1.isArray(target) ? target.length : name;
13537
13591
 
13538
13592
  if (isLast) {
13539
- if (utils.hasOwnProp(target, name)) {
13593
+ if (utils$1.hasOwnProp(target, name)) {
13540
13594
  target[name] = [target[name], value];
13541
13595
  } else {
13542
13596
  target[name] = value;
@@ -13545,23 +13599,23 @@ function formDataToJSON(formData) {
13545
13599
  return !isNumericKey;
13546
13600
  }
13547
13601
 
13548
- if (!target[name] || !utils.isObject(target[name])) {
13602
+ if (!target[name] || !utils$1.isObject(target[name])) {
13549
13603
  target[name] = [];
13550
13604
  }
13551
13605
 
13552
13606
  const result = buildPath(path, value, target[name], index);
13553
13607
 
13554
- if (result && utils.isArray(target[name])) {
13608
+ if (result && utils$1.isArray(target[name])) {
13555
13609
  target[name] = arrayToObject(target[name]);
13556
13610
  }
13557
13611
 
13558
13612
  return !isNumericKey;
13559
13613
  }
13560
13614
 
13561
- if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {
13615
+ if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {
13562
13616
  const obj = {};
13563
13617
 
13564
- utils.forEachEntry(formData, (name, value) => {
13618
+ utils$1.forEachEntry(formData, (name, value) => {
13565
13619
  buildPath(parsePropPath(name), value, obj, 0);
13566
13620
  });
13567
13621
 
@@ -13582,10 +13636,10 @@ function formDataToJSON(formData) {
13582
13636
  * @returns {string} A stringified version of the rawValue.
13583
13637
  */
13584
13638
  function stringifySafely(rawValue, parser, encoder) {
13585
- if (utils.isString(rawValue)) {
13639
+ if (utils$1.isString(rawValue)) {
13586
13640
  try {
13587
13641
  (parser || JSON.parse)(rawValue);
13588
- return utils.trim(rawValue);
13642
+ return utils$1.trim(rawValue);
13589
13643
  } catch (e) {
13590
13644
  if (e.name !== 'SyntaxError') {
13591
13645
  throw e;
@@ -13605,13 +13659,13 @@ const defaults = {
13605
13659
  transformRequest: [function transformRequest(data, headers) {
13606
13660
  const contentType = headers.getContentType() || '';
13607
13661
  const hasJSONContentType = contentType.indexOf('application/json') > -1;
13608
- const isObjectPayload = utils.isObject(data);
13662
+ const isObjectPayload = utils$1.isObject(data);
13609
13663
 
13610
- if (isObjectPayload && utils.isHTMLForm(data)) {
13664
+ if (isObjectPayload && utils$1.isHTMLForm(data)) {
13611
13665
  data = new FormData(data);
13612
13666
  }
13613
13667
 
13614
- const isFormData = utils.isFormData(data);
13668
+ const isFormData = utils$1.isFormData(data);
13615
13669
 
13616
13670
  if (isFormData) {
13617
13671
  if (!hasJSONContentType) {
@@ -13620,18 +13674,18 @@ const defaults = {
13620
13674
  return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;
13621
13675
  }
13622
13676
 
13623
- if (utils.isArrayBuffer(data) ||
13624
- utils.isBuffer(data) ||
13625
- utils.isStream(data) ||
13626
- utils.isFile(data) ||
13627
- utils.isBlob(data)
13677
+ if (utils$1.isArrayBuffer(data) ||
13678
+ utils$1.isBuffer(data) ||
13679
+ utils$1.isStream(data) ||
13680
+ utils$1.isFile(data) ||
13681
+ utils$1.isBlob(data)
13628
13682
  ) {
13629
13683
  return data;
13630
13684
  }
13631
- if (utils.isArrayBufferView(data)) {
13685
+ if (utils$1.isArrayBufferView(data)) {
13632
13686
  return data.buffer;
13633
13687
  }
13634
- if (utils.isURLSearchParams(data)) {
13688
+ if (utils$1.isURLSearchParams(data)) {
13635
13689
  headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);
13636
13690
  return data.toString();
13637
13691
  }
@@ -13643,7 +13697,7 @@ const defaults = {
13643
13697
  return toURLEncodedForm(data, this.formSerializer).toString();
13644
13698
  }
13645
13699
 
13646
- if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {
13700
+ if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {
13647
13701
  const _FormData = this.env && this.env.FormData;
13648
13702
 
13649
13703
  return toFormData(
@@ -13667,7 +13721,7 @@ const defaults = {
13667
13721
  const forcedJSONParsing = transitional && transitional.forcedJSONParsing;
13668
13722
  const JSONRequested = this.responseType === 'json';
13669
13723
 
13670
- if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {
13724
+ if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {
13671
13725
  const silentJSONParsing = transitional && transitional.silentJSONParsing;
13672
13726
  const strictJSONParsing = !silentJSONParsing && JSONRequested;
13673
13727
 
@@ -13715,7 +13769,7 @@ const defaults = {
13715
13769
  }
13716
13770
  };
13717
13771
 
13718
- utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {
13772
+ utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {
13719
13773
  defaults.headers[method] = {};
13720
13774
  });
13721
13775
 
@@ -13723,7 +13777,7 @@ var defaults$1 = defaults;
13723
13777
 
13724
13778
  // RawAxiosHeaders whose duplicates are ignored by node
13725
13779
  // c.f. https://nodejs.org/api/http.html#http_message_headers
13726
- const ignoreDuplicateOf = utils.toObjectSet([
13780
+ const ignoreDuplicateOf = utils$1.toObjectSet([
13727
13781
  'age', 'authorization', 'content-length', 'content-type', 'etag',
13728
13782
  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',
13729
13783
  'last-modified', 'location', 'max-forwards', 'proxy-authorization',
@@ -13784,7 +13838,7 @@ function normalizeValue(value) {
13784
13838
  return value;
13785
13839
  }
13786
13840
 
13787
- return utils.isArray(value) ? value.map(normalizeValue) : String(value);
13841
+ return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);
13788
13842
  }
13789
13843
 
13790
13844
  function parseTokens(str) {
@@ -13802,7 +13856,7 @@ function parseTokens(str) {
13802
13856
  const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());
13803
13857
 
13804
13858
  function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
13805
- if (utils.isFunction(filter)) {
13859
+ if (utils$1.isFunction(filter)) {
13806
13860
  return filter.call(this, value, header);
13807
13861
  }
13808
13862
 
@@ -13810,13 +13864,13 @@ function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
13810
13864
  value = header;
13811
13865
  }
13812
13866
 
13813
- if (!utils.isString(value)) return;
13867
+ if (!utils$1.isString(value)) return;
13814
13868
 
13815
- if (utils.isString(filter)) {
13869
+ if (utils$1.isString(filter)) {
13816
13870
  return value.indexOf(filter) !== -1;
13817
13871
  }
13818
13872
 
13819
- if (utils.isRegExp(filter)) {
13873
+ if (utils$1.isRegExp(filter)) {
13820
13874
  return filter.test(value);
13821
13875
  }
13822
13876
  }
@@ -13829,7 +13883,7 @@ function formatHeader(header) {
13829
13883
  }
13830
13884
 
13831
13885
  function buildAccessors(obj, header) {
13832
- const accessorName = utils.toCamelCase(' ' + header);
13886
+ const accessorName = utils$1.toCamelCase(' ' + header);
13833
13887
 
13834
13888
  ['get', 'set', 'has'].forEach(methodName => {
13835
13889
  Object.defineProperty(obj, methodName + accessorName, {
@@ -13856,7 +13910,7 @@ class AxiosHeaders {
13856
13910
  throw new Error('header name must be a non-empty string');
13857
13911
  }
13858
13912
 
13859
- const key = utils.findKey(self, lHeader);
13913
+ const key = utils$1.findKey(self, lHeader);
13860
13914
 
13861
13915
  if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {
13862
13916
  self[key || _header] = normalizeValue(_value);
@@ -13864,11 +13918,11 @@ class AxiosHeaders {
13864
13918
  }
13865
13919
 
13866
13920
  const setHeaders = (headers, _rewrite) =>
13867
- utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
13921
+ utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
13868
13922
 
13869
- if (utils.isPlainObject(header) || header instanceof this.constructor) {
13923
+ if (utils$1.isPlainObject(header) || header instanceof this.constructor) {
13870
13924
  setHeaders(header, valueOrRewrite);
13871
- } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
13925
+ } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
13872
13926
  setHeaders(parseHeaders(header), valueOrRewrite);
13873
13927
  } else {
13874
13928
  header != null && setHeader(valueOrRewrite, header, rewrite);
@@ -13881,7 +13935,7 @@ class AxiosHeaders {
13881
13935
  header = normalizeHeader(header);
13882
13936
 
13883
13937
  if (header) {
13884
- const key = utils.findKey(this, header);
13938
+ const key = utils$1.findKey(this, header);
13885
13939
 
13886
13940
  if (key) {
13887
13941
  const value = this[key];
@@ -13894,11 +13948,11 @@ class AxiosHeaders {
13894
13948
  return parseTokens(value);
13895
13949
  }
13896
13950
 
13897
- if (utils.isFunction(parser)) {
13951
+ if (utils$1.isFunction(parser)) {
13898
13952
  return parser.call(this, value, key);
13899
13953
  }
13900
13954
 
13901
- if (utils.isRegExp(parser)) {
13955
+ if (utils$1.isRegExp(parser)) {
13902
13956
  return parser.exec(value);
13903
13957
  }
13904
13958
 
@@ -13911,7 +13965,7 @@ class AxiosHeaders {
13911
13965
  header = normalizeHeader(header);
13912
13966
 
13913
13967
  if (header) {
13914
- const key = utils.findKey(this, header);
13968
+ const key = utils$1.findKey(this, header);
13915
13969
 
13916
13970
  return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
13917
13971
  }
@@ -13927,7 +13981,7 @@ class AxiosHeaders {
13927
13981
  _header = normalizeHeader(_header);
13928
13982
 
13929
13983
  if (_header) {
13930
- const key = utils.findKey(self, _header);
13984
+ const key = utils$1.findKey(self, _header);
13931
13985
 
13932
13986
  if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {
13933
13987
  delete self[key];
@@ -13937,7 +13991,7 @@ class AxiosHeaders {
13937
13991
  }
13938
13992
  }
13939
13993
 
13940
- if (utils.isArray(header)) {
13994
+ if (utils$1.isArray(header)) {
13941
13995
  header.forEach(deleteHeader);
13942
13996
  } else {
13943
13997
  deleteHeader(header);
@@ -13966,8 +14020,8 @@ class AxiosHeaders {
13966
14020
  const self = this;
13967
14021
  const headers = {};
13968
14022
 
13969
- utils.forEach(this, (value, header) => {
13970
- const key = utils.findKey(headers, header);
14023
+ utils$1.forEach(this, (value, header) => {
14024
+ const key = utils$1.findKey(headers, header);
13971
14025
 
13972
14026
  if (key) {
13973
14027
  self[key] = normalizeValue(value);
@@ -13996,8 +14050,8 @@ class AxiosHeaders {
13996
14050
  toJSON(asStrings) {
13997
14051
  const obj = Object.create(null);
13998
14052
 
13999
- utils.forEach(this, (value, header) => {
14000
- value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);
14053
+ utils$1.forEach(this, (value, header) => {
14054
+ value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);
14001
14055
  });
14002
14056
 
14003
14057
  return obj;
@@ -14044,7 +14098,7 @@ class AxiosHeaders {
14044
14098
  }
14045
14099
  }
14046
14100
 
14047
- utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);
14101
+ utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);
14048
14102
 
14049
14103
  return this;
14050
14104
  }
@@ -14053,7 +14107,7 @@ class AxiosHeaders {
14053
14107
  AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);
14054
14108
 
14055
14109
  // reserved names hotfix
14056
- utils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {
14110
+ utils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {
14057
14111
  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`
14058
14112
  return {
14059
14113
  get: () => value,
@@ -14063,7 +14117,7 @@ utils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {
14063
14117
  }
14064
14118
  });
14065
14119
 
14066
- utils.freezeMethods(AxiosHeaders);
14120
+ utils$1.freezeMethods(AxiosHeaders);
14067
14121
 
14068
14122
  var AxiosHeaders$1 = AxiosHeaders;
14069
14123
 
@@ -14081,7 +14135,7 @@ function transformData(fns, response) {
14081
14135
  const headers = AxiosHeaders$1.from(context.headers);
14082
14136
  let data = context.data;
14083
14137
 
14084
- utils.forEach(fns, function transform(fn) {
14138
+ utils$1.forEach(fns, function transform(fn) {
14085
14139
  data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);
14086
14140
  });
14087
14141
 
@@ -14109,7 +14163,7 @@ function CanceledError(message, config, request) {
14109
14163
  this.name = 'CanceledError';
14110
14164
  }
14111
14165
 
14112
- utils.inherits(CanceledError, AxiosError, {
14166
+ utils$1.inherits(CanceledError, AxiosError, {
14113
14167
  __CANCEL__: true
14114
14168
  });
14115
14169
 
@@ -14293,7 +14347,162 @@ var followRedirects$1 = {exports: {}};
14293
14347
 
14294
14348
  var src = {exports: {}};
14295
14349
 
14296
- var browser = {exports: {}};
14350
+ var node = {exports: {}};
14351
+
14352
+ var hasFlag;
14353
+ var hasRequiredHasFlag;
14354
+
14355
+ function requireHasFlag () {
14356
+ if (hasRequiredHasFlag) return hasFlag;
14357
+ hasRequiredHasFlag = 1;
14358
+ hasFlag = (flag, argv) => {
14359
+ argv = argv || process.argv;
14360
+ const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');
14361
+ const pos = argv.indexOf(prefix + flag);
14362
+ const terminatorPos = argv.indexOf('--');
14363
+ return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
14364
+ };
14365
+ return hasFlag;
14366
+ }
14367
+
14368
+ var supportsColor_1;
14369
+ var hasRequiredSupportsColor;
14370
+
14371
+ function requireSupportsColor () {
14372
+ if (hasRequiredSupportsColor) return supportsColor_1;
14373
+ hasRequiredSupportsColor = 1;
14374
+ const os = require$$0$2;
14375
+ const hasFlag = requireHasFlag();
14376
+
14377
+ const env = process.env;
14378
+
14379
+ let forceColor;
14380
+ if (hasFlag('no-color') ||
14381
+ hasFlag('no-colors') ||
14382
+ hasFlag('color=false')) {
14383
+ forceColor = false;
14384
+ } else if (hasFlag('color') ||
14385
+ hasFlag('colors') ||
14386
+ hasFlag('color=true') ||
14387
+ hasFlag('color=always')) {
14388
+ forceColor = true;
14389
+ }
14390
+ if ('FORCE_COLOR' in env) {
14391
+ forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;
14392
+ }
14393
+
14394
+ function translateLevel(level) {
14395
+ if (level === 0) {
14396
+ return false;
14397
+ }
14398
+
14399
+ return {
14400
+ level,
14401
+ hasBasic: true,
14402
+ has256: level >= 2,
14403
+ has16m: level >= 3
14404
+ };
14405
+ }
14406
+
14407
+ function supportsColor(stream) {
14408
+ if (forceColor === false) {
14409
+ return 0;
14410
+ }
14411
+
14412
+ if (hasFlag('color=16m') ||
14413
+ hasFlag('color=full') ||
14414
+ hasFlag('color=truecolor')) {
14415
+ return 3;
14416
+ }
14417
+
14418
+ if (hasFlag('color=256')) {
14419
+ return 2;
14420
+ }
14421
+
14422
+ if (stream && !stream.isTTY && forceColor !== true) {
14423
+ return 0;
14424
+ }
14425
+
14426
+ const min = forceColor ? 1 : 0;
14427
+
14428
+ if (process.platform === 'win32') {
14429
+ // Node.js 7.5.0 is the first version of Node.js to include a patch to
14430
+ // libuv that enables 256 color output on Windows. Anything earlier and it
14431
+ // won't work. However, here we target Node.js 8 at minimum as it is an LTS
14432
+ // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows
14433
+ // release that supports 256 colors. Windows 10 build 14931 is the first release
14434
+ // that supports 16m/TrueColor.
14435
+ const osRelease = os.release().split('.');
14436
+ if (
14437
+ Number(process.versions.node.split('.')[0]) >= 8 &&
14438
+ Number(osRelease[0]) >= 10 &&
14439
+ Number(osRelease[2]) >= 10586
14440
+ ) {
14441
+ return Number(osRelease[2]) >= 14931 ? 3 : 2;
14442
+ }
14443
+
14444
+ return 1;
14445
+ }
14446
+
14447
+ if ('CI' in env) {
14448
+ if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') {
14449
+ return 1;
14450
+ }
14451
+
14452
+ return min;
14453
+ }
14454
+
14455
+ if ('TEAMCITY_VERSION' in env) {
14456
+ return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
14457
+ }
14458
+
14459
+ if (env.COLORTERM === 'truecolor') {
14460
+ return 3;
14461
+ }
14462
+
14463
+ if ('TERM_PROGRAM' in env) {
14464
+ const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
14465
+
14466
+ switch (env.TERM_PROGRAM) {
14467
+ case 'iTerm.app':
14468
+ return version >= 3 ? 3 : 2;
14469
+ case 'Apple_Terminal':
14470
+ return 2;
14471
+ // No default
14472
+ }
14473
+ }
14474
+
14475
+ if (/-256(color)?$/i.test(env.TERM)) {
14476
+ return 2;
14477
+ }
14478
+
14479
+ if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
14480
+ return 1;
14481
+ }
14482
+
14483
+ if ('COLORTERM' in env) {
14484
+ return 1;
14485
+ }
14486
+
14487
+ if (env.TERM === 'dumb') {
14488
+ return min;
14489
+ }
14490
+
14491
+ return min;
14492
+ }
14493
+
14494
+ function getSupportLevel(stream) {
14495
+ const level = supportsColor(stream);
14496
+ return translateLevel(level);
14497
+ }
14498
+
14499
+ supportsColor_1 = {
14500
+ supportsColor: getSupportLevel,
14501
+ stdout: getSupportLevel(process.stdout),
14502
+ stderr: getSupportLevel(process.stderr)
14503
+ };
14504
+ return supportsColor_1;
14505
+ }
14297
14506
 
14298
14507
  /**
14299
14508
  * Helpers.
@@ -14748,469 +14957,33 @@ function requireCommon () {
14748
14957
  return common;
14749
14958
  }
14750
14959
 
14751
- /* eslint-env browser */
14960
+ /**
14961
+ * Module dependencies.
14962
+ */
14752
14963
 
14753
- var hasRequiredBrowser;
14964
+ var hasRequiredNode;
14754
14965
 
14755
- function requireBrowser () {
14756
- if (hasRequiredBrowser) return browser.exports;
14757
- hasRequiredBrowser = 1;
14966
+ function requireNode () {
14967
+ if (hasRequiredNode) return node.exports;
14968
+ hasRequiredNode = 1;
14758
14969
  (function (module, exports) {
14970
+ const tty = require$$0$3;
14971
+ const util = require$$1;
14972
+
14759
14973
  /**
14760
- * This is the web browser implementation of `debug()`.
14974
+ * This is the Node.js implementation of `debug()`.
14761
14975
  */
14762
14976
 
14977
+ exports.init = init;
14978
+ exports.log = log;
14763
14979
  exports.formatArgs = formatArgs;
14764
14980
  exports.save = save;
14765
14981
  exports.load = load;
14766
14982
  exports.useColors = useColors;
14767
- exports.storage = localstorage();
14768
- exports.destroy = (() => {
14769
- let warned = false;
14770
-
14771
- return () => {
14772
- if (!warned) {
14773
- warned = true;
14774
- console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');
14775
- }
14776
- };
14777
- })();
14778
-
14779
- /**
14780
- * Colors.
14781
- */
14782
-
14783
- exports.colors = [
14784
- '#0000CC',
14785
- '#0000FF',
14786
- '#0033CC',
14787
- '#0033FF',
14788
- '#0066CC',
14789
- '#0066FF',
14790
- '#0099CC',
14791
- '#0099FF',
14792
- '#00CC00',
14793
- '#00CC33',
14794
- '#00CC66',
14795
- '#00CC99',
14796
- '#00CCCC',
14797
- '#00CCFF',
14798
- '#3300CC',
14799
- '#3300FF',
14800
- '#3333CC',
14801
- '#3333FF',
14802
- '#3366CC',
14803
- '#3366FF',
14804
- '#3399CC',
14805
- '#3399FF',
14806
- '#33CC00',
14807
- '#33CC33',
14808
- '#33CC66',
14809
- '#33CC99',
14810
- '#33CCCC',
14811
- '#33CCFF',
14812
- '#6600CC',
14813
- '#6600FF',
14814
- '#6633CC',
14815
- '#6633FF',
14816
- '#66CC00',
14817
- '#66CC33',
14818
- '#9900CC',
14819
- '#9900FF',
14820
- '#9933CC',
14821
- '#9933FF',
14822
- '#99CC00',
14823
- '#99CC33',
14824
- '#CC0000',
14825
- '#CC0033',
14826
- '#CC0066',
14827
- '#CC0099',
14828
- '#CC00CC',
14829
- '#CC00FF',
14830
- '#CC3300',
14831
- '#CC3333',
14832
- '#CC3366',
14833
- '#CC3399',
14834
- '#CC33CC',
14835
- '#CC33FF',
14836
- '#CC6600',
14837
- '#CC6633',
14838
- '#CC9900',
14839
- '#CC9933',
14840
- '#CCCC00',
14841
- '#CCCC33',
14842
- '#FF0000',
14843
- '#FF0033',
14844
- '#FF0066',
14845
- '#FF0099',
14846
- '#FF00CC',
14847
- '#FF00FF',
14848
- '#FF3300',
14849
- '#FF3333',
14850
- '#FF3366',
14851
- '#FF3399',
14852
- '#FF33CC',
14853
- '#FF33FF',
14854
- '#FF6600',
14855
- '#FF6633',
14856
- '#FF9900',
14857
- '#FF9933',
14858
- '#FFCC00',
14859
- '#FFCC33'
14860
- ];
14861
-
14862
- /**
14863
- * Currently only WebKit-based Web Inspectors, Firefox >= v31,
14864
- * and the Firebug extension (any Firefox version) are known
14865
- * to support "%c" CSS customizations.
14866
- *
14867
- * TODO: add a `localStorage` variable to explicitly enable/disable colors
14868
- */
14869
-
14870
- // eslint-disable-next-line complexity
14871
- function useColors() {
14872
- // NB: In an Electron preload script, document will be defined but not fully
14873
- // initialized. Since we know we're in Chrome, we'll just detect this case
14874
- // explicitly
14875
- if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {
14876
- return true;
14877
- }
14878
-
14879
- // Internet Explorer and Edge do not support colors.
14880
- if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
14881
- return false;
14882
- }
14883
-
14884
- // Is webkit? http://stackoverflow.com/a/16459606/376773
14885
- // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
14886
- return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
14887
- // Is firebug? http://stackoverflow.com/a/398120/376773
14888
- (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
14889
- // Is firefox >= v31?
14890
- // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
14891
- (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
14892
- // Double check webkit in userAgent just in case we are in a worker
14893
- (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
14894
- }
14895
-
14896
- /**
14897
- * Colorize log arguments if enabled.
14898
- *
14899
- * @api public
14900
- */
14901
-
14902
- function formatArgs(args) {
14903
- args[0] = (this.useColors ? '%c' : '') +
14904
- this.namespace +
14905
- (this.useColors ? ' %c' : ' ') +
14906
- args[0] +
14907
- (this.useColors ? '%c ' : ' ') +
14908
- '+' + module.exports.humanize(this.diff);
14909
-
14910
- if (!this.useColors) {
14911
- return;
14912
- }
14913
-
14914
- const c = 'color: ' + this.color;
14915
- args.splice(1, 0, c, 'color: inherit');
14916
-
14917
- // The final "%c" is somewhat tricky, because there could be other
14918
- // arguments passed either before or after the %c, so we need to
14919
- // figure out the correct index to insert the CSS into
14920
- let index = 0;
14921
- let lastC = 0;
14922
- args[0].replace(/%[a-zA-Z%]/g, match => {
14923
- if (match === '%%') {
14924
- return;
14925
- }
14926
- index++;
14927
- if (match === '%c') {
14928
- // We only are interested in the *last* %c
14929
- // (the user may have provided their own)
14930
- lastC = index;
14931
- }
14932
- });
14933
-
14934
- args.splice(lastC, 0, c);
14935
- }
14936
-
14937
- /**
14938
- * Invokes `console.debug()` when available.
14939
- * No-op when `console.debug` is not a "function".
14940
- * If `console.debug` is not available, falls back
14941
- * to `console.log`.
14942
- *
14943
- * @api public
14944
- */
14945
- exports.log = console.debug || console.log || (() => {});
14946
-
14947
- /**
14948
- * Save `namespaces`.
14949
- *
14950
- * @param {String} namespaces
14951
- * @api private
14952
- */
14953
- function save(namespaces) {
14954
- try {
14955
- if (namespaces) {
14956
- exports.storage.setItem('debug', namespaces);
14957
- } else {
14958
- exports.storage.removeItem('debug');
14959
- }
14960
- } catch (error) {
14961
- // Swallow
14962
- // XXX (@Qix-) should we be logging these?
14963
- }
14964
- }
14965
-
14966
- /**
14967
- * Load `namespaces`.
14968
- *
14969
- * @return {String} returns the previously persisted debug modes
14970
- * @api private
14971
- */
14972
- function load() {
14973
- let r;
14974
- try {
14975
- r = exports.storage.getItem('debug');
14976
- } catch (error) {
14977
- // Swallow
14978
- // XXX (@Qix-) should we be logging these?
14979
- }
14980
-
14981
- // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
14982
- if (!r && typeof process !== 'undefined' && 'env' in process) {
14983
- r = process.env.DEBUG;
14984
- }
14985
-
14986
- return r;
14987
- }
14988
-
14989
- /**
14990
- * Localstorage attempts to return the localstorage.
14991
- *
14992
- * This is necessary because safari throws
14993
- * when a user disables cookies/localstorage
14994
- * and you attempt to access it.
14995
- *
14996
- * @return {LocalStorage}
14997
- * @api private
14998
- */
14999
-
15000
- function localstorage() {
15001
- try {
15002
- // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context
15003
- // The Browser also has localStorage in the global context.
15004
- return localStorage;
15005
- } catch (error) {
15006
- // Swallow
15007
- // XXX (@Qix-) should we be logging these?
15008
- }
15009
- }
15010
-
15011
- module.exports = requireCommon()(exports);
15012
-
15013
- const {formatters} = module.exports;
15014
-
15015
- /**
15016
- * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
15017
- */
15018
-
15019
- formatters.j = function (v) {
15020
- try {
15021
- return JSON.stringify(v);
15022
- } catch (error) {
15023
- return '[UnexpectedJSONParseError]: ' + error.message;
15024
- }
15025
- };
15026
- } (browser, browser.exports));
15027
- return browser.exports;
15028
- }
15029
-
15030
- var node = {exports: {}};
15031
-
15032
- var hasFlag;
15033
- var hasRequiredHasFlag;
15034
-
15035
- function requireHasFlag () {
15036
- if (hasRequiredHasFlag) return hasFlag;
15037
- hasRequiredHasFlag = 1;
15038
- hasFlag = (flag, argv) => {
15039
- argv = argv || process.argv;
15040
- const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');
15041
- const pos = argv.indexOf(prefix + flag);
15042
- const terminatorPos = argv.indexOf('--');
15043
- return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
15044
- };
15045
- return hasFlag;
15046
- }
15047
-
15048
- var supportsColor_1;
15049
- var hasRequiredSupportsColor;
15050
-
15051
- function requireSupportsColor () {
15052
- if (hasRequiredSupportsColor) return supportsColor_1;
15053
- hasRequiredSupportsColor = 1;
15054
- const os = require$$0$2;
15055
- const hasFlag = requireHasFlag();
15056
-
15057
- const env = process.env;
15058
-
15059
- let forceColor;
15060
- if (hasFlag('no-color') ||
15061
- hasFlag('no-colors') ||
15062
- hasFlag('color=false')) {
15063
- forceColor = false;
15064
- } else if (hasFlag('color') ||
15065
- hasFlag('colors') ||
15066
- hasFlag('color=true') ||
15067
- hasFlag('color=always')) {
15068
- forceColor = true;
15069
- }
15070
- if ('FORCE_COLOR' in env) {
15071
- forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;
15072
- }
15073
-
15074
- function translateLevel(level) {
15075
- if (level === 0) {
15076
- return false;
15077
- }
15078
-
15079
- return {
15080
- level,
15081
- hasBasic: true,
15082
- has256: level >= 2,
15083
- has16m: level >= 3
15084
- };
15085
- }
15086
-
15087
- function supportsColor(stream) {
15088
- if (forceColor === false) {
15089
- return 0;
15090
- }
15091
-
15092
- if (hasFlag('color=16m') ||
15093
- hasFlag('color=full') ||
15094
- hasFlag('color=truecolor')) {
15095
- return 3;
15096
- }
15097
-
15098
- if (hasFlag('color=256')) {
15099
- return 2;
15100
- }
15101
-
15102
- if (stream && !stream.isTTY && forceColor !== true) {
15103
- return 0;
15104
- }
15105
-
15106
- const min = forceColor ? 1 : 0;
15107
-
15108
- if (process.platform === 'win32') {
15109
- // Node.js 7.5.0 is the first version of Node.js to include a patch to
15110
- // libuv that enables 256 color output on Windows. Anything earlier and it
15111
- // won't work. However, here we target Node.js 8 at minimum as it is an LTS
15112
- // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows
15113
- // release that supports 256 colors. Windows 10 build 14931 is the first release
15114
- // that supports 16m/TrueColor.
15115
- const osRelease = os.release().split('.');
15116
- if (
15117
- Number(process.versions.node.split('.')[0]) >= 8 &&
15118
- Number(osRelease[0]) >= 10 &&
15119
- Number(osRelease[2]) >= 10586
15120
- ) {
15121
- return Number(osRelease[2]) >= 14931 ? 3 : 2;
15122
- }
15123
-
15124
- return 1;
15125
- }
15126
-
15127
- if ('CI' in env) {
15128
- if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') {
15129
- return 1;
15130
- }
15131
-
15132
- return min;
15133
- }
15134
-
15135
- if ('TEAMCITY_VERSION' in env) {
15136
- return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
15137
- }
15138
-
15139
- if (env.COLORTERM === 'truecolor') {
15140
- return 3;
15141
- }
15142
-
15143
- if ('TERM_PROGRAM' in env) {
15144
- const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
15145
-
15146
- switch (env.TERM_PROGRAM) {
15147
- case 'iTerm.app':
15148
- return version >= 3 ? 3 : 2;
15149
- case 'Apple_Terminal':
15150
- return 2;
15151
- // No default
15152
- }
15153
- }
15154
-
15155
- if (/-256(color)?$/i.test(env.TERM)) {
15156
- return 2;
15157
- }
15158
-
15159
- if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
15160
- return 1;
15161
- }
15162
-
15163
- if ('COLORTERM' in env) {
15164
- return 1;
15165
- }
15166
-
15167
- if (env.TERM === 'dumb') {
15168
- return min;
15169
- }
15170
-
15171
- return min;
15172
- }
15173
-
15174
- function getSupportLevel(stream) {
15175
- const level = supportsColor(stream);
15176
- return translateLevel(level);
15177
- }
15178
-
15179
- supportsColor_1 = {
15180
- supportsColor: getSupportLevel,
15181
- stdout: getSupportLevel(process.stdout),
15182
- stderr: getSupportLevel(process.stderr)
15183
- };
15184
- return supportsColor_1;
15185
- }
15186
-
15187
- /**
15188
- * Module dependencies.
15189
- */
15190
-
15191
- var hasRequiredNode;
15192
-
15193
- function requireNode () {
15194
- if (hasRequiredNode) return node.exports;
15195
- hasRequiredNode = 1;
15196
- (function (module, exports) {
15197
- const tty = require$$0$3;
15198
- const util = require$$1;
15199
-
15200
- /**
15201
- * This is the Node.js implementation of `debug()`.
15202
- */
15203
-
15204
- exports.init = init;
15205
- exports.log = log;
15206
- exports.formatArgs = formatArgs;
15207
- exports.save = save;
15208
- exports.load = load;
15209
- exports.useColors = useColors;
15210
- exports.destroy = util.deprecate(
15211
- () => {},
15212
- 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'
15213
- );
14983
+ exports.destroy = util.deprecate(
14984
+ () => {},
14985
+ 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'
14986
+ );
15214
14987
 
15215
14988
  /**
15216
14989
  * Colors.
@@ -15308,83 +15081,352 @@ function requireNode () {
15308
15081
  }
15309
15082
 
15310
15083
  /**
15311
- * Build up the default `inspectOpts` object from the environment variables.
15312
- *
15313
- * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
15084
+ * Build up the default `inspectOpts` object from the environment variables.
15085
+ *
15086
+ * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
15087
+ */
15088
+
15089
+ exports.inspectOpts = Object.keys(process.env).filter(key => {
15090
+ return /^debug_/i.test(key);
15091
+ }).reduce((obj, key) => {
15092
+ // Camel-case
15093
+ const prop = key
15094
+ .substring(6)
15095
+ .toLowerCase()
15096
+ .replace(/_([a-z])/g, (_, k) => {
15097
+ return k.toUpperCase();
15098
+ });
15099
+
15100
+ // Coerce string value into JS value
15101
+ let val = process.env[key];
15102
+ if (/^(yes|on|true|enabled)$/i.test(val)) {
15103
+ val = true;
15104
+ } else if (/^(no|off|false|disabled)$/i.test(val)) {
15105
+ val = false;
15106
+ } else if (val === 'null') {
15107
+ val = null;
15108
+ } else {
15109
+ val = Number(val);
15110
+ }
15111
+
15112
+ obj[prop] = val;
15113
+ return obj;
15114
+ }, {});
15115
+
15116
+ /**
15117
+ * Is stdout a TTY? Colored output is enabled when `true`.
15118
+ */
15119
+
15120
+ function useColors() {
15121
+ return 'colors' in exports.inspectOpts ?
15122
+ Boolean(exports.inspectOpts.colors) :
15123
+ tty.isatty(process.stderr.fd);
15124
+ }
15125
+
15126
+ /**
15127
+ * Adds ANSI color escape codes if enabled.
15128
+ *
15129
+ * @api public
15130
+ */
15131
+
15132
+ function formatArgs(args) {
15133
+ const {namespace: name, useColors} = this;
15134
+
15135
+ if (useColors) {
15136
+ const c = this.color;
15137
+ const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c);
15138
+ const prefix = ` ${colorCode};1m${name} \u001B[0m`;
15139
+
15140
+ args[0] = prefix + args[0].split('\n').join('\n' + prefix);
15141
+ args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m');
15142
+ } else {
15143
+ args[0] = getDate() + name + ' ' + args[0];
15144
+ }
15145
+ }
15146
+
15147
+ function getDate() {
15148
+ if (exports.inspectOpts.hideDate) {
15149
+ return '';
15150
+ }
15151
+ return new Date().toISOString() + ' ';
15152
+ }
15153
+
15154
+ /**
15155
+ * Invokes `util.format()` with the specified arguments and writes to stderr.
15156
+ */
15157
+
15158
+ function log(...args) {
15159
+ return process.stderr.write(util.format(...args) + '\n');
15160
+ }
15161
+
15162
+ /**
15163
+ * Save `namespaces`.
15164
+ *
15165
+ * @param {String} namespaces
15166
+ * @api private
15167
+ */
15168
+ function save(namespaces) {
15169
+ if (namespaces) {
15170
+ process.env.DEBUG = namespaces;
15171
+ } else {
15172
+ // If you set a process.env field to null or undefined, it gets cast to the
15173
+ // string 'null' or 'undefined'. Just delete instead.
15174
+ delete process.env.DEBUG;
15175
+ }
15176
+ }
15177
+
15178
+ /**
15179
+ * Load `namespaces`.
15180
+ *
15181
+ * @return {String} returns the previously persisted debug modes
15182
+ * @api private
15183
+ */
15184
+
15185
+ function load() {
15186
+ return process.env.DEBUG;
15187
+ }
15188
+
15189
+ /**
15190
+ * Init logic for `debug` instances.
15191
+ *
15192
+ * Create a new `inspectOpts` object in case `useColors` is set
15193
+ * differently for a particular `debug` instance.
15194
+ */
15195
+
15196
+ function init(debug) {
15197
+ debug.inspectOpts = {};
15198
+
15199
+ const keys = Object.keys(exports.inspectOpts);
15200
+ for (let i = 0; i < keys.length; i++) {
15201
+ debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
15202
+ }
15203
+ }
15204
+
15205
+ module.exports = requireCommon()(exports);
15206
+
15207
+ const {formatters} = module.exports;
15208
+
15209
+ /**
15210
+ * Map %o to `util.inspect()`, all on a single line.
15211
+ */
15212
+
15213
+ formatters.o = function (v) {
15214
+ this.inspectOpts.colors = this.useColors;
15215
+ return util.inspect(v, this.inspectOpts)
15216
+ .split('\n')
15217
+ .map(str => str.trim())
15218
+ .join(' ');
15219
+ };
15220
+
15221
+ /**
15222
+ * Map %O to `util.inspect()`, allowing multiple lines if needed.
15223
+ */
15224
+
15225
+ formatters.O = function (v) {
15226
+ this.inspectOpts.colors = this.useColors;
15227
+ return util.inspect(v, this.inspectOpts);
15228
+ };
15229
+ } (node, node.exports));
15230
+ return node.exports;
15231
+ }
15232
+
15233
+ var browser = {exports: {}};
15234
+
15235
+ /* eslint-env browser */
15236
+
15237
+ var hasRequiredBrowser;
15238
+
15239
+ function requireBrowser () {
15240
+ if (hasRequiredBrowser) return browser.exports;
15241
+ hasRequiredBrowser = 1;
15242
+ (function (module, exports) {
15243
+ /**
15244
+ * This is the web browser implementation of `debug()`.
15314
15245
  */
15315
15246
 
15316
- exports.inspectOpts = Object.keys(process.env).filter(key => {
15317
- return /^debug_/i.test(key);
15318
- }).reduce((obj, key) => {
15319
- // Camel-case
15320
- const prop = key
15321
- .substring(6)
15322
- .toLowerCase()
15323
- .replace(/_([a-z])/g, (_, k) => {
15324
- return k.toUpperCase();
15325
- });
15247
+ exports.formatArgs = formatArgs;
15248
+ exports.save = save;
15249
+ exports.load = load;
15250
+ exports.useColors = useColors;
15251
+ exports.storage = localstorage();
15252
+ exports.destroy = (() => {
15253
+ let warned = false;
15326
15254
 
15327
- // Coerce string value into JS value
15328
- let val = process.env[key];
15329
- if (/^(yes|on|true|enabled)$/i.test(val)) {
15330
- val = true;
15331
- } else if (/^(no|off|false|disabled)$/i.test(val)) {
15332
- val = false;
15333
- } else if (val === 'null') {
15334
- val = null;
15335
- } else {
15336
- val = Number(val);
15337
- }
15255
+ return () => {
15256
+ if (!warned) {
15257
+ warned = true;
15258
+ console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');
15259
+ }
15260
+ };
15261
+ })();
15338
15262
 
15339
- obj[prop] = val;
15340
- return obj;
15341
- }, {});
15263
+ /**
15264
+ * Colors.
15265
+ */
15266
+
15267
+ exports.colors = [
15268
+ '#0000CC',
15269
+ '#0000FF',
15270
+ '#0033CC',
15271
+ '#0033FF',
15272
+ '#0066CC',
15273
+ '#0066FF',
15274
+ '#0099CC',
15275
+ '#0099FF',
15276
+ '#00CC00',
15277
+ '#00CC33',
15278
+ '#00CC66',
15279
+ '#00CC99',
15280
+ '#00CCCC',
15281
+ '#00CCFF',
15282
+ '#3300CC',
15283
+ '#3300FF',
15284
+ '#3333CC',
15285
+ '#3333FF',
15286
+ '#3366CC',
15287
+ '#3366FF',
15288
+ '#3399CC',
15289
+ '#3399FF',
15290
+ '#33CC00',
15291
+ '#33CC33',
15292
+ '#33CC66',
15293
+ '#33CC99',
15294
+ '#33CCCC',
15295
+ '#33CCFF',
15296
+ '#6600CC',
15297
+ '#6600FF',
15298
+ '#6633CC',
15299
+ '#6633FF',
15300
+ '#66CC00',
15301
+ '#66CC33',
15302
+ '#9900CC',
15303
+ '#9900FF',
15304
+ '#9933CC',
15305
+ '#9933FF',
15306
+ '#99CC00',
15307
+ '#99CC33',
15308
+ '#CC0000',
15309
+ '#CC0033',
15310
+ '#CC0066',
15311
+ '#CC0099',
15312
+ '#CC00CC',
15313
+ '#CC00FF',
15314
+ '#CC3300',
15315
+ '#CC3333',
15316
+ '#CC3366',
15317
+ '#CC3399',
15318
+ '#CC33CC',
15319
+ '#CC33FF',
15320
+ '#CC6600',
15321
+ '#CC6633',
15322
+ '#CC9900',
15323
+ '#CC9933',
15324
+ '#CCCC00',
15325
+ '#CCCC33',
15326
+ '#FF0000',
15327
+ '#FF0033',
15328
+ '#FF0066',
15329
+ '#FF0099',
15330
+ '#FF00CC',
15331
+ '#FF00FF',
15332
+ '#FF3300',
15333
+ '#FF3333',
15334
+ '#FF3366',
15335
+ '#FF3399',
15336
+ '#FF33CC',
15337
+ '#FF33FF',
15338
+ '#FF6600',
15339
+ '#FF6633',
15340
+ '#FF9900',
15341
+ '#FF9933',
15342
+ '#FFCC00',
15343
+ '#FFCC33'
15344
+ ];
15342
15345
 
15343
15346
  /**
15344
- * Is stdout a TTY? Colored output is enabled when `true`.
15347
+ * Currently only WebKit-based Web Inspectors, Firefox >= v31,
15348
+ * and the Firebug extension (any Firefox version) are known
15349
+ * to support "%c" CSS customizations.
15350
+ *
15351
+ * TODO: add a `localStorage` variable to explicitly enable/disable colors
15345
15352
  */
15346
15353
 
15354
+ // eslint-disable-next-line complexity
15347
15355
  function useColors() {
15348
- return 'colors' in exports.inspectOpts ?
15349
- Boolean(exports.inspectOpts.colors) :
15350
- tty.isatty(process.stderr.fd);
15356
+ // NB: In an Electron preload script, document will be defined but not fully
15357
+ // initialized. Since we know we're in Chrome, we'll just detect this case
15358
+ // explicitly
15359
+ if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {
15360
+ return true;
15361
+ }
15362
+
15363
+ // Internet Explorer and Edge do not support colors.
15364
+ if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
15365
+ return false;
15366
+ }
15367
+
15368
+ // Is webkit? http://stackoverflow.com/a/16459606/376773
15369
+ // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
15370
+ return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
15371
+ // Is firebug? http://stackoverflow.com/a/398120/376773
15372
+ (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
15373
+ // Is firefox >= v31?
15374
+ // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
15375
+ (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
15376
+ // Double check webkit in userAgent just in case we are in a worker
15377
+ (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
15351
15378
  }
15352
15379
 
15353
15380
  /**
15354
- * Adds ANSI color escape codes if enabled.
15381
+ * Colorize log arguments if enabled.
15355
15382
  *
15356
15383
  * @api public
15357
15384
  */
15358
15385
 
15359
15386
  function formatArgs(args) {
15360
- const {namespace: name, useColors} = this;
15361
-
15362
- if (useColors) {
15363
- const c = this.color;
15364
- const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c);
15365
- const prefix = ` ${colorCode};1m${name} \u001B[0m`;
15387
+ args[0] = (this.useColors ? '%c' : '') +
15388
+ this.namespace +
15389
+ (this.useColors ? ' %c' : ' ') +
15390
+ args[0] +
15391
+ (this.useColors ? '%c ' : ' ') +
15392
+ '+' + module.exports.humanize(this.diff);
15366
15393
 
15367
- args[0] = prefix + args[0].split('\n').join('\n' + prefix);
15368
- args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m');
15369
- } else {
15370
- args[0] = getDate() + name + ' ' + args[0];
15394
+ if (!this.useColors) {
15395
+ return;
15371
15396
  }
15372
- }
15373
15397
 
15374
- function getDate() {
15375
- if (exports.inspectOpts.hideDate) {
15376
- return '';
15377
- }
15378
- return new Date().toISOString() + ' ';
15398
+ const c = 'color: ' + this.color;
15399
+ args.splice(1, 0, c, 'color: inherit');
15400
+
15401
+ // The final "%c" is somewhat tricky, because there could be other
15402
+ // arguments passed either before or after the %c, so we need to
15403
+ // figure out the correct index to insert the CSS into
15404
+ let index = 0;
15405
+ let lastC = 0;
15406
+ args[0].replace(/%[a-zA-Z%]/g, match => {
15407
+ if (match === '%%') {
15408
+ return;
15409
+ }
15410
+ index++;
15411
+ if (match === '%c') {
15412
+ // We only are interested in the *last* %c
15413
+ // (the user may have provided their own)
15414
+ lastC = index;
15415
+ }
15416
+ });
15417
+
15418
+ args.splice(lastC, 0, c);
15379
15419
  }
15380
15420
 
15381
15421
  /**
15382
- * Invokes `util.format()` with the specified arguments and writes to stderr.
15422
+ * Invokes `console.debug()` when available.
15423
+ * No-op when `console.debug` is not a "function".
15424
+ * If `console.debug` is not available, falls back
15425
+ * to `console.log`.
15426
+ *
15427
+ * @api public
15383
15428
  */
15384
-
15385
- function log(...args) {
15386
- return process.stderr.write(util.format(...args) + '\n');
15387
- }
15429
+ exports.log = console.debug || console.log || (() => {});
15388
15430
 
15389
15431
  /**
15390
15432
  * Save `namespaces`.
@@ -15393,12 +15435,15 @@ function requireNode () {
15393
15435
  * @api private
15394
15436
  */
15395
15437
  function save(namespaces) {
15396
- if (namespaces) {
15397
- process.env.DEBUG = namespaces;
15398
- } else {
15399
- // If you set a process.env field to null or undefined, it gets cast to the
15400
- // string 'null' or 'undefined'. Just delete instead.
15401
- delete process.env.DEBUG;
15438
+ try {
15439
+ if (namespaces) {
15440
+ exports.storage.setItem('debug', namespaces);
15441
+ } else {
15442
+ exports.storage.removeItem('debug');
15443
+ }
15444
+ } catch (error) {
15445
+ // Swallow
15446
+ // XXX (@Qix-) should we be logging these?
15402
15447
  }
15403
15448
  }
15404
15449
 
@@ -15408,24 +15453,42 @@ function requireNode () {
15408
15453
  * @return {String} returns the previously persisted debug modes
15409
15454
  * @api private
15410
15455
  */
15411
-
15412
15456
  function load() {
15413
- return process.env.DEBUG;
15457
+ let r;
15458
+ try {
15459
+ r = exports.storage.getItem('debug');
15460
+ } catch (error) {
15461
+ // Swallow
15462
+ // XXX (@Qix-) should we be logging these?
15463
+ }
15464
+
15465
+ // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
15466
+ if (!r && typeof process !== 'undefined' && 'env' in process) {
15467
+ r = process.env.DEBUG;
15468
+ }
15469
+
15470
+ return r;
15414
15471
  }
15415
15472
 
15416
15473
  /**
15417
- * Init logic for `debug` instances.
15474
+ * Localstorage attempts to return the localstorage.
15418
15475
  *
15419
- * Create a new `inspectOpts` object in case `useColors` is set
15420
- * differently for a particular `debug` instance.
15476
+ * This is necessary because safari throws
15477
+ * when a user disables cookies/localstorage
15478
+ * and you attempt to access it.
15479
+ *
15480
+ * @return {LocalStorage}
15481
+ * @api private
15421
15482
  */
15422
15483
 
15423
- function init(debug) {
15424
- debug.inspectOpts = {};
15425
-
15426
- const keys = Object.keys(exports.inspectOpts);
15427
- for (let i = 0; i < keys.length; i++) {
15428
- debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
15484
+ function localstorage() {
15485
+ try {
15486
+ // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context
15487
+ // The Browser also has localStorage in the global context.
15488
+ return localStorage;
15489
+ } catch (error) {
15490
+ // Swallow
15491
+ // XXX (@Qix-) should we be logging these?
15429
15492
  }
15430
15493
  }
15431
15494
 
@@ -15434,27 +15497,18 @@ function requireNode () {
15434
15497
  const {formatters} = module.exports;
15435
15498
 
15436
15499
  /**
15437
- * Map %o to `util.inspect()`, all on a single line.
15438
- */
15439
-
15440
- formatters.o = function (v) {
15441
- this.inspectOpts.colors = this.useColors;
15442
- return util.inspect(v, this.inspectOpts)
15443
- .split('\n')
15444
- .map(str => str.trim())
15445
- .join(' ');
15446
- };
15447
-
15448
- /**
15449
- * Map %O to `util.inspect()`, allowing multiple lines if needed.
15500
+ * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
15450
15501
  */
15451
15502
 
15452
- formatters.O = function (v) {
15453
- this.inspectOpts.colors = this.useColors;
15454
- return util.inspect(v, this.inspectOpts);
15503
+ formatters.j = function (v) {
15504
+ try {
15505
+ return JSON.stringify(v);
15506
+ } catch (error) {
15507
+ return '[UnexpectedJSONParseError]: ' + error.message;
15508
+ }
15455
15509
  };
15456
- } (node, node.exports));
15457
- return node.exports;
15510
+ } (browser, browser.exports));
15511
+ return browser.exports;
15458
15512
  }
15459
15513
 
15460
15514
  /**
@@ -15531,6 +15585,9 @@ var WriteAfterEndError = createErrorType(
15531
15585
  "write after end"
15532
15586
  );
15533
15587
 
15588
+ // istanbul ignore next
15589
+ var destroy = Writable.prototype.destroy || noop;
15590
+
15534
15591
  // An HTTP(S) request that can be redirected
15535
15592
  function RedirectableRequest(options, responseCallback) {
15536
15593
  // Initialize the request
@@ -15561,10 +15618,17 @@ function RedirectableRequest(options, responseCallback) {
15561
15618
  RedirectableRequest.prototype = Object.create(Writable.prototype);
15562
15619
 
15563
15620
  RedirectableRequest.prototype.abort = function () {
15564
- abortRequest(this._currentRequest);
15621
+ destroyRequest(this._currentRequest);
15622
+ this._currentRequest.abort();
15565
15623
  this.emit("abort");
15566
15624
  };
15567
15625
 
15626
+ RedirectableRequest.prototype.destroy = function (error) {
15627
+ destroyRequest(this._currentRequest, error);
15628
+ destroy.call(this, error);
15629
+ return this;
15630
+ };
15631
+
15568
15632
  // Writes buffered data to the current native request
15569
15633
  RedirectableRequest.prototype.write = function (data, encoding, callback) {
15570
15634
  // Writing is not allowed if end has been called
@@ -15677,6 +15741,7 @@ RedirectableRequest.prototype.setTimeout = function (msecs, callback) {
15677
15741
  self.removeListener("abort", clearTimer);
15678
15742
  self.removeListener("error", clearTimer);
15679
15743
  self.removeListener("response", clearTimer);
15744
+ self.removeListener("close", clearTimer);
15680
15745
  if (callback) {
15681
15746
  self.removeListener("timeout", callback);
15682
15747
  }
@@ -15703,6 +15768,7 @@ RedirectableRequest.prototype.setTimeout = function (msecs, callback) {
15703
15768
  this.on("abort", clearTimer);
15704
15769
  this.on("error", clearTimer);
15705
15770
  this.on("response", clearTimer);
15771
+ this.on("close", clearTimer);
15706
15772
 
15707
15773
  return this;
15708
15774
  };
@@ -15854,7 +15920,7 @@ RedirectableRequest.prototype._processResponse = function (response) {
15854
15920
  }
15855
15921
 
15856
15922
  // The response is a redirect, so abort the current request
15857
- abortRequest(this._currentRequest);
15923
+ destroyRequest(this._currentRequest);
15858
15924
  // Discard the remainder of the response to avoid waiting for data
15859
15925
  response.destroy();
15860
15926
 
@@ -16083,12 +16149,12 @@ function createErrorType(code, message, baseClass) {
16083
16149
  return CustomError;
16084
16150
  }
16085
16151
 
16086
- function abortRequest(request) {
16152
+ function destroyRequest(request, error) {
16087
16153
  for (var event of events) {
16088
16154
  request.removeListener(event, eventHandlers[event]);
16089
16155
  }
16090
16156
  request.on("error", noop);
16091
- request.abort();
16157
+ request.destroy(error);
16092
16158
  }
16093
16159
 
16094
16160
  function isSubdomain(subdomain, domain) {
@@ -16116,7 +16182,7 @@ followRedirects$1.exports.wrap = wrap;
16116
16182
  var followRedirectsExports = followRedirects$1.exports;
16117
16183
  var followRedirects = /*@__PURE__*/getDefaultExportFromCjs(followRedirectsExports);
16118
16184
 
16119
- const VERSION = "1.5.1";
16185
+ const VERSION = "1.6.2";
16120
16186
 
16121
16187
  function parseProtocol(url) {
16122
16188
  const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
@@ -16257,7 +16323,7 @@ const kInternals = Symbol('internals');
16257
16323
 
16258
16324
  class AxiosTransformStream extends stream.Transform{
16259
16325
  constructor(options) {
16260
- options = utils.toFlatObject(options, {
16326
+ options = utils$1.toFlatObject(options, {
16261
16327
  maxRate: 0,
16262
16328
  chunkSize: 64 * 1024,
16263
16329
  minChunkSize: 100,
@@ -16265,7 +16331,7 @@ class AxiosTransformStream extends stream.Transform{
16265
16331
  ticksRate: 2,
16266
16332
  samplesCount: 15
16267
16333
  }, null, (prop, source) => {
16268
- return !utils.isUndefined(source[prop]);
16334
+ return !utils$1.isUndefined(source[prop]);
16269
16335
  });
16270
16336
 
16271
16337
  super({
@@ -16454,7 +16520,7 @@ const readBlob = async function* (blob) {
16454
16520
 
16455
16521
  var readBlob$1 = readBlob;
16456
16522
 
16457
- const BOUNDARY_ALPHABET = utils.ALPHABET.ALPHA_DIGIT + '-_';
16523
+ const BOUNDARY_ALPHABET = utils$1.ALPHABET.ALPHA_DIGIT + '-_';
16458
16524
 
16459
16525
  const textEncoder = new require$$1.TextEncoder();
16460
16526
 
@@ -16465,7 +16531,7 @@ const CRLF_BYTES_COUNT = 2;
16465
16531
  class FormDataPart {
16466
16532
  constructor(name, value) {
16467
16533
  const {escapeName} = this.constructor;
16468
- const isStringValue = utils.isString(value);
16534
+ const isStringValue = utils$1.isString(value);
16469
16535
 
16470
16536
  let headers = `Content-Disposition: form-data; name="${escapeName(name)}"${
16471
16537
  !isStringValue && value.name ? `; filename="${escapeName(value.name)}"` : ''
@@ -16492,7 +16558,7 @@ class FormDataPart {
16492
16558
 
16493
16559
  const {value} = this;
16494
16560
 
16495
- if(utils.isTypedArray(value)) {
16561
+ if(utils$1.isTypedArray(value)) {
16496
16562
  yield value;
16497
16563
  } else {
16498
16564
  yield* readBlob$1(value);
@@ -16514,10 +16580,10 @@ const formDataToStream = (form, headersHandler, options) => {
16514
16580
  const {
16515
16581
  tag = 'form-data-boundary',
16516
16582
  size = 25,
16517
- boundary = tag + '-' + utils.generateString(size, BOUNDARY_ALPHABET)
16583
+ boundary = tag + '-' + utils$1.generateString(size, BOUNDARY_ALPHABET)
16518
16584
  } = options || {};
16519
16585
 
16520
- if(!utils.isFormData(form)) {
16586
+ if(!utils$1.isFormData(form)) {
16521
16587
  throw TypeError('FormData instance required');
16522
16588
  }
16523
16589
 
@@ -16537,7 +16603,7 @@ const formDataToStream = (form, headersHandler, options) => {
16537
16603
 
16538
16604
  contentLength += boundaryBytes.byteLength * parts.length;
16539
16605
 
16540
- contentLength = utils.toFiniteNumber(contentLength);
16606
+ contentLength = utils$1.toFiniteNumber(contentLength);
16541
16607
 
16542
16608
  const computedHeaders = {
16543
16609
  'Content-Type': `multipart/form-data; boundary=${boundary}`
@@ -16587,7 +16653,7 @@ class ZlibHeaderTransformStream extends stream.Transform {
16587
16653
  var ZlibHeaderTransformStream$1 = ZlibHeaderTransformStream;
16588
16654
 
16589
16655
  const callbackify = (fn, reducer) => {
16590
- return utils.isAsyncFn(fn) ? function (...args) {
16656
+ return utils$1.isAsyncFn(fn) ? function (...args) {
16591
16657
  const cb = args.pop();
16592
16658
  fn.apply(this, args).then((value) => {
16593
16659
  try {
@@ -16611,7 +16677,7 @@ const brotliOptions = {
16611
16677
  finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH
16612
16678
  };
16613
16679
 
16614
- const isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress);
16680
+ const isBrotliSupported = utils$1.isFunction(zlib.createBrotliDecompress);
16615
16681
 
16616
16682
  const {http: httpFollow, https: httpsFollow} = followRedirects;
16617
16683
 
@@ -16691,7 +16757,7 @@ function setProxy(options, configProxy, location) {
16691
16757
  };
16692
16758
  }
16693
16759
 
16694
- const isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process';
16760
+ const isHttpAdapterSupported = typeof process !== 'undefined' && utils$1.kindOf(process) === 'process';
16695
16761
 
16696
16762
  // temporary hotfix
16697
16763
 
@@ -16720,6 +16786,18 @@ const wrapAsync = (asyncExecutor) => {
16720
16786
  })
16721
16787
  };
16722
16788
 
16789
+ const resolveFamily = ({address, family}) => {
16790
+ if (!utils$1.isString(address)) {
16791
+ throw TypeError('address must be a string');
16792
+ }
16793
+ return ({
16794
+ address,
16795
+ family: family || (address.indexOf('.') < 0 ? 6 : 4)
16796
+ });
16797
+ };
16798
+
16799
+ const buildAddressEntry = (address, family) => resolveFamily(utils$1.isObject(address) ? address : {address, family});
16800
+
16723
16801
  /*eslint consistent-return:0*/
16724
16802
  var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
16725
16803
  return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {
@@ -16730,15 +16808,16 @@ var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
16730
16808
  let rejected = false;
16731
16809
  let req;
16732
16810
 
16733
- if (lookup && utils.isAsyncFn(lookup)) {
16734
- lookup = callbackify$1(lookup, (entry) => {
16735
- if(utils.isString(entry)) {
16736
- entry = [entry, entry.indexOf('.') < 0 ? 6 : 4];
16737
- } else if (!utils.isArray(entry)) {
16738
- throw new TypeError('lookup async function must return an array [ip: string, family: number]]')
16739
- }
16740
- return entry;
16741
- });
16811
+ if (lookup) {
16812
+ const _lookup = callbackify$1(lookup, (value) => utils$1.isArray(value) ? value : [value]);
16813
+ // hotfix to support opt.all option which is required for node 20.x
16814
+ lookup = (hostname, opt, cb) => {
16815
+ _lookup(hostname, opt, (err, arg0, arg1) => {
16816
+ const addresses = utils$1.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];
16817
+
16818
+ opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);
16819
+ });
16820
+ };
16742
16821
  }
16743
16822
 
16744
16823
  // temporary internal emitter until the AxiosRequest class will be implemented
@@ -16806,7 +16885,7 @@ var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
16806
16885
  convertedData = convertedData.toString(responseEncoding);
16807
16886
 
16808
16887
  if (!responseEncoding || responseEncoding === 'utf8') {
16809
- convertedData = utils.stripBOM(convertedData);
16888
+ convertedData = utils$1.stripBOM(convertedData);
16810
16889
  }
16811
16890
  } else if (responseType === 'stream') {
16812
16891
  convertedData = stream.Readable.from(convertedData);
@@ -16844,7 +16923,7 @@ var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
16844
16923
  let maxDownloadRate = undefined;
16845
16924
 
16846
16925
  // support for spec compliant FormData objects
16847
- if (utils.isSpecCompliantForm(data)) {
16926
+ if (utils$1.isSpecCompliantForm(data)) {
16848
16927
  const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i);
16849
16928
 
16850
16929
  data = formDataToStream$1(data, (formHeaders) => {
@@ -16854,7 +16933,7 @@ var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
16854
16933
  boundary: userBoundary && userBoundary[1] || undefined
16855
16934
  });
16856
16935
  // support for https://www.npmjs.com/package/form-data api
16857
- } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) {
16936
+ } else if (utils$1.isFormData(data) && utils$1.isFunction(data.getHeaders)) {
16858
16937
  headers.set(data.getHeaders());
16859
16938
 
16860
16939
  if (!headers.hasContentLength()) {
@@ -16865,14 +16944,14 @@ var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
16865
16944
  } catch (e) {
16866
16945
  }
16867
16946
  }
16868
- } else if (utils.isBlob(data)) {
16947
+ } else if (utils$1.isBlob(data)) {
16869
16948
  data.size && headers.setContentType(data.type || 'application/octet-stream');
16870
16949
  headers.setContentLength(data.size || 0);
16871
16950
  data = stream.Readable.from(readBlob$1(data));
16872
- } else if (data && !utils.isStream(data)) {
16873
- if (Buffer.isBuffer(data)) ; else if (utils.isArrayBuffer(data)) {
16951
+ } else if (data && !utils$1.isStream(data)) {
16952
+ if (Buffer.isBuffer(data)) ; else if (utils$1.isArrayBuffer(data)) {
16874
16953
  data = Buffer.from(new Uint8Array(data));
16875
- } else if (utils.isString(data)) {
16954
+ } else if (utils$1.isString(data)) {
16876
16955
  data = Buffer.from(data, 'utf-8');
16877
16956
  } else {
16878
16957
  return reject(new AxiosError(
@@ -16894,9 +16973,9 @@ var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
16894
16973
  }
16895
16974
  }
16896
16975
 
16897
- const contentLength = utils.toFiniteNumber(headers.getContentLength());
16976
+ const contentLength = utils$1.toFiniteNumber(headers.getContentLength());
16898
16977
 
16899
- if (utils.isArray(maxRate)) {
16978
+ if (utils$1.isArray(maxRate)) {
16900
16979
  maxUploadRate = maxRate[0];
16901
16980
  maxDownloadRate = maxRate[1];
16902
16981
  } else {
@@ -16904,14 +16983,14 @@ var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
16904
16983
  }
16905
16984
 
16906
16985
  if (data && (onUploadProgress || maxUploadRate)) {
16907
- if (!utils.isStream(data)) {
16986
+ if (!utils$1.isStream(data)) {
16908
16987
  data = stream.Readable.from(data, {objectMode: false});
16909
16988
  }
16910
16989
 
16911
16990
  data = stream.pipeline([data, new AxiosTransformStream$1({
16912
16991
  length: contentLength,
16913
- maxRate: utils.toFiniteNumber(maxUploadRate)
16914
- })], utils.noop);
16992
+ maxRate: utils$1.toFiniteNumber(maxUploadRate)
16993
+ })], utils$1.noop);
16915
16994
 
16916
16995
  onUploadProgress && data.on('progress', progress => {
16917
16996
  onUploadProgress(Object.assign(progress, {
@@ -16970,7 +17049,7 @@ var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
16970
17049
  };
16971
17050
 
16972
17051
  // cacheable-lookup integration hotfix
16973
- !utils.isUndefined(lookup) && (options.lookup = lookup);
17052
+ !utils$1.isUndefined(lookup) && (options.lookup = lookup);
16974
17053
 
16975
17054
  if (config.socketPath) {
16976
17055
  options.socketPath = config.socketPath;
@@ -17018,8 +17097,8 @@ var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
17018
17097
 
17019
17098
  if (onDownloadProgress) {
17020
17099
  const transformStream = new AxiosTransformStream$1({
17021
- length: utils.toFiniteNumber(responseLength),
17022
- maxRate: utils.toFiniteNumber(maxDownloadRate)
17100
+ length: utils$1.toFiniteNumber(responseLength),
17101
+ maxRate: utils$1.toFiniteNumber(maxDownloadRate)
17023
17102
  });
17024
17103
 
17025
17104
  onDownloadProgress && transformStream.on('progress', progress => {
@@ -17074,7 +17153,7 @@ var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
17074
17153
  }
17075
17154
  }
17076
17155
 
17077
- responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0];
17156
+ responseStream = streams.length > 1 ? stream.pipeline(streams, utils$1.noop) : streams[0];
17078
17157
 
17079
17158
  const offListeners = stream.finished(responseStream, () => {
17080
17159
  offListeners();
@@ -17136,12 +17215,12 @@ var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
17136
17215
  if (responseType !== 'arraybuffer') {
17137
17216
  responseData = responseData.toString(responseEncoding);
17138
17217
  if (!responseEncoding || responseEncoding === 'utf8') {
17139
- responseData = utils.stripBOM(responseData);
17218
+ responseData = utils$1.stripBOM(responseData);
17140
17219
  }
17141
17220
  }
17142
17221
  response.data = responseData;
17143
17222
  } catch (err) {
17144
- reject(AxiosError.from(err, null, config, response.request, response));
17223
+ return reject(AxiosError.from(err, null, config, response.request, response));
17145
17224
  }
17146
17225
  settle(resolve, reject, response);
17147
17226
  });
@@ -17213,7 +17292,7 @@ var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
17213
17292
 
17214
17293
 
17215
17294
  // Send the request
17216
- if (utils.isStream(data)) {
17295
+ if (utils$1.isStream(data)) {
17217
17296
  let ended = false;
17218
17297
  let errored = false;
17219
17298
 
@@ -17239,55 +17318,46 @@ var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
17239
17318
  });
17240
17319
  };
17241
17320
 
17242
- var cookies = platform.isStandardBrowserEnv ?
17321
+ var cookies = platform.hasStandardBrowserEnv ?
17243
17322
 
17244
- // Standard browser envs support document.cookie
17245
- (function standardBrowserEnv() {
17246
- return {
17247
- write: function write(name, value, expires, path, domain, secure) {
17248
- const cookie = [];
17249
- cookie.push(name + '=' + encodeURIComponent(value));
17323
+ // Standard browser envs support document.cookie
17324
+ {
17325
+ write(name, value, expires, path, domain, secure) {
17326
+ const cookie = [name + '=' + encodeURIComponent(value)];
17250
17327
 
17251
- if (utils.isNumber(expires)) {
17252
- cookie.push('expires=' + new Date(expires).toGMTString());
17253
- }
17328
+ utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());
17254
17329
 
17255
- if (utils.isString(path)) {
17256
- cookie.push('path=' + path);
17257
- }
17330
+ utils$1.isString(path) && cookie.push('path=' + path);
17258
17331
 
17259
- if (utils.isString(domain)) {
17260
- cookie.push('domain=' + domain);
17261
- }
17332
+ utils$1.isString(domain) && cookie.push('domain=' + domain);
17262
17333
 
17263
- if (secure === true) {
17264
- cookie.push('secure');
17265
- }
17334
+ secure === true && cookie.push('secure');
17266
17335
 
17267
- document.cookie = cookie.join('; ');
17268
- },
17336
+ document.cookie = cookie.join('; ');
17337
+ },
17269
17338
 
17270
- read: function read(name) {
17271
- const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
17272
- return (match ? decodeURIComponent(match[3]) : null);
17273
- },
17339
+ read(name) {
17340
+ const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
17341
+ return (match ? decodeURIComponent(match[3]) : null);
17342
+ },
17274
17343
 
17275
- remove: function remove(name) {
17276
- this.write(name, '', Date.now() - 86400000);
17277
- }
17278
- };
17279
- })() :
17344
+ remove(name) {
17345
+ this.write(name, '', Date.now() - 86400000);
17346
+ }
17347
+ }
17280
17348
 
17281
- // Non standard browser env (web workers, react-native) lack needed support.
17282
- (function nonStandardBrowserEnv() {
17283
- return {
17284
- write: function write() {},
17285
- read: function read() { return null; },
17286
- remove: function remove() {}
17287
- };
17288
- })();
17349
+ :
17350
+
17351
+ // Non-standard browser env (web workers, react-native) lack needed support.
17352
+ {
17353
+ write() {},
17354
+ read() {
17355
+ return null;
17356
+ },
17357
+ remove() {}
17358
+ };
17289
17359
 
17290
- var isURLSameOrigin = platform.isStandardBrowserEnv ?
17360
+ var isURLSameOrigin = platform.hasStandardBrowserEnv ?
17291
17361
 
17292
17362
  // Standard browser envs have full support of the APIs needed to test
17293
17363
  // whether the request URL is of the same origin as current location.
@@ -17297,7 +17367,7 @@ var isURLSameOrigin = platform.isStandardBrowserEnv ?
17297
17367
  let originURL;
17298
17368
 
17299
17369
  /**
17300
- * Parse a URL to discover it's components
17370
+ * Parse a URL to discover its components
17301
17371
  *
17302
17372
  * @param {String} url The URL to be parsed
17303
17373
  * @returns {Object}
@@ -17337,7 +17407,7 @@ var isURLSameOrigin = platform.isStandardBrowserEnv ?
17337
17407
  * @returns {boolean} True if URL shares the same origin, otherwise false
17338
17408
  */
17339
17409
  return function isURLSameOrigin(requestURL) {
17340
- const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;
17410
+ const parsed = (utils$1.isString(requestURL)) ? resolveURL(requestURL) : requestURL;
17341
17411
  return (parsed.protocol === originURL.protocol &&
17342
17412
  parsed.host === originURL.host);
17343
17413
  };
@@ -17385,7 +17455,7 @@ var xhrAdapter = isXHRAdapterSupported && function (config) {
17385
17455
  return new Promise(function dispatchXhrRequest(resolve, reject) {
17386
17456
  let requestData = config.data;
17387
17457
  const requestHeaders = AxiosHeaders$1.from(config.headers).normalize();
17388
- const responseType = config.responseType;
17458
+ let {responseType, withXSRFToken} = config;
17389
17459
  let onCanceled;
17390
17460
  function done() {
17391
17461
  if (config.cancelToken) {
@@ -17399,14 +17469,13 @@ var xhrAdapter = isXHRAdapterSupported && function (config) {
17399
17469
 
17400
17470
  let contentType;
17401
17471
 
17402
- if (utils.isFormData(requestData)) {
17403
- if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) {
17472
+ if (utils$1.isFormData(requestData)) {
17473
+ if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {
17404
17474
  requestHeaders.setContentType(false); // Let the browser set it
17405
- } else if(!requestHeaders.getContentType(/^\s*multipart\/form-data/)){
17406
- requestHeaders.setContentType('multipart/form-data'); // mobile/desktop app frameworks
17407
- } else if(utils.isString(contentType = requestHeaders.getContentType())){
17475
+ } else if ((contentType = requestHeaders.getContentType()) !== false) {
17408
17476
  // fix semicolon duplication issue for ReactNative FormData implementation
17409
- requestHeaders.setContentType(contentType.replace(/^\s*(multipart\/form-data);+/, '$1'));
17477
+ const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];
17478
+ requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));
17410
17479
  }
17411
17480
  }
17412
17481
 
@@ -17522,13 +17591,16 @@ var xhrAdapter = isXHRAdapterSupported && function (config) {
17522
17591
  // Add xsrf header
17523
17592
  // This is only done if running in a standard browser environment.
17524
17593
  // Specifically not if we're in a web worker, or react-native.
17525
- if (platform.isStandardBrowserEnv) {
17526
- // Add xsrf header
17527
- const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))
17528
- && config.xsrfCookieName && cookies.read(config.xsrfCookieName);
17594
+ if(platform.hasStandardBrowserEnv) {
17595
+ withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));
17596
+
17597
+ if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {
17598
+ // Add xsrf header
17599
+ const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);
17529
17600
 
17530
- if (xsrfValue) {
17531
- requestHeaders.set(config.xsrfHeaderName, xsrfValue);
17601
+ if (xsrfValue) {
17602
+ requestHeaders.set(config.xsrfHeaderName, xsrfValue);
17603
+ }
17532
17604
  }
17533
17605
  }
17534
17606
 
@@ -17537,13 +17609,13 @@ var xhrAdapter = isXHRAdapterSupported && function (config) {
17537
17609
 
17538
17610
  // Add headers to the request
17539
17611
  if ('setRequestHeader' in request) {
17540
- utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
17612
+ utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
17541
17613
  request.setRequestHeader(key, val);
17542
17614
  });
17543
17615
  }
17544
17616
 
17545
17617
  // Add withCredentials to request if needed
17546
- if (!utils.isUndefined(config.withCredentials)) {
17618
+ if (!utils$1.isUndefined(config.withCredentials)) {
17547
17619
  request.withCredentials = !!config.withCredentials;
17548
17620
  }
17549
17621
 
@@ -17598,7 +17670,7 @@ const knownAdapters = {
17598
17670
  xhr: xhrAdapter
17599
17671
  };
17600
17672
 
17601
- utils.forEach(knownAdapters, (fn, value) => {
17673
+ utils$1.forEach(knownAdapters, (fn, value) => {
17602
17674
  if (fn) {
17603
17675
  try {
17604
17676
  Object.defineProperty(fn, 'name', {value});
@@ -17611,11 +17683,11 @@ utils.forEach(knownAdapters, (fn, value) => {
17611
17683
 
17612
17684
  const renderReason = (reason) => `- ${reason}`;
17613
17685
 
17614
- const isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;
17686
+ const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;
17615
17687
 
17616
17688
  var adapters = {
17617
17689
  getAdapter: (adapters) => {
17618
- adapters = utils.isArray(adapters) ? adapters : [adapters];
17690
+ adapters = utils$1.isArray(adapters) ? adapters : [adapters];
17619
17691
 
17620
17692
  const {length} = adapters;
17621
17693
  let nameOrAdapter;
@@ -17756,11 +17828,11 @@ function mergeConfig(config1, config2) {
17756
17828
  const config = {};
17757
17829
 
17758
17830
  function getMergedValue(target, source, caseless) {
17759
- if (utils.isPlainObject(target) && utils.isPlainObject(source)) {
17760
- return utils.merge.call({caseless}, target, source);
17761
- } else if (utils.isPlainObject(source)) {
17762
- return utils.merge({}, source);
17763
- } else if (utils.isArray(source)) {
17831
+ if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
17832
+ return utils$1.merge.call({caseless}, target, source);
17833
+ } else if (utils$1.isPlainObject(source)) {
17834
+ return utils$1.merge({}, source);
17835
+ } else if (utils$1.isArray(source)) {
17764
17836
  return source.slice();
17765
17837
  }
17766
17838
  return source;
@@ -17768,25 +17840,25 @@ function mergeConfig(config1, config2) {
17768
17840
 
17769
17841
  // eslint-disable-next-line consistent-return
17770
17842
  function mergeDeepProperties(a, b, caseless) {
17771
- if (!utils.isUndefined(b)) {
17843
+ if (!utils$1.isUndefined(b)) {
17772
17844
  return getMergedValue(a, b, caseless);
17773
- } else if (!utils.isUndefined(a)) {
17845
+ } else if (!utils$1.isUndefined(a)) {
17774
17846
  return getMergedValue(undefined, a, caseless);
17775
17847
  }
17776
17848
  }
17777
17849
 
17778
17850
  // eslint-disable-next-line consistent-return
17779
17851
  function valueFromConfig2(a, b) {
17780
- if (!utils.isUndefined(b)) {
17852
+ if (!utils$1.isUndefined(b)) {
17781
17853
  return getMergedValue(undefined, b);
17782
17854
  }
17783
17855
  }
17784
17856
 
17785
17857
  // eslint-disable-next-line consistent-return
17786
17858
  function defaultToConfig2(a, b) {
17787
- if (!utils.isUndefined(b)) {
17859
+ if (!utils$1.isUndefined(b)) {
17788
17860
  return getMergedValue(undefined, b);
17789
- } else if (!utils.isUndefined(a)) {
17861
+ } else if (!utils$1.isUndefined(a)) {
17790
17862
  return getMergedValue(undefined, a);
17791
17863
  }
17792
17864
  }
@@ -17811,6 +17883,7 @@ function mergeConfig(config1, config2) {
17811
17883
  timeout: defaultToConfig2,
17812
17884
  timeoutMessage: defaultToConfig2,
17813
17885
  withCredentials: defaultToConfig2,
17886
+ withXSRFToken: defaultToConfig2,
17814
17887
  adapter: defaultToConfig2,
17815
17888
  responseType: defaultToConfig2,
17816
17889
  xsrfCookieName: defaultToConfig2,
@@ -17831,10 +17904,10 @@ function mergeConfig(config1, config2) {
17831
17904
  headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)
17832
17905
  };
17833
17906
 
17834
- utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {
17907
+ utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {
17835
17908
  const merge = mergeMap[prop] || mergeDeepProperties;
17836
17909
  const configValue = merge(config1[prop], config2[prop], prop);
17837
- (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
17910
+ (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
17838
17911
  });
17839
17912
 
17840
17913
  return config;
@@ -17976,7 +18049,7 @@ class Axios {
17976
18049
  }
17977
18050
 
17978
18051
  if (paramsSerializer != null) {
17979
- if (utils.isFunction(paramsSerializer)) {
18052
+ if (utils$1.isFunction(paramsSerializer)) {
17980
18053
  config.paramsSerializer = {
17981
18054
  serialize: paramsSerializer
17982
18055
  };
@@ -17992,12 +18065,12 @@ class Axios {
17992
18065
  config.method = (config.method || this.defaults.method || 'get').toLowerCase();
17993
18066
 
17994
18067
  // Flatten headers
17995
- let contextHeaders = headers && utils.merge(
18068
+ let contextHeaders = headers && utils$1.merge(
17996
18069
  headers.common,
17997
18070
  headers[config.method]
17998
18071
  );
17999
18072
 
18000
- headers && utils.forEach(
18073
+ headers && utils$1.forEach(
18001
18074
  ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
18002
18075
  (method) => {
18003
18076
  delete headers[method];
@@ -18084,7 +18157,7 @@ class Axios {
18084
18157
  }
18085
18158
 
18086
18159
  // Provide aliases for supported request methods
18087
- utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
18160
+ utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
18088
18161
  /*eslint func-names:0*/
18089
18162
  Axios.prototype[method] = function(url, config) {
18090
18163
  return this.request(mergeConfig(config || {}, {
@@ -18095,7 +18168,7 @@ utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData
18095
18168
  };
18096
18169
  });
18097
18170
 
18098
- utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
18171
+ utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
18099
18172
  /*eslint func-names:0*/
18100
18173
 
18101
18174
  function generateHTTPMethod(isForm) {
@@ -18271,7 +18344,7 @@ function spread(callback) {
18271
18344
  * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
18272
18345
  */
18273
18346
  function isAxiosError(payload) {
18274
- return utils.isObject(payload) && (payload.isAxiosError === true);
18347
+ return utils$1.isObject(payload) && (payload.isAxiosError === true);
18275
18348
  }
18276
18349
 
18277
18350
  const HttpStatusCode = {
@@ -18358,10 +18431,10 @@ function createInstance(defaultConfig) {
18358
18431
  const instance = bind(Axios$1.prototype.request, context);
18359
18432
 
18360
18433
  // Copy axios.prototype to instance
18361
- utils.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});
18434
+ utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});
18362
18435
 
18363
18436
  // Copy context to instance
18364
- utils.extend(instance, context, null, {allOwnKeys: true});
18437
+ utils$1.extend(instance, context, null, {allOwnKeys: true});
18365
18438
 
18366
18439
  // Factory for creating new instances
18367
18440
  instance.create = function create(instanceConfig) {
@@ -18405,7 +18478,7 @@ axios.mergeConfig = mergeConfig;
18405
18478
 
18406
18479
  axios.AxiosHeaders = AxiosHeaders$1;
18407
18480
 
18408
- axios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);
18481
+ axios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);
18409
18482
 
18410
18483
  axios.getAdapter = adapters.getAdapter;
18411
18484
 
@@ -21691,6 +21764,325 @@ var SocialPosts = /** @class */ (function () {
21691
21764
  return SocialPosts;
21692
21765
  }());
21693
21766
 
21767
+ var TitlesRoute = /** @class */ (function () {
21768
+ function TitlesRoute() {
21769
+ }
21770
+ TitlesRoute.routes = {
21771
+ list: { url: '/titles', method: HTTP_METHODS.GET },
21772
+ create: { url: '/titles', method: HTTP_METHODS.POST },
21773
+ view: { url: '/titles/{title_id}', method: HTTP_METHODS.GET },
21774
+ update: { url: '/titles/{title_id}', method: HTTP_METHODS.PUT },
21775
+ delete: { url: '/titles/{title_id}', method: HTTP_METHODS.DELETE },
21776
+ approve: { url: '/titles/{title_id}/approve', method: HTTP_METHODS.POST },
21777
+ reject: { url: '//titles/{title_id}/reject', method: HTTP_METHODS.POST },
21778
+ };
21779
+ return TitlesRoute;
21780
+ }());
21781
+
21782
+ var Titles = /** @class */ (function () {
21783
+ function Titles() {
21784
+ }
21785
+ /**
21786
+ * List all the Titles.
21787
+ *
21788
+ * @see https://api.glitch.fun/api/documentation#/Titles/edab2e3b061347b06c82258622d239e2
21789
+ *
21790
+ * @returns promise
21791
+ */
21792
+ Titles.list = function (params) {
21793
+ return Requests.processRoute(TitlesRoute.routes.list, undefined, undefined, params);
21794
+ };
21795
+ /**
21796
+ * Create a new title.
21797
+ *
21798
+ * @see https://api.glitch.fun/api/documentation#/Titles/storeTitle
21799
+ *
21800
+ * @param data The data to be passed when creating a title.
21801
+ *
21802
+ * @returns Promise
21803
+ */
21804
+ Titles.create = function (data, params) {
21805
+ return Requests.processRoute(TitlesRoute.routes.create, data, undefined, params);
21806
+ };
21807
+ /**
21808
+ * Update a title.
21809
+ *
21810
+ * @see https://api.glitch.fun/api/documentation#/Titles/updateTitle
21811
+ *
21812
+ * @param title_id The id of the title to update.
21813
+ * @param data The data to update.
21814
+ *
21815
+ * @returns promise
21816
+ */
21817
+ Titles.update = function (title_id, data, params) {
21818
+ return Requests.processRoute(TitlesRoute.routes.update, data, { title_id: title_id }, params);
21819
+ };
21820
+ /**
21821
+ * Retrieve the information for a single title.
21822
+ *
21823
+ * @see https://api.glitch.fun/api/documentation#/Titles/getTitleByUUID
21824
+ *
21825
+ * @param title_id The id fo the title to retrieve.
21826
+ *
21827
+ * @returns promise
21828
+ */
21829
+ Titles.view = function (title_id, params) {
21830
+ return Requests.processRoute(TitlesRoute.routes.view, {}, { title_id: title_id }, params);
21831
+ };
21832
+ /**
21833
+ * Deletes a title.
21834
+ *
21835
+ * @see https://api.glitch.fun/api/documentation#/Titles/deleteTitle
21836
+ *
21837
+ * @param title_id The id of the title to delete.
21838
+ * @returns promise
21839
+ */
21840
+ Titles.delete = function (title_id, params) {
21841
+ return Requests.processRoute(TitlesRoute.routes.delete, {}, { title_id: title_id }, params);
21842
+ };
21843
+ /**
21844
+ * Approve a title
21845
+ *
21846
+ * @see https://api.glitch.fun/api/documentation#/Titles/approveTitle
21847
+ *
21848
+ * @param data The data to be passed when creating a title.
21849
+ *
21850
+ * @returns Promise
21851
+ */
21852
+ Titles.approve = function (title_id, data, params) {
21853
+ return Requests.processRoute(TitlesRoute.routes.approve, data, { title_id: title_id }, params);
21854
+ };
21855
+ /**
21856
+ * Reject a title
21857
+ *
21858
+ * @see https://api.glitch.fun/api/documentation#/Titles/rejectTitle
21859
+ *
21860
+ * @param data The data to be passed when creating a title.
21861
+ *
21862
+ * @returns Promise
21863
+ */
21864
+ Titles.reject = function (title_id, data, params) {
21865
+ return Requests.processRoute(TitlesRoute.routes.reject, data, { title_id: title_id }, params);
21866
+ };
21867
+ return Titles;
21868
+ }());
21869
+
21870
+ var CampaignsRoute = /** @class */ (function () {
21871
+ function CampaignsRoute() {
21872
+ }
21873
+ CampaignsRoute.routes = {
21874
+ listCampaigns: { url: '/campaigns', method: HTTP_METHODS.GET },
21875
+ createCampaign: { url: '/campaigns', method: HTTP_METHODS.POST },
21876
+ viewCampaign: { url: '/campaigns/{campaign_id}', method: HTTP_METHODS.GET },
21877
+ updateCampaign: { url: '/campaigns/{campaign_id}', method: HTTP_METHODS.PUT },
21878
+ deleteCampaign: { url: '/campaigns/{campaign_id}', method: HTTP_METHODS.DELETE },
21879
+ listCampaignLinks: { url: '/campaigns/{campaign_id}/links', method: HTTP_METHODS.DELETE },
21880
+ createCampaignLink: { url: '/campaigns/{campaign_id}/links', method: HTTP_METHODS.POST },
21881
+ getCampaignLink: { url: '/campaigns/{campaign_id}/links/{link_id}', method: HTTP_METHODS.GET },
21882
+ updateCampaignLink: { url: '/campaigns/{campaign_id}/links/{link_id}', method: HTTP_METHODS.PUT },
21883
+ createInfluencerCampaign: { url: '/campaigns/{campaign_id}/influencers', method: HTTP_METHODS.POST },
21884
+ listInfluencerCampaigns: { url: '/campaigns/influencers', method: HTTP_METHODS.GET },
21885
+ viewInfluencerCampaign: { url: '/campaigns/{campaign_id}/influencers/{user_id}', method: HTTP_METHODS.GET },
21886
+ updateInfluencerCampaign: { url: '/campaigns/{campaign_id}/influencers/{user_id}', method: HTTP_METHODS.PUT },
21887
+ markInfluencerCampaignComplete: { url: '/campaigns/{campaign_id}/influencers/{user_id}/setComplete', method: HTTP_METHODS.POST },
21888
+ markInfluencerCampaignIncomplete: { url: '/campaigns/{campaign_id}/influencers/{user_id}/setIncomplete', method: HTTP_METHODS.POST },
21889
+ listInfluencerCampaignLinks: { url: '/campaigns/{campaign_id}/influencers/{user_id}/links', method: HTTP_METHODS.GET },
21890
+ };
21891
+ return CampaignsRoute;
21892
+ }());
21893
+
21894
+ var Campaigns = /** @class */ (function () {
21895
+ function Campaigns() {
21896
+ }
21897
+ /**
21898
+ * List all the Campaigns.
21899
+ *
21900
+ * @see https://api.glitch.fun/api/documentation#/Campaigns/edab2e3b061347b06c82258622d239e2
21901
+ *
21902
+ * @returns promise
21903
+ */
21904
+ Campaigns.list = function (params) {
21905
+ return Requests.processRoute(CampaignsRoute.routes.listCampaigns, undefined, undefined, params);
21906
+ };
21907
+ /**
21908
+ * Create a new campaign.
21909
+ *
21910
+ * @see https://api.glitch.fun/api/documentation#/Campaigns/createCampaign
21911
+ *
21912
+ * @param data The data to be passed when creating a campaign.
21913
+ *
21914
+ * @returns Promise
21915
+ */
21916
+ Campaigns.create = function (data, params) {
21917
+ return Requests.processRoute(CampaignsRoute.routes.createCampaign, data, undefined, params);
21918
+ };
21919
+ /**
21920
+ * Update a campaign.
21921
+ *
21922
+ * @see https://api.glitch.fun/api/documentation#/Campaigns/updateCampaign
21923
+ *
21924
+ * @param campaign_id The id of the campaign to update.
21925
+ * @param data The data to update.
21926
+ *
21927
+ * @returns promise
21928
+ */
21929
+ Campaigns.update = function (campaign_id, data, params) {
21930
+ return Requests.processRoute(CampaignsRoute.routes.updateCampaign, data, { campaign_id: campaign_id }, params);
21931
+ };
21932
+ /**
21933
+ * Retrieve the information for a single campaign.
21934
+ *
21935
+ * @see https://api.glitch.fun/api/documentation#/Campaigns/getCampaignByUuid
21936
+ *
21937
+ * @param campaign_id The id fo the campaign to retrieve.
21938
+ *
21939
+ * @returns promise
21940
+ */
21941
+ Campaigns.view = function (campaign_id, params) {
21942
+ return Requests.processRoute(CampaignsRoute.routes.viewCampaign, {}, { campaign_id: campaign_id }, params);
21943
+ };
21944
+ /**
21945
+ * Deletes a campaign.
21946
+ *
21947
+ * @see https://api.glitch.fun/api/documentation#/Campaigns/deleteCampaign
21948
+ *
21949
+ * @param campaign_id The id of the campaign to delete.
21950
+ * @returns promise
21951
+ */
21952
+ Campaigns.delete = function (campaign_id, params) {
21953
+ return Requests.processRoute(CampaignsRoute.routes.deleteCampaign, {}, { campaign_id: campaign_id }, params);
21954
+ };
21955
+ /**
21956
+ * List all the campaign links.
21957
+ *
21958
+ * @see https://api.glitch.fun/api/documentation#/Campaigns/getCampaignLinks
21959
+ *
21960
+ * @returns promise
21961
+ */
21962
+ Campaigns.listCampaignLinks = function (campaign_id, params) {
21963
+ return Requests.processRoute(CampaignsRoute.routes.listCampaignLinks, undefined, { campaign_id: campaign_id }, params);
21964
+ };
21965
+ /**
21966
+ * Create a new campaign link.
21967
+ *
21968
+ * @see https://api.glitch.fun/api/documentation#/Campaigns/storeCampaignLink
21969
+ *
21970
+ * @param data The data to be passed when creating a campaign.
21971
+ *
21972
+ * @returns Promise
21973
+ */
21974
+ Campaigns.createCampaignLink = function (campaign_id, data, params) {
21975
+ return Requests.processRoute(CampaignsRoute.routes.createCampaign, data, { campaign_id: campaign_id }, params);
21976
+ };
21977
+ /**
21978
+ * Update a campaign.
21979
+ *
21980
+ * @see https://api.glitch.fun/api/documentation#/Campaigns/1bb1492981b4529693604b03aade8bf6
21981
+ *
21982
+ * @param campaign_id The id of the campaign to update.
21983
+ * @param data The data to update.
21984
+ *
21985
+ * @returns promise
21986
+ */
21987
+ Campaigns.updateCampaignLink = function (campaign_id, link_id, data, params) {
21988
+ return Requests.processRoute(CampaignsRoute.routes.updateCampaign, data, { campaign_id: campaign_id, link_id: link_id }, params);
21989
+ };
21990
+ /**
21991
+ * Retrieve the information for a single campaign.
21992
+ *
21993
+ * @see https://api.glitch.fun/api/documentation#/Campaigns/getCampaignLink
21994
+ *
21995
+ * @param campaign_id The id fo the campaign to retrieve.
21996
+ *
21997
+ * @returns promise
21998
+ */
21999
+ Campaigns.getCampaignLink = function (campaign_id, link_id, params) {
22000
+ return Requests.processRoute(CampaignsRoute.routes.getCampaignLink, {}, { campaign_id: campaign_id, link_id: link_id }, params);
22001
+ };
22002
+ /**
22003
+ * List all the influencers associated with a campaign.
22004
+ *
22005
+ * @see https://api.glitch.fun/api/documentation#/Campaigns/getInfluencerCampaigns
22006
+ *
22007
+ * @returns promise
22008
+ */
22009
+ Campaigns.listInfluencerCampaigns = function (campaign_id, params) {
22010
+ return Requests.processRoute(CampaignsRoute.routes.listInfluencerCampaigns, undefined, { campaign_id: campaign_id }, params);
22011
+ };
22012
+ /**
22013
+ * Create an influencer campaign
22014
+ *
22015
+ * @see https://api.glitch.fun/api/documentation#/Campaigns/6d834c837c5f330d6a4cef5786c45c90
22016
+ *
22017
+ * @param data The data to be passed when creating a campaign.
22018
+ *
22019
+ * @returns Promise
22020
+ */
22021
+ Campaigns.createInfluencerCampaign = function (campaign_id, user_id, data, params) {
22022
+ return Requests.processRoute(CampaignsRoute.routes.createInfluencerCampaign, data, { campaign_id: campaign_id }, params);
22023
+ };
22024
+ /**
22025
+ * Update an influencer campaign.
22026
+ *
22027
+ * @see https://api.glitch.fun/api/documentation#/Campaigns/updateInfluencerCampaign
22028
+ *
22029
+ * @param campaign_id The id of the campaign to update.
22030
+ * @param data The data to update.
22031
+ *
22032
+ * @returns promise
22033
+ */
22034
+ Campaigns.updateInfluencerCampaign = function (campaign_id, user_id, data, params) {
22035
+ return Requests.processRoute(CampaignsRoute.routes.updateInfluencerCampaign, data, { campaign_id: campaign_id, user_id: user_id }, params);
22036
+ };
22037
+ /**
22038
+ * Retrieve the information for a single campaign.
22039
+ *
22040
+ * @see https://api.glitch.fun/api/documentation#/Campaigns/showInfluencerCampaign
22041
+ *
22042
+ * @param campaign_id The id fo the campaign to retrieve.
22043
+ *
22044
+ * @returns promise
22045
+ */
22046
+ Campaigns.viewInfluencerCampaign = function (campaign_id, user_id, params) {
22047
+ return Requests.processRoute(CampaignsRoute.routes.viewInfluencerCampaign, {}, { campaign_id: campaign_id, user_id: user_id }, params);
22048
+ };
22049
+ /**
22050
+ * Mark an influencer campaign as completed.
22051
+ *
22052
+ * @see https://api.glitch.fun/api/documentation#/Campaigns/markCompleted
22053
+ *
22054
+ * @param data The data to be passed when creating a campaign.
22055
+ *
22056
+ * @returns Promise
22057
+ */
22058
+ Campaigns.markInfluencerCampaignComplete = function (campaign_id, user_id, data, params) {
22059
+ return Requests.processRoute(CampaignsRoute.routes.markInfluencerCampaignComplete, data, { campaign_id: campaign_id, user_id: user_id }, params);
22060
+ };
22061
+ /**
22062
+ * Mark an influencer campaign as incomplete.
22063
+ *
22064
+ * @see https://api.glitch.fun/api/documentation#/Campaigns/afffdc7a0c7fc4d9740f10517c53933e
22065
+ *
22066
+ * @param data The data to be passed when creating a campaign.
22067
+ *
22068
+ * @returns Promise
22069
+ */
22070
+ Campaigns.markInfluencerCampaignIncomplete = function (campaign_id, user_id, data, params) {
22071
+ return Requests.processRoute(CampaignsRoute.routes.markInfluencerCampaignIncomplete, data, { campaign_id: campaign_id, user_id: user_id }, params);
22072
+ };
22073
+ /**
22074
+ * Get all the links associated with an influencer's campaign.
22075
+ *
22076
+ * @see https://api.glitch.fun/api/documentation#/Campaigns/edab2e3b061347b06c82258622d239e2
22077
+ *
22078
+ * @returns promise
22079
+ */
22080
+ Campaigns.listInfluencerCampaignLinks = function (campaign_id, user_id, params) {
22081
+ return Requests.processRoute(CampaignsRoute.routes.listInfluencerCampaignLinks, undefined, { campaign_id: campaign_id, user_id: user_id }, params);
22082
+ };
22083
+ return Campaigns;
22084
+ }());
22085
+
21694
22086
  var Parser = /** @class */ (function () {
21695
22087
  function Parser() {
21696
22088
  }
@@ -22061,6 +22453,7 @@ var Glitch = /** @class */ (function () {
22061
22453
  };
22062
22454
  Glitch.api = {
22063
22455
  Auth: Auth,
22456
+ Campaigns: Campaigns,
22064
22457
  Competitions: Competitions,
22065
22458
  Communities: Communities,
22066
22459
  Users: Users,
@@ -22071,6 +22464,7 @@ var Glitch = /** @class */ (function () {
22071
22464
  Waitlists: Waitlists,
22072
22465
  Utility: Utility,
22073
22466
  Tips: Tips,
22467
+ Titles: Titles,
22074
22468
  Social: Social,
22075
22469
  SocialPosts: SocialPosts,
22076
22470
  TipPackages: TipPackages,