aboutsummaryrefslogtreecommitdiff
path: root/node_modules/@concordance
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2019-03-27 21:01:33 +0100
committerFlorian Dold <florian.dold@gmail.com>2019-03-27 21:01:33 +0100
commitcc97a4dd2a967e1c2273bd5f4c5f49a5bf2e2585 (patch)
tree92c5d88706a6ffc654d1b133618d357890e7096b /node_modules/@concordance
parent3771b4d6b67b34c130f3a9a1a15f42deefdb2eda (diff)
downloadwallet-core-cc97a4dd2a967e1c2273bd5f4c5f49a5bf2e2585.tar.xz
remove node_modules
Diffstat (limited to 'node_modules/@concordance')
-rw-r--r--node_modules/@concordance/react/LICENSE14
-rw-r--r--node_modules/@concordance/react/README.md20
-rw-r--r--node_modules/@concordance/react/index.js75
-rw-r--r--node_modules/@concordance/react/lib/diffShallow.js239
-rw-r--r--node_modules/@concordance/react/lib/elementFactory.js349
-rw-r--r--node_modules/@concordance/react/lib/escapeText.js10
-rw-r--r--node_modules/@concordance/react/lib/testJsonFactory.js59
-rw-r--r--node_modules/@concordance/react/package.json80
8 files changed, 0 insertions, 846 deletions
diff --git a/node_modules/@concordance/react/LICENSE b/node_modules/@concordance/react/LICENSE
deleted file mode 100644
index a192d7dbf..000000000
--- a/node_modules/@concordance/react/LICENSE
+++ /dev/null
@@ -1,14 +0,0 @@
-ISC License (ISC)
-Copyright (c) 2017, Mark Wubben <mark@novemberborn.net> (novemberborn.net)
-
-Permission to use, copy, modify, and/or distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright notice
-and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-THIS SOFTWARE.
diff --git a/node_modules/@concordance/react/README.md b/node_modules/@concordance/react/README.md
deleted file mode 100644
index baf16efcf..000000000
--- a/node_modules/@concordance/react/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# @concordance/react
-
-React plugin for [Concordance](https://github.com/concordancejs/concordance).
-
-Allows
-[`React.createElement()`](https://facebook.github.io/react/docs/react-api.html#createelement)
-objects to be compared, formatted, diffed and serialized. Also supports
-`toJSON()` renderings of
-[`react-test-renderer`](https://www.npmjs.com/package/react-test-renderer).
-These may be compared to `React.createElement()` objects.
-
-When comparing [React
-component](https://facebook.github.io/react/docs/components-and-props.html)
-elements, the element type is compared by identity. After deserialization the
-element types are compared by function name, taking into account whether
-serialization and / or comparison is done using Node.js 4, which has less
-reliable support for function names.
-
-Component elements are formatted with a &#x235F; character after the element
-name. Properties and children are formatted by [Concordance](https://github.com/concordancejs/concordance).
diff --git a/node_modules/@concordance/react/index.js b/node_modules/@concordance/react/index.js
deleted file mode 100644
index 47ec117fa..000000000
--- a/node_modules/@concordance/react/index.js
+++ /dev/null
@@ -1,75 +0,0 @@
-'use strict'
-
-const pkg = require('./package.json')
-const elementFactory = require('./lib/elementFactory')
-const testJsonFactory = require('./lib/testJsonFactory')
-
-// Must be unique across all registered plugins.
-exports.name = pkg.name
-
-// Expected API version to be passed to register().
-exports.apiVersion = 1
-
-// Expected minimal version of Concordance. Concordance will increment its API
-// version for breaking changes, this is useful if you rely on features or
-// patches that were introduced in a specific version of Concordance.
-exports.minimalConcordanceVersion = '1.0.0'
-
-// Plugin-specific version of its serialization output.
-exports.serializerVersion = 1
-
-exports.theme = {
- react: {
- functionType: '\u235F',
- openTag: {
- start: '<',
- end: '>',
- selfClose: '/',
- selfCloseVoid: ' /'
- },
- closeTag: {
- open: '</',
- close: '>'
- },
- tagName: {open: '', close: ''},
- attribute: {
- separator: '=',
- value: {
- openBracket: '{',
- closeBracket: '}',
- string: {
- line: {open: '"', close: '"', escapeQuote: '"'}
- }
- }
- },
- child: {
- openBracket: '{',
- closeBracket: '}',
- string: {
- line: {open: '', close: '', escapeQuote: ''},
- multiline: {start: '', end: '', escapeQuote: ''}
- }
- }
- }
-}
-
-const ELEMENT = Symbol.for('react.element')
-const TEST_JSON = Symbol.for('react.test.json')
-
-function register (api) {
- const reactTags = new Set()
- const element = elementFactory(api, reactTags)
- const testJson = testJsonFactory(api, element)
-
- api.addDescriptor(0x01, element.tag, element.deserialize)
- api.addDescriptor(0x02, testJson.tag, testJson.deserialize)
-
- reactTags.add(element.tag).add(testJson.tag)
-
- return value => {
- if (value.$$typeof === ELEMENT) return element.describe
- if (value.$$typeof === TEST_JSON) return testJson.describe
- return null
- }
-}
-exports.register = register
diff --git a/node_modules/@concordance/react/lib/diffShallow.js b/node_modules/@concordance/react/lib/diffShallow.js
deleted file mode 100644
index 4eeb4d4d3..000000000
--- a/node_modules/@concordance/react/lib/diffShallow.js
+++ /dev/null
@@ -1,239 +0,0 @@
-'use strict'
-
-function diffShallow (api, actual, expected, theme, indent) {
- const childBuffer = api.lineBuilder.buffer()
- const propertyBuffer = api.lineBuilder.buffer()
-
- return {
- append (formatted, origin) {
- if (origin.isItem === true) {
- childBuffer.append(formatted)
- } else {
- propertyBuffer.append(formatted)
- }
- },
-
- finalize: () => {
- const namesAreEqual = actual.compareNames(expected)
- const actualName = actual.formatName(theme)
- const expectedName = expected.formatName(theme)
-
- const openTag = theme.react.openTag
- const innerIndentation = indent.increase()
-
- const allChildren = childBuffer.withFirstPrefixed(innerIndentation)
- const children = allChildren.decompose()
-
- const allProperties = propertyBuffer.withFirstPrefixed(innerIndentation)
- const properties = allProperties.decompose()
- // If the first properties are also the last, and either side has no
- // children, ensure the properties are treated as being last. This
- // leads to a better balanced diff.
- if (properties.remaining.isEmpty && (!actual.hasChildren || !expected.hasChildren)) {
- properties.last = properties.first
- properties.first = {actual: api.lineBuilder.buffer(), expected: api.lineBuilder.buffer()}
- }
-
- const result = api.lineBuilder.buffer()
-
- // Create a custom diff that is as neat as possible. It's likely
- // there's a generic algorithm that can be used, but for expediency's
- // sake handles all possible diffs by brute force instead.
- if (actual.hasProperties && expected.hasProperties) {
- if (namesAreEqual) {
- result
- .append(api.lineBuilder.first(openTag.start + actualName))
- .append(properties.first.actual.stripFlags())
- .append(properties.first.expected.stripFlags())
- } else {
- result
- .append(api.lineBuilder.actual.first(openTag.start + actualName))
- .append(properties.first.actual.stripFlags())
- .append(api.lineBuilder.expected.first(openTag.start + expectedName))
- .append(properties.first.expected.stripFlags())
- }
- result.append(properties.remaining.stripFlags())
-
- if (actual.hasChildren && expected.hasChildren) {
- result
- .append(properties.last.actual.stripFlags())
- .append(properties.last.expected.stripFlags())
- .append(api.lineBuilder.line(indent + openTag.end))
-
- if (namesAreEqual) {
- result
- .append(allChildren.stripFlags())
- .append(api.lineBuilder.last(indent + api.wrapFromTheme(theme.react.closeTag, actualName)))
- } else {
- result
- .append(children.first.actual.stripFlags())
- .append(children.first.expected.stripFlags())
- .append(children.remaining.stripFlags())
- .append(children.last.actual.stripFlags())
- .append(api.lineBuilder.actual.last(indent + api.wrapFromTheme(theme.react.closeTag, actualName)))
- .append(children.last.expected.stripFlags())
- .append(api.lineBuilder.expected.last(indent + api.wrapFromTheme(theme.react.closeTag, expectedName)))
- }
- } else if (actual.hasChildren) {
- result
- .append(properties.last.actual.stripFlags())
- .append(api.lineBuilder.actual.line(indent + openTag.end))
- .append(allChildren.stripFlags())
- .append(api.lineBuilder.actual.last(indent + api.wrapFromTheme(theme.react.closeTag, actualName)))
- .append(properties.last.expected.stripFlags())
- .append(api.lineBuilder.expected.last(indent + openTag.selfClose + openTag.end))
- } else if (expected.hasChildren) {
- result
- .append(properties.last.actual.stripFlags())
- .append(api.lineBuilder.actual.last(indent + openTag.selfClose + openTag.end))
- .append(properties.last.expected.stripFlags())
- .append(api.lineBuilder.expected.line(indent + openTag.end))
- .append(allChildren.stripFlags())
- .append(api.lineBuilder.expected.last(indent + api.wrapFromTheme(theme.react.closeTag, expectedName)))
- } else {
- result
- .append(properties.last.actual.stripFlags())
- .append(properties.last.expected.stripFlags())
- .append(api.lineBuilder.last(indent + openTag.selfClose + openTag.end))
- }
- } else if (actual.hasProperties) {
- result
- .append(api.lineBuilder.actual.first(openTag.start + actualName))
- .append(allProperties.stripFlags())
-
- if (actual.hasChildren && expected.hasChildren) {
- result
- .append(api.lineBuilder.actual.line(indent + openTag.end))
- .append(children.first.actual.stripFlags())
- .append(api.lineBuilder.expected.first(openTag.start + expectedName + openTag.end))
- .append(children.first.expected.stripFlags())
- .append(children.remaining.stripFlags())
-
- if (namesAreEqual) {
- result
- .append(children.last.actual.stripFlags())
- .append(children.last.expected.stripFlags())
- .append(api.lineBuilder.last(indent + api.wrapFromTheme(theme.react.closeTag, actualName)))
- } else {
- result
- .append(children.last.actual.stripFlags())
- .append(api.lineBuilder.actual.last(indent + api.wrapFromTheme(theme.react.closeTag, actualName)))
- .append(children.last.expected.stripFlags())
- .append(api.lineBuilder.expected.last(indent + api.wrapFromTheme(theme.react.closeTag, expectedName)))
- }
- } else if (actual.hasChildren) {
- result
- .append(api.lineBuilder.actual.last(indent + openTag.selfClose + openTag.end))
- .append(allChildren.stripFlags())
- .append(api.lineBuilder.actual.last(indent + api.wrapFromTheme(theme.react.closeTag, actualName)))
- .append(api.lineBuilder.expected.single(openTag.start + expectedName + openTag.selfCloseVoid + openTag.end))
- } else if (expected.hasChildren) {
- result
- .append(api.lineBuilder.actual.last(indent + openTag.selfClose + openTag.end))
- .append(api.lineBuilder.expected.first(openTag.start + expectedName + openTag.end))
- .append(allChildren.stripFlags())
- .append(api.lineBuilder.expected.last(indent + api.wrapFromTheme(theme.react.closeTag, expectedName)))
- } else {
- result
- .append(api.lineBuilder.actual.last(indent + openTag.selfClose + openTag.end))
- .append(api.lineBuilder.expected.single(openTag.start + expectedName + openTag.selfCloseVoid + openTag.end))
- }
- } else if (expected.hasProperties) {
- if (actual.hasChildren && expected.hasChildren) {
- result
- .append(api.lineBuilder.actual.first(openTag.start + actualName + openTag.end))
- .append(children.first.actual.stripFlags())
- .append(api.lineBuilder.expected.first(openTag.start + expectedName))
- .append(allProperties.stripFlags())
- .append(api.lineBuilder.expected.line(indent + openTag.end))
- .append(children.first.expected.stripFlags())
- .append(children.remaining.stripFlags())
-
- if (namesAreEqual) {
- result
- .append(children.last.actual.stripFlags())
- .append(children.last.expected.stripFlags())
- .append(api.lineBuilder.last(indent + api.wrapFromTheme(theme.react.closeTag, actualName)))
- } else {
- result
- .append(children.last.actual.stripFlags())
- .append(api.lineBuilder.actual.last(indent + api.wrapFromTheme(theme.react.closeTag, actualName)))
- .append(children.last.expected.stripFlags())
- .append(api.lineBuilder.expected.last(indent + api.wrapFromTheme(theme.react.closeTag, expectedName)))
- }
- } else if (actual.hasChildren) {
- result
- .append(api.lineBuilder.actual.first(openTag.start + actualName + openTag.end))
- .append(allChildren.stripFlags())
- .append(api.lineBuilder.actual.last(indent + api.wrapFromTheme(theme.react.closeTag, actualName)))
- .append(api.lineBuilder.expected.first(openTag.start + expectedName))
- .append(allProperties.stripFlags())
- .append(api.lineBuilder.expected.last(indent + openTag.selfClose + openTag.end))
- } else if (expected.hasChildren) {
- result
- .append(api.lineBuilder.actual.single(openTag.start + actualName + openTag.selfCloseVoid + openTag.end))
- .append(api.lineBuilder.expected.first(openTag.start + expectedName))
- .append(allProperties.stripFlags())
- .append(api.lineBuilder.expected.line(indent + openTag.end))
- .append(allChildren.stripFlags())
- .append(api.lineBuilder.expected.last(indent + api.wrapFromTheme(theme.react.closeTag, expectedName)))
- } else {
- result
- .append(api.lineBuilder.actual.single(openTag.start + actualName + openTag.selfCloseVoid + openTag.end))
- .append(api.lineBuilder.expected.first(openTag.start + expectedName))
- .append(allProperties.stripFlags())
- .append(api.lineBuilder.expected.last(indent + openTag.selfCloseVoid + openTag.end))
- }
- } else {
- if (actual.hasChildren && expected.hasChildren) {
- if (namesAreEqual) {
- result
- .append(api.lineBuilder.first(openTag.start + actualName + openTag.end))
- .append(allChildren.stripFlags())
- .append(api.lineBuilder.last(indent + api.wrapFromTheme(theme.react.closeTag, actualName)))
- } else {
- result
- .append(api.lineBuilder.actual.first(openTag.start + actualName + openTag.end))
- .append(children.first.actual.stripFlags())
- .append(api.lineBuilder.expected.first(openTag.start + expectedName + openTag.end))
- .append(children.first.expected.stripFlags())
- .append(children.remaining.stripFlags())
- .append(children.last.actual.stripFlags())
- .append(api.lineBuilder.actual.last(indent + api.wrapFromTheme(theme.react.closeTag, actualName)))
- .append(children.last.expected.stripFlags())
- .append(api.lineBuilder.expected.last(indent + api.wrapFromTheme(theme.react.closeTag, expectedName)))
- }
- } else if (actual.hasChildren) {
- result
- .append(api.lineBuilder.actual.first(openTag.start + actualName + openTag.end))
- .append(allChildren.stripFlags())
- .append(api.lineBuilder.actual.last(indent + api.wrapFromTheme(theme.react.closeTag, actualName)))
- .append(api.lineBuilder.expected.single(openTag.start + expectedName + openTag.selfCloseVoid + openTag.end))
- } else if (expected.hasChildren) {
- result
- .append(api.lineBuilder.actual.single(openTag.start + actualName + openTag.selfCloseVoid + openTag.end))
- .append(api.lineBuilder.expected.first(openTag.start + expectedName + openTag.end))
- .append(allChildren.stripFlags())
- .append(api.lineBuilder.expected.last(indent + api.wrapFromTheme(theme.react.closeTag, actualName)))
- } else {
- if (namesAreEqual) {
- result.append(api.lineBuilder.single(openTag.start + actualName + openTag.selfCloseVoid + openTag.end))
- } else {
- result
- .append(api.lineBuilder.actual.single(openTag.start + actualName + openTag.selfCloseVoid + openTag.end))
- .append(api.lineBuilder.expected.single(openTag.start + expectedName + openTag.selfCloseVoid + openTag.end))
- }
- }
- }
-
- return result
- },
-
- shouldFormat (subject) {
- return subject.isItem === true || subject.isProperty === true
- },
-
- increaseIndent: true
- }
-}
-module.exports = diffShallow
diff --git a/node_modules/@concordance/react/lib/elementFactory.js b/node_modules/@concordance/react/lib/elementFactory.js
deleted file mode 100644
index 9be125cef..000000000
--- a/node_modules/@concordance/react/lib/elementFactory.js
+++ /dev/null
@@ -1,349 +0,0 @@
-'use strict'
-
-const arrify = require('arrify')
-const diffShallow = require('./diffShallow')
-const escapeText = require('./escapeText')
-
-function factory (api, reactTags) {
- const tag = Symbol('@concordance/react.ElementValue')
-
- function customPropertyFormatter (theme, indent, key, value) {
- const separator = theme.react.attribute.separator + theme.react.attribute.value.openBracket
- if (value.isSingle) {
- return value
- .withFirstPrefixed(key.formatAsKey(theme) + separator)
- .withLastPostfixed(theme.react.attribute.value.closeBracket)
- }
-
- return api.lineBuilder.first(key.formatAsKey(theme) + separator)
- .concat(value.withFirstPrefixed(indent.increase()).stripFlags())
- .append(api.lineBuilder.last(indent + theme.react.attribute.value.closeBracket))
- }
-
- function themeProperty (theme) {
- theme.property.increaseValueIndent = true
- theme.property.customFormat = customPropertyFormatter
- }
-
- function themeStringProperty (theme) {
- theme.property.separator = theme.react.attribute.separator
- theme.property.after = ''
- Object.assign(theme.string.line, theme.react.attribute.value.string.line)
- }
-
- function customItemFormatter (theme, indent, value) {
- if (value.isSingle) {
- return value
- .withFirstPrefixed(theme.react.child.openBracket)
- .withLastPostfixed(theme.react.child.closeBracket)
- }
-
- return api.lineBuilder.first(theme.react.child.openBracket)
- .concat(value.withFirstPrefixed(indent.increase()).stripFlags())
- .append(api.lineBuilder.last(indent + theme.react.child.closeBracket))
- }
-
- function themeChild (theme) {
- theme.item.increaseValueIndent = true
- theme.item.customFormat = customItemFormatter
- }
-
- function themeReactChild (theme) {
- theme.item.after = ''
- }
-
- function themeStringChild (theme) {
- theme.item.after = ''
- Object.assign(theme.string, theme.react.child.string)
- }
-
- function describe (props) {
- const element = props.value
-
- const type = element.type
- const hasTypeFn = typeof type === 'function'
- const typeFn = hasTypeFn ? type : null
- const name = hasTypeFn ? type.displayName || type.name : type
-
- const children = arrify(element.props.children)
-
- const properties = Object.assign({}, element.props)
- delete properties.children
- if (element.key !== null) {
- properties.key = element.key
- }
- const hasProperties = Object.keys(properties).length > 0
-
- return new DescribedElementValue(Object.assign({
- children,
- hasProperties,
- hasTypeFn,
- name,
- properties,
- typeFn,
- isList: children.length > 0
- }, props))
- }
-
- function deserialize (state, recursor) {
- return new DeserializedElementValue(state, recursor)
- }
-
- class ElementValue extends api.ObjectValue {
- constructor (props) {
- super(props)
- this.name = props.name
- this.hasProperties = props.hasProperties
- this.hasTypeFn = props.hasTypeFn
-
- this.hasChildren = this.isList
- }
-
- compare (expected) {
- return this.tag === expected.tag && this.name === expected.name
- ? api.SHALLOW_EQUAL
- : api.UNEQUAL
- }
-
- formatName (theme) {
- const formatted = api.wrapFromTheme(theme.react.tagName, this.name)
- return this.hasTypeFn
- ? formatted + theme.react.functionType
- : formatted
- }
-
- compareNames (expected) {
- return this.name === expected.name && this.hasTypeFn === expected.hasTypeFn
- }
-
- formatShallow (theme, indent) {
- const childBuffer = api.lineBuilder.buffer()
- const propertyBuffer = api.lineBuilder.buffer()
-
- return {
- append (formatted, origin) {
- if (origin.isItem === true) {
- childBuffer.append(formatted)
- } else {
- propertyBuffer.append(formatted)
- }
- },
-
- finalize: () => {
- const name = this.formatName(theme)
- const openTag = theme.react.openTag
-
- if (!this.hasChildren && !this.hasProperties) {
- return api.lineBuilder.single(openTag.start + name + openTag.selfCloseVoid + openTag.end)
- }
-
- const innerIndentation = indent.increase()
- const children = childBuffer.withFirstPrefixed(innerIndentation).stripFlags()
- const properties = propertyBuffer.withFirstPrefixed(innerIndentation).stripFlags()
-
- const result = api.lineBuilder.buffer()
- if (this.hasProperties) {
- result
- .append(api.lineBuilder.first(openTag.start + name))
- .append(properties)
-
- if (this.hasChildren) {
- result.append(api.lineBuilder.line(indent + openTag.end))
- } else {
- result.append(api.lineBuilder.last(indent + openTag.selfClose + openTag.end))
- }
- } else {
- result.append(api.lineBuilder.first(openTag.start + name + openTag.end))
- }
-
- if (this.hasChildren) {
- result
- .append(children)
- .append(api.lineBuilder.last(indent + api.wrapFromTheme(theme.react.closeTag, name)))
- }
-
- return result
- },
-
- maxDepth: () => {
- const name = this.formatName(theme)
- const openTag = theme.react.openTag
-
- if (!this.hasChildren && !this.hasProperties) {
- return api.lineBuilder.single(openTag.start + name + openTag.selfCloseVoid + openTag.end)
- }
-
- let str = openTag.start + name
- if (this.hasProperties) {
- str += theme.maxDepth
- if (this.hasChildren) {
- str += openTag.end
- } else {
- str += ' ' + openTag.selfClose + openTag.end
- }
- } else {
- str += openTag.end
- }
-
- if (this.hasChildren) {
- str += theme.maxDepth + api.wrapFromTheme(theme.react.closeTag, name)
- }
-
- return api.lineBuilder.single(str)
- },
-
- shouldFormat (subject) {
- return subject.isItem === true || subject.isProperty === true
- },
-
- increaseIndent: true
- }
- }
-
- prepareDiff (expected) {
- return {
- compareResult: this.tag === expected.tag
- ? api.SHALLOW_EQUAL
- : api.UNEQUAL
- }
- }
-
- diffShallow (expected, theme, indent) {
- return diffShallow(api, this, expected, theme, indent)
- }
-
- serialize () {
- return [this.name, this.hasProperties, this.hasTypeFn, super.serialize()]
- }
- }
- Object.defineProperty(ElementValue.prototype, 'tag', {value: tag})
-
- function modifyThemes (recursor) {
- return api.mapRecursor(recursor, next => {
- let modifier
- if (next.isItem === true) {
- if (next.tag === api.descriptorTags.primitiveItem && next.value.tag === api.descriptorTags.string) {
- modifier = themeStringChild
- } else if (next.tag === api.descriptorTags.complexItem && reactTags.has(next.value.tag)) {
- modifier = themeReactChild
- } else {
- modifier = themeChild
- }
- } else if (next.isProperty === true) {
- if (
- next.tag === api.descriptorTags.primitiveProperty &&
- next.value.tag === api.descriptorTags.string &&
- !next.value.includesLinebreaks
- ) {
- modifier = themeStringProperty
- } else {
- modifier = themeProperty
- }
- }
-
- return modifier
- ? api.modifyTheme(next, modifier)
- : next
- })
- }
-
- function DescribedMixin (base) {
- return class extends api.DescribedMixin(base) {
- constructor (props) {
- super(props)
- this.children = props.children
- this.properties = props.properties
- this.typeFn = props.typeFn
- }
-
- compare (expected) {
- const result = super.compare(expected)
- return result === api.SHALLOW_EQUAL && this.typeFn !== expected.typeFn
- ? api.UNEQUAL
- : result
- }
-
- compareNames (expected) {
- return super.compareNames(expected) && this.typeFn === expected.typeFn
- }
-
- createPropertyRecursor () {
- // Symbols are not valid property keys for React elements. This code
- // also assumes that the keys can be formatted as JSX-like attribute
- // names. Keys are not pre-escaped before being passed to Concordance's
- // property descriptor.
- const keys = Object.keys(this.properties).sort()
- const size = keys.length
-
- let index = 0
- const next = () => {
- if (index === size) return null
-
- const key = keys[index++]
- // Note that string values are not specifically escaped such that the
- // output is valid JSX.
- return this.describeProperty(key, this.describeAny(this.properties[key]))
- }
-
- return {size, next}
- }
-
- createListRecursor () {
- if (!this.isList) return super.createListRecursor()
-
- const size = this.children.length
-
- let index = 0
- const next = () => {
- if (index === size) return null
-
- const current = index++
- const child = this.children[current]
- const type = typeof child
- let descriptor
- if (type === 'string') {
- descriptor = this.describeAny(escapeText(child))
- } else {
- descriptor = this.describeAny(child)
- }
-
- return this.describeItem(current, descriptor)
- }
-
- return {size, next}
- }
-
- createRecursor () {
- return modifyThemes(super.createRecursor())
- }
- }
- }
-
- function DeserializedMixin (base) {
- return class extends api.DeserializedMixin(base) {
- constructor (state, recursor) {
- super(state[3], recursor)
- this.name = state[0]
- this.hasProperties = state[1]
- this.hasTypeFn = state[2]
- }
-
- createRecursor () {
- return modifyThemes(super.createRecursor())
- }
- }
- }
-
- const DescribedElementValue = DescribedMixin(ElementValue)
- const DeserializedElementValue = DeserializedMixin(ElementValue)
-
- return {
- DescribedMixin,
- DeserializedMixin,
- ElementValue,
- describe,
- deserialize,
- tag
- }
-}
-module.exports = factory
diff --git a/node_modules/@concordance/react/lib/escapeText.js b/node_modules/@concordance/react/lib/escapeText.js
deleted file mode 100644
index 52447b1b6..000000000
--- a/node_modules/@concordance/react/lib/escapeText.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict'
-
-function escapeText (text) {
- return text
- .replace(/</g, '&lt;')
- .replace(/>/g, '&gt;')
- // TODO: Escape characters that Concordance would otherwise replace with \u
- // sequences.
-}
-module.exports = escapeText
diff --git a/node_modules/@concordance/react/lib/testJsonFactory.js b/node_modules/@concordance/react/lib/testJsonFactory.js
deleted file mode 100644
index c3e97a620..000000000
--- a/node_modules/@concordance/react/lib/testJsonFactory.js
+++ /dev/null
@@ -1,59 +0,0 @@
-'use strict'
-
-const arrify = require('arrify')
-
-function factory (api, element) {
- const tag = Symbol('@concordance/react.TestJsonValue')
-
- function describe (props) {
- const obj = props.value
-
- const name = obj.type
- const children = arrify(obj.children)
- const properties = Object.assign({}, obj.props)
- const hasProperties = Object.keys(properties).length > 0
-
- return new DescribedTestJsonValue(Object.assign({
- children,
- hasProperties,
- hasTypeFn: false,
- name,
- properties,
- typeFn: null,
- isList: children.length > 0
- }, props))
- }
-
- function deserialize (state, recursor) {
- return new DeserializedTestJsonValue(state, recursor)
- }
-
- class TestJsonValue extends element.ElementValue {
- compare (expected) {
- // Allow expected value to be a React element.
- return (this.tag === expected.tag || expected.tag === element.tag) && this.name === expected.name
- ? api.SHALLOW_EQUAL
- : api.UNEQUAL
- }
-
- prepareDiff (expected) {
- return {
- // Allow expected value to be a React element.
- compareResult: this.tag === expected.tag || expected.tag === element.tag
- ? api.SHALLOW_EQUAL
- : api.UNEQUAL
- }
- }
- }
- Object.defineProperty(TestJsonValue.prototype, 'tag', {value: tag})
-
- const DescribedTestJsonValue = element.DescribedMixin(TestJsonValue)
- const DeserializedTestJsonValue = element.DeserializedMixin(TestJsonValue)
-
- return {
- describe,
- deserialize,
- tag
- }
-}
-module.exports = factory
diff --git a/node_modules/@concordance/react/package.json b/node_modules/@concordance/react/package.json
deleted file mode 100644
index 7ba194481..000000000
--- a/node_modules/@concordance/react/package.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "name": "@concordance/react",
- "version": "1.0.0",
- "description": "Compare, format, diff and serialize React trees with Concordance",
- "main": "index.js",
- "files": [
- "lib",
- "index.js"
- ],
- "engines": {
- "node": ">=4.5"
- },
- "scripts": {
- "build:fixtures": "babel --presets=react,@ava/stage-4 --out-dir=test/fixtures/react --extensions=.jsx test/fixtures/react",
- "coverage": "nyc npm test",
- "lint": "as-i-preach",
- "pretest": "npm run build:fixtures",
- "test": "ava",
- "posttest": "as-i-preach"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/concordancejs/react.git"
- },
- "author": "Mark Wubben (https://novemberborn.net/)",
- "license": "ISC",
- "bugs": {
- "url": "https://github.com/concordancejs/react/issues"
- },
- "homepage": "https://github.com/concordancejs/react#readme",
- "keywords": [
- "concordance-plugin",
- "concordance",
- "react"
- ],
- "dependencies": {
- "arrify": "^1.0.1"
- },
- "devDependencies": {
- "@novemberborn/as-i-preach": "^10.0.1",
- "ava": "^0.19.0",
- "babel-cli": "^6.24.1",
- "babel-core": "^6.25.0",
- "babel-preset-react": "^6.24.1",
- "codecov": "^2.1.0",
- "concordance": "^1.0.0",
- "nyc": "^11.0.1",
- "react": "^15.6.1",
- "react-test-renderer": "^15.6.1"
- },
- "as-i-preach": {
- "allowDevDependencies": [
- "test/**/*.js",
- "test/**/*.jsx"
- ],
- "ignore": [
- "test/fixtures/react/*.js"
- ]
- },
- "ava": {
- "source": [
- "!test/**/*.js.snap"
- ],
- "babel": {
- "presets": [
- "@ava/stage-4",
- "@ava/transform-test-files",
- "react"
- ]
- }
- },
- "nyc": {
- "reporter": [
- "html",
- "lcov",
- "text"
- ]
- },
- "standard-engine": "@novemberborn/as-i-preach"
-}