diff options
Diffstat (limited to 'node_modules/pretty-format/build/plugins')
18 files changed, 1186 insertions, 0 deletions
diff --git a/node_modules/pretty-format/build/plugins/AsymmetricMatcher.d.ts b/node_modules/pretty-format/build/plugins/AsymmetricMatcher.d.ts new file mode 100644 index 0000000..fd2531b --- /dev/null +++ b/node_modules/pretty-format/build/plugins/AsymmetricMatcher.d.ts @@ -0,0 +1,11 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import type { NewPlugin } from '../types'; +export declare const serialize: NewPlugin['serialize']; +export declare const test: NewPlugin['test']; +declare const plugin: NewPlugin; +export default plugin; diff --git a/node_modules/pretty-format/build/plugins/AsymmetricMatcher.js b/node_modules/pretty-format/build/plugins/AsymmetricMatcher.js new file mode 100644 index 0000000..4003451 --- /dev/null +++ b/node_modules/pretty-format/build/plugins/AsymmetricMatcher.js @@ -0,0 +1,117 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { +  value: true +}); +exports.test = exports.serialize = exports.default = void 0; + +var _collections = require('../collections'); + +var global = (function () { +  if (typeof globalThis !== 'undefined') { +    return globalThis; +  } else if (typeof global !== 'undefined') { +    return global; +  } else if (typeof self !== 'undefined') { +    return self; +  } else if (typeof window !== 'undefined') { +    return window; +  } else { +    return Function('return this')(); +  } +})(); + +var Symbol = global['jest-symbol-do-not-touch'] || global.Symbol; +const asymmetricMatcher = +  typeof Symbol === 'function' && Symbol.for +    ? Symbol.for('jest.asymmetricMatcher') +    : 0x1357a5; +const SPACE = ' '; + +const serialize = (val, config, indentation, depth, refs, printer) => { +  const stringedValue = val.toString(); + +  if ( +    stringedValue === 'ArrayContaining' || +    stringedValue === 'ArrayNotContaining' +  ) { +    if (++depth > config.maxDepth) { +      return '[' + stringedValue + ']'; +    } + +    return ( +      stringedValue + +      SPACE + +      '[' + +      (0, _collections.printListItems)( +        val.sample, +        config, +        indentation, +        depth, +        refs, +        printer +      ) + +      ']' +    ); +  } + +  if ( +    stringedValue === 'ObjectContaining' || +    stringedValue === 'ObjectNotContaining' +  ) { +    if (++depth > config.maxDepth) { +      return '[' + stringedValue + ']'; +    } + +    return ( +      stringedValue + +      SPACE + +      '{' + +      (0, _collections.printObjectProperties)( +        val.sample, +        config, +        indentation, +        depth, +        refs, +        printer +      ) + +      '}' +    ); +  } + +  if ( +    stringedValue === 'StringMatching' || +    stringedValue === 'StringNotMatching' +  ) { +    return ( +      stringedValue + +      SPACE + +      printer(val.sample, config, indentation, depth, refs) +    ); +  } + +  if ( +    stringedValue === 'StringContaining' || +    stringedValue === 'StringNotContaining' +  ) { +    return ( +      stringedValue + +      SPACE + +      printer(val.sample, config, indentation, depth, refs) +    ); +  } + +  return val.toAsymmetricMatcher(); +}; + +exports.serialize = serialize; + +const test = val => val && val.$$typeof === asymmetricMatcher; + +exports.test = test; +const plugin = { +  serialize, +  test +}; +var _default = plugin; +exports.default = _default; diff --git a/node_modules/pretty-format/build/plugins/ConvertAnsi.d.ts b/node_modules/pretty-format/build/plugins/ConvertAnsi.d.ts new file mode 100644 index 0000000..bb0f507 --- /dev/null +++ b/node_modules/pretty-format/build/plugins/ConvertAnsi.d.ts @@ -0,0 +1,11 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import type { NewPlugin } from '../types'; +export declare const test: NewPlugin['test']; +export declare const serialize: NewPlugin['serialize']; +declare const plugin: NewPlugin; +export default plugin; diff --git a/node_modules/pretty-format/build/plugins/ConvertAnsi.js b/node_modules/pretty-format/build/plugins/ConvertAnsi.js new file mode 100644 index 0000000..c5edf00 --- /dev/null +++ b/node_modules/pretty-format/build/plugins/ConvertAnsi.js @@ -0,0 +1,96 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { +  value: true +}); +exports.test = exports.serialize = exports.default = void 0; + +var _ansiRegex = _interopRequireDefault(require('ansi-regex')); + +var _ansiStyles = _interopRequireDefault(require('ansi-styles')); + +function _interopRequireDefault(obj) { +  return obj && obj.__esModule ? obj : {default: obj}; +} + +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +const toHumanReadableAnsi = text => +  text.replace((0, _ansiRegex.default)(), match => { +    switch (match) { +      case _ansiStyles.default.red.close: +      case _ansiStyles.default.green.close: +      case _ansiStyles.default.cyan.close: +      case _ansiStyles.default.gray.close: +      case _ansiStyles.default.white.close: +      case _ansiStyles.default.yellow.close: +      case _ansiStyles.default.bgRed.close: +      case _ansiStyles.default.bgGreen.close: +      case _ansiStyles.default.bgYellow.close: +      case _ansiStyles.default.inverse.close: +      case _ansiStyles.default.dim.close: +      case _ansiStyles.default.bold.close: +      case _ansiStyles.default.reset.open: +      case _ansiStyles.default.reset.close: +        return '</>'; + +      case _ansiStyles.default.red.open: +        return '<red>'; + +      case _ansiStyles.default.green.open: +        return '<green>'; + +      case _ansiStyles.default.cyan.open: +        return '<cyan>'; + +      case _ansiStyles.default.gray.open: +        return '<gray>'; + +      case _ansiStyles.default.white.open: +        return '<white>'; + +      case _ansiStyles.default.yellow.open: +        return '<yellow>'; + +      case _ansiStyles.default.bgRed.open: +        return '<bgRed>'; + +      case _ansiStyles.default.bgGreen.open: +        return '<bgGreen>'; + +      case _ansiStyles.default.bgYellow.open: +        return '<bgYellow>'; + +      case _ansiStyles.default.inverse.open: +        return '<inverse>'; + +      case _ansiStyles.default.dim.open: +        return '<dim>'; + +      case _ansiStyles.default.bold.open: +        return '<bold>'; + +      default: +        return ''; +    } +  }); + +const test = val => +  typeof val === 'string' && !!val.match((0, _ansiRegex.default)()); + +exports.test = test; + +const serialize = (val, config, indentation, depth, refs, printer) => +  printer(toHumanReadableAnsi(val), config, indentation, depth, refs); + +exports.serialize = serialize; +const plugin = { +  serialize, +  test +}; +var _default = plugin; +exports.default = _default; diff --git a/node_modules/pretty-format/build/plugins/DOMCollection.d.ts b/node_modules/pretty-format/build/plugins/DOMCollection.d.ts new file mode 100644 index 0000000..bb0f507 --- /dev/null +++ b/node_modules/pretty-format/build/plugins/DOMCollection.d.ts @@ -0,0 +1,11 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import type { NewPlugin } from '../types'; +export declare const test: NewPlugin['test']; +export declare const serialize: NewPlugin['serialize']; +declare const plugin: NewPlugin; +export default plugin; diff --git a/node_modules/pretty-format/build/plugins/DOMCollection.js b/node_modules/pretty-format/build/plugins/DOMCollection.js new file mode 100644 index 0000000..f3dba3d --- /dev/null +++ b/node_modules/pretty-format/build/plugins/DOMCollection.js @@ -0,0 +1,80 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { +  value: true +}); +exports.test = exports.serialize = exports.default = void 0; + +var _collections = require('../collections'); + +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* eslint-disable local/ban-types-eventually */ +const SPACE = ' '; +const OBJECT_NAMES = ['DOMStringMap', 'NamedNodeMap']; +const ARRAY_REGEXP = /^(HTML\w*Collection|NodeList)$/; + +const testName = name => +  OBJECT_NAMES.indexOf(name) !== -1 || ARRAY_REGEXP.test(name); + +const test = val => +  val && +  val.constructor && +  !!val.constructor.name && +  testName(val.constructor.name); + +exports.test = test; + +const isNamedNodeMap = collection => +  collection.constructor.name === 'NamedNodeMap'; + +const serialize = (collection, config, indentation, depth, refs, printer) => { +  const name = collection.constructor.name; + +  if (++depth > config.maxDepth) { +    return '[' + name + ']'; +  } + +  return ( +    (config.min ? '' : name + SPACE) + +    (OBJECT_NAMES.indexOf(name) !== -1 +      ? '{' + +        (0, _collections.printObjectProperties)( +          isNamedNodeMap(collection) +            ? Array.from(collection).reduce((props, attribute) => { +                props[attribute.name] = attribute.value; +                return props; +              }, {}) +            : {...collection}, +          config, +          indentation, +          depth, +          refs, +          printer +        ) + +        '}' +      : '[' + +        (0, _collections.printListItems)( +          Array.from(collection), +          config, +          indentation, +          depth, +          refs, +          printer +        ) + +        ']') +  ); +}; + +exports.serialize = serialize; +const plugin = { +  serialize, +  test +}; +var _default = plugin; +exports.default = _default; diff --git a/node_modules/pretty-format/build/plugins/DOMElement.d.ts b/node_modules/pretty-format/build/plugins/DOMElement.d.ts new file mode 100644 index 0000000..bb0f507 --- /dev/null +++ b/node_modules/pretty-format/build/plugins/DOMElement.d.ts @@ -0,0 +1,11 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import type { NewPlugin } from '../types'; +export declare const test: NewPlugin['test']; +export declare const serialize: NewPlugin['serialize']; +declare const plugin: NewPlugin; +export default plugin; diff --git a/node_modules/pretty-format/build/plugins/DOMElement.js b/node_modules/pretty-format/build/plugins/DOMElement.js new file mode 100644 index 0000000..b9d30ce --- /dev/null +++ b/node_modules/pretty-format/build/plugins/DOMElement.js @@ -0,0 +1,128 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { +  value: true +}); +exports.test = exports.serialize = exports.default = void 0; + +var _markup = require('./lib/markup'); + +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +const ELEMENT_NODE = 1; +const TEXT_NODE = 3; +const COMMENT_NODE = 8; +const FRAGMENT_NODE = 11; +const ELEMENT_REGEXP = /^((HTML|SVG)\w*)?Element$/; + +const testHasAttribute = val => { +  try { +    return typeof val.hasAttribute === 'function' && val.hasAttribute('is'); +  } catch { +    return false; +  } +}; + +const testNode = val => { +  const constructorName = val.constructor.name; +  const {nodeType, tagName} = val; +  const isCustomElement = +    (typeof tagName === 'string' && tagName.includes('-')) || +    testHasAttribute(val); +  return ( +    (nodeType === ELEMENT_NODE && +      (ELEMENT_REGEXP.test(constructorName) || isCustomElement)) || +    (nodeType === TEXT_NODE && constructorName === 'Text') || +    (nodeType === COMMENT_NODE && constructorName === 'Comment') || +    (nodeType === FRAGMENT_NODE && constructorName === 'DocumentFragment') +  ); +}; + +const test = val => { +  var _val$constructor; + +  return ( +    (val === null || val === void 0 +      ? void 0 +      : (_val$constructor = val.constructor) === null || +        _val$constructor === void 0 +      ? void 0 +      : _val$constructor.name) && testNode(val) +  ); +}; + +exports.test = test; + +function nodeIsText(node) { +  return node.nodeType === TEXT_NODE; +} + +function nodeIsComment(node) { +  return node.nodeType === COMMENT_NODE; +} + +function nodeIsFragment(node) { +  return node.nodeType === FRAGMENT_NODE; +} + +const serialize = (node, config, indentation, depth, refs, printer) => { +  if (nodeIsText(node)) { +    return (0, _markup.printText)(node.data, config); +  } + +  if (nodeIsComment(node)) { +    return (0, _markup.printComment)(node.data, config); +  } + +  const type = nodeIsFragment(node) +    ? 'DocumentFragment' +    : node.tagName.toLowerCase(); + +  if (++depth > config.maxDepth) { +    return (0, _markup.printElementAsLeaf)(type, config); +  } + +  return (0, _markup.printElement)( +    type, +    (0, _markup.printProps)( +      nodeIsFragment(node) +        ? [] +        : Array.from(node.attributes) +            .map(attr => attr.name) +            .sort(), +      nodeIsFragment(node) +        ? {} +        : Array.from(node.attributes).reduce((props, attribute) => { +            props[attribute.name] = attribute.value; +            return props; +          }, {}), +      config, +      indentation + config.indent, +      depth, +      refs, +      printer +    ), +    (0, _markup.printChildren)( +      Array.prototype.slice.call(node.childNodes || node.children), +      config, +      indentation + config.indent, +      depth, +      refs, +      printer +    ), +    config, +    indentation +  ); +}; + +exports.serialize = serialize; +const plugin = { +  serialize, +  test +}; +var _default = plugin; +exports.default = _default; diff --git a/node_modules/pretty-format/build/plugins/Immutable.d.ts b/node_modules/pretty-format/build/plugins/Immutable.d.ts new file mode 100644 index 0000000..fd2531b --- /dev/null +++ b/node_modules/pretty-format/build/plugins/Immutable.d.ts @@ -0,0 +1,11 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import type { NewPlugin } from '../types'; +export declare const serialize: NewPlugin['serialize']; +export declare const test: NewPlugin['test']; +declare const plugin: NewPlugin; +export default plugin; diff --git a/node_modules/pretty-format/build/plugins/Immutable.js b/node_modules/pretty-format/build/plugins/Immutable.js new file mode 100644 index 0000000..9915966 --- /dev/null +++ b/node_modules/pretty-format/build/plugins/Immutable.js @@ -0,0 +1,247 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { +  value: true +}); +exports.test = exports.serialize = exports.default = void 0; + +var _collections = require('../collections'); + +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +// SENTINEL constants are from https://github.com/facebook/immutable-js +const IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@'; +const IS_LIST_SENTINEL = '@@__IMMUTABLE_LIST__@@'; +const IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@'; +const IS_MAP_SENTINEL = '@@__IMMUTABLE_MAP__@@'; +const IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@'; +const IS_RECORD_SENTINEL = '@@__IMMUTABLE_RECORD__@@'; // immutable v4 + +const IS_SEQ_SENTINEL = '@@__IMMUTABLE_SEQ__@@'; +const IS_SET_SENTINEL = '@@__IMMUTABLE_SET__@@'; +const IS_STACK_SENTINEL = '@@__IMMUTABLE_STACK__@@'; + +const getImmutableName = name => 'Immutable.' + name; + +const printAsLeaf = name => '[' + name + ']'; + +const SPACE = ' '; +const LAZY = '…'; // Seq is lazy if it calls a method like filter + +const printImmutableEntries = ( +  val, +  config, +  indentation, +  depth, +  refs, +  printer, +  type +) => +  ++depth > config.maxDepth +    ? printAsLeaf(getImmutableName(type)) +    : getImmutableName(type) + +      SPACE + +      '{' + +      (0, _collections.printIteratorEntries)( +        val.entries(), +        config, +        indentation, +        depth, +        refs, +        printer +      ) + +      '}'; // Record has an entries method because it is a collection in immutable v3. +// Return an iterator for Immutable Record from version v3 or v4. + +function getRecordEntries(val) { +  let i = 0; +  return { +    next() { +      if (i < val._keys.length) { +        const key = val._keys[i++]; +        return { +          done: false, +          value: [key, val.get(key)] +        }; +      } + +      return { +        done: true, +        value: undefined +      }; +    } +  }; +} + +const printImmutableRecord = ( +  val, +  config, +  indentation, +  depth, +  refs, +  printer +) => { +  // _name property is defined only for an Immutable Record instance +  // which was constructed with a second optional descriptive name arg +  const name = getImmutableName(val._name || 'Record'); +  return ++depth > config.maxDepth +    ? printAsLeaf(name) +    : name + +        SPACE + +        '{' + +        (0, _collections.printIteratorEntries)( +          getRecordEntries(val), +          config, +          indentation, +          depth, +          refs, +          printer +        ) + +        '}'; +}; + +const printImmutableSeq = (val, config, indentation, depth, refs, printer) => { +  const name = getImmutableName('Seq'); + +  if (++depth > config.maxDepth) { +    return printAsLeaf(name); +  } + +  if (val[IS_KEYED_SENTINEL]) { +    return ( +      name + +      SPACE + +      '{' + // from Immutable collection of entries or from ECMAScript object +      (val._iter || val._object +        ? (0, _collections.printIteratorEntries)( +            val.entries(), +            config, +            indentation, +            depth, +            refs, +            printer +          ) +        : LAZY) + +      '}' +    ); +  } + +  return ( +    name + +    SPACE + +    '[' + +    (val._iter || // from Immutable collection of values +    val._array || // from ECMAScript array +    val._collection || // from ECMAScript collection in immutable v4 +    val._iterable // from ECMAScript collection in immutable v3 +      ? (0, _collections.printIteratorValues)( +          val.values(), +          config, +          indentation, +          depth, +          refs, +          printer +        ) +      : LAZY) + +    ']' +  ); +}; + +const printImmutableValues = ( +  val, +  config, +  indentation, +  depth, +  refs, +  printer, +  type +) => +  ++depth > config.maxDepth +    ? printAsLeaf(getImmutableName(type)) +    : getImmutableName(type) + +      SPACE + +      '[' + +      (0, _collections.printIteratorValues)( +        val.values(), +        config, +        indentation, +        depth, +        refs, +        printer +      ) + +      ']'; + +const serialize = (val, config, indentation, depth, refs, printer) => { +  if (val[IS_MAP_SENTINEL]) { +    return printImmutableEntries( +      val, +      config, +      indentation, +      depth, +      refs, +      printer, +      val[IS_ORDERED_SENTINEL] ? 'OrderedMap' : 'Map' +    ); +  } + +  if (val[IS_LIST_SENTINEL]) { +    return printImmutableValues( +      val, +      config, +      indentation, +      depth, +      refs, +      printer, +      'List' +    ); +  } + +  if (val[IS_SET_SENTINEL]) { +    return printImmutableValues( +      val, +      config, +      indentation, +      depth, +      refs, +      printer, +      val[IS_ORDERED_SENTINEL] ? 'OrderedSet' : 'Set' +    ); +  } + +  if (val[IS_STACK_SENTINEL]) { +    return printImmutableValues( +      val, +      config, +      indentation, +      depth, +      refs, +      printer, +      'Stack' +    ); +  } + +  if (val[IS_SEQ_SENTINEL]) { +    return printImmutableSeq(val, config, indentation, depth, refs, printer); +  } // For compatibility with immutable v3 and v4, let record be the default. + +  return printImmutableRecord(val, config, indentation, depth, refs, printer); +}; // Explicitly comparing sentinel properties to true avoids false positive +// when mock identity-obj-proxy returns the key as the value for any key. + +exports.serialize = serialize; + +const test = val => +  val && +  (val[IS_ITERABLE_SENTINEL] === true || val[IS_RECORD_SENTINEL] === true); + +exports.test = test; +const plugin = { +  serialize, +  test +}; +var _default = plugin; +exports.default = _default; diff --git a/node_modules/pretty-format/build/plugins/ReactElement.d.ts b/node_modules/pretty-format/build/plugins/ReactElement.d.ts new file mode 100644 index 0000000..fd2531b --- /dev/null +++ b/node_modules/pretty-format/build/plugins/ReactElement.d.ts @@ -0,0 +1,11 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import type { NewPlugin } from '../types'; +export declare const serialize: NewPlugin['serialize']; +export declare const test: NewPlugin['test']; +declare const plugin: NewPlugin; +export default plugin; diff --git a/node_modules/pretty-format/build/plugins/ReactElement.js b/node_modules/pretty-format/build/plugins/ReactElement.js new file mode 100644 index 0000000..f45a6e0 --- /dev/null +++ b/node_modules/pretty-format/build/plugins/ReactElement.js @@ -0,0 +1,166 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { +  value: true +}); +exports.test = exports.serialize = exports.default = void 0; + +var ReactIs = _interopRequireWildcard(require('react-is')); + +var _markup = require('./lib/markup'); + +function _getRequireWildcardCache(nodeInterop) { +  if (typeof WeakMap !== 'function') return null; +  var cacheBabelInterop = new WeakMap(); +  var cacheNodeInterop = new WeakMap(); +  return (_getRequireWildcardCache = function (nodeInterop) { +    return nodeInterop ? cacheNodeInterop : cacheBabelInterop; +  })(nodeInterop); +} + +function _interopRequireWildcard(obj, nodeInterop) { +  if (!nodeInterop && obj && obj.__esModule) { +    return obj; +  } +  if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) { +    return {default: obj}; +  } +  var cache = _getRequireWildcardCache(nodeInterop); +  if (cache && cache.has(obj)) { +    return cache.get(obj); +  } +  var newObj = {}; +  var hasPropertyDescriptor = +    Object.defineProperty && Object.getOwnPropertyDescriptor; +  for (var key in obj) { +    if (key !== 'default' && Object.prototype.hasOwnProperty.call(obj, key)) { +      var desc = hasPropertyDescriptor +        ? Object.getOwnPropertyDescriptor(obj, key) +        : null; +      if (desc && (desc.get || desc.set)) { +        Object.defineProperty(newObj, key, desc); +      } else { +        newObj[key] = obj[key]; +      } +    } +  } +  newObj.default = obj; +  if (cache) { +    cache.set(obj, newObj); +  } +  return newObj; +} + +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +// Given element.props.children, or subtree during recursive traversal, +// return flattened array of children. +const getChildren = (arg, children = []) => { +  if (Array.isArray(arg)) { +    arg.forEach(item => { +      getChildren(item, children); +    }); +  } else if (arg != null && arg !== false) { +    children.push(arg); +  } + +  return children; +}; + +const getType = element => { +  const type = element.type; + +  if (typeof type === 'string') { +    return type; +  } + +  if (typeof type === 'function') { +    return type.displayName || type.name || 'Unknown'; +  } + +  if (ReactIs.isFragment(element)) { +    return 'React.Fragment'; +  } + +  if (ReactIs.isSuspense(element)) { +    return 'React.Suspense'; +  } + +  if (typeof type === 'object' && type !== null) { +    if (ReactIs.isContextProvider(element)) { +      return 'Context.Provider'; +    } + +    if (ReactIs.isContextConsumer(element)) { +      return 'Context.Consumer'; +    } + +    if (ReactIs.isForwardRef(element)) { +      if (type.displayName) { +        return type.displayName; +      } + +      const functionName = type.render.displayName || type.render.name || ''; +      return functionName !== '' +        ? 'ForwardRef(' + functionName + ')' +        : 'ForwardRef'; +    } + +    if (ReactIs.isMemo(element)) { +      const functionName = +        type.displayName || type.type.displayName || type.type.name || ''; +      return functionName !== '' ? 'Memo(' + functionName + ')' : 'Memo'; +    } +  } + +  return 'UNDEFINED'; +}; + +const getPropKeys = element => { +  const {props} = element; +  return Object.keys(props) +    .filter(key => key !== 'children' && props[key] !== undefined) +    .sort(); +}; + +const serialize = (element, config, indentation, depth, refs, printer) => +  ++depth > config.maxDepth +    ? (0, _markup.printElementAsLeaf)(getType(element), config) +    : (0, _markup.printElement)( +        getType(element), +        (0, _markup.printProps)( +          getPropKeys(element), +          element.props, +          config, +          indentation + config.indent, +          depth, +          refs, +          printer +        ), +        (0, _markup.printChildren)( +          getChildren(element.props.children), +          config, +          indentation + config.indent, +          depth, +          refs, +          printer +        ), +        config, +        indentation +      ); + +exports.serialize = serialize; + +const test = val => val != null && ReactIs.isElement(val); + +exports.test = test; +const plugin = { +  serialize, +  test +}; +var _default = plugin; +exports.default = _default; diff --git a/node_modules/pretty-format/build/plugins/ReactTestComponent.d.ts b/node_modules/pretty-format/build/plugins/ReactTestComponent.d.ts new file mode 100644 index 0000000..91542d9 --- /dev/null +++ b/node_modules/pretty-format/build/plugins/ReactTestComponent.d.ts @@ -0,0 +1,18 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import type { NewPlugin } from '../types'; +export declare type ReactTestObject = { +    $$typeof: symbol; +    type: string; +    props?: Record<string, unknown>; +    children?: null | Array<ReactTestChild>; +}; +declare type ReactTestChild = ReactTestObject | string | number; +export declare const serialize: NewPlugin['serialize']; +export declare const test: NewPlugin['test']; +declare const plugin: NewPlugin; +export default plugin; diff --git a/node_modules/pretty-format/build/plugins/ReactTestComponent.js b/node_modules/pretty-format/build/plugins/ReactTestComponent.js new file mode 100644 index 0000000..6e09edc --- /dev/null +++ b/node_modules/pretty-format/build/plugins/ReactTestComponent.js @@ -0,0 +1,79 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { +  value: true +}); +exports.test = exports.serialize = exports.default = void 0; + +var _markup = require('./lib/markup'); + +var global = (function () { +  if (typeof globalThis !== 'undefined') { +    return globalThis; +  } else if (typeof global !== 'undefined') { +    return global; +  } else if (typeof self !== 'undefined') { +    return self; +  } else if (typeof window !== 'undefined') { +    return window; +  } else { +    return Function('return this')(); +  } +})(); + +var Symbol = global['jest-symbol-do-not-touch'] || global.Symbol; +const testSymbol = +  typeof Symbol === 'function' && Symbol.for +    ? Symbol.for('react.test.json') +    : 0xea71357; + +const getPropKeys = object => { +  const {props} = object; +  return props +    ? Object.keys(props) +        .filter(key => props[key] !== undefined) +        .sort() +    : []; +}; + +const serialize = (object, config, indentation, depth, refs, printer) => +  ++depth > config.maxDepth +    ? (0, _markup.printElementAsLeaf)(object.type, config) +    : (0, _markup.printElement)( +        object.type, +        object.props +          ? (0, _markup.printProps)( +              getPropKeys(object), +              object.props, +              config, +              indentation + config.indent, +              depth, +              refs, +              printer +            ) +          : '', +        object.children +          ? (0, _markup.printChildren)( +              object.children, +              config, +              indentation + config.indent, +              depth, +              refs, +              printer +            ) +          : '', +        config, +        indentation +      ); + +exports.serialize = serialize; + +const test = val => val && val.$$typeof === testSymbol; + +exports.test = test; +const plugin = { +  serialize, +  test +}; +var _default = plugin; +exports.default = _default; diff --git a/node_modules/pretty-format/build/plugins/lib/escapeHTML.d.ts b/node_modules/pretty-format/build/plugins/lib/escapeHTML.d.ts new file mode 100644 index 0000000..aee0d3d --- /dev/null +++ b/node_modules/pretty-format/build/plugins/lib/escapeHTML.d.ts @@ -0,0 +1,7 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +export default function escapeHTML(str: string): string; diff --git a/node_modules/pretty-format/build/plugins/lib/escapeHTML.js b/node_modules/pretty-format/build/plugins/lib/escapeHTML.js new file mode 100644 index 0000000..50dda25 --- /dev/null +++ b/node_modules/pretty-format/build/plugins/lib/escapeHTML.js @@ -0,0 +1,16 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { +  value: true +}); +exports.default = escapeHTML; + +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +function escapeHTML(str) { +  return str.replace(/</g, '<').replace(/>/g, '>'); +} diff --git a/node_modules/pretty-format/build/plugins/lib/markup.d.ts b/node_modules/pretty-format/build/plugins/lib/markup.d.ts new file mode 100644 index 0000000..60d99ab --- /dev/null +++ b/node_modules/pretty-format/build/plugins/lib/markup.d.ts @@ -0,0 +1,13 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import type { Config, Printer, Refs } from '../../types'; +export declare const printProps: (keys: Array<string>, props: Record<string, unknown>, config: Config, indentation: string, depth: number, refs: Refs, printer: Printer) => string; +export declare const printChildren: (children: Array<unknown>, config: Config, indentation: string, depth: number, refs: Refs, printer: Printer) => string; +export declare const printText: (text: string, config: Config) => string; +export declare const printComment: (comment: string, config: Config) => string; +export declare const printElement: (type: string, printedProps: string, printedChildren: string, config: Config, indentation: string) => string; +export declare const printElementAsLeaf: (type: string, config: Config) => string; diff --git a/node_modules/pretty-format/build/plugins/lib/markup.js b/node_modules/pretty-format/build/plugins/lib/markup.js new file mode 100644 index 0000000..4f677ac --- /dev/null +++ b/node_modules/pretty-format/build/plugins/lib/markup.js @@ -0,0 +1,153 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { +  value: true +}); +exports.printText = +  exports.printProps = +  exports.printElementAsLeaf = +  exports.printElement = +  exports.printComment = +  exports.printChildren = +    void 0; + +var _escapeHTML = _interopRequireDefault(require('./escapeHTML')); + +function _interopRequireDefault(obj) { +  return obj && obj.__esModule ? obj : {default: obj}; +} + +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +// Return empty string if keys is empty. +const printProps = (keys, props, config, indentation, depth, refs, printer) => { +  const indentationNext = indentation + config.indent; +  const colors = config.colors; +  return keys +    .map(key => { +      const value = props[key]; +      let printed = printer(value, config, indentationNext, depth, refs); + +      if (typeof value !== 'string') { +        if (printed.indexOf('\n') !== -1) { +          printed = +            config.spacingOuter + +            indentationNext + +            printed + +            config.spacingOuter + +            indentation; +        } + +        printed = '{' + printed + '}'; +      } + +      return ( +        config.spacingInner + +        indentation + +        colors.prop.open + +        key + +        colors.prop.close + +        '=' + +        colors.value.open + +        printed + +        colors.value.close +      ); +    }) +    .join(''); +}; // Return empty string if children is empty. + +exports.printProps = printProps; + +const printChildren = (children, config, indentation, depth, refs, printer) => +  children +    .map( +      child => +        config.spacingOuter + +        indentation + +        (typeof child === 'string' +          ? printText(child, config) +          : printer(child, config, indentation, depth, refs)) +    ) +    .join(''); + +exports.printChildren = printChildren; + +const printText = (text, config) => { +  const contentColor = config.colors.content; +  return ( +    contentColor.open + (0, _escapeHTML.default)(text) + contentColor.close +  ); +}; + +exports.printText = printText; + +const printComment = (comment, config) => { +  const commentColor = config.colors.comment; +  return ( +    commentColor.open + +    '<!--' + +    (0, _escapeHTML.default)(comment) + +    '-->' + +    commentColor.close +  ); +}; // Separate the functions to format props, children, and element, +// so a plugin could override a particular function, if needed. +// Too bad, so sad: the traditional (but unnecessary) space +// in a self-closing tagColor requires a second test of printedProps. + +exports.printComment = printComment; + +const printElement = ( +  type, +  printedProps, +  printedChildren, +  config, +  indentation +) => { +  const tagColor = config.colors.tag; +  return ( +    tagColor.open + +    '<' + +    type + +    (printedProps && +      tagColor.close + +        printedProps + +        config.spacingOuter + +        indentation + +        tagColor.open) + +    (printedChildren +      ? '>' + +        tagColor.close + +        printedChildren + +        config.spacingOuter + +        indentation + +        tagColor.open + +        '</' + +        type +      : (printedProps && !config.min ? '' : ' ') + '/') + +    '>' + +    tagColor.close +  ); +}; + +exports.printElement = printElement; + +const printElementAsLeaf = (type, config) => { +  const tagColor = config.colors.tag; +  return ( +    tagColor.open + +    '<' + +    type + +    tagColor.close + +    ' …' + +    tagColor.open + +    ' />' + +    tagColor.close +  ); +}; + +exports.printElementAsLeaf = printElementAsLeaf;  | 
