diff --git a/LICENSE b/LICENSE
index 0bb340d..d702c5d 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,21 +1,7 @@
-The MIT License (MIT)
+Copyright 2015-2017 Jos de Jong
-Copyright (c) 2011-2016 Jos de Jong
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.md b/README.md
index 4b809d5..3e18a8b 100644
--- a/README.md
+++ b/README.md
@@ -164,3 +164,8 @@ jsoneditor:
```
npm run watch:test
```
+
+
+## License
+
+MIT
\ No newline at end of file
diff --git a/examples/react_demo/package-lock.json b/examples/react_demo/package-lock.json
index 8f0d01f..9dc085f 100644
--- a/examples/react_demo/package-lock.json
+++ b/examples/react_demo/package-lock.json
@@ -5,15 +5,9 @@
"requires": true,
"dependencies": {
"abab": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz",
- "integrity": "sha1-uB3l9ydOxOdW15fNg08wNkJyTl0=",
- "dev": true
- },
- "abbrev": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
- "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
+ "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=",
"dev": true
},
"accepts": {
@@ -27,11 +21,28 @@
}
},
"acorn": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz",
- "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz",
+ "integrity": "sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w==",
"dev": true
},
+ "acorn-dynamic-import": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
+ "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
+ "dev": true,
+ "requires": {
+ "acorn": "4.0.13"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+ "dev": true
+ }
+ }
+ },
"acorn-globals": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
@@ -66,20 +77,28 @@
}
}
},
+ "address": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz",
+ "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==",
+ "dev": true
+ },
"ajv": {
- "version": "4.11.8",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
- "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
"dev": true,
"requires": {
"co": "4.6.0",
- "json-stable-stringify": "1.0.1"
+ "fast-deep-equal": "1.0.0",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1"
}
},
"ajv-keywords": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
- "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
+ "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
"dev": true
},
"align-text": {
@@ -105,16 +124,47 @@
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
"dev": true
},
+ "ansi-align": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-1.1.0.tgz",
+ "integrity": "sha1-LwwWWIKXOa3V67FeawxuNCPwFro=",
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
+ }
+ },
"ansi-escapes": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
- "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz",
+ "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==",
"dev": true
},
"ansi-html": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.5.tgz",
- "integrity": "sha1-DcqloIEgaGa8JAo7dzoYTqO4i2Q=",
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
+ "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
"dev": true
},
"ansi-regex": {
@@ -124,16 +174,13 @@
"dev": true
},
"ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
- },
- "ansicolors": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz",
- "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=",
- "dev": true
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.1"
+ }
},
"anymatch": {
"version": "1.3.2",
@@ -163,6 +210,15 @@
"sprintf-js": "1.0.3"
}
},
+ "aria-query": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-0.7.0.tgz",
+ "integrity": "sha512-/r2lHl09V3o74+2MLKEdewoj37YZqiQZnfen1O4iNlrOjUgeKuu1U2yF3iKh6HJxqF+OXkLMfQv65Z/cvxD6vA==",
+ "dev": true,
+ "requires": {
+ "ast-types-flow": "0.0.7"
+ }
+ },
"arr-diff": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
@@ -178,22 +234,50 @@
"integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
"dev": true
},
- "array-differ": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
- "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
- "dev": true
- },
"array-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
"integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
"dev": true
},
+ "array-filter": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
+ "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=",
+ "dev": true
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true
+ },
"array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz",
+ "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=",
+ "dev": true
+ },
+ "array-includes": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
+ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
+ "dev": true,
+ "requires": {
+ "define-properties": "1.1.2",
+ "es-abstract": "1.10.0"
+ }
+ },
+ "array-map": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
+ "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=",
+ "dev": true
+ },
+ "array-reduce": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
+ "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
"dev": true
},
"array-union": {
@@ -234,6 +318,17 @@
"integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
"dev": true
},
+ "asn1.js": {
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz",
+ "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
+ },
"assert": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
@@ -244,16 +339,25 @@
}
},
"assert-plus": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
- "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ },
+ "ast-types-flow": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
+ "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
"dev": true
},
"async": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
- "dev": true
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
+ "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
+ "dev": true,
+ "requires": {
+ "lodash": "4.17.4"
+ }
},
"async-each": {
"version": "1.0.1",
@@ -268,23 +372,23 @@
"dev": true
},
"autoprefixer": {
- "version": "6.5.1",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.5.1.tgz",
- "integrity": "sha1-rnWaUiHnCfPaF8LWViMOZ8Q8u3U=",
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.1.6.tgz",
+ "integrity": "sha512-C9yv/UF3X+eJTi/zvfxuyfxmLibYrntpF3qoJYrMeQwgUJOZrZvpJiMG2FMQ3qnhWtF/be4pYONBBw95ZGe3vA==",
"dev": true,
"requires": {
- "browserslist": "1.4.0",
- "caniuse-db": "1.0.30000721",
+ "browserslist": "2.10.0",
+ "caniuse-lite": "1.0.30000784",
"normalize-range": "0.1.2",
"num2fraction": "1.2.2",
- "postcss": "5.2.17",
+ "postcss": "6.0.14",
"postcss-value-parser": "3.3.0"
}
},
"aws-sign2": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
- "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
"dev": true
},
"aws4": {
@@ -293,6 +397,15 @@
"integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
"dev": true
},
+ "axobject-query": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-0.1.0.tgz",
+ "integrity": "sha1-YvWdvFnJ+SQnWco0mWDnov48NsA=",
+ "dev": true,
+ "requires": {
+ "ast-types-flow": "0.0.7"
+ }
+ },
"babel-code-frame": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
@@ -305,9 +418,9 @@
}
},
"babel-core": {
- "version": "6.17.0",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.17.0.tgz",
- "integrity": "sha1-bEV2RH30eeJB5YyAfkvH2k239CU=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz",
+ "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=",
"dev": true,
"requires": {
"babel-code-frame": "6.26.0",
@@ -320,38 +433,35 @@
"babel-traverse": "6.26.0",
"babel-types": "6.26.0",
"babylon": "6.18.0",
- "convert-source-map": "1.5.0",
- "debug": "2.6.8",
- "json5": "0.4.0",
+ "convert-source-map": "1.5.1",
+ "debug": "2.6.9",
+ "json5": "0.5.1",
"lodash": "4.17.4",
"minimatch": "3.0.4",
- "path-exists": "1.0.0",
"path-is-absolute": "1.0.1",
- "private": "0.1.7",
- "shebang-regex": "1.0.0",
+ "private": "0.1.8",
"slash": "1.0.0",
"source-map": "0.5.7"
},
"dependencies": {
- "path-exists": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz",
- "integrity": "sha1-1aiZjrce83p0w06w2eum6HjuoIE=",
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
}
}
},
"babel-eslint": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.1.1.tgz",
- "integrity": "sha1-imqITwhapwYK9pz8dzQcL5k3D7I=",
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz",
+ "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=",
"dev": true,
"requires": {
"babel-code-frame": "6.26.0",
"babel-traverse": "6.26.0",
"babel-types": "6.26.0",
- "babylon": "6.18.0",
- "lodash.pickby": "4.6.0"
+ "babylon": "6.18.0"
}
},
"babel-generator": {
@@ -368,6 +478,14 @@
"lodash": "4.17.4",
"source-map": "0.5.7",
"trim-right": "1.0.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
}
},
"babel-helper-builder-binary-assignment-operator-visitor": {
@@ -519,26 +637,25 @@
}
},
"babel-jest": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-17.0.2.tgz",
- "integrity": "sha1-jVHg0DdZcTwzHxCOsLLqpMbv/3Q=",
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-20.0.3.tgz",
+ "integrity": "sha1-5KA7E9wQOJ4UD8ZF0J/8TO0wFnE=",
"dev": true,
"requires": {
- "babel-core": "6.17.0",
- "babel-plugin-istanbul": "2.0.3",
- "babel-preset-jest": "17.0.2"
+ "babel-core": "6.26.0",
+ "babel-plugin-istanbul": "4.1.5",
+ "babel-preset-jest": "20.0.3"
}
},
"babel-loader": {
- "version": "6.2.7",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.7.tgz",
- "integrity": "sha1-Fv2/ZDKAMNxaYGgn04nIuSoqgDI=",
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz",
+ "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==",
"dev": true,
"requires": {
- "find-cache-dir": "0.1.1",
- "loader-utils": "0.2.17",
- "mkdirp": "0.5.1",
- "object-assign": "4.1.1"
+ "find-cache-dir": "1.0.0",
+ "loader-utils": "1.1.0",
+ "mkdirp": "0.5.1"
}
},
"babel-messages": {
@@ -559,22 +676,32 @@
"babel-runtime": "6.26.0"
}
},
- "babel-plugin-istanbul": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-2.0.3.tgz",
- "integrity": "sha1-JmswS5EJYH1gdIR0OUZ2mC9mDfQ=",
+ "babel-plugin-dynamic-import-node": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.1.0.tgz",
+ "integrity": "sha512-tTfZbM9Ecwj3GK50mnPrUpinTwA4xXmDiQGCk/aBYbvl1+X8YqldK86wZ1owVJ4u3mrKbRlXMma80J18qwiaTQ==",
"dev": true,
"requires": {
- "find-up": "1.1.2",
- "istanbul-lib-instrument": "1.7.5",
- "object-assign": "4.1.1",
- "test-exclude": "2.1.3"
+ "babel-plugin-syntax-dynamic-import": "6.18.0",
+ "babel-template": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz",
+ "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=",
+ "dev": true,
+ "requires": {
+ "find-up": "2.1.0",
+ "istanbul-lib-instrument": "1.9.1",
+ "test-exclude": "4.1.1"
}
},
"babel-plugin-jest-hoist": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-17.0.2.tgz",
- "integrity": "sha1-ITSIzoJZkKzUww+IfcoJ//60UjU=",
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz",
+ "integrity": "sha1-r+3IU70/jcNUjqZx++adA8wsF2c=",
"dev": true
},
"babel-plugin-syntax-async-functions": {
@@ -589,6 +716,12 @@
"integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=",
"dev": true
},
+ "babel-plugin-syntax-dynamic-import": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
+ "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=",
+ "dev": true
+ },
"babel-plugin-syntax-exponentiation-operator": {
"version": "6.13.0",
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
@@ -631,9 +764,9 @@
}
},
"babel-plugin-transform-class-properties": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.22.0.tgz",
- "integrity": "sha1-qnj4E0SVx94GwJcRi6BhhE4dwdg=",
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz",
+ "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=",
"dev": true,
"requires": {
"babel-helper-function-name": "6.24.1",
@@ -898,9 +1031,9 @@
}
},
"babel-plugin-transform-object-rest-spread": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.22.0.tgz",
- "integrity": "sha1-HUGbVeaNLk9kpf8zc71n1zyOg7w=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
+ "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
"dev": true,
"requires": {
"babel-plugin-syntax-object-rest-spread": "6.13.0",
@@ -908,9 +1041,9 @@
}
},
"babel-plugin-transform-react-constant-elements": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.22.0.tgz",
- "integrity": "sha1-SvRW+A0oPovgDwDxKFI1Te+gjuE=",
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.23.0.tgz",
+ "integrity": "sha1-LxGb9NLN1F65uqrldAU8YE9hR90=",
"dev": true,
"requires": {
"babel-runtime": "6.26.0"
@@ -926,9 +1059,9 @@
}
},
"babel-plugin-transform-react-jsx": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.22.0.tgz",
- "integrity": "sha1-SFVrfdTD/pfRyUO81U/D8lYcGBc=",
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
+ "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
"dev": true,
"requires": {
"babel-helper-builder-react-jsx": "6.26.0",
@@ -957,18 +1090,18 @@
}
},
"babel-plugin-transform-regenerator": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.22.0.tgz",
- "integrity": "sha1-ZXQFk6MZxEUiFXU41pC4QJRhfqY=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
+ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
"dev": true,
"requires": {
- "regenerator-transform": "0.9.8"
+ "regenerator-transform": "0.10.1"
}
},
"babel-plugin-transform-runtime": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.22.0.tgz",
- "integrity": "sha1-EJaNdgu/ZRckMIHux3jhD6goVRw=",
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz",
+ "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
"dev": true,
"requires": {
"babel-runtime": "6.26.0"
@@ -985,9 +1118,9 @@
}
},
"babel-preset-env": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.2.1.tgz",
- "integrity": "sha1-ZZF49U33SnR2X3lr5NKQtb7rP18=",
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz",
+ "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==",
"dev": true,
"requires": {
"babel-plugin-check-es2015-constants": "6.22.0",
@@ -1016,77 +1149,62 @@
"babel-plugin-transform-es2015-typeof-symbol": "6.23.0",
"babel-plugin-transform-es2015-unicode-regex": "6.24.1",
"babel-plugin-transform-exponentiation-operator": "6.24.1",
- "babel-plugin-transform-regenerator": "6.22.0",
- "browserslist": "1.4.0",
- "electron-to-chromium": "1.3.20",
- "invariant": "2.2.2"
+ "babel-plugin-transform-regenerator": "6.26.0",
+ "browserslist": "2.10.0",
+ "invariant": "2.2.2",
+ "semver": "5.4.1"
+ }
+ },
+ "babel-preset-flow": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz",
+ "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-flow-strip-types": "6.22.0"
}
},
"babel-preset-jest": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-17.0.2.tgz",
- "integrity": "sha1-FB6TXevhZKqgNkwiDTHMshdkk7I=",
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz",
+ "integrity": "sha1-y6yq3stdaJyh4d4TYOv8ZoYsF4o=",
"dev": true,
"requires": {
- "babel-plugin-jest-hoist": "17.0.2"
+ "babel-plugin-jest-hoist": "20.0.3"
}
},
"babel-preset-react": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.22.0.tgz",
- "integrity": "sha1-e8l+LXPuxLmA+2tOTgiE6BzNwWU=",
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz",
+ "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=",
"dev": true,
"requires": {
- "babel-plugin-syntax-flow": "6.18.0",
"babel-plugin-syntax-jsx": "6.18.0",
- "babel-plugin-transform-flow-strip-types": "6.22.0",
"babel-plugin-transform-react-display-name": "6.25.0",
- "babel-plugin-transform-react-jsx": "6.22.0",
+ "babel-plugin-transform-react-jsx": "6.24.1",
"babel-plugin-transform-react-jsx-self": "6.22.0",
- "babel-plugin-transform-react-jsx-source": "6.22.0"
+ "babel-plugin-transform-react-jsx-source": "6.22.0",
+ "babel-preset-flow": "6.23.0"
}
},
"babel-preset-react-app": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-2.2.0.tgz",
- "integrity": "sha1-MUO88xYEn3i1+dBCL9eCLKRxXKQ=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-3.1.0.tgz",
+ "integrity": "sha512-jEAeVozxLzftLl0iDZ0d5jrmfbo3yogON/eI4AsEDIs8p6WW+t9mDRUsj5l12bqPOLSiVOElCQ3QyGjMcyBiwA==",
"dev": true,
"requires": {
- "babel-plugin-transform-class-properties": "6.22.0",
- "babel-plugin-transform-object-rest-spread": "6.22.0",
- "babel-plugin-transform-react-constant-elements": "6.22.0",
- "babel-plugin-transform-react-jsx": "6.22.0",
+ "babel-plugin-dynamic-import-node": "1.1.0",
+ "babel-plugin-syntax-dynamic-import": "6.18.0",
+ "babel-plugin-transform-class-properties": "6.24.1",
+ "babel-plugin-transform-object-rest-spread": "6.26.0",
+ "babel-plugin-transform-react-constant-elements": "6.23.0",
+ "babel-plugin-transform-react-jsx": "6.24.1",
"babel-plugin-transform-react-jsx-self": "6.22.0",
"babel-plugin-transform-react-jsx-source": "6.22.0",
- "babel-plugin-transform-regenerator": "6.22.0",
- "babel-plugin-transform-runtime": "6.22.0",
- "babel-preset-env": "1.2.1",
- "babel-preset-react": "6.22.0",
- "babel-runtime": "6.22.0"
- },
- "dependencies": {
- "babel-runtime": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.22.0.tgz",
- "integrity": "sha1-HPi0rGfHek3bDbKuH3TeUqxMphE=",
- "dev": true,
- "requires": {
- "core-js": "2.5.1",
- "regenerator-runtime": "0.10.5"
- }
- },
- "core-js": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
- "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=",
- "dev": true
- },
- "regenerator-runtime": {
- "version": "0.10.5",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
- "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=",
- "dev": true
- }
+ "babel-plugin-transform-regenerator": "6.26.0",
+ "babel-plugin-transform-runtime": "6.23.0",
+ "babel-preset-env": "1.6.1",
+ "babel-preset-react": "6.24.1"
}
},
"babel-register": {
@@ -1097,50 +1215,17 @@
"requires": {
"babel-core": "6.26.0",
"babel-runtime": "6.26.0",
- "core-js": "2.5.1",
+ "core-js": "2.5.3",
"home-or-tmp": "2.0.0",
"lodash": "4.17.4",
"mkdirp": "0.5.1",
- "source-map-support": "0.4.17"
+ "source-map-support": "0.4.18"
},
"dependencies": {
- "babel-core": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz",
- "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=",
- "dev": true,
- "requires": {
- "babel-code-frame": "6.26.0",
- "babel-generator": "6.26.0",
- "babel-helpers": "6.24.1",
- "babel-messages": "6.23.0",
- "babel-register": "6.26.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "convert-source-map": "1.5.0",
- "debug": "2.6.8",
- "json5": "0.5.1",
- "lodash": "4.17.4",
- "minimatch": "3.0.4",
- "path-is-absolute": "1.0.1",
- "private": "0.1.7",
- "slash": "1.0.0",
- "source-map": "0.5.7"
- }
- },
"core-js": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
- "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=",
- "dev": true
- },
- "json5": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz",
+ "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=",
"dev": true
}
}
@@ -1151,14 +1236,14 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.5.1",
- "regenerator-runtime": "0.11.0"
+ "core-js": "2.5.3",
+ "regenerator-runtime": "0.11.1"
},
"dependencies": {
"core-js": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
- "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=",
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz",
+ "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=",
"dev": true
}
}
@@ -1187,7 +1272,7 @@
"babel-runtime": "6.26.0",
"babel-types": "6.26.0",
"babylon": "6.18.0",
- "debug": "2.6.8",
+ "debug": "2.6.9",
"globals": "9.18.0",
"invariant": "2.2.2",
"lodash": "4.17.4"
@@ -1240,23 +1325,61 @@
}
},
"big.js": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz",
- "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
"dev": true
},
"binary-extensions": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz",
- "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=",
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz",
+ "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
"dev": true
},
"bluebird": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz",
- "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
+ "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
"dev": true
},
+ "bn.js": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+ "dev": true
+ },
+ "body-parser": {
+ "version": "1.18.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
+ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
+ "dev": true,
+ "requires": {
+ "bytes": "3.0.0",
+ "content-type": "1.0.4",
+ "debug": "2.6.9",
+ "depd": "1.1.1",
+ "http-errors": "1.6.2",
+ "iconv-lite": "0.4.19",
+ "on-finished": "2.3.0",
+ "qs": "6.5.1",
+ "raw-body": "2.3.2",
+ "type-is": "1.6.15"
+ }
+ },
+ "bonjour": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
+ "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+ "dev": true,
+ "requires": {
+ "array-flatten": "2.1.1",
+ "deep-equal": "1.0.1",
+ "dns-equal": "1.0.0",
+ "dns-txt": "2.0.2",
+ "multicast-dns": "6.2.1",
+ "multicast-dns-service-types": "1.1.0"
+ }
+ },
"boolbase": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
@@ -1264,12 +1387,57 @@
"dev": true
},
"boom": {
- "version": "2.10.1",
- "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
- "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
+ "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
"dev": true,
"requires": {
- "hoek": "2.16.3"
+ "hoek": "4.2.0"
+ }
+ },
+ "boxen": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-0.6.0.tgz",
+ "integrity": "sha1-g2TUJIrDT/DvGy8r9JpsYM4NgbY=",
+ "dev": true,
+ "requires": {
+ "ansi-align": "1.1.0",
+ "camelcase": "2.1.1",
+ "chalk": "1.1.3",
+ "cli-boxes": "1.0.0",
+ "filled-array": "1.1.0",
+ "object-assign": "4.1.1",
+ "repeating": "2.0.1",
+ "string-width": "1.0.2",
+ "widest-line": "1.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
}
},
"brace-expansion": {
@@ -1293,6 +1461,12 @@
"repeat-element": "1.1.2"
}
},
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+ "dev": true
+ },
"browser-resolve": {
"version": "1.11.2",
"resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
@@ -1311,36 +1485,89 @@
}
},
"browserify-aes": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz",
- "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz",
+ "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==",
"dev": true,
"requires": {
+ "buffer-xor": "1.0.3",
+ "cipher-base": "1.0.4",
+ "create-hash": "1.1.3",
+ "evp_bytestokey": "1.0.3",
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
+ "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
+ "dev": true,
+ "requires": {
+ "browserify-aes": "1.1.1",
+ "browserify-des": "1.0.0",
+ "evp_bytestokey": "1.0.3"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
+ "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
+ "dev": true,
+ "requires": {
+ "cipher-base": "1.0.4",
+ "des.js": "1.0.0",
"inherits": "2.0.3"
}
},
- "browserify-zlib": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
- "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
+ "browserify-rsa": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
"dev": true,
"requires": {
- "pako": "0.2.9"
+ "bn.js": "4.11.8",
+ "randombytes": "2.0.5"
+ }
+ },
+ "browserify-sign": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
+ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "browserify-rsa": "4.0.1",
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "elliptic": "6.4.0",
+ "inherits": "2.0.3",
+ "parse-asn1": "5.1.0"
+ }
+ },
+ "browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dev": true,
+ "requires": {
+ "pako": "1.0.6"
}
},
"browserslist": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.4.0.tgz",
- "integrity": "sha1-nP3PU4TZFY9bcNoqoAsw6P8BkEk=",
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.10.0.tgz",
+ "integrity": "sha512-WyvzSLsuAVPOjbljXnyeWl14Ae+ukAT8MUuagKVzIDvwBxl4UAwD1xqtyQs2eWYPGUKMeC3Ol62goqYuKqTTcw==",
"dev": true,
"requires": {
- "caniuse-db": "1.0.30000721"
+ "caniuse-lite": "1.0.30000784",
+ "electron-to-chromium": "1.3.29"
}
},
"bser": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz",
- "integrity": "sha1-OBEWlwsqbe6lZG3RXdcnhES1YWk=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz",
+ "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=",
"dev": true,
"requires": {
"node-int64": "0.4.0"
@@ -1357,6 +1584,18 @@
"isarray": "1.0.0"
}
},
+ "buffer-indexof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
+ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==",
+ "dev": true
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+ "dev": true
+ },
"builtin-modules": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
@@ -1370,9 +1609,9 @@
"dev": true
},
"bytes": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.5.0.tgz",
- "integrity": "sha1-TJQj6i0lLCcMQbK97+/5u2tiwGo=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
"dev": true
},
"caller-path": {
@@ -1396,7 +1635,7 @@
"integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
"dev": true,
"requires": {
- "no-case": "2.3.1",
+ "no-case": "2.3.2",
"upper-case": "1.1.3"
}
},
@@ -1406,38 +1645,70 @@
"integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
"dev": true
},
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "dev": true,
+ "requires": {
+ "camelcase": "2.1.1",
+ "map-obj": "1.0.1"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ }
+ }
+ },
"caniuse-api": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
"integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=",
"dev": true,
"requires": {
- "browserslist": "1.4.0",
- "caniuse-db": "1.0.30000721",
+ "browserslist": "1.7.7",
+ "caniuse-db": "1.0.30000784",
"lodash.memoize": "4.1.2",
"lodash.uniq": "4.5.0"
+ },
+ "dependencies": {
+ "browserslist": {
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "dev": true,
+ "requires": {
+ "caniuse-db": "1.0.30000784",
+ "electron-to-chromium": "1.3.29"
+ }
+ }
}
},
"caniuse-db": {
- "version": "1.0.30000721",
- "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000721.tgz",
- "integrity": "sha1-zcUu/o+C3RORZhW3job3BOzmGAI=",
+ "version": "1.0.30000784",
+ "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000784.tgz",
+ "integrity": "sha1-G+lQEtlInHcZB0+BruV9vf/mNhs=",
"dev": true
},
- "cardinal": {
+ "caniuse-lite": {
+ "version": "1.0.30000784",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000784.tgz",
+ "integrity": "sha1-EpztdOmhKApEGIC2zSvOMO9Z5sA=",
+ "dev": true
+ },
+ "capture-stack-trace": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz",
- "integrity": "sha1-UOIcGwqjdyn5N33vGWtanOyTLuk=",
- "dev": true,
- "requires": {
- "ansicolors": "0.2.1",
- "redeyed": "1.0.1"
- }
+ "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz",
+ "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=",
+ "dev": true
},
"case-sensitive-paths-webpack-plugin": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-1.1.4.tgz",
- "integrity": "sha1-iq7dVpmobKwrNM9A2bQUV1iXhHI=",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.1.tgz",
+ "integrity": "sha1-PSnO2MHxJL9vU4Rvs/WJRzH9yQk=",
"dev": true
},
"caseless": {
@@ -1469,6 +1740,12 @@
"supports-color": "2.0.0"
},
"dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
@@ -1477,6 +1754,12 @@
}
}
},
+ "chardet": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
+ "dev": true
+ },
"chokidar": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
@@ -1485,6 +1768,7 @@
"requires": {
"anymatch": "1.3.2",
"async-each": "1.0.1",
+ "fsevents": "1.1.2",
"glob-parent": "2.0.0",
"inherits": "2.0.3",
"is-binary-path": "1.0.1",
@@ -1494,11 +1778,21 @@
}
},
"ci-info": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.0.0.tgz",
- "integrity": "sha1-3FKF8rTiUYIWg2gcOBwziPRuxTQ=",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz",
+ "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==",
"dev": true
},
+ "cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ },
"circular-json": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
@@ -1506,57 +1800,44 @@
"dev": true
},
"clap": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz",
- "integrity": "sha1-WckP4+E3EEdG/xlGmiemNP9oyFc=",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz",
+ "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==",
"dev": true,
"requires": {
"chalk": "1.1.3"
}
},
"clean-css": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.8.tgz",
- "integrity": "sha1-BhRVsklKdQrJj0bY1euxfGeeqdE=",
+ "version": "4.1.9",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.9.tgz",
+ "integrity": "sha1-Nc7ornaHpJuYA09w3gDE7dOCYwE=",
"dev": true,
"requires": {
"source-map": "0.5.7"
- }
- },
- "cli-cursor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
- "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
- "dev": true,
- "requires": {
- "restore-cursor": "1.0.1"
- }
- },
- "cli-table": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz",
- "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=",
- "dev": true,
- "requires": {
- "colors": "1.0.3"
},
"dependencies": {
- "colors": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
- "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
}
}
},
- "cli-usage": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/cli-usage/-/cli-usage-0.1.4.tgz",
- "integrity": "sha1-fAHg3HBsI0s5yTODjI4gshdXduI=",
+ "cli-boxes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
+ "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
+ "dev": true
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
"dev": true,
"requires": {
- "marked": "0.3.6",
- "marked-terminal": "1.7.0"
+ "restore-cursor": "2.0.0"
}
},
"cli-width": {
@@ -1585,9 +1866,9 @@
}
},
"clone": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
- "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz",
+ "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=",
"dev": true
},
"co": {
@@ -1602,7 +1883,7 @@
"integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
"dev": true,
"requires": {
- "q": "1.5.0"
+ "q": "1.5.1"
}
},
"code-point-at": {
@@ -1617,15 +1898,15 @@
"integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
"dev": true,
"requires": {
- "clone": "1.0.2",
- "color-convert": "1.9.0",
+ "clone": "1.0.3",
+ "color-convert": "1.9.1",
"color-string": "0.3.0"
}
},
"color-convert": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
- "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=",
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
+ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
"dev": true,
"requires": {
"color-name": "1.1.3"
@@ -1673,13 +1954,10 @@
}
},
"commander": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
- "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
- "dev": true,
- "requires": {
- "graceful-readlink": "1.0.1"
- }
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz",
+ "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==",
+ "dev": true
},
"commondir": {
"version": "1.0.1",
@@ -1688,27 +1966,27 @@
"dev": true
},
"compressible": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.11.tgz",
- "integrity": "sha1-FnGKdd4oPtjmBAQWJaIGRYZ5fYo=",
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz",
+ "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=",
"dev": true,
"requires": {
"mime-db": "1.30.0"
}
},
"compression": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.0.tgz",
- "integrity": "sha1-AwyfGY8WQ6BX13anOOki2kNzAS0=",
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz",
+ "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=",
"dev": true,
"requires": {
"accepts": "1.3.4",
- "bytes": "2.5.0",
- "compressible": "2.0.11",
- "debug": "2.6.8",
+ "bytes": "3.0.0",
+ "compressible": "2.0.12",
+ "debug": "2.6.9",
"on-headers": "1.0.1",
"safe-buffer": "5.1.1",
- "vary": "1.1.1"
+ "vary": "1.1.2"
}
},
"concat-map": {
@@ -1728,10 +2006,35 @@
"typedarray": "0.0.6"
}
},
+ "configstore": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-2.1.0.tgz",
+ "integrity": "sha1-c3o6cDbpiGECqmCZ5HuzOrGroaE=",
+ "dev": true,
+ "requires": {
+ "dot-prop": "3.0.0",
+ "graceful-fs": "4.1.11",
+ "mkdirp": "0.5.1",
+ "object-assign": "4.1.1",
+ "os-tmpdir": "1.0.2",
+ "osenv": "0.1.4",
+ "uuid": "2.0.3",
+ "write-file-atomic": "1.3.4",
+ "xdg-basedir": "2.0.0"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
+ "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
+ "dev": true
+ }
+ }
+ },
"connect-history-api-fallback": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz",
- "integrity": "sha1-5R0X+PDvDbkKZP20feMFFVbp8Wk=",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz",
+ "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=",
"dev": true
},
"console-browserify": {
@@ -1762,21 +2065,21 @@
"dev": true
},
"content-type": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz",
- "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
"dev": true
},
"content-type-parser": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.1.tgz",
- "integrity": "sha1-w+VpiMU8ZRJ/tG1AMqOpACRv3JQ=",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz",
+ "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==",
"dev": true
},
"convert-source-map": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz",
- "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
+ "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=",
"dev": true
},
"cookie": {
@@ -1825,35 +2128,99 @@
}
}
},
+ "create-ecdh": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
+ "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "elliptic": "6.4.0"
+ }
+ },
+ "create-error-class": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
+ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
+ "dev": true,
+ "requires": {
+ "capture-stack-trace": "1.0.0"
+ }
+ },
+ "create-hash": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
+ "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=",
+ "dev": true,
+ "requires": {
+ "cipher-base": "1.0.4",
+ "inherits": "2.0.3",
+ "ripemd160": "2.0.1",
+ "sha.js": "2.4.9"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz",
+ "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=",
+ "dev": true,
+ "requires": {
+ "cipher-base": "1.0.4",
+ "create-hash": "1.1.3",
+ "inherits": "2.0.3",
+ "ripemd160": "2.0.1",
+ "safe-buffer": "5.1.1",
+ "sha.js": "2.4.9"
+ }
+ },
"cross-spawn": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
- "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
"dev": true,
"requires": {
"lru-cache": "4.1.1",
+ "shebang-command": "1.2.0",
"which": "1.3.0"
}
},
"cryptiles": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
- "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
+ "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
"dev": true,
"requires": {
- "boom": "2.10.1"
+ "boom": "5.2.0"
+ },
+ "dependencies": {
+ "boom": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
+ "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
+ "dev": true,
+ "requires": {
+ "hoek": "4.2.0"
+ }
+ }
}
},
"crypto-browserify": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz",
- "integrity": "sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw=",
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
"dev": true,
"requires": {
- "browserify-aes": "0.4.0",
- "pbkdf2-compat": "2.0.1",
- "ripemd160": "0.2.0",
- "sha.js": "2.2.6"
+ "browserify-cipher": "1.0.0",
+ "browserify-sign": "4.0.4",
+ "create-ecdh": "4.0.0",
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "diffie-hellman": "5.0.2",
+ "inherits": "2.0.3",
+ "pbkdf2": "3.0.14",
+ "public-encrypt": "4.0.0",
+ "randombytes": "2.0.5",
+ "randomfill": "1.0.3"
}
},
"css-color-names": {
@@ -1863,23 +2230,60 @@
"dev": true
},
"css-loader": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.26.0.tgz",
- "integrity": "sha1-Fg03j1uOD9T/ba9PNYDiIZszAl8=",
+ "version": "0.28.7",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.7.tgz",
+ "integrity": "sha512-GxMpax8a/VgcfRrVy0gXD6yLd5ePYbXX/5zGgTVYp4wXtJklS8Z2VaUArJgc//f6/Dzil7BaJObdSv8eKKCPgg==",
"dev": true,
"requires": {
"babel-code-frame": "6.26.0",
"css-selector-tokenizer": "0.7.0",
"cssnano": "3.10.0",
- "loader-utils": "0.2.17",
+ "icss-utils": "2.1.0",
+ "loader-utils": "1.1.0",
"lodash.camelcase": "4.3.0",
"object-assign": "4.1.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-modules-extract-imports": "1.1.0",
"postcss-modules-local-by-default": "1.2.0",
"postcss-modules-scope": "1.1.0",
"postcss-modules-values": "1.3.0",
- "source-list-map": "0.1.8"
+ "postcss-value-parser": "3.3.0",
+ "source-list-map": "2.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"css-select": {
@@ -1911,7 +2315,7 @@
"integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
"dev": true,
"requires": {
- "regenerate": "1.3.2",
+ "regenerate": "1.3.3",
"regjsgen": "0.2.0",
"regjsparser": "0.1.5"
}
@@ -1936,12 +2340,12 @@
"integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=",
"dev": true,
"requires": {
- "autoprefixer": "6.5.1",
+ "autoprefixer": "6.7.7",
"decamelize": "1.2.0",
"defined": "1.0.0",
"has": "1.0.1",
"object-assign": "4.1.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-calc": "5.3.1",
"postcss-colormin": "2.2.2",
"postcss-convert-values": "2.6.1",
@@ -1968,6 +2372,65 @@
"postcss-unique-selectors": "2.0.2",
"postcss-value-parser": "3.3.0",
"postcss-zindex": "2.2.0"
+ },
+ "dependencies": {
+ "autoprefixer": {
+ "version": "6.7.7",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz",
+ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
+ "dev": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-db": "1.0.30000784",
+ "normalize-range": "0.1.2",
+ "num2fraction": "1.2.2",
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "browserslist": {
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "dev": true,
+ "requires": {
+ "caniuse-db": "1.0.30000784",
+ "electron-to-chromium": "1.3.29"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"csso": {
@@ -1976,8 +2439,16 @@
"integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
"dev": true,
"requires": {
- "clap": "1.2.0",
+ "clap": "1.2.3",
"source-map": "0.5.7"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
}
},
"cssom": {
@@ -1995,13 +2466,22 @@
"cssom": "0.3.2"
}
},
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dev": true,
+ "requires": {
+ "array-find-index": "1.0.2"
+ }
+ },
"d": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
"dev": true,
"requires": {
- "es5-ext": "0.10.30"
+ "es5-ext": "0.10.37"
}
},
"damerau-levenshtein": {
@@ -2017,14 +2497,6 @@
"dev": true,
"requires": {
"assert-plus": "1.0.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
}
},
"date-now": {
@@ -2034,9 +2506,9 @@
"dev": true
},
"debug": {
- "version": "2.6.8",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
- "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
"ms": "2.0.0"
@@ -2048,6 +2520,18 @@
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
"dev": true
},
+ "deep-equal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
+ "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=",
+ "dev": true
+ },
+ "deep-extend": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
+ "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
+ "dev": true
+ },
"deep-is": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
@@ -2063,6 +2547,16 @@
"strip-bom": "2.0.0"
}
},
+ "define-properties": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
+ "dev": true,
+ "requires": {
+ "foreach": "2.0.5",
+ "object-keys": "1.0.11"
+ }
+ },
"defined": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
@@ -2081,7 +2575,7 @@
"object-assign": "4.1.1",
"pify": "2.3.0",
"pinkie-promise": "2.0.1",
- "rimraf": "2.6.1"
+ "rimraf": "2.6.2"
}
},
"delayed-stream": {
@@ -2096,6 +2590,16 @@
"integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=",
"dev": true
},
+ "des.js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
+ },
"destroy": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
@@ -2111,29 +2615,71 @@
"repeating": "2.0.1"
}
},
- "detect-port": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.0.1.tgz",
- "integrity": "sha1-Phqmp/9md7tgiUspEXJSnYgMHoU=",
+ "detect-node": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz",
+ "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=",
+ "dev": true
+ },
+ "detect-port-alt": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.3.tgz",
+ "integrity": "sha1-pNLwYddXoDTs83xRQmCph1DysTE=",
"dev": true,
"requires": {
- "commander": "2.8.1"
+ "address": "1.0.3",
+ "debug": "2.6.9"
}
},
"diff": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.0.tgz",
- "integrity": "sha512-w0XZubFWn0Adlsapj9EAWX0FqWdO4tz8kc3RiYdWLh4k/V8PTb6i0SMgXt0vRM3zyKnT8tKO7mUlieRQHIjMNg==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz",
+ "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==",
"dev": true
},
- "doctrine": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
- "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+ "diffie-hellman": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
+ "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
"dev": true,
"requires": {
- "esutils": "2.0.2",
- "isarray": "1.0.0"
+ "bn.js": "4.11.8",
+ "miller-rabin": "4.0.1",
+ "randombytes": "2.0.5"
+ }
+ },
+ "dns-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
+ "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
+ "dev": true
+ },
+ "dns-packet": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.2.2.tgz",
+ "integrity": "sha512-kN+DjfGF7dJGUL7nWRktL9Z18t1rWP3aQlyZdY8XlpvU3Nc6GeFTQApftcjtWKxAZfiggZSGrCEoszNgvnpwDg==",
+ "dev": true,
+ "requires": {
+ "ip": "1.1.5",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "dns-txt": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
+ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+ "dev": true,
+ "requires": {
+ "buffer-indexof": "1.1.1"
+ }
+ },
+ "doctrine": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.2.tgz",
+ "integrity": "sha512-y0tm5Pq6ywp3qSTZ1vPgVdAnbDEoeoc5wlOHXoY1c4Wug/a7JvqHIl7BTvwodaHmejWkK/9dSb3sCYfyo/om8A==",
+ "dev": true,
+ "requires": {
+ "esutils": "2.0.2"
}
},
"dom-converter": {
@@ -2171,6 +2717,15 @@
}
}
},
+ "dom-urls": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/dom-urls/-/dom-urls-1.1.0.tgz",
+ "integrity": "sha1-AB3fgWKM0ecGElxxdvU8zsVdkY4=",
+ "dev": true,
+ "requires": {
+ "urijs": "1.19.0"
+ }
+ },
"domain-browser": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
@@ -2202,10 +2757,19 @@
"domelementtype": "1.3.0"
}
},
+ "dot-prop": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz",
+ "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=",
+ "dev": true,
+ "requires": {
+ "is-obj": "1.0.1"
+ }
+ },
"dotenv": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-2.0.0.tgz",
- "integrity": "sha1-vXWcNXqqcDZeAclrewvsCKbg2Uk=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz",
+ "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=",
"dev": true
},
"duplexer": {
@@ -2214,6 +2778,15 @@
"integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
"dev": true
},
+ "duplexer2": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "2.3.3"
+ }
+ },
"ecc-jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
@@ -2231,9 +2804,30 @@
"dev": true
},
"electron-to-chromium": {
- "version": "1.3.20",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.20.tgz",
- "integrity": "sha1-Lu3VzLrn3cVX9orR/OnBcukV5OU=",
+ "version": "1.3.29",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.29.tgz",
+ "integrity": "sha1-elgja5VGjD52YAkTSFItZddzazY=",
+ "dev": true
+ },
+ "elliptic": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
+ "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "brorand": "1.1.0",
+ "hash.js": "1.1.3",
+ "hmac-drbg": "1.0.1",
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0",
+ "minimalistic-crypto-utils": "1.0.1"
+ }
+ },
+ "emoji-regex": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz",
+ "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==",
"dev": true
},
"emojis-list": {
@@ -2253,26 +2847,19 @@
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
"integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
"requires": {
- "iconv-lite": "0.4.18"
+ "iconv-lite": "0.4.19"
}
},
"enhanced-resolve": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz",
- "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
+ "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
"dev": true,
"requires": {
"graceful-fs": "4.1.11",
- "memory-fs": "0.2.0",
- "tapable": "0.1.10"
- },
- "dependencies": {
- "memory-fs": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz",
- "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=",
- "dev": true
- }
+ "memory-fs": "0.4.1",
+ "object-assign": "4.1.1",
+ "tapable": "0.2.8"
}
},
"entities": {
@@ -2282,12 +2869,12 @@
"dev": true
},
"errno": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
- "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=",
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz",
+ "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==",
"dev": true,
"requires": {
- "prr": "0.0.0"
+ "prr": "1.0.1"
}
},
"error-ex": {
@@ -2299,24 +2886,48 @@
"is-arrayish": "0.2.1"
}
},
- "es5-ext": {
- "version": "0.10.30",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz",
- "integrity": "sha1-cUGhaDZpfbq/qq7uQUlc4p9SyTk=",
+ "es-abstract": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz",
+ "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==",
"dev": true,
"requires": {
- "es6-iterator": "2.0.1",
+ "es-to-primitive": "1.1.1",
+ "function-bind": "1.1.1",
+ "has": "1.0.1",
+ "is-callable": "1.1.3",
+ "is-regex": "1.0.4"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
+ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
+ "dev": true,
+ "requires": {
+ "is-callable": "1.1.3",
+ "is-date-object": "1.0.1",
+ "is-symbol": "1.0.1"
+ }
+ },
+ "es5-ext": {
+ "version": "0.10.37",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.37.tgz",
+ "integrity": "sha1-DudB0Ui4AGm6J9AgOTdWryV978M=",
+ "dev": true,
+ "requires": {
+ "es6-iterator": "2.0.3",
"es6-symbol": "3.1.1"
}
},
"es6-iterator": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz",
- "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
"dev": true,
"requires": {
"d": "1.0.0",
- "es5-ext": "0.10.30",
+ "es5-ext": "0.10.37",
"es6-symbol": "3.1.1"
}
},
@@ -2327,13 +2938,19 @@
"dev": true,
"requires": {
"d": "1.0.0",
- "es5-ext": "0.10.30",
- "es6-iterator": "2.0.1",
+ "es5-ext": "0.10.37",
+ "es6-iterator": "2.0.3",
"es6-set": "0.1.5",
"es6-symbol": "3.1.1",
"event-emitter": "0.3.5"
}
},
+ "es6-promise": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz",
+ "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==",
+ "dev": true
+ },
"es6-set": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
@@ -2341,8 +2958,8 @@
"dev": true,
"requires": {
"d": "1.0.0",
- "es5-ext": "0.10.30",
- "es6-iterator": "2.0.1",
+ "es5-ext": "0.10.37",
+ "es6-iterator": "2.0.3",
"es6-symbol": "3.1.1",
"event-emitter": "0.3.5"
}
@@ -2354,7 +2971,7 @@
"dev": true,
"requires": {
"d": "1.0.0",
- "es5-ext": "0.10.30"
+ "es5-ext": "0.10.37"
}
},
"es6-weak-map": {
@@ -2364,8 +2981,8 @@
"dev": true,
"requires": {
"d": "1.0.0",
- "es5-ext": "0.10.30",
- "es6-iterator": "2.0.1",
+ "es5-ext": "0.10.37",
+ "es6-iterator": "2.0.3",
"es6-symbol": "3.1.1"
}
},
@@ -2382,33 +2999,30 @@
"dev": true
},
"escodegen": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
- "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz",
+ "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==",
"dev": true,
"requires": {
- "esprima": "2.7.3",
- "estraverse": "1.9.3",
+ "esprima": "3.1.3",
+ "estraverse": "4.2.0",
"esutils": "2.0.2",
"optionator": "0.8.2",
- "source-map": "0.2.0"
+ "source-map": "0.5.7"
},
"dependencies": {
- "estraverse": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
- "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=",
+ "esprima": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
"dev": true
},
"source-map": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
- "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true,
- "optional": true,
- "requires": {
- "amdefine": "1.0.1"
- }
+ "optional": true
}
}
},
@@ -2425,46 +3039,251 @@
}
},
"eslint": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.8.1.tgz",
- "integrity": "sha1-fQLbRM1ar0+nqkieHwg7qkVDQro=",
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.10.0.tgz",
+ "integrity": "sha512-MMVl8P/dYUFZEvolL8PYt7qc5LNdS2lwheq9BYa5Y07FblhcZqFyaUqlS8TW5QITGex21tV4Lk0a3fK8lsJIkA==",
"dev": true,
"requires": {
- "chalk": "1.1.3",
+ "ajv": "5.5.2",
+ "babel-code-frame": "6.26.0",
+ "chalk": "2.3.0",
"concat-stream": "1.6.0",
- "debug": "2.6.8",
- "doctrine": "1.5.0",
- "escope": "3.6.0",
- "espree": "3.5.0",
+ "cross-spawn": "5.1.0",
+ "debug": "3.1.0",
+ "doctrine": "2.0.2",
+ "eslint-scope": "3.7.1",
+ "espree": "3.5.2",
+ "esquery": "1.0.0",
"estraverse": "4.2.0",
"esutils": "2.0.2",
"file-entry-cache": "2.0.0",
+ "functional-red-black-tree": "1.0.1",
"glob": "7.1.2",
"globals": "9.18.0",
- "ignore": "3.3.5",
+ "ignore": "3.3.7",
"imurmurhash": "0.1.4",
- "inquirer": "0.12.0",
- "is-my-json-valid": "2.16.1",
- "is-resolvable": "1.0.0",
- "js-yaml": "3.7.0",
+ "inquirer": "3.3.0",
+ "is-resolvable": "1.0.1",
+ "js-yaml": "3.10.0",
"json-stable-stringify": "1.0.1",
"levn": "0.3.0",
"lodash": "4.17.4",
+ "minimatch": "3.0.4",
"mkdirp": "0.5.1",
"natural-compare": "1.4.0",
"optionator": "0.8.2",
"path-is-inside": "1.0.2",
- "pluralize": "1.2.1",
- "progress": "1.1.8",
+ "pluralize": "7.0.0",
+ "progress": "2.0.0",
"require-uncached": "1.0.3",
- "shelljs": "0.6.1",
- "strip-bom": "3.0.0",
- "strip-json-comments": "1.0.4",
- "table": "3.8.3",
- "text-table": "0.2.0",
- "user-home": "2.0.0"
+ "semver": "5.4.1",
+ "strip-ansi": "4.0.0",
+ "strip-json-comments": "2.0.1",
+ "table": "4.0.2",
+ "text-table": "0.2.0"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "esprima": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
+ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
+ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ }
+ }
+ },
+ "eslint-config-react-app": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-2.0.1.tgz",
+ "integrity": "sha512-gHtkzfEjKXhgZJ0Bf+EmztFSWwTiMDgoy85sFaTqrxU1BHSJ9i4i/JJtXJofVCU/SOKxYs46LO3ajvuzFQH5rw==",
+ "dev": true
+ },
+ "eslint-import-resolver-node": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz",
+ "integrity": "sha512-yUtXS15gIcij68NmXmP9Ni77AQuCN0itXbCc/jWd8C6/yKZaSNXicpC8cgvjnxVdmfsosIXrjpzFq7GcDryb6A==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "resolve": "1.5.0"
+ }
+ },
+ "eslint-loader": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.9.0.tgz",
+ "integrity": "sha512-40aN976qSNPyb9ejTqjEthZITpls1SVKtwguahmH1dzGCwQU/vySE+xX33VZmD8csU0ahVNCtFlsPgKqRBiqgg==",
+ "dev": true,
+ "requires": {
+ "loader-fs-cache": "1.0.1",
+ "loader-utils": "1.1.0",
+ "object-assign": "4.1.1",
+ "object-hash": "1.2.0",
+ "rimraf": "2.6.2"
+ }
+ },
+ "eslint-module-utils": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz",
+ "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "pkg-dir": "1.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "pkg-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
+ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2"
+ }
+ }
+ }
+ },
+ "eslint-plugin-flowtype": {
+ "version": "2.39.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.39.1.tgz",
+ "integrity": "sha512-RiQv+7Z9QDJuzt+NO8sYgkLGT+h+WeCrxP7y8lI7wpU41x3x/2o3PGtHk9ck8QnA9/mlbNcy/hG0eKvmd7npaA==",
+ "dev": true,
+ "requires": {
+ "lodash": "4.17.4"
+ }
+ },
+ "eslint-plugin-import": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz",
+ "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "1.1.1",
+ "contains-path": "0.1.0",
+ "debug": "2.6.9",
+ "doctrine": "1.5.0",
+ "eslint-import-resolver-node": "0.3.1",
+ "eslint-module-utils": "2.1.1",
+ "has": "1.0.1",
+ "lodash.cond": "4.5.2",
+ "minimatch": "3.0.4",
+ "read-pkg-up": "2.0.0"
+ },
+ "dependencies": {
+ "doctrine": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+ "dev": true,
+ "requires": {
+ "esutils": "2.0.2",
+ "isarray": "1.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "strip-bom": "3.0.0"
+ }
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
+ "requires": {
+ "pify": "2.3.0"
+ }
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "2.0.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "2.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
+ "requires": {
+ "find-up": "2.1.0",
+ "read-pkg": "2.0.0"
+ }
+ },
"strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -2473,128 +3292,61 @@
}
}
},
- "eslint-config-react-app": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-0.5.2.tgz",
- "integrity": "sha1-FcVY0TZTI+CiPtLdp/vUye9lcGw=",
- "dev": true
- },
- "eslint-import-resolver-node": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz",
- "integrity": "sha1-Wt2BBujJKNssuiMrzZ76hG49oWw=",
- "dev": true,
- "requires": {
- "debug": "2.6.8",
- "object-assign": "4.1.1",
- "resolve": "1.4.0"
- }
- },
- "eslint-loader": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.6.0.tgz",
- "integrity": "sha1-OPmh5sYCpPHz81FiiXJuXSbm4WU=",
- "dev": true,
- "requires": {
- "find-cache-dir": "0.1.1",
- "loader-utils": "0.2.17",
- "object-assign": "4.1.1"
- }
- },
- "eslint-module-utils": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-1.0.0.tgz",
- "integrity": "sha1-xKV/06U+/YQmzC1VUKraubvQX9A=",
- "dev": true,
- "requires": {
- "debug": "2.2.0",
- "pkg-dir": "1.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
- "dev": true,
- "requires": {
- "ms": "0.7.1"
- }
- },
- "ms": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
- "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
- "dev": true
- }
- }
- },
- "eslint-plugin-flowtype": {
- "version": "2.21.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.21.0.tgz",
- "integrity": "sha1-pH6Fq83RgdN6M2BUvVUhSa44fZw=",
- "dev": true,
- "requires": {
- "lodash": "4.17.4"
- }
- },
- "eslint-plugin-import": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.0.1.tgz",
- "integrity": "sha1-3P6WNX1Haz+CJXDULCm+xm9dnFw=",
- "dev": true,
- "requires": {
- "builtin-modules": "1.1.1",
- "contains-path": "0.1.0",
- "debug": "2.6.8",
- "doctrine": "1.3.0",
- "eslint-import-resolver-node": "0.2.3",
- "eslint-module-utils": "1.0.0",
- "has": "1.0.1",
- "lodash.cond": "4.5.2",
- "minimatch": "3.0.4",
- "pkg-up": "1.0.0"
- },
- "dependencies": {
- "doctrine": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.3.0.tgz",
- "integrity": "sha1-E+dWgrVVGEJCdvfBc3g0Vu+RPSY=",
- "dev": true,
- "requires": {
- "esutils": "2.0.2",
- "isarray": "1.0.0"
- }
- }
- }
- },
"eslint-plugin-jsx-a11y": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-2.2.3.tgz",
- "integrity": "sha1-TjXLcbin23AqxBXIBuuOjZ6mxl0=",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.1.1.tgz",
+ "integrity": "sha512-5I9SpoP7gT4wBFOtXT8/tXNPYohHBVfyVfO17vkbC7r9kEIxYJF12D3pKqhk8+xnk12rfxKClS3WCFpVckFTPQ==",
"dev": true,
"requires": {
+ "aria-query": "0.7.0",
+ "array-includes": "3.0.3",
+ "ast-types-flow": "0.0.7",
+ "axobject-query": "0.1.0",
"damerau-levenshtein": "1.0.4",
- "jsx-ast-utils": "1.4.1",
- "object-assign": "4.1.1"
- }
- },
- "eslint-plugin-react": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.4.1.tgz",
- "integrity": "sha1-fRqt50fbFYkvce7h/qSt35e8+is=",
- "dev": true,
- "requires": {
- "doctrine": "1.5.0",
+ "emoji-regex": "6.5.1",
"jsx-ast-utils": "1.4.1"
}
},
- "espree": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.0.tgz",
- "integrity": "sha1-mDWGJb3QVYYeon4oZ+pyn69GPY0=",
+ "eslint-plugin-react": {
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.4.0.tgz",
+ "integrity": "sha512-tvjU9u3VqmW2vVuYnE8Qptq+6ji4JltjOjJ9u7VAOxVYkUkyBZWRvNYKbDv5fN+L6wiA+4we9+qQahZ0m63XEA==",
"dev": true,
"requires": {
- "acorn": "5.1.1",
+ "doctrine": "2.0.2",
+ "has": "1.0.1",
+ "jsx-ast-utils": "2.0.1",
+ "prop-types": "15.6.0"
+ },
+ "dependencies": {
+ "jsx-ast-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz",
+ "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=",
+ "dev": true,
+ "requires": {
+ "array-includes": "3.0.3"
+ }
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
+ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
+ "dev": true,
+ "requires": {
+ "esrecurse": "4.2.0",
+ "estraverse": "4.2.0"
+ }
+ },
+ "espree": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz",
+ "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==",
+ "dev": true,
+ "requires": {
+ "acorn": "5.2.1",
"acorn-jsx": "3.0.1"
}
},
@@ -2604,6 +3356,15 @@
"integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
"dev": true
},
+ "esquery": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz",
+ "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=",
+ "dev": true,
+ "requires": {
+ "estraverse": "4.2.0"
+ }
+ },
"esrecurse": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",
@@ -2627,9 +3388,9 @@
"dev": true
},
"etag": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz",
- "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=",
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
"dev": true
},
"event-emitter": {
@@ -2639,7 +3400,7 @@
"dev": true,
"requires": {
"d": "1.0.0",
- "es5-ext": "0.10.30"
+ "es5-ext": "0.10.37"
}
},
"eventemitter3": {
@@ -2663,20 +3424,39 @@
"original": "1.0.0"
}
},
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "requires": {
+ "md5.js": "1.3.4",
+ "safe-buffer": "5.1.1"
+ }
+ },
"exec-sh": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.0.tgz",
- "integrity": "sha1-FPdd4/INKG75MwmbLOUKkDWc7xA=",
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz",
+ "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==",
"dev": true,
"requires": {
"merge": "1.2.0"
}
},
- "exit-hook": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
- "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
- "dev": true
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "5.1.0",
+ "get-stream": "3.0.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "3.0.2",
+ "strip-eof": "1.0.0"
+ }
},
"expand-brackets": {
"version": "0.1.5",
@@ -2696,46 +3476,63 @@
"fill-range": "2.2.3"
}
},
+ "expand-tilde": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+ "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
+ "dev": true,
+ "requires": {
+ "homedir-polyfill": "1.0.1"
+ }
+ },
"express": {
- "version": "4.15.4",
- "resolved": "https://registry.npmjs.org/express/-/express-4.15.4.tgz",
- "integrity": "sha1-Ay4iU0ic+PzgJma+yj0R7XotrtE=",
+ "version": "4.16.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz",
+ "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=",
"dev": true,
"requires": {
"accepts": "1.3.4",
"array-flatten": "1.1.1",
+ "body-parser": "1.18.2",
"content-disposition": "0.5.2",
- "content-type": "1.0.2",
+ "content-type": "1.0.4",
"cookie": "0.3.1",
"cookie-signature": "1.0.6",
- "debug": "2.6.8",
+ "debug": "2.6.9",
"depd": "1.1.1",
"encodeurl": "1.0.1",
"escape-html": "1.0.3",
- "etag": "1.8.0",
- "finalhandler": "1.0.4",
- "fresh": "0.5.0",
+ "etag": "1.8.1",
+ "finalhandler": "1.1.0",
+ "fresh": "0.5.2",
"merge-descriptors": "1.0.1",
"methods": "1.1.2",
"on-finished": "2.3.0",
- "parseurl": "1.3.1",
+ "parseurl": "1.3.2",
"path-to-regexp": "0.1.7",
- "proxy-addr": "1.1.5",
- "qs": "6.5.0",
+ "proxy-addr": "2.0.2",
+ "qs": "6.5.1",
"range-parser": "1.2.0",
- "send": "0.15.4",
- "serve-static": "1.12.4",
- "setprototypeof": "1.0.3",
+ "safe-buffer": "5.1.1",
+ "send": "0.16.1",
+ "serve-static": "1.13.1",
+ "setprototypeof": "1.1.0",
"statuses": "1.3.1",
"type-is": "1.6.15",
- "utils-merge": "1.0.0",
- "vary": "1.1.1"
+ "utils-merge": "1.0.1",
+ "vary": "1.1.2"
},
"dependencies": {
- "qs": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.0.tgz",
- "integrity": "sha512-fjVFjW9yhqMhVGwRExCXLhJKrLlkYSaxNWdyc9rmHlrVZbk35YHH312dFd7191uQeXkI3mKLZTIbSvIeFwFemg==",
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
"dev": true
}
}
@@ -2746,6 +3543,17 @@
"integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
"dev": true
},
+ "external-editor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz",
+ "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==",
+ "dev": true,
+ "requires": {
+ "chardet": "0.4.2",
+ "iconv-lite": "0.4.19",
+ "tmp": "0.0.33"
+ }
+ },
"extglob": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
@@ -2756,14 +3564,15 @@
}
},
"extract-text-webpack-plugin": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-1.0.1.tgz",
- "integrity": "sha1-yVvzy6rEnclvHcbgclSfu2VMzSw=",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz",
+ "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==",
"dev": true,
"requires": {
- "async": "1.5.2",
- "loader-utils": "0.2.17",
- "webpack-sources": "0.1.5"
+ "async": "2.6.0",
+ "loader-utils": "1.1.0",
+ "schema-utils": "0.3.0",
+ "webpack-sources": "1.1.0"
}
},
"extsprintf": {
@@ -2772,6 +3581,18 @@
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
"dev": true
},
+ "fast-deep-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
+ "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=",
+ "dev": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+ "dev": true
+ },
"fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
@@ -2785,27 +3606,27 @@
"dev": true
},
"faye-websocket": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.7.3.tgz",
- "integrity": "sha1-zEB0x/Sk39A69U3WXDVLE1EyzhE=",
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
+ "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
"dev": true,
"requires": {
- "websocket-driver": "0.6.5"
+ "websocket-driver": "0.7.0"
}
},
"fb-watchman": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.2.tgz",
- "integrity": "sha1-okz0eCf4LTj7Waaa1wt247auc4M=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz",
+ "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=",
"dev": true,
"requires": {
- "bser": "1.0.2"
+ "bser": "2.0.0"
}
},
"fbjs": {
- "version": "0.8.14",
- "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.14.tgz",
- "integrity": "sha1-0dviviVMNakeCfMfnNUKQLKg7Rw=",
+ "version": "0.8.16",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz",
+ "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=",
"requires": {
"core-js": "1.2.7",
"isomorphic-fetch": "2.2.1",
@@ -2813,17 +3634,16 @@
"object-assign": "4.1.1",
"promise": "7.3.1",
"setimmediate": "1.0.5",
- "ua-parser-js": "0.7.14"
+ "ua-parser-js": "0.7.17"
}
},
"figures": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
- "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
"dev": true,
"requires": {
- "escape-string-regexp": "1.0.5",
- "object-assign": "4.1.1"
+ "escape-string-regexp": "1.0.5"
}
},
"file-entry-cache": {
@@ -2832,17 +3652,18 @@
"integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
"dev": true,
"requires": {
- "flat-cache": "1.2.2",
+ "flat-cache": "1.3.0",
"object-assign": "4.1.1"
}
},
"file-loader": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.9.0.tgz",
- "integrity": "sha1-HS2t3UJM5tGwfP4/eXMb7TYXq0I=",
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.5.tgz",
+ "integrity": "sha512-RzGHDatcVNpGISTvCpfUfOGpYuSR7HSsSg87ki+wF6rw1Hm0RALPTiAdsxAq1UwLf0RRhbe22/eHK6nhXspiOQ==",
"dev": true,
"requires": {
- "loader-utils": "0.2.17"
+ "loader-utils": "1.1.0",
+ "schema-utils": "0.3.0"
}
},
"filename-regex": {
@@ -2862,9 +3683,9 @@
}
},
"filesize": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.3.0.tgz",
- "integrity": "sha1-UxSeo0YOOy4CSWKlFkiqVyz5gSI=",
+ "version": "3.5.11",
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.5.11.tgz",
+ "integrity": "sha512-ZH7loueKBoDb7yG9esn1U+fgq7BzlzW6NRi5/rMdxIZ05dj7GFD/Xc5rq2CDt5Yq86CyfSYVyx4242QQNZbx1g==",
"dev": true
},
"fill-range": {
@@ -2880,46 +3701,51 @@
"repeat-string": "1.6.1"
}
},
+ "filled-array": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/filled-array/-/filled-array-1.1.0.tgz",
+ "integrity": "sha1-w8T2xmO5I0WamqKZEtLQMfFQf4Q=",
+ "dev": true
+ },
"finalhandler": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.4.tgz",
- "integrity": "sha512-16l/r8RgzlXKmFOhZpHBztvye+lAhC5SU7hXavnerC9UfZqZxxXl3BzL8MhffPT3kF61lj9Oav2LKEzh0ei7tg==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
+ "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
"dev": true,
"requires": {
- "debug": "2.6.8",
+ "debug": "2.6.9",
"encodeurl": "1.0.1",
"escape-html": "1.0.3",
"on-finished": "2.3.0",
- "parseurl": "1.3.1",
+ "parseurl": "1.3.2",
"statuses": "1.3.1",
"unpipe": "1.0.0"
}
},
"find-cache-dir": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
- "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
+ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
"dev": true,
"requires": {
"commondir": "1.0.1",
- "mkdirp": "0.5.1",
- "pkg-dir": "1.0.0"
+ "make-dir": "1.1.0",
+ "pkg-dir": "2.0.0"
}
},
"find-up": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
- "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"dev": true,
"requires": {
- "path-exists": "2.1.0",
- "pinkie-promise": "2.0.1"
+ "locate-path": "2.0.0"
}
},
"flat-cache": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz",
- "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
+ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
"dev": true,
"requires": {
"circular-json": "0.3.3",
@@ -2949,6 +3775,12 @@
"for-in": "1.0.2"
}
},
+ "foreach": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
+ "dev": true
+ },
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
@@ -2956,9 +3788,9 @@
"dev": true
},
"form-data": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
- "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
+ "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=",
"dev": true,
"requires": {
"asynckit": "0.4.0",
@@ -2967,28 +3799,26 @@
}
},
"forwarded": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz",
- "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=",
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
"dev": true
},
"fresh": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz",
- "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=",
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
"dev": true
},
"fs-extra": {
- "version": "0.30.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
- "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
+ "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=",
"dev": true,
"requires": {
"graceful-fs": "4.1.11",
- "jsonfile": "2.4.0",
- "klaw": "1.3.1",
- "path-is-absolute": "1.0.1",
- "rimraf": "2.6.1"
+ "jsonfile": "3.0.1",
+ "universalify": "0.1.1"
}
},
"fs.realpath": {
@@ -2997,33 +3827,935 @@
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true
},
+ "fsevents": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz",
+ "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "nan": "2.8.0",
+ "node-pre-gyp": "0.6.36"
+ },
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "ajv": {
+ "version": "4.11.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "co": "4.6.0",
+ "json-stable-stringify": "1.0.1"
+ }
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "aproba": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "delegates": "1.0.0",
+ "readable-stream": "2.2.9"
+ }
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "aws4": {
+ "version": "1.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "balanced-match": {
+ "version": "0.4.2",
+ "bundled": true,
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "block-stream": {
+ "version": "0.0.9",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "boom": {
+ "version": "2.10.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.7",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "balanced-match": "0.4.2",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer-shims": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "co": {
+ "version": "4.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "delayed-stream": "1.0.0"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "boom": "2.10.1"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.4.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "0.1.1"
+ }
+ },
+ "extend": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "extsprintf": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "form-data": {
+ "version": "2.1.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.5",
+ "mime-types": "2.1.15"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "fstream": {
+ "version": "1.0.11",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "inherits": "2.0.3",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.6.1"
+ }
+ },
+ "fstream-ignore": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fstream": "1.0.11",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4"
+ }
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aproba": "1.1.1",
+ "console-control-strings": "1.1.0",
+ "has-unicode": "2.0.1",
+ "object-assign": "4.1.1",
+ "signal-exit": "3.0.2",
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wide-align": "1.1.2"
+ }
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "bundled": true,
+ "dev": true
+ },
+ "har-schema": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "har-validator": {
+ "version": "4.2.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ajv": "4.11.8",
+ "har-schema": "1.0.5"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "boom": "2.10.1",
+ "cryptiles": "2.0.5",
+ "hoek": "2.16.3",
+ "sntp": "1.0.9"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "bundled": true,
+ "dev": true
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "0.2.0",
+ "jsprim": "1.4.0",
+ "sshpk": "1.13.0"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "ini": {
+ "version": "1.3.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "jodid25519": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "0.1.1"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsonify": "0.0.0"
+ }
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "jsprim": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.0.2",
+ "json-schema": "0.2.3",
+ "verror": "1.3.6"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "mime-db": {
+ "version": "1.27.0",
+ "bundled": true,
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.15",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "mime-db": "1.27.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true,
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "node-pre-gyp": {
+ "version": "0.6.36",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "mkdirp": "0.5.1",
+ "nopt": "4.0.1",
+ "npmlog": "4.1.0",
+ "rc": "1.2.1",
+ "request": "2.81.0",
+ "rimraf": "2.6.1",
+ "semver": "5.3.0",
+ "tar": "2.2.1",
+ "tar-pack": "3.4.0"
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abbrev": "1.1.0",
+ "osenv": "0.1.4"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "1.1.4",
+ "console-control-strings": "1.1.0",
+ "gauge": "2.7.4",
+ "set-blocking": "2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "osenv": {
+ "version": "0.1.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "performance-now": {
+ "version": "0.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "bundled": true,
+ "dev": true
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "qs": {
+ "version": "6.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "rc": {
+ "version": "1.2.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "deep-extend": "0.4.2",
+ "ini": "1.3.4",
+ "minimist": "1.2.0",
+ "strip-json-comments": "2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.2.9",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "buffer-shims": "1.0.0",
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "string_decoder": "1.0.1",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "request": {
+ "version": "2.81.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aws-sign2": "0.6.0",
+ "aws4": "1.6.0",
+ "caseless": "0.12.0",
+ "combined-stream": "1.0.5",
+ "extend": "3.0.1",
+ "forever-agent": "0.6.1",
+ "form-data": "2.1.4",
+ "har-validator": "4.2.1",
+ "hawk": "3.1.3",
+ "http-signature": "1.1.1",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.15",
+ "oauth-sign": "0.8.2",
+ "performance-now": "0.2.0",
+ "qs": "6.4.0",
+ "safe-buffer": "5.0.1",
+ "stringstream": "0.0.5",
+ "tough-cookie": "2.3.2",
+ "tunnel-agent": "0.6.0",
+ "uuid": "3.0.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "semver": {
+ "version": "5.3.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "sshpk": {
+ "version": "1.13.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asn1": "0.2.3",
+ "assert-plus": "1.0.0",
+ "bcrypt-pbkdf": "1.0.1",
+ "dashdash": "1.14.1",
+ "ecc-jsbn": "0.1.1",
+ "getpass": "0.1.7",
+ "jodid25519": "1.0.2",
+ "jsbn": "0.1.1",
+ "tweetnacl": "0.14.5"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.0.1"
+ }
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "tar": {
+ "version": "2.2.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "block-stream": "0.0.9",
+ "fstream": "1.0.11",
+ "inherits": "2.0.3"
+ }
+ },
+ "tar-pack": {
+ "version": "3.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "2.6.8",
+ "fstream": "1.0.11",
+ "fstream-ignore": "1.0.5",
+ "once": "1.4.0",
+ "readable-stream": "2.2.9",
+ "rimraf": "2.6.1",
+ "tar": "2.2.1",
+ "uid-number": "0.0.6"
+ }
+ },
+ "tough-cookie": {
+ "version": "2.3.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "punycode": "1.4.1"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "uid-number": {
+ "version": "0.0.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "verror": {
+ "version": "1.3.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "extsprintf": "1.0.2"
+ }
+ },
+ "wide-align": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "string-width": "1.0.2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"dev": true
},
- "generate-function": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
- "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
"dev": true
},
- "generate-object-property": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
- "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
- "dev": true,
- "requires": {
- "is-property": "1.0.2"
- }
- },
"get-caller-file": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
"integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
"dev": true
},
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true
+ },
"getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
@@ -3031,14 +4763,6 @@
"dev": true,
"requires": {
"assert-plus": "1.0.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
}
},
"glob": {
@@ -3074,6 +4798,30 @@
"is-glob": "2.0.1"
}
},
+ "global-modules": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+ "dev": true,
+ "requires": {
+ "global-prefix": "1.0.2",
+ "is-windows": "1.0.1",
+ "resolve-dir": "1.0.1"
+ }
+ },
+ "global-prefix": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+ "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
+ "dev": true,
+ "requires": {
+ "expand-tilde": "2.0.2",
+ "homedir-polyfill": "1.0.1",
+ "ini": "1.3.5",
+ "is-windows": "1.0.1",
+ "which": "1.3.0"
+ }
+ },
"globals": {
"version": "9.18.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
@@ -3094,18 +4842,35 @@
"pinkie-promise": "2.0.1"
}
},
+ "got": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz",
+ "integrity": "sha1-X4FjWmHkplifGAVp6k44FoClHzU=",
+ "dev": true,
+ "requires": {
+ "create-error-class": "3.0.2",
+ "duplexer2": "0.1.4",
+ "is-redirect": "1.0.0",
+ "is-retry-allowed": "1.1.0",
+ "is-stream": "1.1.0",
+ "lowercase-keys": "1.0.0",
+ "node-status-codes": "1.0.0",
+ "object-assign": "4.1.1",
+ "parse-json": "2.2.0",
+ "pinkie-promise": "2.0.1",
+ "read-all-stream": "3.1.0",
+ "readable-stream": "2.3.3",
+ "timed-out": "3.1.3",
+ "unzip-response": "1.0.2",
+ "url-parse-lax": "1.0.0"
+ }
+ },
"graceful-fs": {
"version": "4.1.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"dev": true
},
- "graceful-readlink": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
- "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
- "dev": true
- },
"growly": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
@@ -3121,10 +4886,16 @@
"duplexer": "0.1.1"
}
},
+ "handle-thing": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz",
+ "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=",
+ "dev": true
+ },
"handlebars": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz",
- "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=",
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz",
+ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=",
"dev": true,
"requires": {
"async": "1.5.2",
@@ -3133,6 +4904,12 @@
"uglify-js": "2.8.29"
},
"dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ },
"source-map": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
@@ -3179,19 +4956,19 @@
}
},
"har-schema": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
- "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
"dev": true
},
"har-validator": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
- "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
+ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
"dev": true,
"requires": {
- "ajv": "4.11.8",
- "har-schema": "1.0.5"
+ "ajv": "5.5.2",
+ "har-schema": "2.0.0"
}
},
"has": {
@@ -3213,21 +4990,40 @@
}
},
"has-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
- "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
"dev": true
},
- "hawk": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
- "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "hash-base": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz",
+ "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=",
"dev": true,
"requires": {
- "boom": "2.10.1",
- "cryptiles": "2.0.5",
- "hoek": "2.16.3",
- "sntp": "1.0.9"
+ "inherits": "2.0.3"
+ }
+ },
+ "hash.js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
+ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
+ },
+ "hawk": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
+ "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
+ "dev": true,
+ "requires": {
+ "boom": "4.3.1",
+ "cryptiles": "3.1.2",
+ "hoek": "4.2.0",
+ "sntp": "2.1.0"
}
},
"he": {
@@ -3236,10 +5032,21 @@
"integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
"dev": true
},
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "dev": true,
+ "requires": {
+ "hash.js": "1.1.3",
+ "minimalistic-assert": "1.0.0",
+ "minimalistic-crypto-utils": "1.0.1"
+ }
+ },
"hoek": {
- "version": "2.16.3",
- "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
- "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
+ "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==",
"dev": true
},
"home-or-tmp": {
@@ -3252,12 +5059,33 @@
"os-tmpdir": "1.0.2"
}
},
+ "homedir-polyfill": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
+ "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=",
+ "dev": true,
+ "requires": {
+ "parse-passwd": "1.0.0"
+ }
+ },
"hosted-git-info": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
"integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
"dev": true
},
+ "hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "obuf": "1.1.1",
+ "readable-stream": "2.3.3",
+ "wbuf": "1.7.2"
+ }
+ },
"html-comment-regex": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz",
@@ -3265,56 +5093,62 @@
"dev": true
},
"html-encoding-sniffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz",
- "integrity": "sha1-eb96eF6klf5mFl5zQVPzY/9UN9o=",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
+ "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
"dev": true,
"requires": {
- "whatwg-encoding": "1.0.1"
+ "whatwg-encoding": "1.0.3"
}
},
"html-entities": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.0.tgz",
- "integrity": "sha1-QZSMr4XOgv7Tbk5qDtNxpmZDeeI=",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
+ "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
"dev": true
},
"html-minifier": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.3.tgz",
- "integrity": "sha512-iKRzQQDuTCsq0Ultbi/mfJJnR0D3AdZKTq966Gsp92xkmAPCV4Xi08qhJ0Dl3ZAWemSgJ7qZK+UsZc0gFqK6wg==",
+ "version": "3.5.7",
+ "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.7.tgz",
+ "integrity": "sha512-GISXn6oKDo7+gVpKOgZJTbHMCUI2TSGfpg/8jgencWhWJsvEmsvp3M8emX7QocsXsYznWloLib3OeSfeyb/ewg==",
"dev": true,
"requires": {
"camel-case": "3.0.0",
- "clean-css": "4.1.8",
- "commander": "2.11.0",
+ "clean-css": "4.1.9",
+ "commander": "2.12.2",
"he": "1.1.1",
"ncname": "1.0.0",
"param-case": "2.1.1",
"relateurl": "0.2.7",
- "uglify-js": "3.0.28"
- },
- "dependencies": {
- "commander": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
- "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
- "dev": true
- }
+ "uglify-js": "3.2.2"
}
},
"html-webpack-plugin": {
- "version": "2.24.0",
- "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.24.0.tgz",
- "integrity": "sha1-U2l86nmp880fjCOaxx+UnVZzyss=",
+ "version": "2.29.0",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.29.0.tgz",
+ "integrity": "sha1-6Yf0IYU9O2k4yMTIFxhC5f0XryM=",
"dev": true,
"requires": {
- "bluebird": "3.5.0",
- "html-minifier": "3.5.3",
+ "bluebird": "3.5.1",
+ "html-minifier": "3.5.7",
"loader-utils": "0.2.17",
"lodash": "4.17.4",
"pretty-error": "2.1.1",
- "toposort": "1.0.3"
+ "toposort": "1.0.6"
+ },
+ "dependencies": {
+ "loader-utils": {
+ "version": "0.2.17",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+ "dev": true,
+ "requires": {
+ "big.js": "3.2.0",
+ "emojis-list": "2.1.0",
+ "json5": "0.5.1",
+ "object-assign": "4.1.1"
+ }
+ }
}
},
"htmlparser2": {
@@ -3364,6 +5198,12 @@
}
}
},
+ "http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+ "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
+ "dev": true
+ },
"http-errors": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
@@ -3374,8 +5214,22 @@
"inherits": "2.0.3",
"setprototypeof": "1.0.3",
"statuses": "1.3.1"
+ },
+ "dependencies": {
+ "setprototypeof": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
+ "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=",
+ "dev": true
+ }
}
},
+ "http-parser-js": {
+ "version": "0.4.9",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz",
+ "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=",
+ "dev": true
+ },
"http-proxy": {
"version": "1.16.2",
"resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz",
@@ -3387,9 +5241,9 @@
}
},
"http-proxy-middleware": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.2.tgz",
- "integrity": "sha1-Vy1Rem0vsQY6Rp3ilO7ZYGY1IAc=",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz",
+ "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=",
"dev": true,
"requires": {
"http-proxy": "1.16.2",
@@ -3416,26 +5270,26 @@
}
},
"http-signature": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
- "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"dev": true,
"requires": {
- "assert-plus": "0.2.0",
+ "assert-plus": "1.0.0",
"jsprim": "1.4.1",
"sshpk": "1.13.1"
}
},
"https-browserify": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz",
- "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
"dev": true
},
"iconv-lite": {
- "version": "0.4.18",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz",
- "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA=="
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
+ "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
},
"icss-replace-symbols": {
"version": "1.1.0",
@@ -3443,6 +5297,15 @@
"integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
"dev": true
},
+ "icss-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz",
+ "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
+ "dev": true,
+ "requires": {
+ "postcss": "6.0.14"
+ }
+ },
"ieee754": {
"version": "1.1.8",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz",
@@ -3450,17 +5313,36 @@
"dev": true
},
"ignore": {
- "version": "3.3.5",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.5.tgz",
- "integrity": "sha512-JLH93mL8amZQhh/p6mfQgVBH3M6epNq3DfsXsTSuSrInVjwyYlFE1nv2AgfRCC8PoOhM0jwQ5v8s9LgbK7yGDw==",
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz",
+ "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==",
"dev": true
},
+ "import-local": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-0.1.1.tgz",
+ "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=",
+ "dev": true,
+ "requires": {
+ "pkg-dir": "2.0.0",
+ "resolve-cwd": "2.0.0"
+ }
+ },
"imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true
},
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
+ "requires": {
+ "repeating": "2.0.1"
+ }
+ },
"indexes-of": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
@@ -3489,31 +5371,75 @@
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true
},
+ "ini": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+ "dev": true
+ },
"inquirer": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
- "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
+ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
"dev": true,
"requires": {
- "ansi-escapes": "1.4.0",
- "ansi-regex": "2.1.1",
- "chalk": "1.1.3",
- "cli-cursor": "1.0.2",
+ "ansi-escapes": "3.0.0",
+ "chalk": "2.3.0",
+ "cli-cursor": "2.1.0",
"cli-width": "2.2.0",
- "figures": "1.7.0",
+ "external-editor": "2.1.0",
+ "figures": "2.0.0",
"lodash": "4.17.4",
- "readline2": "1.0.1",
- "run-async": "0.1.0",
- "rx-lite": "3.1.2",
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
+ "mute-stream": "0.0.7",
+ "run-async": "2.3.0",
+ "rx-lite": "4.0.8",
+ "rx-lite-aggregates": "4.0.8",
+ "string-width": "2.1.1",
+ "strip-ansi": "4.0.0",
"through": "2.3.8"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ }
+ }
+ },
+ "internal-ip": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz",
+ "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=",
+ "dev": true,
+ "requires": {
+ "meow": "3.7.0"
}
},
"interpret": {
- "version": "0.6.6",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz",
- "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
+ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
"dev": true
},
"invariant": {
@@ -3531,10 +5457,16 @@
"integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
"dev": true
},
+ "ip": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
+ "dev": true
+ },
"ipaddr.js": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz",
- "integrity": "sha1-KWrKh4qCGBbluF0KKFqZvP9FgvA=",
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz",
+ "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=",
"dev": true
},
"is-absolute-url": {
@@ -3555,13 +5487,13 @@
"integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
"dev": true,
"requires": {
- "binary-extensions": "1.10.0"
+ "binary-extensions": "1.11.0"
}
},
"is-buffer": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
- "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
"dev": true
},
"is-builtin-module": {
@@ -3573,15 +5505,27 @@
"builtin-modules": "1.1.1"
}
},
+ "is-callable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
+ "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=",
+ "dev": true
+ },
"is-ci": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz",
"integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=",
"dev": true,
"requires": {
- "ci-info": "1.0.0"
+ "ci-info": "1.1.2"
}
},
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+ "dev": true
+ },
"is-directory": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
@@ -3625,13 +5569,10 @@
}
},
"is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dev": true,
- "requires": {
- "number-is-nan": "1.0.1"
- }
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
},
"is-glob": {
"version": "2.0.1",
@@ -3642,17 +5583,11 @@
"is-extglob": "1.0.0"
}
},
- "is-my-json-valid": {
- "version": "2.16.1",
- "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz",
- "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==",
- "dev": true,
- "requires": {
- "generate-function": "2.0.0",
- "generate-object-property": "1.2.0",
- "jsonpointer": "4.0.1",
- "xtend": "4.0.1"
- }
+ "is-npm": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
+ "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
+ "dev": true
},
"is-number": {
"version": "2.1.0",
@@ -3663,6 +5598,12 @@
"kind-of": "3.2.2"
}
},
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true
+ },
"is-path-cwd": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
@@ -3675,13 +5616,13 @@
"integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=",
"dev": true,
"requires": {
- "is-path-inside": "1.0.0"
+ "is-path-inside": "1.0.1"
}
},
"is-path-inside": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz",
- "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
"dev": true,
"requires": {
"path-is-inside": "1.0.2"
@@ -3705,21 +5646,45 @@
"integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
"dev": true
},
- "is-property": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
- "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
"dev": true
},
- "is-resolvable": {
+ "is-redirect": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz",
- "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=",
+ "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
+ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
"dev": true,
"requires": {
- "tryit": "1.0.3"
+ "has": "1.0.1"
}
},
+ "is-resolvable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.1.tgz",
+ "integrity": "sha512-y5CXYbzvB3jTnWAZH1Nl7ykUWb6T3BcTs56HUruwBf8MhF56n1HWqhDWnVFo8GHrUPDgvUUNVhrc2U8W7iqz5g==",
+ "dev": true
+ },
+ "is-retry-allowed": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
+ "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
+ "dev": true
+ },
+ "is-root": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz",
+ "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU=",
+ "dev": true
+ },
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
@@ -3734,6 +5699,12 @@
"html-comment-regex": "1.1.1"
}
},
+ "is-symbol": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
+ "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=",
+ "dev": true
+ },
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
@@ -3746,6 +5717,18 @@
"integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
"dev": true
},
+ "is-windows": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz",
+ "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=",
+ "dev": true
+ },
+ "is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+ "dev": true
+ },
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@@ -3772,7 +5755,7 @@
"resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
"integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
"requires": {
- "node-fetch": "1.7.2",
+ "node-fetch": "1.7.3",
"whatwg-fetch": "2.0.3"
}
},
@@ -3782,77 +5765,23 @@
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
"dev": true
},
- "istanbul": {
- "version": "0.4.5",
- "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz",
- "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=",
- "dev": true,
- "requires": {
- "abbrev": "1.0.9",
- "async": "1.5.2",
- "escodegen": "1.8.1",
- "esprima": "2.7.3",
- "glob": "5.0.15",
- "handlebars": "4.0.10",
- "js-yaml": "3.7.0",
- "mkdirp": "0.5.1",
- "nopt": "3.0.6",
- "once": "1.4.0",
- "resolve": "1.1.7",
- "supports-color": "3.2.3",
- "which": "1.3.0",
- "wordwrap": "1.0.0"
- },
- "dependencies": {
- "glob": {
- "version": "5.0.15",
- "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
- "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
- "dev": true,
- "requires": {
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
- }
- },
- "resolve": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
- "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
- "dev": true
- }
- }
- },
"istanbul-api": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.1.13.tgz",
- "integrity": "sha1-cZf2RBNgDr3+xjR6LcPU4D+X7Vo=",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.2.1.tgz",
+ "integrity": "sha512-oFCwXvd65amgaPCzqrR+a2XjanS1MvpXN6l/MlMUTv6uiA1NOgGX+I0uyq8Lg3GDxsxPsaP1049krz3hIJ5+KA==",
"dev": true,
"requires": {
- "async": "2.5.0",
+ "async": "2.6.0",
"fileset": "2.0.3",
"istanbul-lib-coverage": "1.1.1",
- "istanbul-lib-hook": "1.0.7",
- "istanbul-lib-instrument": "1.7.5",
- "istanbul-lib-report": "1.1.1",
- "istanbul-lib-source-maps": "1.2.1",
- "istanbul-reports": "1.1.2",
+ "istanbul-lib-hook": "1.1.0",
+ "istanbul-lib-instrument": "1.9.1",
+ "istanbul-lib-report": "1.1.2",
+ "istanbul-lib-source-maps": "1.2.2",
+ "istanbul-reports": "1.1.3",
"js-yaml": "3.7.0",
"mkdirp": "0.5.1",
"once": "1.4.0"
- },
- "dependencies": {
- "async": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz",
- "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==",
- "dev": true,
- "requires": {
- "lodash": "4.17.4"
- }
- }
}
},
"istanbul-lib-coverage": {
@@ -3862,18 +5791,18 @@
"dev": true
},
"istanbul-lib-hook": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz",
- "integrity": "sha512-3U2HB9y1ZV9UmFlE12Fx+nPtFqIymzrqCksrXujm3NVbAZIJg/RfYgO1XiIa0mbmxTjWpVEVlkIZJ25xVIAfkQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz",
+ "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==",
"dev": true,
"requires": {
"append-transform": "0.4.0"
}
},
"istanbul-lib-instrument": {
- "version": "1.7.5",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.5.tgz",
- "integrity": "sha1-rbWW+PDLi5XnOSBjUaOKWGryGx4=",
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz",
+ "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==",
"dev": true,
"requires": {
"babel-generator": "6.26.0",
@@ -3886,48 +5815,88 @@
}
},
"istanbul-lib-report": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz",
- "integrity": "sha512-tvF+YmCmH4thnez6JFX06ujIA19WPa9YUiwjc1uALF2cv5dmE3It8b5I8Ob7FHJ70H9Y5yF+TDkVa/mcADuw1Q==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz",
+ "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==",
"dev": true,
"requires": {
"istanbul-lib-coverage": "1.1.1",
"mkdirp": "0.5.1",
"path-parse": "1.0.5",
"supports-color": "3.2.3"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"istanbul-lib-source-maps": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz",
- "integrity": "sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz",
+ "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==",
"dev": true,
"requires": {
- "debug": "2.6.8",
+ "debug": "3.1.0",
"istanbul-lib-coverage": "1.1.1",
"mkdirp": "0.5.1",
- "rimraf": "2.6.1",
+ "rimraf": "2.6.2",
"source-map": "0.5.7"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
}
},
"istanbul-reports": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.2.tgz",
- "integrity": "sha1-D7Lj9qqZIr085F0F2KtNXo4HvU8=",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz",
+ "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==",
"dev": true,
"requires": {
- "handlebars": "4.0.10"
+ "handlebars": "4.0.11"
}
},
"jest": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/jest/-/jest-17.0.2.tgz",
- "integrity": "sha1-oJXhnwso8/mSXsFrW9Z9UnbSdWs=",
+ "version": "20.0.4",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-20.0.4.tgz",
+ "integrity": "sha1-PdJgwpidba1nix6cxNkZRPbWAqw=",
"dev": true,
"requires": {
- "jest-cli": "17.0.3"
+ "jest-cli": "20.0.4"
},
"dependencies": {
+ "ansi-escapes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
+ "dev": true
+ },
"callsites": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
@@ -3935,9 +5904,9 @@
"dev": true
},
"jest-cli": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-17.0.3.tgz",
- "integrity": "sha1-cAuMAqnqDsnqsM1an9QtioWM4UY=",
+ "version": "20.0.4",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-20.0.4.tgz",
+ "integrity": "sha1-5TKxnYiuW8bEF+iwWTpv6VSx3JM=",
"dev": true,
"requires": {
"ansi-escapes": "1.4.0",
@@ -3945,224 +5914,270 @@
"chalk": "1.1.3",
"graceful-fs": "4.1.11",
"is-ci": "1.0.10",
- "istanbul-api": "1.1.13",
+ "istanbul-api": "1.2.1",
"istanbul-lib-coverage": "1.1.1",
- "istanbul-lib-instrument": "1.7.5",
- "jest-changed-files": "17.0.2",
- "jest-config": "17.0.3",
- "jest-environment-jsdom": "17.0.2",
- "jest-file-exists": "17.0.0",
- "jest-haste-map": "17.0.3",
- "jest-jasmine2": "17.0.3",
- "jest-mock": "17.0.2",
- "jest-resolve": "17.0.3",
- "jest-resolve-dependencies": "17.0.3",
- "jest-runtime": "17.0.3",
- "jest-snapshot": "17.0.3",
- "jest-util": "17.0.2",
- "json-stable-stringify": "1.0.1",
- "node-notifier": "4.6.1",
- "sane": "1.4.1",
- "strip-ansi": "3.0.1",
+ "istanbul-lib-instrument": "1.9.1",
+ "istanbul-lib-source-maps": "1.2.2",
+ "jest-changed-files": "20.0.3",
+ "jest-config": "20.0.4",
+ "jest-docblock": "20.0.3",
+ "jest-environment-jsdom": "20.0.3",
+ "jest-haste-map": "20.0.5",
+ "jest-jasmine2": "20.0.4",
+ "jest-message-util": "20.0.3",
+ "jest-regex-util": "20.0.3",
+ "jest-resolve-dependencies": "20.0.3",
+ "jest-runtime": "20.0.4",
+ "jest-snapshot": "20.0.3",
+ "jest-util": "20.0.3",
+ "micromatch": "2.3.11",
+ "node-notifier": "5.1.2",
+ "pify": "2.3.0",
+ "slash": "1.0.0",
+ "string-length": "1.0.1",
"throat": "3.2.0",
"which": "1.3.0",
- "worker-farm": "1.5.0",
- "yargs": "6.6.0"
+ "worker-farm": "1.5.2",
+ "yargs": "7.1.0"
}
}
}
},
"jest-changed-files": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-17.0.2.tgz",
- "integrity": "sha1-9WV3WHNplvWQpRuH5ck2nZBLp7c=",
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-20.0.3.tgz",
+ "integrity": "sha1-k5TVzGXEOEBhSb7xv01Sto4D4/g=",
"dev": true
},
"jest-config": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-17.0.3.tgz",
- "integrity": "sha1-tu112Q0JC3Mf2JQjGQTK231aXfI=",
+ "version": "20.0.4",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-20.0.4.tgz",
+ "integrity": "sha1-43kwqyIXyRNgXv8T5712PsSPruo=",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "istanbul": "0.4.5",
- "jest-environment-jsdom": "17.0.2",
- "jest-environment-node": "17.0.2",
- "jest-jasmine2": "17.0.3",
- "jest-mock": "17.0.2",
- "jest-resolve": "17.0.3",
- "jest-util": "17.0.2",
- "json-stable-stringify": "1.0.1"
+ "glob": "7.1.2",
+ "jest-environment-jsdom": "20.0.3",
+ "jest-environment-node": "20.0.3",
+ "jest-jasmine2": "20.0.4",
+ "jest-matcher-utils": "20.0.3",
+ "jest-regex-util": "20.0.3",
+ "jest-resolve": "20.0.4",
+ "jest-validate": "20.0.3",
+ "pretty-format": "20.0.3"
}
},
"jest-diff": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-17.0.3.tgz",
- "integrity": "sha1-j7Me+rOzFNe2G3tmsL3qYX7xwC8=",
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-20.0.3.tgz",
+ "integrity": "sha1-gfKI/Z5nXw+yPHXxwrGURf5YZhc=",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "diff": "3.3.0",
- "jest-matcher-utils": "17.0.3",
- "pretty-format": "4.2.3"
+ "diff": "3.4.0",
+ "jest-matcher-utils": "20.0.3",
+ "pretty-format": "20.0.3"
}
},
+ "jest-docblock": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.0.3.tgz",
+ "integrity": "sha1-F76phDQswz2DxQ++FUXqDvqkRxI=",
+ "dev": true
+ },
"jest-environment-jsdom": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-17.0.2.tgz",
- "integrity": "sha1-owmNwpgG1AgCxStiuEiraqAP26A=",
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz",
+ "integrity": "sha1-BIqKwS7iJfcZBBdxODS7mZeH3pk=",
"dev": true,
"requires": {
- "jest-mock": "17.0.2",
- "jest-util": "17.0.2",
+ "jest-mock": "20.0.3",
+ "jest-util": "20.0.3",
"jsdom": "9.12.0"
}
},
"jest-environment-node": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-17.0.2.tgz",
- "integrity": "sha1-r/YTP0yi+t3MWwzn0lzsg+FthGM=",
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-20.0.3.tgz",
+ "integrity": "sha1-1Ii8RhKvLCRumG6K52caCZFj1AM=",
"dev": true,
"requires": {
- "jest-mock": "17.0.2",
- "jest-util": "17.0.2"
+ "jest-mock": "20.0.3",
+ "jest-util": "20.0.3"
}
},
- "jest-file-exists": {
- "version": "17.0.0",
- "resolved": "https://registry.npmjs.org/jest-file-exists/-/jest-file-exists-17.0.0.tgz",
- "integrity": "sha1-f2Prc6HEOhP0Yb4mF2i0WvLN0Wk=",
- "dev": true
- },
"jest-haste-map": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-17.0.3.tgz",
- "integrity": "sha1-UjJ4PnBXche2sX0qHBdmY3odL70=",
+ "version": "20.0.5",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.0.5.tgz",
+ "integrity": "sha512-0IKAQjUvuZjMCNi/0VNQQF74/H9KB67hsHJqGiwTWQC6XO5Azs7kLWm+6Q/dwuhvDUvABDOBMFK2/FwZ3sZ07Q==",
"dev": true,
"requires": {
- "fb-watchman": "1.9.2",
+ "fb-watchman": "2.0.0",
"graceful-fs": "4.1.11",
- "multimatch": "2.1.0",
- "sane": "1.4.1",
- "worker-farm": "1.5.0"
+ "jest-docblock": "20.0.3",
+ "micromatch": "2.3.11",
+ "sane": "1.6.0",
+ "worker-farm": "1.5.2"
}
},
"jest-jasmine2": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-17.0.3.tgz",
- "integrity": "sha1-1DNrifOtKIJpocjiv8GA3PicatE=",
+ "version": "20.0.4",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz",
+ "integrity": "sha1-/MWxQReA2RHQQpAu8YWehS5g1eE=",
"dev": true,
"requires": {
+ "chalk": "1.1.3",
"graceful-fs": "4.1.11",
- "jest-matchers": "17.0.3",
- "jest-snapshot": "17.0.3",
- "jest-util": "17.0.2"
+ "jest-diff": "20.0.3",
+ "jest-matcher-utils": "20.0.3",
+ "jest-matchers": "20.0.3",
+ "jest-message-util": "20.0.3",
+ "jest-snapshot": "20.0.3",
+ "once": "1.4.0",
+ "p-map": "1.2.0"
}
},
"jest-matcher-utils": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-17.0.3.tgz",
- "integrity": "sha1-8Qjkm5VuFSxmJtzAq6hk9Zq3sNM=",
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz",
+ "integrity": "sha1-s6a443yld4A7CDKpixZPRLeBVhI=",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "pretty-format": "4.2.3"
+ "pretty-format": "20.0.3"
}
},
"jest-matchers": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/jest-matchers/-/jest-matchers-17.0.3.tgz",
- "integrity": "sha1-iLlTSMkZND24bQjxI1SoZQrn7d8=",
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-matchers/-/jest-matchers-20.0.3.tgz",
+ "integrity": "sha1-ymnbHDLbWm9wf6XgQBq7VXAN/WA=",
"dev": true,
"requires": {
- "jest-diff": "17.0.3",
- "jest-matcher-utils": "17.0.3",
- "jest-util": "17.0.2"
+ "jest-diff": "20.0.3",
+ "jest-matcher-utils": "20.0.3",
+ "jest-message-util": "20.0.3",
+ "jest-regex-util": "20.0.3"
+ }
+ },
+ "jest-message-util": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-20.0.3.tgz",
+ "integrity": "sha1-auwoRDBvyw5udNV5bBAG2W/dgxw=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "micromatch": "2.3.11",
+ "slash": "1.0.0"
}
},
"jest-mock": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-17.0.2.tgz",
- "integrity": "sha1-Pf6SIa/ZqmGz2ZkoQIE6NYuy9Ck=",
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-20.0.3.tgz",
+ "integrity": "sha1-i8Bw6QQUqhVcEajWTIaaDVxx2lk=",
+ "dev": true
+ },
+ "jest-regex-util": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz",
+ "integrity": "sha1-hburXRM+RGJbGfr4xqpRItCF12I=",
"dev": true
},
"jest-resolve": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-17.0.3.tgz",
- "integrity": "sha1-dpKnneKDGHQ3Xp1mS8eCwp5NomI=",
+ "version": "20.0.4",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-20.0.4.tgz",
+ "integrity": "sha1-lEiz6La6/BVHlETGSZBFt//ll6U=",
"dev": true,
"requires": {
"browser-resolve": "1.11.2",
- "jest-file-exists": "17.0.0",
- "jest-haste-map": "17.0.3",
- "resolve": "1.4.0"
+ "is-builtin-module": "1.0.0",
+ "resolve": "1.5.0"
}
},
"jest-resolve-dependencies": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-17.0.3.tgz",
- "integrity": "sha1-u9N/RkNwS5epgJJyEvOrErBuiJQ=",
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz",
+ "integrity": "sha1-bhSntxevDyyzZnxUneQK8Bexcjo=",
"dev": true,
"requires": {
- "jest-file-exists": "17.0.0",
- "jest-resolve": "17.0.3"
+ "jest-regex-util": "20.0.3"
}
},
"jest-runtime": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-17.0.3.tgz",
- "integrity": "sha1-7/QFX+jD4XyV7Rqq9fcZxCC4ax8=",
+ "version": "20.0.4",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-20.0.4.tgz",
+ "integrity": "sha1-osgCIZxCA/dU3xQE5JAYYWnRJNg=",
"dev": true,
"requires": {
- "babel-core": "6.17.0",
- "babel-jest": "17.0.2",
- "babel-plugin-istanbul": "2.0.3",
+ "babel-core": "6.26.0",
+ "babel-jest": "20.0.3",
+ "babel-plugin-istanbul": "4.1.5",
"chalk": "1.1.3",
+ "convert-source-map": "1.5.1",
"graceful-fs": "4.1.11",
- "jest-config": "17.0.3",
- "jest-file-exists": "17.0.0",
- "jest-haste-map": "17.0.3",
- "jest-mock": "17.0.2",
- "jest-resolve": "17.0.3",
- "jest-snapshot": "17.0.3",
- "jest-util": "17.0.2",
+ "jest-config": "20.0.4",
+ "jest-haste-map": "20.0.5",
+ "jest-regex-util": "20.0.3",
+ "jest-resolve": "20.0.4",
+ "jest-util": "20.0.3",
"json-stable-stringify": "1.0.1",
- "multimatch": "2.1.0",
- "yargs": "6.6.0"
+ "micromatch": "2.3.11",
+ "strip-bom": "3.0.0",
+ "yargs": "7.1.0"
+ },
+ "dependencies": {
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
}
},
"jest-snapshot": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-17.0.3.tgz",
- "integrity": "sha1-yBmdtMy9VRXP7MjoAKsHa92nq8A=",
- "dev": true,
- "requires": {
- "jest-diff": "17.0.3",
- "jest-file-exists": "17.0.0",
- "jest-matcher-utils": "17.0.3",
- "jest-util": "17.0.2",
- "natural-compare": "1.4.0",
- "pretty-format": "4.2.3"
- }
- },
- "jest-util": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-17.0.2.tgz",
- "integrity": "sha1-n9nagJHpkE+5dtp+TYkSyiaWhjg=",
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-20.0.3.tgz",
+ "integrity": "sha1-W4R+GtsaTZCFKn+fElCG4YfHZWY=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "jest-diff": "20.0.3",
+ "jest-matcher-utils": "20.0.3",
+ "jest-util": "20.0.3",
+ "natural-compare": "1.4.0",
+ "pretty-format": "20.0.3"
+ }
+ },
+ "jest-util": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-20.0.3.tgz",
+ "integrity": "sha1-DAf32A2C9OWmfG+LnD/n9lz9Mq0=",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "diff": "3.3.0",
"graceful-fs": "4.1.11",
- "jest-file-exists": "17.0.0",
- "jest-mock": "17.0.2",
+ "jest-message-util": "20.0.3",
+ "jest-mock": "20.0.3",
+ "jest-validate": "20.0.3",
+ "leven": "2.1.0",
"mkdirp": "0.5.1"
}
},
+ "jest-validate": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-20.0.3.tgz",
+ "integrity": "sha1-0M/R3k9XnymEhJJcKA+PHZTsPKs=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "jest-matcher-utils": "20.0.3",
+ "leven": "2.1.0",
+ "pretty-format": "20.0.3"
+ }
+ },
"js-base64": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
- "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.0.tgz",
+ "integrity": "sha512-Wehd+7Pf9tFvGb+ydPm9TjYjV8X1YHOVyG8QyELZxEMqOhemVwGRmoG8iQ/soqI3n8v4xn59zaLxiCJiaaRzKA==",
"dev": true
},
"js-tokens": {
@@ -4193,23 +6208,23 @@
"integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=",
"dev": true,
"requires": {
- "abab": "1.0.3",
+ "abab": "1.0.4",
"acorn": "4.0.13",
"acorn-globals": "3.1.0",
"array-equal": "1.0.0",
- "content-type-parser": "1.0.1",
+ "content-type-parser": "1.0.2",
"cssom": "0.3.2",
"cssstyle": "0.2.37",
- "escodegen": "1.8.1",
- "html-encoding-sniffer": "1.0.1",
- "nwmatcher": "1.4.1",
+ "escodegen": "1.9.0",
+ "html-encoding-sniffer": "1.0.2",
+ "nwmatcher": "1.4.3",
"parse5": "1.5.1",
- "request": "2.81.0",
+ "request": "2.83.0",
"sax": "1.2.4",
"symbol-tree": "3.2.2",
- "tough-cookie": "2.3.2",
+ "tough-cookie": "2.3.3",
"webidl-conversions": "4.0.2",
- "whatwg-encoding": "1.0.1",
+ "whatwg-encoding": "1.0.3",
"whatwg-url": "4.8.0",
"xml-name-validator": "2.0.1"
},
@@ -4229,9 +6244,9 @@
"dev": true
},
"json-loader": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz",
- "integrity": "sha1-i6oTZaYy9Yo8RtIBdfxgAsluN94=",
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
+ "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==",
"dev": true
},
"json-schema": {
@@ -4240,6 +6255,12 @@
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
"dev": true
},
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "dev": true
+ },
"json-stable-stringify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
@@ -4262,15 +6283,9035 @@
"dev": true
},
"json5": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz",
- "integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0=",
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
"dev": true
},
+ "jsoneditor": {
+ "version": "file:../..",
+ "requires": {
+ "ajv": "5.5.2",
+ "brace": "0.11.0",
+ "javascript-natural-sort": "0.7.1",
+ "lodash": "4.17.4",
+ "prop-types": "15.6.0",
+ "react-hammerjs": "1.0.1"
+ },
+ "dependencies": {
+ "abab": {
+ "version": "1.0.4",
+ "bundled": true
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "accepts": {
+ "version": "1.3.4",
+ "bundled": true,
+ "requires": {
+ "mime-types": "2.1.17",
+ "negotiator": "0.6.1"
+ }
+ },
+ "acorn": {
+ "version": "5.2.1",
+ "bundled": true
+ },
+ "acorn-dynamic-import": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "acorn": "4.0.13"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.13",
+ "bundled": true
+ }
+ }
+ },
+ "acorn-globals": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "acorn": "4.0.13"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.13",
+ "bundled": true
+ }
+ }
+ },
+ "acorn-jsx": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "acorn": "3.3.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "3.3.0",
+ "bundled": true
+ }
+ }
+ },
+ "address": {
+ "version": "1.0.3",
+ "bundled": true
+ },
+ "ajv": {
+ "version": "5.5.2",
+ "bundled": true,
+ "requires": {
+ "co": "4.6.0",
+ "fast-deep-equal": "1.0.0",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1"
+ }
+ },
+ "ajv-keywords": {
+ "version": "2.1.1",
+ "bundled": true
+ },
+ "align-text": {
+ "version": "0.1.4",
+ "bundled": true,
+ "requires": {
+ "kind-of": "3.2.2",
+ "longest": "1.0.1",
+ "repeat-string": "1.6.1"
+ }
+ },
+ "alphanum-sort": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "ansi-align": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "string-width": "1.0.2"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
+ }
+ },
+ "ansi-escapes": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "ansi-html": {
+ "version": "0.0.7",
+ "bundled": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true
+ },
+ "ansi-styles": {
+ "version": "3.2.0",
+ "bundled": true,
+ "requires": {
+ "color-convert": "1.9.1"
+ }
+ },
+ "anymatch": {
+ "version": "1.3.2",
+ "bundled": true,
+ "requires": {
+ "micromatch": "2.3.11",
+ "normalize-path": "2.1.1"
+ }
+ },
+ "append-transform": {
+ "version": "0.4.0",
+ "bundled": true,
+ "requires": {
+ "default-require-extensions": "1.0.0"
+ }
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "bundled": true,
+ "requires": {
+ "delegates": "1.0.0",
+ "readable-stream": "2.3.3"
+ }
+ },
+ "argparse": {
+ "version": "1.0.9",
+ "bundled": true,
+ "requires": {
+ "sprintf-js": "1.0.3"
+ }
+ },
+ "aria-query": {
+ "version": "0.7.0",
+ "bundled": true,
+ "requires": {
+ "ast-types-flow": "0.0.7"
+ }
+ },
+ "arr-diff": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "arr-flatten": "1.1.0"
+ }
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "array-equal": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "array-filter": {
+ "version": "0.0.1",
+ "bundled": true
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "array-flatten": {
+ "version": "2.1.1",
+ "bundled": true
+ },
+ "array-includes": {
+ "version": "3.0.3",
+ "bundled": true,
+ "requires": {
+ "define-properties": "1.1.2",
+ "es-abstract": "1.10.0"
+ }
+ },
+ "array-map": {
+ "version": "0.0.0",
+ "bundled": true
+ },
+ "array-reduce": {
+ "version": "0.0.0",
+ "bundled": true
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "array-uniq": "1.0.3"
+ }
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "bundled": true
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "bundled": true
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "asap": {
+ "version": "2.0.6",
+ "bundled": true
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "bundled": true
+ },
+ "asn1.js": {
+ "version": "4.9.2",
+ "bundled": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
+ },
+ "assert": {
+ "version": "1.4.1",
+ "bundled": true,
+ "requires": {
+ "util": "0.10.3"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "ast-types-flow": {
+ "version": "0.0.7",
+ "bundled": true
+ },
+ "async": {
+ "version": "2.6.0",
+ "bundled": true,
+ "requires": {
+ "lodash": "4.17.4"
+ }
+ },
+ "async-each": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "async-foreach": {
+ "version": "0.1.3",
+ "bundled": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "bundled": true
+ },
+ "autoprefixer": {
+ "version": "7.1.6",
+ "bundled": true,
+ "requires": {
+ "browserslist": "2.10.0",
+ "caniuse-lite": "1.0.30000784",
+ "normalize-range": "0.1.2",
+ "num2fraction": "1.2.2",
+ "postcss": "6.0.14",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "bundled": true
+ },
+ "aws4": {
+ "version": "1.6.0",
+ "bundled": true
+ },
+ "axobject-query": {
+ "version": "0.1.0",
+ "bundled": true,
+ "requires": {
+ "ast-types-flow": "0.0.7"
+ }
+ },
+ "babel-cli": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "babel-core": "6.26.0",
+ "babel-polyfill": "6.26.0",
+ "babel-register": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "chokidar": "1.7.0",
+ "commander": "2.12.2",
+ "convert-source-map": "1.5.1",
+ "fs-readdir-recursive": "1.1.0",
+ "glob": "7.1.2",
+ "lodash": "4.17.4",
+ "output-file-sync": "1.1.2",
+ "path-is-absolute": "1.0.1",
+ "slash": "1.0.0",
+ "source-map": "0.5.7",
+ "v8flags": "2.1.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ }
+ }
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "esutils": "2.0.2",
+ "js-tokens": "3.0.2"
+ }
+ },
+ "babel-core": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "babel-generator": "6.26.0",
+ "babel-helpers": "6.24.1",
+ "babel-messages": "6.23.0",
+ "babel-register": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "convert-source-map": "1.5.1",
+ "debug": "2.6.9",
+ "json5": "0.5.1",
+ "lodash": "4.17.4",
+ "minimatch": "3.0.4",
+ "path-is-absolute": "1.0.1",
+ "private": "0.1.8",
+ "slash": "1.0.0",
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ }
+ }
+ },
+ "babel-eslint": {
+ "version": "7.2.3",
+ "bundled": true,
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0"
+ }
+ },
+ "babel-generator": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "detect-indent": "4.0.0",
+ "jsesc": "1.3.0",
+ "lodash": "4.17.4",
+ "source-map": "0.5.7",
+ "trim-right": "1.0.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ }
+ }
+ },
+ "babel-helper-builder-binary-assignment-operator-visitor": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-helper-explode-assignable-expression": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-builder-react-jsx": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "esutils": "2.0.2"
+ }
+ },
+ "babel-helper-call-delegate": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-helper-hoist-variables": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-define-map": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "babel-helper-function-name": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-helper-explode-assignable-expression": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-function-name": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-helper-get-function-arity": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-get-function-arity": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-hoist-variables": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-optimise-call-expression": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-regex": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-helper-remap-async-to-generator": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-helper-function-name": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-replace-supers": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-helper-optimise-call-expression": "6.24.1",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helpers": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-jest": {
+ "version": "20.0.3",
+ "bundled": true,
+ "requires": {
+ "babel-core": "6.26.0",
+ "babel-plugin-istanbul": "4.1.5",
+ "babel-preset-jest": "20.0.3"
+ }
+ },
+ "babel-loader": {
+ "version": "7.1.2",
+ "bundled": true,
+ "requires": {
+ "find-cache-dir": "1.0.0",
+ "loader-utils": "1.1.0",
+ "mkdirp": "0.5.1"
+ }
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-check-es2015-constants": {
+ "version": "6.22.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-dynamic-import-node": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "babel-plugin-syntax-dynamic-import": "6.18.0",
+ "babel-template": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "4.1.5",
+ "bundled": true,
+ "requires": {
+ "find-up": "2.1.0",
+ "istanbul-lib-instrument": "1.9.1",
+ "test-exclude": "4.1.1"
+ }
+ },
+ "babel-plugin-jest-hoist": {
+ "version": "20.0.3",
+ "bundled": true
+ },
+ "babel-plugin-syntax-async-functions": {
+ "version": "6.13.0",
+ "bundled": true
+ },
+ "babel-plugin-syntax-class-properties": {
+ "version": "6.13.0",
+ "bundled": true
+ },
+ "babel-plugin-syntax-dynamic-import": {
+ "version": "6.18.0",
+ "bundled": true
+ },
+ "babel-plugin-syntax-exponentiation-operator": {
+ "version": "6.13.0",
+ "bundled": true
+ },
+ "babel-plugin-syntax-flow": {
+ "version": "6.18.0",
+ "bundled": true
+ },
+ "babel-plugin-syntax-jsx": {
+ "version": "6.18.0",
+ "bundled": true
+ },
+ "babel-plugin-syntax-object-rest-spread": {
+ "version": "6.13.0",
+ "bundled": true
+ },
+ "babel-plugin-syntax-trailing-function-commas": {
+ "version": "6.22.0",
+ "bundled": true
+ },
+ "babel-plugin-transform-async-to-generator": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-helper-remap-async-to-generator": "6.24.1",
+ "babel-plugin-syntax-async-functions": "6.13.0",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-class-properties": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-helper-function-name": "6.24.1",
+ "babel-plugin-syntax-class-properties": "6.13.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-arrow-functions": {
+ "version": "6.22.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoped-functions": {
+ "version": "6.22.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoping": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-plugin-transform-es2015-classes": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-helper-define-map": "6.26.0",
+ "babel-helper-function-name": "6.24.1",
+ "babel-helper-optimise-call-expression": "6.24.1",
+ "babel-helper-replace-supers": "6.24.1",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-computed-properties": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-destructuring": {
+ "version": "6.23.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-duplicate-keys": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-for-of": {
+ "version": "6.23.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-function-name": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-helper-function-name": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-literals": {
+ "version": "6.22.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-amd": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-commonjs": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-commonjs": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "babel-plugin-transform-strict-mode": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-systemjs": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-helper-hoist-variables": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-umd": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-amd": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-object-super": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-helper-replace-supers": "6.24.1",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-parameters": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-helper-call-delegate": "6.24.1",
+ "babel-helper-get-function-arity": "6.24.1",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-shorthand-properties": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-spread": {
+ "version": "6.22.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-sticky-regex": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-helper-regex": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-template-literals": {
+ "version": "6.22.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-typeof-symbol": {
+ "version": "6.23.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-unicode-regex": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-helper-regex": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "regexpu-core": "2.0.0"
+ }
+ },
+ "babel-plugin-transform-exponentiation-operator": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1",
+ "babel-plugin-syntax-exponentiation-operator": "6.13.0",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-flow-strip-types": {
+ "version": "6.22.0",
+ "bundled": true,
+ "requires": {
+ "babel-plugin-syntax-flow": "6.18.0",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-object-rest-spread": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "babel-plugin-syntax-object-rest-spread": "6.13.0",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-react-constant-elements": {
+ "version": "6.23.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-react-display-name": {
+ "version": "6.25.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-react-jsx": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-helper-builder-react-jsx": "6.26.0",
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-react-jsx-self": {
+ "version": "6.22.0",
+ "bundled": true,
+ "requires": {
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-react-jsx-source": {
+ "version": "6.22.0",
+ "bundled": true,
+ "requires": {
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-regenerator": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "regenerator-transform": "0.10.1"
+ }
+ },
+ "babel-plugin-transform-runtime": {
+ "version": "6.23.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-strict-mode": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-polyfill": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "core-js": "2.5.3",
+ "regenerator-runtime": "0.10.5"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "2.5.3",
+ "bundled": true
+ },
+ "regenerator-runtime": {
+ "version": "0.10.5",
+ "bundled": true
+ }
+ }
+ },
+ "babel-preset-env": {
+ "version": "1.6.1",
+ "bundled": true,
+ "requires": {
+ "babel-plugin-check-es2015-constants": "6.22.0",
+ "babel-plugin-syntax-trailing-function-commas": "6.22.0",
+ "babel-plugin-transform-async-to-generator": "6.24.1",
+ "babel-plugin-transform-es2015-arrow-functions": "6.22.0",
+ "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0",
+ "babel-plugin-transform-es2015-block-scoping": "6.26.0",
+ "babel-plugin-transform-es2015-classes": "6.24.1",
+ "babel-plugin-transform-es2015-computed-properties": "6.24.1",
+ "babel-plugin-transform-es2015-destructuring": "6.23.0",
+ "babel-plugin-transform-es2015-duplicate-keys": "6.24.1",
+ "babel-plugin-transform-es2015-for-of": "6.23.0",
+ "babel-plugin-transform-es2015-function-name": "6.24.1",
+ "babel-plugin-transform-es2015-literals": "6.22.0",
+ "babel-plugin-transform-es2015-modules-amd": "6.24.1",
+ "babel-plugin-transform-es2015-modules-commonjs": "6.26.0",
+ "babel-plugin-transform-es2015-modules-systemjs": "6.24.1",
+ "babel-plugin-transform-es2015-modules-umd": "6.24.1",
+ "babel-plugin-transform-es2015-object-super": "6.24.1",
+ "babel-plugin-transform-es2015-parameters": "6.24.1",
+ "babel-plugin-transform-es2015-shorthand-properties": "6.24.1",
+ "babel-plugin-transform-es2015-spread": "6.22.0",
+ "babel-plugin-transform-es2015-sticky-regex": "6.24.1",
+ "babel-plugin-transform-es2015-template-literals": "6.22.0",
+ "babel-plugin-transform-es2015-typeof-symbol": "6.23.0",
+ "babel-plugin-transform-es2015-unicode-regex": "6.24.1",
+ "babel-plugin-transform-exponentiation-operator": "6.24.1",
+ "babel-plugin-transform-regenerator": "6.26.0",
+ "browserslist": "2.10.0",
+ "invariant": "2.2.2",
+ "semver": "5.4.1"
+ }
+ },
+ "babel-preset-flow": {
+ "version": "6.23.0",
+ "bundled": true,
+ "requires": {
+ "babel-plugin-transform-flow-strip-types": "6.22.0"
+ }
+ },
+ "babel-preset-jest": {
+ "version": "20.0.3",
+ "bundled": true,
+ "requires": {
+ "babel-plugin-jest-hoist": "20.0.3"
+ }
+ },
+ "babel-preset-react": {
+ "version": "6.24.1",
+ "bundled": true,
+ "requires": {
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-plugin-transform-react-display-name": "6.25.0",
+ "babel-plugin-transform-react-jsx": "6.24.1",
+ "babel-plugin-transform-react-jsx-self": "6.22.0",
+ "babel-plugin-transform-react-jsx-source": "6.22.0",
+ "babel-preset-flow": "6.23.0"
+ }
+ },
+ "babel-preset-react-app": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "babel-plugin-dynamic-import-node": "1.1.0",
+ "babel-plugin-syntax-dynamic-import": "6.18.0",
+ "babel-plugin-transform-class-properties": "6.24.1",
+ "babel-plugin-transform-object-rest-spread": "6.26.0",
+ "babel-plugin-transform-react-constant-elements": "6.23.0",
+ "babel-plugin-transform-react-jsx": "6.24.1",
+ "babel-plugin-transform-react-jsx-self": "6.22.0",
+ "babel-plugin-transform-react-jsx-source": "6.22.0",
+ "babel-plugin-transform-regenerator": "6.26.0",
+ "babel-plugin-transform-runtime": "6.23.0",
+ "babel-preset-env": "1.6.1",
+ "babel-preset-react": "6.24.1"
+ }
+ },
+ "babel-register": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "babel-core": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "core-js": "2.5.3",
+ "home-or-tmp": "2.0.0",
+ "lodash": "4.17.4",
+ "mkdirp": "0.5.1",
+ "source-map-support": "0.4.18"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "2.5.3",
+ "bundled": true
+ }
+ }
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "core-js": "2.5.3",
+ "regenerator-runtime": "0.11.1"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "2.5.3",
+ "bundled": true
+ }
+ }
+ },
+ "babel-template": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-traverse": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "debug": "2.6.9",
+ "globals": "9.18.0",
+ "invariant": "2.2.2",
+ "lodash": "4.17.4"
+ }
+ },
+ "babel-types": {
+ "version": "6.26.0",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "esutils": "2.0.2",
+ "lodash": "4.17.4",
+ "to-fast-properties": "1.0.3"
+ }
+ },
+ "babylon": {
+ "version": "6.18.0",
+ "bundled": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "base64-js": {
+ "version": "1.2.1",
+ "bundled": true
+ },
+ "batch": {
+ "version": "0.6.1",
+ "bundled": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "big.js": {
+ "version": "3.2.0",
+ "bundled": true
+ },
+ "binary-extensions": {
+ "version": "1.11.0",
+ "bundled": true
+ },
+ "block-stream": {
+ "version": "0.0.9",
+ "bundled": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "bluebird": {
+ "version": "3.5.1",
+ "bundled": true
+ },
+ "bn.js": {
+ "version": "4.11.8",
+ "bundled": true
+ },
+ "body-parser": {
+ "version": "1.18.2",
+ "bundled": true,
+ "requires": {
+ "bytes": "3.0.0",
+ "content-type": "1.0.4",
+ "debug": "2.6.9",
+ "depd": "1.1.1",
+ "http-errors": "1.6.2",
+ "iconv-lite": "0.4.19",
+ "on-finished": "2.3.0",
+ "qs": "6.5.1",
+ "raw-body": "2.3.2",
+ "type-is": "1.6.15"
+ }
+ },
+ "bonjour": {
+ "version": "3.5.0",
+ "bundled": true,
+ "requires": {
+ "array-flatten": "2.1.1",
+ "deep-equal": "1.0.1",
+ "dns-equal": "1.0.0",
+ "dns-txt": "2.0.2",
+ "multicast-dns": "6.2.1",
+ "multicast-dns-service-types": "1.1.0"
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "boom": {
+ "version": "4.3.1",
+ "bundled": true,
+ "requires": {
+ "hoek": "4.2.0"
+ }
+ },
+ "boxen": {
+ "version": "0.6.0",
+ "bundled": true,
+ "requires": {
+ "ansi-align": "1.1.0",
+ "camelcase": "2.1.1",
+ "chalk": "1.1.3",
+ "cli-boxes": "1.0.0",
+ "filled-array": "1.1.0",
+ "object-assign": "4.1.1",
+ "repeating": "2.0.1",
+ "string-width": "1.0.2",
+ "widest-line": "1.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "2.1.1",
+ "bundled": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
+ }
+ },
+ "brace": {
+ "version": "0.11.0",
+ "bundled": true
+ },
+ "brace-expansion": {
+ "version": "1.1.8",
+ "bundled": true,
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "1.8.5",
+ "bundled": true,
+ "requires": {
+ "expand-range": "1.8.2",
+ "preserve": "0.2.0",
+ "repeat-element": "1.1.2"
+ }
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "browser-resolve": {
+ "version": "1.11.2",
+ "bundled": true,
+ "requires": {
+ "resolve": "1.1.7"
+ },
+ "dependencies": {
+ "resolve": {
+ "version": "1.1.7",
+ "bundled": true
+ }
+ }
+ },
+ "browserify-aes": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "buffer-xor": "1.0.3",
+ "cipher-base": "1.0.4",
+ "create-hash": "1.1.3",
+ "evp_bytestokey": "1.0.3",
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "browserify-aes": "1.1.1",
+ "browserify-des": "1.0.0",
+ "evp_bytestokey": "1.0.3"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "cipher-base": "1.0.4",
+ "des.js": "1.0.0",
+ "inherits": "2.0.3"
+ }
+ },
+ "browserify-rsa": {
+ "version": "4.0.1",
+ "bundled": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "randombytes": "2.0.5"
+ }
+ },
+ "browserify-sign": {
+ "version": "4.0.4",
+ "bundled": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "browserify-rsa": "4.0.1",
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "elliptic": "6.4.0",
+ "inherits": "2.0.3",
+ "parse-asn1": "5.1.0"
+ }
+ },
+ "browserify-zlib": {
+ "version": "0.2.0",
+ "bundled": true,
+ "requires": {
+ "pako": "1.0.6"
+ }
+ },
+ "browserslist": {
+ "version": "2.10.0",
+ "bundled": true,
+ "requires": {
+ "caniuse-lite": "1.0.30000784",
+ "electron-to-chromium": "1.3.29"
+ }
+ },
+ "bser": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "node-int64": "0.4.0"
+ }
+ },
+ "buffer": {
+ "version": "4.9.1",
+ "bundled": true,
+ "requires": {
+ "base64-js": "1.2.1",
+ "ieee754": "1.1.8",
+ "isarray": "1.0.0"
+ }
+ },
+ "buffer-indexof": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "bundled": true
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "builtin-status-codes": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "bytes": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "caller-path": {
+ "version": "0.1.0",
+ "bundled": true,
+ "requires": {
+ "callsites": "0.2.0"
+ }
+ },
+ "callsites": {
+ "version": "0.2.0",
+ "bundled": true
+ },
+ "camel-case": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "no-case": "2.3.2",
+ "upper-case": "1.1.3"
+ }
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "bundled": true,
+ "optional": true
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "camelcase": "2.1.1",
+ "map-obj": "1.0.1"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "2.1.1",
+ "bundled": true
+ }
+ }
+ },
+ "caniuse-api": {
+ "version": "1.6.1",
+ "bundled": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-db": "1.0.30000784",
+ "lodash.memoize": "4.1.2",
+ "lodash.uniq": "4.5.0"
+ },
+ "dependencies": {
+ "browserslist": {
+ "version": "1.7.7",
+ "bundled": true,
+ "requires": {
+ "caniuse-db": "1.0.30000784",
+ "electron-to-chromium": "1.3.29"
+ }
+ }
+ }
+ },
+ "caniuse-db": {
+ "version": "1.0.30000784",
+ "bundled": true
+ },
+ "caniuse-lite": {
+ "version": "1.0.30000784",
+ "bundled": true
+ },
+ "capture-stack-trace": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "case-sensitive-paths-webpack-plugin": {
+ "version": "2.1.1",
+ "bundled": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "bundled": true
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "bundled": true,
+ "requires": {
+ "align-text": "0.1.4",
+ "lazy-cache": "1.0.4"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "bundled": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "chardet": {
+ "version": "0.4.2",
+ "bundled": true
+ },
+ "chokidar": {
+ "version": "1.7.0",
+ "bundled": true,
+ "requires": {
+ "anymatch": "1.3.2",
+ "async-each": "1.0.1",
+ "glob-parent": "2.0.0",
+ "inherits": "2.0.3",
+ "is-binary-path": "1.0.1",
+ "is-glob": "2.0.1",
+ "path-is-absolute": "1.0.1",
+ "readdirp": "2.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "1.1.2",
+ "bundled": true
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "bundled": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "circular-json": {
+ "version": "0.3.3",
+ "bundled": true
+ },
+ "clap": {
+ "version": "1.2.3",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3"
+ }
+ },
+ "clean-css": {
+ "version": "4.1.9",
+ "bundled": true,
+ "requires": {
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ }
+ }
+ },
+ "cli-boxes": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "restore-cursor": "2.0.0"
+ }
+ },
+ "cli-width": {
+ "version": "2.2.0",
+ "bundled": true
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "center-align": "0.1.3",
+ "right-align": "0.1.3",
+ "wordwrap": "0.0.2"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "0.0.2",
+ "bundled": true,
+ "optional": true
+ }
+ }
+ },
+ "clone": {
+ "version": "1.0.3",
+ "bundled": true
+ },
+ "co": {
+ "version": "4.6.0",
+ "bundled": true
+ },
+ "coa": {
+ "version": "1.0.4",
+ "bundled": true,
+ "requires": {
+ "q": "1.5.1"
+ }
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "color": {
+ "version": "0.11.4",
+ "bundled": true,
+ "requires": {
+ "clone": "1.0.3",
+ "color-convert": "1.9.1",
+ "color-string": "0.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.1",
+ "bundled": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "bundled": true
+ },
+ "color-string": {
+ "version": "0.3.0",
+ "bundled": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "colormin": {
+ "version": "1.1.2",
+ "bundled": true,
+ "requires": {
+ "color": "0.11.4",
+ "css-color-names": "0.0.4",
+ "has": "1.0.1"
+ }
+ },
+ "colors": {
+ "version": "1.1.2",
+ "bundled": true
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "bundled": true,
+ "requires": {
+ "delayed-stream": "1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.12.2",
+ "bundled": true
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "compressible": {
+ "version": "2.0.12",
+ "bundled": true,
+ "requires": {
+ "mime-db": "1.30.0"
+ }
+ },
+ "compression": {
+ "version": "1.7.1",
+ "bundled": true,
+ "requires": {
+ "accepts": "1.3.4",
+ "bytes": "3.0.0",
+ "compressible": "2.0.12",
+ "debug": "2.6.9",
+ "on-headers": "1.0.1",
+ "safe-buffer": "5.1.1",
+ "vary": "1.1.2"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true
+ },
+ "concat-stream": {
+ "version": "1.6.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.3",
+ "typedarray": "0.0.6"
+ }
+ },
+ "configstore": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "dot-prop": "3.0.0",
+ "graceful-fs": "4.1.11",
+ "mkdirp": "0.5.1",
+ "object-assign": "4.1.1",
+ "os-tmpdir": "1.0.2",
+ "osenv": "0.1.4",
+ "uuid": "2.0.3",
+ "write-file-atomic": "1.3.4",
+ "xdg-basedir": "2.0.0"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "2.0.3",
+ "bundled": true
+ }
+ }
+ },
+ "connect-history-api-fallback": {
+ "version": "1.5.0",
+ "bundled": true
+ },
+ "console-browserify": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "date-now": "0.1.4"
+ }
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "console.table": {
+ "version": "0.9.1",
+ "bundled": true,
+ "requires": {
+ "easy-table": "1.1.0"
+ }
+ },
+ "constants-browserify": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "contains-path": {
+ "version": "0.1.0",
+ "bundled": true
+ },
+ "content-disposition": {
+ "version": "0.5.2",
+ "bundled": true
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "bundled": true
+ },
+ "content-type-parser": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "convert-source-map": {
+ "version": "1.5.1",
+ "bundled": true
+ },
+ "cookie": {
+ "version": "0.3.1",
+ "bundled": true
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "bundled": true
+ },
+ "core-js": {
+ "version": "1.2.7",
+ "bundled": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "cosmiconfig": {
+ "version": "2.2.2",
+ "bundled": true,
+ "requires": {
+ "is-directory": "0.3.1",
+ "js-yaml": "3.7.0",
+ "minimist": "1.2.0",
+ "object-assign": "4.1.1",
+ "os-homedir": "1.0.2",
+ "parse-json": "2.2.0",
+ "require-from-string": "1.2.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true
+ }
+ }
+ },
+ "cp-file": {
+ "version": "3.2.0",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "mkdirp": "0.5.1",
+ "nested-error-stacks": "1.0.2",
+ "object-assign": "4.1.1",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "readable-stream": "2.3.3"
+ }
+ },
+ "cpy": {
+ "version": "4.0.1",
+ "bundled": true,
+ "requires": {
+ "cp-file": "3.2.0",
+ "globby": "4.1.0",
+ "meow": "3.7.0",
+ "nested-error-stacks": "1.0.2",
+ "object-assign": "4.1.1",
+ "pinkie-promise": "2.0.1"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "6.0.4",
+ "bundled": true,
+ "requires": {
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "globby": {
+ "version": "4.1.0",
+ "bundled": true,
+ "requires": {
+ "array-union": "1.0.2",
+ "arrify": "1.0.1",
+ "glob": "6.0.4",
+ "object-assign": "4.1.1",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ }
+ }
+ },
+ "cpy-cli": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "cpy": "4.0.1",
+ "meow": "3.7.0"
+ }
+ },
+ "create-ecdh": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "elliptic": "6.4.0"
+ }
+ },
+ "create-error-class": {
+ "version": "3.0.2",
+ "bundled": true,
+ "requires": {
+ "capture-stack-trace": "1.0.0"
+ }
+ },
+ "create-hash": {
+ "version": "1.1.3",
+ "bundled": true,
+ "requires": {
+ "cipher-base": "1.0.4",
+ "inherits": "2.0.3",
+ "ripemd160": "2.0.1",
+ "sha.js": "2.4.9"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.6",
+ "bundled": true,
+ "requires": {
+ "cipher-base": "1.0.4",
+ "create-hash": "1.1.3",
+ "inherits": "2.0.3",
+ "ripemd160": "2.0.1",
+ "safe-buffer": "5.1.1",
+ "sha.js": "2.4.9"
+ }
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "bundled": true,
+ "requires": {
+ "lru-cache": "4.1.1",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
+ }
+ },
+ "cryptiles": {
+ "version": "3.1.2",
+ "bundled": true,
+ "requires": {
+ "boom": "5.2.0"
+ },
+ "dependencies": {
+ "boom": {
+ "version": "5.2.0",
+ "bundled": true,
+ "requires": {
+ "hoek": "4.2.0"
+ }
+ }
+ }
+ },
+ "crypto-browserify": {
+ "version": "3.12.0",
+ "bundled": true,
+ "requires": {
+ "browserify-cipher": "1.0.0",
+ "browserify-sign": "4.0.4",
+ "create-ecdh": "4.0.0",
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "diffie-hellman": "5.0.2",
+ "inherits": "2.0.3",
+ "pbkdf2": "3.0.14",
+ "public-encrypt": "4.0.0",
+ "randombytes": "2.0.5",
+ "randomfill": "1.0.3"
+ }
+ },
+ "css-color-names": {
+ "version": "0.0.4",
+ "bundled": true
+ },
+ "css-loader": {
+ "version": "0.28.7",
+ "bundled": true,
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "css-selector-tokenizer": "0.7.0",
+ "cssnano": "3.10.0",
+ "icss-utils": "2.1.0",
+ "loader-utils": "1.1.0",
+ "lodash.camelcase": "4.3.0",
+ "object-assign": "4.1.1",
+ "postcss": "5.2.18",
+ "postcss-modules-extract-imports": "1.1.0",
+ "postcss-modules-local-by-default": "1.2.0",
+ "postcss-modules-scope": "1.1.0",
+ "postcss-modules-values": "1.3.0",
+ "postcss-value-parser": "3.3.0",
+ "source-list-map": "2.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "css-select": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "boolbase": "1.0.0",
+ "css-what": "2.1.0",
+ "domutils": "1.5.1",
+ "nth-check": "1.0.1"
+ }
+ },
+ "css-selector-tokenizer": {
+ "version": "0.7.0",
+ "bundled": true,
+ "requires": {
+ "cssesc": "0.1.0",
+ "fastparse": "1.1.1",
+ "regexpu-core": "1.0.0"
+ },
+ "dependencies": {
+ "regexpu-core": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "regenerate": "1.3.3",
+ "regjsgen": "0.2.0",
+ "regjsparser": "0.1.5"
+ }
+ }
+ }
+ },
+ "css-what": {
+ "version": "2.1.0",
+ "bundled": true
+ },
+ "cssesc": {
+ "version": "0.1.0",
+ "bundled": true
+ },
+ "cssnano": {
+ "version": "3.10.0",
+ "bundled": true,
+ "requires": {
+ "autoprefixer": "6.7.7",
+ "decamelize": "1.2.0",
+ "defined": "1.0.0",
+ "has": "1.0.1",
+ "object-assign": "4.1.1",
+ "postcss": "5.2.18",
+ "postcss-calc": "5.3.1",
+ "postcss-colormin": "2.2.2",
+ "postcss-convert-values": "2.6.1",
+ "postcss-discard-comments": "2.0.4",
+ "postcss-discard-duplicates": "2.1.0",
+ "postcss-discard-empty": "2.1.0",
+ "postcss-discard-overridden": "0.1.1",
+ "postcss-discard-unused": "2.2.3",
+ "postcss-filter-plugins": "2.0.2",
+ "postcss-merge-idents": "2.1.7",
+ "postcss-merge-longhand": "2.0.2",
+ "postcss-merge-rules": "2.1.2",
+ "postcss-minify-font-values": "1.0.5",
+ "postcss-minify-gradients": "1.0.5",
+ "postcss-minify-params": "1.2.2",
+ "postcss-minify-selectors": "2.1.1",
+ "postcss-normalize-charset": "1.1.1",
+ "postcss-normalize-url": "3.0.8",
+ "postcss-ordered-values": "2.2.3",
+ "postcss-reduce-idents": "2.4.0",
+ "postcss-reduce-initial": "1.0.1",
+ "postcss-reduce-transforms": "1.0.4",
+ "postcss-svgo": "2.1.6",
+ "postcss-unique-selectors": "2.0.2",
+ "postcss-value-parser": "3.3.0",
+ "postcss-zindex": "2.2.0"
+ },
+ "dependencies": {
+ "autoprefixer": {
+ "version": "6.7.7",
+ "bundled": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-db": "1.0.30000784",
+ "normalize-range": "0.1.2",
+ "num2fraction": "1.2.2",
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "browserslist": {
+ "version": "1.7.7",
+ "bundled": true,
+ "requires": {
+ "caniuse-db": "1.0.30000784",
+ "electron-to-chromium": "1.3.29"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "csso": {
+ "version": "2.3.2",
+ "bundled": true,
+ "requires": {
+ "clap": "1.2.3",
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ }
+ }
+ },
+ "cssom": {
+ "version": "0.3.2",
+ "bundled": true
+ },
+ "cssstyle": {
+ "version": "0.2.37",
+ "bundled": true,
+ "requires": {
+ "cssom": "0.3.2"
+ }
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "bundled": true,
+ "requires": {
+ "array-find-index": "1.0.2"
+ }
+ },
+ "d": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "es5-ext": "0.10.37"
+ }
+ },
+ "damerau-levenshtein": {
+ "version": "1.0.4",
+ "bundled": true
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "bundled": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ }
+ },
+ "date-now": {
+ "version": "0.1.4",
+ "bundled": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "bundled": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "deep-equal": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "deep-extend": {
+ "version": "0.4.2",
+ "bundled": true
+ },
+ "deep-is": {
+ "version": "0.1.3",
+ "bundled": true
+ },
+ "default-require-extensions": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "strip-bom": "2.0.0"
+ }
+ },
+ "defaults": {
+ "version": "1.0.3",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "clone": "1.0.3"
+ }
+ },
+ "define-properties": {
+ "version": "1.1.2",
+ "bundled": true,
+ "requires": {
+ "foreach": "2.0.5",
+ "object-keys": "1.0.11"
+ }
+ },
+ "defined": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "del": {
+ "version": "2.2.2",
+ "bundled": true,
+ "requires": {
+ "globby": "5.0.0",
+ "is-path-cwd": "1.0.0",
+ "is-path-in-cwd": "1.0.0",
+ "object-assign": "4.1.1",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "rimraf": "2.6.2"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "depd": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "des.js": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "bundled": true
+ },
+ "detect-indent": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "repeating": "2.0.1"
+ }
+ },
+ "detect-node": {
+ "version": "2.0.3",
+ "bundled": true
+ },
+ "detect-port-alt": {
+ "version": "1.1.3",
+ "bundled": true,
+ "requires": {
+ "address": "1.0.3",
+ "debug": "2.6.9"
+ }
+ },
+ "diff": {
+ "version": "3.4.0",
+ "bundled": true
+ },
+ "diffie-hellman": {
+ "version": "5.0.2",
+ "bundled": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "miller-rabin": "4.0.1",
+ "randombytes": "2.0.5"
+ }
+ },
+ "dns-equal": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "dns-packet": {
+ "version": "1.2.2",
+ "bundled": true,
+ "requires": {
+ "ip": "1.1.5",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "dns-txt": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "buffer-indexof": "1.1.1"
+ }
+ },
+ "doctrine": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "esutils": "2.0.2"
+ }
+ },
+ "dom-converter": {
+ "version": "0.1.4",
+ "bundled": true,
+ "requires": {
+ "utila": "0.3.3"
+ },
+ "dependencies": {
+ "utila": {
+ "version": "0.3.3",
+ "bundled": true
+ }
+ }
+ },
+ "dom-serializer": {
+ "version": "0.1.0",
+ "bundled": true,
+ "requires": {
+ "domelementtype": "1.1.3",
+ "entities": "1.1.1"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "1.1.3",
+ "bundled": true
+ }
+ }
+ },
+ "dom-urls": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "urijs": "1.19.0"
+ }
+ },
+ "domain-browser": {
+ "version": "1.1.7",
+ "bundled": true
+ },
+ "domelementtype": {
+ "version": "1.3.0",
+ "bundled": true
+ },
+ "domhandler": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "domelementtype": "1.3.0"
+ }
+ },
+ "domutils": {
+ "version": "1.5.1",
+ "bundled": true,
+ "requires": {
+ "dom-serializer": "0.1.0",
+ "domelementtype": "1.3.0"
+ }
+ },
+ "dot-prop": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "is-obj": "1.0.1"
+ }
+ },
+ "dotenv": {
+ "version": "4.0.0",
+ "bundled": true
+ },
+ "duplexer": {
+ "version": "0.1.1",
+ "bundled": true
+ },
+ "duplexer2": {
+ "version": "0.1.4",
+ "bundled": true,
+ "requires": {
+ "readable-stream": "2.3.3"
+ }
+ },
+ "easy-table": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "wcwidth": "1.0.1"
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "0.1.1"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "electron-to-chromium": {
+ "version": "1.3.29",
+ "bundled": true
+ },
+ "elliptic": {
+ "version": "6.4.0",
+ "bundled": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "brorand": "1.1.0",
+ "hash.js": "1.1.3",
+ "hmac-drbg": "1.0.1",
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0",
+ "minimalistic-crypto-utils": "1.0.1"
+ }
+ },
+ "emoji-regex": {
+ "version": "6.5.1",
+ "bundled": true
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "bundled": true
+ },
+ "encodeurl": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "encoding": {
+ "version": "0.1.12",
+ "bundled": true,
+ "requires": {
+ "iconv-lite": "0.4.19"
+ }
+ },
+ "enhanced-resolve": {
+ "version": "3.4.1",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "memory-fs": "0.4.1",
+ "object-assign": "4.1.1",
+ "tapable": "0.2.8"
+ }
+ },
+ "entities": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "errno": {
+ "version": "0.1.6",
+ "bundled": true,
+ "requires": {
+ "prr": "1.0.1"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.1",
+ "bundled": true,
+ "requires": {
+ "is-arrayish": "0.2.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.10.0",
+ "bundled": true,
+ "requires": {
+ "es-to-primitive": "1.1.1",
+ "function-bind": "1.1.1",
+ "has": "1.0.1",
+ "is-callable": "1.1.3",
+ "is-regex": "1.0.4"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "is-callable": "1.1.3",
+ "is-date-object": "1.0.1",
+ "is-symbol": "1.0.1"
+ }
+ },
+ "es5-ext": {
+ "version": "0.10.37",
+ "bundled": true,
+ "requires": {
+ "es6-iterator": "2.0.3",
+ "es6-symbol": "3.1.1"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "bundled": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.37",
+ "es6-symbol": "3.1.1"
+ }
+ },
+ "es6-map": {
+ "version": "0.1.5",
+ "bundled": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.37",
+ "es6-iterator": "2.0.3",
+ "es6-set": "0.1.5",
+ "es6-symbol": "3.1.1",
+ "event-emitter": "0.3.5"
+ }
+ },
+ "es6-promise": {
+ "version": "4.1.1",
+ "bundled": true
+ },
+ "es6-set": {
+ "version": "0.1.5",
+ "bundled": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.37",
+ "es6-iterator": "2.0.3",
+ "es6-symbol": "3.1.1",
+ "event-emitter": "0.3.5"
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.1",
+ "bundled": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.37"
+ }
+ },
+ "es6-weak-map": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.37",
+ "es6-iterator": "2.0.3",
+ "es6-symbol": "3.1.1"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "bundled": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "bundled": true
+ },
+ "escodegen": {
+ "version": "1.9.0",
+ "bundled": true,
+ "requires": {
+ "esprima": "3.1.3",
+ "estraverse": "4.2.0",
+ "esutils": "2.0.2",
+ "optionator": "0.8.2",
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "3.1.3",
+ "bundled": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true,
+ "optional": true
+ }
+ }
+ },
+ "escope": {
+ "version": "3.6.0",
+ "bundled": true,
+ "requires": {
+ "es6-map": "0.1.5",
+ "es6-weak-map": "2.0.2",
+ "esrecurse": "4.2.0",
+ "estraverse": "4.2.0"
+ }
+ },
+ "eslint": {
+ "version": "4.10.0",
+ "bundled": true,
+ "requires": {
+ "ajv": "5.5.2",
+ "babel-code-frame": "6.26.0",
+ "chalk": "2.3.0",
+ "concat-stream": "1.6.0",
+ "cross-spawn": "5.1.0",
+ "debug": "3.1.0",
+ "doctrine": "2.0.2",
+ "eslint-scope": "3.7.1",
+ "espree": "3.5.2",
+ "esquery": "1.0.0",
+ "estraverse": "4.2.0",
+ "esutils": "2.0.2",
+ "file-entry-cache": "2.0.0",
+ "functional-red-black-tree": "1.0.1",
+ "glob": "7.1.2",
+ "globals": "9.18.0",
+ "ignore": "3.3.7",
+ "imurmurhash": "0.1.4",
+ "inquirer": "3.3.0",
+ "is-resolvable": "1.0.1",
+ "js-yaml": "3.10.0",
+ "json-stable-stringify": "1.0.1",
+ "levn": "0.3.0",
+ "lodash": "4.17.4",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "natural-compare": "1.4.0",
+ "optionator": "0.8.2",
+ "path-is-inside": "1.0.2",
+ "pluralize": "7.0.0",
+ "progress": "2.0.0",
+ "require-uncached": "1.0.3",
+ "semver": "5.4.1",
+ "strip-ansi": "4.0.0",
+ "strip-json-comments": "2.0.1",
+ "table": "4.0.2",
+ "text-table": "0.2.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "5.5.2",
+ "bundled": true,
+ "requires": {
+ "co": "4.6.0",
+ "fast-deep-equal": "1.0.0",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1"
+ }
+ },
+ "ansi-regex": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "chalk": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ },
+ "debug": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "esprima": {
+ "version": "4.0.0",
+ "bundled": true
+ },
+ "js-yaml": {
+ "version": "3.10.0",
+ "bundled": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ }
+ }
+ },
+ "eslint-config-react-app": {
+ "version": "2.0.1",
+ "bundled": true
+ },
+ "eslint-import-resolver-node": {
+ "version": "0.3.1",
+ "bundled": true,
+ "requires": {
+ "debug": "2.6.9",
+ "resolve": "1.5.0"
+ }
+ },
+ "eslint-loader": {
+ "version": "1.9.0",
+ "bundled": true,
+ "requires": {
+ "loader-fs-cache": "1.0.1",
+ "loader-utils": "1.1.0",
+ "object-assign": "4.1.1",
+ "object-hash": "1.2.0",
+ "rimraf": "2.6.2"
+ }
+ },
+ "eslint-module-utils": {
+ "version": "2.1.1",
+ "bundled": true,
+ "requires": {
+ "debug": "2.6.9",
+ "pkg-dir": "1.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "bundled": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "pkg-dir": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "find-up": "1.1.2"
+ }
+ }
+ }
+ },
+ "eslint-plugin-flowtype": {
+ "version": "2.39.1",
+ "bundled": true,
+ "requires": {
+ "lodash": "4.17.4"
+ }
+ },
+ "eslint-plugin-import": {
+ "version": "2.8.0",
+ "bundled": true,
+ "requires": {
+ "builtin-modules": "1.1.1",
+ "contains-path": "0.1.0",
+ "debug": "2.6.9",
+ "doctrine": "1.5.0",
+ "eslint-import-resolver-node": "0.3.1",
+ "eslint-module-utils": "2.1.1",
+ "has": "1.0.1",
+ "lodash.cond": "4.5.2",
+ "minimatch": "3.0.4",
+ "read-pkg-up": "2.0.0"
+ },
+ "dependencies": {
+ "doctrine": {
+ "version": "1.5.0",
+ "bundled": true,
+ "requires": {
+ "esutils": "2.0.2",
+ "isarray": "1.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "strip-bom": "3.0.0"
+ }
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "pify": "2.3.0"
+ }
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "load-json-file": "2.0.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "2.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "find-up": "2.1.0",
+ "read-pkg": "2.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "eslint-plugin-jsx-a11y": {
+ "version": "5.1.1",
+ "bundled": true,
+ "requires": {
+ "aria-query": "0.7.0",
+ "array-includes": "3.0.3",
+ "ast-types-flow": "0.0.7",
+ "axobject-query": "0.1.0",
+ "damerau-levenshtein": "1.0.4",
+ "emoji-regex": "6.5.1",
+ "jsx-ast-utils": "1.4.1"
+ }
+ },
+ "eslint-plugin-react": {
+ "version": "7.4.0",
+ "bundled": true,
+ "requires": {
+ "doctrine": "2.0.2",
+ "has": "1.0.1",
+ "jsx-ast-utils": "2.0.1",
+ "prop-types": "15.6.0"
+ },
+ "dependencies": {
+ "jsx-ast-utils": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "array-includes": "3.0.3"
+ }
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "3.7.1",
+ "bundled": true,
+ "requires": {
+ "esrecurse": "4.2.0",
+ "estraverse": "4.2.0"
+ }
+ },
+ "espree": {
+ "version": "3.5.2",
+ "bundled": true,
+ "requires": {
+ "acorn": "5.2.1",
+ "acorn-jsx": "3.0.1"
+ }
+ },
+ "esprima": {
+ "version": "2.7.3",
+ "bundled": true
+ },
+ "esquery": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "estraverse": "4.2.0"
+ }
+ },
+ "esrecurse": {
+ "version": "4.2.0",
+ "bundled": true,
+ "requires": {
+ "estraverse": "4.2.0",
+ "object-assign": "4.1.1"
+ }
+ },
+ "estraverse": {
+ "version": "4.2.0",
+ "bundled": true
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "bundled": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "bundled": true
+ },
+ "event-emitter": {
+ "version": "0.3.5",
+ "bundled": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.37"
+ }
+ },
+ "event-stream": {
+ "version": "3.3.4",
+ "bundled": true,
+ "requires": {
+ "duplexer": "0.1.1",
+ "from": "0.1.7",
+ "map-stream": "0.1.0",
+ "pause-stream": "0.0.11",
+ "split": "0.3.3",
+ "stream-combiner": "0.0.4",
+ "through": "2.3.8"
+ }
+ },
+ "eventemitter3": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "events": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "eventsource": {
+ "version": "0.1.6",
+ "bundled": true,
+ "requires": {
+ "original": "1.0.0"
+ }
+ },
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "md5.js": "1.3.4",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "exec-sh": {
+ "version": "0.2.1",
+ "bundled": true,
+ "requires": {
+ "merge": "1.2.0"
+ }
+ },
+ "execa": {
+ "version": "0.7.0",
+ "bundled": true,
+ "requires": {
+ "cross-spawn": "5.1.0",
+ "get-stream": "3.0.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "3.0.2",
+ "strip-eof": "1.0.0"
+ }
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "bundled": true,
+ "requires": {
+ "is-posix-bracket": "0.1.1"
+ }
+ },
+ "expand-range": {
+ "version": "1.8.2",
+ "bundled": true,
+ "requires": {
+ "fill-range": "2.2.3"
+ }
+ },
+ "expand-tilde": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "homedir-polyfill": "1.0.1"
+ }
+ },
+ "express": {
+ "version": "4.16.2",
+ "bundled": true,
+ "requires": {
+ "accepts": "1.3.4",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.18.2",
+ "content-disposition": "0.5.2",
+ "content-type": "1.0.4",
+ "cookie": "0.3.1",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "1.1.1",
+ "encodeurl": "1.0.1",
+ "escape-html": "1.0.3",
+ "etag": "1.8.1",
+ "finalhandler": "1.1.0",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "1.1.2",
+ "on-finished": "2.3.0",
+ "parseurl": "1.3.2",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "2.0.2",
+ "qs": "6.5.1",
+ "range-parser": "1.2.0",
+ "safe-buffer": "5.1.1",
+ "send": "0.16.1",
+ "serve-static": "1.13.1",
+ "setprototypeof": "1.1.0",
+ "statuses": "1.3.1",
+ "type-is": "1.6.15",
+ "utils-merge": "1.0.1",
+ "vary": "1.1.2"
+ },
+ "dependencies": {
+ "array-flatten": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "bundled": true
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.1",
+ "bundled": true
+ },
+ "external-editor": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "chardet": "0.4.2",
+ "iconv-lite": "0.4.19",
+ "tmp": "0.0.33"
+ }
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "bundled": true,
+ "requires": {
+ "is-extglob": "1.0.0"
+ }
+ },
+ "extract-text-webpack-plugin": {
+ "version": "3.0.2",
+ "bundled": true,
+ "requires": {
+ "async": "2.6.0",
+ "loader-utils": "1.1.0",
+ "schema-utils": "0.3.0",
+ "webpack-sources": "1.1.0"
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "bundled": true
+ },
+ "fast-deep-equal": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "bundled": true
+ },
+ "fastparse": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "faye-websocket": {
+ "version": "0.11.1",
+ "bundled": true,
+ "requires": {
+ "websocket-driver": "0.7.0"
+ }
+ },
+ "fb-watchman": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "bser": "2.0.0"
+ }
+ },
+ "fbjs": {
+ "version": "0.8.16",
+ "bundled": true,
+ "requires": {
+ "core-js": "1.2.7",
+ "isomorphic-fetch": "2.2.1",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1",
+ "promise": "7.3.1",
+ "setimmediate": "1.0.5",
+ "ua-parser-js": "0.7.17"
+ }
+ },
+ "figures": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "escape-string-regexp": "1.0.5"
+ }
+ },
+ "file-entry-cache": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "flat-cache": "1.3.0",
+ "object-assign": "4.1.1"
+ }
+ },
+ "file-loader": {
+ "version": "1.1.5",
+ "bundled": true,
+ "requires": {
+ "loader-utils": "1.1.0",
+ "schema-utils": "0.3.0"
+ }
+ },
+ "filename-regex": {
+ "version": "2.0.1",
+ "bundled": true
+ },
+ "fileset": {
+ "version": "2.0.3",
+ "bundled": true,
+ "requires": {
+ "glob": "7.1.2",
+ "minimatch": "3.0.4"
+ }
+ },
+ "filesize": {
+ "version": "3.5.11",
+ "bundled": true
+ },
+ "fill-range": {
+ "version": "2.2.3",
+ "bundled": true,
+ "requires": {
+ "is-number": "2.1.0",
+ "isobject": "2.1.0",
+ "randomatic": "1.1.7",
+ "repeat-element": "1.1.2",
+ "repeat-string": "1.6.1"
+ }
+ },
+ "filled-array": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "finalhandler": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "1.0.1",
+ "escape-html": "1.0.3",
+ "on-finished": "2.3.0",
+ "parseurl": "1.3.2",
+ "statuses": "1.3.1",
+ "unpipe": "1.0.0"
+ }
+ },
+ "find-cache-dir": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "commondir": "1.0.1",
+ "make-dir": "1.1.0",
+ "pkg-dir": "2.0.0"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "locate-path": "2.0.0"
+ }
+ },
+ "flat-cache": {
+ "version": "1.3.0",
+ "bundled": true,
+ "requires": {
+ "circular-json": "0.3.3",
+ "del": "2.2.2",
+ "graceful-fs": "4.1.11",
+ "write": "0.2.1"
+ }
+ },
+ "flatten": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "bundled": true,
+ "requires": {
+ "for-in": "1.0.2"
+ }
+ },
+ "foreach": {
+ "version": "2.0.5",
+ "bundled": true
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "bundled": true
+ },
+ "form-data": {
+ "version": "2.3.1",
+ "bundled": true,
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.5",
+ "mime-types": "2.1.17"
+ }
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "bundled": true
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "bundled": true
+ },
+ "from": {
+ "version": "0.1.7",
+ "bundled": true
+ },
+ "fs-extra": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "jsonfile": "3.0.1",
+ "universalify": "0.1.1"
+ }
+ },
+ "fs-readdir-recursive": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "fstream": {
+ "version": "1.0.11",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "inherits": "2.0.3",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.6.2"
+ }
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "bundled": true,
+ "requires": {
+ "aproba": "1.2.0",
+ "console-control-strings": "1.1.0",
+ "has-unicode": "2.0.1",
+ "object-assign": "4.1.1",
+ "signal-exit": "3.0.2",
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wide-align": "1.1.2"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
+ }
+ },
+ "gaze": {
+ "version": "1.1.2",
+ "bundled": true,
+ "requires": {
+ "globule": "1.2.0"
+ }
+ },
+ "generate-function": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "generate-object-property": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "is-property": "1.0.2"
+ }
+ },
+ "get-caller-file": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "bundled": true
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "bundled": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "bundled": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "glob-base": {
+ "version": "0.3.0",
+ "bundled": true,
+ "requires": {
+ "glob-parent": "2.0.0",
+ "is-glob": "2.0.1"
+ }
+ },
+ "glob-parent": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "is-glob": "2.0.1"
+ }
+ },
+ "global-modules": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "global-prefix": "1.0.2",
+ "is-windows": "1.0.1",
+ "resolve-dir": "1.0.1"
+ }
+ },
+ "global-prefix": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "expand-tilde": "2.0.2",
+ "homedir-polyfill": "1.0.1",
+ "ini": "1.3.5",
+ "is-windows": "1.0.1",
+ "which": "1.3.0"
+ }
+ },
+ "globals": {
+ "version": "9.18.0",
+ "bundled": true
+ },
+ "globby": {
+ "version": "5.0.0",
+ "bundled": true,
+ "requires": {
+ "array-union": "1.0.2",
+ "arrify": "1.0.1",
+ "glob": "7.1.2",
+ "object-assign": "4.1.1",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "globule": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "glob": "7.1.2",
+ "lodash": "4.17.4",
+ "minimatch": "3.0.4"
+ }
+ },
+ "got": {
+ "version": "5.7.1",
+ "bundled": true,
+ "requires": {
+ "create-error-class": "3.0.2",
+ "duplexer2": "0.1.4",
+ "is-redirect": "1.0.0",
+ "is-retry-allowed": "1.1.0",
+ "is-stream": "1.1.0",
+ "lowercase-keys": "1.0.0",
+ "node-status-codes": "1.0.0",
+ "object-assign": "4.1.1",
+ "parse-json": "2.2.0",
+ "pinkie-promise": "2.0.1",
+ "read-all-stream": "3.1.0",
+ "readable-stream": "2.3.3",
+ "timed-out": "3.1.3",
+ "unzip-response": "1.0.2",
+ "url-parse-lax": "1.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "bundled": true
+ },
+ "growly": {
+ "version": "1.3.0",
+ "bundled": true
+ },
+ "gzip-size": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "duplexer": "0.1.1"
+ }
+ },
+ "hammerjs": {
+ "version": "2.0.8",
+ "bundled": true
+ },
+ "handle-thing": {
+ "version": "1.2.5",
+ "bundled": true
+ },
+ "handlebars": {
+ "version": "4.0.11",
+ "bundled": true,
+ "requires": {
+ "async": "1.5.2",
+ "optimist": "0.6.1",
+ "source-map": "0.4.4",
+ "uglify-js": "2.8.29"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "bundled": true
+ },
+ "source-map": {
+ "version": "0.4.4",
+ "bundled": true,
+ "requires": {
+ "amdefine": "1.0.1"
+ }
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "source-map": "0.5.7",
+ "uglify-to-browserify": "1.0.2",
+ "yargs": "3.10.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true,
+ "optional": true
+ }
+ }
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "camelcase": "1.2.1",
+ "cliui": "2.1.0",
+ "decamelize": "1.2.0",
+ "window-size": "0.1.0"
+ }
+ }
+ }
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "har-validator": {
+ "version": "5.0.3",
+ "bundled": true,
+ "requires": {
+ "ajv": "5.5.2",
+ "har-schema": "2.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "5.5.2",
+ "bundled": true,
+ "requires": {
+ "co": "4.6.0",
+ "fast-deep-equal": "1.0.0",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1"
+ }
+ }
+ }
+ },
+ "has": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "function-bind": "1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "bundled": true
+ },
+ "hash-base": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "hash.js": {
+ "version": "1.1.3",
+ "bundled": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
+ },
+ "hawk": {
+ "version": "6.0.2",
+ "bundled": true,
+ "requires": {
+ "boom": "4.3.1",
+ "cryptiles": "3.1.2",
+ "hoek": "4.2.0",
+ "sntp": "2.1.0"
+ }
+ },
+ "he": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "hash.js": "1.1.3",
+ "minimalistic-assert": "1.0.0",
+ "minimalistic-crypto-utils": "1.0.1"
+ }
+ },
+ "hoek": {
+ "version": "4.2.0",
+ "bundled": true
+ },
+ "home-or-tmp": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "homedir-polyfill": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "parse-passwd": "1.0.0"
+ }
+ },
+ "hosted-git-info": {
+ "version": "2.5.0",
+ "bundled": true
+ },
+ "hpack.js": {
+ "version": "2.1.6",
+ "bundled": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "obuf": "1.1.1",
+ "readable-stream": "2.3.3",
+ "wbuf": "1.7.2"
+ }
+ },
+ "html-comment-regex": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "html-encoding-sniffer": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "whatwg-encoding": "1.0.3"
+ }
+ },
+ "html-entities": {
+ "version": "1.2.1",
+ "bundled": true
+ },
+ "html-minifier": {
+ "version": "3.5.7",
+ "bundled": true,
+ "requires": {
+ "camel-case": "3.0.0",
+ "clean-css": "4.1.9",
+ "commander": "2.12.2",
+ "he": "1.1.1",
+ "ncname": "1.0.0",
+ "param-case": "2.1.1",
+ "relateurl": "0.2.7",
+ "uglify-js": "3.2.2"
+ }
+ },
+ "html-webpack-plugin": {
+ "version": "2.29.0",
+ "bundled": true,
+ "requires": {
+ "bluebird": "3.5.1",
+ "html-minifier": "3.5.7",
+ "loader-utils": "0.2.17",
+ "lodash": "4.17.4",
+ "pretty-error": "2.1.1",
+ "toposort": "1.0.6"
+ },
+ "dependencies": {
+ "loader-utils": {
+ "version": "0.2.17",
+ "bundled": true,
+ "requires": {
+ "big.js": "3.2.0",
+ "emojis-list": "2.1.0",
+ "json5": "0.5.1",
+ "object-assign": "4.1.1"
+ }
+ }
+ }
+ },
+ "htmlparser2": {
+ "version": "3.3.0",
+ "bundled": true,
+ "requires": {
+ "domelementtype": "1.3.0",
+ "domhandler": "2.1.0",
+ "domutils": "1.1.6",
+ "readable-stream": "1.0.34"
+ },
+ "dependencies": {
+ "domutils": {
+ "version": "1.1.6",
+ "bundled": true,
+ "requires": {
+ "domelementtype": "1.3.0"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "bundled": true
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "bundled": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "0.0.1",
+ "string_decoder": "0.10.31"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "bundled": true
+ }
+ }
+ },
+ "http-deceiver": {
+ "version": "1.2.7",
+ "bundled": true
+ },
+ "http-errors": {
+ "version": "1.6.2",
+ "bundled": true,
+ "requires": {
+ "depd": "1.1.1",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.0.3",
+ "statuses": "1.3.1"
+ },
+ "dependencies": {
+ "setprototypeof": {
+ "version": "1.0.3",
+ "bundled": true
+ }
+ }
+ },
+ "http-parser-js": {
+ "version": "0.4.9",
+ "bundled": true
+ },
+ "http-proxy": {
+ "version": "1.16.2",
+ "bundled": true,
+ "requires": {
+ "eventemitter3": "1.2.0",
+ "requires-port": "1.0.0"
+ }
+ },
+ "http-proxy-middleware": {
+ "version": "0.17.4",
+ "bundled": true,
+ "requires": {
+ "http-proxy": "1.16.2",
+ "is-glob": "3.1.0",
+ "lodash": "4.17.4",
+ "micromatch": "2.3.11"
+ },
+ "dependencies": {
+ "is-extglob": {
+ "version": "2.1.1",
+ "bundled": true
+ },
+ "is-glob": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "is-extglob": "2.1.1"
+ }
+ }
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "jsprim": "1.4.1",
+ "sshpk": "1.13.1"
+ }
+ },
+ "https-browserify": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "iconv-lite": {
+ "version": "0.4.19",
+ "bundled": true
+ },
+ "icss-replace-symbols": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "icss-utils": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "postcss": "6.0.14"
+ }
+ },
+ "ieee754": {
+ "version": "1.1.8",
+ "bundled": true
+ },
+ "ignore": {
+ "version": "3.3.7",
+ "bundled": true
+ },
+ "import-local": {
+ "version": "0.1.1",
+ "bundled": true,
+ "requires": {
+ "pkg-dir": "2.0.0",
+ "resolve-cwd": "2.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "bundled": true
+ },
+ "in-publish": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "repeating": "2.0.1"
+ }
+ },
+ "indexes-of": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "indexof": {
+ "version": "0.0.1",
+ "bundled": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true
+ },
+ "ini": {
+ "version": "1.3.5",
+ "bundled": true
+ },
+ "inquirer": {
+ "version": "3.3.0",
+ "bundled": true,
+ "requires": {
+ "ansi-escapes": "3.0.0",
+ "chalk": "2.3.0",
+ "cli-cursor": "2.1.0",
+ "cli-width": "2.2.0",
+ "external-editor": "2.1.0",
+ "figures": "2.0.0",
+ "lodash": "4.17.4",
+ "mute-stream": "0.0.7",
+ "run-async": "2.3.0",
+ "rx-lite": "4.0.8",
+ "rx-lite-aggregates": "4.0.8",
+ "string-width": "2.1.1",
+ "strip-ansi": "4.0.0",
+ "through": "2.3.8"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "chalk": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ }
+ }
+ },
+ "internal-ip": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "meow": "3.7.0"
+ }
+ },
+ "interpret": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "invariant": {
+ "version": "2.2.2",
+ "bundled": true,
+ "requires": {
+ "loose-envify": "1.3.1"
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "ip": {
+ "version": "1.1.5",
+ "bundled": true
+ },
+ "ipaddr.js": {
+ "version": "1.5.2",
+ "bundled": true
+ },
+ "is-absolute-url": {
+ "version": "2.1.0",
+ "bundled": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "bundled": true
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "binary-extensions": "1.11.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "bundled": true
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "builtin-modules": "1.1.1"
+ }
+ },
+ "is-callable": {
+ "version": "1.1.3",
+ "bundled": true
+ },
+ "is-ci": {
+ "version": "1.0.10",
+ "bundled": true,
+ "requires": {
+ "ci-info": "1.1.2"
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "is-directory": {
+ "version": "0.3.1",
+ "bundled": true
+ },
+ "is-dotfile": {
+ "version": "1.0.3",
+ "bundled": true
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "bundled": true,
+ "requires": {
+ "is-primitive": "2.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "bundled": true
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "is-extglob": "1.0.0"
+ }
+ },
+ "is-my-json-valid": {
+ "version": "2.17.1",
+ "bundled": true,
+ "requires": {
+ "generate-function": "2.0.0",
+ "generate-object-property": "1.2.0",
+ "jsonpointer": "4.0.1",
+ "xtend": "4.0.1"
+ }
+ },
+ "is-npm": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ }
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "is-path-cwd": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "is-path-in-cwd": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "is-path-inside": "1.0.1"
+ }
+ },
+ "is-path-inside": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "path-is-inside": "1.0.2"
+ }
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "bundled": true
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "bundled": true
+ },
+ "is-property": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "is-redirect": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "is-regex": {
+ "version": "1.0.4",
+ "bundled": true,
+ "requires": {
+ "has": "1.0.1"
+ }
+ },
+ "is-resolvable": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "is-retry-allowed": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "is-root": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "is-svg": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "html-comment-regex": "1.1.1"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "bundled": true
+ },
+ "is-windows": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "is-wsl": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ },
+ "isomorphic-fetch": {
+ "version": "2.2.1",
+ "bundled": true,
+ "requires": {
+ "node-fetch": "1.7.3",
+ "whatwg-fetch": "2.0.3"
+ }
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "bundled": true
+ },
+ "istanbul-api": {
+ "version": "1.2.1",
+ "bundled": true,
+ "requires": {
+ "async": "2.6.0",
+ "fileset": "2.0.3",
+ "istanbul-lib-coverage": "1.1.1",
+ "istanbul-lib-hook": "1.1.0",
+ "istanbul-lib-instrument": "1.9.1",
+ "istanbul-lib-report": "1.1.2",
+ "istanbul-lib-source-maps": "1.2.2",
+ "istanbul-reports": "1.1.3",
+ "js-yaml": "3.7.0",
+ "mkdirp": "0.5.1",
+ "once": "1.4.0"
+ }
+ },
+ "istanbul-lib-coverage": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "istanbul-lib-hook": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "append-transform": "0.4.0"
+ }
+ },
+ "istanbul-lib-instrument": {
+ "version": "1.9.1",
+ "bundled": true,
+ "requires": {
+ "babel-generator": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "istanbul-lib-coverage": "1.1.1",
+ "semver": "5.4.1"
+ }
+ },
+ "istanbul-lib-report": {
+ "version": "1.1.2",
+ "bundled": true,
+ "requires": {
+ "istanbul-lib-coverage": "1.1.1",
+ "mkdirp": "0.5.1",
+ "path-parse": "1.0.5",
+ "supports-color": "3.2.3"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "istanbul-lib-source-maps": {
+ "version": "1.2.2",
+ "bundled": true,
+ "requires": {
+ "debug": "3.1.0",
+ "istanbul-lib-coverage": "1.1.1",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.6.2",
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ }
+ }
+ },
+ "istanbul-reports": {
+ "version": "1.1.3",
+ "bundled": true,
+ "requires": {
+ "handlebars": "4.0.11"
+ }
+ },
+ "javascript-natural-sort": {
+ "version": "0.7.1",
+ "bundled": true
+ },
+ "jest": {
+ "version": "20.0.4",
+ "bundled": true,
+ "requires": {
+ "jest-cli": "20.0.4"
+ },
+ "dependencies": {
+ "ansi-escapes": {
+ "version": "1.4.0",
+ "bundled": true
+ },
+ "callsites": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "jest-cli": {
+ "version": "20.0.4",
+ "bundled": true,
+ "requires": {
+ "ansi-escapes": "1.4.0",
+ "callsites": "2.0.0",
+ "chalk": "1.1.3",
+ "graceful-fs": "4.1.11",
+ "is-ci": "1.0.10",
+ "istanbul-api": "1.2.1",
+ "istanbul-lib-coverage": "1.1.1",
+ "istanbul-lib-instrument": "1.9.1",
+ "istanbul-lib-source-maps": "1.2.2",
+ "jest-changed-files": "20.0.3",
+ "jest-config": "20.0.4",
+ "jest-docblock": "20.0.3",
+ "jest-environment-jsdom": "20.0.3",
+ "jest-haste-map": "20.0.5",
+ "jest-jasmine2": "20.0.4",
+ "jest-message-util": "20.0.3",
+ "jest-regex-util": "20.0.3",
+ "jest-resolve-dependencies": "20.0.3",
+ "jest-runtime": "20.0.4",
+ "jest-snapshot": "20.0.3",
+ "jest-util": "20.0.3",
+ "micromatch": "2.3.11",
+ "node-notifier": "5.1.2",
+ "pify": "2.3.0",
+ "slash": "1.0.0",
+ "string-length": "1.0.1",
+ "throat": "3.2.0",
+ "which": "1.3.0",
+ "worker-farm": "1.5.2",
+ "yargs": "7.1.0"
+ }
+ }
+ }
+ },
+ "jest-changed-files": {
+ "version": "20.0.3",
+ "bundled": true
+ },
+ "jest-config": {
+ "version": "20.0.4",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "glob": "7.1.2",
+ "jest-environment-jsdom": "20.0.3",
+ "jest-environment-node": "20.0.3",
+ "jest-jasmine2": "20.0.4",
+ "jest-matcher-utils": "20.0.3",
+ "jest-regex-util": "20.0.3",
+ "jest-resolve": "20.0.4",
+ "jest-validate": "20.0.3",
+ "pretty-format": "20.0.3"
+ }
+ },
+ "jest-diff": {
+ "version": "20.0.3",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "diff": "3.4.0",
+ "jest-matcher-utils": "20.0.3",
+ "pretty-format": "20.0.3"
+ }
+ },
+ "jest-docblock": {
+ "version": "20.0.3",
+ "bundled": true
+ },
+ "jest-environment-jsdom": {
+ "version": "20.0.3",
+ "bundled": true,
+ "requires": {
+ "jest-mock": "20.0.3",
+ "jest-util": "20.0.3",
+ "jsdom": "9.12.0"
+ }
+ },
+ "jest-environment-node": {
+ "version": "20.0.3",
+ "bundled": true,
+ "requires": {
+ "jest-mock": "20.0.3",
+ "jest-util": "20.0.3"
+ }
+ },
+ "jest-haste-map": {
+ "version": "20.0.5",
+ "bundled": true,
+ "requires": {
+ "fb-watchman": "2.0.0",
+ "graceful-fs": "4.1.11",
+ "jest-docblock": "20.0.3",
+ "micromatch": "2.3.11",
+ "sane": "1.6.0",
+ "worker-farm": "1.5.2"
+ }
+ },
+ "jest-jasmine2": {
+ "version": "20.0.4",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "graceful-fs": "4.1.11",
+ "jest-diff": "20.0.3",
+ "jest-matcher-utils": "20.0.3",
+ "jest-matchers": "20.0.3",
+ "jest-message-util": "20.0.3",
+ "jest-snapshot": "20.0.3",
+ "once": "1.4.0",
+ "p-map": "1.2.0"
+ }
+ },
+ "jest-matcher-utils": {
+ "version": "20.0.3",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "pretty-format": "20.0.3"
+ }
+ },
+ "jest-matchers": {
+ "version": "20.0.3",
+ "bundled": true,
+ "requires": {
+ "jest-diff": "20.0.3",
+ "jest-matcher-utils": "20.0.3",
+ "jest-message-util": "20.0.3",
+ "jest-regex-util": "20.0.3"
+ }
+ },
+ "jest-message-util": {
+ "version": "20.0.3",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "micromatch": "2.3.11",
+ "slash": "1.0.0"
+ }
+ },
+ "jest-mock": {
+ "version": "20.0.3",
+ "bundled": true
+ },
+ "jest-regex-util": {
+ "version": "20.0.3",
+ "bundled": true
+ },
+ "jest-resolve": {
+ "version": "20.0.4",
+ "bundled": true,
+ "requires": {
+ "browser-resolve": "1.11.2",
+ "is-builtin-module": "1.0.0",
+ "resolve": "1.5.0"
+ }
+ },
+ "jest-resolve-dependencies": {
+ "version": "20.0.3",
+ "bundled": true,
+ "requires": {
+ "jest-regex-util": "20.0.3"
+ }
+ },
+ "jest-runtime": {
+ "version": "20.0.4",
+ "bundled": true,
+ "requires": {
+ "babel-core": "6.26.0",
+ "babel-jest": "20.0.3",
+ "babel-plugin-istanbul": "4.1.5",
+ "chalk": "1.1.3",
+ "convert-source-map": "1.5.1",
+ "graceful-fs": "4.1.11",
+ "jest-config": "20.0.4",
+ "jest-haste-map": "20.0.5",
+ "jest-regex-util": "20.0.3",
+ "jest-resolve": "20.0.4",
+ "jest-util": "20.0.3",
+ "json-stable-stringify": "1.0.1",
+ "micromatch": "2.3.11",
+ "strip-bom": "3.0.0",
+ "yargs": "7.1.0"
+ },
+ "dependencies": {
+ "strip-bom": {
+ "version": "3.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "jest-snapshot": {
+ "version": "20.0.3",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "jest-diff": "20.0.3",
+ "jest-matcher-utils": "20.0.3",
+ "jest-util": "20.0.3",
+ "natural-compare": "1.4.0",
+ "pretty-format": "20.0.3"
+ }
+ },
+ "jest-util": {
+ "version": "20.0.3",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "graceful-fs": "4.1.11",
+ "jest-message-util": "20.0.3",
+ "jest-mock": "20.0.3",
+ "jest-validate": "20.0.3",
+ "leven": "2.1.0",
+ "mkdirp": "0.5.1"
+ }
+ },
+ "jest-validate": {
+ "version": "20.0.3",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "jest-matcher-utils": "20.0.3",
+ "leven": "2.1.0",
+ "pretty-format": "20.0.3"
+ }
+ },
+ "js-base64": {
+ "version": "2.4.0",
+ "bundled": true
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "bundled": true
+ },
+ "js-yaml": {
+ "version": "3.7.0",
+ "bundled": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "2.7.3"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "bundled": true,
+ "optional": true
+ },
+ "jsdom": {
+ "version": "9.12.0",
+ "bundled": true,
+ "requires": {
+ "abab": "1.0.4",
+ "acorn": "4.0.13",
+ "acorn-globals": "3.1.0",
+ "array-equal": "1.0.0",
+ "content-type-parser": "1.0.2",
+ "cssom": "0.3.2",
+ "cssstyle": "0.2.37",
+ "escodegen": "1.9.0",
+ "html-encoding-sniffer": "1.0.2",
+ "nwmatcher": "1.4.3",
+ "parse5": "1.5.1",
+ "request": "2.83.0",
+ "sax": "1.2.4",
+ "symbol-tree": "3.2.2",
+ "tough-cookie": "2.3.3",
+ "webidl-conversions": "4.0.2",
+ "whatwg-encoding": "1.0.3",
+ "whatwg-url": "4.8.0",
+ "xml-name-validator": "2.0.1"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.13",
+ "bundled": true
+ }
+ }
+ },
+ "jsesc": {
+ "version": "1.3.0",
+ "bundled": true
+ },
+ "json-loader": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "bundled": true
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "bundled": true
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "jsonify": "0.0.0"
+ }
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "bundled": true
+ },
+ "json3": {
+ "version": "3.3.2",
+ "bundled": true
+ },
+ "json5": {
+ "version": "0.5.1",
+ "bundled": true
+ },
+ "jsonfile": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "4.1.11"
+ }
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "bundled": true
+ },
+ "jsonpointer": {
+ "version": "4.0.1",
+ "bundled": true
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "bundled": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "jsx-ast-utils": {
+ "version": "1.4.1",
+ "bundled": true
+ },
+ "killable": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "bundled": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ },
+ "klaw": {
+ "version": "1.3.1",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "4.1.11"
+ }
+ },
+ "latest-version": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "package-json": "2.4.0"
+ }
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "bundled": true
+ },
+ "lazy-req": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "invert-kv": "1.0.0"
+ }
+ },
+ "leven": {
+ "version": "2.1.0",
+ "bundled": true
+ },
+ "levn": {
+ "version": "0.3.0",
+ "bundled": true,
+ "requires": {
+ "prelude-ls": "1.1.2",
+ "type-check": "0.3.2"
+ }
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
+ }
+ },
+ "loader-fs-cache": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "find-cache-dir": "0.1.1",
+ "mkdirp": "0.5.1"
+ },
+ "dependencies": {
+ "find-cache-dir": {
+ "version": "0.1.1",
+ "bundled": true,
+ "requires": {
+ "commondir": "1.0.1",
+ "mkdirp": "0.5.1",
+ "pkg-dir": "1.0.0"
+ }
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "bundled": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "pkg-dir": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "find-up": "1.1.2"
+ }
+ }
+ }
+ },
+ "loader-runner": {
+ "version": "2.3.0",
+ "bundled": true
+ },
+ "loader-utils": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "big.js": "3.2.0",
+ "emojis-list": "2.1.0",
+ "json5": "0.5.1"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "p-locate": "2.0.0",
+ "path-exists": "3.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "bundled": true
+ },
+ "lodash._reinterpolate": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "lodash.assign": {
+ "version": "4.2.0",
+ "bundled": true
+ },
+ "lodash.camelcase": {
+ "version": "4.3.0",
+ "bundled": true
+ },
+ "lodash.clonedeep": {
+ "version": "4.5.0",
+ "bundled": true
+ },
+ "lodash.cond": {
+ "version": "4.5.2",
+ "bundled": true
+ },
+ "lodash.defaults": {
+ "version": "4.2.0",
+ "bundled": true
+ },
+ "lodash.memoize": {
+ "version": "4.1.2",
+ "bundled": true
+ },
+ "lodash.mergewith": {
+ "version": "4.6.0",
+ "bundled": true
+ },
+ "lodash.template": {
+ "version": "4.4.0",
+ "bundled": true,
+ "requires": {
+ "lodash._reinterpolate": "3.0.0",
+ "lodash.templatesettings": "4.1.0"
+ }
+ },
+ "lodash.templatesettings": {
+ "version": "4.1.0",
+ "bundled": true,
+ "requires": {
+ "lodash._reinterpolate": "3.0.0"
+ }
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "bundled": true
+ },
+ "loglevel": {
+ "version": "1.6.0",
+ "bundled": true
+ },
+ "longest": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "loose-envify": {
+ "version": "1.3.1",
+ "bundled": true,
+ "requires": {
+ "js-tokens": "3.0.2"
+ }
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "bundled": true,
+ "requires": {
+ "currently-unhandled": "0.4.1",
+ "signal-exit": "3.0.2"
+ }
+ },
+ "lower-case": {
+ "version": "1.1.4",
+ "bundled": true
+ },
+ "lowercase-keys": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "lru-cache": {
+ "version": "4.1.1",
+ "bundled": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ },
+ "macaddress": {
+ "version": "0.2.8",
+ "bundled": true
+ },
+ "make-dir": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "pify": "3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "makeerror": {
+ "version": "1.0.11",
+ "bundled": true,
+ "requires": {
+ "tmpl": "1.0.4"
+ }
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "map-stream": {
+ "version": "0.1.0",
+ "bundled": true
+ },
+ "math-expression-evaluator": {
+ "version": "1.2.17",
+ "bundled": true
+ },
+ "md5.js": {
+ "version": "1.3.4",
+ "bundled": true,
+ "requires": {
+ "hash-base": "3.0.4",
+ "inherits": "2.0.3"
+ },
+ "dependencies": {
+ "hash-base": {
+ "version": "3.0.4",
+ "bundled": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ }
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "bundled": true
+ },
+ "mem": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "mimic-fn": "1.1.0"
+ }
+ },
+ "memory-fs": {
+ "version": "0.4.1",
+ "bundled": true,
+ "requires": {
+ "errno": "0.1.6",
+ "readable-stream": "2.3.3"
+ }
+ },
+ "memorystream": {
+ "version": "0.3.1",
+ "bundled": true
+ },
+ "meow": {
+ "version": "3.7.0",
+ "bundled": true,
+ "requires": {
+ "camelcase-keys": "2.1.0",
+ "decamelize": "1.2.0",
+ "loud-rejection": "1.6.0",
+ "map-obj": "1.0.1",
+ "minimist": "1.2.0",
+ "normalize-package-data": "2.4.0",
+ "object-assign": "4.1.1",
+ "read-pkg-up": "1.0.1",
+ "redent": "1.0.0",
+ "trim-newlines": "1.0.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true
+ }
+ }
+ },
+ "merge": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "methods": {
+ "version": "1.1.2",
+ "bundled": true
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "bundled": true,
+ "requires": {
+ "arr-diff": "2.0.0",
+ "array-unique": "0.2.1",
+ "braces": "1.8.5",
+ "expand-brackets": "0.1.5",
+ "extglob": "0.3.2",
+ "filename-regex": "2.0.1",
+ "is-extglob": "1.0.0",
+ "is-glob": "2.0.1",
+ "kind-of": "3.2.2",
+ "normalize-path": "2.1.1",
+ "object.omit": "2.0.1",
+ "parse-glob": "3.0.4",
+ "regex-cache": "0.4.4"
+ }
+ },
+ "miller-rabin": {
+ "version": "4.0.1",
+ "bundled": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "brorand": "1.1.0"
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "bundled": true
+ },
+ "mime-db": {
+ "version": "1.30.0",
+ "bundled": true
+ },
+ "mime-types": {
+ "version": "2.1.17",
+ "bundled": true,
+ "requires": {
+ "mime-db": "1.30.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "minimalistic-assert": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "multicast-dns": {
+ "version": "6.2.1",
+ "bundled": true,
+ "requires": {
+ "dns-packet": "1.2.2",
+ "thunky": "0.1.0"
+ }
+ },
+ "multicast-dns-service-types": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "mute-stream": {
+ "version": "0.0.7",
+ "bundled": true
+ },
+ "nan": {
+ "version": "2.8.0",
+ "bundled": true
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "bundled": true
+ },
+ "ncname": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "xml-char-classes": "1.0.0"
+ }
+ },
+ "negotiator": {
+ "version": "0.6.1",
+ "bundled": true
+ },
+ "nested-error-stacks": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "no-case": {
+ "version": "2.3.2",
+ "bundled": true,
+ "requires": {
+ "lower-case": "1.1.4"
+ }
+ },
+ "node-fetch": {
+ "version": "1.7.3",
+ "bundled": true,
+ "requires": {
+ "encoding": "0.1.12",
+ "is-stream": "1.1.0"
+ }
+ },
+ "node-forge": {
+ "version": "0.6.33",
+ "bundled": true
+ },
+ "node-gyp": {
+ "version": "3.6.2",
+ "bundled": true,
+ "requires": {
+ "fstream": "1.0.11",
+ "glob": "7.1.2",
+ "graceful-fs": "4.1.11",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "nopt": "3.0.6",
+ "npmlog": "4.1.2",
+ "osenv": "0.1.4",
+ "request": "2.83.0",
+ "rimraf": "2.6.2",
+ "semver": "5.3.0",
+ "tar": "2.2.1",
+ "which": "1.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.3.0",
+ "bundled": true
+ }
+ }
+ },
+ "node-int64": {
+ "version": "0.4.0",
+ "bundled": true
+ },
+ "node-libs-browser": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "assert": "1.4.1",
+ "browserify-zlib": "0.2.0",
+ "buffer": "4.9.1",
+ "console-browserify": "1.1.0",
+ "constants-browserify": "1.0.0",
+ "crypto-browserify": "3.12.0",
+ "domain-browser": "1.1.7",
+ "events": "1.1.1",
+ "https-browserify": "1.0.0",
+ "os-browserify": "0.3.0",
+ "path-browserify": "0.0.0",
+ "process": "0.11.10",
+ "punycode": "1.4.1",
+ "querystring-es3": "0.2.1",
+ "readable-stream": "2.3.3",
+ "stream-browserify": "2.0.1",
+ "stream-http": "2.7.2",
+ "string_decoder": "1.0.3",
+ "timers-browserify": "2.0.4",
+ "tty-browserify": "0.0.0",
+ "url": "0.11.0",
+ "util": "0.10.3",
+ "vm-browserify": "0.0.4"
+ }
+ },
+ "node-notifier": {
+ "version": "5.1.2",
+ "bundled": true,
+ "requires": {
+ "growly": "1.3.0",
+ "semver": "5.4.1",
+ "shellwords": "0.1.1",
+ "which": "1.3.0"
+ }
+ },
+ "node-sass": {
+ "version": "4.7.2",
+ "bundled": true,
+ "requires": {
+ "async-foreach": "0.1.3",
+ "chalk": "1.1.3",
+ "cross-spawn": "3.0.1",
+ "gaze": "1.1.2",
+ "get-stdin": "4.0.1",
+ "glob": "7.1.2",
+ "in-publish": "2.0.0",
+ "lodash.assign": "4.2.0",
+ "lodash.clonedeep": "4.5.0",
+ "lodash.mergewith": "4.6.0",
+ "meow": "3.7.0",
+ "mkdirp": "0.5.1",
+ "nan": "2.8.0",
+ "node-gyp": "3.6.2",
+ "npmlog": "4.1.2",
+ "request": "2.79.0",
+ "sass-graph": "2.2.4",
+ "stdout-stream": "1.4.0",
+ "true-case-path": "1.0.2"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "0.2.0",
+ "bundled": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "bundled": true
+ },
+ "boom": {
+ "version": "2.10.1",
+ "bundled": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "caseless": {
+ "version": "0.11.0",
+ "bundled": true
+ },
+ "cross-spawn": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "lru-cache": "4.1.1",
+ "which": "1.3.0"
+ }
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "bundled": true,
+ "requires": {
+ "boom": "2.10.1"
+ }
+ },
+ "form-data": {
+ "version": "2.1.4",
+ "bundled": true,
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.5",
+ "mime-types": "2.1.17"
+ }
+ },
+ "har-validator": {
+ "version": "2.0.6",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "commander": "2.12.2",
+ "is-my-json-valid": "2.17.1",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "bundled": true,
+ "requires": {
+ "boom": "2.10.1",
+ "cryptiles": "2.0.5",
+ "hoek": "2.16.3",
+ "sntp": "1.0.9"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "bundled": true
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "assert-plus": "0.2.0",
+ "jsprim": "1.4.1",
+ "sshpk": "1.13.1"
+ }
+ },
+ "qs": {
+ "version": "6.3.2",
+ "bundled": true
+ },
+ "request": {
+ "version": "2.79.0",
+ "bundled": true,
+ "requires": {
+ "aws-sign2": "0.6.0",
+ "aws4": "1.6.0",
+ "caseless": "0.11.0",
+ "combined-stream": "1.0.5",
+ "extend": "3.0.1",
+ "forever-agent": "0.6.1",
+ "form-data": "2.1.4",
+ "har-validator": "2.0.6",
+ "hawk": "3.1.3",
+ "http-signature": "1.1.1",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.17",
+ "oauth-sign": "0.8.2",
+ "qs": "6.3.2",
+ "stringstream": "0.0.5",
+ "tough-cookie": "2.3.3",
+ "tunnel-agent": "0.4.3",
+ "uuid": "3.1.0"
+ }
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "bundled": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.4.3",
+ "bundled": true
+ }
+ }
+ },
+ "node-sass-chokidar": {
+ "version": "0.0.3",
+ "bundled": true,
+ "requires": {
+ "async-foreach": "0.1.3",
+ "chokidar": "1.7.0",
+ "get-stdin": "4.0.1",
+ "glob": "7.1.2",
+ "meow": "3.7.0",
+ "node-sass": "4.7.2",
+ "sass-graph": "2.2.4",
+ "stdout-stream": "1.4.0"
+ }
+ },
+ "node-status-codes": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "bundled": true,
+ "requires": {
+ "abbrev": "1.1.1"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "bundled": true,
+ "requires": {
+ "hosted-git-info": "2.5.0",
+ "is-builtin-module": "1.0.0",
+ "semver": "5.4.1",
+ "validate-npm-package-license": "3.0.1"
+ }
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "bundled": true,
+ "requires": {
+ "remove-trailing-separator": "1.1.0"
+ }
+ },
+ "normalize-range": {
+ "version": "0.1.2",
+ "bundled": true
+ },
+ "normalize-url": {
+ "version": "1.9.1",
+ "bundled": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "prepend-http": "1.0.4",
+ "query-string": "4.3.4",
+ "sort-keys": "1.1.2"
+ }
+ },
+ "npm-run-all": {
+ "version": "4.1.2",
+ "bundled": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "chalk": "2.3.0",
+ "cross-spawn": "5.1.0",
+ "memorystream": "0.3.1",
+ "minimatch": "3.0.4",
+ "ps-tree": "1.1.0",
+ "read-pkg": "3.0.0",
+ "shell-quote": "1.6.1",
+ "string.prototype.padend": "3.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ },
+ "load-json-file": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "4.0.0",
+ "pify": "3.0.0",
+ "strip-bom": "3.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "error-ex": "1.3.1",
+ "json-parse-better-errors": "1.0.1"
+ }
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "pify": "3.0.0"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "read-pkg": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "load-json-file": "4.0.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "3.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "path-key": "2.0.1"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "bundled": true,
+ "requires": {
+ "are-we-there-yet": "1.1.4",
+ "console-control-strings": "1.1.0",
+ "gauge": "2.7.4",
+ "set-blocking": "2.0.0"
+ }
+ },
+ "nth-check": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "boolbase": "1.0.0"
+ }
+ },
+ "num2fraction": {
+ "version": "1.2.2",
+ "bundled": true
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "nwmatcher": {
+ "version": "1.4.3",
+ "bundled": true
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "bundled": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true
+ },
+ "object-hash": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "object-keys": {
+ "version": "1.0.11",
+ "bundled": true
+ },
+ "object.omit": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "for-own": "0.1.5",
+ "is-extendable": "0.1.1"
+ }
+ },
+ "obuf": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "mimic-fn": "1.1.0"
+ }
+ },
+ "opn": {
+ "version": "5.1.0",
+ "bundled": true,
+ "requires": {
+ "is-wsl": "1.1.0"
+ }
+ },
+ "optimist": {
+ "version": "0.6.1",
+ "bundled": true,
+ "requires": {
+ "minimist": "0.0.8",
+ "wordwrap": "0.0.3"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "0.0.3",
+ "bundled": true
+ }
+ }
+ },
+ "optionator": {
+ "version": "0.8.2",
+ "bundled": true,
+ "requires": {
+ "deep-is": "0.1.3",
+ "fast-levenshtein": "2.0.6",
+ "levn": "0.3.0",
+ "prelude-ls": "1.1.2",
+ "type-check": "0.3.2",
+ "wordwrap": "1.0.0"
+ }
+ },
+ "original": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "url-parse": "1.0.5"
+ },
+ "dependencies": {
+ "url-parse": {
+ "version": "1.0.5",
+ "bundled": true,
+ "requires": {
+ "querystringify": "0.0.4",
+ "requires-port": "1.0.0"
+ }
+ }
+ }
+ },
+ "os-browserify": {
+ "version": "0.3.0",
+ "bundled": true
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "os-locale": {
+ "version": "1.4.0",
+ "bundled": true,
+ "requires": {
+ "lcid": "1.0.0"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "osenv": {
+ "version": "0.1.4",
+ "bundled": true,
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "output-file-sync": {
+ "version": "1.1.2",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "mkdirp": "0.5.1",
+ "object-assign": "4.1.1"
+ }
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "p-limit": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "p-limit": "1.1.0"
+ }
+ },
+ "p-map": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "package-json": {
+ "version": "2.4.0",
+ "bundled": true,
+ "requires": {
+ "got": "5.7.1",
+ "registry-auth-token": "3.3.1",
+ "registry-url": "3.1.0",
+ "semver": "5.4.1"
+ }
+ },
+ "pako": {
+ "version": "1.0.6",
+ "bundled": true
+ },
+ "param-case": {
+ "version": "2.1.1",
+ "bundled": true,
+ "requires": {
+ "no-case": "2.3.2"
+ }
+ },
+ "parse-asn1": {
+ "version": "5.1.0",
+ "bundled": true,
+ "requires": {
+ "asn1.js": "4.9.2",
+ "browserify-aes": "1.1.1",
+ "create-hash": "1.1.3",
+ "evp_bytestokey": "1.0.3",
+ "pbkdf2": "3.0.14"
+ }
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "bundled": true,
+ "requires": {
+ "glob-base": "0.3.0",
+ "is-dotfile": "1.0.3",
+ "is-extglob": "1.0.0",
+ "is-glob": "2.0.1"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "bundled": true,
+ "requires": {
+ "error-ex": "1.3.1"
+ }
+ },
+ "parse-passwd": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "parse5": {
+ "version": "1.5.1",
+ "bundled": true
+ },
+ "parseurl": {
+ "version": "1.3.2",
+ "bundled": true
+ },
+ "path-browserify": {
+ "version": "0.0.0",
+ "bundled": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "bundled": true
+ },
+ "path-parse": {
+ "version": "1.0.5",
+ "bundled": true
+ },
+ "path-to-regexp": {
+ "version": "1.7.0",
+ "bundled": true,
+ "requires": {
+ "isarray": "0.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "pause-stream": {
+ "version": "0.0.11",
+ "bundled": true,
+ "requires": {
+ "through": "2.3.8"
+ }
+ },
+ "pbkdf2": {
+ "version": "3.0.14",
+ "bundled": true,
+ "requires": {
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "ripemd160": "2.0.1",
+ "safe-buffer": "5.1.1",
+ "sha.js": "2.4.9"
+ }
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "bundled": true
+ },
+ "pify": {
+ "version": "2.3.0",
+ "bundled": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "bundled": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "pinkie": "2.0.4"
+ }
+ },
+ "pkg-dir": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "find-up": "2.1.0"
+ }
+ },
+ "pluralize": {
+ "version": "7.0.0",
+ "bundled": true
+ },
+ "portfinder": {
+ "version": "1.0.13",
+ "bundled": true,
+ "requires": {
+ "async": "1.5.2",
+ "debug": "2.6.9",
+ "mkdirp": "0.5.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "bundled": true
+ }
+ }
+ },
+ "postcss": {
+ "version": "6.0.14",
+ "bundled": true,
+ "requires": {
+ "chalk": "2.3.0",
+ "source-map": "0.6.1",
+ "supports-color": "4.5.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ }
+ }
+ },
+ "postcss-calc": {
+ "version": "5.3.1",
+ "bundled": true,
+ "requires": {
+ "postcss": "5.2.18",
+ "postcss-message-helpers": "2.0.0",
+ "reduce-css-calc": "1.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-colormin": {
+ "version": "2.2.2",
+ "bundled": true,
+ "requires": {
+ "colormin": "1.1.2",
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-convert-values": {
+ "version": "2.6.1",
+ "bundled": true,
+ "requires": {
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-discard-comments": {
+ "version": "2.0.4",
+ "bundled": true,
+ "requires": {
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-discard-duplicates": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-discard-empty": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-discard-overridden": {
+ "version": "0.1.1",
+ "bundled": true,
+ "requires": {
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-discard-unused": {
+ "version": "2.2.3",
+ "bundled": true,
+ "requires": {
+ "postcss": "5.2.18",
+ "uniqs": "2.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-filter-plugins": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "postcss": "5.2.18",
+ "uniqid": "4.1.1"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-flexbugs-fixes": {
+ "version": "3.2.0",
+ "bundled": true,
+ "requires": {
+ "postcss": "6.0.14"
+ }
+ },
+ "postcss-load-config": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "cosmiconfig": "2.2.2",
+ "object-assign": "4.1.1",
+ "postcss-load-options": "1.2.0",
+ "postcss-load-plugins": "2.3.0"
+ }
+ },
+ "postcss-load-options": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "cosmiconfig": "2.2.2",
+ "object-assign": "4.1.1"
+ }
+ },
+ "postcss-load-plugins": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "cosmiconfig": "2.2.2",
+ "object-assign": "4.1.1"
+ }
+ },
+ "postcss-loader": {
+ "version": "2.0.8",
+ "bundled": true,
+ "requires": {
+ "loader-utils": "1.1.0",
+ "postcss": "6.0.14",
+ "postcss-load-config": "1.2.0",
+ "schema-utils": "0.3.0"
+ }
+ },
+ "postcss-merge-idents": {
+ "version": "2.1.7",
+ "bundled": true,
+ "requires": {
+ "has": "1.0.1",
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-merge-longhand": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-merge-rules": {
+ "version": "2.1.2",
+ "bundled": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-api": "1.6.1",
+ "postcss": "5.2.18",
+ "postcss-selector-parser": "2.2.3",
+ "vendors": "1.0.1"
+ },
+ "dependencies": {
+ "browserslist": {
+ "version": "1.7.7",
+ "bundled": true,
+ "requires": {
+ "caniuse-db": "1.0.30000784",
+ "electron-to-chromium": "1.3.29"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-message-helpers": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "postcss-minify-font-values": {
+ "version": "1.0.5",
+ "bundled": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-minify-gradients": {
+ "version": "1.0.5",
+ "bundled": true,
+ "requires": {
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-minify-params": {
+ "version": "1.2.2",
+ "bundled": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0",
+ "uniqs": "2.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-minify-selectors": {
+ "version": "2.1.1",
+ "bundled": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "has": "1.0.1",
+ "postcss": "5.2.18",
+ "postcss-selector-parser": "2.2.3"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-modules-extract-imports": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "postcss": "6.0.14"
+ }
+ },
+ "postcss-modules-local-by-default": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "css-selector-tokenizer": "0.7.0",
+ "postcss": "6.0.14"
+ }
+ },
+ "postcss-modules-scope": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "css-selector-tokenizer": "0.7.0",
+ "postcss": "6.0.14"
+ }
+ },
+ "postcss-modules-values": {
+ "version": "1.3.0",
+ "bundled": true,
+ "requires": {
+ "icss-replace-symbols": "1.1.0",
+ "postcss": "6.0.14"
+ }
+ },
+ "postcss-normalize-charset": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-normalize-url": {
+ "version": "3.0.8",
+ "bundled": true,
+ "requires": {
+ "is-absolute-url": "2.1.0",
+ "normalize-url": "1.9.1",
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-ordered-values": {
+ "version": "2.2.3",
+ "bundled": true,
+ "requires": {
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-reduce-idents": {
+ "version": "2.4.0",
+ "bundled": true,
+ "requires": {
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-reduce-initial": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-reduce-transforms": {
+ "version": "1.0.4",
+ "bundled": true,
+ "requires": {
+ "has": "1.0.1",
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "2.2.3",
+ "bundled": true,
+ "requires": {
+ "flatten": "1.0.2",
+ "indexes-of": "1.0.1",
+ "uniq": "1.0.1"
+ }
+ },
+ "postcss-svgo": {
+ "version": "2.1.6",
+ "bundled": true,
+ "requires": {
+ "is-svg": "2.1.0",
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0",
+ "svgo": "0.7.2"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-unique-selectors": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "postcss": "5.2.18",
+ "uniqs": "2.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-value-parser": {
+ "version": "3.3.0",
+ "bundled": true
+ },
+ "postcss-zindex": {
+ "version": "2.2.0",
+ "bundled": true,
+ "requires": {
+ "has": "1.0.1",
+ "postcss": "5.2.18",
+ "uniqs": "2.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "bundled": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "bundled": true
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "bundled": true
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "bundled": true
+ },
+ "pretty-bytes": {
+ "version": "4.0.2",
+ "bundled": true
+ },
+ "pretty-error": {
+ "version": "2.1.1",
+ "bundled": true,
+ "requires": {
+ "renderkid": "2.0.1",
+ "utila": "0.4.0"
+ }
+ },
+ "pretty-format": {
+ "version": "20.0.3",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "2.1.1",
+ "ansi-styles": "3.2.0"
+ }
+ },
+ "private": {
+ "version": "0.1.8",
+ "bundled": true
+ },
+ "process": {
+ "version": "0.11.10",
+ "bundled": true
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "bundled": true
+ },
+ "progress": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "promise": {
+ "version": "7.3.1",
+ "bundled": true,
+ "requires": {
+ "asap": "2.0.6"
+ }
+ },
+ "prop-types": {
+ "version": "15.6.0",
+ "bundled": true,
+ "requires": {
+ "fbjs": "0.8.16",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1"
+ }
+ },
+ "proxy-addr": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "forwarded": "0.1.2",
+ "ipaddr.js": "1.5.2"
+ }
+ },
+ "prr": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "ps-tree": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "event-stream": "3.3.4"
+ }
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "public-encrypt": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "browserify-rsa": "4.0.1",
+ "create-hash": "1.1.3",
+ "parse-asn1": "5.1.0",
+ "randombytes": "2.0.5"
+ }
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "bundled": true
+ },
+ "q": {
+ "version": "1.5.1",
+ "bundled": true
+ },
+ "qs": {
+ "version": "6.5.1",
+ "bundled": true
+ },
+ "query-string": {
+ "version": "4.3.4",
+ "bundled": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "strict-uri-encode": "1.1.0"
+ }
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "bundled": true
+ },
+ "querystring-es3": {
+ "version": "0.2.1",
+ "bundled": true
+ },
+ "querystringify": {
+ "version": "0.0.4",
+ "bundled": true
+ },
+ "raf": {
+ "version": "3.4.0",
+ "bundled": true,
+ "requires": {
+ "performance-now": "2.1.0"
+ }
+ },
+ "randomatic": {
+ "version": "1.1.7",
+ "bundled": true,
+ "requires": {
+ "is-number": "3.0.0",
+ "kind-of": "4.0.0"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "bundled": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "randombytes": {
+ "version": "2.0.5",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "randomfill": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "randombytes": "2.0.5",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "range-parser": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "raw-body": {
+ "version": "2.3.2",
+ "bundled": true,
+ "requires": {
+ "bytes": "3.0.0",
+ "http-errors": "1.6.2",
+ "iconv-lite": "0.4.19",
+ "unpipe": "1.0.0"
+ }
+ },
+ "rc": {
+ "version": "1.2.2",
+ "bundled": true,
+ "requires": {
+ "deep-extend": "0.4.2",
+ "ini": "1.3.5",
+ "minimist": "1.2.0",
+ "strip-json-comments": "2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true
+ }
+ }
+ },
+ "react": {
+ "version": "16.2.0",
+ "bundled": true,
+ "requires": {
+ "fbjs": "0.8.16",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1",
+ "prop-types": "15.6.0"
+ },
+ "dependencies": {
+ "prop-types": {
+ "version": "15.6.0",
+ "bundled": true,
+ "requires": {
+ "fbjs": "0.8.16",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1"
+ }
+ }
+ }
+ },
+ "react-dev-utils": {
+ "version": "4.2.1",
+ "bundled": true,
+ "requires": {
+ "address": "1.0.3",
+ "babel-code-frame": "6.26.0",
+ "chalk": "1.1.3",
+ "cross-spawn": "5.1.0",
+ "detect-port-alt": "1.1.3",
+ "escape-string-regexp": "1.0.5",
+ "filesize": "3.5.11",
+ "global-modules": "1.0.0",
+ "gzip-size": "3.0.0",
+ "inquirer": "3.3.0",
+ "is-root": "1.0.0",
+ "opn": "5.1.0",
+ "react-error-overlay": "3.0.0",
+ "recursive-readdir": "2.2.1",
+ "shell-quote": "1.6.1",
+ "sockjs-client": "1.1.4",
+ "strip-ansi": "3.0.1",
+ "text-table": "0.2.0"
+ }
+ },
+ "react-dom": {
+ "version": "16.2.0",
+ "bundled": true,
+ "requires": {
+ "fbjs": "0.8.16",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1",
+ "prop-types": "15.6.0"
+ },
+ "dependencies": {
+ "prop-types": {
+ "version": "15.6.0",
+ "bundled": true,
+ "requires": {
+ "fbjs": "0.8.16",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1"
+ }
+ }
+ }
+ },
+ "react-error-overlay": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "react-hammerjs": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "hammerjs": "2.0.8"
+ }
+ },
+ "react-scripts": {
+ "version": "1.0.17",
+ "bundled": true,
+ "requires": {
+ "autoprefixer": "7.1.6",
+ "babel-core": "6.26.0",
+ "babel-eslint": "7.2.3",
+ "babel-jest": "20.0.3",
+ "babel-loader": "7.1.2",
+ "babel-preset-react-app": "3.1.0",
+ "babel-runtime": "6.26.0",
+ "case-sensitive-paths-webpack-plugin": "2.1.1",
+ "chalk": "1.1.3",
+ "css-loader": "0.28.7",
+ "dotenv": "4.0.0",
+ "eslint": "4.10.0",
+ "eslint-config-react-app": "2.0.1",
+ "eslint-loader": "1.9.0",
+ "eslint-plugin-flowtype": "2.39.1",
+ "eslint-plugin-import": "2.8.0",
+ "eslint-plugin-jsx-a11y": "5.1.1",
+ "eslint-plugin-react": "7.4.0",
+ "extract-text-webpack-plugin": "3.0.2",
+ "file-loader": "1.1.5",
+ "fs-extra": "3.0.1",
+ "html-webpack-plugin": "2.29.0",
+ "jest": "20.0.4",
+ "object-assign": "4.1.1",
+ "postcss-flexbugs-fixes": "3.2.0",
+ "postcss-loader": "2.0.8",
+ "promise": "8.0.1",
+ "raf": "3.4.0",
+ "react-dev-utils": "4.2.1",
+ "style-loader": "0.19.0",
+ "sw-precache-webpack-plugin": "0.11.4",
+ "url-loader": "0.6.2",
+ "webpack": "3.8.1",
+ "webpack-dev-server": "2.9.4",
+ "webpack-manifest-plugin": "1.3.2",
+ "whatwg-fetch": "2.0.3"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "bundled": true
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "bundled": true,
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wrap-ansi": "2.1.0"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "strip-bom": "3.0.0"
+ }
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "execa": "0.7.0",
+ "lcid": "1.0.0",
+ "mem": "1.1.0"
+ }
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "pify": "2.3.0"
+ }
+ },
+ "promise": {
+ "version": "8.0.1",
+ "bundled": true,
+ "requires": {
+ "asap": "2.0.6"
+ }
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "load-json-file": "2.0.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "2.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "find-up": "2.1.0",
+ "read-pkg": "2.0.0"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "bundled": true,
+ "requires": {
+ "source-map": "0.5.7",
+ "uglify-to-browserify": "1.0.2",
+ "yargs": "3.10.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "1.2.1",
+ "bundled": true
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "center-align": "0.1.3",
+ "right-align": "0.1.3",
+ "wordwrap": "0.0.2"
+ }
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "bundled": true,
+ "requires": {
+ "camelcase": "1.2.1",
+ "cliui": "2.1.0",
+ "decamelize": "1.2.0",
+ "window-size": "0.1.0"
+ }
+ }
+ }
+ },
+ "webpack": {
+ "version": "3.8.1",
+ "bundled": true,
+ "requires": {
+ "acorn": "5.2.1",
+ "acorn-dynamic-import": "2.0.2",
+ "ajv": "5.5.2",
+ "ajv-keywords": "2.1.1",
+ "async": "2.6.0",
+ "enhanced-resolve": "3.4.1",
+ "escope": "3.6.0",
+ "interpret": "1.1.0",
+ "json-loader": "0.5.7",
+ "json5": "0.5.1",
+ "loader-runner": "2.3.0",
+ "loader-utils": "1.1.0",
+ "memory-fs": "0.4.1",
+ "mkdirp": "0.5.1",
+ "node-libs-browser": "2.1.0",
+ "source-map": "0.5.7",
+ "supports-color": "4.5.0",
+ "tapable": "0.2.8",
+ "uglifyjs-webpack-plugin": "0.4.6",
+ "watchpack": "1.4.0",
+ "webpack-sources": "1.1.0",
+ "yargs": "8.0.2"
+ },
+ "dependencies": {
+ "uglifyjs-webpack-plugin": {
+ "version": "0.4.6",
+ "bundled": true,
+ "requires": {
+ "source-map": "0.5.7",
+ "uglify-js": "2.8.29",
+ "webpack-sources": "1.1.0"
+ }
+ }
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "wordwrap": {
+ "version": "0.0.2",
+ "bundled": true
+ },
+ "yargs": {
+ "version": "8.0.2",
+ "bundled": true,
+ "requires": {
+ "camelcase": "4.1.0",
+ "cliui": "3.2.0",
+ "decamelize": "1.2.0",
+ "get-caller-file": "1.0.2",
+ "os-locale": "2.1.0",
+ "read-pkg-up": "2.0.0",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "2.1.1",
+ "which-module": "2.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "7.0.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "7.0.0",
+ "bundled": true,
+ "requires": {
+ "camelcase": "4.1.0"
+ }
+ }
+ }
+ },
+ "read-all-stream": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "pinkie-promise": "2.0.1",
+ "readable-stream": "2.3.3"
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "bundled": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.3",
+ "bundled": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.0.3",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "readdirp": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "minimatch": "3.0.4",
+ "readable-stream": "2.3.3",
+ "set-immediate-shim": "1.0.1"
+ }
+ },
+ "recursive-readdir": {
+ "version": "2.2.1",
+ "bundled": true,
+ "requires": {
+ "minimatch": "3.0.3"
+ },
+ "dependencies": {
+ "minimatch": {
+ "version": "3.0.3",
+ "bundled": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ }
+ }
+ },
+ "redent": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "indent-string": "2.1.0",
+ "strip-indent": "1.0.1"
+ }
+ },
+ "reduce-css-calc": {
+ "version": "1.3.0",
+ "bundled": true,
+ "requires": {
+ "balanced-match": "0.4.2",
+ "math-expression-evaluator": "1.2.17",
+ "reduce-function-call": "1.0.2"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.4.2",
+ "bundled": true
+ }
+ }
+ },
+ "reduce-function-call": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "balanced-match": "0.4.2"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.4.2",
+ "bundled": true
+ }
+ }
+ },
+ "regenerate": {
+ "version": "1.3.3",
+ "bundled": true
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "bundled": true
+ },
+ "regenerator-transform": {
+ "version": "0.10.1",
+ "bundled": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "private": "0.1.8"
+ }
+ },
+ "regex-cache": {
+ "version": "0.4.4",
+ "bundled": true,
+ "requires": {
+ "is-equal-shallow": "0.1.3"
+ }
+ },
+ "regexpu-core": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "regenerate": "1.3.3",
+ "regjsgen": "0.2.0",
+ "regjsparser": "0.1.5"
+ }
+ },
+ "registry-auth-token": {
+ "version": "3.3.1",
+ "bundled": true,
+ "requires": {
+ "rc": "1.2.2",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "registry-url": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "rc": "1.2.2"
+ }
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "bundled": true
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "bundled": true,
+ "requires": {
+ "jsesc": "0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "bundled": true
+ }
+ }
+ },
+ "relateurl": {
+ "version": "0.2.7",
+ "bundled": true
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "renderkid": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "css-select": "1.2.0",
+ "dom-converter": "0.1.4",
+ "htmlparser2": "3.3.0",
+ "strip-ansi": "3.0.1",
+ "utila": "0.3.3"
+ },
+ "dependencies": {
+ "utila": {
+ "version": "0.3.3",
+ "bundled": true
+ }
+ }
+ },
+ "repeat-element": {
+ "version": "1.1.2",
+ "bundled": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "bundled": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "is-finite": "1.0.2"
+ }
+ },
+ "request": {
+ "version": "2.83.0",
+ "bundled": true,
+ "requires": {
+ "aws-sign2": "0.7.0",
+ "aws4": "1.6.0",
+ "caseless": "0.12.0",
+ "combined-stream": "1.0.5",
+ "extend": "3.0.1",
+ "forever-agent": "0.6.1",
+ "form-data": "2.3.1",
+ "har-validator": "5.0.3",
+ "hawk": "6.0.2",
+ "http-signature": "1.2.0",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.17",
+ "oauth-sign": "0.8.2",
+ "performance-now": "2.1.0",
+ "qs": "6.5.1",
+ "safe-buffer": "5.1.1",
+ "stringstream": "0.0.5",
+ "tough-cookie": "2.3.3",
+ "tunnel-agent": "0.6.0",
+ "uuid": "3.1.0"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "bundled": true
+ },
+ "require-from-string": {
+ "version": "1.2.1",
+ "bundled": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "require-uncached": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "caller-path": "0.1.0",
+ "resolve-from": "1.0.1"
+ }
+ },
+ "requires-port": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "resolve": {
+ "version": "1.5.0",
+ "bundled": true,
+ "requires": {
+ "path-parse": "1.0.5"
+ }
+ },
+ "resolve-cwd": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "resolve-from": "3.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "3.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "resolve-dir": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "expand-tilde": "2.0.2",
+ "global-modules": "1.0.0"
+ }
+ },
+ "resolve-from": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "onetime": "2.0.1",
+ "signal-exit": "3.0.2"
+ }
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "bundled": true,
+ "requires": {
+ "align-text": "0.1.4"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "bundled": true,
+ "requires": {
+ "glob": "7.1.2"
+ }
+ },
+ "ripemd160": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "hash-base": "2.0.2",
+ "inherits": "2.0.3"
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "is-promise": "2.1.0"
+ }
+ },
+ "rx-lite": {
+ "version": "4.0.8",
+ "bundled": true
+ },
+ "rx-lite-aggregates": {
+ "version": "4.0.8",
+ "bundled": true,
+ "requires": {
+ "rx-lite": "4.0.8"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "bundled": true
+ },
+ "sane": {
+ "version": "1.6.0",
+ "bundled": true,
+ "requires": {
+ "anymatch": "1.3.2",
+ "exec-sh": "0.2.1",
+ "fb-watchman": "1.9.2",
+ "minimatch": "3.0.4",
+ "minimist": "1.2.0",
+ "walker": "1.0.7",
+ "watch": "0.10.0"
+ },
+ "dependencies": {
+ "bser": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "node-int64": "0.4.0"
+ }
+ },
+ "fb-watchman": {
+ "version": "1.9.2",
+ "bundled": true,
+ "requires": {
+ "bser": "1.0.2"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true
+ }
+ }
+ },
+ "sass-graph": {
+ "version": "2.2.4",
+ "bundled": true,
+ "requires": {
+ "glob": "7.1.2",
+ "lodash": "4.17.4",
+ "scss-tokenizer": "0.2.3",
+ "yargs": "7.1.0"
+ }
+ },
+ "sax": {
+ "version": "1.2.4",
+ "bundled": true
+ },
+ "schema-utils": {
+ "version": "0.3.0",
+ "bundled": true,
+ "requires": {
+ "ajv": "5.5.2"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "5.5.2",
+ "bundled": true,
+ "requires": {
+ "co": "4.6.0",
+ "fast-deep-equal": "1.0.0",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1"
+ }
+ }
+ }
+ },
+ "scss-tokenizer": {
+ "version": "0.2.3",
+ "bundled": true,
+ "requires": {
+ "js-base64": "2.4.0",
+ "source-map": "0.4.4"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.4.4",
+ "bundled": true,
+ "requires": {
+ "amdefine": "1.0.1"
+ }
+ }
+ }
+ },
+ "select-hose": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "selfsigned": {
+ "version": "1.10.1",
+ "bundled": true,
+ "requires": {
+ "node-forge": "0.6.33"
+ }
+ },
+ "semver": {
+ "version": "5.4.1",
+ "bundled": true
+ },
+ "semver-diff": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "semver": "5.4.1"
+ }
+ },
+ "send": {
+ "version": "0.16.1",
+ "bundled": true,
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "1.1.1",
+ "destroy": "1.0.4",
+ "encodeurl": "1.0.1",
+ "escape-html": "1.0.3",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "1.6.2",
+ "mime": "1.4.1",
+ "ms": "2.0.0",
+ "on-finished": "2.3.0",
+ "range-parser": "1.2.0",
+ "statuses": "1.3.1"
+ },
+ "dependencies": {
+ "mime": {
+ "version": "1.4.1",
+ "bundled": true
+ }
+ }
+ },
+ "serve-index": {
+ "version": "1.9.1",
+ "bundled": true,
+ "requires": {
+ "accepts": "1.3.4",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
+ "escape-html": "1.0.3",
+ "http-errors": "1.6.2",
+ "mime-types": "2.1.17",
+ "parseurl": "1.3.2"
+ }
+ },
+ "serve-static": {
+ "version": "1.13.1",
+ "bundled": true,
+ "requires": {
+ "encodeurl": "1.0.1",
+ "escape-html": "1.0.3",
+ "parseurl": "1.3.2",
+ "send": "0.16.1"
+ }
+ },
+ "serviceworker-cache-polyfill": {
+ "version": "4.0.0",
+ "bundled": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "set-immediate-shim": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "bundled": true
+ },
+ "setprototypeof": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "sha.js": {
+ "version": "2.4.9",
+ "bundled": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "shebang-regex": "1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "shell-quote": {
+ "version": "1.6.1",
+ "bundled": true,
+ "requires": {
+ "array-filter": "0.0.1",
+ "array-map": "0.0.0",
+ "array-reduce": "0.0.0",
+ "jsonify": "0.0.0"
+ }
+ },
+ "shellwords": {
+ "version": "0.1.1",
+ "bundled": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true
+ },
+ "slash": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "slice-ansi": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0"
+ }
+ },
+ "slide": {
+ "version": "1.1.6",
+ "bundled": true
+ },
+ "sntp": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "hoek": "4.2.0"
+ }
+ },
+ "sockjs": {
+ "version": "0.3.18",
+ "bundled": true,
+ "requires": {
+ "faye-websocket": "0.10.0",
+ "uuid": "2.0.3"
+ },
+ "dependencies": {
+ "faye-websocket": {
+ "version": "0.10.0",
+ "bundled": true,
+ "requires": {
+ "websocket-driver": "0.7.0"
+ }
+ },
+ "uuid": {
+ "version": "2.0.3",
+ "bundled": true
+ }
+ }
+ },
+ "sockjs-client": {
+ "version": "1.1.4",
+ "bundled": true,
+ "requires": {
+ "debug": "2.6.9",
+ "eventsource": "0.1.6",
+ "faye-websocket": "0.11.1",
+ "inherits": "2.0.3",
+ "json3": "3.3.2",
+ "url-parse": "1.2.0"
+ }
+ },
+ "sort-keys": {
+ "version": "1.1.2",
+ "bundled": true,
+ "requires": {
+ "is-plain-obj": "1.1.0"
+ }
+ },
+ "source-list-map": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "bundled": true
+ },
+ "source-map-support": {
+ "version": "0.4.18",
+ "bundled": true,
+ "requires": {
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true
+ }
+ }
+ },
+ "spdx-correct": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "spdx-license-ids": "1.2.2"
+ }
+ },
+ "spdx-expression-parse": {
+ "version": "1.0.4",
+ "bundled": true
+ },
+ "spdx-license-ids": {
+ "version": "1.2.2",
+ "bundled": true
+ },
+ "spdy": {
+ "version": "3.4.7",
+ "bundled": true,
+ "requires": {
+ "debug": "2.6.9",
+ "handle-thing": "1.2.5",
+ "http-deceiver": "1.2.7",
+ "safe-buffer": "5.1.1",
+ "select-hose": "2.0.0",
+ "spdy-transport": "2.0.20"
+ }
+ },
+ "spdy-transport": {
+ "version": "2.0.20",
+ "bundled": true,
+ "requires": {
+ "debug": "2.6.9",
+ "detect-node": "2.0.3",
+ "hpack.js": "2.1.6",
+ "obuf": "1.1.1",
+ "readable-stream": "2.3.3",
+ "safe-buffer": "5.1.1",
+ "wbuf": "1.7.2"
+ }
+ },
+ "split": {
+ "version": "0.3.3",
+ "bundled": true,
+ "requires": {
+ "through": "2.3.8"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "bundled": true
+ },
+ "sshpk": {
+ "version": "1.13.1",
+ "bundled": true,
+ "requires": {
+ "asn1": "0.2.3",
+ "assert-plus": "1.0.0",
+ "bcrypt-pbkdf": "1.0.1",
+ "dashdash": "1.14.1",
+ "ecc-jsbn": "0.1.1",
+ "getpass": "0.1.7",
+ "jsbn": "0.1.1",
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "statuses": {
+ "version": "1.3.1",
+ "bundled": true
+ },
+ "stdout-stream": {
+ "version": "1.4.0",
+ "bundled": true,
+ "requires": {
+ "readable-stream": "2.3.3"
+ }
+ },
+ "stream-browserify": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.3"
+ }
+ },
+ "stream-combiner": {
+ "version": "0.0.4",
+ "bundled": true,
+ "requires": {
+ "duplexer": "0.1.1"
+ }
+ },
+ "stream-http": {
+ "version": "2.7.2",
+ "bundled": true,
+ "requires": {
+ "builtin-status-codes": "3.0.0",
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.3",
+ "to-arraybuffer": "1.0.1",
+ "xtend": "4.0.1"
+ }
+ },
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "string-length": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "bundled": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ }
+ }
+ },
+ "string.prototype.padend": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "define-properties": "1.1.2",
+ "es-abstract": "1.10.0",
+ "function-bind": "1.1.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "bundled": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "is-utf8": "0.2.1"
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "get-stdin": "4.0.1"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "bundled": true
+ },
+ "style-loader": {
+ "version": "0.19.0",
+ "bundled": true,
+ "requires": {
+ "loader-utils": "1.1.0",
+ "schema-utils": "0.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "4.5.0",
+ "bundled": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ },
+ "svgo": {
+ "version": "0.7.2",
+ "bundled": true,
+ "requires": {
+ "coa": "1.0.4",
+ "colors": "1.1.2",
+ "csso": "2.3.2",
+ "js-yaml": "3.7.0",
+ "mkdirp": "0.5.1",
+ "sax": "1.2.4",
+ "whet.extend": "0.9.9"
+ }
+ },
+ "sw-precache": {
+ "version": "5.2.0",
+ "bundled": true,
+ "requires": {
+ "dom-urls": "1.1.0",
+ "es6-promise": "4.1.1",
+ "glob": "7.1.2",
+ "lodash.defaults": "4.2.0",
+ "lodash.template": "4.4.0",
+ "meow": "3.7.0",
+ "mkdirp": "0.5.1",
+ "pretty-bytes": "4.0.2",
+ "sw-toolbox": "3.6.0",
+ "update-notifier": "1.0.3"
+ }
+ },
+ "sw-precache-webpack-plugin": {
+ "version": "0.11.4",
+ "bundled": true,
+ "requires": {
+ "del": "2.2.2",
+ "sw-precache": "5.2.0",
+ "uglify-js": "3.2.2"
+ }
+ },
+ "sw-toolbox": {
+ "version": "3.6.0",
+ "bundled": true,
+ "requires": {
+ "path-to-regexp": "1.7.0",
+ "serviceworker-cache-polyfill": "4.0.0"
+ }
+ },
+ "symbol-tree": {
+ "version": "3.2.2",
+ "bundled": true
+ },
+ "table": {
+ "version": "4.0.2",
+ "bundled": true,
+ "requires": {
+ "ajv": "5.5.2",
+ "ajv-keywords": "2.1.1",
+ "chalk": "2.3.0",
+ "lodash": "4.17.4",
+ "slice-ansi": "1.0.0",
+ "string-width": "2.1.1"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "5.5.2",
+ "bundled": true,
+ "requires": {
+ "co": "4.6.0",
+ "fast-deep-equal": "1.0.0",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1"
+ }
+ },
+ "chalk": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ }
+ }
+ },
+ "tapable": {
+ "version": "0.2.8",
+ "bundled": true
+ },
+ "tar": {
+ "version": "2.2.1",
+ "bundled": true,
+ "requires": {
+ "block-stream": "0.0.9",
+ "fstream": "1.0.11",
+ "inherits": "2.0.3"
+ }
+ },
+ "test-exclude": {
+ "version": "4.1.1",
+ "bundled": true,
+ "requires": {
+ "arrify": "1.0.1",
+ "micromatch": "2.3.11",
+ "object-assign": "4.1.1",
+ "read-pkg-up": "1.0.1",
+ "require-main-filename": "1.0.1"
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "bundled": true
+ },
+ "throat": {
+ "version": "3.2.0",
+ "bundled": true
+ },
+ "through": {
+ "version": "2.3.8",
+ "bundled": true
+ },
+ "thunky": {
+ "version": "0.1.0",
+ "bundled": true
+ },
+ "time-stamp": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "timed-out": {
+ "version": "3.1.3",
+ "bundled": true
+ },
+ "timers-browserify": {
+ "version": "2.0.4",
+ "bundled": true,
+ "requires": {
+ "setimmediate": "1.0.5"
+ }
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "bundled": true,
+ "requires": {
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "tmpl": {
+ "version": "1.0.4",
+ "bundled": true
+ },
+ "to-arraybuffer": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "bundled": true
+ },
+ "toposort": {
+ "version": "1.0.6",
+ "bundled": true
+ },
+ "tough-cookie": {
+ "version": "2.3.3",
+ "bundled": true,
+ "requires": {
+ "punycode": "1.4.1"
+ }
+ },
+ "tr46": {
+ "version": "0.0.3",
+ "bundled": true
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "trim-right": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "true-case-path": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "glob": "6.0.4"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "6.0.4",
+ "bundled": true,
+ "requires": {
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ }
+ }
+ },
+ "tty-browserify": {
+ "version": "0.0.0",
+ "bundled": true
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "bundled": true,
+ "optional": true
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "bundled": true,
+ "requires": {
+ "prelude-ls": "1.1.2"
+ }
+ },
+ "type-is": {
+ "version": "1.6.15",
+ "bundled": true,
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "2.1.17"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "bundled": true
+ },
+ "ua-parser-js": {
+ "version": "0.7.17",
+ "bundled": true
+ },
+ "uglify-js": {
+ "version": "3.2.2",
+ "bundled": true,
+ "requires": {
+ "commander": "2.12.2",
+ "source-map": "0.6.1"
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "uniq": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "uniqid": {
+ "version": "4.1.1",
+ "bundled": true,
+ "requires": {
+ "macaddress": "0.2.8"
+ }
+ },
+ "uniqs": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "universalify": {
+ "version": "0.1.1",
+ "bundled": true
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "unzip-response": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "update-notifier": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "boxen": "0.6.0",
+ "chalk": "1.1.3",
+ "configstore": "2.1.0",
+ "is-npm": "1.0.0",
+ "latest-version": "2.0.0",
+ "lazy-req": "1.1.0",
+ "semver-diff": "2.1.0",
+ "xdg-basedir": "2.0.0"
+ }
+ },
+ "upper-case": {
+ "version": "1.1.3",
+ "bundled": true
+ },
+ "urijs": {
+ "version": "1.19.0",
+ "bundled": true
+ },
+ "url": {
+ "version": "0.11.0",
+ "bundled": true,
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "bundled": true
+ }
+ }
+ },
+ "url-loader": {
+ "version": "0.6.2",
+ "bundled": true,
+ "requires": {
+ "loader-utils": "1.1.0",
+ "mime": "1.6.0",
+ "schema-utils": "0.3.0"
+ }
+ },
+ "url-parse": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "querystringify": "1.0.0",
+ "requires-port": "1.0.0"
+ },
+ "dependencies": {
+ "querystringify": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "url-parse-lax": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "prepend-http": "1.0.4"
+ }
+ },
+ "user-home": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "util": {
+ "version": "0.10.3",
+ "bundled": true,
+ "requires": {
+ "inherits": "2.0.1"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "utila": {
+ "version": "0.4.0",
+ "bundled": true
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "uuid": {
+ "version": "3.1.0",
+ "bundled": true
+ },
+ "v8flags": {
+ "version": "2.1.1",
+ "bundled": true,
+ "requires": {
+ "user-home": "1.1.1"
+ }
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "spdx-correct": "1.0.2",
+ "spdx-expression-parse": "1.0.4"
+ }
+ },
+ "vary": {
+ "version": "1.1.2",
+ "bundled": true
+ },
+ "vendors": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "verror": {
+ "version": "1.10.0",
+ "bundled": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "1.3.0"
+ }
+ },
+ "vm-browserify": {
+ "version": "0.0.4",
+ "bundled": true,
+ "requires": {
+ "indexof": "0.0.1"
+ }
+ },
+ "walker": {
+ "version": "1.0.7",
+ "bundled": true,
+ "requires": {
+ "makeerror": "1.0.11"
+ }
+ },
+ "watch": {
+ "version": "0.10.0",
+ "bundled": true
+ },
+ "watchpack": {
+ "version": "1.4.0",
+ "bundled": true,
+ "requires": {
+ "async": "2.6.0",
+ "chokidar": "1.7.0",
+ "graceful-fs": "4.1.11"
+ }
+ },
+ "wbuf": {
+ "version": "1.7.2",
+ "bundled": true,
+ "requires": {
+ "minimalistic-assert": "1.0.0"
+ }
+ },
+ "wcwidth": {
+ "version": "1.0.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "defaults": "1.0.3"
+ }
+ },
+ "webidl-conversions": {
+ "version": "4.0.2",
+ "bundled": true
+ },
+ "webpack-dev-middleware": {
+ "version": "1.12.2",
+ "bundled": true,
+ "requires": {
+ "memory-fs": "0.4.1",
+ "mime": "1.6.0",
+ "path-is-absolute": "1.0.1",
+ "range-parser": "1.2.0",
+ "time-stamp": "2.0.0"
+ }
+ },
+ "webpack-dev-server": {
+ "version": "2.9.4",
+ "bundled": true,
+ "requires": {
+ "ansi-html": "0.0.7",
+ "array-includes": "3.0.3",
+ "bonjour": "3.5.0",
+ "chokidar": "1.7.0",
+ "compression": "1.7.1",
+ "connect-history-api-fallback": "1.5.0",
+ "debug": "3.1.0",
+ "del": "3.0.0",
+ "express": "4.16.2",
+ "html-entities": "1.2.1",
+ "http-proxy-middleware": "0.17.4",
+ "import-local": "0.1.1",
+ "internal-ip": "1.2.0",
+ "ip": "1.1.5",
+ "killable": "1.0.0",
+ "loglevel": "1.6.0",
+ "opn": "5.1.0",
+ "portfinder": "1.0.13",
+ "selfsigned": "1.10.1",
+ "serve-index": "1.9.1",
+ "sockjs": "0.3.18",
+ "sockjs-client": "1.1.4",
+ "spdy": "3.4.7",
+ "strip-ansi": "3.0.1",
+ "supports-color": "4.5.0",
+ "webpack-dev-middleware": "1.12.2",
+ "yargs": "6.6.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "bundled": true,
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wrap-ansi": "2.1.0"
+ }
+ },
+ "debug": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "del": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "globby": "6.1.0",
+ "is-path-cwd": "1.0.0",
+ "is-path-in-cwd": "1.0.0",
+ "p-map": "1.2.0",
+ "pify": "3.0.0",
+ "rimraf": "2.6.2"
+ }
+ },
+ "globby": {
+ "version": "6.1.0",
+ "bundled": true,
+ "requires": {
+ "array-union": "1.0.2",
+ "glob": "7.1.2",
+ "object-assign": "4.1.1",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "bundled": true
+ }
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "yargs": {
+ "version": "6.6.0",
+ "bundled": true,
+ "requires": {
+ "camelcase": "3.0.0",
+ "cliui": "3.2.0",
+ "decamelize": "1.2.0",
+ "get-caller-file": "1.0.2",
+ "os-locale": "1.4.0",
+ "read-pkg-up": "1.0.1",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "1.0.2",
+ "which-module": "1.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "4.2.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "4.2.1",
+ "bundled": true,
+ "requires": {
+ "camelcase": "3.0.0"
+ }
+ }
+ }
+ },
+ "webpack-manifest-plugin": {
+ "version": "1.3.2",
+ "bundled": true,
+ "requires": {
+ "fs-extra": "0.30.0",
+ "lodash": "4.17.4"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "0.30.0",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "jsonfile": "2.4.0",
+ "klaw": "1.3.1",
+ "path-is-absolute": "1.0.1",
+ "rimraf": "2.6.2"
+ }
+ },
+ "jsonfile": {
+ "version": "2.4.0",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "4.1.11"
+ }
+ }
+ }
+ },
+ "webpack-sources": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "source-list-map": "2.0.0",
+ "source-map": "0.6.1"
+ }
+ },
+ "websocket-driver": {
+ "version": "0.7.0",
+ "bundled": true,
+ "requires": {
+ "http-parser-js": "0.4.9",
+ "websocket-extensions": "0.1.3"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.3",
+ "bundled": true
+ },
+ "whatwg-encoding": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "iconv-lite": "0.4.19"
+ }
+ },
+ "whatwg-fetch": {
+ "version": "2.0.3",
+ "bundled": true
+ },
+ "whatwg-url": {
+ "version": "4.8.0",
+ "bundled": true,
+ "requires": {
+ "tr46": "0.0.3",
+ "webidl-conversions": "3.0.1"
+ },
+ "dependencies": {
+ "webidl-conversions": {
+ "version": "3.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "whet.extend": {
+ "version": "0.9.9",
+ "bundled": true
+ },
+ "which": {
+ "version": "1.3.0",
+ "bundled": true,
+ "requires": {
+ "isexe": "2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "wide-align": {
+ "version": "1.1.2",
+ "bundled": true,
+ "requires": {
+ "string-width": "1.0.2"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
+ }
+ },
+ "widest-line": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "string-width": "1.0.2"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
+ }
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "bundled": true
+ },
+ "wordwrap": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "worker-farm": {
+ "version": "1.5.2",
+ "bundled": true,
+ "requires": {
+ "errno": "0.1.6",
+ "xtend": "4.0.1"
+ }
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "write": {
+ "version": "0.2.1",
+ "bundled": true,
+ "requires": {
+ "mkdirp": "0.5.1"
+ }
+ },
+ "write-file-atomic": {
+ "version": "1.3.4",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "imurmurhash": "0.1.4",
+ "slide": "1.1.6"
+ }
+ },
+ "xdg-basedir": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "os-homedir": "1.0.2"
+ }
+ },
+ "xml-char-classes": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "xml-name-validator": {
+ "version": "2.0.1",
+ "bundled": true
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "bundled": true
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "bundled": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "bundled": true
+ },
+ "yargs": {
+ "version": "7.1.0",
+ "bundled": true,
+ "requires": {
+ "camelcase": "3.0.0",
+ "cliui": "3.2.0",
+ "decamelize": "1.2.0",
+ "get-caller-file": "1.0.2",
+ "os-locale": "1.4.0",
+ "read-pkg-up": "1.0.1",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "1.0.2",
+ "which-module": "1.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "5.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "bundled": true,
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wrap-ansi": "2.1.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "5.0.0",
+ "bundled": true,
+ "requires": {
+ "camelcase": "3.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
"jsonfile": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
- "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
+ "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=",
"dev": true,
"requires": {
"graceful-fs": "4.1.11"
@@ -4282,12 +15323,6 @@
"integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
"dev": true
},
- "jsonpointer": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
- "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
- "dev": true
- },
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
@@ -4298,14 +15333,6 @@
"extsprintf": "1.3.0",
"json-schema": "0.2.3",
"verror": "1.10.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
}
},
"jsx-ast-utils": {
@@ -4314,13 +15341,19 @@
"integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=",
"dev": true
},
+ "killable": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz",
+ "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=",
+ "dev": true
+ },
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.5"
+ "is-buffer": "1.1.6"
}
},
"klaw": {
@@ -4332,12 +15365,27 @@
"graceful-fs": "4.1.11"
}
},
+ "latest-version": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-2.0.0.tgz",
+ "integrity": "sha1-VvjWE5YghHuAF/jx9NeOIRMkFos=",
+ "dev": true,
+ "requires": {
+ "package-json": "2.4.0"
+ }
+ },
"lazy-cache": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
"integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
"dev": true
},
+ "lazy-req": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz",
+ "integrity": "sha1-va6+rTD42CQDnODOFJ1Nqge6H6w=",
+ "dev": true
+ },
"lcid": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
@@ -4347,6 +15395,12 @@
"invert-kv": "1.0.0"
}
},
+ "leven": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
+ "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=",
+ "dev": true
+ },
"levn": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
@@ -4370,96 +15424,94 @@
"strip-bom": "2.0.0"
}
},
- "loader-utils": {
- "version": "0.2.17",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
- "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+ "loader-fs-cache": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz",
+ "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=",
"dev": true,
"requires": {
- "big.js": "3.1.3",
- "emojis-list": "2.1.0",
- "json5": "0.5.1",
- "object-assign": "4.1.1"
+ "find-cache-dir": "0.1.1",
+ "mkdirp": "0.5.1"
},
"dependencies": {
- "json5": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
- "dev": true
+ "find-cache-dir": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
+ "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=",
+ "dev": true,
+ "requires": {
+ "commondir": "1.0.1",
+ "mkdirp": "0.5.1",
+ "pkg-dir": "1.0.0"
+ }
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "pkg-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
+ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2"
+ }
}
}
},
+ "loader-runner": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz",
+ "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+ "dev": true,
+ "requires": {
+ "big.js": "3.2.0",
+ "emojis-list": "2.1.0",
+ "json5": "0.5.1"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "2.0.0",
+ "path-exists": "3.0.0"
+ }
+ },
"lodash": {
"version": "4.17.4",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
"dev": true
},
- "lodash._arraycopy": {
+ "lodash._reinterpolate": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz",
- "integrity": "sha1-due3wfH7klRzdIeKVi7Qaj5Q9uE=",
- "dev": true
- },
- "lodash._arrayeach": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz",
- "integrity": "sha1-urFWsqkNPxu9XGU0AzSeXlkz754=",
- "dev": true
- },
- "lodash._baseassign": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
- "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=",
- "dev": true,
- "requires": {
- "lodash._basecopy": "3.0.1",
- "lodash.keys": "3.1.2"
- }
- },
- "lodash._baseclone": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz",
- "integrity": "sha1-MDUZv2OT/n5C802LYw73eU41Qrc=",
- "dev": true,
- "requires": {
- "lodash._arraycopy": "3.0.0",
- "lodash._arrayeach": "3.0.0",
- "lodash._baseassign": "3.2.0",
- "lodash._basefor": "3.0.3",
- "lodash.isarray": "3.0.4",
- "lodash.keys": "3.1.2"
- }
- },
- "lodash._basecopy": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
- "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
- "dev": true
- },
- "lodash._basefor": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.3.tgz",
- "integrity": "sha1-dVC06SGO8J+tJDQ7YSAhx5tMIMI=",
- "dev": true
- },
- "lodash._bindcallback": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz",
- "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=",
- "dev": true
- },
- "lodash._getnative": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
- "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
- "dev": true
- },
- "lodash.assign": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
- "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
"dev": true
},
"lodash.camelcase": {
@@ -4468,62 +15520,42 @@
"integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
"dev": true
},
- "lodash.clonedeep": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz",
- "integrity": "sha1-oKHkDYKl6on/WxR7hETtY9koJ9s=",
- "dev": true,
- "requires": {
- "lodash._baseclone": "3.3.0",
- "lodash._bindcallback": "3.0.1"
- }
- },
"lodash.cond": {
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz",
"integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=",
"dev": true
},
- "lodash.isarguments": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
- "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
+ "lodash.defaults": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
+ "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=",
"dev": true
},
- "lodash.isarray": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
- "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
- "dev": true
- },
- "lodash.keys": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
- "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
- "dev": true,
- "requires": {
- "lodash._getnative": "3.9.1",
- "lodash.isarguments": "3.1.0",
- "lodash.isarray": "3.0.4"
- }
- },
"lodash.memoize": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
"integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
"dev": true
},
- "lodash.pickby": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz",
- "integrity": "sha1-feoh2MGNdwOifHBMFdO4SmfjOv8=",
- "dev": true
- },
- "lodash.toarray": {
+ "lodash.template": {
"version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
- "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=",
- "dev": true
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz",
+ "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=",
+ "dev": true,
+ "requires": {
+ "lodash._reinterpolate": "3.0.0",
+ "lodash.templatesettings": "4.1.0"
+ }
+ },
+ "lodash.templatesettings": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz",
+ "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=",
+ "dev": true,
+ "requires": {
+ "lodash._reinterpolate": "3.0.0"
+ }
},
"lodash.uniq": {
"version": "4.5.0",
@@ -4531,6 +15563,12 @@
"integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
"dev": true
},
+ "loglevel": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.0.tgz",
+ "integrity": "sha1-rgyqVhERSYxboTcj1vtjHSQAOTQ=",
+ "dev": true
+ },
"longest": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
@@ -4545,12 +15583,28 @@
"js-tokens": "3.0.2"
}
},
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "0.4.1",
+ "signal-exit": "3.0.2"
+ }
+ },
"lower-case": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
"integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
"dev": true
},
+ "lowercase-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
+ "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=",
+ "dev": true
+ },
"lru-cache": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
@@ -4567,6 +15621,23 @@
"integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=",
"dev": true
},
+ "make-dir": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz",
+ "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==",
+ "dev": true,
+ "requires": {
+ "pify": "3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
"makeerror": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz",
@@ -4576,47 +15647,91 @@
"tmpl": "1.0.4"
}
},
- "marked": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz",
- "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=",
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
"dev": true
},
- "marked-terminal": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-1.7.0.tgz",
- "integrity": "sha1-yMRgiBx3LHYEtkNnAH7l938SWQQ=",
- "dev": true,
- "requires": {
- "cardinal": "1.0.0",
- "chalk": "1.1.3",
- "cli-table": "0.3.1",
- "lodash.assign": "4.2.0",
- "node-emoji": "1.8.1"
- }
- },
"math-expression-evaluator": {
"version": "1.2.17",
"resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
"integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=",
"dev": true
},
+ "md5.js": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
+ "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
+ "dev": true,
+ "requires": {
+ "hash-base": "3.0.4",
+ "inherits": "2.0.3"
+ },
+ "dependencies": {
+ "hash-base": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
+ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ }
+ }
+ },
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
"dev": true
},
- "memory-fs": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz",
- "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=",
+ "mem": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
"dev": true,
"requires": {
- "errno": "0.1.4",
+ "mimic-fn": "1.1.0"
+ }
+ },
+ "memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+ "dev": true,
+ "requires": {
+ "errno": "0.1.6",
"readable-stream": "2.3.3"
}
},
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "2.1.0",
+ "decamelize": "1.2.0",
+ "loud-rejection": "1.6.0",
+ "map-obj": "1.0.1",
+ "minimist": "1.2.0",
+ "normalize-package-data": "2.4.0",
+ "object-assign": "4.1.1",
+ "read-pkg-up": "1.0.1",
+ "redent": "1.0.0",
+ "trim-newlines": "1.0.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
"merge": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz",
@@ -4656,10 +15771,20 @@
"regex-cache": "0.4.4"
}
},
+ "miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "brorand": "1.1.0"
+ }
+ },
"mime": {
- "version": "1.2.11",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
- "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"dev": true
},
"mime-db": {
@@ -4677,6 +15802,24 @@
"mime-db": "1.30.0"
}
},
+ "mimic-fn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz",
+ "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=",
+ "dev": true
+ },
+ "minimalistic-assert": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
+ "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=",
+ "dev": true
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+ "dev": true
+ },
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@@ -4707,24 +15850,35 @@
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
},
- "multimatch": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz",
- "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=",
+ "multicast-dns": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.1.tgz",
+ "integrity": "sha512-uV3/ckdsffHx9IrGQrx613mturMdMqQ06WTq+C09NsStJ9iNG6RcUWgPKs1Rfjy+idZT6tfQoXEusGNnEZhT3w==",
"dev": true,
"requires": {
- "array-differ": "1.0.0",
- "array-union": "1.0.2",
- "arrify": "1.0.1",
- "minimatch": "3.0.4"
+ "dns-packet": "1.2.2",
+ "thunky": "0.1.0"
}
},
- "mute-stream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
- "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=",
+ "multicast-dns-service-types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
+ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
"dev": true
},
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "dev": true
+ },
+ "nan": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz",
+ "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=",
+ "dev": true,
+ "optional": true
+ },
"natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -4747,32 +15901,29 @@
"dev": true
},
"no-case": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz",
- "integrity": "sha1-euuhxzpSGEJlVUt9wDuvcg34AIE=",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
"dev": true,
"requires": {
"lower-case": "1.1.4"
}
},
- "node-emoji": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz",
- "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==",
- "dev": true,
- "requires": {
- "lodash.toarray": "4.4.0"
- }
- },
"node-fetch": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.2.tgz",
- "integrity": "sha512-xZZUq2yDhKMIn/UgG5q//IZSNLJIwW2QxS14CNH5spuiXkITM2pUitjdq58yLSaU7m4M0wBNaM2Gh/ggY4YJig==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
+ "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
"requires": {
"encoding": "0.1.12",
"is-stream": "1.1.0"
}
},
+ "node-forge": {
+ "version": "0.6.33",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.33.tgz",
+ "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw=",
+ "dev": true
+ },
"node-int64": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
@@ -4780,21 +15931,21 @@
"dev": true
},
"node-libs-browser": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz",
- "integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz",
+ "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==",
"dev": true,
"requires": {
"assert": "1.4.1",
- "browserify-zlib": "0.1.4",
+ "browserify-zlib": "0.2.0",
"buffer": "4.9.1",
"console-browserify": "1.1.0",
"constants-browserify": "1.0.0",
- "crypto-browserify": "3.3.0",
+ "crypto-browserify": "3.12.0",
"domain-browser": "1.1.7",
"events": "1.1.1",
- "https-browserify": "0.0.1",
- "os-browserify": "0.2.1",
+ "https-browserify": "1.0.0",
+ "os-browserify": "0.3.0",
"path-browserify": "0.0.0",
"process": "0.11.10",
"punycode": "1.4.1",
@@ -4802,53 +15953,31 @@
"readable-stream": "2.3.3",
"stream-browserify": "2.0.1",
"stream-http": "2.7.2",
- "string_decoder": "0.10.31",
+ "string_decoder": "1.0.3",
"timers-browserify": "2.0.4",
"tty-browserify": "0.0.0",
"url": "0.11.0",
"util": "0.10.3",
"vm-browserify": "0.0.4"
- },
- "dependencies": {
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- }
}
},
"node-notifier": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-4.6.1.tgz",
- "integrity": "sha1-BW0UJE89zBzq3+aK+c/wxUc6M/M=",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz",
+ "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=",
"dev": true,
"requires": {
- "cli-usage": "0.1.4",
"growly": "1.3.0",
- "lodash.clonedeep": "3.0.2",
- "minimist": "1.2.0",
"semver": "5.4.1",
"shellwords": "0.1.1",
"which": "1.3.0"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
- "dev": true
- }
}
},
- "nopt": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
- "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
- "dev": true,
- "requires": {
- "abbrev": "1.0.9"
- }
+ "node-status-codes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz",
+ "integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=",
+ "dev": true
},
"normalize-package-data": {
"version": "2.4.0",
@@ -4889,6 +16018,15 @@
"sort-keys": "1.1.2"
}
},
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "requires": {
+ "path-key": "2.0.1"
+ }
+ },
"nth-check": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
@@ -4911,9 +16049,9 @@
"dev": true
},
"nwmatcher": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.1.tgz",
- "integrity": "sha1-eumwew6oBNt+JfBctf5Al9TklJ8=",
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz",
+ "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==",
"dev": true
},
"oauth-sign": {
@@ -4927,6 +16065,18 @@
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
+ "object-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.2.0.tgz",
+ "integrity": "sha512-smRWXzkvxw72VquyZ0wggySl7PFUtoDhvhpdwgESXxUrH7vVhhp9asfup1+rVLrhsl7L45Ee1Q/l5R2Ul4MwUg==",
+ "dev": true
+ },
+ "object-keys": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
+ "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=",
+ "dev": true
+ },
"object.omit": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
@@ -4937,6 +16087,12 @@
"is-extendable": "0.1.1"
}
},
+ "obuf": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz",
+ "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=",
+ "dev": true
+ },
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@@ -4962,25 +16118,21 @@
}
},
"onetime": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
- "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
- "dev": true
- },
- "open": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/open/-/open-0.0.5.tgz",
- "integrity": "sha1-QsPhjslUZra/DcQvOilFw/DK2Pw=",
- "dev": true
- },
- "opn": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz",
- "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
"dev": true,
"requires": {
- "object-assign": "4.1.1",
- "pinkie-promise": "2.0.1"
+ "mimic-fn": "1.1.0"
+ }
+ },
+ "opn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz",
+ "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==",
+ "dev": true,
+ "requires": {
+ "is-wsl": "1.1.0"
}
},
"optimist": {
@@ -5037,9 +16189,9 @@
}
},
"os-browserify": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz",
- "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
"dev": true
},
"os-homedir": {
@@ -5063,10 +16215,59 @@
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"dev": true
},
+ "osenv": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
+ "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
+ "dev": true,
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz",
+ "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=",
+ "dev": true
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "1.1.0"
+ }
+ },
+ "p-map": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
+ "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
+ "dev": true
+ },
+ "package-json": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-2.4.0.tgz",
+ "integrity": "sha1-DRW9Z9HLvduyyiIv8u24a8sxqLs=",
+ "dev": true,
+ "requires": {
+ "got": "5.7.1",
+ "registry-auth-token": "3.3.1",
+ "registry-url": "3.1.0",
+ "semver": "5.4.1"
+ }
+ },
"pako": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
- "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
+ "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==",
"dev": true
},
"param-case": {
@@ -5075,7 +16276,20 @@
"integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
"dev": true,
"requires": {
- "no-case": "2.3.1"
+ "no-case": "2.3.2"
+ }
+ },
+ "parse-asn1": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz",
+ "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=",
+ "dev": true,
+ "requires": {
+ "asn1.js": "4.9.2",
+ "browserify-aes": "1.1.1",
+ "create-hash": "1.1.3",
+ "evp_bytestokey": "1.0.3",
+ "pbkdf2": "3.0.14"
}
},
"parse-glob": {
@@ -5099,6 +16313,12 @@
"error-ex": "1.3.1"
}
},
+ "parse-passwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
+ "dev": true
+ },
"parse5": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
@@ -5106,9 +16326,9 @@
"dev": true
},
"parseurl": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz",
- "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
+ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
"dev": true
},
"path-browserify": {
@@ -5118,13 +16338,10 @@
"dev": true
},
"path-exists": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
- "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
- "dev": true,
- "requires": {
- "pinkie-promise": "2.0.1"
- }
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
},
"path-is-absolute": {
"version": "1.0.1",
@@ -5138,6 +16355,12 @@
"integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
"dev": true
},
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
"path-parse": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
@@ -5145,10 +16368,21 @@
"dev": true
},
"path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
- "dev": true
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
+ "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
+ "dev": true,
+ "requires": {
+ "isarray": "0.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ }
+ }
},
"path-type": {
"version": "1.1.0",
@@ -5161,16 +16395,23 @@
"pinkie-promise": "2.0.1"
}
},
- "pbkdf2-compat": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz",
- "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=",
- "dev": true
+ "pbkdf2": {
+ "version": "3.0.14",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz",
+ "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==",
+ "dev": true,
+ "requires": {
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "ripemd160": "2.0.1",
+ "safe-buffer": "5.1.1",
+ "sha.js": "2.4.9"
+ }
},
"performance-now": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
- "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
"dev": true
},
"pify": {
@@ -5195,39 +16436,61 @@
}
},
"pkg-dir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
- "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
+ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
"dev": true,
"requires": {
- "find-up": "1.1.2"
- }
- },
- "pkg-up": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz",
- "integrity": "sha1-Pgj7RhUlxEIWJKM7n35tCvWwWiY=",
- "dev": true,
- "requires": {
- "find-up": "1.1.2"
+ "find-up": "2.1.0"
}
},
"pluralize": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz",
- "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
+ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
- "postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "portfinder": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz",
+ "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=",
"dev": true,
"requires": {
- "chalk": "1.1.3",
- "js-base64": "2.1.9",
- "source-map": "0.5.7",
- "supports-color": "3.2.3"
+ "async": "1.5.2",
+ "debug": "2.6.9",
+ "mkdirp": "0.5.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ }
+ }
+ },
+ "postcss": {
+ "version": "6.0.14",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz",
+ "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.3.0",
+ "source-map": "0.6.1",
+ "supports-color": "4.5.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ }
}
},
"postcss-calc": {
@@ -5236,9 +16499,44 @@
"integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-message-helpers": "2.0.0",
"reduce-css-calc": "1.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-colormin": {
@@ -5248,8 +16546,43 @@
"dev": true,
"requires": {
"colormin": "1.1.2",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-convert-values": {
@@ -5258,8 +16591,43 @@
"integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-discard-comments": {
@@ -5268,7 +16636,42 @@
"integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-discard-duplicates": {
@@ -5277,7 +16680,42 @@
"integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-discard-empty": {
@@ -5286,7 +16724,42 @@
"integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-discard-overridden": {
@@ -5295,7 +16768,42 @@
"integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-discard-unused": {
@@ -5304,8 +16812,43 @@
"integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"uniqs": "2.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-filter-plugins": {
@@ -5314,8 +16857,52 @@
"integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"uniqid": "4.1.1"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-flexbugs-fixes": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.2.0.tgz",
+ "integrity": "sha512-0AuD9HG1Ey3/3nqPWu9yqf7rL0KCPu5VgjDsjf5mzEcuo9H/z8nco/fljKgjsOUrZypa95MI0kS4xBZeBzz2lw==",
+ "dev": true,
+ "requires": {
+ "postcss": "6.0.14"
}
},
"postcss-load-config": {
@@ -5351,15 +16938,15 @@
}
},
"postcss-loader": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-1.0.0.tgz",
- "integrity": "sha1-47ZdDIWWwWWPedfbLSkTEHSNXSo=",
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.0.8.tgz",
+ "integrity": "sha512-KtXBiQ/r/WYW8LxTSJK7h8wLqvCMSub/BqmRnud/Mu8RzwflW9cmXxwsMwbn15TNv287Hcufdb3ZSs7xHKnG8Q==",
"dev": true,
"requires": {
- "loader-utils": "0.2.17",
- "object-assign": "4.1.1",
- "postcss": "5.2.17",
- "postcss-load-config": "1.2.0"
+ "loader-utils": "1.1.0",
+ "postcss": "6.0.14",
+ "postcss-load-config": "1.2.0",
+ "schema-utils": "0.3.0"
}
},
"postcss-merge-idents": {
@@ -5369,8 +16956,43 @@
"dev": true,
"requires": {
"has": "1.0.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-merge-longhand": {
@@ -5379,7 +17001,42 @@
"integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-merge-rules": {
@@ -5390,7 +17047,7 @@
"requires": {
"browserslist": "1.7.7",
"caniuse-api": "1.6.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-selector-parser": "2.2.3",
"vendors": "1.0.1"
},
@@ -5401,8 +17058,41 @@
"integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
"dev": true,
"requires": {
- "caniuse-db": "1.0.30000721",
- "electron-to-chromium": "1.3.20"
+ "caniuse-db": "1.0.30000784",
+ "electron-to-chromium": "1.3.29"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
}
}
}
@@ -5420,8 +17110,43 @@
"dev": true,
"requires": {
"object-assign": "4.1.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-minify-gradients": {
@@ -5430,8 +17155,43 @@
"integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-minify-params": {
@@ -5441,9 +17201,44 @@
"dev": true,
"requires": {
"alphanum-sort": "1.0.2",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0",
"uniqs": "2.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-minify-selectors": {
@@ -5454,8 +17249,43 @@
"requires": {
"alphanum-sort": "1.0.2",
"has": "1.0.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-selector-parser": "2.2.3"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-modules-extract-imports": {
@@ -5464,55 +17294,7 @@
"integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=",
"dev": true,
"requires": {
- "postcss": "6.0.10"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "dev": true,
- "requires": {
- "color-convert": "1.9.0"
- }
- },
- "chalk": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
- "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "3.2.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.4.0"
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
- "dev": true
- },
- "postcss": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.10.tgz",
- "integrity": "sha512-7WOpqea/cQHH1XUXdN1mqoFFmhigW3KAXJ+ssMOk/f6mKmwqFgqqdwsnjLGH+wuY+kwaJvT4whHcfKt5kWga0A==",
- "dev": true,
- "requires": {
- "chalk": "2.1.0",
- "source-map": "0.5.7",
- "supports-color": "4.4.0"
- }
- },
- "supports-color": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
- "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
- }
+ "postcss": "6.0.14"
}
},
"postcss-modules-local-by-default": {
@@ -5522,55 +17304,7 @@
"dev": true,
"requires": {
"css-selector-tokenizer": "0.7.0",
- "postcss": "6.0.10"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "dev": true,
- "requires": {
- "color-convert": "1.9.0"
- }
- },
- "chalk": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
- "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "3.2.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.4.0"
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
- "dev": true
- },
- "postcss": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.10.tgz",
- "integrity": "sha512-7WOpqea/cQHH1XUXdN1mqoFFmhigW3KAXJ+ssMOk/f6mKmwqFgqqdwsnjLGH+wuY+kwaJvT4whHcfKt5kWga0A==",
- "dev": true,
- "requires": {
- "chalk": "2.1.0",
- "source-map": "0.5.7",
- "supports-color": "4.4.0"
- }
- },
- "supports-color": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
- "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
- }
+ "postcss": "6.0.14"
}
},
"postcss-modules-scope": {
@@ -5580,55 +17314,7 @@
"dev": true,
"requires": {
"css-selector-tokenizer": "0.7.0",
- "postcss": "6.0.10"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "dev": true,
- "requires": {
- "color-convert": "1.9.0"
- }
- },
- "chalk": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
- "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "3.2.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.4.0"
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
- "dev": true
- },
- "postcss": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.10.tgz",
- "integrity": "sha512-7WOpqea/cQHH1XUXdN1mqoFFmhigW3KAXJ+ssMOk/f6mKmwqFgqqdwsnjLGH+wuY+kwaJvT4whHcfKt5kWga0A==",
- "dev": true,
- "requires": {
- "chalk": "2.1.0",
- "source-map": "0.5.7",
- "supports-color": "4.4.0"
- }
- },
- "supports-color": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
- "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
- }
+ "postcss": "6.0.14"
}
},
"postcss-modules-values": {
@@ -5638,55 +17324,7 @@
"dev": true,
"requires": {
"icss-replace-symbols": "1.1.0",
- "postcss": "6.0.10"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "dev": true,
- "requires": {
- "color-convert": "1.9.0"
- }
- },
- "chalk": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
- "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "3.2.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.4.0"
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
- "dev": true
- },
- "postcss": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.10.tgz",
- "integrity": "sha512-7WOpqea/cQHH1XUXdN1mqoFFmhigW3KAXJ+ssMOk/f6mKmwqFgqqdwsnjLGH+wuY+kwaJvT4whHcfKt5kWga0A==",
- "dev": true,
- "requires": {
- "chalk": "2.1.0",
- "source-map": "0.5.7",
- "supports-color": "4.4.0"
- }
- },
- "supports-color": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
- "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
- }
+ "postcss": "6.0.14"
}
},
"postcss-normalize-charset": {
@@ -5695,7 +17333,42 @@
"integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-normalize-url": {
@@ -5706,8 +17379,43 @@
"requires": {
"is-absolute-url": "2.1.0",
"normalize-url": "1.9.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-ordered-values": {
@@ -5716,8 +17424,43 @@
"integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-reduce-idents": {
@@ -5726,8 +17469,43 @@
"integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-reduce-initial": {
@@ -5736,7 +17514,42 @@
"integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-reduce-transforms": {
@@ -5746,8 +17559,43 @@
"dev": true,
"requires": {
"has": "1.0.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-selector-parser": {
@@ -5768,9 +17616,44 @@
"dev": true,
"requires": {
"is-svg": "2.1.0",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0",
"svgo": "0.7.2"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-unique-selectors": {
@@ -5780,8 +17663,43 @@
"dev": true,
"requires": {
"alphanum-sort": "1.0.2",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"uniqs": "2.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-value-parser": {
@@ -5797,8 +17715,43 @@
"dev": true,
"requires": {
"has": "1.0.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"uniqs": "2.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"prelude-ls": {
@@ -5819,6 +17772,12 @@
"integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
"dev": true
},
+ "pretty-bytes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz",
+ "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=",
+ "dev": true
+ },
"pretty-error": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz",
@@ -5830,15 +17789,19 @@
}
},
"pretty-format": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-4.2.3.tgz",
- "integrity": "sha1-iJTCrIFBnPgBYp2PZjIKJTgNiwU=",
- "dev": true
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz",
+ "integrity": "sha1-Ag41ClYKH+GpjcO+tsz/s4beixQ=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1",
+ "ansi-styles": "3.2.0"
+ }
},
"private": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz",
- "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=",
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
"dev": true
},
"process": {
@@ -5854,9 +17817,9 @@
"dev": true
},
"progress": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
- "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
+ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
"dev": true
},
"promise": {
@@ -5867,20 +17830,30 @@
"asap": "2.0.6"
}
},
+ "prop-types": {
+ "version": "15.6.0",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz",
+ "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=",
+ "requires": {
+ "fbjs": "0.8.16",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1"
+ }
+ },
"proxy-addr": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz",
- "integrity": "sha1-ccDuOxAt4/IC87ZPYI0XP8uhqRg=",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz",
+ "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=",
"dev": true,
"requires": {
- "forwarded": "0.1.0",
- "ipaddr.js": "1.4.0"
+ "forwarded": "0.1.2",
+ "ipaddr.js": "1.5.2"
}
},
"prr": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
- "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
"dev": true
},
"pseudomap": {
@@ -5889,6 +17862,19 @@
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
"dev": true
},
+ "public-encrypt": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
+ "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "browserify-rsa": "4.0.1",
+ "create-hash": "1.1.3",
+ "parse-asn1": "5.1.0",
+ "randombytes": "2.0.5"
+ }
+ },
"punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
@@ -5896,15 +17882,15 @@
"dev": true
},
"q": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz",
- "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
"dev": true
},
"qs": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
- "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
+ "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
"dev": true
},
"query-string": {
@@ -5935,6 +17921,15 @@
"integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=",
"dev": true
},
+ "raf": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz",
+ "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==",
+ "dev": true,
+ "requires": {
+ "performance-now": "2.1.0"
+ }
+ },
"randomatic": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
@@ -5960,7 +17955,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -5971,125 +17966,188 @@
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
"dev": true,
"requires": {
- "is-buffer": "1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
},
+ "randombytes": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz",
+ "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "randomfill": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz",
+ "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==",
+ "dev": true,
+ "requires": {
+ "randombytes": "2.0.5",
+ "safe-buffer": "5.1.1"
+ }
+ },
"range-parser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
"dev": true
},
- "react": {
- "version": "15.4.1",
- "resolved": "https://registry.npmjs.org/react/-/react-15.4.1.tgz",
- "integrity": "sha1-SY6RhgJnejmDzQ/SBt/nADiaDdY=",
+ "raw-body": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
+ "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
+ "dev": true,
"requires": {
- "fbjs": "0.8.14",
+ "bytes": "3.0.0",
+ "http-errors": "1.6.2",
+ "iconv-lite": "0.4.19",
+ "unpipe": "1.0.0"
+ }
+ },
+ "rc": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz",
+ "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=",
+ "dev": true,
+ "requires": {
+ "deep-extend": "0.4.2",
+ "ini": "1.3.5",
+ "minimist": "1.2.0",
+ "strip-json-comments": "2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "react": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-16.2.0.tgz",
+ "integrity": "sha512-ZmIomM7EE1DvPEnSFAHZn9Vs9zJl5A9H7el0EGTE6ZbW9FKe/14IYAlPbC8iH25YarEQxZL+E8VW7Mi7kfQrDQ==",
+ "requires": {
+ "fbjs": "0.8.16",
"loose-envify": "1.3.1",
- "object-assign": "4.1.1"
+ "object-assign": "4.1.1",
+ "prop-types": "15.6.0"
}
},
"react-dev-utils": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-0.4.2.tgz",
- "integrity": "sha1-um+uWB/pRaL8QC6bJ8cf2k9i9qE=",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-4.2.1.tgz",
+ "integrity": "sha1-nydj57r6GhucUiVNKked7sKA8RE=",
"dev": true,
"requires": {
- "ansi-html": "0.0.5",
+ "address": "1.0.3",
+ "babel-code-frame": "6.26.0",
"chalk": "1.1.3",
+ "cross-spawn": "5.1.0",
+ "detect-port-alt": "1.1.3",
"escape-string-regexp": "1.0.5",
- "html-entities": "1.2.0",
- "opn": "4.0.2",
- "sockjs-client": "1.0.3",
- "strip-ansi": "3.0.1"
+ "filesize": "3.5.11",
+ "global-modules": "1.0.0",
+ "gzip-size": "3.0.0",
+ "inquirer": "3.3.0",
+ "is-root": "1.0.0",
+ "opn": "5.1.0",
+ "react-error-overlay": "3.0.0",
+ "recursive-readdir": "2.2.1",
+ "shell-quote": "1.6.1",
+ "sockjs-client": "1.1.4",
+ "strip-ansi": "3.0.1",
+ "text-table": "0.2.0"
}
},
"react-dom": {
- "version": "15.4.1",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.4.1.tgz",
- "integrity": "sha1-1UyRMmGq7bF63CBBDQKdzBihNEo=",
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.2.0.tgz",
+ "integrity": "sha512-zpGAdwHVn9K0091d+hr+R0qrjoJ84cIBFL2uU60KvWBPfZ7LPSrfqviTxGHWN0sjPZb2hxWzMexwrvJdKePvjg==",
"requires": {
- "fbjs": "0.8.14",
+ "fbjs": "0.8.16",
"loose-envify": "1.3.1",
- "object-assign": "4.1.1"
+ "object-assign": "4.1.1",
+ "prop-types": "15.6.0"
}
},
+ "react-error-overlay": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-3.0.0.tgz",
+ "integrity": "sha512-XzgvowFrwDo6TWcpJ/WTiarb9UI6lhA4PMzS7n1joK3sHfBBBOQHUc0U4u57D6DWO9vHv6lVSWx2Q/Ymfyv4hw==",
+ "dev": true
+ },
"react-scripts": {
- "version": "0.8.4",
- "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-0.8.4.tgz",
- "integrity": "sha1-bEGg/7dphTWf7Dz2Qa5+eI2QWIM=",
+ "version": "1.0.17",
+ "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-1.0.17.tgz",
+ "integrity": "sha512-tf2kBx230iUSxqJZxboYINlIOKryW+CC7oVgQ4rguNLmcPgWvnnCM8huAgCgL2yuqDd0qQvnI5sRCmc+0TQ5zw==",
"dev": true,
"requires": {
- "autoprefixer": "6.5.1",
- "babel-core": "6.17.0",
- "babel-eslint": "7.1.1",
- "babel-jest": "17.0.2",
- "babel-loader": "6.2.7",
- "babel-preset-react-app": "2.2.0",
- "case-sensitive-paths-webpack-plugin": "1.1.4",
+ "autoprefixer": "7.1.6",
+ "babel-core": "6.26.0",
+ "babel-eslint": "7.2.3",
+ "babel-jest": "20.0.3",
+ "babel-loader": "7.1.2",
+ "babel-preset-react-app": "3.1.0",
+ "babel-runtime": "6.26.0",
+ "case-sensitive-paths-webpack-plugin": "2.1.1",
"chalk": "1.1.3",
- "connect-history-api-fallback": "1.3.0",
- "cross-spawn": "4.0.2",
- "css-loader": "0.26.0",
- "detect-port": "1.0.1",
- "dotenv": "2.0.0",
- "eslint": "3.8.1",
- "eslint-config-react-app": "0.5.2",
- "eslint-loader": "1.6.0",
- "eslint-plugin-flowtype": "2.21.0",
- "eslint-plugin-import": "2.0.1",
- "eslint-plugin-jsx-a11y": "2.2.3",
- "eslint-plugin-react": "6.4.1",
- "extract-text-webpack-plugin": "1.0.1",
- "file-loader": "0.9.0",
- "filesize": "3.3.0",
- "fs-extra": "0.30.0",
- "gzip-size": "3.0.0",
- "html-webpack-plugin": "2.24.0",
- "http-proxy-middleware": "0.17.2",
- "jest": "17.0.2",
- "json-loader": "0.5.4",
- "object-assign": "4.1.0",
- "path-exists": "2.1.0",
- "postcss-loader": "1.0.0",
- "promise": "7.1.1",
- "react-dev-utils": "0.4.2",
- "recursive-readdir": "2.1.0",
- "strip-ansi": "3.0.1",
- "style-loader": "0.13.1",
- "url-loader": "0.5.7",
- "webpack": "1.14.0",
- "webpack-dev-server": "1.16.2",
- "webpack-manifest-plugin": "1.1.0",
- "whatwg-fetch": "1.0.0"
+ "css-loader": "0.28.7",
+ "dotenv": "4.0.0",
+ "eslint": "4.10.0",
+ "eslint-config-react-app": "2.0.1",
+ "eslint-loader": "1.9.0",
+ "eslint-plugin-flowtype": "2.39.1",
+ "eslint-plugin-import": "2.8.0",
+ "eslint-plugin-jsx-a11y": "5.1.1",
+ "eslint-plugin-react": "7.4.0",
+ "extract-text-webpack-plugin": "3.0.2",
+ "file-loader": "1.1.5",
+ "fs-extra": "3.0.1",
+ "fsevents": "1.1.2",
+ "html-webpack-plugin": "2.29.0",
+ "jest": "20.0.4",
+ "object-assign": "4.1.1",
+ "postcss-flexbugs-fixes": "3.2.0",
+ "postcss-loader": "2.0.8",
+ "promise": "8.0.1",
+ "raf": "3.4.0",
+ "react-dev-utils": "4.2.1",
+ "style-loader": "0.19.0",
+ "sw-precache-webpack-plugin": "0.11.4",
+ "url-loader": "0.6.2",
+ "webpack": "3.8.1",
+ "webpack-dev-server": "2.9.4",
+ "webpack-manifest-plugin": "1.3.2",
+ "whatwg-fetch": "2.0.3"
},
"dependencies": {
- "object-assign": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
- "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
- "dev": true
- },
"promise": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz",
- "integrity": "sha1-SJZUxpJha4qlWwck+oCbt9tJxb8=",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.1.tgz",
+ "integrity": "sha1-5F1osAoXZHttpxG/he1u1HII9FA=",
"dev": true,
"requires": {
"asap": "2.0.6"
}
- },
- "whatwg-fetch": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-1.0.0.tgz",
- "integrity": "sha1-AcKsTfQOI2qqGEgOO+dL1cjreY4=",
- "dev": true
}
}
},
+ "read-all-stream": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
+ "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1",
+ "readable-stream": "2.3.3"
+ }
+ },
"read-pkg": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
@@ -6109,6 +18167,27 @@
"requires": {
"find-up": "1.1.2",
"read-pkg": "1.1.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ }
}
},
"readable-stream": {
@@ -6138,30 +18217,19 @@
"set-immediate-shim": "1.0.1"
}
},
- "readline2": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
- "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
- "dev": true,
- "requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "mute-stream": "0.0.5"
- }
- },
"recursive-readdir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.1.0.tgz",
- "integrity": "sha1-eLe/15WC09dZa4/xvSn71QIp9qo=",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.1.tgz",
+ "integrity": "sha1-kO8jHQd4xc4JPJpI105cVCLROpk=",
"dev": true,
"requires": {
- "minimatch": "3.0.2"
+ "minimatch": "3.0.3"
},
"dependencies": {
"minimatch": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.2.tgz",
- "integrity": "sha1-DzmKcwDqRB6cNIyD2Yq4ydv5xAo=",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
"dev": true,
"requires": {
"brace-expansion": "1.1.8"
@@ -6169,21 +18237,14 @@
}
}
},
- "redeyed": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz",
- "integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=",
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
"dev": true,
"requires": {
- "esprima": "3.0.0"
- },
- "dependencies": {
- "esprima": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz",
- "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=",
- "dev": true
- }
+ "indent-string": "2.1.0",
+ "strip-indent": "1.0.1"
}
},
"reduce-css-calc": {
@@ -6223,26 +18284,26 @@
}
},
"regenerate": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz",
- "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz",
+ "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==",
"dev": true
},
"regenerator-runtime": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz",
- "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==",
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
"dev": true
},
"regenerator-transform": {
- "version": "0.9.8",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.8.tgz",
- "integrity": "sha1-D4i7K8A5Mt23trcxLmgHjwECbWw=",
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
+ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
"dev": true,
"requires": {
"babel-runtime": "6.26.0",
"babel-types": "6.26.0",
- "private": "0.1.7"
+ "private": "0.1.8"
}
},
"regex-cache": {
@@ -6260,11 +18321,30 @@
"integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
"dev": true,
"requires": {
- "regenerate": "1.3.2",
+ "regenerate": "1.3.3",
"regjsgen": "0.2.0",
"regjsparser": "0.1.5"
}
},
+ "registry-auth-token": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz",
+ "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=",
+ "dev": true,
+ "requires": {
+ "rc": "1.2.2",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "registry-url": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
+ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
+ "dev": true,
+ "requires": {
+ "rc": "1.2.2"
+ }
+ },
"regjsgen": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
@@ -6343,31 +18423,31 @@
}
},
"request": {
- "version": "2.81.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
- "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
+ "version": "2.83.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
+ "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==",
"dev": true,
"requires": {
- "aws-sign2": "0.6.0",
+ "aws-sign2": "0.7.0",
"aws4": "1.6.0",
"caseless": "0.12.0",
"combined-stream": "1.0.5",
"extend": "3.0.1",
"forever-agent": "0.6.1",
- "form-data": "2.1.4",
- "har-validator": "4.2.1",
- "hawk": "3.1.3",
- "http-signature": "1.1.1",
+ "form-data": "2.3.1",
+ "har-validator": "5.0.3",
+ "hawk": "6.0.2",
+ "http-signature": "1.2.0",
"is-typedarray": "1.0.0",
"isstream": "0.1.2",
"json-stringify-safe": "5.0.1",
"mime-types": "2.1.17",
"oauth-sign": "0.8.2",
- "performance-now": "0.2.0",
- "qs": "6.4.0",
+ "performance-now": "2.1.0",
+ "qs": "6.5.1",
"safe-buffer": "5.1.1",
"stringstream": "0.0.5",
- "tough-cookie": "2.3.2",
+ "tough-cookie": "2.3.3",
"tunnel-agent": "0.6.0",
"uuid": "3.1.0"
}
@@ -6407,14 +18487,41 @@
"dev": true
},
"resolve": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz",
- "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
+ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==",
"dev": true,
"requires": {
"path-parse": "1.0.5"
}
},
+ "resolve-cwd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+ "dev": true,
+ "requires": {
+ "resolve-from": "3.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
+ }
+ }
+ },
+ "resolve-dir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+ "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
+ "dev": true,
+ "requires": {
+ "expand-tilde": "2.0.2",
+ "global-modules": "1.0.0"
+ }
+ },
"resolve-from": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
@@ -6422,13 +18529,13 @@
"dev": true
},
"restore-cursor": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
- "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
"dev": true,
"requires": {
- "exit-hook": "1.1.1",
- "onetime": "1.1.0"
+ "onetime": "2.0.1",
+ "signal-exit": "3.0.2"
}
},
"right-align": {
@@ -6441,35 +18548,48 @@
}
},
"rimraf": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
- "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
"dev": true,
"requires": {
"glob": "7.1.2"
}
},
"ripemd160": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz",
- "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=",
- "dev": true
- },
- "run-async": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
- "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
+ "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=",
"dev": true,
"requires": {
- "once": "1.4.0"
+ "hash-base": "2.0.2",
+ "inherits": "2.0.3"
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "dev": true,
+ "requires": {
+ "is-promise": "2.1.0"
}
},
"rx-lite": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
- "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=",
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
"dev": true
},
+ "rx-lite-aggregates": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
+ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
+ "dev": true,
+ "requires": {
+ "rx-lite": "4.0.8"
+ }
+ },
"safe-buffer": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
@@ -6477,12 +18597,13 @@
"dev": true
},
"sane": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/sane/-/sane-1.4.1.tgz",
- "integrity": "sha1-iPdj10BA9fDCVrYWPbOZvxEKxxU=",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/sane/-/sane-1.6.0.tgz",
+ "integrity": "sha1-lhDEUjB6E10pwf3+JUcDQYDEZ3U=",
"dev": true,
"requires": {
- "exec-sh": "0.2.0",
+ "anymatch": "1.3.2",
+ "exec-sh": "0.2.1",
"fb-watchman": "1.9.2",
"minimatch": "3.0.4",
"minimist": "1.2.0",
@@ -6490,6 +18611,24 @@
"watch": "0.10.0"
},
"dependencies": {
+ "bser": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz",
+ "integrity": "sha1-OBEWlwsqbe6lZG3RXdcnhES1YWk=",
+ "dev": true,
+ "requires": {
+ "node-int64": "0.4.0"
+ }
+ },
+ "fb-watchman": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.2.tgz",
+ "integrity": "sha1-okz0eCf4LTj7Waaa1wt247auc4M=",
+ "dev": true,
+ "requires": {
+ "bser": "1.0.2"
+ }
+ },
"minimist": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
@@ -6504,27 +18643,60 @@
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
"dev": true
},
+ "schema-utils": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz",
+ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
+ "dev": true,
+ "requires": {
+ "ajv": "5.5.2"
+ }
+ },
+ "select-hose": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
+ "dev": true
+ },
+ "selfsigned": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.1.tgz",
+ "integrity": "sha1-v4y3uDJWxFUeMTR8YxF3jbme7FI=",
+ "dev": true,
+ "requires": {
+ "node-forge": "0.6.33"
+ }
+ },
"semver": {
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
"integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
"dev": true
},
- "send": {
- "version": "0.15.4",
- "resolved": "https://registry.npmjs.org/send/-/send-0.15.4.tgz",
- "integrity": "sha1-mF+qPihLAnPHkzZKNcZze9k5Bbk=",
+ "semver-diff": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
+ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
"dev": true,
"requires": {
- "debug": "2.6.8",
+ "semver": "5.4.1"
+ }
+ },
+ "send": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz",
+ "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
"depd": "1.1.1",
"destroy": "1.0.4",
"encodeurl": "1.0.1",
"escape-html": "1.0.3",
- "etag": "1.8.0",
- "fresh": "0.5.0",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
"http-errors": "1.6.2",
- "mime": "1.3.4",
+ "mime": "1.4.1",
"ms": "2.0.0",
"on-finished": "2.3.0",
"range-parser": "1.2.0",
@@ -6532,40 +18704,46 @@
},
"dependencies": {
"mime": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
- "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
+ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
"dev": true
}
}
},
"serve-index": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.0.tgz",
- "integrity": "sha1-0rKA/FYNYW7oG0i/D6gqvtJIXOc=",
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
"dev": true,
"requires": {
"accepts": "1.3.4",
"batch": "0.6.1",
- "debug": "2.6.8",
+ "debug": "2.6.9",
"escape-html": "1.0.3",
"http-errors": "1.6.2",
"mime-types": "2.1.17",
- "parseurl": "1.3.1"
+ "parseurl": "1.3.2"
}
},
"serve-static": {
- "version": "1.12.4",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.4.tgz",
- "integrity": "sha1-m2qpjutyU8Tu3Ewfb9vKYJkBqWE=",
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz",
+ "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==",
"dev": true,
"requires": {
"encodeurl": "1.0.1",
"escape-html": "1.0.3",
- "parseurl": "1.3.1",
- "send": "0.15.4"
+ "parseurl": "1.3.2",
+ "send": "0.16.1"
}
},
+ "serviceworker-cache-polyfill": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz",
+ "integrity": "sha1-3hnuc77yGrPAdAo3sz22JGS6ves=",
+ "dev": true
+ },
"set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
@@ -6584,16 +18762,29 @@
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
},
"setprototypeof": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
- "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
"dev": true
},
"sha.js": {
- "version": "2.2.6",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz",
- "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=",
- "dev": true
+ "version": "2.4.9",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz",
+ "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "1.0.0"
+ }
},
"shebang-regex": {
"version": "1.0.0",
@@ -6601,11 +18792,17 @@
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
"dev": true
},
- "shelljs": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.1.tgz",
- "integrity": "sha1-7GIRvtGSBEIIj+D3Cyg3Iy7SyKg=",
- "dev": true
+ "shell-quote": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
+ "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
+ "dev": true,
+ "requires": {
+ "array-filter": "0.0.1",
+ "array-map": "0.0.0",
+ "array-reduce": "0.0.0",
+ "jsonify": "0.0.0"
+ }
},
"shellwords": {
"version": "0.1.1",
@@ -6613,6 +18810,12 @@
"integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
"dev": true
},
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
"slash": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
@@ -6620,18 +18823,27 @@
"dev": true
},
"slice-ansi": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
- "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
+ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0"
+ }
+ },
+ "slide": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
+ "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=",
"dev": true
},
"sntp": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
- "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
+ "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
"dev": true,
"requires": {
- "hoek": "2.16.3"
+ "hoek": "4.2.0"
}
},
"sockjs": {
@@ -6650,7 +18862,7 @@
"integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
"dev": true,
"requires": {
- "websocket-driver": "0.6.5"
+ "websocket-driver": "0.7.0"
}
},
"uuid": {
@@ -6662,17 +18874,17 @@
}
},
"sockjs-client": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.0.3.tgz",
- "integrity": "sha1-sNgoCZhGDrJWTF151+PXz9ijU60=",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz",
+ "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=",
"dev": true,
"requires": {
- "debug": "2.6.8",
+ "debug": "2.6.9",
"eventsource": "0.1.6",
- "faye-websocket": "0.7.3",
+ "faye-websocket": "0.11.1",
"inherits": "2.0.3",
"json3": "3.3.2",
- "url-parse": "1.1.9"
+ "url-parse": "1.2.0"
}
},
"sort-keys": {
@@ -6685,24 +18897,32 @@
}
},
"source-list-map": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz",
- "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz",
+ "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==",
"dev": true
},
"source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
"source-map-support": {
- "version": "0.4.17",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.17.tgz",
- "integrity": "sha512-30c1Ch8FSjV0FwC253iftbbj0dU/OXoSg1LAEGZJUlGgjTNj6cu+DVqJWWIZJY5RXLWV4eFtR+4ouo0VIOYOTg==",
+ "version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
"dev": true,
"requires": {
"source-map": "0.5.7"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
}
},
"spdx-correct": {
@@ -6726,6 +18946,35 @@
"integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
"dev": true
},
+ "spdy": {
+ "version": "3.4.7",
+ "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz",
+ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "handle-thing": "1.2.5",
+ "http-deceiver": "1.2.7",
+ "safe-buffer": "5.1.1",
+ "select-hose": "2.0.0",
+ "spdy-transport": "2.0.20"
+ }
+ },
+ "spdy-transport": {
+ "version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz",
+ "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "detect-node": "2.0.3",
+ "hpack.js": "2.1.6",
+ "obuf": "1.1.1",
+ "readable-stream": "2.3.3",
+ "safe-buffer": "5.1.1",
+ "wbuf": "1.7.2"
+ }
+ },
"sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
@@ -6746,14 +18995,6 @@
"getpass": "0.1.7",
"jsbn": "0.1.1",
"tweetnacl": "0.14.5"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
}
},
"statuses": {
@@ -6772,12 +19013,6 @@
"readable-stream": "2.3.3"
}
},
- "stream-cache": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/stream-cache/-/stream-cache-0.0.2.tgz",
- "integrity": "sha1-GsWtaDJCjKVWZ9ve45Xa1ObbEY8=",
- "dev": true
- },
"stream-http": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz",
@@ -6797,6 +19032,42 @@
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
"dev": true
},
+ "string-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
+ "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=",
+ "dev": true,
+ "requires": {
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ }
+ }
+ },
"string_decoder": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
@@ -6806,17 +19077,6 @@
"safe-buffer": "5.1.1"
}
},
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dev": true,
- "requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
- }
- },
"stringstream": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
@@ -6841,28 +19101,44 @@
"is-utf8": "0.2.1"
}
},
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "4.0.1"
+ }
+ },
"strip-json-comments": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
- "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"dev": true
},
"style-loader": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.1.tgz",
- "integrity": "sha1-RoKA77wEcwI806bNVuM7Wh1/w6k=",
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.0.tgz",
+ "integrity": "sha512-9mx9sC9nX1dgP96MZOODpGC6l1RzQBITI2D5WJhu+wnbrSYVKLGuy14XJSLVQih/0GFrPpjelt+s//VcZQ2Evw==",
"dev": true,
"requires": {
- "loader-utils": "0.2.17"
+ "loader-utils": "1.1.0",
+ "schema-utils": "0.3.0"
}
},
"supports-color": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
- "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
"dev": true,
"requires": {
- "has-flag": "1.0.0"
+ "has-flag": "2.0.0"
}
},
"svgo": {
@@ -6880,6 +19156,45 @@
"whet.extend": "0.9.9"
}
},
+ "sw-precache": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/sw-precache/-/sw-precache-5.2.0.tgz",
+ "integrity": "sha512-sKctdX+5hUxkqJ/1DM88ubQ+QRvyw7CnxWdk909N2DgvxMqc1gcQFrwL7zpVc87wFmCA/OvRQd0iMC2XdFopYg==",
+ "dev": true,
+ "requires": {
+ "dom-urls": "1.1.0",
+ "es6-promise": "4.1.1",
+ "glob": "7.1.2",
+ "lodash.defaults": "4.2.0",
+ "lodash.template": "4.4.0",
+ "meow": "3.7.0",
+ "mkdirp": "0.5.1",
+ "pretty-bytes": "4.0.2",
+ "sw-toolbox": "3.6.0",
+ "update-notifier": "1.0.3"
+ }
+ },
+ "sw-precache-webpack-plugin": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.11.4.tgz",
+ "integrity": "sha1-ppUBflTu1XVVFJOlGdwdqNotxeA=",
+ "dev": true,
+ "requires": {
+ "del": "2.2.2",
+ "sw-precache": "5.2.0",
+ "uglify-js": "3.2.2"
+ }
+ },
+ "sw-toolbox": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/sw-toolbox/-/sw-toolbox-3.6.0.tgz",
+ "integrity": "sha1-Jt8dHHA0hljk3qKIQxkUm3sxg7U=",
+ "dev": true,
+ "requires": {
+ "path-to-regexp": "1.7.0",
+ "serviceworker-cache-polyfill": "4.0.0"
+ }
+ },
"symbol-tree": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
@@ -6887,62 +19202,42 @@
"dev": true
},
"table": {
- "version": "3.8.3",
- "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz",
- "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
+ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
"dev": true,
"requires": {
- "ajv": "4.11.8",
- "ajv-keywords": "1.5.1",
- "chalk": "1.1.3",
+ "ajv": "5.5.2",
+ "ajv-keywords": "2.1.1",
+ "chalk": "2.3.0",
"lodash": "4.17.4",
- "slice-ansi": "0.0.4",
+ "slice-ansi": "1.0.0",
"string-width": "2.1.1"
},
"dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "chalk": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "2.0.0",
- "strip-ansi": "4.0.0"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "3.0.0"
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
}
}
}
},
"tapable": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz",
- "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=",
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz",
+ "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=",
"dev": true
},
"test-exclude": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-2.1.3.tgz",
- "integrity": "sha1-qNiWjh2oMmb5hk8oUsVeIg8GQ0o=",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz",
+ "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==",
"dev": true,
"requires": {
"arrify": "1.0.1",
@@ -6970,12 +19265,24 @@
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
"dev": true
},
+ "thunky": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz",
+ "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=",
+ "dev": true
+ },
"time-stamp": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz",
"integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=",
"dev": true
},
+ "timed-out": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz",
+ "integrity": "sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc=",
+ "dev": true
+ },
"timers-browserify": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz",
@@ -6985,6 +19292,15 @@
"setimmediate": "1.0.5"
}
},
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "1.0.2"
+ }
+ },
"tmpl": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
@@ -7004,15 +19320,15 @@
"dev": true
},
"toposort": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.3.tgz",
- "integrity": "sha1-8CzYp0vYvi/A6YYRw7rLlaFxhpw=",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.6.tgz",
+ "integrity": "sha1-wxdI5V0hDv/AD9zcfW5o19e7nOw=",
"dev": true
},
"tough-cookie": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
- "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
+ "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
"dev": true,
"requires": {
"punycode": "1.4.1"
@@ -7024,18 +19340,18 @@
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
"dev": true
},
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+ "dev": true
+ },
"trim-right": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
"integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
"dev": true
},
- "tryit": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz",
- "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=",
- "dev": true
- },
"tty-browserify": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
@@ -7084,33 +19400,68 @@
"dev": true
},
"ua-parser-js": {
- "version": "0.7.14",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.14.tgz",
- "integrity": "sha1-EQ1T+kw/MmwSEpK76skE0uAzh8o="
+ "version": "0.7.17",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz",
+ "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g=="
},
"uglify-js": {
- "version": "3.0.28",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.28.tgz",
- "integrity": "sha512-0h/qGay016GG2lVav3Kz174F3T2Vjlz2v6HCt+WDQpoXfco0hWwF5gHK9yh88mUYvIC+N7Z8NT8WpjSp1yoqGA==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.2.2.tgz",
+ "integrity": "sha512-++1NO/zZIEdWf6cDIGceSJQPX31SqIpbVAHwFG5+240MtZqPG/NIPoinj8zlXQtAfMBqEt1Jyv2FiLP3n9gVhQ==",
"dev": true,
"requires": {
- "commander": "2.11.0",
- "source-map": "0.5.7"
- },
- "dependencies": {
- "commander": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
- "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
- "dev": true
- }
+ "commander": "2.12.2",
+ "source-map": "0.6.1"
}
},
"uglify-to-browserify": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
"integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
- "dev": true
+ "dev": true,
+ "optional": true
+ },
+ "uglifyjs-webpack-plugin": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz",
+ "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.7",
+ "uglify-js": "2.8.29",
+ "webpack-sources": "1.1.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.7",
+ "uglify-to-browserify": "1.0.2",
+ "yargs": "3.10.0"
+ }
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "dev": true,
+ "requires": {
+ "camelcase": "1.2.1",
+ "cliui": "2.1.0",
+ "decamelize": "1.2.0",
+ "window-size": "0.1.0"
+ }
+ }
+ }
},
"uniq": {
"version": "1.0.1",
@@ -7133,18 +19484,52 @@
"integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
"dev": true
},
+ "universalify": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
+ "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=",
+ "dev": true
+ },
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
"dev": true
},
+ "unzip-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
+ "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=",
+ "dev": true
+ },
+ "update-notifier": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-1.0.3.tgz",
+ "integrity": "sha1-j5LFFUgr1oMbfJMBPnD4dVLHz1o=",
+ "dev": true,
+ "requires": {
+ "boxen": "0.6.0",
+ "chalk": "1.1.3",
+ "configstore": "2.1.0",
+ "is-npm": "1.0.0",
+ "latest-version": "2.0.0",
+ "lazy-req": "1.1.0",
+ "semver-diff": "2.1.0",
+ "xdg-basedir": "2.0.0"
+ }
+ },
"upper-case": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
"integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
"dev": true
},
+ "urijs": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.0.tgz",
+ "integrity": "sha512-Qs2odXn0hST5VSPVjpi73CMqtbAoanahaqWBujGU+IyMrMqpWcIhDewxQRhCkmqYxuyvICDcSuLdv2O7ncWBGw==",
+ "dev": true
+ },
"url": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
@@ -7164,19 +19549,20 @@
}
},
"url-loader": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.5.7.tgz",
- "integrity": "sha1-Z+h3l1n4AA2nSZSQZoDJQ6mwkl0=",
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.6.2.tgz",
+ "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==",
"dev": true,
"requires": {
- "loader-utils": "0.2.17",
- "mime": "1.2.11"
+ "loader-utils": "1.1.0",
+ "mime": "1.6.0",
+ "schema-utils": "0.3.0"
}
},
"url-parse": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.1.9.tgz",
- "integrity": "sha1-xn8dd11R8KGJEd17P/rSe7nlvRk=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz",
+ "integrity": "sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==",
"dev": true,
"requires": {
"querystringify": "1.0.0",
@@ -7191,13 +19577,13 @@
}
}
},
- "user-home": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
- "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
+ "url-parse-lax": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
"dev": true,
"requires": {
- "os-homedir": "1.0.2"
+ "prepend-http": "1.0.4"
}
},
"util": {
@@ -7230,9 +19616,9 @@
"dev": true
},
"utils-merge": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
- "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
"dev": true
},
"uuid": {
@@ -7252,9 +19638,9 @@
}
},
"vary": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz",
- "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
"dev": true
},
"vendors": {
@@ -7272,14 +19658,6 @@
"assert-plus": "1.0.0",
"core-util-is": "1.0.2",
"extsprintf": "1.3.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
}
},
"vm-browserify": {
@@ -7307,22 +19685,23 @@
"dev": true
},
"watchpack": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz",
- "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz",
+ "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=",
"dev": true,
"requires": {
- "async": "0.9.2",
+ "async": "2.6.0",
"chokidar": "1.7.0",
"graceful-fs": "4.1.11"
- },
- "dependencies": {
- "async": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
- "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
- "dev": true
- }
+ }
+ },
+ "wbuf": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz",
+ "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=",
+ "dev": true,
+ "requires": {
+ "minimalistic-assert": "1.0.0"
}
},
"webidl-conversions": {
@@ -7332,191 +19711,411 @@
"dev": true
},
"webpack": {
- "version": "1.14.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.14.0.tgz",
- "integrity": "sha1-VPH/uSBRoyilsgV9auM8KJRiyCM=",
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.8.1.tgz",
+ "integrity": "sha512-5ZXLWWsMqHKFr5y0N3Eo5IIisxeEeRAajNq4mELb/WELOR7srdbQk2N5XiyNy2A/AgvlR3AmeBCZJW8lHrolbw==",
"dev": true,
"requires": {
- "acorn": "3.3.0",
- "async": "1.5.2",
- "clone": "1.0.2",
- "enhanced-resolve": "0.9.1",
- "interpret": "0.6.6",
- "loader-utils": "0.2.17",
- "memory-fs": "0.3.0",
+ "acorn": "5.2.1",
+ "acorn-dynamic-import": "2.0.2",
+ "ajv": "5.5.2",
+ "ajv-keywords": "2.1.1",
+ "async": "2.6.0",
+ "enhanced-resolve": "3.4.1",
+ "escope": "3.6.0",
+ "interpret": "1.1.0",
+ "json-loader": "0.5.7",
+ "json5": "0.5.1",
+ "loader-runner": "2.3.0",
+ "loader-utils": "1.1.0",
+ "memory-fs": "0.4.1",
"mkdirp": "0.5.1",
- "node-libs-browser": "0.7.0",
- "optimist": "0.6.1",
- "supports-color": "3.2.3",
- "tapable": "0.1.10",
- "uglify-js": "2.7.5",
- "watchpack": "0.2.9",
- "webpack-core": "0.6.9"
+ "node-libs-browser": "2.1.0",
+ "source-map": "0.5.7",
+ "supports-color": "4.5.0",
+ "tapable": "0.2.8",
+ "uglifyjs-webpack-plugin": "0.4.6",
+ "watchpack": "1.4.0",
+ "webpack-sources": "1.1.0",
+ "yargs": "8.0.2"
},
"dependencies": {
- "acorn": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
- "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
"dev": true
},
- "uglify-js": {
- "version": "2.7.5",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz",
- "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=",
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
"dev": true,
"requires": {
- "async": "0.2.10",
- "source-map": "0.5.7",
- "uglify-to-browserify": "1.0.2",
- "yargs": "3.10.0"
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wrap-ansi": "2.1.0"
},
"dependencies": {
- "async": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
- "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
- "dev": true
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
}
}
},
- "yargs": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
- "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true,
"requires": {
- "camelcase": "1.2.1",
- "cliui": "2.1.0",
- "decamelize": "1.2.0",
- "window-size": "0.1.0"
+ "number-is-nan": "1.0.1"
}
- }
- }
- },
- "webpack-core": {
- "version": "0.6.9",
- "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz",
- "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=",
- "dev": true,
- "requires": {
- "source-list-map": "0.1.8",
- "source-map": "0.4.4"
- },
- "dependencies": {
- "source-map": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
- "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
"dev": true,
"requires": {
- "amdefine": "1.0.1"
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "strip-bom": "3.0.0"
+ }
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "dev": true,
+ "requires": {
+ "execa": "0.7.0",
+ "lcid": "1.0.0",
+ "mem": "1.1.0"
+ }
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
+ "requires": {
+ "pify": "2.3.0"
+ }
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "2.0.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "2.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
+ "requires": {
+ "find-up": "2.1.0",
+ "read-pkg": "2.0.0"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
+ "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
+ "dev": true,
+ "requires": {
+ "camelcase": "4.1.0",
+ "cliui": "3.2.0",
+ "decamelize": "1.2.0",
+ "get-caller-file": "1.0.2",
+ "os-locale": "2.1.0",
+ "read-pkg-up": "2.0.0",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "2.1.1",
+ "which-module": "2.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "7.0.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+ "dev": true,
+ "requires": {
+ "camelcase": "4.1.0"
}
}
}
},
"webpack-dev-middleware": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz",
- "integrity": "sha1-007++y7dp+HTtdvgcolRMhllFwk=",
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz",
+ "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==",
"dev": true,
"requires": {
"memory-fs": "0.4.1",
- "mime": "1.4.0",
+ "mime": "1.6.0",
"path-is-absolute": "1.0.1",
"range-parser": "1.2.0",
"time-stamp": "2.0.0"
- },
- "dependencies": {
- "memory-fs": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
- "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
- "dev": true,
- "requires": {
- "errno": "0.1.4",
- "readable-stream": "2.3.3"
- }
- },
- "mime": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.0.tgz",
- "integrity": "sha512-n9ChLv77+QQEapYz8lV+rIZAW3HhAPW2CXnzb1GN5uMkuczshwvkW7XPsbzU0ZQN3sP47Er2KVkp2p3KyqZKSQ==",
- "dev": true
- }
}
},
"webpack-dev-server": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-1.16.2.tgz",
- "integrity": "sha1-i+vCxM4cRaFcct12nZugjbMGp5M=",
+ "version": "2.9.4",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.9.4.tgz",
+ "integrity": "sha512-thrqC0EQEoSjXeYgP6pUXcUCZ+LNrKsDPn+mItLnn5VyyNZOJKd06hUP5vqkYwL8nWWXsii0loSF9NHNccT6ow==",
"dev": true,
"requires": {
- "compression": "1.7.0",
- "connect-history-api-fallback": "1.3.0",
- "express": "4.15.4",
- "http-proxy-middleware": "0.17.2",
- "open": "0.0.5",
- "optimist": "0.6.1",
- "serve-index": "1.9.0",
+ "ansi-html": "0.0.7",
+ "array-includes": "3.0.3",
+ "bonjour": "3.5.0",
+ "chokidar": "1.7.0",
+ "compression": "1.7.1",
+ "connect-history-api-fallback": "1.5.0",
+ "debug": "3.1.0",
+ "del": "3.0.0",
+ "express": "4.16.2",
+ "html-entities": "1.2.1",
+ "http-proxy-middleware": "0.17.4",
+ "import-local": "0.1.1",
+ "internal-ip": "1.2.0",
+ "ip": "1.1.5",
+ "killable": "1.0.0",
+ "loglevel": "1.6.0",
+ "opn": "5.1.0",
+ "portfinder": "1.0.13",
+ "selfsigned": "1.10.1",
+ "serve-index": "1.9.1",
"sockjs": "0.3.18",
- "sockjs-client": "1.0.3",
- "stream-cache": "0.0.2",
+ "sockjs-client": "1.1.4",
+ "spdy": "3.4.7",
"strip-ansi": "3.0.1",
- "supports-color": "3.2.3",
- "webpack-dev-middleware": "1.12.0"
+ "supports-color": "4.5.0",
+ "webpack-dev-middleware": "1.12.2",
+ "yargs": "6.6.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wrap-ansi": "2.1.0"
+ }
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "del": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz",
+ "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=",
+ "dev": true,
+ "requires": {
+ "globby": "6.1.0",
+ "is-path-cwd": "1.0.0",
+ "is-path-in-cwd": "1.0.0",
+ "p-map": "1.2.0",
+ "pify": "3.0.0",
+ "rimraf": "2.6.2"
+ }
+ },
+ "globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+ "dev": true,
+ "requires": {
+ "array-union": "1.0.2",
+ "glob": "7.1.2",
+ "object-assign": "4.1.1",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "yargs": {
+ "version": "6.6.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
+ "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
+ "dev": true,
+ "requires": {
+ "camelcase": "3.0.0",
+ "cliui": "3.2.0",
+ "decamelize": "1.2.0",
+ "get-caller-file": "1.0.2",
+ "os-locale": "1.4.0",
+ "read-pkg-up": "1.0.1",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "1.0.2",
+ "which-module": "1.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "4.2.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
+ "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
+ "dev": true,
+ "requires": {
+ "camelcase": "3.0.0"
+ }
+ }
}
},
"webpack-manifest-plugin": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-1.1.0.tgz",
- "integrity": "sha1-a2xxiq3oolN5lXhLRr0umDYFfKo=",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-1.3.2.tgz",
+ "integrity": "sha512-MX60Bv2G83Zks9pi3oLOmRgnPAnwrlMn+lftMrWBm199VQjk46/xgzBi9lPfpZldw2+EI2S+OevuLIaDuxCWRw==",
"dev": true,
"requires": {
"fs-extra": "0.30.0",
"lodash": "4.17.4"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
+ "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "jsonfile": "2.4.0",
+ "klaw": "1.3.1",
+ "path-is-absolute": "1.0.1",
+ "rimraf": "2.6.2"
+ }
+ },
+ "jsonfile": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11"
+ }
+ }
}
},
"webpack-sources": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.1.5.tgz",
- "integrity": "sha1-qh86vw8NdNtxEcQOUAuE+WZkB1A=",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz",
+ "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==",
"dev": true,
"requires": {
- "source-list-map": "0.1.8",
- "source-map": "0.5.7"
+ "source-list-map": "2.0.0",
+ "source-map": "0.6.1"
}
},
"websocket-driver": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz",
- "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=",
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
+ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
"dev": true,
"requires": {
- "websocket-extensions": "0.1.1"
+ "http-parser-js": "0.4.9",
+ "websocket-extensions": "0.1.3"
}
},
"websocket-extensions": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz",
- "integrity": "sha1-domUmcGEtu91Q3fC27DNbLVdKec=",
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
+ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
"dev": true
},
"whatwg-encoding": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz",
- "integrity": "sha1-PGxFGhmO567FWx7GHQkgxngBpfQ=",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz",
+ "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==",
"dev": true,
"requires": {
- "iconv-lite": "0.4.13"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "0.4.13",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
- "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=",
- "dev": true
- }
+ "iconv-lite": "0.4.19"
}
},
"whatwg-fetch": {
@@ -7563,6 +20162,37 @@
"integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
"dev": true
},
+ "widest-line": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz",
+ "integrity": "sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=",
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
+ }
+ },
"window-size": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
@@ -7576,12 +20206,12 @@
"dev": true
},
"worker-farm": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.0.tgz",
- "integrity": "sha512-DHRiUggxtbruaTwnLDm2/BRDKZIoOYvrgYUj5Bam4fU6Gtvc0FaEyoswFPBjMXAweGW2H4BDNIpy//1yXXuaqQ==",
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.2.tgz",
+ "integrity": "sha512-XxiQ9kZN5n6mmnW+mFJ+wXjNNI/Nx4DIdaAKLX1Bn6LYBWlN/zaBhu34DQYPZ1AJobQuu67S2OfDdNSVULvXkQ==",
"dev": true,
"requires": {
- "errno": "0.1.4",
+ "errno": "0.1.6",
"xtend": "4.0.1"
}
},
@@ -7593,6 +20223,28 @@
"requires": {
"string-width": "1.0.2",
"strip-ansi": "3.0.1"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
}
},
"wrappy": {
@@ -7610,6 +20262,26 @@
"mkdirp": "0.5.1"
}
},
+ "write-file-atomic": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz",
+ "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "imurmurhash": "0.1.4",
+ "slide": "1.1.6"
+ }
+ },
+ "xdg-basedir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz",
+ "integrity": "sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=",
+ "dev": true,
+ "requires": {
+ "os-homedir": "1.0.2"
+ }
+ },
"xml-char-classes": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz",
@@ -7641,9 +20313,9 @@
"dev": true
},
"yargs": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
- "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
+ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
"dev": true,
"requires": {
"camelcase": "3.0.0",
@@ -7658,7 +20330,7 @@
"string-width": "1.0.2",
"which-module": "1.0.0",
"y18n": "3.2.1",
- "yargs-parser": "4.2.1"
+ "yargs-parser": "5.0.0"
},
"dependencies": {
"camelcase": {
@@ -7677,13 +20349,33 @@
"strip-ansi": "3.0.1",
"wrap-ansi": "2.1.0"
}
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
}
}
},
"yargs-parser": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
- "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
+ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
"dev": true,
"requires": {
"camelcase": "3.0.0"
diff --git a/examples/react_demo/package.json b/examples/react_demo/package.json
index bb18ccb..9411a36 100755
--- a/examples/react_demo/package.json
+++ b/examples/react_demo/package.json
@@ -3,11 +3,12 @@
"version": "0.1.0",
"private": true,
"devDependencies": {
- "react-scripts": "0.8.4"
+ "react-scripts": "1.0.17"
},
"dependencies": {
- "react": "15.4.1",
- "react-dom": "15.4.1"
+ "jsoneditor": "file:../..",
+ "react": "16.2.0",
+ "react-dom": "16.2.0"
},
"scripts": {
"start": "react-scripts start",
diff --git a/examples/react_demo/src/App.js b/examples/react_demo/src/App.js
index b500ef1..23df197 100755
--- a/examples/react_demo/src/App.js
+++ b/examples/react_demo/src/App.js
@@ -7,7 +7,7 @@ import './App.css'
//
// import JSONEditor from 'jsoneditor/react'
//
-import JSONEditor from '../../../react'
+import JSONEditor from 'jsoneditor/lib/components/JSONEditor'
const json = {
@@ -21,7 +21,7 @@ const json = {
class App extends Component {
state = {
- text: JSON.stringify(json)
+ json
}
render() {
@@ -30,7 +30,7 @@ class App extends Component {
diff --git a/gulpfile.js b/gulpfile.js
deleted file mode 100644
index 5516bd8..0000000
--- a/gulpfile.js
+++ /dev/null
@@ -1,268 +0,0 @@
-const fs = require('fs')
-const gulp = require('gulp')
-const gulpMultiProcess = require('gulp-multi-process')
-const gutil = require('gulp-util')
-const shell = require('gulp-shell')
-const mkdirp = require('mkdirp')
-const babel = require('gulp-babel')
-const webpack = require('webpack')
-const browserSync = require('browser-sync').create()
-
-const WATCH = 'watch'
-const WATCHING = process.argv[2] === WATCH
-
-if (WATCHING) {
- gutil.log('Watching src/*.')
- gutil.log('The bundle ./dist/jsoneditor.js will be updated automatically ')
- gutil.log('on changes in the source code this bundle will not be minified.')
- gutil.log('Also, ./dist/minimalist code is not updated on changes.')
-}
-
-const NAME = 'jsoneditor.js'
-const NAME_MINIMALIST = 'jsoneditor-minimalist.js'
-const NAME_REACT = 'jsoneditor-react.js'
-const NAME_REACT_MINIMALIST = 'jsoneditor-react-minimalist.js'
-const ENTRY = './src/index.js'
-const ENTRY_REACT = './src/components/JSONEditor.js'
-const HEADER = './src/header.js'
-const DIST = './dist'
-const LIB = './lib'
-const EMPTY = __dirname + '/src/utils/empty.js'
-
-// generate banner with today's date and correct version
-function createBanner() {
- const today = gutil.date(new Date(), 'yyyy-mm-dd') // today, formatted as yyyy-mm-dd
- const version = require('./package.json').version // math.js version
-
- return String(fs.readFileSync(HEADER))
- .replace('@@date', today)
- .replace('@@version', version)
-}
-
-const bannerPlugin = new webpack.BannerPlugin(createBanner(), {
- entryOnly: true,
- raw: true
-})
-
-const minifyPlugin = new webpack.optimize.UglifyJsPlugin()
-
-const excludeAcePlugin = new webpack.NormalModuleReplacementPlugin(new RegExp('/assets/ace$'), EMPTY)
-
-const excludeAjvPlugin = new webpack.NormalModuleReplacementPlugin(new RegExp('^ajv$'), EMPTY)
-
-const productionEnvPlugin = new webpack.DefinePlugin({
- 'process.env': {
- NODE_ENV: JSON.stringify('production')
- }
-})
-
-const loaders = [
- { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' },
- { test: /\.json$/, loader: 'json' },
- { test: /\.less$/, loaders: '!style!css!less!' },
- { test: /\.svg$/, loader: 'svg-url-loader' }
-]
-
-// TODO: see if preact can give the same sort of errors and warnings as react does, if so switch to preact for development too
-const resolve = {
- 'alias': {
- 'react': 'preact-compat',
- 'react-dom': 'preact-compat'
- }
-}
-
-// create a single instance of the compiler to allow caching
-const compiler = webpack({
- entry: ENTRY,
- devtool: 'source-map',
- debug: true,
- cache: true,
- bail: true,
- output: {
- library: 'jsoneditor',
- libraryTarget: 'umd',
- path: DIST,
- filename: NAME
- },
- plugins: WATCHING
- ? [bannerPlugin]
- : [bannerPlugin, productionEnvPlugin, minifyPlugin],
- module: {
- loaders
- },
- resolve: WATCHING ? null : resolve
-})
-
-// create a single instance of the compiler to allow caching
-const compilerMinimalist = webpack({
- entry: ENTRY,
- devtool: 'source-map',
- debug: true,
- cache: true,
- output: {
- library: 'jsoneditor',
- libraryTarget: 'umd',
- path: DIST,
- filename: NAME_MINIMALIST
- },
- plugins: [
- bannerPlugin,
- productionEnvPlugin,
- excludeAcePlugin,
- excludeAjvPlugin,
- minifyPlugin
- ],
- module: {
- loaders
- },
- resolve: WATCHING ? null : resolve
-})
-
-const externals = {
- 'react': 'commonjs react'
-}
-
-// FIXME: get the react bundles working
-// create a single instance of the compiler to allow caching
-const compilerReact = webpack({
- entry: ENTRY_REACT,
- devtool: 'source-map',
- debug: true,
- cache: true,
- bail: true,
- output: {
- library: 'JSONEditor',
- libraryTarget: 'umd',
- path: DIST,
- filename: NAME_REACT
- },
- plugins: [
- bannerPlugin,
- productionEnvPlugin,
- minifyPlugin
- ],
- module: {
- loaders
- },
- externals
-})
-
-// FIXME: get the react bundles working
-// create a single instance of the compiler to allow caching
-const compilerReactMinimalist = webpack({
- entry: ENTRY_REACT,
- devtool: 'source-map',
- debug: true,
- cache: true,
- bail: true,
- output: {
- path: DIST,
- filename: NAME_REACT_MINIMALIST
- },
- plugins: [
- bannerPlugin,
- productionEnvPlugin,
- excludeAcePlugin,
- excludeAjvPlugin,
- minifyPlugin
- ],
- module: {
- loaders
- },
- externals
-})
-
-function handleCompilerCallback (err, stats) {
- if (err) {
- gutil.log(err.toString())
- }
-
- if (stats && stats.compilation && stats.compilation.errors) {
- // output soft errors
- stats.compilation.errors.forEach(function (err) {
- gutil.log(err.toString())
- })
- }
-}
-
-function createBundleTask (compiler) {
- return function (done) {
- // update the banner contents (has a date in it which should stay up to date)
- bannerPlugin.banner = createBanner()
-
- compiler.run(function (err, stats) {
- handleCompilerCallback(err, stats)
-
- done()
- })
- }
-}
-
-// make dist folder
-gulp.task('mkdir', function () {
- mkdirp.sync(DIST)
- mkdirp.sync(LIB)
-})
-
-// bundle javascript
-gulp.task('bundle', ['mkdir'], createBundleTask(compiler))
-
-// bundle minimalist version of javascript
-gulp.task('bundle-minimalist', ['mkdir'], createBundleTask(compilerMinimalist))
-
-// compile the source code into es5 code
-gulp.task('compile-es5-lib', ['mkdir'], function () {
- // TODO: compile *.less too
- return gulp
- .src([
- 'src/**/*.js',
- '!src/flow/**/*.js',
- '!src/resources/**/*.js'
- ])
- .pipe(babel())
- .pipe(gulp.dest(LIB));
-})
-
-// bundle react version
-// TODO: remove bundle-react again? (use ./lib instead)
-gulp.task('bundle-react', ['mkdir'], createBundleTask(compilerReact))
-
-// bundle react minimalist version
-// TODO: remove bundle-react-minimalist again? (use ./lib instead)
-gulp.task('bundle-react-minimalist', ['mkdir'], createBundleTask(compilerReactMinimalist))
-
-// TODO: zip file using archiver
-const pkg = 'jsoneditor-' + require('./package.json').version + '.zip'
-gulp.task('zip', shell.task([
- 'zip ' + pkg + ' ' + 'README.md LICENSE HISTORY.md index.html src dist docs examples -r '
-]))
-
-// execute all tasks and reload the browser afterwards
-gulp.task('bundle-and-reload', ['bundle'], function (done) {
- browserSync.reload();
-
- done();
-});
-
-// The watch task (to automatically rebuild when the source code changes)
-// Does only generate jsoneditor.js and jsoneditor.css, and copy the image
-// Does NOT minify the code and does NOT generate the minimalist version
-gulp.task(WATCH, ['bundle'], function() {
- browserSync.init({
- open: 'local',
- server: '.',
- startPath: '/src/develop.html',
- minify: false
- })
-
- gulp.watch('src/**/*', ['bundle-and-reload'])
-})
-
-// The default task (called when you run `gulp`)
-gulp.task('default', function(done) {
- return gulpMultiProcess([
- 'bundle',
- 'bundle-minimalist',
- 'compile-es5-lib'
- ], done);
-})
diff --git a/index.js b/index.js
deleted file mode 100644
index af2df48..0000000
--- a/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./dist/jsoneditor')
diff --git a/package-lock.json b/package-lock.json
index 6d92c06..e0dd1ba 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4,43 +4,108 @@
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+ "abab": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
+ "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=",
+ "dev": true
+ },
"abbrev": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
- "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"dev": true
},
"accepts": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz",
- "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=",
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz",
+ "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=",
"dev": true,
"requires": {
- "mime-types": "2.1.15",
+ "mime-types": "2.1.17",
"negotiator": "0.6.1"
}
},
"acorn": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
- "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz",
+ "integrity": "sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w==",
"dev": true
},
- "after": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/after/-/after-0.8.1.tgz",
- "integrity": "sha1-q11PuIP1loFtNRX495HAr0ht1ic=",
+ "acorn-dynamic-import": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
+ "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
+ "dev": true,
+ "requires": {
+ "acorn": "4.0.13"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+ "dev": true
+ }
+ }
+ },
+ "acorn-globals": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
+ "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
+ "dev": true,
+ "requires": {
+ "acorn": "4.0.13"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+ "dev": true
+ }
+ }
+ },
+ "acorn-jsx": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
+ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
+ "dev": true,
+ "requires": {
+ "acorn": "3.3.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
+ "dev": true
+ }
+ }
+ },
+ "address": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz",
+ "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==",
"dev": true
},
"ajv": {
- "version": "4.10.4",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.10.4.tgz",
- "integrity": "sha1-wJdN0As0ZJhIktYBCqnCyUWTMlQ=",
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
"requires": {
"co": "4.6.0",
- "json-stable-stringify": "1.0.1"
+ "fast-deep-equal": "1.0.0",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1"
}
},
+ "ajv-keywords": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
+ "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
+ "dev": true
+ },
"align-text": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
@@ -73,6 +138,18 @@
"string-width": "1.0.2"
}
},
+ "ansi-escapes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz",
+ "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==",
+ "dev": true
+ },
+ "ansi-html": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
+ "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
+ "dev": true
+ },
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
@@ -86,21 +163,40 @@
"dev": true
},
"anymatch": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz",
- "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
+ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
"dev": true,
"requires": {
- "arrify": "1.0.1",
- "micromatch": "2.3.11"
+ "micromatch": "2.3.11",
+ "normalize-path": "2.1.1"
}
},
- "archy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
- "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
+ "append-transform": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz",
+ "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=",
+ "dev": true,
+ "requires": {
+ "default-require-extensions": "1.0.0"
+ }
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
"dev": true
},
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
+ "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
+ "dev": true,
+ "requires": {
+ "delegates": "1.0.0",
+ "readable-stream": "2.3.3"
+ }
+ },
"argparse": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
@@ -110,6 +206,15 @@
"sprintf-js": "1.0.3"
}
},
+ "aria-query": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-0.7.0.tgz",
+ "integrity": "sha512-/r2lHl09V3o74+2MLKEdewoj37YZqiQZnfen1O4iNlrOjUgeKuu1U2yF3iKh6HJxqF+OXkLMfQv65Z/cvxD6vA==",
+ "dev": true,
+ "requires": {
+ "ast-types-flow": "0.0.7"
+ }
+ },
"arr-diff": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
@@ -119,28 +224,22 @@
"arr-flatten": "1.1.0"
}
},
- "arr-exclude": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/arr-exclude/-/arr-exclude-1.0.0.tgz",
- "integrity": "sha1-38fC5VKicHI8zaBM8xKMjL/lxjE=",
- "dev": true
- },
"arr-flatten": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
"integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
"dev": true
},
- "array-differ": {
+ "array-equal": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
- "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
+ "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
+ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
"dev": true
},
- "array-each": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
- "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=",
+ "array-filter": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
+ "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=",
"dev": true
},
"array-find-index": {
@@ -149,10 +248,32 @@
"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
"dev": true
},
- "array-slice": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.0.0.tgz",
- "integrity": "sha1-5zA08A3MH0CHYAj9IP6ud71LfC8=",
+ "array-flatten": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz",
+ "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=",
+ "dev": true
+ },
+ "array-includes": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
+ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
+ "dev": true,
+ "requires": {
+ "define-properties": "1.1.2",
+ "es-abstract": "1.10.0"
+ }
+ },
+ "array-map": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
+ "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=",
+ "dev": true
+ },
+ "array-reduce": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
+ "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
"dev": true
},
"array-union": {
@@ -176,12 +297,6 @@
"integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
"dev": true
},
- "arraybuffer.slice": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz",
- "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=",
- "dev": true
- },
"arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
@@ -199,6 +314,17 @@
"integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
"dev": true
},
+ "asn1.js": {
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz",
+ "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
+ },
"assert": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
@@ -214,22 +340,31 @@
"integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
"dev": true
},
- "async": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "ast-types-flow": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
+ "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
"dev": true
},
+ "async": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
+ "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
+ "dev": true,
+ "requires": {
+ "lodash": "4.17.4"
+ }
+ },
"async-each": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
"integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
"dev": true
},
- "async-each-series": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz",
- "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=",
+ "async-foreach": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
+ "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
"dev": true
},
"asynckit": {
@@ -238,138 +373,20 @@
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
"dev": true
},
- "auto-bind": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-0.1.0.tgz",
- "integrity": "sha1-einvyMI4jT1XjgL8LfUxyB/8HuE=",
- "dev": true
- },
"autoprefixer": {
- "version": "6.7.7",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz",
- "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.1.6.tgz",
+ "integrity": "sha512-C9yv/UF3X+eJTi/zvfxuyfxmLibYrntpF3qoJYrMeQwgUJOZrZvpJiMG2FMQ3qnhWtF/be4pYONBBw95ZGe3vA==",
"dev": true,
"requires": {
- "browserslist": "1.7.7",
- "caniuse-db": "1.0.30000700",
+ "browserslist": "2.10.0",
+ "caniuse-lite": "1.0.30000784",
"normalize-range": "0.1.2",
"num2fraction": "1.2.2",
- "postcss": "5.2.17",
+ "postcss": "6.0.14",
"postcss-value-parser": "3.3.0"
}
},
- "ava": {
- "version": "0.17.0",
- "resolved": "https://registry.npmjs.org/ava/-/ava-0.17.0.tgz",
- "integrity": "sha1-NZ4qiWFoAe8Dkpw88QqdT45FHQI=",
- "dev": true,
- "requires": {
- "arr-flatten": "1.1.0",
- "array-union": "1.0.2",
- "array-uniq": "1.0.3",
- "arrify": "1.0.1",
- "auto-bind": "0.1.0",
- "ava-files": "0.2.0",
- "ava-init": "0.1.6",
- "babel-code-frame": "6.22.0",
- "babel-core": "6.23.1",
- "babel-plugin-ava-throws-helper": "0.1.0",
- "babel-plugin-detective": "2.0.0",
- "babel-plugin-espower": "2.3.2",
- "babel-plugin-transform-runtime": "6.23.0",
- "babel-preset-es2015": "6.24.1",
- "babel-preset-es2015-node4": "2.1.1",
- "babel-preset-stage-2": "6.18.0",
- "babel-runtime": "6.23.0",
- "bluebird": "3.5.0",
- "caching-transform": "1.0.1",
- "chalk": "1.1.3",
- "chokidar": "1.7.0",
- "clean-yaml-object": "0.1.0",
- "cli-cursor": "1.0.2",
- "cli-spinners": "0.1.2",
- "cli-truncate": "0.2.1",
- "co-with-promise": "4.6.0",
- "common-path-prefix": "1.0.0",
- "convert-source-map": "1.5.0",
- "core-assert": "0.2.1",
- "currently-unhandled": "0.4.1",
- "debug": "2.6.8",
- "empower-core": "0.6.2",
- "figures": "1.7.0",
- "find-cache-dir": "0.1.1",
- "fn-name": "2.0.1",
- "get-port": "2.1.0",
- "has-flag": "2.0.0",
- "ignore-by-default": "1.0.1",
- "is-ci": "1.0.10",
- "is-generator-fn": "1.0.0",
- "is-obj": "1.0.1",
- "is-observable": "0.2.0",
- "is-promise": "2.1.0",
- "last-line-stream": "1.0.0",
- "lodash.debounce": "4.0.8",
- "lodash.difference": "4.5.0",
- "lodash.isequal": "4.5.0",
- "loud-rejection": "1.6.0",
- "matcher": "0.1.2",
- "max-timeout": "1.0.0",
- "md5-hex": "1.3.0",
- "meow": "3.7.0",
- "ms": "0.7.3",
- "object-assign": "4.1.1",
- "observable-to-promise": "0.4.0",
- "option-chain": "0.1.1",
- "package-hash": "1.2.0",
- "pkg-conf": "1.1.3",
- "plur": "2.1.2",
- "power-assert-context-formatter": "1.1.1",
- "power-assert-renderer-assertion": "1.1.1",
- "power-assert-renderer-succinct": "1.1.1",
- "pretty-ms": "2.1.0",
- "repeating": "2.0.1",
- "require-precompiled": "0.1.0",
- "resolve-cwd": "1.0.0",
- "semver": "5.3.0",
- "set-immediate-shim": "1.0.1",
- "source-map-support": "0.4.15",
- "stack-utils": "0.4.0",
- "strip-ansi": "3.0.1",
- "strip-bom": "2.0.0",
- "time-require": "0.1.2",
- "unique-temp-dir": "1.0.0",
- "update-notifier": "1.0.3"
- }
- },
- "ava-files": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/ava-files/-/ava-files-0.2.0.tgz",
- "integrity": "sha1-x7i24uDOpjtXpuJ+DbFFx8Gc/iA=",
- "dev": true,
- "requires": {
- "auto-bind": "0.1.0",
- "bluebird": "3.5.0",
- "globby": "6.1.0",
- "ignore-by-default": "1.0.1",
- "lodash.flatten": "4.4.0",
- "multimatch": "2.1.0",
- "slash": "1.0.0"
- }
- },
- "ava-init": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/ava-init/-/ava-init-0.1.6.tgz",
- "integrity": "sha1-7xntCyS2vzWdrW+63xoF2DY5XJE=",
- "dev": true,
- "requires": {
- "arr-exclude": "1.0.0",
- "cross-spawn": "4.0.2",
- "pinkie-promise": "2.0.1",
- "read-pkg-up": "1.0.1",
- "the-argv": "1.0.0",
- "write-pkg": "1.0.0"
- }
- },
"aws-sign2": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
@@ -382,10 +399,42 @@
"integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
"dev": true
},
+ "axobject-query": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-0.1.0.tgz",
+ "integrity": "sha1-YvWdvFnJ+SQnWco0mWDnov48NsA=",
+ "dev": true,
+ "requires": {
+ "ast-types-flow": "0.0.7"
+ }
+ },
+ "babel-cli": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz",
+ "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=",
+ "dev": true,
+ "requires": {
+ "babel-core": "6.26.0",
+ "babel-polyfill": "6.26.0",
+ "babel-register": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "chokidar": "1.7.0",
+ "commander": "2.12.2",
+ "convert-source-map": "1.5.1",
+ "fs-readdir-recursive": "1.1.0",
+ "glob": "7.1.2",
+ "lodash": "4.17.4",
+ "output-file-sync": "1.1.2",
+ "path-is-absolute": "1.0.1",
+ "slash": "1.0.0",
+ "source-map": "0.5.7",
+ "v8flags": "2.1.1"
+ }
+ },
"babel-code-frame": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz",
- "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
"dev": true,
"requires": {
"chalk": "1.1.3",
@@ -394,59 +443,60 @@
}
},
"babel-core": {
- "version": "6.23.1",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.23.1.tgz",
- "integrity": "sha1-wUPLYhuy9iFxDCIMXVedFbikQt8=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz",
+ "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=",
"dev": true,
"requires": {
- "babel-code-frame": "6.22.0",
- "babel-generator": "6.25.0",
+ "babel-code-frame": "6.26.0",
+ "babel-generator": "6.26.0",
"babel-helpers": "6.24.1",
"babel-messages": "6.23.0",
- "babel-register": "6.24.1",
- "babel-runtime": "6.23.0",
- "babel-template": "6.25.0",
- "babel-traverse": "6.25.0",
- "babel-types": "6.25.0",
- "babylon": "6.17.4",
- "convert-source-map": "1.5.0",
- "debug": "2.6.8",
+ "babel-register": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "convert-source-map": "1.5.1",
+ "debug": "2.6.9",
"json5": "0.5.1",
"lodash": "4.17.4",
"minimatch": "3.0.4",
"path-is-absolute": "1.0.1",
- "private": "0.1.7",
+ "private": "0.1.8",
"slash": "1.0.0",
- "source-map": "0.5.6"
+ "source-map": "0.5.7"
+ }
+ },
+ "babel-eslint": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz",
+ "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0"
}
},
"babel-generator": {
- "version": "6.25.0",
- "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz",
- "integrity": "sha1-M6GvcNXyiQrrRlpKd5PB32qeqfw=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz",
+ "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=",
"dev": true,
"requires": {
"babel-messages": "6.23.0",
- "babel-runtime": "6.23.0",
- "babel-types": "6.25.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
"detect-indent": "4.0.0",
"jsesc": "1.3.0",
"lodash": "4.17.4",
- "source-map": "0.5.6",
+ "source-map": "0.5.7",
"trim-right": "1.0.1"
}
},
- "babel-helper-bindify-decorators": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz",
- "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.23.0",
- "babel-traverse": "6.25.0",
- "babel-types": "6.25.0"
- }
- },
"babel-helper-builder-binary-assignment-operator-visitor": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
@@ -454,8 +504,19 @@
"dev": true,
"requires": {
"babel-helper-explode-assignable-expression": "6.24.1",
- "babel-runtime": "6.23.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-helper-builder-react-jsx": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz",
+ "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "esutils": "2.0.2"
}
},
"babel-helper-call-delegate": {
@@ -465,20 +526,20 @@
"dev": true,
"requires": {
"babel-helper-hoist-variables": "6.24.1",
- "babel-runtime": "6.23.0",
- "babel-traverse": "6.25.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-helper-define-map": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz",
- "integrity": "sha1-epdH8ljYlH0y1RX2qhx70CIEoIA=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
+ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
"dev": true,
"requires": {
"babel-helper-function-name": "6.24.1",
- "babel-runtime": "6.23.0",
- "babel-types": "6.25.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
"lodash": "4.17.4"
}
},
@@ -488,21 +549,9 @@
"integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0",
- "babel-traverse": "6.25.0",
- "babel-types": "6.25.0"
- }
- },
- "babel-helper-explode-class": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz",
- "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=",
- "dev": true,
- "requires": {
- "babel-helper-bindify-decorators": "6.24.1",
- "babel-runtime": "6.23.0",
- "babel-traverse": "6.25.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-helper-function-name": {
@@ -512,10 +561,10 @@
"dev": true,
"requires": {
"babel-helper-get-function-arity": "6.24.1",
- "babel-runtime": "6.23.0",
- "babel-template": "6.25.0",
- "babel-traverse": "6.25.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-helper-get-function-arity": {
@@ -524,8 +573,8 @@
"integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-helper-hoist-variables": {
@@ -534,8 +583,8 @@
"integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-helper-optimise-call-expression": {
@@ -544,18 +593,18 @@
"integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-helper-regex": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz",
- "integrity": "sha1-024i+rEAjXnYhkjjIRaGgShFbOg=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
+ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0",
- "babel-types": "6.25.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
"lodash": "4.17.4"
}
},
@@ -566,10 +615,10 @@
"dev": true,
"requires": {
"babel-helper-function-name": "6.24.1",
- "babel-runtime": "6.23.0",
- "babel-template": "6.25.0",
- "babel-traverse": "6.25.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-helper-replace-supers": {
@@ -580,10 +629,10 @@
"requires": {
"babel-helper-optimise-call-expression": "6.24.1",
"babel-messages": "6.23.0",
- "babel-runtime": "6.23.0",
- "babel-template": "6.25.0",
- "babel-traverse": "6.25.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-helpers": {
@@ -592,20 +641,30 @@
"integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0",
- "babel-template": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
+ }
+ },
+ "babel-jest": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-20.0.3.tgz",
+ "integrity": "sha1-5KA7E9wQOJ4UD8ZF0J/8TO0wFnE=",
+ "dev": true,
+ "requires": {
+ "babel-core": "6.26.0",
+ "babel-plugin-istanbul": "4.1.5",
+ "babel-preset-jest": "20.0.3"
}
},
"babel-loader": {
- "version": "6.2.10",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.10.tgz",
- "integrity": "sha1-re/CskIyDNXRXmWzHOoOixsC1LA=",
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz",
+ "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==",
"dev": true,
"requires": {
- "find-cache-dir": "0.1.1",
- "loader-utils": "0.2.17",
- "mkdirp": "0.5.1",
- "object-assign": "4.1.1"
+ "find-cache-dir": "1.0.0",
+ "loader-utils": "1.1.0",
+ "mkdirp": "0.5.1"
}
},
"babel-messages": {
@@ -614,17 +673,7 @@
"integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0"
- }
- },
- "babel-plugin-ava-throws-helper": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-ava-throws-helper/-/babel-plugin-ava-throws-helper-0.1.0.tgz",
- "integrity": "sha1-lREHcIoSIIAmv4ykzvGKh7ybDP4=",
- "dev": true,
- "requires": {
- "babel-template": "6.25.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-check-es2015-constants": {
@@ -633,62 +682,69 @@
"integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0"
+ "babel-runtime": "6.26.0"
}
},
- "babel-plugin-detective": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-detective/-/babel-plugin-detective-2.0.0.tgz",
- "integrity": "sha1-bmQug8IqM1J5dU6+LXVNJjX0nxM=",
- "dev": true
- },
- "babel-plugin-espower": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-espower/-/babel-plugin-espower-2.3.2.tgz",
- "integrity": "sha1-VRa4/NsmyfDh2BYHSfbkxl5xJx4=",
+ "babel-plugin-dynamic-import-node": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.1.0.tgz",
+ "integrity": "sha512-tTfZbM9Ecwj3GK50mnPrUpinTwA4xXmDiQGCk/aBYbvl1+X8YqldK86wZ1owVJ4u3mrKbRlXMma80J18qwiaTQ==",
"dev": true,
"requires": {
- "babel-generator": "6.25.0",
- "babylon": "6.17.4",
- "call-matcher": "1.0.1",
- "core-js": "2.4.1",
- "espower-location-detector": "1.0.0",
- "espurify": "1.7.0",
- "estraverse": "4.2.0"
+ "babel-plugin-syntax-dynamic-import": "6.18.0",
+ "babel-template": "6.26.0",
+ "babel-types": "6.26.0"
+ }
+ },
+ "babel-plugin-external-helpers": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz",
+ "integrity": "sha1-IoX0iwK9Xe3oUXXK+MYuhq3M76E=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz",
+ "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=",
+ "dev": true,
+ "requires": {
+ "find-up": "2.1.0",
+ "istanbul-lib-instrument": "1.9.1",
+ "test-exclude": "4.1.1"
},
"dependencies": {
- "core-js": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz",
- "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=",
- "dev": true
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "2.0.0"
+ }
}
}
},
+ "babel-plugin-jest-hoist": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz",
+ "integrity": "sha1-r+3IU70/jcNUjqZx++adA8wsF2c=",
+ "dev": true
+ },
"babel-plugin-syntax-async-functions": {
"version": "6.13.0",
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
"integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
"dev": true
},
- "babel-plugin-syntax-async-generators": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz",
- "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=",
- "dev": true
- },
"babel-plugin-syntax-class-properties": {
"version": "6.13.0",
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz",
"integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=",
"dev": true
},
- "babel-plugin-syntax-decorators": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz",
- "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=",
- "dev": true
- },
"babel-plugin-syntax-dynamic-import": {
"version": "6.18.0",
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
@@ -707,6 +763,12 @@
"integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=",
"dev": true
},
+ "babel-plugin-syntax-jsx": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
+ "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=",
+ "dev": true
+ },
"babel-plugin-syntax-object-rest-spread": {
"version": "6.13.0",
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
@@ -719,17 +781,6 @@
"integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
"dev": true
},
- "babel-plugin-transform-async-generator-functions": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz",
- "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=",
- "dev": true,
- "requires": {
- "babel-helper-remap-async-to-generator": "6.24.1",
- "babel-plugin-syntax-async-generators": "6.13.0",
- "babel-runtime": "6.23.0"
- }
- },
"babel-plugin-transform-async-to-generator": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
@@ -738,7 +789,7 @@
"requires": {
"babel-helper-remap-async-to-generator": "6.24.1",
"babel-plugin-syntax-async-functions": "6.13.0",
- "babel-runtime": "6.23.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-class-properties": {
@@ -749,21 +800,8 @@
"requires": {
"babel-helper-function-name": "6.24.1",
"babel-plugin-syntax-class-properties": "6.13.0",
- "babel-runtime": "6.23.0",
- "babel-template": "6.25.0"
- }
- },
- "babel-plugin-transform-decorators": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz",
- "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=",
- "dev": true,
- "requires": {
- "babel-helper-explode-class": "6.24.1",
- "babel-plugin-syntax-decorators": "6.13.0",
- "babel-runtime": "6.23.0",
- "babel-template": "6.25.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
}
},
"babel-plugin-transform-es2015-arrow-functions": {
@@ -772,7 +810,7 @@
"integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-block-scoped-functions": {
@@ -781,19 +819,19 @@
"integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-block-scoping": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz",
- "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
+ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0",
- "babel-template": "6.25.0",
- "babel-traverse": "6.25.0",
- "babel-types": "6.25.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
"lodash": "4.17.4"
}
},
@@ -803,15 +841,15 @@
"integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
"dev": true,
"requires": {
- "babel-helper-define-map": "6.24.1",
+ "babel-helper-define-map": "6.26.0",
"babel-helper-function-name": "6.24.1",
"babel-helper-optimise-call-expression": "6.24.1",
"babel-helper-replace-supers": "6.24.1",
"babel-messages": "6.23.0",
- "babel-runtime": "6.23.0",
- "babel-template": "6.25.0",
- "babel-traverse": "6.25.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-computed-properties": {
@@ -820,8 +858,8 @@
"integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0",
- "babel-template": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
}
},
"babel-plugin-transform-es2015-destructuring": {
@@ -830,7 +868,7 @@
"integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-duplicate-keys": {
@@ -839,8 +877,8 @@
"integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-for-of": {
@@ -849,7 +887,7 @@
"integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-function-name": {
@@ -859,8 +897,8 @@
"dev": true,
"requires": {
"babel-helper-function-name": "6.24.1",
- "babel-runtime": "6.23.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-literals": {
@@ -869,7 +907,7 @@
"integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-modules-amd": {
@@ -878,21 +916,21 @@
"integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
"dev": true,
"requires": {
- "babel-plugin-transform-es2015-modules-commonjs": "6.24.1",
- "babel-runtime": "6.23.0",
- "babel-template": "6.25.0"
+ "babel-plugin-transform-es2015-modules-commonjs": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
}
},
"babel-plugin-transform-es2015-modules-commonjs": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz",
- "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz",
+ "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=",
"dev": true,
"requires": {
"babel-plugin-transform-strict-mode": "6.24.1",
- "babel-runtime": "6.23.0",
- "babel-template": "6.25.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-modules-systemjs": {
@@ -902,8 +940,8 @@
"dev": true,
"requires": {
"babel-helper-hoist-variables": "6.24.1",
- "babel-runtime": "6.23.0",
- "babel-template": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
}
},
"babel-plugin-transform-es2015-modules-umd": {
@@ -913,8 +951,8 @@
"dev": true,
"requires": {
"babel-plugin-transform-es2015-modules-amd": "6.24.1",
- "babel-runtime": "6.23.0",
- "babel-template": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0"
}
},
"babel-plugin-transform-es2015-object-super": {
@@ -924,7 +962,7 @@
"dev": true,
"requires": {
"babel-helper-replace-supers": "6.24.1",
- "babel-runtime": "6.23.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-parameters": {
@@ -935,10 +973,10 @@
"requires": {
"babel-helper-call-delegate": "6.24.1",
"babel-helper-get-function-arity": "6.24.1",
- "babel-runtime": "6.23.0",
- "babel-template": "6.25.0",
- "babel-traverse": "6.25.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-shorthand-properties": {
@@ -947,8 +985,8 @@
"integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-spread": {
@@ -957,7 +995,7 @@
"integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-sticky-regex": {
@@ -966,9 +1004,9 @@
"integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
"dev": true,
"requires": {
- "babel-helper-regex": "6.24.1",
- "babel-runtime": "6.23.0",
- "babel-types": "6.25.0"
+ "babel-helper-regex": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-template-literals": {
@@ -977,7 +1015,7 @@
"integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-typeof-symbol": {
@@ -986,7 +1024,7 @@
"integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-unicode-regex": {
@@ -995,8 +1033,8 @@
"integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
"dev": true,
"requires": {
- "babel-helper-regex": "6.24.1",
- "babel-runtime": "6.23.0",
+ "babel-helper-regex": "6.26.0",
+ "babel-runtime": "6.26.0",
"regexpu-core": "2.0.0"
}
},
@@ -1008,36 +1046,85 @@
"requires": {
"babel-helper-builder-binary-assignment-operator-visitor": "6.24.1",
"babel-plugin-syntax-exponentiation-operator": "6.13.0",
- "babel-runtime": "6.23.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-flow-strip-types": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.21.0.tgz",
- "integrity": "sha1-Luo/i1uyNDObRyg/6sFVz7I3uUg=",
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz",
+ "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=",
"dev": true,
"requires": {
"babel-plugin-syntax-flow": "6.18.0",
- "babel-runtime": "6.23.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-object-rest-spread": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz",
- "integrity": "sha1-h11ryb52HFiirj/u5dxIldjH+SE=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
+ "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
"dev": true,
"requires": {
"babel-plugin-syntax-object-rest-spread": "6.13.0",
- "babel-runtime": "6.23.0"
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-react-constant-elements": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.23.0.tgz",
+ "integrity": "sha1-LxGb9NLN1F65uqrldAU8YE9hR90=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-react-display-name": {
+ "version": "6.25.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz",
+ "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-react-jsx": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
+ "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
+ "dev": true,
+ "requires": {
+ "babel-helper-builder-react-jsx": "6.26.0",
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-react-jsx-self": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz",
+ "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-plugin-transform-react-jsx-source": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz",
+ "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-regenerator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz",
- "integrity": "sha1-uNowWtQ8PJm0hI5P5AN7dw0jxBg=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
+ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
"dev": true,
"requires": {
- "regenerator-transform": "0.9.11"
+ "regenerator-transform": "0.10.1"
}
},
"babel-plugin-transform-runtime": {
@@ -1046,7 +1133,7 @@
"integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0"
+ "babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-strict-mode": {
@@ -1055,20 +1142,47 @@
"integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0",
- "babel-types": "6.25.0"
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0"
}
},
- "babel-preset-es2015": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz",
- "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=",
+ "babel-polyfill": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
+ "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "core-js": "2.5.3",
+ "regenerator-runtime": "0.10.5"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz",
+ "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=",
+ "dev": true
+ },
+ "regenerator-runtime": {
+ "version": "0.10.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
+ "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=",
+ "dev": true
+ }
+ }
+ },
+ "babel-preset-env": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz",
+ "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==",
"dev": true,
"requires": {
"babel-plugin-check-es2015-constants": "6.22.0",
+ "babel-plugin-syntax-trailing-function-commas": "6.22.0",
+ "babel-plugin-transform-async-to-generator": "6.24.1",
"babel-plugin-transform-es2015-arrow-functions": "6.22.0",
"babel-plugin-transform-es2015-block-scoped-functions": "6.22.0",
- "babel-plugin-transform-es2015-block-scoping": "6.24.1",
+ "babel-plugin-transform-es2015-block-scoping": "6.26.0",
"babel-plugin-transform-es2015-classes": "6.24.1",
"babel-plugin-transform-es2015-computed-properties": "6.24.1",
"babel-plugin-transform-es2015-destructuring": "6.23.0",
@@ -1077,7 +1191,7 @@
"babel-plugin-transform-es2015-function-name": "6.24.1",
"babel-plugin-transform-es2015-literals": "6.22.0",
"babel-plugin-transform-es2015-modules-amd": "6.24.1",
- "babel-plugin-transform-es2015-modules-commonjs": "6.24.1",
+ "babel-plugin-transform-es2015-modules-commonjs": "6.26.0",
"babel-plugin-transform-es2015-modules-systemjs": "6.24.1",
"babel-plugin-transform-es2015-modules-umd": "6.24.1",
"babel-plugin-transform-es2015-object-super": "6.24.1",
@@ -1088,170 +1202,152 @@
"babel-plugin-transform-es2015-template-literals": "6.22.0",
"babel-plugin-transform-es2015-typeof-symbol": "6.23.0",
"babel-plugin-transform-es2015-unicode-regex": "6.24.1",
- "babel-plugin-transform-regenerator": "6.24.1"
+ "babel-plugin-transform-exponentiation-operator": "6.24.1",
+ "babel-plugin-transform-regenerator": "6.26.0",
+ "browserslist": "2.10.0",
+ "invariant": "2.2.2",
+ "semver": "5.4.1"
}
},
- "babel-preset-es2015-node4": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/babel-preset-es2015-node4/-/babel-preset-es2015-node4-2.1.1.tgz",
- "integrity": "sha1-4x8pCFm1hhnIz6JB0bC8kA+UHNs=",
+ "babel-preset-flow": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz",
+ "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=",
"dev": true,
"requires": {
- "babel-plugin-transform-es2015-destructuring": "6.23.0",
- "babel-plugin-transform-es2015-function-name": "6.24.1",
- "babel-plugin-transform-es2015-modules-commonjs": "6.24.1",
- "babel-plugin-transform-es2015-parameters": "6.24.1",
- "babel-plugin-transform-es2015-shorthand-properties": "6.24.1",
- "babel-plugin-transform-es2015-spread": "6.22.0",
- "babel-plugin-transform-es2015-sticky-regex": "6.24.1",
- "babel-plugin-transform-es2015-unicode-regex": "6.24.1"
+ "babel-plugin-transform-flow-strip-types": "6.22.0"
}
},
- "babel-preset-stage-2": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.18.0.tgz",
- "integrity": "sha1-nre/mo6RxoJg1bp1AEk8qq2ktbU=",
+ "babel-preset-jest": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz",
+ "integrity": "sha1-y6yq3stdaJyh4d4TYOv8ZoYsF4o=",
"dev": true,
"requires": {
+ "babel-plugin-jest-hoist": "20.0.3"
+ }
+ },
+ "babel-preset-react": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz",
+ "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-plugin-transform-react-display-name": "6.25.0",
+ "babel-plugin-transform-react-jsx": "6.24.1",
+ "babel-plugin-transform-react-jsx-self": "6.22.0",
+ "babel-plugin-transform-react-jsx-source": "6.22.0",
+ "babel-preset-flow": "6.23.0"
+ }
+ },
+ "babel-preset-react-app": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-3.1.0.tgz",
+ "integrity": "sha512-jEAeVozxLzftLl0iDZ0d5jrmfbo3yogON/eI4AsEDIs8p6WW+t9mDRUsj5l12bqPOLSiVOElCQ3QyGjMcyBiwA==",
+ "dev": true,
+ "requires": {
+ "babel-plugin-dynamic-import-node": "1.1.0",
"babel-plugin-syntax-dynamic-import": "6.18.0",
"babel-plugin-transform-class-properties": "6.24.1",
- "babel-plugin-transform-decorators": "6.24.1",
- "babel-preset-stage-3": "6.17.0"
- }
- },
- "babel-preset-stage-3": {
- "version": "6.17.0",
- "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.17.0.tgz",
- "integrity": "sha1-tmOORttukeP4iQE9jOFDkXxoXjk=",
- "dev": true,
- "requires": {
- "babel-plugin-syntax-trailing-function-commas": "6.22.0",
- "babel-plugin-transform-async-generator-functions": "6.24.1",
- "babel-plugin-transform-async-to-generator": "6.24.1",
- "babel-plugin-transform-exponentiation-operator": "6.24.1",
- "babel-plugin-transform-object-rest-spread": "6.23.0"
+ "babel-plugin-transform-object-rest-spread": "6.26.0",
+ "babel-plugin-transform-react-constant-elements": "6.23.0",
+ "babel-plugin-transform-react-jsx": "6.24.1",
+ "babel-plugin-transform-react-jsx-self": "6.22.0",
+ "babel-plugin-transform-react-jsx-source": "6.22.0",
+ "babel-plugin-transform-regenerator": "6.26.0",
+ "babel-plugin-transform-runtime": "6.23.0",
+ "babel-preset-env": "1.6.1",
+ "babel-preset-react": "6.24.1"
}
},
"babel-register": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz",
- "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
+ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
"dev": true,
"requires": {
- "babel-core": "6.25.0",
- "babel-runtime": "6.23.0",
- "core-js": "2.4.1",
+ "babel-core": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "core-js": "2.5.3",
"home-or-tmp": "2.0.0",
"lodash": "4.17.4",
"mkdirp": "0.5.1",
- "source-map-support": "0.4.15"
+ "source-map-support": "0.4.18"
},
"dependencies": {
- "babel-core": {
- "version": "6.25.0",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.25.0.tgz",
- "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=",
- "dev": true,
- "requires": {
- "babel-code-frame": "6.22.0",
- "babel-generator": "6.25.0",
- "babel-helpers": "6.24.1",
- "babel-messages": "6.23.0",
- "babel-register": "6.24.1",
- "babel-runtime": "6.23.0",
- "babel-template": "6.25.0",
- "babel-traverse": "6.25.0",
- "babel-types": "6.25.0",
- "babylon": "6.17.4",
- "convert-source-map": "1.5.0",
- "debug": "2.6.8",
- "json5": "0.5.1",
- "lodash": "4.17.4",
- "minimatch": "3.0.4",
- "path-is-absolute": "1.0.1",
- "private": "0.1.7",
- "slash": "1.0.0",
- "source-map": "0.5.6"
- }
- },
"core-js": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz",
- "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=",
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz",
+ "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=",
"dev": true
}
}
},
"babel-runtime": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz",
- "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.4.1",
- "regenerator-runtime": "0.10.5"
+ "core-js": "2.5.3",
+ "regenerator-runtime": "0.11.1"
},
"dependencies": {
"core-js": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz",
- "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=",
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz",
+ "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=",
"dev": true
}
}
},
"babel-template": {
- "version": "6.25.0",
- "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz",
- "integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0",
- "babel-traverse": "6.25.0",
- "babel-types": "6.25.0",
- "babylon": "6.17.4",
+ "babel-runtime": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
"lodash": "4.17.4"
}
},
"babel-traverse": {
- "version": "6.25.0",
- "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz",
- "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
"dev": true,
"requires": {
- "babel-code-frame": "6.22.0",
+ "babel-code-frame": "6.26.0",
"babel-messages": "6.23.0",
- "babel-runtime": "6.23.0",
- "babel-types": "6.25.0",
- "babylon": "6.17.4",
- "debug": "2.6.8",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "debug": "2.6.9",
"globals": "9.18.0",
"invariant": "2.2.2",
"lodash": "4.17.4"
}
},
"babel-types": {
- "version": "6.25.0",
- "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz",
- "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0",
+ "babel-runtime": "6.26.0",
"esutils": "2.0.2",
"lodash": "4.17.4",
"to-fast-properties": "1.0.3"
}
},
"babylon": {
- "version": "6.17.4",
- "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz",
- "integrity": "sha512-kChlV+0SXkjE0vUn9OZ7pBMWRFd8uq3mZe8x1K6jhuNcAFAtEnjchFAqB+dYEXKyd+JpT6eppRR78QAr5gTsUw==",
- "dev": true
- },
- "backo2": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
- "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
"dev": true
},
"balanced-match": {
@@ -1260,28 +1356,16 @@
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
- "base64-arraybuffer": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
- "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=",
- "dev": true
- },
"base64-js": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz",
"integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==",
"dev": true
},
- "base64id": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz",
- "integrity": "sha1-As4P3u4M709ACA4ec+g08LG/zj8=",
- "dev": true
- },
"batch": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz",
- "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=",
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
"dev": true
},
"bcrypt-pbkdf": {
@@ -1294,43 +1378,83 @@
"tweetnacl": "0.14.5"
}
},
- "beeper": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
- "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=",
- "dev": true
- },
- "better-assert": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
- "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
- "dev": true,
- "requires": {
- "callsite": "1.0.0"
- }
- },
"big.js": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz",
- "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
"dev": true
},
"binary-extensions": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz",
- "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=",
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz",
+ "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
"dev": true
},
- "blob": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz",
- "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=",
- "dev": true
+ "block-stream": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
},
"bluebird": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
+ "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
+ "dev": true
+ },
+ "bn.js": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+ "dev": true
+ },
+ "body-parser": {
+ "version": "1.18.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
+ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
+ "dev": true,
+ "requires": {
+ "bytes": "3.0.0",
+ "content-type": "1.0.4",
+ "debug": "2.6.9",
+ "depd": "1.1.1",
+ "http-errors": "1.6.2",
+ "iconv-lite": "0.4.19",
+ "on-finished": "2.3.0",
+ "qs": "6.5.1",
+ "raw-body": "2.3.2",
+ "type-is": "1.6.15"
+ },
+ "dependencies": {
+ "qs": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
+ "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
+ "dev": true
+ }
+ }
+ },
+ "bonjour": {
"version": "3.5.0",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz",
- "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=",
+ "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
+ "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+ "dev": true,
+ "requires": {
+ "array-flatten": "2.1.1",
+ "deep-equal": "1.0.1",
+ "dns-equal": "1.0.0",
+ "dns-txt": "2.0.2",
+ "multicast-dns": "6.2.1",
+ "multicast-dns-service-types": "1.1.0"
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
"dev": true
},
"boom": {
@@ -1360,12 +1484,9 @@
}
},
"brace": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/brace/-/brace-0.9.1.tgz",
- "integrity": "sha1-Gdy64vrsmpkgoEUuxk2NhN9F57Y=",
- "requires": {
- "w3c-blob": "0.0.1"
- }
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/brace/-/brace-0.11.0.tgz",
+ "integrity": "sha1-FVzYBgdofcjLkI8N+U5ioDPB1WM="
},
"brace-expansion": {
"version": "1.1.8",
@@ -1388,127 +1509,117 @@
"repeat-element": "1.1.2"
}
},
- "browser-sync": {
- "version": "2.18.6",
- "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.18.6.tgz",
- "integrity": "sha1-ezA+qJBeqiBinmxdPoIMMq2WuyQ=",
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+ "dev": true
+ },
+ "browser-resolve": {
+ "version": "1.11.2",
+ "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
+ "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=",
"dev": true,
"requires": {
- "browser-sync-client": "2.4.4",
- "browser-sync-ui": "0.6.2",
- "bs-recipes": "1.3.4",
- "chokidar": "1.6.1",
- "connect": "3.5.0",
- "dev-ip": "1.0.1",
- "easy-extender": "2.3.2",
- "eazy-logger": "3.0.2",
- "emitter-steward": "1.0.0",
- "fs-extra": "1.0.0",
- "http-proxy": "1.15.2",
- "immutable": "3.8.1",
- "localtunnel": "1.8.2",
- "micromatch": "2.3.11",
- "opn": "4.0.2",
- "portscanner": "2.1.1",
- "qs": "6.2.1",
- "resp-modifier": "6.0.2",
- "rx": "4.1.0",
- "serve-index": "1.8.0",
- "serve-static": "1.11.1",
- "server-destroy": "1.0.1",
- "socket.io": "1.6.0",
- "socket.io-client": "1.6.0",
- "ua-parser-js": "0.7.12",
- "yargs": "6.4.0"
+ "resolve": "1.1.7"
},
"dependencies": {
- "chokidar": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.6.1.tgz",
- "integrity": "sha1-L0RHq16W5Q+z14n9kNTHLg5McMI=",
- "dev": true,
- "requires": {
- "anymatch": "1.3.0",
- "async-each": "1.0.1",
- "glob-parent": "2.0.0",
- "inherits": "2.0.3",
- "is-binary-path": "1.0.1",
- "is-glob": "2.0.1",
- "path-is-absolute": "1.0.1",
- "readdirp": "2.1.0"
- }
- },
- "ua-parser-js": {
- "version": "0.7.12",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.12.tgz",
- "integrity": "sha1-BMgamb3V3FImPqKdJMa/jUgYpLs=",
+ "resolve": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
"dev": true
}
}
},
- "browser-sync-client": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.4.4.tgz",
- "integrity": "sha1-4qbCf3cOCtD/7XaWTftqlx/PVes=",
- "dev": true,
- "requires": {
- "etag": "1.8.0",
- "fresh": "0.3.0"
- }
- },
- "browser-sync-ui": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-0.6.2.tgz",
- "integrity": "sha1-nnmUAE1GPlWgJL3RSVg7Ea2Ph/M=",
- "dev": true,
- "requires": {
- "async-each-series": "0.1.1",
- "connect-history-api-fallback": "1.3.0",
- "immutable": "3.8.1",
- "server-destroy": "1.0.1",
- "stream-throttle": "0.1.3",
- "weinre": "2.0.0-pre-I0Z7U9OV"
- }
- },
"browserify-aes": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz",
- "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz",
+ "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==",
"dev": true,
"requires": {
+ "buffer-xor": "1.0.3",
+ "cipher-base": "1.0.4",
+ "create-hash": "1.1.3",
+ "evp_bytestokey": "1.0.3",
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
+ "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
+ "dev": true,
+ "requires": {
+ "browserify-aes": "1.1.1",
+ "browserify-des": "1.0.0",
+ "evp_bytestokey": "1.0.3"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
+ "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
+ "dev": true,
+ "requires": {
+ "cipher-base": "1.0.4",
+ "des.js": "1.0.0",
"inherits": "2.0.3"
}
},
- "browserify-zlib": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
- "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
+ "browserify-rsa": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
"dev": true,
"requires": {
- "pako": "0.2.9"
+ "bn.js": "4.11.8",
+ "randombytes": "2.0.5"
+ }
+ },
+ "browserify-sign": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
+ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "browserify-rsa": "4.0.1",
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "elliptic": "6.4.0",
+ "inherits": "2.0.3",
+ "parse-asn1": "5.1.0"
+ }
+ },
+ "browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dev": true,
+ "requires": {
+ "pako": "1.0.6"
}
},
"browserslist": {
- "version": "1.7.7",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
- "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.10.0.tgz",
+ "integrity": "sha512-WyvzSLsuAVPOjbljXnyeWl14Ae+ukAT8MUuagKVzIDvwBxl4UAwD1xqtyQs2eWYPGUKMeC3Ol62goqYuKqTTcw==",
"dev": true,
"requires": {
- "caniuse-db": "1.0.30000700",
- "electron-to-chromium": "1.3.15"
+ "caniuse-lite": "1.0.30000784",
+ "electron-to-chromium": "1.3.30"
}
},
- "bs-recipes": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz",
- "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=",
- "dev": true
- },
- "buf-compare": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/buf-compare/-/buf-compare-1.0.1.tgz",
- "integrity": "sha1-/vKNqLgROgoNtEMLC2Rntpcws0o=",
- "dev": true
+ "bser": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz",
+ "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=",
+ "dev": true,
+ "requires": {
+ "node-int64": "0.4.0"
+ }
},
"buffer": {
"version": "4.9.1",
@@ -1521,6 +1632,18 @@
"isarray": "1.0.0"
}
},
+ "buffer-indexof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
+ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==",
+ "dev": true
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+ "dev": true
+ },
"builtin-modules": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
@@ -1533,49 +1656,37 @@
"integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
"dev": true
},
- "caching-transform": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz",
- "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=",
- "dev": true,
- "requires": {
- "md5-hex": "1.3.0",
- "mkdirp": "0.5.1",
- "write-file-atomic": "1.3.4"
- }
- },
- "call-matcher": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/call-matcher/-/call-matcher-1.0.1.tgz",
- "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=",
- "dev": true,
- "requires": {
- "core-js": "2.4.1",
- "deep-equal": "1.0.1",
- "espurify": "1.7.0",
- "estraverse": "4.2.0"
- },
- "dependencies": {
- "core-js": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz",
- "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=",
- "dev": true
- }
- }
- },
- "call-signature": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/call-signature/-/call-signature-0.0.2.tgz",
- "integrity": "sha1-qEq8glpV70yysCi9dOIFpluaSZY=",
+ "bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
"dev": true
},
- "callsite": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
- "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
+ "caller-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
+ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
+ "dev": true,
+ "requires": {
+ "callsites": "0.2.0"
+ }
+ },
+ "callsites": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
+ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
"dev": true
},
+ "camel-case": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
+ "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
+ "dev": true,
+ "requires": {
+ "no-case": "2.3.2",
+ "upper-case": "1.1.3"
+ }
+ },
"camelcase": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
@@ -1599,15 +1710,33 @@
"dev": true,
"requires": {
"browserslist": "1.7.7",
- "caniuse-db": "1.0.30000700",
+ "caniuse-db": "1.0.30000784",
"lodash.memoize": "4.1.2",
"lodash.uniq": "4.5.0"
+ },
+ "dependencies": {
+ "browserslist": {
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "dev": true,
+ "requires": {
+ "caniuse-db": "1.0.30000784",
+ "electron-to-chromium": "1.3.30"
+ }
+ }
}
},
"caniuse-db": {
- "version": "1.0.30000700",
- "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000700.tgz",
- "integrity": "sha1-l8/Eg4Ze6oV33Ho2dJKbmr9VMJU=",
+ "version": "1.0.30000784",
+ "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000784.tgz",
+ "integrity": "sha1-G+lQEtlInHcZB0+BruV9vf/mNhs=",
+ "dev": true
+ },
+ "caniuse-lite": {
+ "version": "1.0.30000784",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000784.tgz",
+ "integrity": "sha1-EpztdOmhKApEGIC2zSvOMO9Z5sA=",
"dev": true
},
"capture-stack-trace": {
@@ -1616,12 +1745,28 @@
"integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=",
"dev": true
},
+ "case-sensitive-paths-webpack-plugin": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.1.tgz",
+ "integrity": "sha1-PSnO2MHxJL9vU4Rvs/WJRzH9yQk=",
+ "dev": true
+ },
"caseless": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
"integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
"dev": true
},
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "dev": true,
+ "requires": {
+ "align-text": "0.1.4",
+ "lazy-cache": "1.0.4"
+ }
+ },
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
@@ -1635,14 +1780,21 @@
"supports-color": "2.0.0"
}
},
+ "chardet": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
+ "dev": true
+ },
"chokidar": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
"integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
"dev": true,
"requires": {
- "anymatch": "1.3.0",
+ "anymatch": "1.3.2",
"async-each": "1.0.1",
+ "fsevents": "1.1.3",
"glob-parent": "2.0.0",
"inherits": "2.0.3",
"is-binary-path": "1.0.1",
@@ -1652,25 +1804,44 @@
}
},
"ci-info": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.0.0.tgz",
- "integrity": "sha1-3FKF8rTiUYIWg2gcOBwziPRuxTQ=",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz",
+ "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==",
+ "dev": true
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "circular-json": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
+ "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
"dev": true
},
"clap": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz",
- "integrity": "sha1-WckP4+E3EEdG/xlGmiemNP9oyFc=",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz",
+ "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==",
"dev": true,
"requires": {
"chalk": "1.1.3"
}
},
- "clean-yaml-object": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz",
- "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=",
- "dev": true
+ "clean-css": {
+ "version": "4.1.9",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.9.tgz",
+ "integrity": "sha1-Nc7ornaHpJuYA09w3gDE7dOCYwE=",
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.7"
+ }
},
"cli-boxes": {
"version": "1.0.0",
@@ -1679,30 +1850,20 @@
"dev": true
},
"cli-cursor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
- "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
"dev": true,
"requires": {
- "restore-cursor": "1.0.1"
+ "restore-cursor": "2.0.0"
}
},
- "cli-spinners": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz",
- "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=",
+ "cli-width": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
"dev": true
},
- "cli-truncate": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz",
- "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
- "dev": true,
- "requires": {
- "slice-ansi": "0.0.4",
- "string-width": "1.0.2"
- }
- },
"cliui": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
@@ -1715,14 +1876,9 @@
}
},
"clone": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
- "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk="
- },
- "clone-stats": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
- "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz",
+ "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=",
"dev": true
},
"co": {
@@ -1730,39 +1886,13 @@
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
"integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
},
- "co-with-promise": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co-with-promise/-/co-with-promise-4.6.0.tgz",
- "integrity": "sha1-QT59tvWJOmC5Qs9JLEvsk9tBWrc=",
- "dev": true,
- "requires": {
- "pinkie-promise": "1.0.0"
- },
- "dependencies": {
- "pinkie": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz",
- "integrity": "sha1-Wkfyi6EBXQIBvae/DzWOR77Ix+Q=",
- "dev": true
- },
- "pinkie-promise": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz",
- "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=",
- "dev": true,
- "requires": {
- "pinkie": "1.0.0"
- }
- }
- }
- },
"coa": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz",
"integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
"dev": true,
"requires": {
- "q": "1.5.0"
+ "q": "1.5.1"
}
},
"code-point-at": {
@@ -1777,24 +1907,24 @@
"integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
"dev": true,
"requires": {
- "clone": "1.0.2",
- "color-convert": "1.9.0",
+ "clone": "1.0.3",
+ "color-convert": "1.9.1",
"color-string": "0.3.0"
}
},
"color-convert": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
- "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=",
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
+ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
"dev": true,
"requires": {
- "color-name": "1.1.2"
+ "color-name": "1.1.3"
}
},
"color-name": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.2.tgz",
- "integrity": "sha1-XIq3K2S9IhXWF66VWeuxSEdc+Y0=",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
"color-string": {
@@ -1803,7 +1933,7 @@
"integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
"dev": true,
"requires": {
- "color-name": "1.1.2"
+ "color-name": "1.1.3"
}
},
"colormin": {
@@ -1833,15 +1963,9 @@
}
},
"commander": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
- "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
- "dev": true
- },
- "common-path-prefix": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-1.0.0.tgz",
- "integrity": "sha1-zVL28HEuC6q5fW+XModPIvR3UsA=",
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz",
+ "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==",
"dev": true
},
"commondir": {
@@ -1850,23 +1974,29 @@
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
"dev": true
},
- "component-bind": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
- "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=",
- "dev": true
+ "compressible": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz",
+ "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.30.0"
+ }
},
- "component-emitter": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz",
- "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=",
- "dev": true
- },
- "component-inherit": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
- "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
- "dev": true
+ "compression": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz",
+ "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=",
+ "dev": true,
+ "requires": {
+ "accepts": "1.3.4",
+ "bytes": "3.0.0",
+ "compressible": "2.0.12",
+ "debug": "2.6.9",
+ "on-headers": "1.0.1",
+ "safe-buffer": "5.1.1",
+ "vary": "1.1.2"
+ }
},
"concat-map": {
"version": "0.0.1",
@@ -1874,6 +2004,26 @@
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
},
+ "concat-stream": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+ "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.3",
+ "typedarray": "0.0.6"
+ }
+ },
+ "concat-with-sourcemaps": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.4.tgz",
+ "integrity": "sha1-9Vs74q60dgGxCi1SWcz7cP0vHdY=",
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.7"
+ }
+ },
"configstore": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/configstore/-/configstore-2.1.0.tgz",
@@ -1889,41 +2039,20 @@
"uuid": "2.0.3",
"write-file-atomic": "1.3.4",
"xdg-basedir": "2.0.0"
- }
- },
- "connect": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/connect/-/connect-3.5.0.tgz",
- "integrity": "sha1-s1dSWgtMH1BZnNmD4dnv7qlncZg=",
- "dev": true,
- "requires": {
- "debug": "2.2.0",
- "finalhandler": "0.5.0",
- "parseurl": "1.3.1",
- "utils-merge": "1.0.0"
},
"dependencies": {
- "debug": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
- "dev": true,
- "requires": {
- "ms": "0.7.1"
- }
- },
- "ms": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
- "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
+ "uuid": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
+ "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
"dev": true
}
}
},
"connect-history-api-fallback": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz",
- "integrity": "sha1-5R0X+PDvDbkKZP20feMFFVbp8Wk=",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz",
+ "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=",
"dev": true
},
"console-browserify": {
@@ -1935,10 +2064,17 @@
"date-now": "0.1.4"
}
},
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "dev": true
+ },
"console.table": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/console.table/-/console.table-0.9.1.tgz",
"integrity": "sha1-SwH9CmtW//t5CSeD5WqbuQZ4cow=",
+ "dev": true,
"requires": {
"easy-table": "1.1.0"
}
@@ -1949,10 +2085,34 @@
"integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
"dev": true
},
+ "contains-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
+ "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
+ "dev": true
+ },
+ "content-disposition": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
+ "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=",
+ "dev": true
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "dev": true
+ },
+ "content-type-parser": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz",
+ "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==",
+ "dev": true
+ },
"convert-source-map": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz",
- "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
+ "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=",
"dev": true
},
"cookie": {
@@ -1961,15 +2121,11 @@
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
"dev": true
},
- "core-assert": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz",
- "integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=",
- "dev": true,
- "requires": {
- "buf-compare": "1.0.1",
- "is-error": "2.2.1"
- }
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+ "dev": true
},
"core-js": {
"version": "1.2.7",
@@ -1982,6 +2138,78 @@
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"dev": true
},
+ "cosmiconfig": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz",
+ "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==",
+ "dev": true,
+ "requires": {
+ "is-directory": "0.3.1",
+ "js-yaml": "3.7.0",
+ "minimist": "1.2.0",
+ "object-assign": "4.1.1",
+ "os-homedir": "1.0.2",
+ "parse-json": "2.2.0",
+ "require-from-string": "1.2.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "cp-file": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-3.2.0.tgz",
+ "integrity": "sha1-b4NhYlRiTwrViqSqjQdvAmvn4Yg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "mkdirp": "0.5.1",
+ "nested-error-stacks": "1.0.2",
+ "object-assign": "4.1.1",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "readable-stream": "2.3.3"
+ }
+ },
+ "cpy": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/cpy/-/cpy-4.0.1.tgz",
+ "integrity": "sha1-tnJn66LzlgugalphrJQDNCKDNCQ=",
+ "dev": true,
+ "requires": {
+ "cp-file": "3.2.0",
+ "globby": "4.1.0",
+ "meow": "3.7.0",
+ "nested-error-stacks": "1.0.2",
+ "object-assign": "4.1.1",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "cpy-cli": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-1.0.1.tgz",
+ "integrity": "sha1-Z/taSi3sKMqKv/N13kuecfanVhw=",
+ "dev": true,
+ "requires": {
+ "cpy": "4.0.1",
+ "meow": "3.7.0"
+ }
+ },
+ "create-ecdh": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
+ "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "elliptic": "6.4.0"
+ }
+ },
"create-error-class": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
@@ -1991,14 +2219,40 @@
"capture-stack-trace": "1.0.0"
}
},
+ "create-hash": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
+ "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=",
+ "dev": true,
+ "requires": {
+ "cipher-base": "1.0.4",
+ "inherits": "2.0.3",
+ "ripemd160": "2.0.1",
+ "sha.js": "2.4.9"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz",
+ "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=",
+ "dev": true,
+ "requires": {
+ "cipher-base": "1.0.4",
+ "create-hash": "1.1.3",
+ "inherits": "2.0.3",
+ "ripemd160": "2.0.1",
+ "safe-buffer": "5.1.1",
+ "sha.js": "2.4.9"
+ }
+ },
"cross-spawn": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
- "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
+ "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
"dev": true,
"requires": {
"lru-cache": "4.1.1",
- "which": "1.2.14"
+ "which": "1.3.0"
}
},
"cryptiles": {
@@ -2011,15 +2265,22 @@
}
},
"crypto-browserify": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz",
- "integrity": "sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw=",
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
"dev": true,
"requires": {
- "browserify-aes": "0.4.0",
- "pbkdf2-compat": "2.0.1",
- "ripemd160": "0.2.0",
- "sha.js": "2.2.6"
+ "browserify-cipher": "1.0.0",
+ "browserify-sign": "4.0.4",
+ "create-ecdh": "4.0.0",
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "diffie-hellman": "5.0.2",
+ "inherits": "2.0.3",
+ "pbkdf2": "3.0.14",
+ "public-encrypt": "4.0.0",
+ "randombytes": "2.0.5",
+ "randomfill": "1.0.3"
}
},
"css-color-names": {
@@ -2029,23 +2290,66 @@
"dev": true
},
"css-loader": {
- "version": "0.26.1",
- "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.26.1.tgz",
- "integrity": "sha1-K6fyATG5NZdJaz6btQB4WknNKeo=",
+ "version": "0.28.7",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.7.tgz",
+ "integrity": "sha512-GxMpax8a/VgcfRrVy0gXD6yLd5ePYbXX/5zGgTVYp4wXtJklS8Z2VaUArJgc//f6/Dzil7BaJObdSv8eKKCPgg==",
"dev": true,
"requires": {
- "babel-code-frame": "6.22.0",
+ "babel-code-frame": "6.26.0",
"css-selector-tokenizer": "0.7.0",
"cssnano": "3.10.0",
- "loader-utils": "0.2.17",
+ "icss-utils": "2.1.0",
+ "loader-utils": "1.1.0",
"lodash.camelcase": "4.3.0",
"object-assign": "4.1.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-modules-extract-imports": "1.1.0",
"postcss-modules-local-by-default": "1.2.0",
"postcss-modules-scope": "1.1.0",
"postcss-modules-values": "1.3.0",
- "source-list-map": "0.1.8"
+ "postcss-value-parser": "3.3.0",
+ "source-list-map": "2.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "css-select": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "dev": true,
+ "requires": {
+ "boolbase": "1.0.0",
+ "css-what": "2.1.0",
+ "domutils": "1.5.1",
+ "nth-check": "1.0.1"
}
},
"css-selector-tokenizer": {
@@ -2065,13 +2369,19 @@
"integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
"dev": true,
"requires": {
- "regenerate": "1.3.2",
+ "regenerate": "1.3.3",
"regjsgen": "0.2.0",
"regjsparser": "0.1.5"
}
}
}
},
+ "css-what": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
+ "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
+ "dev": true
+ },
"cssesc": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
@@ -2089,7 +2399,7 @@
"defined": "1.0.0",
"has": "1.0.1",
"object-assign": "4.1.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-calc": "5.3.1",
"postcss-colormin": "2.2.2",
"postcss-convert-values": "2.6.1",
@@ -2116,6 +2426,59 @@
"postcss-unique-selectors": "2.0.2",
"postcss-value-parser": "3.3.0",
"postcss-zindex": "2.2.0"
+ },
+ "dependencies": {
+ "autoprefixer": {
+ "version": "6.7.7",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz",
+ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
+ "dev": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-db": "1.0.30000784",
+ "normalize-range": "0.1.2",
+ "num2fraction": "1.2.2",
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "browserslist": {
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "dev": true,
+ "requires": {
+ "caniuse-db": "1.0.30000784",
+ "electron-to-chromium": "1.3.30"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"csso": {
@@ -2124,8 +2487,23 @@
"integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
"dev": true,
"requires": {
- "clap": "1.2.0",
- "source-map": "0.5.6"
+ "clap": "1.2.3",
+ "source-map": "0.5.7"
+ }
+ },
+ "cssom": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz",
+ "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=",
+ "dev": true
+ },
+ "cssstyle": {
+ "version": "0.2.37",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
+ "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
+ "dev": true,
+ "requires": {
+ "cssom": "0.3.2"
}
},
"currently-unhandled": {
@@ -2146,6 +2524,12 @@
"es5-ext": "0.10.37"
}
},
+ "damerau-levenshtein": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz",
+ "integrity": "sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=",
+ "dev": true
+ },
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
@@ -2169,33 +2553,13 @@
"integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
"dev": true
},
- "date-time": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/date-time/-/date-time-0.1.1.tgz",
- "integrity": "sha1-7S9tk9l5DOL9ZtW1/z7dW7y/Owc=",
- "dev": true
- },
- "dateformat": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.0.0.tgz",
- "integrity": "sha1-J0Pjq7XD/CRi5SfcpEXgTp9N7hc=",
- "dev": true
- },
"debug": {
- "version": "2.6.8",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
- "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
"ms": "2.0.0"
- },
- "dependencies": {
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- }
}
},
"decamelize": {
@@ -2216,23 +2580,39 @@
"integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
"dev": true
},
- "deep-map": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/deep-map/-/deep-map-1.5.0.tgz",
- "integrity": "sha1-6qWVy4F4PKKADyakLgnxbn1PuJA=",
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "dev": true
+ },
+ "default-require-extensions": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz",
+ "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=",
"dev": true,
"requires": {
- "es6-weak-map": "2.0.2",
- "lodash": "4.17.4",
- "tslib": "1.8.0"
+ "strip-bom": "2.0.0"
}
},
"defaults": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
"integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+ "dev": true,
+ "optional": true,
"requires": {
- "clone": "1.0.2"
+ "clone": "1.0.3"
+ }
+ },
+ "define-properties": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
+ "dev": true,
+ "requires": {
+ "foreach": "2.0.5",
+ "object-keys": "1.0.11"
}
},
"defined": {
@@ -2241,39 +2621,71 @@
"integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
"dev": true
},
+ "del": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
+ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
+ "dev": true,
+ "requires": {
+ "globby": "5.0.0",
+ "is-path-cwd": "1.0.0",
+ "is-path-in-cwd": "1.0.0",
+ "object-assign": "4.1.1",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "rimraf": "2.6.2"
+ },
+ "dependencies": {
+ "globby": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
+ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
+ "dev": true,
+ "requires": {
+ "array-union": "1.0.2",
+ "arrify": "1.0.1",
+ "glob": "7.1.2",
+ "object-assign": "4.1.1",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ }
+ }
+ },
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
"dev": true
},
- "depd": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz",
- "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=",
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
"dev": true
},
- "deprecated": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz",
- "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=",
+ "depd": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
+ "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=",
"dev": true
},
+ "des.js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ }
+ },
"destroy": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
"dev": true
},
- "detect-file": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz",
- "integrity": "sha1-STXe39lIhkjgBrASlWbpOGcR6mM=",
- "dev": true,
- "requires": {
- "fs-exists-sync": "0.1.0"
- }
- },
"detect-indent": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
@@ -2283,18 +2695,148 @@
"repeating": "2.0.1"
}
},
- "dev-ip": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz",
- "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=",
+ "detect-node": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz",
+ "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=",
"dev": true
},
+ "detect-port-alt": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.3.tgz",
+ "integrity": "sha1-pNLwYddXoDTs83xRQmCph1DysTE=",
+ "dev": true,
+ "requires": {
+ "address": "1.0.3",
+ "debug": "2.6.9"
+ }
+ },
+ "diff": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz",
+ "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==",
+ "dev": true
+ },
+ "diffie-hellman": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
+ "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "miller-rabin": "4.0.1",
+ "randombytes": "2.0.5"
+ }
+ },
+ "dns-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
+ "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
+ "dev": true
+ },
+ "dns-packet": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.2.2.tgz",
+ "integrity": "sha512-kN+DjfGF7dJGUL7nWRktL9Z18t1rWP3aQlyZdY8XlpvU3Nc6GeFTQApftcjtWKxAZfiggZSGrCEoszNgvnpwDg==",
+ "dev": true,
+ "requires": {
+ "ip": "1.1.5",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "dns-txt": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
+ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+ "dev": true,
+ "requires": {
+ "buffer-indexof": "1.1.1"
+ }
+ },
+ "doctrine": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.2.tgz",
+ "integrity": "sha512-y0tm5Pq6ywp3qSTZ1vPgVdAnbDEoeoc5wlOHXoY1c4Wug/a7JvqHIl7BTvwodaHmejWkK/9dSb3sCYfyo/om8A==",
+ "dev": true,
+ "requires": {
+ "esutils": "2.0.2"
+ }
+ },
+ "dom-converter": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz",
+ "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=",
+ "dev": true,
+ "requires": {
+ "utila": "0.3.3"
+ },
+ "dependencies": {
+ "utila": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz",
+ "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=",
+ "dev": true
+ }
+ }
+ },
+ "dom-serializer": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
+ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1.1.3",
+ "entities": "1.1.1"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
+ "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
+ "dev": true
+ }
+ }
+ },
+ "dom-urls": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/dom-urls/-/dom-urls-1.1.0.tgz",
+ "integrity": "sha1-AB3fgWKM0ecGElxxdvU8zsVdkY4=",
+ "dev": true,
+ "requires": {
+ "urijs": "1.19.0"
+ }
+ },
"domain-browser": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
"integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=",
"dev": true
},
+ "domelementtype": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
+ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz",
+ "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1.3.0"
+ }
+ },
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0.1.0",
+ "domelementtype": "1.3.0"
+ }
+ },
"dot-prop": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz",
@@ -2304,6 +2846,18 @@
"is-obj": "1.0.1"
}
},
+ "dotenv": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz",
+ "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=",
+ "dev": true
+ },
+ "duplexer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+ "dev": true
+ },
"duplexer2": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
@@ -2313,44 +2867,13 @@
"readable-stream": "2.3.3"
}
},
- "eastasianwidth": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.1.1.tgz",
- "integrity": "sha1-RNZW3p2kFWlEZzNTZfsxR7hXK3w=",
- "dev": true
- },
- "easy-extender": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.2.tgz",
- "integrity": "sha1-PTJI/r4rFZYHMW2PnPSRwWZIIh0=",
- "dev": true,
- "requires": {
- "lodash": "3.10.1"
- },
- "dependencies": {
- "lodash": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
- "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
- "dev": true
- }
- }
- },
"easy-table": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz",
"integrity": "sha1-hvmrTBAvA3G3KXuSplHVgkvIy3M=",
- "requires": {
- "wcwidth": "1.0.1"
- }
- },
- "eazy-logger": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz",
- "integrity": "sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw=",
"dev": true,
"requires": {
- "tfunk": "3.1.0"
+ "wcwidth": "1.0.1"
}
},
"ecc-jsbn": {
@@ -2369,16 +2892,40 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
"dev": true
},
- "electron-to-chromium": {
- "version": "1.3.15",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.15.tgz",
- "integrity": "sha1-CDl5NIkcvPrrvRi4KpW1pIETg2k=",
+ "electron-releases": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/electron-releases/-/electron-releases-2.1.0.tgz",
+ "integrity": "sha512-cyKFD1bTE/UgULXfaueIN1k5EPFzs+FRc/rvCY5tIynefAPqopQEgjr0EzY+U3Dqrk/G4m9tXSPuZ77v6dL/Rw==",
"dev": true
},
- "emitter-steward": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/emitter-steward/-/emitter-steward-1.0.0.tgz",
- "integrity": "sha1-80Ea3pdYp1Zd+Eiy2gy70bRsvWQ=",
+ "electron-to-chromium": {
+ "version": "1.3.30",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.30.tgz",
+ "integrity": "sha512-zx1Prv7kYLfc4OA60FhxGbSo4qrEjgSzpo1/37i7l9ltXPYOoQBtjQxY9KmsgfHnBxHlBGXwLlsbt/gub1w5lw==",
+ "dev": true,
+ "requires": {
+ "electron-releases": "2.1.0"
+ }
+ },
+ "elliptic": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
+ "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "brorand": "1.1.0",
+ "hash.js": "1.1.3",
+ "hmac-drbg": "1.0.1",
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0",
+ "minimalistic-crypto-utils": "1.0.1"
+ }
+ },
+ "emoji-regex": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz",
+ "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==",
"dev": true
},
"emojis-list": {
@@ -2387,24 +2934,6 @@
"integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
"dev": true
},
- "empower-core": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/empower-core/-/empower-core-0.6.2.tgz",
- "integrity": "sha1-Wt71ZgiOMfuoC6CjbfR9cJQWkUQ=",
- "dev": true,
- "requires": {
- "call-signature": "0.0.2",
- "core-js": "2.4.1"
- },
- "dependencies": {
- "core-js": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz",
- "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=",
- "dev": true
- }
- }
- },
"encodeurl": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz",
@@ -2416,160 +2945,34 @@
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
"integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
"requires": {
- "iconv-lite": "0.4.18"
- }
- },
- "end-of-stream": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz",
- "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=",
- "dev": true,
- "requires": {
- "once": "1.3.3"
- },
- "dependencies": {
- "once": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
- "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
- "dev": true,
- "requires": {
- "wrappy": "1.0.2"
- }
- }
- }
- },
- "engine.io": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.0.tgz",
- "integrity": "sha1-PutfJky3XbvsG6rqJtYfWk6s4qo=",
- "dev": true,
- "requires": {
- "accepts": "1.3.3",
- "base64id": "0.1.0",
- "cookie": "0.3.1",
- "debug": "2.3.3",
- "engine.io-parser": "1.3.1",
- "ws": "1.1.1"
- },
- "dependencies": {
- "debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
- "dev": true,
- "requires": {
- "ms": "0.7.2"
- }
- },
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
- "dev": true
- }
- }
- },
- "engine.io-client": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.0.tgz",
- "integrity": "sha1-e3MOQSdBQIdZbZvjyI0rxf22z1w=",
- "dev": true,
- "requires": {
- "component-emitter": "1.2.1",
- "component-inherit": "0.0.3",
- "debug": "2.3.3",
- "engine.io-parser": "1.3.1",
- "has-cors": "1.1.0",
- "indexof": "0.0.1",
- "parsejson": "0.0.3",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
- "ws": "1.1.1",
- "xmlhttprequest-ssl": "1.5.3",
- "yeast": "0.1.2"
- },
- "dependencies": {
- "component-emitter": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
- "dev": true
- },
- "debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
- "dev": true,
- "requires": {
- "ms": "0.7.2"
- }
- },
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
- "dev": true
- }
- }
- },
- "engine.io-parser": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.1.tgz",
- "integrity": "sha1-lVTxrjMQfW+9FwylRm0vgz9qB88=",
- "dev": true,
- "requires": {
- "after": "0.8.1",
- "arraybuffer.slice": "0.0.6",
- "base64-arraybuffer": "0.1.5",
- "blob": "0.0.4",
- "has-binary": "0.1.6",
- "wtf-8": "1.0.0"
- },
- "dependencies": {
- "has-binary": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz",
- "integrity": "sha1-JTJvOc+k9hath4eJTjryz7x7bhA=",
- "dev": true,
- "requires": {
- "isarray": "0.0.1"
- }
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
- "dev": true
- }
+ "iconv-lite": "0.4.19"
}
},
"enhanced-resolve": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz",
- "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
+ "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
"dev": true,
"requires": {
"graceful-fs": "4.1.11",
- "memory-fs": "0.2.0",
- "tapable": "0.1.10"
- },
- "dependencies": {
- "memory-fs": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz",
- "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=",
- "dev": true
- }
+ "memory-fs": "0.4.1",
+ "object-assign": "4.1.1",
+ "tapable": "0.2.8"
}
},
+ "entities": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
+ "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
+ "dev": true
+ },
"errno": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
- "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=",
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz",
+ "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==",
"dev": true,
"requires": {
- "prr": "0.0.0"
+ "prr": "1.0.1"
}
},
"error-ex": {
@@ -2581,6 +2984,30 @@
"is-arrayish": "0.2.1"
}
},
+ "es-abstract": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz",
+ "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "1.1.1",
+ "function-bind": "1.1.1",
+ "has": "1.0.1",
+ "is-callable": "1.1.3",
+ "is-regex": "1.0.4"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
+ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
+ "dev": true,
+ "requires": {
+ "is-callable": "1.1.3",
+ "is-date-object": "1.0.1",
+ "is-symbol": "1.0.1"
+ }
+ },
"es5-ext": {
"version": "0.10.37",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.37.tgz",
@@ -2602,6 +3029,39 @@
"es6-symbol": "3.1.1"
}
},
+ "es6-map": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.37",
+ "es6-iterator": "2.0.3",
+ "es6-set": "0.1.5",
+ "es6-symbol": "3.1.1",
+ "event-emitter": "0.3.5"
+ }
+ },
+ "es6-promise": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.2.tgz",
+ "integrity": "sha512-LSas5vsuA6Q4nEdf9wokY5/AJYXry98i0IzXsv49rYsgDGDNDPbqAYR1Pe23iFxygfbGZNR/5VrHXBCh2BhvUQ==",
+ "dev": true
+ },
+ "es6-set": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.37",
+ "es6-iterator": "2.0.3",
+ "es6-symbol": "3.1.1",
+ "event-emitter": "0.3.5"
+ }
+ },
"es6-symbol": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
@@ -2636,16 +3096,368 @@
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
},
- "espower-location-detector": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/espower-location-detector/-/espower-location-detector-1.0.0.tgz",
- "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=",
+ "escodegen": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz",
+ "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==",
"dev": true,
"requires": {
- "is-url": "1.2.2",
- "path-is-absolute": "1.0.1",
- "source-map": "0.5.6",
- "xtend": "4.0.1"
+ "esprima": "3.1.3",
+ "estraverse": "4.2.0",
+ "esutils": "2.0.2",
+ "optionator": "0.8.2",
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
+ "dev": true
+ }
+ }
+ },
+ "escope": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
+ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
+ "dev": true,
+ "requires": {
+ "es6-map": "0.1.5",
+ "es6-weak-map": "2.0.2",
+ "esrecurse": "4.2.0",
+ "estraverse": "4.2.0"
+ }
+ },
+ "eslint": {
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.10.0.tgz",
+ "integrity": "sha512-MMVl8P/dYUFZEvolL8PYt7qc5LNdS2lwheq9BYa5Y07FblhcZqFyaUqlS8TW5QITGex21tV4Lk0a3fK8lsJIkA==",
+ "dev": true,
+ "requires": {
+ "ajv": "5.5.2",
+ "babel-code-frame": "6.26.0",
+ "chalk": "2.3.0",
+ "concat-stream": "1.6.0",
+ "cross-spawn": "5.1.0",
+ "debug": "3.1.0",
+ "doctrine": "2.0.2",
+ "eslint-scope": "3.7.1",
+ "espree": "3.5.2",
+ "esquery": "1.0.0",
+ "estraverse": "4.2.0",
+ "esutils": "2.0.2",
+ "file-entry-cache": "2.0.0",
+ "functional-red-black-tree": "1.0.1",
+ "glob": "7.1.2",
+ "globals": "9.18.0",
+ "ignore": "3.3.7",
+ "imurmurhash": "0.1.4",
+ "inquirer": "3.3.0",
+ "is-resolvable": "1.0.1",
+ "js-yaml": "3.10.0",
+ "json-stable-stringify": "1.0.1",
+ "levn": "0.3.0",
+ "lodash": "4.17.4",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "natural-compare": "1.4.0",
+ "optionator": "0.8.2",
+ "path-is-inside": "1.0.2",
+ "pluralize": "7.0.0",
+ "progress": "2.0.0",
+ "require-uncached": "1.0.3",
+ "semver": "5.4.1",
+ "strip-ansi": "4.0.0",
+ "strip-json-comments": "2.0.1",
+ "table": "4.0.2",
+ "text-table": "0.2.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.1"
+ }
+ },
+ "chalk": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.1",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
+ }
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "esprima": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
+ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
+ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
+ }
+ },
+ "eslint-config-react-app": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-2.0.1.tgz",
+ "integrity": "sha512-gHtkzfEjKXhgZJ0Bf+EmztFSWwTiMDgoy85sFaTqrxU1BHSJ9i4i/JJtXJofVCU/SOKxYs46LO3ajvuzFQH5rw==",
+ "dev": true
+ },
+ "eslint-import-resolver-node": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz",
+ "integrity": "sha512-yUtXS15gIcij68NmXmP9Ni77AQuCN0itXbCc/jWd8C6/yKZaSNXicpC8cgvjnxVdmfsosIXrjpzFq7GcDryb6A==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "resolve": "1.5.0"
+ }
+ },
+ "eslint-loader": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.9.0.tgz",
+ "integrity": "sha512-40aN976qSNPyb9ejTqjEthZITpls1SVKtwguahmH1dzGCwQU/vySE+xX33VZmD8csU0ahVNCtFlsPgKqRBiqgg==",
+ "dev": true,
+ "requires": {
+ "loader-fs-cache": "1.0.1",
+ "loader-utils": "1.1.0",
+ "object-assign": "4.1.1",
+ "object-hash": "1.2.0",
+ "rimraf": "2.6.2"
+ }
+ },
+ "eslint-module-utils": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz",
+ "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "pkg-dir": "1.0.0"
+ },
+ "dependencies": {
+ "pkg-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
+ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2"
+ }
+ }
+ }
+ },
+ "eslint-plugin-flowtype": {
+ "version": "2.39.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.39.1.tgz",
+ "integrity": "sha512-RiQv+7Z9QDJuzt+NO8sYgkLGT+h+WeCrxP7y8lI7wpU41x3x/2o3PGtHk9ck8QnA9/mlbNcy/hG0eKvmd7npaA==",
+ "dev": true,
+ "requires": {
+ "lodash": "4.17.4"
+ }
+ },
+ "eslint-plugin-import": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz",
+ "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "1.1.1",
+ "contains-path": "0.1.0",
+ "debug": "2.6.9",
+ "doctrine": "1.5.0",
+ "eslint-import-resolver-node": "0.3.1",
+ "eslint-module-utils": "2.1.1",
+ "has": "1.0.1",
+ "lodash.cond": "4.5.2",
+ "minimatch": "3.0.4",
+ "read-pkg-up": "2.0.0"
+ },
+ "dependencies": {
+ "doctrine": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+ "dev": true,
+ "requires": {
+ "esutils": "2.0.2",
+ "isarray": "1.0.0"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "2.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "strip-bom": "3.0.0"
+ }
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
+ "requires": {
+ "pify": "2.3.0"
+ }
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "2.0.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "2.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
+ "requires": {
+ "find-up": "2.1.0",
+ "read-pkg": "2.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
+ "eslint-plugin-jsx-a11y": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.1.1.tgz",
+ "integrity": "sha512-5I9SpoP7gT4wBFOtXT8/tXNPYohHBVfyVfO17vkbC7r9kEIxYJF12D3pKqhk8+xnk12rfxKClS3WCFpVckFTPQ==",
+ "dev": true,
+ "requires": {
+ "aria-query": "0.7.0",
+ "array-includes": "3.0.3",
+ "ast-types-flow": "0.0.7",
+ "axobject-query": "0.1.0",
+ "damerau-levenshtein": "1.0.4",
+ "emoji-regex": "6.5.1",
+ "jsx-ast-utils": "1.4.1"
+ }
+ },
+ "eslint-plugin-react": {
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.4.0.tgz",
+ "integrity": "sha512-tvjU9u3VqmW2vVuYnE8Qptq+6ji4JltjOjJ9u7VAOxVYkUkyBZWRvNYKbDv5fN+L6wiA+4we9+qQahZ0m63XEA==",
+ "dev": true,
+ "requires": {
+ "doctrine": "2.0.2",
+ "has": "1.0.1",
+ "jsx-ast-utils": "2.0.1",
+ "prop-types": "15.6.0"
+ },
+ "dependencies": {
+ "jsx-ast-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz",
+ "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=",
+ "dev": true,
+ "requires": {
+ "array-includes": "3.0.3"
+ }
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
+ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
+ "dev": true,
+ "requires": {
+ "esrecurse": "4.2.0",
+ "estraverse": "4.2.0"
+ }
+ },
+ "espree": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz",
+ "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==",
+ "dev": true,
+ "requires": {
+ "acorn": "5.2.1",
+ "acorn-jsx": "3.0.1"
}
},
"esprima": {
@@ -2654,21 +3466,23 @@
"integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
"dev": true
},
- "espurify": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.7.0.tgz",
- "integrity": "sha1-HFz2y8zDLm9jk4C9T5kfq5up0iY=",
+ "esquery": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz",
+ "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=",
"dev": true,
"requires": {
- "core-js": "2.4.1"
- },
- "dependencies": {
- "core-js": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz",
- "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=",
- "dev": true
- }
+ "estraverse": "4.2.0"
+ }
+ },
+ "esrecurse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",
+ "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=",
+ "dev": true,
+ "requires": {
+ "estraverse": "4.2.0",
+ "object-assign": "4.1.1"
}
},
"estraverse": {
@@ -2677,6 +3491,12 @@
"integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
"dev": true
},
+ "estree-walker": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.2.1.tgz",
+ "integrity": "sha1-va/oCVOD2EFNXcLs9MkXO225QS4=",
+ "dev": true
+ },
"esutils": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
@@ -2684,11 +3504,36 @@
"dev": true
},
"etag": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz",
- "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=",
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
"dev": true
},
+ "event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+ "dev": true,
+ "requires": {
+ "d": "1.0.0",
+ "es5-ext": "0.10.37"
+ }
+ },
+ "event-stream": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
+ "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
+ "dev": true,
+ "requires": {
+ "duplexer": "0.1.1",
+ "from": "0.1.7",
+ "map-stream": "0.1.0",
+ "pause-stream": "0.0.11",
+ "split": "0.3.3",
+ "stream-combiner": "0.0.4",
+ "through": "2.3.8"
+ }
+ },
"eventemitter3": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz",
@@ -2701,11 +3546,61 @@
"integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
"dev": true
},
- "exit-hook": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
- "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
- "dev": true
+ "eventsource": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz",
+ "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=",
+ "dev": true,
+ "requires": {
+ "original": "1.0.0"
+ }
+ },
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "requires": {
+ "md5.js": "1.3.4",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "exec-sh": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz",
+ "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==",
+ "dev": true,
+ "requires": {
+ "merge": "1.2.0"
+ }
+ },
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "5.1.0",
+ "get-stream": "3.0.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "3.0.2",
+ "strip-eof": "1.0.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.1",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
+ }
+ }
+ }
},
"expand-brackets": {
"version": "0.1.5",
@@ -2726,47 +3621,68 @@
}
},
"expand-tilde": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz",
- "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+ "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
"dev": true,
"requires": {
- "os-homedir": "1.0.2"
+ "homedir-polyfill": "1.0.1"
}
},
"express": {
- "version": "2.5.11",
- "resolved": "https://registry.npmjs.org/express/-/express-2.5.11.tgz",
- "integrity": "sha1-TOjqHzY15p5J8Ou0l7aksKUc5vA=",
+ "version": "4.16.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz",
+ "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=",
"dev": true,
"requires": {
- "connect": "1.9.2",
- "mime": "1.2.4",
- "mkdirp": "0.3.0",
- "qs": "0.4.2"
+ "accepts": "1.3.4",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.18.2",
+ "content-disposition": "0.5.2",
+ "content-type": "1.0.4",
+ "cookie": "0.3.1",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "1.1.1",
+ "encodeurl": "1.0.1",
+ "escape-html": "1.0.3",
+ "etag": "1.8.1",
+ "finalhandler": "1.1.0",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "1.1.2",
+ "on-finished": "2.3.0",
+ "parseurl": "1.3.2",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "2.0.2",
+ "qs": "6.5.1",
+ "range-parser": "1.2.0",
+ "safe-buffer": "5.1.1",
+ "send": "0.16.1",
+ "serve-static": "1.13.1",
+ "setprototypeof": "1.1.0",
+ "statuses": "1.3.1",
+ "type-is": "1.6.15",
+ "utils-merge": "1.0.1",
+ "vary": "1.1.2"
},
"dependencies": {
- "connect": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/connect/-/connect-1.9.2.tgz",
- "integrity": "sha1-QogKIulDiuWait105Df1iujlKAc=",
- "dev": true,
- "requires": {
- "formidable": "1.0.17",
- "mime": "1.2.4",
- "qs": "0.4.2"
- }
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "dev": true
},
- "mkdirp": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
- "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=",
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
"dev": true
},
"qs": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-0.4.2.tgz",
- "integrity": "sha1-PKxMhh43GoycR3CsI82o3mObjl8=",
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
+ "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
"dev": true
}
}
@@ -2777,6 +3693,17 @@
"integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
"dev": true
},
+ "external-editor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz",
+ "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==",
+ "dev": true,
+ "requires": {
+ "chardet": "0.4.2",
+ "iconv-lite": "0.4.19",
+ "tmp": "0.0.33"
+ }
+ },
"extglob": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
@@ -2786,32 +3713,68 @@
"is-extglob": "1.0.0"
}
},
- "extsprintf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
- "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=",
- "dev": true
- },
- "fancy-log": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz",
- "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=",
+ "extract-text-webpack-plugin": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz",
+ "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==",
"dev": true,
"requires": {
- "chalk": "1.1.3",
- "time-stamp": "1.1.0"
+ "async": "2.6.0",
+ "loader-utils": "1.1.0",
+ "schema-utils": "0.3.0",
+ "webpack-sources": "1.1.0"
}
},
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
+ "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8="
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
"fastparse": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
"integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=",
"dev": true
},
+ "faye-websocket": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
+ "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
+ "dev": true,
+ "requires": {
+ "websocket-driver": "0.7.0"
+ }
+ },
+ "fb-watchman": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz",
+ "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=",
+ "dev": true,
+ "requires": {
+ "bser": "2.0.0"
+ }
+ },
"fbjs": {
- "version": "0.8.12",
- "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz",
- "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=",
+ "version": "0.8.16",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz",
+ "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=",
"requires": {
"core-js": "1.2.7",
"isomorphic-fetch": "2.2.1",
@@ -2819,26 +3782,36 @@
"object-assign": "4.1.1",
"promise": "7.3.1",
"setimmediate": "1.0.5",
- "ua-parser-js": "0.7.13"
+ "ua-parser-js": "0.7.17"
}
},
"figures": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
- "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
"dev": true,
"requires": {
- "escape-string-regexp": "1.0.5",
+ "escape-string-regexp": "1.0.5"
+ }
+ },
+ "file-entry-cache": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
+ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
+ "dev": true,
+ "requires": {
+ "flat-cache": "1.3.0",
"object-assign": "4.1.1"
}
},
"file-loader": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.9.0.tgz",
- "integrity": "sha1-HS2t3UJM5tGwfP4/eXMb7TYXq0I=",
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.5.tgz",
+ "integrity": "sha512-RzGHDatcVNpGISTvCpfUfOGpYuSR7HSsSg87ki+wF6rw1Hm0RALPTiAdsxAq1UwLf0RRhbe22/eHK6nhXspiOQ==",
"dev": true,
"requires": {
- "loader-utils": "0.2.17"
+ "loader-utils": "1.1.0",
+ "schema-utils": "0.3.0"
}
},
"filename-regex": {
@@ -2847,6 +3820,22 @@
"integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
"dev": true
},
+ "fileset": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
+ "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=",
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2",
+ "minimatch": "3.0.4"
+ }
+ },
+ "filesize": {
+ "version": "3.5.11",
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.5.11.tgz",
+ "integrity": "sha512-ZH7loueKBoDb7yG9esn1U+fgq7BzlzW6NRi5/rMdxIZ05dj7GFD/Xc5rq2CDt5Yq86CyfSYVyx4242QQNZbx1g==",
+ "dev": true
+ },
"fill-range": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
@@ -2867,52 +3856,31 @@
"dev": true
},
"finalhandler": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.0.tgz",
- "integrity": "sha1-6VCKvs6bbbqHGmlCodeRG5GRGsc=",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
+ "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
"dev": true,
"requires": {
- "debug": "2.2.0",
+ "debug": "2.6.9",
+ "encodeurl": "1.0.1",
"escape-html": "1.0.3",
"on-finished": "2.3.0",
+ "parseurl": "1.3.2",
"statuses": "1.3.1",
"unpipe": "1.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
- "dev": true,
- "requires": {
- "ms": "0.7.1"
- }
- },
- "ms": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
- "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
- "dev": true
- }
}
},
"find-cache-dir": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
- "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
+ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
"dev": true,
"requires": {
"commondir": "1.0.1",
- "mkdirp": "0.5.1",
- "pkg-dir": "1.0.0"
+ "make-dir": "1.1.0",
+ "pkg-dir": "2.0.0"
}
},
- "find-index": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz",
- "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=",
- "dev": true
- },
"find-up": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
@@ -2923,72 +3891,24 @@
"pinkie-promise": "2.0.1"
}
},
- "findup-sync": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz",
- "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=",
+ "flat-cache": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
+ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
"dev": true,
"requires": {
- "detect-file": "0.1.0",
- "is-glob": "2.0.1",
- "micromatch": "2.3.11",
- "resolve-dir": "0.1.1"
+ "circular-json": "0.3.3",
+ "del": "2.2.2",
+ "graceful-fs": "4.1.11",
+ "write": "0.2.1"
}
},
- "fined": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz",
- "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=",
- "dev": true,
- "requires": {
- "expand-tilde": "2.0.2",
- "is-plain-object": "2.0.4",
- "object.defaults": "1.1.0",
- "object.pick": "1.2.0",
- "parse-filepath": "1.0.1"
- },
- "dependencies": {
- "expand-tilde": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
- "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
- "dev": true,
- "requires": {
- "homedir-polyfill": "1.0.1"
- }
- }
- }
- },
- "first-chunk-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
- "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=",
- "dev": true
- },
- "flagged-respawn": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz",
- "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=",
- "dev": true
- },
"flatten": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
"integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
"dev": true
},
- "flow-bin": {
- "version": "0.37.4",
- "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.37.4.tgz",
- "integrity": "sha1-PY2i73RugOcw0WbgkED0GYlpt2s=",
- "dev": true
- },
- "fn-name": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz",
- "integrity": "sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=",
- "dev": true
- },
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
@@ -3004,6 +3924,12 @@
"for-in": "1.0.2"
}
},
+ "foreach": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
+ "dev": true
+ },
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
@@ -3018,57 +3944,1000 @@
"requires": {
"asynckit": "0.4.0",
"combined-stream": "1.0.5",
- "mime-types": "2.1.15"
+ "mime-types": "2.1.17"
}
},
- "formidable": {
- "version": "1.0.17",
- "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.17.tgz",
- "integrity": "sha1-71SRSQ+UM7cF+qdyScmQKa40hVk=",
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
"dev": true
},
"fresh": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz",
- "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=",
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
"dev": true
},
- "fs-exists-sync": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz",
- "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=",
+ "from": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
+ "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
"dev": true
},
"fs-extra": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
- "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
+ "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=",
"dev": true,
"requires": {
"graceful-fs": "4.1.11",
- "jsonfile": "2.4.0",
- "klaw": "1.3.1"
+ "jsonfile": "3.0.1",
+ "universalify": "0.1.1"
}
},
+ "fs-readdir-recursive": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
+ "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==",
+ "dev": true
+ },
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true
},
- "function-bind": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz",
- "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=",
- "dev": true
+ "fsevents": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz",
+ "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "nan": "2.8.0",
+ "node-pre-gyp": "0.6.39"
+ },
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "ajv": {
+ "version": "4.11.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "co": "4.6.0",
+ "json-stable-stringify": "1.0.1"
+ }
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "aproba": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "delegates": "1.0.0",
+ "readable-stream": "2.2.9"
+ }
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "aws4": {
+ "version": "1.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "balanced-match": {
+ "version": "0.4.2",
+ "bundled": true,
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "block-stream": {
+ "version": "0.0.9",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "boom": {
+ "version": "2.10.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.7",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "balanced-match": "0.4.2",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer-shims": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "co": {
+ "version": "4.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "delayed-stream": "1.0.0"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "boom": "2.10.1"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.4.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "detect-libc": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "0.1.1"
+ }
+ },
+ "extend": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "extsprintf": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "form-data": {
+ "version": "2.1.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.5",
+ "mime-types": "2.1.15"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "fstream": {
+ "version": "1.0.11",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "inherits": "2.0.3",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.6.1"
+ }
+ },
+ "fstream-ignore": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fstream": "1.0.11",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4"
+ }
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aproba": "1.1.1",
+ "console-control-strings": "1.1.0",
+ "has-unicode": "2.0.1",
+ "object-assign": "4.1.1",
+ "signal-exit": "3.0.2",
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wide-align": "1.1.2"
+ }
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "bundled": true,
+ "dev": true
+ },
+ "har-schema": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "har-validator": {
+ "version": "4.2.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ajv": "4.11.8",
+ "har-schema": "1.0.5"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "boom": "2.10.1",
+ "cryptiles": "2.0.5",
+ "hoek": "2.16.3",
+ "sntp": "1.0.9"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "bundled": true,
+ "dev": true
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "0.2.0",
+ "jsprim": "1.4.0",
+ "sshpk": "1.13.0"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "ini": {
+ "version": "1.3.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "jodid25519": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "0.1.1"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsonify": "0.0.0"
+ }
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "jsprim": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.0.2",
+ "json-schema": "0.2.3",
+ "verror": "1.3.6"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "mime-db": {
+ "version": "1.27.0",
+ "bundled": true,
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.15",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "mime-db": "1.27.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true,
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "node-pre-gyp": {
+ "version": "0.6.39",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "detect-libc": "1.0.2",
+ "hawk": "3.1.3",
+ "mkdirp": "0.5.1",
+ "nopt": "4.0.1",
+ "npmlog": "4.1.0",
+ "rc": "1.2.1",
+ "request": "2.81.0",
+ "rimraf": "2.6.1",
+ "semver": "5.3.0",
+ "tar": "2.2.1",
+ "tar-pack": "3.4.0"
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abbrev": "1.1.0",
+ "osenv": "0.1.4"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "1.1.4",
+ "console-control-strings": "1.1.0",
+ "gauge": "2.7.4",
+ "set-blocking": "2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "osenv": {
+ "version": "0.1.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "performance-now": {
+ "version": "0.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "bundled": true,
+ "dev": true
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "qs": {
+ "version": "6.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "rc": {
+ "version": "1.2.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "deep-extend": "0.4.2",
+ "ini": "1.3.4",
+ "minimist": "1.2.0",
+ "strip-json-comments": "2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.2.9",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "buffer-shims": "1.0.0",
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "string_decoder": "1.0.1",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "request": {
+ "version": "2.81.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aws-sign2": "0.6.0",
+ "aws4": "1.6.0",
+ "caseless": "0.12.0",
+ "combined-stream": "1.0.5",
+ "extend": "3.0.1",
+ "forever-agent": "0.6.1",
+ "form-data": "2.1.4",
+ "har-validator": "4.2.1",
+ "hawk": "3.1.3",
+ "http-signature": "1.1.1",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.15",
+ "oauth-sign": "0.8.2",
+ "performance-now": "0.2.0",
+ "qs": "6.4.0",
+ "safe-buffer": "5.0.1",
+ "stringstream": "0.0.5",
+ "tough-cookie": "2.3.2",
+ "tunnel-agent": "0.6.0",
+ "uuid": "3.0.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "semver": {
+ "version": "5.3.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "sshpk": {
+ "version": "1.13.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asn1": "0.2.3",
+ "assert-plus": "1.0.0",
+ "bcrypt-pbkdf": "1.0.1",
+ "dashdash": "1.14.1",
+ "ecc-jsbn": "0.1.1",
+ "getpass": "0.1.7",
+ "jodid25519": "1.0.2",
+ "jsbn": "0.1.1",
+ "tweetnacl": "0.14.5"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.0.1"
+ }
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "tar": {
+ "version": "2.2.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "block-stream": "0.0.9",
+ "fstream": "1.0.11",
+ "inherits": "2.0.3"
+ }
+ },
+ "tar-pack": {
+ "version": "3.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "2.6.8",
+ "fstream": "1.0.11",
+ "fstream-ignore": "1.0.5",
+ "once": "1.4.0",
+ "readable-stream": "2.2.9",
+ "rimraf": "2.6.1",
+ "tar": "2.2.1",
+ "uid-number": "0.0.6"
+ }
+ },
+ "tough-cookie": {
+ "version": "2.3.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "punycode": "1.4.1"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "uid-number": {
+ "version": "0.0.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "verror": {
+ "version": "1.3.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "extsprintf": "1.0.2"
+ }
+ },
+ "wide-align": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "string-width": "1.0.2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ }
+ }
},
- "gaze": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz",
- "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=",
+ "fstream": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
+ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
"dev": true,
"requires": {
- "globule": "0.1.0"
+ "graceful-fs": "4.1.11",
+ "inherits": "2.0.3",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.6.2"
+ }
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "dev": true,
+ "requires": {
+ "aproba": "1.2.0",
+ "console-control-strings": "1.1.0",
+ "has-unicode": "2.0.1",
+ "object-assign": "4.1.1",
+ "signal-exit": "3.0.2",
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wide-align": "1.1.2"
+ }
+ },
+ "gaze": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz",
+ "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=",
+ "dev": true,
+ "requires": {
+ "globule": "1.2.0"
}
},
"generate-function": {
@@ -3092,21 +4961,18 @@
"integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
"dev": true
},
- "get-port": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/get-port/-/get-port-2.1.0.tgz",
- "integrity": "sha1-h4P53OvR7qSVozThpqJR54iHqxo=",
- "dev": true,
- "requires": {
- "pinkie-promise": "2.0.1"
- }
- },
"get-stdin": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
"integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
"dev": true
},
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true
+ },
"getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
@@ -3157,115 +5023,28 @@
"is-glob": "2.0.1"
}
},
- "glob-stream": {
- "version": "3.1.18",
- "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz",
- "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=",
- "dev": true,
- "requires": {
- "glob": "4.5.3",
- "glob2base": "0.0.12",
- "minimatch": "2.0.10",
- "ordered-read-streams": "0.1.0",
- "through2": "0.6.5",
- "unique-stream": "1.0.0"
- },
- "dependencies": {
- "glob": {
- "version": "4.5.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
- "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
- "dev": true,
- "requires": {
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "2.0.10",
- "once": "1.4.0"
- }
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
- "dev": true
- },
- "minimatch": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
- "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
- "dev": true,
- "requires": {
- "brace-expansion": "1.1.8"
- }
- },
- "readable-stream": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
- "dev": true,
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "0.0.1",
- "string_decoder": "0.10.31"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- },
- "through2": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
- "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
- "dev": true,
- "requires": {
- "readable-stream": "1.0.34",
- "xtend": "4.0.1"
- }
- }
- }
- },
- "glob-watcher": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz",
- "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=",
- "dev": true,
- "requires": {
- "gaze": "0.5.2"
- }
- },
- "glob2base": {
- "version": "0.0.12",
- "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz",
- "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=",
- "dev": true,
- "requires": {
- "find-index": "0.1.1"
- }
- },
"global-modules": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz",
- "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
"dev": true,
"requires": {
- "global-prefix": "0.1.5",
- "is-windows": "0.2.0"
+ "global-prefix": "1.0.2",
+ "is-windows": "1.0.1",
+ "resolve-dir": "1.0.1"
}
},
"global-prefix": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz",
- "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+ "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
"dev": true,
"requires": {
+ "expand-tilde": "2.0.2",
"homedir-polyfill": "1.0.1",
- "ini": "1.3.4",
- "is-windows": "0.2.0",
- "which": "1.2.14"
+ "ini": "1.3.5",
+ "is-windows": "1.0.1",
+ "which": "1.3.0"
}
},
"globals": {
@@ -3275,83 +5054,43 @@
"dev": true
},
"globby": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
- "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz",
+ "integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=",
"dev": true,
"requires": {
"array-union": "1.0.2",
- "glob": "7.1.2",
+ "arrify": "1.0.1",
+ "glob": "6.0.4",
"object-assign": "4.1.1",
"pify": "2.3.0",
"pinkie-promise": "2.0.1"
- }
- },
- "globule": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz",
- "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=",
- "dev": true,
- "requires": {
- "glob": "3.1.21",
- "lodash": "1.0.2",
- "minimatch": "0.2.14"
},
"dependencies": {
"glob": {
- "version": "3.1.21",
- "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
- "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
"dev": true,
"requires": {
- "graceful-fs": "1.2.3",
- "inherits": "1.0.2",
- "minimatch": "0.2.14"
- }
- },
- "graceful-fs": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
- "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
- "dev": true
- },
- "inherits": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
- "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
- "dev": true
- },
- "lodash": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
- "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=",
- "dev": true
- },
- "lru-cache": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
- "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
- "dev": true
- },
- "minimatch": {
- "version": "0.2.14",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
- "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
- "dev": true,
- "requires": {
- "lru-cache": "2.7.3",
- "sigmund": "1.0.1"
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
}
}
}
},
- "glogg": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz",
- "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=",
+ "globule": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz",
+ "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=",
"dev": true,
"requires": {
- "sparkles": "1.0.0"
+ "glob": "7.1.2",
+ "lodash": "4.17.4",
+ "minimatch": "3.0.4"
}
},
"got": {
@@ -3383,120 +5122,19 @@
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"dev": true
},
- "gulp": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz",
- "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=",
- "dev": true,
- "requires": {
- "archy": "1.0.0",
- "chalk": "1.1.3",
- "deprecated": "0.0.1",
- "gulp-util": "3.0.8",
- "interpret": "1.0.3",
- "liftoff": "2.3.0",
- "minimist": "1.2.0",
- "orchestrator": "0.3.8",
- "pretty-hrtime": "1.0.3",
- "semver": "4.3.6",
- "tildify": "1.2.0",
- "v8flags": "2.1.1",
- "vinyl-fs": "0.3.14"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
- "dev": true
- },
- "semver": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
- "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
- "dev": true
- }
- }
- },
- "gulp-babel": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-6.1.2.tgz",
- "integrity": "sha1-fAF25Lo/JExgWIoMSzIKRdGt784=",
- "dev": true,
- "requires": {
- "babel-core": "6.23.1",
- "gulp-util": "3.0.8",
- "object-assign": "4.1.1",
- "replace-ext": "0.0.1",
- "through2": "2.0.3",
- "vinyl-sourcemaps-apply": "0.2.1"
- }
- },
- "gulp-multi-process": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/gulp-multi-process/-/gulp-multi-process-0.0.4.tgz",
- "integrity": "sha1-9dSFXAEZ3msyZD950CJimUjBx8g=",
+ "growly": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
+ "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=",
"dev": true
},
- "gulp-shell": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/gulp-shell/-/gulp-shell-0.5.2.tgz",
- "integrity": "sha1-pJWcoGUa0ce7/nCy0K27tOGuqY0=",
+ "gzip-size": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz",
+ "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=",
"dev": true,
"requires": {
- "async": "1.5.2",
- "gulp-util": "3.0.8",
- "lodash": "4.17.4",
- "through2": "2.0.3"
- }
- },
- "gulp-util": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
- "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
- "dev": true,
- "requires": {
- "array-differ": "1.0.0",
- "array-uniq": "1.0.3",
- "beeper": "1.1.1",
- "chalk": "1.1.3",
- "dateformat": "2.0.0",
- "fancy-log": "1.3.0",
- "gulplog": "1.0.0",
- "has-gulplog": "0.1.0",
- "lodash._reescape": "3.0.0",
- "lodash._reevaluate": "3.0.0",
- "lodash._reinterpolate": "3.0.0",
- "lodash.template": "3.6.2",
- "minimist": "1.2.0",
- "multipipe": "0.1.2",
- "object-assign": "3.0.0",
- "replace-ext": "0.0.1",
- "through2": "2.0.3",
- "vinyl": "0.5.3"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
- "dev": true
- },
- "object-assign": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
- "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
- "dev": true
- }
- }
- },
- "gulplog": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
- "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
- "dev": true,
- "requires": {
- "glogg": "1.0.0"
+ "duplexer": "0.1.1"
}
},
"hammerjs": {
@@ -3504,6 +5142,101 @@
"resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz",
"integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE="
},
+ "handle-thing": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz",
+ "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=",
+ "dev": true
+ },
+ "handlebars": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz",
+ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=",
+ "dev": true,
+ "requires": {
+ "async": "1.5.2",
+ "optimist": "0.6.1",
+ "source-map": "0.4.4",
+ "uglify-js": "2.8.29"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "dev": true,
+ "optional": true
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "center-align": "0.1.3",
+ "right-align": "0.1.3",
+ "wordwrap": "0.0.2"
+ }
+ },
+ "source-map": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "dev": true,
+ "requires": {
+ "amdefine": "1.0.1"
+ }
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "source-map": "0.5.7",
+ "uglify-to-browserify": "1.0.2",
+ "yargs": "3.10.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "dev": true,
+ "optional": true
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "camelcase": "1.2.1",
+ "cliui": "2.1.0",
+ "decamelize": "1.2.0",
+ "window-size": "0.1.0"
+ }
+ }
+ }
+ },
"har-validator": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
@@ -3511,8 +5244,8 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "commander": "2.11.0",
- "is-my-json-valid": "2.16.0",
+ "commander": "2.12.2",
+ "is-my-json-valid": "2.17.1",
"pinkie-promise": "2.0.1"
}
},
@@ -3522,7 +5255,7 @@
"integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
"dev": true,
"requires": {
- "function-bind": "1.1.0"
+ "function-bind": "1.1.1"
}
},
"has-ansi": {
@@ -3534,48 +5267,35 @@
"ansi-regex": "2.1.1"
}
},
- "has-binary": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz",
- "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=",
- "dev": true,
- "requires": {
- "isarray": "0.0.1"
- },
- "dependencies": {
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
- "dev": true
- }
- }
- },
- "has-color": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
- "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=",
- "dev": true
- },
- "has-cors": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
- "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",
- "dev": true
- },
"has-flag": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
"integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
"dev": true
},
- "has-gulplog": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
- "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+ "dev": true
+ },
+ "hash-base": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz",
+ "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=",
"dev": true,
"requires": {
- "sparkles": "1.0.0"
+ "inherits": "2.0.3"
+ }
+ },
+ "hash.js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
+ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
}
},
"hawk": {
@@ -3590,6 +5310,23 @@
"sntp": "1.0.9"
}
},
+ "he": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
+ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
+ "dev": true
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "dev": true,
+ "requires": {
+ "hash.js": "1.1.3",
+ "minimalistic-assert": "1.0.0",
+ "minimalistic-crypto-utils": "1.0.1"
+ }
+ },
"hoek": {
"version": "2.16.3",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
@@ -3621,33 +5358,201 @@
"integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
"dev": true
},
+ "hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "obuf": "1.1.1",
+ "readable-stream": "2.3.3",
+ "wbuf": "1.7.2"
+ }
+ },
"html-comment-regex": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz",
"integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=",
"dev": true
},
- "http-errors": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz",
- "integrity": "sha1-eIwNLB3iyBuebowBhDtrl+uSB1A=",
+ "html-encoding-sniffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
+ "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
"dev": true,
"requires": {
- "inherits": "2.0.3",
- "setprototypeof": "1.0.2",
- "statuses": "1.3.1"
+ "whatwg-encoding": "1.0.3"
}
},
+ "html-entities": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
+ "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
+ "dev": true
+ },
+ "html-minifier": {
+ "version": "3.5.8",
+ "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.8.tgz",
+ "integrity": "sha512-WX7D6PB9PFq05fZ1/CyxPUuyqXed6vh2fGOM80+zJT5wAO93D/cUjLs0CcbBFjQmlwmCgRvl97RurtArIpOnkw==",
+ "dev": true,
+ "requires": {
+ "camel-case": "3.0.0",
+ "clean-css": "4.1.9",
+ "commander": "2.12.2",
+ "he": "1.1.1",
+ "ncname": "1.0.0",
+ "param-case": "2.1.1",
+ "relateurl": "0.2.7",
+ "uglify-js": "3.3.2"
+ }
+ },
+ "html-webpack-plugin": {
+ "version": "2.29.0",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.29.0.tgz",
+ "integrity": "sha1-6Yf0IYU9O2k4yMTIFxhC5f0XryM=",
+ "dev": true,
+ "requires": {
+ "bluebird": "3.5.1",
+ "html-minifier": "3.5.8",
+ "loader-utils": "0.2.17",
+ "lodash": "4.17.4",
+ "pretty-error": "2.1.1",
+ "toposort": "1.0.6"
+ },
+ "dependencies": {
+ "loader-utils": {
+ "version": "0.2.17",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+ "dev": true,
+ "requires": {
+ "big.js": "3.2.0",
+ "emojis-list": "2.1.0",
+ "json5": "0.5.1",
+ "object-assign": "4.1.1"
+ }
+ }
+ }
+ },
+ "htmlparser2": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz",
+ "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1.3.0",
+ "domhandler": "2.1.0",
+ "domutils": "1.1.6",
+ "readable-stream": "1.0.34"
+ },
+ "dependencies": {
+ "domutils": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz",
+ "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1.3.0"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "0.0.1",
+ "string_decoder": "0.10.31"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ }
+ }
+ },
+ "http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+ "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
+ "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
+ "dev": true,
+ "requires": {
+ "depd": "1.1.1",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.0.3",
+ "statuses": "1.3.1"
+ },
+ "dependencies": {
+ "setprototypeof": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
+ "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=",
+ "dev": true
+ }
+ }
+ },
+ "http-parser-js": {
+ "version": "0.4.9",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz",
+ "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=",
+ "dev": true
+ },
"http-proxy": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz",
- "integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=",
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz",
+ "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=",
"dev": true,
"requires": {
"eventemitter3": "1.2.0",
"requires-port": "1.0.0"
}
},
+ "http-proxy-middleware": {
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz",
+ "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=",
+ "dev": true,
+ "requires": {
+ "http-proxy": "1.16.2",
+ "is-glob": "3.1.0",
+ "lodash": "4.17.4",
+ "micromatch": "2.3.11"
+ },
+ "dependencies": {
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "2.1.1"
+ }
+ }
+ }
+ },
"http-signature": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
@@ -3655,20 +5560,20 @@
"dev": true,
"requires": {
"assert-plus": "0.2.0",
- "jsprim": "1.4.0",
+ "jsprim": "1.4.1",
"sshpk": "1.13.1"
}
},
"https-browserify": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz",
- "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
"dev": true
},
"iconv-lite": {
- "version": "0.4.18",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz",
- "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA=="
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
+ "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
},
"icss-replace-symbols": {
"version": "1.1.0",
@@ -3676,30 +5581,45 @@
"integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
"dev": true
},
+ "icss-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz",
+ "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
+ "dev": true,
+ "requires": {
+ "postcss": "6.0.14"
+ }
+ },
"ieee754": {
"version": "1.1.8",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz",
"integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=",
"dev": true
},
- "ignore-by-default": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
- "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=",
+ "ignore": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz",
+ "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==",
"dev": true
},
- "image-size": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
- "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
+ "immutability-helper": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/immutability-helper/-/immutability-helper-2.6.2.tgz",
+ "integrity": "sha512-2boGYtiA++szFIXl9tlTJ7f2emec+3UCaRjv8Ixnw62G43rz2n+vZ5kfs6fUmCORKuhJHFR2oSuAxBgrMxt95g==",
"dev": true,
- "optional": true
+ "requires": {
+ "invariant": "2.2.2"
+ }
},
- "immutable": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz",
- "integrity": "sha1-IAgH8Rqw9ycQ6khVQt4IgHX2jNI=",
- "dev": true
+ "import-local": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-0.1.1.tgz",
+ "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=",
+ "dev": true,
+ "requires": {
+ "pkg-dir": "2.0.0",
+ "resolve-cwd": "2.0.0"
+ }
},
"imurmurhash": {
"version": "0.1.4",
@@ -3707,6 +5627,12 @@
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true
},
+ "in-publish": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
+ "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
+ "dev": true
+ },
"indent-string": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
@@ -3745,15 +5671,108 @@
"dev": true
},
"ini": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
- "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=",
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
"dev": true
},
+ "inquirer": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
+ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "3.0.0",
+ "chalk": "2.3.0",
+ "cli-cursor": "2.1.0",
+ "cli-width": "2.2.0",
+ "external-editor": "2.1.0",
+ "figures": "2.0.0",
+ "lodash": "4.17.4",
+ "mute-stream": "0.0.7",
+ "run-async": "2.3.0",
+ "rx-lite": "4.0.8",
+ "rx-lite-aggregates": "4.0.8",
+ "string-width": "2.1.1",
+ "strip-ansi": "4.0.0",
+ "through": "2.3.8"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.1"
+ }
+ },
+ "chalk": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
+ }
+ },
+ "internal-ip": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz",
+ "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=",
+ "dev": true,
+ "requires": {
+ "meow": "3.7.0"
+ }
+ },
"interpret": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz",
- "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
+ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
"dev": true
},
"invariant": {
@@ -3771,21 +5790,17 @@
"integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
"dev": true
},
- "irregular-plurals": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.3.0.tgz",
- "integrity": "sha512-njf5A+Mxb3kojuHd1DzISjjIl+XhyzovXEOyPPSzdQozq/Lf2tN27mOrAAsxEPZxpn6I4MGzs1oo9TxXxPFpaA==",
+ "ip": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
"dev": true
},
- "is-absolute": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz",
- "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=",
- "dev": true,
- "requires": {
- "is-relative": "0.2.1",
- "is-windows": "0.2.0"
- }
+ "ipaddr.js": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz",
+ "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=",
+ "dev": true
},
"is-absolute-url": {
"version": "2.1.0",
@@ -3805,13 +5820,13 @@
"integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
"dev": true,
"requires": {
- "binary-extensions": "1.8.0"
+ "binary-extensions": "1.11.0"
}
},
"is-buffer": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
- "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
"dev": true
},
"is-builtin-module": {
@@ -3823,15 +5838,33 @@
"builtin-modules": "1.1.1"
}
},
+ "is-callable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
+ "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=",
+ "dev": true
+ },
"is-ci": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz",
"integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=",
"dev": true,
"requires": {
- "ci-info": "1.0.0"
+ "ci-info": "1.1.2"
}
},
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+ "dev": true
+ },
+ "is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+ "dev": true
+ },
"is-dotfile": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
@@ -3847,12 +5880,6 @@
"is-primitive": "2.0.0"
}
},
- "is-error": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.1.tgz",
- "integrity": "sha1-aEqW2EB2V3yY9M20DG0mpRI78Zw=",
- "dev": true
- },
"is-extendable": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
@@ -3883,12 +5910,6 @@
"number-is-nan": "1.0.1"
}
},
- "is-generator-fn": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz",
- "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=",
- "dev": true
- },
"is-glob": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
@@ -3898,10 +5919,16 @@
"is-extglob": "1.0.0"
}
},
+ "is-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
+ "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=",
+ "dev": true
+ },
"is-my-json-valid": {
- "version": "2.16.0",
- "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz",
- "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=",
+ "version": "2.17.1",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz",
+ "integrity": "sha512-Q2khNw+oBlWuaYvEEHtKSw/pCxD2L5Rc1C+UQme9X6JdRDh7m5D7HkozA0qa3DUkQ6VzCnEm8mVIQPyIRkI5sQ==",
"dev": true,
"requires": {
"generate-function": "2.0.0",
@@ -3925,28 +5952,34 @@
"kind-of": "3.2.2"
}
},
- "is-number-like": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz",
- "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==",
- "dev": true,
- "requires": {
- "lodash.isfinite": "3.3.2"
- }
- },
"is-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
"integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
"dev": true
},
- "is-observable": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz",
- "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=",
+ "is-path-cwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+ "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
+ "dev": true
+ },
+ "is-path-in-cwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
+ "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=",
"dev": true,
"requires": {
- "symbol-observable": "0.2.4"
+ "is-path-inside": "1.0.1"
+ }
+ },
+ "is-path-inside": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+ "dev": true,
+ "requires": {
+ "path-is-inside": "1.0.2"
}
},
"is-plain-obj": {
@@ -3955,23 +5988,6 @@
"integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
"dev": true
},
- "is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dev": true,
- "requires": {
- "isobject": "3.0.1"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
- }
- },
"is-posix-bracket": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
@@ -4002,21 +6018,33 @@
"integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
"dev": true
},
- "is-relative": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz",
- "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=",
+ "is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
"dev": true,
"requires": {
- "is-unc-path": "0.1.2"
+ "has": "1.0.1"
}
},
+ "is-resolvable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.1.tgz",
+ "integrity": "sha512-y5CXYbzvB3jTnWAZH1Nl7ykUWb6T3BcTs56HUruwBf8MhF56n1HWqhDWnVFo8GHrUPDgvUUNVhrc2U8W7iqz5g==",
+ "dev": true
+ },
"is-retry-allowed": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
"integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
"dev": true
},
+ "is-root": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz",
+ "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU=",
+ "dev": true
+ },
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
@@ -4031,27 +6059,18 @@
"html-comment-regex": "1.1.1"
}
},
+ "is-symbol": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
+ "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=",
+ "dev": true
+ },
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
"dev": true
},
- "is-unc-path": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz",
- "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=",
- "dev": true,
- "requires": {
- "unc-path-regex": "0.1.2"
- }
- },
- "is-url": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz",
- "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY=",
- "dev": true
- },
"is-utf8": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
@@ -4059,9 +6078,15 @@
"dev": true
},
"is-windows": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz",
- "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz",
+ "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=",
+ "dev": true
+ },
+ "is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
"dev": true
},
"isarray": {
@@ -4090,7 +6115,7 @@
"resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
"integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
"requires": {
- "node-fetch": "1.7.1",
+ "node-fetch": "1.7.3",
"whatwg-fetch": "2.0.3"
}
},
@@ -4100,15 +6125,418 @@
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
"dev": true
},
+ "istanbul-api": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.2.1.tgz",
+ "integrity": "sha512-oFCwXvd65amgaPCzqrR+a2XjanS1MvpXN6l/MlMUTv6uiA1NOgGX+I0uyq8Lg3GDxsxPsaP1049krz3hIJ5+KA==",
+ "dev": true,
+ "requires": {
+ "async": "2.6.0",
+ "fileset": "2.0.3",
+ "istanbul-lib-coverage": "1.1.1",
+ "istanbul-lib-hook": "1.1.0",
+ "istanbul-lib-instrument": "1.9.1",
+ "istanbul-lib-report": "1.1.2",
+ "istanbul-lib-source-maps": "1.2.2",
+ "istanbul-reports": "1.1.3",
+ "js-yaml": "3.7.0",
+ "mkdirp": "0.5.1",
+ "once": "1.4.0"
+ }
+ },
+ "istanbul-lib-coverage": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz",
+ "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==",
+ "dev": true
+ },
+ "istanbul-lib-hook": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz",
+ "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==",
+ "dev": true,
+ "requires": {
+ "append-transform": "0.4.0"
+ }
+ },
+ "istanbul-lib-instrument": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz",
+ "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==",
+ "dev": true,
+ "requires": {
+ "babel-generator": "6.26.0",
+ "babel-template": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "istanbul-lib-coverage": "1.1.1",
+ "semver": "5.4.1"
+ }
+ },
+ "istanbul-lib-report": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz",
+ "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==",
+ "dev": true,
+ "requires": {
+ "istanbul-lib-coverage": "1.1.1",
+ "mkdirp": "0.5.1",
+ "path-parse": "1.0.5",
+ "supports-color": "3.2.3"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "istanbul-lib-source-maps": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz",
+ "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==",
+ "dev": true,
+ "requires": {
+ "debug": "3.1.0",
+ "istanbul-lib-coverage": "1.1.1",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.6.2",
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "istanbul-reports": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz",
+ "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==",
+ "dev": true,
+ "requires": {
+ "handlebars": "4.0.11"
+ }
+ },
"javascript-natural-sort": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz",
"integrity": "sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k="
},
+ "jest": {
+ "version": "20.0.4",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-20.0.4.tgz",
+ "integrity": "sha1-PdJgwpidba1nix6cxNkZRPbWAqw=",
+ "dev": true,
+ "requires": {
+ "jest-cli": "20.0.4"
+ },
+ "dependencies": {
+ "ansi-escapes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
+ "dev": true
+ },
+ "callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
+ "dev": true
+ },
+ "jest-cli": {
+ "version": "20.0.4",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-20.0.4.tgz",
+ "integrity": "sha1-5TKxnYiuW8bEF+iwWTpv6VSx3JM=",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "1.4.0",
+ "callsites": "2.0.0",
+ "chalk": "1.1.3",
+ "graceful-fs": "4.1.11",
+ "is-ci": "1.0.10",
+ "istanbul-api": "1.2.1",
+ "istanbul-lib-coverage": "1.1.1",
+ "istanbul-lib-instrument": "1.9.1",
+ "istanbul-lib-source-maps": "1.2.2",
+ "jest-changed-files": "20.0.3",
+ "jest-config": "20.0.4",
+ "jest-docblock": "20.0.3",
+ "jest-environment-jsdom": "20.0.3",
+ "jest-haste-map": "20.0.5",
+ "jest-jasmine2": "20.0.4",
+ "jest-message-util": "20.0.3",
+ "jest-regex-util": "20.0.3",
+ "jest-resolve-dependencies": "20.0.3",
+ "jest-runtime": "20.0.4",
+ "jest-snapshot": "20.0.3",
+ "jest-util": "20.0.3",
+ "micromatch": "2.3.11",
+ "node-notifier": "5.1.2",
+ "pify": "2.3.0",
+ "slash": "1.0.0",
+ "string-length": "1.0.1",
+ "throat": "3.2.0",
+ "which": "1.3.0",
+ "worker-farm": "1.5.2",
+ "yargs": "7.1.0"
+ }
+ }
+ }
+ },
+ "jest-changed-files": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-20.0.3.tgz",
+ "integrity": "sha1-k5TVzGXEOEBhSb7xv01Sto4D4/g=",
+ "dev": true
+ },
+ "jest-config": {
+ "version": "20.0.4",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-20.0.4.tgz",
+ "integrity": "sha1-43kwqyIXyRNgXv8T5712PsSPruo=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "glob": "7.1.2",
+ "jest-environment-jsdom": "20.0.3",
+ "jest-environment-node": "20.0.3",
+ "jest-jasmine2": "20.0.4",
+ "jest-matcher-utils": "20.0.3",
+ "jest-regex-util": "20.0.3",
+ "jest-resolve": "20.0.4",
+ "jest-validate": "20.0.3",
+ "pretty-format": "20.0.3"
+ }
+ },
+ "jest-diff": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-20.0.3.tgz",
+ "integrity": "sha1-gfKI/Z5nXw+yPHXxwrGURf5YZhc=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "diff": "3.4.0",
+ "jest-matcher-utils": "20.0.3",
+ "pretty-format": "20.0.3"
+ }
+ },
+ "jest-docblock": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.0.3.tgz",
+ "integrity": "sha1-F76phDQswz2DxQ++FUXqDvqkRxI=",
+ "dev": true
+ },
+ "jest-environment-jsdom": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz",
+ "integrity": "sha1-BIqKwS7iJfcZBBdxODS7mZeH3pk=",
+ "dev": true,
+ "requires": {
+ "jest-mock": "20.0.3",
+ "jest-util": "20.0.3",
+ "jsdom": "9.12.0"
+ }
+ },
+ "jest-environment-node": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-20.0.3.tgz",
+ "integrity": "sha1-1Ii8RhKvLCRumG6K52caCZFj1AM=",
+ "dev": true,
+ "requires": {
+ "jest-mock": "20.0.3",
+ "jest-util": "20.0.3"
+ }
+ },
+ "jest-haste-map": {
+ "version": "20.0.5",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.0.5.tgz",
+ "integrity": "sha512-0IKAQjUvuZjMCNi/0VNQQF74/H9KB67hsHJqGiwTWQC6XO5Azs7kLWm+6Q/dwuhvDUvABDOBMFK2/FwZ3sZ07Q==",
+ "dev": true,
+ "requires": {
+ "fb-watchman": "2.0.0",
+ "graceful-fs": "4.1.11",
+ "jest-docblock": "20.0.3",
+ "micromatch": "2.3.11",
+ "sane": "1.6.0",
+ "worker-farm": "1.5.2"
+ }
+ },
+ "jest-jasmine2": {
+ "version": "20.0.4",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz",
+ "integrity": "sha1-/MWxQReA2RHQQpAu8YWehS5g1eE=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "graceful-fs": "4.1.11",
+ "jest-diff": "20.0.3",
+ "jest-matcher-utils": "20.0.3",
+ "jest-matchers": "20.0.3",
+ "jest-message-util": "20.0.3",
+ "jest-snapshot": "20.0.3",
+ "once": "1.4.0",
+ "p-map": "1.2.0"
+ }
+ },
+ "jest-matcher-utils": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz",
+ "integrity": "sha1-s6a443yld4A7CDKpixZPRLeBVhI=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "pretty-format": "20.0.3"
+ }
+ },
+ "jest-matchers": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-matchers/-/jest-matchers-20.0.3.tgz",
+ "integrity": "sha1-ymnbHDLbWm9wf6XgQBq7VXAN/WA=",
+ "dev": true,
+ "requires": {
+ "jest-diff": "20.0.3",
+ "jest-matcher-utils": "20.0.3",
+ "jest-message-util": "20.0.3",
+ "jest-regex-util": "20.0.3"
+ }
+ },
+ "jest-message-util": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-20.0.3.tgz",
+ "integrity": "sha1-auwoRDBvyw5udNV5bBAG2W/dgxw=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "micromatch": "2.3.11",
+ "slash": "1.0.0"
+ }
+ },
+ "jest-mock": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-20.0.3.tgz",
+ "integrity": "sha1-i8Bw6QQUqhVcEajWTIaaDVxx2lk=",
+ "dev": true
+ },
+ "jest-regex-util": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz",
+ "integrity": "sha1-hburXRM+RGJbGfr4xqpRItCF12I=",
+ "dev": true
+ },
+ "jest-resolve": {
+ "version": "20.0.4",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-20.0.4.tgz",
+ "integrity": "sha1-lEiz6La6/BVHlETGSZBFt//ll6U=",
+ "dev": true,
+ "requires": {
+ "browser-resolve": "1.11.2",
+ "is-builtin-module": "1.0.0",
+ "resolve": "1.5.0"
+ }
+ },
+ "jest-resolve-dependencies": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz",
+ "integrity": "sha1-bhSntxevDyyzZnxUneQK8Bexcjo=",
+ "dev": true,
+ "requires": {
+ "jest-regex-util": "20.0.3"
+ }
+ },
+ "jest-runtime": {
+ "version": "20.0.4",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-20.0.4.tgz",
+ "integrity": "sha1-osgCIZxCA/dU3xQE5JAYYWnRJNg=",
+ "dev": true,
+ "requires": {
+ "babel-core": "6.26.0",
+ "babel-jest": "20.0.3",
+ "babel-plugin-istanbul": "4.1.5",
+ "chalk": "1.1.3",
+ "convert-source-map": "1.5.1",
+ "graceful-fs": "4.1.11",
+ "jest-config": "20.0.4",
+ "jest-haste-map": "20.0.5",
+ "jest-regex-util": "20.0.3",
+ "jest-resolve": "20.0.4",
+ "jest-util": "20.0.3",
+ "json-stable-stringify": "1.0.1",
+ "micromatch": "2.3.11",
+ "strip-bom": "3.0.0",
+ "yargs": "7.1.0"
+ },
+ "dependencies": {
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
+ "jest-snapshot": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-20.0.3.tgz",
+ "integrity": "sha1-W4R+GtsaTZCFKn+fElCG4YfHZWY=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "jest-diff": "20.0.3",
+ "jest-matcher-utils": "20.0.3",
+ "jest-util": "20.0.3",
+ "natural-compare": "1.4.0",
+ "pretty-format": "20.0.3"
+ }
+ },
+ "jest-util": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-20.0.3.tgz",
+ "integrity": "sha1-DAf32A2C9OWmfG+LnD/n9lz9Mq0=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "graceful-fs": "4.1.11",
+ "jest-message-util": "20.0.3",
+ "jest-mock": "20.0.3",
+ "jest-validate": "20.0.3",
+ "leven": "2.1.0",
+ "mkdirp": "0.5.1"
+ }
+ },
+ "jest-validate": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-20.0.3.tgz",
+ "integrity": "sha1-0M/R3k9XnymEhJJcKA+PHZTsPKs=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "jest-matcher-utils": "20.0.3",
+ "leven": "2.1.0",
+ "pretty-format": "20.0.3"
+ }
+ },
"js-base64": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
- "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.0.tgz",
+ "integrity": "sha512-Wehd+7Pf9tFvGb+ydPm9TjYjV8X1YHOVyG8QyELZxEMqOhemVwGRmoG8iQ/soqI3n8v4xn59zaLxiCJiaaRzKA==",
"dev": true
},
"js-tokens": {
@@ -4133,6 +6561,41 @@
"dev": true,
"optional": true
},
+ "jsdom": {
+ "version": "9.12.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz",
+ "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=",
+ "dev": true,
+ "requires": {
+ "abab": "1.0.4",
+ "acorn": "4.0.13",
+ "acorn-globals": "3.1.0",
+ "array-equal": "1.0.0",
+ "content-type-parser": "1.0.2",
+ "cssom": "0.3.2",
+ "cssstyle": "0.2.37",
+ "escodegen": "1.9.0",
+ "html-encoding-sniffer": "1.0.2",
+ "nwmatcher": "1.4.3",
+ "parse5": "1.5.1",
+ "request": "2.79.0",
+ "sax": "1.2.4",
+ "symbol-tree": "3.2.2",
+ "tough-cookie": "2.3.3",
+ "webidl-conversions": "4.0.2",
+ "whatwg-encoding": "1.0.3",
+ "whatwg-url": "4.8.0",
+ "xml-name-validator": "2.0.1"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+ "dev": true
+ }
+ }
+ },
"jsesc": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
@@ -4140,9 +6603,15 @@
"dev": true
},
"json-loader": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz",
- "integrity": "sha1-i6oTZaYy9Yo8RtIBdfxgAsluN94=",
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
+ "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==",
+ "dev": true
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz",
+ "integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==",
"dev": true
},
"json-schema": {
@@ -4151,10 +6620,16 @@
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
"dev": true
},
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
+ },
"json-stable-stringify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
"integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
+ "dev": true,
"requires": {
"jsonify": "0.0.0"
}
@@ -4178,9 +6653,9 @@
"dev": true
},
"jsonfile": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
- "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
+ "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=",
"dev": true,
"requires": {
"graceful-fs": "4.1.11"
@@ -4189,7 +6664,8 @@
"jsonify": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
- "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
+ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
+ "dev": true
},
"jsonpointer": {
"version": "4.0.1",
@@ -4198,15 +6674,15 @@
"dev": true
},
"jsprim": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
- "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
"dev": true,
"requires": {
"assert-plus": "1.0.0",
- "extsprintf": "1.0.2",
+ "extsprintf": "1.3.0",
"json-schema": "0.2.3",
- "verror": "1.3.6"
+ "verror": "1.10.0"
},
"dependencies": {
"assert-plus": {
@@ -4217,13 +6693,25 @@
}
}
},
+ "jsx-ast-utils": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz",
+ "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=",
+ "dev": true
+ },
+ "killable": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz",
+ "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=",
+ "dev": true
+ },
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.5"
+ "is-buffer": "1.1.6"
}
},
"klaw": {
@@ -4235,15 +6723,6 @@
"graceful-fs": "4.1.11"
}
},
- "last-line-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/last-line-stream/-/last-line-stream-1.0.0.tgz",
- "integrity": "sha1-0bZNafhv8kry0EiDos7uFFIKVgA=",
- "dev": true,
- "requires": {
- "through2": "2.0.3"
- }
- },
"latest-version": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/latest-version/-/latest-version-2.0.0.tgz",
@@ -4274,63 +6753,22 @@
"invert-kv": "1.0.0"
}
},
- "less": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/less/-/less-2.7.2.tgz",
- "integrity": "sha1-No1sxz4fsDmBGDKAkYdDxdz5s98=",
- "dev": true,
- "requires": {
- "errno": "0.1.4",
- "graceful-fs": "4.1.11",
- "image-size": "0.5.5",
- "mime": "1.3.6",
- "mkdirp": "0.5.1",
- "promise": "7.3.1",
- "request": "2.78.0",
- "source-map": "0.5.6"
- },
- "dependencies": {
- "mime": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz",
- "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA=",
- "dev": true,
- "optional": true
- }
- }
- },
- "less-loader": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-2.2.3.tgz",
- "integrity": "sha1-ttj4E5yEk98J2ZKpOgBzSwj4RSg=",
- "dev": true,
- "requires": {
- "loader-utils": "0.2.17"
- }
- },
- "liftoff": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz",
- "integrity": "sha1-qY8v9nGD2Lp8+soQVIvX/wVQs4U=",
- "dev": true,
- "requires": {
- "extend": "3.0.1",
- "findup-sync": "0.4.3",
- "fined": "1.1.0",
- "flagged-respawn": "0.3.2",
- "lodash.isplainobject": "4.0.6",
- "lodash.isstring": "4.0.1",
- "lodash.mapvalues": "4.6.0",
- "rechoir": "0.6.2",
- "resolve": "1.3.3"
- }
- },
- "limiter": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.2.tgz",
- "integrity": "sha512-JIKZ0xb6fZZYa3deZ0BgXCgX6HgV8Nx3mFGeFHmFWW8Fb2c08e0CyE+G3nalpD0xGvGssjGb1UdFr+PprxZEbw==",
+ "leven": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
+ "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=",
"dev": true
},
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "1.1.2",
+ "type-check": "0.3.2"
+ }
+ },
"load-json-file": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
@@ -4344,124 +6782,88 @@
"strip-bom": "2.0.0"
}
},
- "loader-utils": {
- "version": "0.2.17",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
- "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+ "loader-fs-cache": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz",
+ "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=",
"dev": true,
"requires": {
- "big.js": "3.1.3",
- "emojis-list": "2.1.0",
- "json5": "0.5.1",
- "object-assign": "4.1.1"
- }
- },
- "localtunnel": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.8.2.tgz",
- "integrity": "sha1-kTBR6DKLUfda2KIq0fXFuMWZo1k=",
- "dev": true,
- "requires": {
- "debug": "2.2.0",
- "openurl": "1.1.0",
- "request": "2.78.0",
- "yargs": "3.29.0"
+ "find-cache-dir": "0.1.1",
+ "mkdirp": "0.5.1"
},
"dependencies": {
- "camelcase": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
- "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
- "dev": true
- },
- "debug": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
+ "find-cache-dir": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
+ "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=",
"dev": true,
"requires": {
- "ms": "0.7.1"
+ "commondir": "1.0.1",
+ "mkdirp": "0.5.1",
+ "pkg-dir": "1.0.0"
}
},
- "ms": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
- "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
- "dev": true
- },
- "yargs": {
- "version": "3.29.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.29.0.tgz",
- "integrity": "sha1-GquWYOrnnYuPZ1vK7qtu40ws9pw=",
+ "pkg-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
+ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
"dev": true,
"requires": {
- "camelcase": "1.2.1",
- "cliui": "3.2.0",
- "decamelize": "1.2.0",
- "os-locale": "1.4.0",
- "window-size": "0.1.4",
- "y18n": "3.2.1"
+ "find-up": "1.1.2"
}
}
}
},
+ "loader-runner": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz",
+ "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+ "dev": true,
+ "requires": {
+ "big.js": "3.2.0",
+ "emojis-list": "2.1.0",
+ "json5": "0.5.1"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "2.0.0",
+ "path-exists": "3.0.0"
+ },
+ "dependencies": {
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ }
+ }
+ },
"lodash": {
"version": "4.17.4",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
},
- "lodash._basecopy": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
- "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
- "dev": true
- },
- "lodash._basetostring": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
- "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=",
- "dev": true
- },
- "lodash._basevalues": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
- "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=",
- "dev": true
- },
- "lodash._getnative": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
- "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
- "dev": true
- },
- "lodash._isiterateecall": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
- "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
- "dev": true
- },
- "lodash._reescape": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
- "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=",
- "dev": true
- },
- "lodash._reevaluate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
- "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=",
- "dev": true
- },
"lodash._reinterpolate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
"integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
"dev": true
},
- "lodash._root": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
- "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
+ "lodash.assign": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
+ "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
"dev": true
},
"lodash.camelcase": {
@@ -4470,84 +6872,22 @@
"integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
"dev": true
},
- "lodash.debounce": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
- "dev": true
- },
- "lodash.difference": {
+ "lodash.clonedeep": {
"version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
- "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
"dev": true
},
- "lodash.escape": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
- "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
- "dev": true,
- "requires": {
- "lodash._root": "3.0.1"
- }
- },
- "lodash.flatten": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
- "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=",
+ "lodash.cond": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz",
+ "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=",
"dev": true
},
- "lodash.isarguments": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
- "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
- "dev": true
- },
- "lodash.isarray": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
- "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
- "dev": true
- },
- "lodash.isequal": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
- "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
- "dev": true
- },
- "lodash.isfinite": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz",
- "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=",
- "dev": true
- },
- "lodash.isplainobject": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=",
- "dev": true
- },
- "lodash.isstring": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
- "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=",
- "dev": true
- },
- "lodash.keys": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
- "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
- "dev": true,
- "requires": {
- "lodash._getnative": "3.9.1",
- "lodash.isarguments": "3.1.0",
- "lodash.isarray": "3.0.4"
- }
- },
- "lodash.mapvalues": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz",
- "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=",
+ "lodash.defaults": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
+ "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=",
"dev": true
},
"lodash.memoize": {
@@ -4556,37 +6896,29 @@
"integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
"dev": true
},
- "lodash.restparam": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
- "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
+ "lodash.mergewith": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz",
+ "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=",
"dev": true
},
"lodash.template": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
- "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz",
+ "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=",
"dev": true,
"requires": {
- "lodash._basecopy": "3.0.1",
- "lodash._basetostring": "3.0.1",
- "lodash._basevalues": "3.0.0",
- "lodash._isiterateecall": "3.0.9",
"lodash._reinterpolate": "3.0.0",
- "lodash.escape": "3.2.0",
- "lodash.keys": "3.1.2",
- "lodash.restparam": "3.6.1",
- "lodash.templatesettings": "3.1.1"
+ "lodash.templatesettings": "4.1.0"
}
},
"lodash.templatesettings": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
- "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz",
+ "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=",
"dev": true,
"requires": {
- "lodash._reinterpolate": "3.0.0",
- "lodash.escape": "3.2.0"
+ "lodash._reinterpolate": "3.0.0"
}
},
"lodash.uniq": {
@@ -4595,6 +6927,12 @@
"integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
"dev": true
},
+ "loglevel": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.0.tgz",
+ "integrity": "sha1-rgyqVhERSYxboTcj1vtjHSQAOTQ=",
+ "dev": true
+ },
"longest": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
@@ -4619,6 +6957,12 @@
"signal-exit": "3.0.2"
}
},
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
+ "dev": true
+ },
"lowercase-keys": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
@@ -4641,11 +6985,40 @@
"integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=",
"dev": true
},
- "map-cache": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
- "dev": true
+ "magic-string": {
+ "version": "0.22.4",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.4.tgz",
+ "integrity": "sha512-kxBL06p6iO2qPBHsqGK2b3cRwiRGpnmSuVWNhwHcMX7qJOUr1HvricYP1LZOCdkQBUp0jiWg2d6WJwR3vYgByw==",
+ "dev": true,
+ "requires": {
+ "vlq": "0.2.3"
+ }
+ },
+ "make-dir": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz",
+ "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==",
+ "dev": true,
+ "requires": {
+ "pify": "3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "makeerror": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz",
+ "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=",
+ "dev": true,
+ "requires": {
+ "tmpl": "1.0.4"
+ }
},
"map-obj": {
"version": "1.0.1",
@@ -4653,14 +7026,11 @@
"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
"dev": true
},
- "matcher": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/matcher/-/matcher-0.1.2.tgz",
- "integrity": "sha1-7yDL3mTCTFDMYa9bg+4LG4/wAQE=",
- "dev": true,
- "requires": {
- "escape-string-regexp": "1.0.5"
- }
+ "map-stream": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
+ "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
+ "dev": true
},
"math-expression-evaluator": {
"version": "1.2.17",
@@ -4668,37 +7038,59 @@
"integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=",
"dev": true
},
- "max-timeout": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/max-timeout/-/max-timeout-1.0.0.tgz",
- "integrity": "sha1-to9povmeC0dv1Msj4gWcp1BxXh8=",
- "dev": true
- },
- "md5-hex": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz",
- "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=",
+ "md5.js": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
+ "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
"dev": true,
"requires": {
- "md5-o-matic": "0.1.1"
+ "hash-base": "3.0.4",
+ "inherits": "2.0.3"
+ },
+ "dependencies": {
+ "hash-base": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
+ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ }
}
},
- "md5-o-matic": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz",
- "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=",
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
"dev": true
},
+ "mem": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "1.1.0"
+ }
+ },
"memory-fs": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz",
- "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=",
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
"dev": true,
"requires": {
- "errno": "0.1.4",
+ "errno": "0.1.6",
"readable-stream": "2.3.3"
}
},
+ "memorystream": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
+ "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=",
+ "dev": true
+ },
"meow": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
@@ -4725,6 +7117,24 @@
}
}
},
+ "merge": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz",
+ "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=",
+ "dev": true
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+ "dev": true
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "dev": true
+ },
"micromatch": {
"version": "2.3.11",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
@@ -4743,30 +7153,58 @@
"normalize-path": "2.1.1",
"object.omit": "2.0.1",
"parse-glob": "3.0.4",
- "regex-cache": "0.4.3"
+ "regex-cache": "0.4.4"
+ }
+ },
+ "miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "brorand": "1.1.0"
}
},
"mime": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.4.tgz",
- "integrity": "sha1-EbX9rynCUJJVF2uArVIClPXekrc=",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"dev": true
},
"mime-db": {
- "version": "1.27.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz",
- "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=",
+ "version": "1.30.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
+ "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=",
"dev": true
},
"mime-types": {
- "version": "2.1.15",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz",
- "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=",
+ "version": "2.1.17",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
+ "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
"dev": true,
"requires": {
- "mime-db": "1.27.0"
+ "mime-db": "1.30.0"
}
},
+ "mimic-fn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz",
+ "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=",
+ "dev": true
+ },
+ "minimalistic-assert": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
+ "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=",
+ "dev": true
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+ "dev": true
+ },
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@@ -4792,104 +7230,144 @@
}
},
"ms": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz",
- "integrity": "sha1-cIFVpeROM/X9D8U+gdDUCpG+H/8=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
},
- "multimatch": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz",
- "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=",
+ "multicast-dns": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.1.tgz",
+ "integrity": "sha512-uV3/ckdsffHx9IrGQrx613mturMdMqQ06WTq+C09NsStJ9iNG6RcUWgPKs1Rfjy+idZT6tfQoXEusGNnEZhT3w==",
"dev": true,
"requires": {
- "array-differ": "1.0.0",
- "array-union": "1.0.2",
- "arrify": "1.0.1",
- "minimatch": "3.0.4"
+ "dns-packet": "1.2.2",
+ "thunky": "0.1.0"
}
},
- "multipipe": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
- "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
- "dev": true,
- "requires": {
- "duplexer2": "0.0.2"
- },
- "dependencies": {
- "duplexer2": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
- "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
- "dev": true,
- "requires": {
- "readable-stream": "1.1.14"
- }
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
- "dev": true
- },
- "readable-stream": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
- "dev": true,
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "0.0.1",
- "string_decoder": "0.10.31"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- }
- }
- },
- "natives": {
+ "multicast-dns-service-types": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz",
- "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=",
+ "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
+ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
"dev": true
},
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "dev": true
+ },
+ "nan": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz",
+ "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=",
+ "dev": true
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "ncname": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz",
+ "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=",
+ "dev": true,
+ "requires": {
+ "xml-char-classes": "1.0.0"
+ }
+ },
"negotiator": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
"dev": true
},
+ "nested-error-stacks": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz",
+ "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "dev": true,
+ "requires": {
+ "lower-case": "1.1.4"
+ }
+ },
"node-fetch": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.1.tgz",
- "integrity": "sha512-j8XsFGCLw79vWXkZtMSmmLaOk9z5SQ9bV/tkbZVCqvgwzrjAGq66igobLofHtF63NvMTp2WjytpsNTGKa+XRIQ==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
+ "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
"requires": {
"encoding": "0.1.12",
"is-stream": "1.1.0"
}
},
+ "node-forge": {
+ "version": "0.6.33",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.33.tgz",
+ "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw=",
+ "dev": true
+ },
+ "node-gyp": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz",
+ "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=",
+ "dev": true,
+ "requires": {
+ "fstream": "1.0.11",
+ "glob": "7.1.2",
+ "graceful-fs": "4.1.11",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "nopt": "3.0.6",
+ "npmlog": "4.1.2",
+ "osenv": "0.1.4",
+ "request": "2.79.0",
+ "rimraf": "2.6.2",
+ "semver": "5.3.0",
+ "tar": "2.2.1",
+ "which": "1.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+ "dev": true
+ }
+ }
+ },
+ "node-int64": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=",
+ "dev": true
+ },
"node-libs-browser": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz",
- "integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz",
+ "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==",
"dev": true,
"requires": {
"assert": "1.4.1",
- "browserify-zlib": "0.1.4",
+ "browserify-zlib": "0.2.0",
"buffer": "4.9.1",
"console-browserify": "1.1.0",
"constants-browserify": "1.0.0",
- "crypto-browserify": "3.3.0",
+ "crypto-browserify": "3.12.0",
"domain-browser": "1.1.7",
"events": "1.1.1",
- "https-browserify": "0.0.1",
- "os-browserify": "0.2.1",
+ "https-browserify": "1.0.0",
+ "os-browserify": "0.3.0",
"path-browserify": "0.0.0",
"process": "0.11.10",
"punycode": "1.4.1",
@@ -4897,20 +7375,67 @@
"readable-stream": "2.3.3",
"stream-browserify": "2.0.1",
"stream-http": "2.7.2",
- "string_decoder": "0.10.31",
- "timers-browserify": "2.0.2",
+ "string_decoder": "1.0.3",
+ "timers-browserify": "2.0.4",
"tty-browserify": "0.0.0",
"url": "0.11.0",
"util": "0.10.3",
"vm-browserify": "0.0.4"
- },
- "dependencies": {
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- }
+ }
+ },
+ "node-notifier": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz",
+ "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=",
+ "dev": true,
+ "requires": {
+ "growly": "1.3.0",
+ "semver": "5.4.1",
+ "shellwords": "0.1.1",
+ "which": "1.3.0"
+ }
+ },
+ "node-sass": {
+ "version": "4.7.2",
+ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.7.2.tgz",
+ "integrity": "sha512-CaV+wLqZ7//Jdom5aUFCpGNoECd7BbNhjuwdsX/LkXBrHl8eb1Wjw4HvWqcFvhr5KuNgAk8i/myf/MQ1YYeroA==",
+ "dev": true,
+ "requires": {
+ "async-foreach": "0.1.3",
+ "chalk": "1.1.3",
+ "cross-spawn": "3.0.1",
+ "gaze": "1.1.2",
+ "get-stdin": "4.0.1",
+ "glob": "7.1.2",
+ "in-publish": "2.0.0",
+ "lodash.assign": "4.2.0",
+ "lodash.clonedeep": "4.5.0",
+ "lodash.mergewith": "4.6.0",
+ "meow": "3.7.0",
+ "mkdirp": "0.5.1",
+ "nan": "2.8.0",
+ "node-gyp": "3.6.2",
+ "npmlog": "4.1.2",
+ "request": "2.79.0",
+ "sass-graph": "2.2.4",
+ "stdout-stream": "1.4.0",
+ "true-case-path": "1.0.2"
+ }
+ },
+ "node-sass-chokidar": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/node-sass-chokidar/-/node-sass-chokidar-0.0.3.tgz",
+ "integrity": "sha1-ukYO/kHI8UzoAKqjYGp6y7HmMNE=",
+ "dev": true,
+ "requires": {
+ "async-foreach": "0.1.3",
+ "chokidar": "1.7.0",
+ "get-stdin": "4.0.1",
+ "glob": "7.1.2",
+ "meow": "3.7.0",
+ "node-sass": "4.7.2",
+ "sass-graph": "2.2.4",
+ "stdout-stream": "1.4.0"
}
},
"node-status-codes": {
@@ -4919,19 +7444,13 @@
"integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=",
"dev": true
},
- "node-uuid": {
- "version": "1.4.8",
- "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz",
- "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=",
- "dev": true
- },
"nopt": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"dev": true,
"requires": {
- "abbrev": "1.1.0"
+ "abbrev": "1.1.1"
}
},
"normalize-package-data": {
@@ -4942,7 +7461,7 @@
"requires": {
"hosted-git-info": "2.5.0",
"is-builtin-module": "1.0.0",
- "semver": "5.3.0",
+ "semver": "5.4.1",
"validate-npm-package-license": "3.0.1"
}
},
@@ -4952,7 +7471,7 @@
"integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
"dev": true,
"requires": {
- "remove-trailing-separator": "1.0.2"
+ "remove-trailing-separator": "1.1.0"
}
},
"normalize-range": {
@@ -4973,6 +7492,149 @@
"sort-keys": "1.1.2"
}
},
+ "npm-run-all": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.2.tgz",
+ "integrity": "sha512-Z2aRlajMK4SQ8u19ZA75NZZu7wupfCNQWdYosIi8S6FgBdGf/8Y6Hgyjdc8zU2cYmIRVCx1nM80tJPkdEd+UYg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "chalk": "2.3.0",
+ "cross-spawn": "5.1.0",
+ "memorystream": "0.3.1",
+ "minimatch": "3.0.4",
+ "ps-tree": "1.1.0",
+ "read-pkg": "3.0.0",
+ "shell-quote": "1.6.1",
+ "string.prototype.padend": "3.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.1"
+ }
+ },
+ "chalk": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.1",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
+ }
+ },
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "4.0.0",
+ "pify": "3.0.0",
+ "strip-bom": "3.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "1.3.1",
+ "json-parse-better-errors": "1.0.1"
+ }
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "requires": {
+ "pify": "3.0.0"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "4.0.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "3.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
+ }
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "requires": {
+ "path-key": "2.0.1"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "dev": true,
+ "requires": {
+ "are-we-there-yet": "1.1.4",
+ "console-control-strings": "1.1.0",
+ "gauge": "2.7.4",
+ "set-blocking": "2.0.0"
+ }
+ },
+ "nth-check": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
+ "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
+ "dev": true,
+ "requires": {
+ "boolbase": "1.0.0"
+ }
+ },
"num2fraction": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
@@ -4985,6 +7647,12 @@
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
"dev": true
},
+ "nwmatcher": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz",
+ "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==",
+ "dev": true
+ },
"oauth-sign": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
@@ -4996,47 +7664,18 @@
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
- "object-component": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
- "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=",
+ "object-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.2.0.tgz",
+ "integrity": "sha512-smRWXzkvxw72VquyZ0wggySl7PFUtoDhvhpdwgESXxUrH7vVhhp9asfup1+rVLrhsl7L45Ee1Q/l5R2Ul4MwUg==",
"dev": true
},
- "object-path": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz",
- "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=",
+ "object-keys": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
+ "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=",
"dev": true
},
- "object.defaults": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
- "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
- "dev": true,
- "requires": {
- "array-each": "1.0.1",
- "array-slice": "1.0.0",
- "for-own": "1.0.0",
- "isobject": "3.0.1"
- },
- "dependencies": {
- "for-own": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
- "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
- "dev": true,
- "requires": {
- "for-in": "1.0.2"
- }
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
- }
- },
"object.omit": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
@@ -5047,24 +7686,11 @@
"is-extendable": "0.1.1"
}
},
- "object.pick": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.2.0.tgz",
- "integrity": "sha1-tTkr7peC2m2ft9avr1OXefEjTCs=",
- "dev": true,
- "requires": {
- "isobject": "2.1.0"
- }
- },
- "observable-to-promise": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/observable-to-promise/-/observable-to-promise-0.4.0.tgz",
- "integrity": "sha1-KK/nFkUwjy1B1x9HrT/s4aN35Ss=",
- "dev": true,
- "requires": {
- "is-observable": "0.2.0",
- "symbol-observable": "0.2.4"
- }
+ "obuf": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz",
+ "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=",
+ "dev": true
},
"on-finished": {
"version": "2.3.0",
@@ -5075,6 +7701,12 @@
"ee-first": "1.1.1"
}
},
+ "on-headers": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
+ "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=",
+ "dev": true
+ },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -5085,25 +7717,21 @@
}
},
"onetime": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
- "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
- "dev": true
- },
- "openurl": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.0.tgz",
- "integrity": "sha1-4vIYnZmcBIIyAfCD8PGnzYkDGHo=",
- "dev": true
- },
- "opn": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz",
- "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
"dev": true,
"requires": {
- "object-assign": "4.1.1",
- "pinkie-promise": "2.0.1"
+ "mimic-fn": "1.1.0"
+ }
+ },
+ "opn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz",
+ "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==",
+ "dev": true,
+ "requires": {
+ "is-wsl": "1.1.0"
}
},
"optimist": {
@@ -5114,44 +7742,55 @@
"requires": {
"minimist": "0.0.8",
"wordwrap": "0.0.3"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
+ "dev": true
+ }
}
},
- "option-chain": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/option-chain/-/option-chain-0.1.1.tgz",
- "integrity": "sha1-6bgR4AbxwPVIAvKClb/Ilw+Nz70=",
+ "optionator": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
"dev": true,
"requires": {
- "object-assign": "4.1.1"
+ "deep-is": "0.1.3",
+ "fast-levenshtein": "2.0.6",
+ "levn": "0.3.0",
+ "prelude-ls": "1.1.2",
+ "type-check": "0.3.2",
+ "wordwrap": "1.0.0"
}
},
- "options": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz",
- "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=",
- "dev": true
- },
- "orchestrator": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz",
- "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=",
+ "original": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz",
+ "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=",
"dev": true,
"requires": {
- "end-of-stream": "0.1.5",
- "sequencify": "0.0.7",
- "stream-consume": "0.1.0"
+ "url-parse": "1.0.5"
+ },
+ "dependencies": {
+ "url-parse": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz",
+ "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=",
+ "dev": true,
+ "requires": {
+ "querystringify": "0.0.4",
+ "requires-port": "1.0.0"
+ }
+ }
}
},
- "ordered-read-streams": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz",
- "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=",
- "dev": true
- },
"os-browserify": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz",
- "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
"dev": true
},
"os-homedir": {
@@ -5185,15 +7824,44 @@
"os-tmpdir": "1.0.2"
}
},
- "package-hash": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-1.2.0.tgz",
- "integrity": "sha1-AD5WzVe3NqbtYRTMK4FUJnJ3DkQ=",
+ "output-file-sync": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz",
+ "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=",
"dev": true,
"requires": {
- "md5-hex": "1.3.0"
+ "graceful-fs": "4.1.11",
+ "mkdirp": "0.5.1",
+ "object-assign": "4.1.1"
}
},
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz",
+ "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=",
+ "dev": true
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "1.1.0"
+ }
+ },
+ "p-map": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
+ "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
+ "dev": true
+ },
"package-json": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/package-json/-/package-json-2.4.0.tgz",
@@ -5203,24 +7871,35 @@
"got": "5.7.1",
"registry-auth-token": "3.3.1",
"registry-url": "3.1.0",
- "semver": "5.3.0"
+ "semver": "5.4.1"
}
},
"pako": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
- "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
+ "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==",
"dev": true
},
- "parse-filepath": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.1.tgz",
- "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=",
+ "param-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
+ "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
"dev": true,
"requires": {
- "is-absolute": "0.2.6",
- "map-cache": "0.2.2",
- "path-root": "0.1.1"
+ "no-case": "2.3.2"
+ }
+ },
+ "parse-asn1": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz",
+ "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=",
+ "dev": true,
+ "requires": {
+ "asn1.js": "4.9.2",
+ "browserify-aes": "1.1.1",
+ "create-hash": "1.1.3",
+ "evp_bytestokey": "1.0.3",
+ "pbkdf2": "3.0.14"
}
},
"parse-glob": {
@@ -5244,49 +7923,22 @@
"error-ex": "1.3.1"
}
},
- "parse-ms": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz",
- "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=",
- "dev": true
- },
"parse-passwd": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
"integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
"dev": true
},
- "parsejson": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz",
- "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=",
- "dev": true,
- "requires": {
- "better-assert": "1.0.2"
- }
- },
- "parseqs": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
- "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
- "dev": true,
- "requires": {
- "better-assert": "1.0.2"
- }
- },
- "parseuri": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
- "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
- "dev": true,
- "requires": {
- "better-assert": "1.0.2"
- }
+ "parse5": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
+ "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=",
+ "dev": true
},
"parseurl": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz",
- "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
+ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
"dev": true
},
"path-browserify": {
@@ -5310,27 +7962,41 @@
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"dev": true
},
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
"path-parse": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
"integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
"dev": true
},
- "path-root": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
- "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
+ "path-to-regexp": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
+ "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
"dev": true,
"requires": {
- "path-root-regex": "0.1.2"
+ "isarray": "0.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ }
}
},
- "path-root-regex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
- "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=",
- "dev": true
- },
"path-type": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
@@ -5342,10 +8008,32 @@
"pinkie-promise": "2.0.1"
}
},
- "pbkdf2-compat": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz",
- "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=",
+ "pause-stream": {
+ "version": "0.0.11",
+ "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
+ "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
+ "dev": true,
+ "requires": {
+ "through": "2.3.8"
+ }
+ },
+ "pbkdf2": {
+ "version": "3.0.14",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz",
+ "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==",
+ "dev": true,
+ "requires": {
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "ripemd160": "2.0.1",
+ "safe-buffer": "5.1.1",
+ "sha.js": "2.4.9"
+ }
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
"dev": true
},
"pify": {
@@ -5369,56 +8057,108 @@
"pinkie": "2.0.4"
}
},
- "pkg-conf": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-1.1.3.tgz",
- "integrity": "sha1-N45W1v0T6Iv7b0ol33qD+qvduls=",
- "dev": true,
- "requires": {
- "find-up": "1.1.2",
- "load-json-file": "1.1.0",
- "object-assign": "4.1.1",
- "symbol": "0.2.3"
- }
- },
"pkg-dir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
- "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
+ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
"dev": true,
"requires": {
- "find-up": "1.1.2"
+ "find-up": "2.1.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "2.0.0"
+ }
+ }
}
},
- "plur": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz",
- "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=",
- "dev": true,
- "requires": {
- "irregular-plurals": "1.3.0"
- }
+ "pluralize": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
+ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
+ "dev": true
},
- "portscanner": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz",
- "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=",
+ "portfinder": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz",
+ "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=",
"dev": true,
"requires": {
"async": "1.5.2",
- "is-number-like": "1.0.8"
+ "debug": "2.6.9",
+ "mkdirp": "0.5.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ }
}
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "6.0.14",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz",
+ "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==",
"dev": true,
"requires": {
- "chalk": "1.1.3",
- "js-base64": "2.1.9",
- "source-map": "0.5.6",
- "supports-color": "3.2.3"
+ "chalk": "2.3.0",
+ "source-map": "0.6.1",
+ "supports-color": "4.5.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.1"
+ }
+ },
+ "chalk": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
+ }
+ },
+ "postcss-calc": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz",
+ "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.18",
+ "postcss-message-helpers": "2.0.0",
+ "reduce-css-calc": "1.3.0"
},
"dependencies": {
"has-flag": {
@@ -5427,6 +8167,18 @@
"integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
"dev": true
},
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -5438,17 +8190,6 @@
}
}
},
- "postcss-calc": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz",
- "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
- "dev": true,
- "requires": {
- "postcss": "5.2.17",
- "postcss-message-helpers": "2.0.0",
- "reduce-css-calc": "1.3.0"
- }
- },
"postcss-colormin": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz",
@@ -5456,8 +8197,37 @@
"dev": true,
"requires": {
"colormin": "1.1.2",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-convert-values": {
@@ -5466,8 +8236,37 @@
"integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-discard-comments": {
@@ -5476,7 +8275,36 @@
"integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-discard-duplicates": {
@@ -5485,7 +8313,36 @@
"integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-discard-empty": {
@@ -5494,7 +8351,36 @@
"integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-discard-overridden": {
@@ -5503,7 +8389,36 @@
"integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-discard-unused": {
@@ -5512,8 +8427,37 @@
"integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"uniqs": "2.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-filter-plugins": {
@@ -5522,8 +8466,90 @@
"integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"uniqid": "4.1.1"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-flexbugs-fixes": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.2.0.tgz",
+ "integrity": "sha512-0AuD9HG1Ey3/3nqPWu9yqf7rL0KCPu5VgjDsjf5mzEcuo9H/z8nco/fljKgjsOUrZypa95MI0kS4xBZeBzz2lw==",
+ "dev": true,
+ "requires": {
+ "postcss": "6.0.14"
+ }
+ },
+ "postcss-load-config": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz",
+ "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "2.2.2",
+ "object-assign": "4.1.1",
+ "postcss-load-options": "1.2.0",
+ "postcss-load-plugins": "2.3.0"
+ }
+ },
+ "postcss-load-options": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz",
+ "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "2.2.2",
+ "object-assign": "4.1.1"
+ }
+ },
+ "postcss-load-plugins": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz",
+ "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "2.2.2",
+ "object-assign": "4.1.1"
+ }
+ },
+ "postcss-loader": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.0.8.tgz",
+ "integrity": "sha512-KtXBiQ/r/WYW8LxTSJK7h8wLqvCMSub/BqmRnud/Mu8RzwflW9cmXxwsMwbn15TNv287Hcufdb3ZSs7xHKnG8Q==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "1.1.0",
+ "postcss": "6.0.14",
+ "postcss-load-config": "1.2.0",
+ "schema-utils": "0.3.0"
}
},
"postcss-merge-idents": {
@@ -5533,8 +8559,37 @@
"dev": true,
"requires": {
"has": "1.0.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-merge-longhand": {
@@ -5543,7 +8598,36 @@
"integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-merge-rules": {
@@ -5554,9 +8638,48 @@
"requires": {
"browserslist": "1.7.7",
"caniuse-api": "1.6.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-selector-parser": "2.2.3",
"vendors": "1.0.1"
+ },
+ "dependencies": {
+ "browserslist": {
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "dev": true,
+ "requires": {
+ "caniuse-db": "1.0.30000784",
+ "electron-to-chromium": "1.3.30"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-message-helpers": {
@@ -5572,8 +8695,37 @@
"dev": true,
"requires": {
"object-assign": "4.1.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-minify-gradients": {
@@ -5582,8 +8734,37 @@
"integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-minify-params": {
@@ -5593,9 +8774,38 @@
"dev": true,
"requires": {
"alphanum-sort": "1.0.2",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0",
"uniqs": "2.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-minify-selectors": {
@@ -5606,8 +8816,37 @@
"requires": {
"alphanum-sort": "1.0.2",
"has": "1.0.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-selector-parser": "2.2.3"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-modules-extract-imports": {
@@ -5616,49 +8855,7 @@
"integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=",
"dev": true,
"requires": {
- "postcss": "6.0.6"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz",
- "integrity": "sha1-CcIC1ckX7CMYjKpcnLkXnNlUd1A=",
- "dev": true,
- "requires": {
- "color-convert": "1.9.0"
- }
- },
- "chalk": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
- "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==",
- "dev": true,
- "requires": {
- "ansi-styles": "3.1.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.2.0"
- }
- },
- "postcss": {
- "version": "6.0.6",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz",
- "integrity": "sha1-u6TVjohPx4yEDRU54Q7dqruPc70=",
- "dev": true,
- "requires": {
- "chalk": "2.0.1",
- "source-map": "0.5.6",
- "supports-color": "4.2.0"
- }
- },
- "supports-color": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz",
- "integrity": "sha512-Ts0Mu/A1S1aZxEJNG88I4Oc9rcZSBFNac5e27yh4j2mqbhZSSzR1Ah79EYwSn9Zuh7lrlGD2cVGzw1RKGzyLSg==",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
- }
+ "postcss": "6.0.14"
}
},
"postcss-modules-local-by-default": {
@@ -5668,49 +8865,7 @@
"dev": true,
"requires": {
"css-selector-tokenizer": "0.7.0",
- "postcss": "6.0.6"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz",
- "integrity": "sha1-CcIC1ckX7CMYjKpcnLkXnNlUd1A=",
- "dev": true,
- "requires": {
- "color-convert": "1.9.0"
- }
- },
- "chalk": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
- "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==",
- "dev": true,
- "requires": {
- "ansi-styles": "3.1.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.2.0"
- }
- },
- "postcss": {
- "version": "6.0.6",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz",
- "integrity": "sha1-u6TVjohPx4yEDRU54Q7dqruPc70=",
- "dev": true,
- "requires": {
- "chalk": "2.0.1",
- "source-map": "0.5.6",
- "supports-color": "4.2.0"
- }
- },
- "supports-color": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz",
- "integrity": "sha512-Ts0Mu/A1S1aZxEJNG88I4Oc9rcZSBFNac5e27yh4j2mqbhZSSzR1Ah79EYwSn9Zuh7lrlGD2cVGzw1RKGzyLSg==",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
- }
+ "postcss": "6.0.14"
}
},
"postcss-modules-scope": {
@@ -5720,49 +8875,7 @@
"dev": true,
"requires": {
"css-selector-tokenizer": "0.7.0",
- "postcss": "6.0.6"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz",
- "integrity": "sha1-CcIC1ckX7CMYjKpcnLkXnNlUd1A=",
- "dev": true,
- "requires": {
- "color-convert": "1.9.0"
- }
- },
- "chalk": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
- "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==",
- "dev": true,
- "requires": {
- "ansi-styles": "3.1.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.2.0"
- }
- },
- "postcss": {
- "version": "6.0.6",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz",
- "integrity": "sha1-u6TVjohPx4yEDRU54Q7dqruPc70=",
- "dev": true,
- "requires": {
- "chalk": "2.0.1",
- "source-map": "0.5.6",
- "supports-color": "4.2.0"
- }
- },
- "supports-color": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz",
- "integrity": "sha512-Ts0Mu/A1S1aZxEJNG88I4Oc9rcZSBFNac5e27yh4j2mqbhZSSzR1Ah79EYwSn9Zuh7lrlGD2cVGzw1RKGzyLSg==",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
- }
+ "postcss": "6.0.14"
}
},
"postcss-modules-values": {
@@ -5772,49 +8885,7 @@
"dev": true,
"requires": {
"icss-replace-symbols": "1.1.0",
- "postcss": "6.0.6"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz",
- "integrity": "sha1-CcIC1ckX7CMYjKpcnLkXnNlUd1A=",
- "dev": true,
- "requires": {
- "color-convert": "1.9.0"
- }
- },
- "chalk": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
- "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==",
- "dev": true,
- "requires": {
- "ansi-styles": "3.1.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.2.0"
- }
- },
- "postcss": {
- "version": "6.0.6",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz",
- "integrity": "sha1-u6TVjohPx4yEDRU54Q7dqruPc70=",
- "dev": true,
- "requires": {
- "chalk": "2.0.1",
- "source-map": "0.5.6",
- "supports-color": "4.2.0"
- }
- },
- "supports-color": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz",
- "integrity": "sha512-Ts0Mu/A1S1aZxEJNG88I4Oc9rcZSBFNac5e27yh4j2mqbhZSSzR1Ah79EYwSn9Zuh7lrlGD2cVGzw1RKGzyLSg==",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
- }
+ "postcss": "6.0.14"
}
},
"postcss-normalize-charset": {
@@ -5823,7 +8894,36 @@
"integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-normalize-url": {
@@ -5834,8 +8934,37 @@
"requires": {
"is-absolute-url": "2.1.0",
"normalize-url": "1.9.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-ordered-values": {
@@ -5844,8 +8973,37 @@
"integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-reduce-idents": {
@@ -5854,8 +9012,37 @@
"integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-reduce-initial": {
@@ -5864,7 +9051,36 @@
"integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-reduce-transforms": {
@@ -5874,8 +9090,37 @@
"dev": true,
"requires": {
"has": "1.0.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-selector-parser": {
@@ -5896,9 +9141,38 @@
"dev": true,
"requires": {
"is-svg": "2.1.0",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0",
"svgo": "0.7.2"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-unique-selectors": {
@@ -5908,8 +9182,37 @@
"dev": true,
"requires": {
"alphanum-sort": "1.0.2",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"uniqs": "2.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-value-parser": {
@@ -5925,143 +9228,87 @@
"dev": true,
"requires": {
"has": "1.0.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"uniqs": "2.0.0"
- }
- },
- "power-assert-context-formatter": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/power-assert-context-formatter/-/power-assert-context-formatter-1.1.1.tgz",
- "integrity": "sha1-7bo1LT7YpgMRTWZyZazOYNaJzN8=",
- "dev": true,
- "requires": {
- "core-js": "2.4.1",
- "power-assert-context-traversal": "1.1.1"
},
"dependencies": {
- "core-js": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz",
- "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=",
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
"dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.0",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
}
}
},
- "power-assert-context-traversal": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/power-assert-context-traversal/-/power-assert-context-traversal-1.1.1.tgz",
- "integrity": "sha1-iMq8oNE7Y1nwfT0+ivppkmRXftk=",
- "dev": true,
- "requires": {
- "core-js": "2.4.1",
- "estraverse": "4.2.0"
- },
- "dependencies": {
- "core-js": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz",
- "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=",
- "dev": true
- }
- }
- },
- "power-assert-renderer-assertion": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.1.1.tgz",
- "integrity": "sha1-y/wOd+AIao+Wrz8djme57n4ozpg=",
- "dev": true,
- "requires": {
- "power-assert-renderer-base": "1.1.1",
- "power-assert-util-string-width": "1.1.1"
- }
- },
- "power-assert-renderer-base": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz",
- "integrity": "sha1-lqZQxv0F7hvB9mtUrWFELIs/Y+s=",
- "dev": true
- },
- "power-assert-renderer-diagram": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.2.tgz",
- "integrity": "sha1-ZV+PcRk1qbbVQbhjJ2VHF8Y3qYY=",
- "dev": true,
- "requires": {
- "core-js": "2.4.1",
- "power-assert-renderer-base": "1.1.1",
- "power-assert-util-string-width": "1.1.1",
- "stringifier": "1.3.0"
- },
- "dependencies": {
- "core-js": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz",
- "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=",
- "dev": true
- }
- }
- },
- "power-assert-renderer-succinct": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/power-assert-renderer-succinct/-/power-assert-renderer-succinct-1.1.1.tgz",
- "integrity": "sha1-wqRosjgiq9b4Diq6UyI0ewnfR24=",
- "dev": true,
- "requires": {
- "core-js": "2.4.1",
- "power-assert-renderer-diagram": "1.1.2"
- },
- "dependencies": {
- "core-js": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz",
- "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=",
- "dev": true
- }
- }
- },
- "power-assert-util-string-width": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/power-assert-util-string-width/-/power-assert-util-string-width-1.1.1.tgz",
- "integrity": "sha1-vmWet5N/3S5smncmjar2S9W3xZI=",
- "dev": true,
- "requires": {
- "eastasianwidth": "0.1.1"
- }
- },
"preact": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/preact/-/preact-7.1.0.tgz",
- "integrity": "sha1-EZz2WWOr/ygDiyMwYBrd6WmZCo0=",
+ "version": "8.2.7",
+ "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.7.tgz",
+ "integrity": "sha512-m34Ke8U32HyKRVzUOCAcaiIBLR2ye6syiuRclU5DxyixDPDFqdLbIElhERBrF6gDbPKQR+Vpv5bZ9CCbvN6pdQ==",
"dev": true
},
"preact-compat": {
- "version": "3.9.4",
- "resolved": "https://registry.npmjs.org/preact-compat/-/preact-compat-3.9.4.tgz",
- "integrity": "sha1-VaXYHeY37cGMRJvuRYBLdL7xWzQ=",
+ "version": "3.17.0",
+ "resolved": "https://registry.npmjs.org/preact-compat/-/preact-compat-3.17.0.tgz",
+ "integrity": "sha1-Uoz9/DARkMGg9HVnM2vh9L4CZrM=",
"dev": true,
"requires": {
+ "immutability-helper": "2.6.2",
"preact-render-to-string": "3.6.3",
"preact-transition-group": "1.1.1",
- "proptypes": "0.14.4"
+ "prop-types": "15.6.0",
+ "standalone-react-addons-pure-render-mixin": "0.1.1"
+ }
+ },
+ "preact-render-to-string": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-3.6.3.tgz",
+ "integrity": "sha1-SB0NW9rJGS0zR1V0N9XNAKoxIEM=",
+ "dev": true,
+ "requires": {
+ "pretty-format": "3.8.0"
},
"dependencies": {
- "preact-render-to-string": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-3.6.3.tgz",
- "integrity": "sha1-SB0NW9rJGS0zR1V0N9XNAKoxIEM=",
- "dev": true,
- "requires": {
- "pretty-format": "3.8.0"
- }
- },
- "preact-transition-group": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/preact-transition-group/-/preact-transition-group-1.1.1.tgz",
- "integrity": "sha1-8KSTJ+pRXs406ivoZMSn0p5dbhA=",
+ "pretty-format": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz",
+ "integrity": "sha1-v77VbV6ad2ZF9LH/eqGjrE+jw4U=",
"dev": true
}
}
},
+ "preact-transition-group": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/preact-transition-group/-/preact-transition-group-1.1.1.tgz",
+ "integrity": "sha1-8KSTJ+pRXs406ivoZMSn0p5dbhA=",
+ "dev": true
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "dev": true
+ },
"prepend-http": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
@@ -6074,41 +9321,47 @@
"integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
"dev": true
},
- "pretty-format": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz",
- "integrity": "sha1-v77VbV6ad2ZF9LH/eqGjrE+jw4U=",
+ "pretty-bytes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz",
+ "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=",
"dev": true
},
- "pretty-hrtime": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
- "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=",
- "dev": true
- },
- "pretty-ms": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz",
- "integrity": "sha1-QlfCVt8/sLRR1q/6qwIYhBJpgdw=",
+ "pretty-error": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz",
+ "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=",
"dev": true,
"requires": {
- "is-finite": "1.0.2",
- "parse-ms": "1.0.1",
- "plur": "1.0.0"
+ "renderkid": "2.0.1",
+ "utila": "0.4.0"
+ }
+ },
+ "pretty-format": {
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz",
+ "integrity": "sha1-Ag41ClYKH+GpjcO+tsz/s4beixQ=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1",
+ "ansi-styles": "3.2.0"
},
"dependencies": {
- "plur": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz",
- "integrity": "sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY=",
- "dev": true
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.1"
+ }
}
}
},
"private": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz",
- "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=",
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
"dev": true
},
"process": {
@@ -6123,6 +9376,12 @@
"integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
"dev": true
},
+ "progress": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
+ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
+ "dev": true
+ },
"promise": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
@@ -6132,32 +9391,59 @@
}
},
"prop-types": {
- "version": "15.5.10",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz",
- "integrity": "sha1-J5ffwxJhguOpXj37suiT3ddFYVQ=",
+ "version": "15.6.0",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz",
+ "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=",
"requires": {
- "fbjs": "0.8.12",
- "loose-envify": "1.3.1"
+ "fbjs": "0.8.16",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1"
}
},
- "proptypes": {
- "version": "0.14.4",
- "resolved": "https://registry.npmjs.org/proptypes/-/proptypes-0.14.4.tgz",
- "integrity": "sha1-Hq12ANREcqYUqhzwxMzO59hnmX0=",
- "dev": true
+ "proxy-addr": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz",
+ "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=",
+ "dev": true,
+ "requires": {
+ "forwarded": "0.1.2",
+ "ipaddr.js": "1.5.2"
+ }
},
"prr": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
- "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
"dev": true
},
+ "ps-tree": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz",
+ "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=",
+ "dev": true,
+ "requires": {
+ "event-stream": "3.3.4"
+ }
+ },
"pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
"dev": true
},
+ "public-encrypt": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
+ "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "browserify-rsa": "4.0.1",
+ "create-hash": "1.1.3",
+ "parse-asn1": "5.1.0",
+ "randombytes": "2.0.5"
+ }
+ },
"punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
@@ -6165,15 +9451,15 @@
"dev": true
},
"q": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz",
- "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
"dev": true
},
"qs": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.1.tgz",
- "integrity": "sha1-zgPF/wk1vB2daanxTL0Y5WjWdiU=",
+ "version": "6.3.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
+ "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=",
"dev": true
},
"query-string": {
@@ -6198,6 +9484,21 @@
"integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
"dev": true
},
+ "querystringify": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz",
+ "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=",
+ "dev": true
+ },
+ "raf": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz",
+ "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==",
+ "dev": true,
+ "requires": {
+ "performance-now": "2.1.0"
+ }
+ },
"randomatic": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
@@ -6223,7 +9524,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -6234,25 +9535,56 @@
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
"dev": true,
"requires": {
- "is-buffer": "1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
},
+ "randombytes": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz",
+ "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "randomfill": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz",
+ "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==",
+ "dev": true,
+ "requires": {
+ "randombytes": "2.0.5",
+ "safe-buffer": "5.1.1"
+ }
+ },
"range-parser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
"dev": true
},
+ "raw-body": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
+ "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
+ "dev": true,
+ "requires": {
+ "bytes": "3.0.0",
+ "http-errors": "1.6.2",
+ "iconv-lite": "0.4.19",
+ "unpipe": "1.0.0"
+ }
+ },
"rc": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz",
- "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz",
+ "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=",
"dev": true,
"requires": {
"deep-extend": "0.4.2",
- "ini": "1.3.4",
+ "ini": "1.3.5",
"minimist": "1.2.0",
"strip-json-comments": "2.0.1"
},
@@ -6266,35 +9598,1217 @@
}
},
"react": {
- "version": "15.4.1",
- "resolved": "https://registry.npmjs.org/react/-/react-15.4.1.tgz",
- "integrity": "sha1-SY6RhgJnejmDzQ/SBt/nADiaDdY=",
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-16.2.0.tgz",
+ "integrity": "sha512-ZmIomM7EE1DvPEnSFAHZn9Vs9zJl5A9H7el0EGTE6ZbW9FKe/14IYAlPbC8iH25YarEQxZL+E8VW7Mi7kfQrDQ==",
"dev": true,
"requires": {
- "fbjs": "0.8.12",
+ "fbjs": "0.8.16",
"loose-envify": "1.3.1",
- "object-assign": "4.1.1"
+ "object-assign": "4.1.1",
+ "prop-types": "15.6.0"
+ }
+ },
+ "react-dev-utils": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-4.2.1.tgz",
+ "integrity": "sha1-nydj57r6GhucUiVNKked7sKA8RE=",
+ "dev": true,
+ "requires": {
+ "address": "1.0.3",
+ "babel-code-frame": "6.26.0",
+ "chalk": "1.1.3",
+ "cross-spawn": "5.1.0",
+ "detect-port-alt": "1.1.3",
+ "escape-string-regexp": "1.0.5",
+ "filesize": "3.5.11",
+ "global-modules": "1.0.0",
+ "gzip-size": "3.0.0",
+ "inquirer": "3.3.0",
+ "is-root": "1.0.0",
+ "opn": "5.1.0",
+ "react-error-overlay": "3.0.0",
+ "recursive-readdir": "2.2.1",
+ "shell-quote": "1.6.1",
+ "sockjs-client": "1.1.4",
+ "strip-ansi": "3.0.1",
+ "text-table": "0.2.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.1",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
+ }
+ }
}
},
"react-dom": {
- "version": "15.4.1",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.4.1.tgz",
- "integrity": "sha1-1UyRMmGq7bF63CBBDQKdzBihNEo=",
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.2.0.tgz",
+ "integrity": "sha512-zpGAdwHVn9K0091d+hr+R0qrjoJ84cIBFL2uU60KvWBPfZ7LPSrfqviTxGHWN0sjPZb2hxWzMexwrvJdKePvjg==",
"dev": true,
"requires": {
- "fbjs": "0.8.12",
+ "fbjs": "0.8.16",
"loose-envify": "1.3.1",
- "object-assign": "4.1.1"
+ "object-assign": "4.1.1",
+ "prop-types": "15.6.0"
}
},
+ "react-error-overlay": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-3.0.0.tgz",
+ "integrity": "sha512-XzgvowFrwDo6TWcpJ/WTiarb9UI6lhA4PMzS7n1joK3sHfBBBOQHUc0U4u57D6DWO9vHv6lVSWx2Q/Ymfyv4hw==",
+ "dev": true
+ },
"react-hammerjs": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/react-hammerjs/-/react-hammerjs-0.5.0.tgz",
- "integrity": "sha1-qiDlxfRNZg8+joftESgvEhc+d64=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/react-hammerjs/-/react-hammerjs-1.0.1.tgz",
+ "integrity": "sha1-vB7Z6e99oFcWP7FpzhKRe21sp9g=",
"requires": {
"hammerjs": "2.0.8"
}
},
+ "react-scripts": {
+ "version": "1.0.17",
+ "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-1.0.17.tgz",
+ "integrity": "sha512-tf2kBx230iUSxqJZxboYINlIOKryW+CC7oVgQ4rguNLmcPgWvnnCM8huAgCgL2yuqDd0qQvnI5sRCmc+0TQ5zw==",
+ "dev": true,
+ "requires": {
+ "autoprefixer": "7.1.6",
+ "babel-core": "6.26.0",
+ "babel-eslint": "7.2.3",
+ "babel-jest": "20.0.3",
+ "babel-loader": "7.1.2",
+ "babel-preset-react-app": "3.1.0",
+ "babel-runtime": "6.26.0",
+ "case-sensitive-paths-webpack-plugin": "2.1.1",
+ "chalk": "1.1.3",
+ "css-loader": "0.28.7",
+ "dotenv": "4.0.0",
+ "eslint": "4.10.0",
+ "eslint-config-react-app": "2.0.1",
+ "eslint-loader": "1.9.0",
+ "eslint-plugin-flowtype": "2.39.1",
+ "eslint-plugin-import": "2.8.0",
+ "eslint-plugin-jsx-a11y": "5.1.1",
+ "eslint-plugin-react": "7.4.0",
+ "extract-text-webpack-plugin": "3.0.2",
+ "file-loader": "1.1.5",
+ "fs-extra": "3.0.1",
+ "fsevents": "1.1.2",
+ "html-webpack-plugin": "2.29.0",
+ "jest": "20.0.4",
+ "object-assign": "4.1.1",
+ "postcss-flexbugs-fixes": "3.2.0",
+ "postcss-loader": "2.0.8",
+ "promise": "8.0.1",
+ "raf": "3.4.0",
+ "react-dev-utils": "4.2.1",
+ "style-loader": "0.19.0",
+ "sw-precache-webpack-plugin": "0.11.4",
+ "url-loader": "0.6.2",
+ "webpack": "3.8.1",
+ "webpack-dev-server": "2.9.4",
+ "webpack-manifest-plugin": "1.3.2",
+ "whatwg-fetch": "2.0.3"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "2.0.0"
+ }
+ },
+ "fsevents": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz",
+ "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "nan": "2.8.0",
+ "node-pre-gyp": "0.6.36"
+ },
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "ajv": {
+ "version": "4.11.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "co": "4.6.0",
+ "json-stable-stringify": "1.0.1"
+ }
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "aproba": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "delegates": "1.0.0",
+ "readable-stream": "2.2.9"
+ }
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "aws4": {
+ "version": "1.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "balanced-match": {
+ "version": "0.4.2",
+ "bundled": true,
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tweetnacl": "0.14.5"
+ }
+ },
+ "block-stream": {
+ "version": "0.0.9",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "boom": {
+ "version": "2.10.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.7",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "balanced-match": "0.4.2",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer-shims": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "co": {
+ "version": "4.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "delayed-stream": "1.0.0"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "boom": "2.10.1"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.8",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.4.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "0.1.1"
+ }
+ },
+ "extend": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "extsprintf": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "form-data": {
+ "version": "2.1.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.5",
+ "mime-types": "2.1.15"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "fstream": {
+ "version": "1.0.11",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "inherits": "2.0.3",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.6.1"
+ }
+ },
+ "fstream-ignore": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fstream": "1.0.11",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4"
+ }
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aproba": "1.1.1",
+ "console-control-strings": "1.1.0",
+ "has-unicode": "2.0.1",
+ "object-assign": "4.1.1",
+ "signal-exit": "3.0.2",
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wide-align": "1.1.2"
+ }
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "bundled": true,
+ "dev": true
+ },
+ "har-schema": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "har-validator": {
+ "version": "4.2.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ajv": "4.11.8",
+ "har-schema": "1.0.5"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "boom": "2.10.1",
+ "cryptiles": "2.0.5",
+ "hoek": "2.16.3",
+ "sntp": "1.0.9"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "bundled": true,
+ "dev": true
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "0.2.0",
+ "jsprim": "1.4.0",
+ "sshpk": "1.13.0"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "ini": {
+ "version": "1.3.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "jodid25519": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "0.1.1"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsonify": "0.0.0"
+ }
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "jsprim": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.0.2",
+ "json-schema": "0.2.3",
+ "verror": "1.3.6"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "mime-db": {
+ "version": "1.27.0",
+ "bundled": true,
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.15",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "mime-db": "1.27.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true,
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "node-pre-gyp": {
+ "version": "0.6.36",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "mkdirp": "0.5.1",
+ "nopt": "4.0.1",
+ "npmlog": "4.1.0",
+ "rc": "1.2.1",
+ "request": "2.81.0",
+ "rimraf": "2.6.1",
+ "semver": "5.3.0",
+ "tar": "2.2.1",
+ "tar-pack": "3.4.0"
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abbrev": "1.1.0",
+ "osenv": "0.1.4"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "1.1.4",
+ "console-control-strings": "1.1.0",
+ "gauge": "2.7.4",
+ "set-blocking": "2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "osenv": {
+ "version": "0.1.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "performance-now": {
+ "version": "0.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "bundled": true,
+ "dev": true
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "qs": {
+ "version": "6.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "rc": {
+ "version": "1.2.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "deep-extend": "0.4.2",
+ "ini": "1.3.4",
+ "minimist": "1.2.0",
+ "strip-json-comments": "2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.2.9",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "buffer-shims": "1.0.0",
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "string_decoder": "1.0.1",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "request": {
+ "version": "2.81.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aws-sign2": "0.6.0",
+ "aws4": "1.6.0",
+ "caseless": "0.12.0",
+ "combined-stream": "1.0.5",
+ "extend": "3.0.1",
+ "forever-agent": "0.6.1",
+ "form-data": "2.1.4",
+ "har-validator": "4.2.1",
+ "hawk": "3.1.3",
+ "http-signature": "1.1.1",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.15",
+ "oauth-sign": "0.8.2",
+ "performance-now": "0.2.0",
+ "qs": "6.4.0",
+ "safe-buffer": "5.0.1",
+ "stringstream": "0.0.5",
+ "tough-cookie": "2.3.2",
+ "tunnel-agent": "0.6.0",
+ "uuid": "3.0.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "semver": {
+ "version": "5.3.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "sshpk": {
+ "version": "1.13.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asn1": "0.2.3",
+ "assert-plus": "1.0.0",
+ "bcrypt-pbkdf": "1.0.1",
+ "dashdash": "1.14.1",
+ "ecc-jsbn": "0.1.1",
+ "getpass": "0.1.7",
+ "jodid25519": "1.0.2",
+ "jsbn": "0.1.1",
+ "tweetnacl": "0.14.5"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.0.1"
+ }
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "tar": {
+ "version": "2.2.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "block-stream": "0.0.9",
+ "fstream": "1.0.11",
+ "inherits": "2.0.3"
+ }
+ },
+ "tar-pack": {
+ "version": "3.4.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "2.6.8",
+ "fstream": "1.0.11",
+ "fstream-ignore": "1.0.5",
+ "once": "1.4.0",
+ "readable-stream": "2.2.9",
+ "rimraf": "2.6.1",
+ "tar": "2.2.1",
+ "uid-number": "0.0.6"
+ }
+ },
+ "tough-cookie": {
+ "version": "2.3.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "punycode": "1.4.1"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "uid-number": {
+ "version": "0.0.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "verror": {
+ "version": "1.3.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "extsprintf": "1.0.2"
+ }
+ },
+ "wide-align": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "string-width": "1.0.2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "strip-bom": "3.0.0"
+ }
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "dev": true,
+ "requires": {
+ "execa": "0.7.0",
+ "lcid": "1.0.0",
+ "mem": "1.1.0"
+ }
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
+ "requires": {
+ "pify": "2.3.0"
+ }
+ },
+ "promise": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.1.tgz",
+ "integrity": "sha1-5F1osAoXZHttpxG/he1u1HII9FA=",
+ "dev": true,
+ "requires": {
+ "asap": "2.0.6"
+ }
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "2.0.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "2.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
+ "requires": {
+ "find-up": "2.1.0",
+ "read-pkg": "2.0.0"
+ }
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ },
+ "webpack": {
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.8.1.tgz",
+ "integrity": "sha512-5ZXLWWsMqHKFr5y0N3Eo5IIisxeEeRAajNq4mELb/WELOR7srdbQk2N5XiyNy2A/AgvlR3AmeBCZJW8lHrolbw==",
+ "dev": true,
+ "requires": {
+ "acorn": "5.2.1",
+ "acorn-dynamic-import": "2.0.2",
+ "ajv": "5.5.2",
+ "ajv-keywords": "2.1.1",
+ "async": "2.6.0",
+ "enhanced-resolve": "3.4.1",
+ "escope": "3.6.0",
+ "interpret": "1.1.0",
+ "json-loader": "0.5.7",
+ "json5": "0.5.1",
+ "loader-runner": "2.3.0",
+ "loader-utils": "1.1.0",
+ "memory-fs": "0.4.1",
+ "mkdirp": "0.5.1",
+ "node-libs-browser": "2.1.0",
+ "source-map": "0.5.7",
+ "supports-color": "4.5.0",
+ "tapable": "0.2.8",
+ "uglifyjs-webpack-plugin": "0.4.6",
+ "watchpack": "1.4.0",
+ "webpack-sources": "1.1.0",
+ "yargs": "8.0.2"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
+ "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
+ "dev": true,
+ "requires": {
+ "camelcase": "4.1.0",
+ "cliui": "3.2.0",
+ "decamelize": "1.2.0",
+ "get-caller-file": "1.0.2",
+ "os-locale": "2.1.0",
+ "read-pkg-up": "2.0.0",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "2.1.1",
+ "which-module": "2.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "7.0.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+ "dev": true,
+ "requires": {
+ "camelcase": "4.1.0"
+ }
+ }
+ }
+ },
"read-all-stream": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
@@ -6353,13 +10867,24 @@
"set-immediate-shim": "1.0.1"
}
},
- "rechoir": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
- "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "recursive-readdir": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.1.tgz",
+ "integrity": "sha1-kO8jHQd4xc4JPJpI105cVCLROpk=",
"dev": true,
"requires": {
- "resolve": "1.3.3"
+ "minimatch": "3.0.3"
+ },
+ "dependencies": {
+ "minimatch": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "1.1.8"
+ }
+ }
}
},
"redent": {
@@ -6409,36 +10934,35 @@
}
},
"regenerate": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz",
- "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz",
+ "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==",
"dev": true
},
"regenerator-runtime": {
- "version": "0.10.5",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
- "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=",
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
"dev": true
},
"regenerator-transform": {
- "version": "0.9.11",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz",
- "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=",
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
+ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
"dev": true,
"requires": {
- "babel-runtime": "6.23.0",
- "babel-types": "6.25.0",
- "private": "0.1.7"
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "private": "0.1.8"
}
},
"regex-cache": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz",
- "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=",
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
+ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
"dev": true,
"requires": {
- "is-equal-shallow": "0.1.3",
- "is-primitive": "2.0.0"
+ "is-equal-shallow": "0.1.3"
}
},
"regexpu-core": {
@@ -6447,7 +10971,7 @@
"integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
"dev": true,
"requires": {
- "regenerate": "1.3.2",
+ "regenerate": "1.3.3",
"regjsgen": "0.2.0",
"regjsparser": "0.1.5"
}
@@ -6458,7 +10982,7 @@
"integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=",
"dev": true,
"requires": {
- "rc": "1.2.1",
+ "rc": "1.2.2",
"safe-buffer": "5.1.1"
}
},
@@ -6468,7 +10992,7 @@
"integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
"dev": true,
"requires": {
- "rc": "1.2.1"
+ "rc": "1.2.2"
}
},
"regjsgen": {
@@ -6494,12 +11018,39 @@
}
}
},
- "remove-trailing-separator": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz",
- "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=",
+ "relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
"dev": true
},
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
+ "renderkid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz",
+ "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=",
+ "dev": true,
+ "requires": {
+ "css-select": "1.2.0",
+ "dom-converter": "0.1.4",
+ "htmlparser2": "3.3.0",
+ "strip-ansi": "3.0.1",
+ "utila": "0.3.3"
+ },
+ "dependencies": {
+ "utila": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz",
+ "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=",
+ "dev": true
+ }
+ }
+ },
"repeat-element": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
@@ -6521,16 +11072,10 @@
"is-finite": "1.0.2"
}
},
- "replace-ext": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
- "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
- "dev": true
- },
"request": {
- "version": "2.78.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.78.0.tgz",
- "integrity": "sha1-4cjew0bhyBkjskrNszfxHeyr6cw=",
+ "version": "2.79.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
+ "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
"dev": true,
"requires": {
"aws-sign2": "0.6.0",
@@ -6546,21 +11091,13 @@
"is-typedarray": "1.0.0",
"isstream": "0.1.2",
"json-stringify-safe": "5.0.1",
- "mime-types": "2.1.15",
- "node-uuid": "1.4.8",
+ "mime-types": "2.1.17",
"oauth-sign": "0.8.2",
"qs": "6.3.2",
"stringstream": "0.0.5",
- "tough-cookie": "2.3.2",
- "tunnel-agent": "0.4.3"
- },
- "dependencies": {
- "qs": {
- "version": "6.3.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
- "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=",
- "dev": true
- }
+ "tough-cookie": "2.3.3",
+ "tunnel-agent": "0.4.3",
+ "uuid": "3.1.0"
}
},
"require-directory": {
@@ -6569,17 +11106,27 @@
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
"dev": true
},
+ "require-from-string": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz",
+ "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=",
+ "dev": true
+ },
"require-main-filename": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
"integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
"dev": true
},
- "require-precompiled": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/require-precompiled/-/require-precompiled-0.1.0.tgz",
- "integrity": "sha1-WhtS63Dr7UPrmC6XTIWrWVceVvo=",
- "dev": true
+ "require-uncached": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
+ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
+ "dev": true,
+ "requires": {
+ "caller-path": "0.1.0",
+ "resolve-from": "1.0.1"
+ }
},
"requires-port": {
"version": "1.0.0",
@@ -6587,88 +11134,339 @@
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
"dev": true
},
+ "reserved-words": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.2.tgz",
+ "integrity": "sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=",
+ "dev": true
+ },
"resolve": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz",
- "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
+ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==",
"dev": true,
"requires": {
"path-parse": "1.0.5"
}
},
"resolve-cwd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-1.0.0.tgz",
- "integrity": "sha1-Tq7qQe0EDRcCRX32SkKysH0kb58=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
"dev": true,
"requires": {
- "resolve-from": "2.0.0"
+ "resolve-from": "3.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
+ }
}
},
"resolve-dir": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz",
- "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+ "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
"dev": true,
"requires": {
- "expand-tilde": "1.2.2",
- "global-modules": "0.2.3"
+ "expand-tilde": "2.0.2",
+ "global-modules": "1.0.0"
}
},
"resolve-from": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
- "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
+ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
"dev": true
},
- "resp-modifier": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz",
- "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=",
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
"dev": true,
"requires": {
- "debug": "2.6.8",
- "minimatch": "3.0.4"
+ "onetime": "2.0.1",
+ "signal-exit": "3.0.2"
}
},
- "restore-cursor": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
- "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
"dev": true,
"requires": {
- "exit-hook": "1.1.1",
- "onetime": "1.1.0"
+ "align-text": "0.1.4"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2"
}
},
"ripemd160": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz",
- "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
+ "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=",
+ "dev": true,
+ "requires": {
+ "hash-base": "2.0.2",
+ "inherits": "2.0.3"
+ }
+ },
+ "rollup": {
+ "version": "0.53.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.53.0.tgz",
+ "integrity": "sha512-bG5RzkF7wcOHmKoVAFtERZ5P9TNJP9/AF+ldwGm/Rx6pejura+Z9BDU0GJtzWu+lYXwjfINmgiCclhLJzP/OXA==",
"dev": true
},
- "rx": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
- "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=",
+ "rollup-plugin-babel": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-3.0.3.tgz",
+ "integrity": "sha512-5kzM/Rr4jQSRPLc2eN5NuD+CI/6AAy7S1O18Ogu4U3nq1Q42VJn0C9EMtqnvxtfwf1XrezOtdA9ro1VZI5B0mA==",
+ "dev": true,
+ "requires": {
+ "rollup-pluginutils": "1.5.2"
+ }
+ },
+ "rollup-plugin-commonjs": {
+ "version": "8.2.6",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.2.6.tgz",
+ "integrity": "sha512-qK0+uhktmnAgZkHkqFuajNmPw93fjrO7+CysDaxWE5jrUR9XSlSvuao5ZJP+XizxA8weakhgYYBtbVz9SGBpjA==",
+ "dev": true,
+ "requires": {
+ "acorn": "5.2.1",
+ "estree-walker": "0.5.1",
+ "magic-string": "0.22.4",
+ "resolve": "1.5.0",
+ "rollup-pluginutils": "2.0.1"
+ },
+ "dependencies": {
+ "estree-walker": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.1.tgz",
+ "integrity": "sha512-7HgCgz1axW7w5aOvgOQkoR1RMBkllygJrssU3BvymKQ95lxXYv6Pon17fBRDm9qhkvXZGijOULoSF9ShOk/ZLg==",
+ "dev": true
+ },
+ "rollup-pluginutils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz",
+ "integrity": "sha1-fslbNXP2VDpGpkYb2afFRFJdD8A=",
+ "dev": true,
+ "requires": {
+ "estree-walker": "0.3.1",
+ "micromatch": "2.3.11"
+ },
+ "dependencies": {
+ "estree-walker": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.3.1.tgz",
+ "integrity": "sha1-5rGlHPcpJSTnI3wxLl/mZgwc4ao=",
+ "dev": true
+ }
+ }
+ }
+ }
+ },
+ "rollup-plugin-node-resolve": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.0.tgz",
+ "integrity": "sha1-i4l8TDAw1QASd7BRSyXSygloPuA=",
+ "dev": true,
+ "requires": {
+ "browser-resolve": "1.11.2",
+ "builtin-modules": "1.1.1",
+ "is-module": "1.0.0",
+ "resolve": "1.5.0"
+ }
+ },
+ "rollup-plugin-postcss": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-0.5.5.tgz",
+ "integrity": "sha512-lwqVOt+BM2vOy/LTuPpRjMumXlPmkKQxDA5ilsCvIJ2Gq4yhonGautp7kTHFUUx5AihtdfFOvn0BK953Cz70xA==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "concat-with-sourcemaps": "1.0.4",
+ "fs-extra": "3.0.1",
+ "postcss": "6.0.14",
+ "reserved-words": "0.1.2",
+ "rollup-pluginutils": "2.0.1",
+ "style-inject": "0.1.2"
+ },
+ "dependencies": {
+ "estree-walker": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.3.1.tgz",
+ "integrity": "sha1-5rGlHPcpJSTnI3wxLl/mZgwc4ao=",
+ "dev": true
+ },
+ "rollup-pluginutils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz",
+ "integrity": "sha1-fslbNXP2VDpGpkYb2afFRFJdD8A=",
+ "dev": true,
+ "requires": {
+ "estree-walker": "0.3.1",
+ "micromatch": "2.3.11"
+ }
+ }
+ }
+ },
+ "rollup-pluginutils": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz",
+ "integrity": "sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=",
+ "dev": true,
+ "requires": {
+ "estree-walker": "0.2.1",
+ "minimatch": "3.0.4"
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "dev": true,
+ "requires": {
+ "is-promise": "2.1.0"
+ }
+ },
+ "rx-lite": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
"dev": true
},
+ "rx-lite-aggregates": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
+ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
+ "dev": true,
+ "requires": {
+ "rx-lite": "4.0.8"
+ }
+ },
"safe-buffer": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
"dev": true
},
+ "sane": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/sane/-/sane-1.6.0.tgz",
+ "integrity": "sha1-lhDEUjB6E10pwf3+JUcDQYDEZ3U=",
+ "dev": true,
+ "requires": {
+ "anymatch": "1.3.2",
+ "exec-sh": "0.2.1",
+ "fb-watchman": "1.9.2",
+ "minimatch": "3.0.4",
+ "minimist": "1.2.0",
+ "walker": "1.0.7",
+ "watch": "0.10.0"
+ },
+ "dependencies": {
+ "bser": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz",
+ "integrity": "sha1-OBEWlwsqbe6lZG3RXdcnhES1YWk=",
+ "dev": true,
+ "requires": {
+ "node-int64": "0.4.0"
+ }
+ },
+ "fb-watchman": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.2.tgz",
+ "integrity": "sha1-okz0eCf4LTj7Waaa1wt247auc4M=",
+ "dev": true,
+ "requires": {
+ "bser": "1.0.2"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "sass-graph": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
+ "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2",
+ "lodash": "4.17.4",
+ "scss-tokenizer": "0.2.3",
+ "yargs": "7.1.0"
+ }
+ },
"sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
"dev": true
},
+ "schema-utils": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz",
+ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
+ "dev": true,
+ "requires": {
+ "ajv": "5.5.2"
+ }
+ },
+ "scss-tokenizer": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
+ "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
+ "dev": true,
+ "requires": {
+ "js-base64": "2.4.0",
+ "source-map": "0.4.4"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "dev": true,
+ "requires": {
+ "amdefine": "1.0.1"
+ }
+ }
+ }
+ },
+ "select-hose": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
+ "dev": true
+ },
+ "selfsigned": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.1.tgz",
+ "integrity": "sha1-v4y3uDJWxFUeMTR8YxF3jbme7FI=",
+ "dev": true,
+ "requires": {
+ "node-forge": "0.6.33"
+ }
+ },
"semver": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
- "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
+ "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
"dev": true
},
"semver-diff": {
@@ -6677,113 +11475,69 @@
"integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
"dev": true,
"requires": {
- "semver": "5.3.0"
+ "semver": "5.4.1"
}
},
"send": {
- "version": "0.14.1",
- "resolved": "https://registry.npmjs.org/send/-/send-0.14.1.tgz",
- "integrity": "sha1-qVSYQyU5L1FTKndgdg5FlZjIn3o=",
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz",
+ "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==",
"dev": true,
"requires": {
- "debug": "2.2.0",
- "depd": "1.1.0",
+ "debug": "2.6.9",
+ "depd": "1.1.1",
"destroy": "1.0.4",
"encodeurl": "1.0.1",
"escape-html": "1.0.3",
- "etag": "1.7.0",
- "fresh": "0.3.0",
- "http-errors": "1.5.1",
- "mime": "1.3.4",
- "ms": "0.7.1",
+ "etag": "1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "1.6.2",
+ "mime": "1.4.1",
+ "ms": "2.0.0",
"on-finished": "2.3.0",
"range-parser": "1.2.0",
"statuses": "1.3.1"
},
"dependencies": {
- "debug": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
- "dev": true,
- "requires": {
- "ms": "0.7.1"
- }
- },
- "etag": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz",
- "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=",
- "dev": true
- },
"mime": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
- "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=",
- "dev": true
- },
- "ms": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
- "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
+ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
"dev": true
}
}
},
- "sequencify": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz",
- "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=",
- "dev": true
- },
"serve-index": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz",
- "integrity": "sha1-fF2WwT+xMRAfk8HFd0+FFqHnjTs=",
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
"dev": true,
"requires": {
- "accepts": "1.3.3",
- "batch": "0.5.3",
- "debug": "2.2.0",
+ "accepts": "1.3.4",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
"escape-html": "1.0.3",
- "http-errors": "1.5.1",
- "mime-types": "2.1.15",
- "parseurl": "1.3.1"
- },
- "dependencies": {
- "debug": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
- "dev": true,
- "requires": {
- "ms": "0.7.1"
- }
- },
- "ms": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
- "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
- "dev": true
- }
+ "http-errors": "1.6.2",
+ "mime-types": "2.1.17",
+ "parseurl": "1.3.2"
}
},
"serve-static": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.1.tgz",
- "integrity": "sha1-1sznaTUF9zPHWd5Xvvwa92wPCAU=",
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz",
+ "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==",
"dev": true,
"requires": {
"encodeurl": "1.0.1",
"escape-html": "1.0.3",
- "parseurl": "1.3.1",
- "send": "0.14.1"
+ "parseurl": "1.3.2",
+ "send": "0.16.1"
}
},
- "server-destroy": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz",
- "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=",
+ "serviceworker-cache-polyfill": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz",
+ "integrity": "sha1-3hnuc77yGrPAdAo3sz22JGS6ves=",
"dev": true
},
"set-blocking": {
@@ -6804,21 +11558,52 @@
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
},
"setprototypeof": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz",
- "integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg=",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
"dev": true
},
"sha.js": {
- "version": "2.2.6",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz",
- "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=",
+ "version": "2.4.9",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz",
+ "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
"dev": true
},
- "sigmund": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
- "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
+ "shell-quote": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
+ "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
+ "dev": true,
+ "requires": {
+ "array-filter": "0.0.1",
+ "array-map": "0.0.0",
+ "array-reduce": "0.0.0",
+ "jsonify": "0.0.0"
+ }
+ },
+ "shellwords": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
+ "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
"dev": true
},
"signal-exit": {
@@ -6834,10 +11619,21 @@
"dev": true
},
"slice-ansi": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
- "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
- "dev": true
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
+ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ }
+ }
},
"slide": {
"version": "1.1.6",
@@ -6854,146 +11650,45 @@
"hoek": "2.16.3"
}
},
- "socket.io": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.6.0.tgz",
- "integrity": "sha1-PkDZMmN+a9kjmBslyvfFPoO24uE=",
+ "sockjs": {
+ "version": "0.3.18",
+ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz",
+ "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=",
"dev": true,
"requires": {
- "debug": "2.3.3",
- "engine.io": "1.8.0",
- "has-binary": "0.1.7",
- "object-assign": "4.1.0",
- "socket.io-adapter": "0.5.0",
- "socket.io-client": "1.6.0",
- "socket.io-parser": "2.3.1"
+ "faye-websocket": "0.10.0",
+ "uuid": "2.0.3"
},
"dependencies": {
- "debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
+ "faye-websocket": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
+ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
"dev": true,
"requires": {
- "ms": "0.7.2"
+ "websocket-driver": "0.7.0"
}
},
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
- "dev": true
- },
- "object-assign": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
- "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
+ "uuid": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
+ "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
"dev": true
}
}
},
- "socket.io-adapter": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz",
- "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=",
+ "sockjs-client": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz",
+ "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=",
"dev": true,
"requires": {
- "debug": "2.3.3",
- "socket.io-parser": "2.3.1"
- },
- "dependencies": {
- "debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
- "dev": true,
- "requires": {
- "ms": "0.7.2"
- }
- },
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
- "dev": true
- }
- }
- },
- "socket.io-client": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.6.0.tgz",
- "integrity": "sha1-W2aPT3cTBN/u0XkGRwg4b6ZxeFM=",
- "dev": true,
- "requires": {
- "backo2": "1.0.2",
- "component-bind": "1.0.0",
- "component-emitter": "1.2.1",
- "debug": "2.3.3",
- "engine.io-client": "1.8.0",
- "has-binary": "0.1.7",
- "indexof": "0.0.1",
- "object-component": "0.0.3",
- "parseuri": "0.0.5",
- "socket.io-parser": "2.3.1",
- "to-array": "0.1.4"
- },
- "dependencies": {
- "component-emitter": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
- "dev": true
- },
- "debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
- "dev": true,
- "requires": {
- "ms": "0.7.2"
- }
- },
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
- "dev": true
- }
- }
- },
- "socket.io-parser": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz",
- "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=",
- "dev": true,
- "requires": {
- "component-emitter": "1.1.2",
- "debug": "2.2.0",
- "isarray": "0.0.1",
- "json3": "3.3.2"
- },
- "dependencies": {
- "debug": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
- "dev": true,
- "requires": {
- "ms": "0.7.1"
- }
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
- "dev": true
- },
- "ms": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
- "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
- "dev": true
- }
+ "debug": "2.6.9",
+ "eventsource": "0.1.6",
+ "faye-websocket": "0.11.1",
+ "inherits": "2.0.3",
+ "json3": "3.3.2",
+ "url-parse": "1.2.0"
}
},
"sort-keys": {
@@ -7006,32 +11701,26 @@
}
},
"source-list-map": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz",
- "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz",
+ "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==",
"dev": true
},
"source-map": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
- "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
},
"source-map-support": {
- "version": "0.4.15",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz",
- "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=",
+ "version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
"dev": true,
"requires": {
- "source-map": "0.5.6"
+ "source-map": "0.5.7"
}
},
- "sparkles": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
- "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=",
- "dev": true
- },
"spdx-correct": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
@@ -7053,6 +11742,44 @@
"integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
"dev": true
},
+ "spdy": {
+ "version": "3.4.7",
+ "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz",
+ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "handle-thing": "1.2.5",
+ "http-deceiver": "1.2.7",
+ "safe-buffer": "5.1.1",
+ "select-hose": "2.0.0",
+ "spdy-transport": "2.0.20"
+ }
+ },
+ "spdy-transport": {
+ "version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz",
+ "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "detect-node": "2.0.3",
+ "hpack.js": "2.1.6",
+ "obuf": "1.1.1",
+ "readable-stream": "2.3.3",
+ "safe-buffer": "5.1.1",
+ "wbuf": "1.7.2"
+ }
+ },
+ "split": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
+ "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
+ "dev": true,
+ "requires": {
+ "through": "2.3.8"
+ }
+ },
"sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
@@ -7083,10 +11810,10 @@
}
}
},
- "stack-utils": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-0.4.0.tgz",
- "integrity": "sha1-lAy4L8z6hOj/Lz/fKT/ngBa+zNE=",
+ "standalone-react-addons-pure-render-mixin": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/standalone-react-addons-pure-render-mixin/-/standalone-react-addons-pure-render-mixin-0.1.1.tgz",
+ "integrity": "sha1-PHQJ9MecQN6axyxhbPZ5qZTzdVE=",
"dev": true
},
"statuses": {
@@ -7095,6 +11822,15 @@
"integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
"dev": true
},
+ "stdout-stream": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz",
+ "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "2.3.3"
+ }
+ },
"stream-browserify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
@@ -7105,11 +11841,14 @@
"readable-stream": "2.3.3"
}
},
- "stream-consume": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz",
- "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=",
- "dev": true
+ "stream-combiner": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
+ "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
+ "dev": true,
+ "requires": {
+ "duplexer": "0.1.1"
+ }
},
"stream-http": {
"version": "2.7.2",
@@ -7124,22 +11863,21 @@
"xtend": "4.0.1"
}
},
- "stream-throttle": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz",
- "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=",
- "dev": true,
- "requires": {
- "commander": "2.11.0",
- "limiter": "1.1.2"
- }
- },
"strict-uri-encode": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
"dev": true
},
+ "string-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
+ "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=",
+ "dev": true,
+ "requires": {
+ "strip-ansi": "3.0.1"
+ }
+ },
"string-width": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
@@ -7151,6 +11889,17 @@
"strip-ansi": "3.0.1"
}
},
+ "string.prototype.padend": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz",
+ "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=",
+ "dev": true,
+ "requires": {
+ "define-properties": "1.1.2",
+ "es-abstract": "1.10.0",
+ "function-bind": "1.1.1"
+ }
+ },
"string_decoder": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
@@ -7160,25 +11909,6 @@
"safe-buffer": "5.1.1"
}
},
- "stringifier": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/stringifier/-/stringifier-1.3.0.tgz",
- "integrity": "sha1-3vGDQvaTPbDy2/yaoCF1tEjBeVk=",
- "dev": true,
- "requires": {
- "core-js": "2.4.1",
- "traverse": "0.6.6",
- "type-name": "2.0.2"
- },
- "dependencies": {
- "core-js": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz",
- "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=",
- "dev": true
- }
- }
- },
"stringstream": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
@@ -7203,6 +11933,12 @@
"is-utf8": "0.2.1"
}
},
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
"strip-indent": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
@@ -7218,13 +11954,20 @@
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"dev": true
},
+ "style-inject": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/style-inject/-/style-inject-0.1.2.tgz",
+ "integrity": "sha512-EUa9T/9RfzoKf9m3K6/p+EFis0oS6lxDmDilLfu/kyxwoVEHZWTkBGNP8LczZXtqj/bxQzbWSJXN2BvLXhUHtQ==",
+ "dev": true
+ },
"style-loader": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.1.tgz",
- "integrity": "sha1-RoKA77wEcwI806bNVuM7Wh1/w6k=",
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.0.tgz",
+ "integrity": "sha512-9mx9sC9nX1dgP96MZOODpGC6l1RzQBITI2D5WJhu+wnbrSYVKLGuy14XJSLVQih/0GFrPpjelt+s//VcZQ2Evw==",
"dev": true,
"requires": {
- "loader-utils": "0.2.17"
+ "loader-utils": "1.1.0",
+ "schema-utils": "0.3.0"
}
},
"supports-color": {
@@ -7234,25 +11977,23 @@
"dev": true
},
"svg-url-loader": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/svg-url-loader/-/svg-url-loader-1.1.0.tgz",
- "integrity": "sha1-nE7A85bS77AsIqXxwv5HKypariM=",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/svg-url-loader/-/svg-url-loader-2.3.1.tgz",
+ "integrity": "sha1-KH7TEf/+SbhTzTuur8pWP6gDu/c=",
"dev": true,
"requires": {
- "file-loader": "0.9.0",
- "loader-utils": "0.2.15"
+ "file-loader": "1.1.6",
+ "loader-utils": "1.1.0"
},
"dependencies": {
- "loader-utils": {
- "version": "0.2.15",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.15.tgz",
- "integrity": "sha1-x98zQqnU4hA93cl9QGDazMJG1qw=",
+ "file-loader": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.6.tgz",
+ "integrity": "sha512-873ztuL+/hfvXbLDJ262PGO6XjERnybJu2gW1/5j8HUfxSiFJI9Hj/DhZ50ZGRUxBvuNiazb/cM2rh9pqrxP6Q==",
"dev": true,
"requires": {
- "big.js": "3.1.3",
- "emojis-list": "2.1.0",
- "json5": "0.5.1",
- "object-assign": "4.1.1"
+ "loader-utils": "1.1.0",
+ "schema-utils": "0.3.0"
}
}
}
@@ -7272,121 +12013,185 @@
"whet.extend": "0.9.9"
}
},
- "symbol": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/symbol/-/symbol-0.2.3.tgz",
- "integrity": "sha1-O5hzuKkB5Hxu/iFSajrDcu8ou8c=",
+ "sw-precache": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/sw-precache/-/sw-precache-5.2.0.tgz",
+ "integrity": "sha512-sKctdX+5hUxkqJ/1DM88ubQ+QRvyw7CnxWdk909N2DgvxMqc1gcQFrwL7zpVc87wFmCA/OvRQd0iMC2XdFopYg==",
+ "dev": true,
+ "requires": {
+ "dom-urls": "1.1.0",
+ "es6-promise": "4.2.2",
+ "glob": "7.1.2",
+ "lodash.defaults": "4.2.0",
+ "lodash.template": "4.4.0",
+ "meow": "3.7.0",
+ "mkdirp": "0.5.1",
+ "pretty-bytes": "4.0.2",
+ "sw-toolbox": "3.6.0",
+ "update-notifier": "1.0.3"
+ }
+ },
+ "sw-precache-webpack-plugin": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.11.4.tgz",
+ "integrity": "sha1-ppUBflTu1XVVFJOlGdwdqNotxeA=",
+ "dev": true,
+ "requires": {
+ "del": "2.2.2",
+ "sw-precache": "5.2.0",
+ "uglify-js": "3.3.2"
+ }
+ },
+ "sw-toolbox": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/sw-toolbox/-/sw-toolbox-3.6.0.tgz",
+ "integrity": "sha1-Jt8dHHA0hljk3qKIQxkUm3sxg7U=",
+ "dev": true,
+ "requires": {
+ "path-to-regexp": "1.7.0",
+ "serviceworker-cache-polyfill": "4.0.0"
+ }
+ },
+ "symbol-tree": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
+ "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=",
"dev": true
},
- "symbol-observable": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz",
- "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=",
- "dev": true
+ "table": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
+ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
+ "dev": true,
+ "requires": {
+ "ajv": "5.5.2",
+ "ajv-keywords": "2.1.1",
+ "chalk": "2.3.0",
+ "lodash": "4.17.4",
+ "slice-ansi": "1.0.0",
+ "string-width": "2.1.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.1"
+ }
+ },
+ "chalk": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.5.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
+ }
},
"tapable": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz",
- "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=",
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz",
+ "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=",
"dev": true
},
+ "tar": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
+ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
+ "dev": true,
+ "requires": {
+ "block-stream": "0.0.9",
+ "fstream": "1.0.11",
+ "inherits": "2.0.3"
+ }
+ },
+ "test-exclude": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz",
+ "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==",
+ "dev": true,
+ "requires": {
+ "arrify": "1.0.1",
+ "micromatch": "2.3.11",
+ "object-assign": "4.1.1",
+ "read-pkg-up": "1.0.1",
+ "require-main-filename": "1.0.1"
+ }
+ },
"text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
"dev": true
},
- "tfunk": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz",
- "integrity": "sha1-OORBT8ZJd9h6/apy+sttKfgve1s=",
- "dev": true,
- "requires": {
- "chalk": "1.1.3",
- "object-path": "0.9.2"
- }
- },
- "the-argv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/the-argv/-/the-argv-1.0.0.tgz",
- "integrity": "sha1-AIRwUAVzDdhNt1UlPJMa45jblSI=",
+ "throat": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz",
+ "integrity": "sha512-/EY8VpvlqJ+sFtLPeOgc8Pl7kQVOWv0woD87KTXVHPIAE842FGT+rokxIhe8xIUP1cfgrkt0as0vDLjDiMtr8w==",
"dev": true
},
- "through2": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
- "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
- "dev": true,
- "requires": {
- "readable-stream": "2.3.3",
- "xtend": "4.0.1"
- }
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
},
- "tildify": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
- "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=",
- "dev": true,
- "requires": {
- "os-homedir": "1.0.2"
- }
- },
- "time-require": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/time-require/-/time-require-0.1.2.tgz",
- "integrity": "sha1-+eEss3D8JgXhFARYK6VO9corLZg=",
- "dev": true,
- "requires": {
- "chalk": "0.4.0",
- "date-time": "0.1.1",
- "pretty-ms": "0.2.2",
- "text-table": "0.2.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz",
- "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=",
- "dev": true
- },
- "chalk": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz",
- "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=",
- "dev": true,
- "requires": {
- "ansi-styles": "1.0.0",
- "has-color": "0.1.7",
- "strip-ansi": "0.1.1"
- }
- },
- "parse-ms": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-0.1.2.tgz",
- "integrity": "sha1-3T+iXtbC78e93hKtm0bBY6opIk4=",
- "dev": true
- },
- "pretty-ms": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-0.2.2.tgz",
- "integrity": "sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY=",
- "dev": true,
- "requires": {
- "parse-ms": "0.1.2"
- }
- },
- "strip-ansi": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz",
- "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=",
- "dev": true
- }
- }
+ "thunky": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz",
+ "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=",
+ "dev": true
},
"time-stamp": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
- "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz",
+ "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=",
"dev": true
},
"timed-out": {
@@ -7396,18 +12201,27 @@
"dev": true
},
"timers-browserify": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz",
- "integrity": "sha1-q0iDz1l9zVCvIRNJoA+8pWrIa4Y=",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz",
+ "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==",
"dev": true,
"requires": {
"setimmediate": "1.0.5"
}
},
- "to-array": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
- "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "tmpl": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
+ "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=",
"dev": true
},
"to-arraybuffer": {
@@ -7422,19 +12236,25 @@
"integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
"dev": true
},
+ "toposort": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.6.tgz",
+ "integrity": "sha1-wxdI5V0hDv/AD9zcfW5o19e7nOw=",
+ "dev": true
+ },
"tough-cookie": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
- "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
+ "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
"dev": true,
"requires": {
"punycode": "1.4.1"
}
},
- "traverse": {
- "version": "0.6.6",
- "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz",
- "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=",
+ "tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
"dev": true
},
"trim-newlines": {
@@ -7449,11 +12269,29 @@
"integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
"dev": true
},
- "tslib": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.8.0.tgz",
- "integrity": "sha512-ymKWWZJST0/CkgduC2qkzjMOWr4bouhuURNXCn/inEX0L57BnRG6FhX76o7FOnsjHazCjfU2LKeSrlS2sIKQJg==",
- "dev": true
+ "true-case-path": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz",
+ "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=",
+ "dev": true,
+ "requires": {
+ "glob": "6.0.4"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
+ "dev": true,
+ "requires": {
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ }
+ }
},
"tty-browserify": {
"version": "0.0.0",
@@ -7474,35 +12312,72 @@
"dev": true,
"optional": true
},
- "type-name": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz",
- "integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=",
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "1.1.2"
+ }
+ },
+ "type-is": {
+ "version": "1.6.15",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz",
+ "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=",
+ "dev": true,
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "2.1.17"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
"dev": true
},
"ua-parser-js": {
- "version": "0.7.13",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.13.tgz",
- "integrity": "sha1-zZ3S+GSTs/RNvu7zeA/adMXuFL4="
+ "version": "0.7.17",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz",
+ "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g=="
},
"uglify-js": {
- "version": "2.7.5",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz",
- "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.2.tgz",
+ "integrity": "sha512-uZp2gduFfZDDfx0iIAmfKgRTANCooWcFjnFmJ2n8x/+RpBNk97lac1HU5wvZxWZCBbwHmTFDpWAsEhKnQpsM2A==",
"dev": true,
"requires": {
- "async": "0.2.10",
- "source-map": "0.5.6",
- "uglify-to-browserify": "1.0.2",
- "yargs": "3.10.0"
+ "commander": "2.12.2",
+ "source-map": "0.6.1"
},
"dependencies": {
- "async": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
- "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
- },
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "dev": true,
+ "optional": true
+ },
+ "uglifyjs-webpack-plugin": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz",
+ "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.7",
+ "uglify-js": "2.8.29",
+ "webpack-sources": "1.1.0"
+ },
+ "dependencies": {
"camelcase": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
@@ -7518,34 +12393,18 @@
"center-align": "0.1.3",
"right-align": "0.1.3",
"wordwrap": "0.0.2"
- },
- "dependencies": {
- "center-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
- "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
- "dev": true,
- "requires": {
- "align-text": "0.1.4",
- "lazy-cache": "1.0.4"
- }
- },
- "right-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
- "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
- "dev": true,
- "requires": {
- "align-text": "0.1.4"
- }
- }
}
},
- "window-size": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
- "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
- "dev": true
+ "uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.7",
+ "uglify-to-browserify": "1.0.2",
+ "yargs": "3.10.0"
+ }
},
"wordwrap": {
"version": "0.0.2",
@@ -7567,36 +12426,6 @@
}
}
},
- "uglify-to-browserify": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
- "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
- "dev": true
- },
- "uid2": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz",
- "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=",
- "dev": true
- },
- "ultron": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz",
- "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=",
- "dev": true
- },
- "unc-path-regex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
- "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
- "dev": true
- },
- "underscore": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
- "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
- "dev": true
- },
"uniq": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
@@ -7618,23 +12447,12 @@
"integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
"dev": true
},
- "unique-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz",
- "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=",
+ "universalify": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
+ "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=",
"dev": true
},
- "unique-temp-dir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz",
- "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=",
- "dev": true,
- "requires": {
- "mkdirp": "0.5.1",
- "os-tmpdir": "1.0.2",
- "uid2": "0.0.3"
- }
- },
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
@@ -7663,6 +12481,18 @@
"xdg-basedir": "2.0.0"
}
},
+ "upper-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+ "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
+ "dev": true
+ },
+ "urijs": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.0.tgz",
+ "integrity": "sha512-Qs2odXn0hST5VSPVjpi73CMqtbAoanahaqWBujGU+IyMrMqpWcIhDewxQRhCkmqYxuyvICDcSuLdv2O7ncWBGw==",
+ "dev": true
+ },
"url": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
@@ -7681,6 +12511,35 @@
}
}
},
+ "url-loader": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.6.2.tgz",
+ "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "1.1.0",
+ "mime": "1.6.0",
+ "schema-utils": "0.3.0"
+ }
+ },
+ "url-parse": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz",
+ "integrity": "sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==",
+ "dev": true,
+ "requires": {
+ "querystringify": "1.0.0",
+ "requires-port": "1.0.0"
+ },
+ "dependencies": {
+ "querystringify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz",
+ "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=",
+ "dev": true
+ }
+ }
+ },
"url-parse-lax": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
@@ -7719,16 +12578,22 @@
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true
},
+ "utila": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
+ "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=",
+ "dev": true
+ },
"utils-merge": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
- "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
"dev": true
},
"uuid": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
- "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
+ "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==",
"dev": true
},
"v8flags": {
@@ -7750,6 +12615,12 @@
"spdx-expression-parse": "1.0.4"
}
},
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "dev": true
+ },
"vendors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz",
@@ -7757,120 +12628,29 @@
"dev": true
},
"verror": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
- "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"dev": true,
"requires": {
- "extsprintf": "1.0.2"
- }
- },
- "vinyl": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
- "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
- "dev": true,
- "requires": {
- "clone": "1.0.2",
- "clone-stats": "0.0.1",
- "replace-ext": "0.0.1"
- }
- },
- "vinyl-fs": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz",
- "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=",
- "dev": true,
- "requires": {
- "defaults": "1.0.3",
- "glob-stream": "3.1.18",
- "glob-watcher": "0.0.6",
- "graceful-fs": "3.0.11",
- "mkdirp": "0.5.1",
- "strip-bom": "1.0.0",
- "through2": "0.6.5",
- "vinyl": "0.4.6"
+ "assert-plus": "1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "1.3.0"
},
"dependencies": {
- "clone": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
- "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
- "dev": true
- },
- "graceful-fs": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
- "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
- "dev": true,
- "requires": {
- "natives": "1.1.0"
- }
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
- "dev": true
- },
- "readable-stream": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
- "dev": true,
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "0.0.1",
- "string_decoder": "0.10.31"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- },
- "strip-bom": {
+ "assert-plus": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz",
- "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=",
- "dev": true,
- "requires": {
- "first-chunk-stream": "1.0.0",
- "is-utf8": "0.2.1"
- }
- },
- "through2": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
- "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
- "dev": true,
- "requires": {
- "readable-stream": "1.0.34",
- "xtend": "4.0.1"
- }
- },
- "vinyl": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
- "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
- "dev": true,
- "requires": {
- "clone": "0.2.0",
- "clone-stats": "0.0.1"
- }
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
}
}
},
- "vinyl-sourcemaps-apply": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz",
- "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=",
- "dev": true,
- "requires": {
- "source-map": "0.5.6"
- }
+ "vlq": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz",
+ "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==",
+ "dev": true
},
"vm-browserify": {
"version": "0.0.4",
@@ -7881,115 +12661,459 @@
"indexof": "0.0.1"
}
},
- "w3c-blob": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/w3c-blob/-/w3c-blob-0.0.1.tgz",
- "integrity": "sha1-sM01KhpQ9RVWNCD/1YYflQ8dhbg="
- },
- "watchpack": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz",
- "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=",
+ "walker": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
+ "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=",
"dev": true,
"requires": {
- "async": "0.9.2",
+ "makeerror": "1.0.11"
+ }
+ },
+ "watch": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz",
+ "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw=",
+ "dev": true
+ },
+ "watchpack": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz",
+ "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=",
+ "dev": true,
+ "requires": {
+ "async": "2.6.0",
"chokidar": "1.7.0",
"graceful-fs": "4.1.11"
- },
- "dependencies": {
- "async": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
- "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
- "dev": true
- }
+ }
+ },
+ "wbuf": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz",
+ "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=",
+ "dev": true,
+ "requires": {
+ "minimalistic-assert": "1.0.0"
}
},
"wcwidth": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
"integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
+ "dev": true,
"optional": true,
"requires": {
"defaults": "1.0.3"
}
},
+ "webidl-conversions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
+ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
+ "dev": true
+ },
"webpack": {
- "version": "1.14.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.14.0.tgz",
- "integrity": "sha1-VPH/uSBRoyilsgV9auM8KJRiyCM=",
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.8.1.tgz",
+ "integrity": "sha512-5ZXLWWsMqHKFr5y0N3Eo5IIisxeEeRAajNq4mELb/WELOR7srdbQk2N5XiyNy2A/AgvlR3AmeBCZJW8lHrolbw==",
"dev": true,
"requires": {
- "acorn": "3.3.0",
- "async": "1.5.2",
- "clone": "1.0.2",
- "enhanced-resolve": "0.9.1",
- "interpret": "0.6.6",
- "loader-utils": "0.2.17",
- "memory-fs": "0.3.0",
+ "acorn": "5.2.1",
+ "acorn-dynamic-import": "2.0.2",
+ "ajv": "5.5.2",
+ "ajv-keywords": "2.1.1",
+ "async": "2.6.0",
+ "enhanced-resolve": "3.4.1",
+ "escope": "3.6.0",
+ "interpret": "1.1.0",
+ "json-loader": "0.5.7",
+ "json5": "0.5.1",
+ "loader-runner": "2.3.0",
+ "loader-utils": "1.1.0",
+ "memory-fs": "0.4.1",
"mkdirp": "0.5.1",
- "node-libs-browser": "0.7.0",
- "optimist": "0.6.1",
- "supports-color": "3.2.3",
- "tapable": "0.1.10",
- "uglify-js": "2.7.5",
- "watchpack": "0.2.9",
- "webpack-core": "0.6.9"
+ "node-libs-browser": "2.1.0",
+ "source-map": "0.5.7",
+ "supports-color": "4.5.0",
+ "tapable": "0.2.8",
+ "uglifyjs-webpack-plugin": "0.4.6",
+ "watchpack": "1.4.0",
+ "webpack-sources": "1.1.0",
+ "yargs": "8.0.2"
},
"dependencies": {
- "has-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
- "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
- "interpret": {
- "version": "0.6.6",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz",
- "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=",
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "2.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "strip-bom": "3.0.0"
+ }
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "dev": true,
+ "requires": {
+ "execa": "0.7.0",
+ "lcid": "1.0.0",
+ "mem": "1.1.0"
+ }
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+ "dev": true,
+ "requires": {
+ "pify": "2.3.0"
+ }
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "2.0.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "2.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "dev": true,
+ "requires": {
+ "find-up": "2.1.0",
+ "read-pkg": "2.0.0"
+ }
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
"dev": true
},
"supports-color": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
- "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
"dev": true,
"requires": {
- "has-flag": "1.0.0"
+ "has-flag": "2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
+ "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
+ "dev": true,
+ "requires": {
+ "camelcase": "4.1.0",
+ "cliui": "3.2.0",
+ "decamelize": "1.2.0",
+ "get-caller-file": "1.0.2",
+ "os-locale": "2.1.0",
+ "read-pkg-up": "2.0.0",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "2.1.1",
+ "which-module": "2.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "7.0.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+ "dev": true,
+ "requires": {
+ "camelcase": "4.1.0"
}
}
}
},
- "webpack-core": {
- "version": "0.6.9",
- "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz",
- "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=",
+ "webpack-dev-middleware": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz",
+ "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==",
"dev": true,
"requires": {
- "source-list-map": "0.1.8",
- "source-map": "0.4.4"
+ "memory-fs": "0.4.1",
+ "mime": "1.6.0",
+ "path-is-absolute": "1.0.1",
+ "range-parser": "1.2.0",
+ "time-stamp": "2.0.0"
+ }
+ },
+ "webpack-dev-server": {
+ "version": "2.9.4",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.9.4.tgz",
+ "integrity": "sha512-thrqC0EQEoSjXeYgP6pUXcUCZ+LNrKsDPn+mItLnn5VyyNZOJKd06hUP5vqkYwL8nWWXsii0loSF9NHNccT6ow==",
+ "dev": true,
+ "requires": {
+ "ansi-html": "0.0.7",
+ "array-includes": "3.0.3",
+ "bonjour": "3.5.0",
+ "chokidar": "1.7.0",
+ "compression": "1.7.1",
+ "connect-history-api-fallback": "1.5.0",
+ "debug": "3.1.0",
+ "del": "3.0.0",
+ "express": "4.16.2",
+ "html-entities": "1.2.1",
+ "http-proxy-middleware": "0.17.4",
+ "import-local": "0.1.1",
+ "internal-ip": "1.2.0",
+ "ip": "1.1.5",
+ "killable": "1.0.0",
+ "loglevel": "1.6.0",
+ "opn": "5.1.0",
+ "portfinder": "1.0.13",
+ "selfsigned": "1.10.1",
+ "serve-index": "1.9.1",
+ "sockjs": "0.3.18",
+ "sockjs-client": "1.1.4",
+ "spdy": "3.4.7",
+ "strip-ansi": "3.0.1",
+ "supports-color": "4.5.0",
+ "webpack-dev-middleware": "1.12.2",
+ "yargs": "6.6.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "del": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz",
+ "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=",
+ "dev": true,
+ "requires": {
+ "globby": "6.1.0",
+ "is-path-cwd": "1.0.0",
+ "is-path-in-cwd": "1.0.0",
+ "p-map": "1.2.0",
+ "pify": "3.0.0",
+ "rimraf": "2.6.2"
+ }
+ },
+ "globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+ "dev": true,
+ "requires": {
+ "array-union": "1.0.2",
+ "glob": "7.1.2",
+ "object-assign": "4.1.1",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ },
+ "yargs": {
+ "version": "6.6.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
+ "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
+ "dev": true,
+ "requires": {
+ "camelcase": "3.0.0",
+ "cliui": "3.2.0",
+ "decamelize": "1.2.0",
+ "get-caller-file": "1.0.2",
+ "os-locale": "1.4.0",
+ "read-pkg-up": "1.0.1",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "1.0.2",
+ "which-module": "1.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "4.2.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
+ "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
+ "dev": true,
+ "requires": {
+ "camelcase": "3.0.0"
+ }
+ }
+ }
+ },
+ "webpack-manifest-plugin": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-1.3.2.tgz",
+ "integrity": "sha512-MX60Bv2G83Zks9pi3oLOmRgnPAnwrlMn+lftMrWBm199VQjk46/xgzBi9lPfpZldw2+EI2S+OevuLIaDuxCWRw==",
+ "dev": true,
+ "requires": {
+ "fs-extra": "0.30.0",
+ "lodash": "4.17.4"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
+ "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "jsonfile": "2.4.0",
+ "klaw": "1.3.1",
+ "path-is-absolute": "1.0.1",
+ "rimraf": "2.6.2"
+ }
+ },
+ "jsonfile": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11"
+ }
+ }
+ }
+ },
+ "webpack-sources": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz",
+ "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==",
+ "dev": true,
+ "requires": {
+ "source-list-map": "2.0.0",
+ "source-map": "0.6.1"
},
"dependencies": {
"source-map": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
- "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
- "dev": true,
- "requires": {
- "amdefine": "1.0.1"
- }
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
}
}
},
- "weinre": {
- "version": "2.0.0-pre-I0Z7U9OV",
- "resolved": "https://registry.npmjs.org/weinre/-/weinre-2.0.0-pre-I0Z7U9OV.tgz",
- "integrity": "sha1-/viqIjkh97QLu71MPtQwL2/QqBM=",
+ "websocket-driver": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
+ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
"dev": true,
"requires": {
- "express": "2.5.11",
- "nopt": "3.0.6",
- "underscore": "1.7.0"
+ "http-parser-js": "0.4.9",
+ "websocket-extensions": "0.1.3"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
+ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
+ "dev": true
+ },
+ "whatwg-encoding": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz",
+ "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==",
+ "dev": true,
+ "requires": {
+ "iconv-lite": "0.4.19"
}
},
"whatwg-fetch": {
@@ -7997,6 +13121,24 @@
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz",
"integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ="
},
+ "whatwg-url": {
+ "version": "4.8.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz",
+ "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=",
+ "dev": true,
+ "requires": {
+ "tr46": "0.0.3",
+ "webidl-conversions": "3.0.1"
+ },
+ "dependencies": {
+ "webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=",
+ "dev": true
+ }
+ }
+ },
"whet.extend": {
"version": "0.9.9",
"resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
@@ -8004,9 +13146,9 @@
"dev": true
},
"which": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
- "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
+ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
"dev": true,
"requires": {
"isexe": "2.0.0"
@@ -8018,6 +13160,15 @@
"integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
"dev": true
},
+ "wide-align": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz",
+ "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==",
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2"
+ }
+ },
"widest-line": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz",
@@ -8028,17 +13179,27 @@
}
},
"window-size": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
- "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=",
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
"dev": true
},
"wordwrap": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
- "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
"dev": true
},
+ "worker-farm": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.2.tgz",
+ "integrity": "sha512-XxiQ9kZN5n6mmnW+mFJ+wXjNNI/Nx4DIdaAKLX1Bn6LYBWlN/zaBhu34DQYPZ1AJobQuu67S2OfDdNSVULvXkQ==",
+ "dev": true,
+ "requires": {
+ "errno": "0.1.6",
+ "xtend": "4.0.1"
+ }
+ },
"wrap-ansi": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
@@ -8055,6 +13216,15 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
+ "write": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
+ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "0.5.1"
+ }
+ },
"write-file-atomic": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz",
@@ -8066,46 +13236,6 @@
"slide": "1.1.6"
}
},
- "write-json-file": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-1.2.0.tgz",
- "integrity": "sha1-LV3+lqvDyIkFfJOXGqQAXvtUgTQ=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "mkdirp": "0.5.1",
- "object-assign": "4.1.1",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1",
- "sort-keys": "1.1.2",
- "write-file-atomic": "1.3.4"
- }
- },
- "write-pkg": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-1.0.0.tgz",
- "integrity": "sha1-rriqnU14jh2JPfsIVJaLVDqRn1c=",
- "dev": true,
- "requires": {
- "write-json-file": "1.2.0"
- }
- },
- "ws": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.1.tgz",
- "integrity": "sha1-CC3bbGQehdS7RR8D1S8G6r2x8Bg=",
- "dev": true,
- "requires": {
- "options": "0.0.6",
- "ultron": "1.0.2"
- }
- },
- "wtf-8": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz",
- "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=",
- "dev": true
- },
"xdg-basedir": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz",
@@ -8115,10 +13245,16 @@
"os-homedir": "1.0.2"
}
},
- "xmlhttprequest-ssl": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz",
- "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=",
+ "xml-char-classes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz",
+ "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=",
+ "dev": true
+ },
+ "xml-name-validator": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
+ "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=",
"dev": true
},
"xtend": {
@@ -8140,9 +13276,9 @@
"dev": true
},
"yargs": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz",
- "integrity": "sha1-gW4ahm1VmMzzTlWW3c4i2S2kkNQ=",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
+ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
"dev": true,
"requires": {
"camelcase": "3.0.0",
@@ -8156,9 +13292,8 @@
"set-blocking": "2.0.0",
"string-width": "1.0.2",
"which-module": "1.0.0",
- "window-size": "0.2.0",
"y18n": "3.2.1",
- "yargs-parser": "4.2.1"
+ "yargs-parser": "5.0.0"
},
"dependencies": {
"camelcase": {
@@ -8166,19 +13301,13 @@
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
"integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
"dev": true
- },
- "window-size": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz",
- "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=",
- "dev": true
}
}
},
"yargs-parser": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
- "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
+ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
"dev": true,
"requires": {
"camelcase": "3.0.0"
@@ -8191,12 +13320,6 @@
"dev": true
}
}
- },
- "yeast": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
- "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
- "dev": true
}
}
}
diff --git a/package.json b/package.json
index 74b35e0..c03eeae 100644
--- a/package.json
+++ b/package.json
@@ -17,66 +17,56 @@
"url": "https://github.com/josdejong/jsoneditor.git"
},
"bugs": "https://github.com/josdejong/jsoneditor/issues",
- "scripts": {
- "start": "gulp watch",
- "build": "gulp",
- "flow": "flow; test $? -eq 0 -o $? -eq 2",
- "test": "ava --verbose",
- "test-eson": "ava --verbose test/eson.test.js",
- "test-patch": "ava --verbose test/patchEson.test.js",
- "test-actions": "ava --verbose test/actions.test.js",
- "watch:test": "ava --verbose --watch"
- },
+ "private": false,
"dependencies": {
- "ajv": "4.10.4",
- "brace": "0.9.1",
- "console.table": "0.9.1",
+ "ajv": "5.5.2",
+ "brace": "0.11.0",
"javascript-natural-sort": "0.7.1",
"lodash": "4.17.4",
- "prop-types": "15.5.10",
- "react-hammerjs": "0.5.0"
+ "prop-types": "15.6.0",
+ "react-hammerjs": "1.0.1"
+ },
+ "peerDependencies": {
+ "react": "^16.0.0",
+ "react-dom": "^16.0.0"
},
"devDependencies": {
- "ava": "0.17.0",
- "babel-core": "6.23.1",
- "babel-loader": "6.2.10",
- "babel-plugin-transform-flow-strip-types": "6.21.0",
- "babel-preset-es2015": "6.24.1",
- "babel-preset-stage-2": "6.18.0",
- "babel-preset-stage-3": "6.17.0",
- "browser-sync": "2.18.6",
- "css-loader": "0.26.1",
- "deep-map": "1.5.0",
- "flow-bin": "0.37.4",
- "graceful-fs": "4.1.11",
- "gulp": "3.9.1",
- "gulp-babel": "6.1.2",
- "gulp-multi-process": "0.0.4",
- "gulp-shell": "0.5.2",
- "gulp-util": "3.0.8",
- "json-loader": "0.5.4",
- "less": "2.7.2",
- "less-loader": "2.2.3",
- "mkdirp": "0.5.1",
- "preact": "7.1.0",
- "preact-compat": "3.9.4",
- "react": "15.4.1",
- "react-dom": "15.4.1",
- "style-loader": "0.13.1",
- "svg-url-loader": "1.1.0",
- "webpack": "1.14.0"
+ "babel-cli": "6.26.0",
+ "babel-plugin-external-helpers": "6.22.0",
+ "babel-plugin-transform-class-properties": "6.24.1",
+ "babel-plugin-transform-object-rest-spread": "6.26.0",
+ "babel-plugin-transform-react-jsx": "6.24.1",
+ "babel-preset-env": "1.6.1",
+ "console.table": "0.9.1",
+ "cpy-cli": "1.0.1",
+ "css-loader": "0.28.7",
+ "node-sass-chokidar": "0.0.3",
+ "npm-run-all": "4.1.2",
+ "preact": "8.2.7",
+ "preact-compat": "3.17.0",
+ "react": "16.2.0",
+ "react-dom": "16.2.0",
+ "react-scripts": "1.0.17",
+ "rollup": "0.53.0",
+ "rollup-plugin-babel": "3.0.3",
+ "rollup-plugin-commonjs": "8.2.6",
+ "rollup-plugin-node-resolve": "3.0.0",
+ "rollup-plugin-postcss": "0.5.5",
+ "svg-url-loader": "2.3.1",
+ "webpack": "3.8.1"
},
- "ava": {
- "files": [
- "test/**/*.test.js"
- ],
- "source": [
- "./src/**/*"
- ],
- "require": [
- "babel-register"
- ],
- "concurrency": 4,
- "babel": "inherit"
+ "scripts": {
+ "start": "npm-run-all -p watch-css start-js",
+ "build-css": "node-sass-chokidar src/ -o src/",
+ "watch-css": "npm run build-css && node-sass-chokidar src/ -o src/ --watch --recursive",
+ "start-js": "react-scripts start",
+ "build-js": "react-scripts build",
+ "copy-css-lib": "cpy '**/*.css' '**/*.svg' '../../lib' --cwd='src/jsoneditor' --parents",
+ "build-js-lib": "babel src/jsoneditor --out-dir lib --ignore spec.js,test.js",
+ "build-js-bundle": "webpack --config webpack.config.js",
+ "build-js-minimalist": "webpack --config webpack.config.minimalist.js",
+ "build": "npm-run-all build-css copy-css-lib build-js-lib build-js-bundle build-js-minimalist",
+ "test": "react-scripts test --env=jsdom",
+ "eject": "react-scripts eject"
}
}
diff --git a/favicon.ico b/public/favicon.ico
similarity index 100%
rename from favicon.ico
rename to public/favicon.ico
diff --git a/public/index.html b/public/index.html
new file mode 100644
index 0000000..9fc77cb
--- /dev/null
+++ b/public/index.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+ JSONEditor demo
+
+
+
+ You need to enable JavaScript to run this app.
+
+
+
+
+
diff --git a/public/manifest.json b/public/manifest.json
new file mode 100644
index 0000000..1273e74
--- /dev/null
+++ b/public/manifest.json
@@ -0,0 +1,15 @@
+{
+ "short_name": "JSONEditor",
+ "name": "JSONEditor demo",
+ "icons": [
+ {
+ "src": "favicon.ico",
+ "sizes": "64x64 32x32 24x24 16x16",
+ "type": "image/x-icon"
+ }
+ ],
+ "start_url": "./index.html",
+ "display": "standalone",
+ "theme_color": "#3883fa",
+ "background_color": "#ffffff"
+}
diff --git a/react.js b/react.js
deleted file mode 100644
index 098e7ad..0000000
--- a/react.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./lib/components/JSONEditor')
diff --git a/src/assets/ace/theme-jsoneditor.js b/src/assets/ace/theme-jsoneditor.js
deleted file mode 100644
index 6cec3a6..0000000
--- a/src/assets/ace/theme-jsoneditor.js
+++ /dev/null
@@ -1,144 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Distributed under the BSD license:
- *
- * Copyright (c) 2010, Ajax.org B.V.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Ajax.org B.V. nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***** END LICENSE BLOCK ***** */
-
-ace.define('ace/theme/jsoneditor', ['require', 'exports', 'module', 'ace/lib/dom'], function(acequire, exports, module) {
-
-exports.isDark = false;
-exports.cssClass = "ace-jsoneditor";
-exports.cssText = ".ace-jsoneditor .ace_gutter {\
-background: #ebebeb;\
-color: #333\
-}\
-\
-.ace-jsoneditor.ace_editor {\
-font-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif;\
-line-height: 1.3;\
-}\
-.ace-jsoneditor .ace_print-margin {\
-width: 1px;\
-background: #e8e8e8\
-}\
-.ace-jsoneditor .ace_scroller {\
-background-color: #FFFFFF\
-}\
-.ace-jsoneditor .ace_text-layer {\
-color: gray\
-}\
-.ace-jsoneditor .ace_variable {\
-color: #1a1a1a\
-}\
-.ace-jsoneditor .ace_cursor {\
-border-left: 2px solid #000000\
-}\
-.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\
-border-left: 0px;\
-border-bottom: 1px solid #000000\
-}\
-.ace-jsoneditor .ace_marker-layer .ace_selection {\
-background: lightgray\
-}\
-.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\
-box-shadow: 0 0 3px 0px #FFFFFF;\
-border-radius: 2px\
-}\
-.ace-jsoneditor .ace_marker-layer .ace_step {\
-background: rgb(255, 255, 0)\
-}\
-.ace-jsoneditor .ace_marker-layer .ace_bracket {\
-margin: -1px 0 0 -1px;\
-border: 1px solid #BFBFBF\
-}\
-.ace-jsoneditor .ace_marker-layer .ace_active-line {\
-background: #FFFBD1\
-}\
-.ace-jsoneditor .ace_gutter-active-line {\
-background-color : #dcdcdc\
-}\
-.ace-jsoneditor .ace_marker-layer .ace_selected-word {\
-border: 1px solid lightgray\
-}\
-.ace-jsoneditor .ace_invisible {\
-color: #BFBFBF\
-}\
-.ace-jsoneditor .ace_keyword,\
-.ace-jsoneditor .ace_meta,\
-.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\
-color: #AF956F\
-}\
-.ace-jsoneditor .ace_keyword.ace_operator {\
-color: #484848\
-}\
-.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\
-color: #96DC5F\
-}\
-.ace-jsoneditor .ace_constant.ace_language {\
-color: darkorange\
-}\
-.ace-jsoneditor .ace_constant.ace_numeric {\
-color: red\
-}\
-.ace-jsoneditor .ace_constant.ace_character.ace_entity {\
-color: #BF78CC\
-}\
-.ace-jsoneditor .ace_invalid {\
-color: #FFFFFF;\
-background-color: #FF002A;\
-}\
-.ace-jsoneditor .ace_fold {\
-background-color: #AF956F;\
-border-color: #000000\
-}\
-.ace-jsoneditor .ace_storage,\
-.ace-jsoneditor .ace_support.ace_class,\
-.ace-jsoneditor .ace_support.ace_function,\
-.ace-jsoneditor .ace_support.ace_other,\
-.ace-jsoneditor .ace_support.ace_type {\
-color: #C52727\
-}\
-.ace-jsoneditor .ace_string {\
-color: green\
-}\
-.ace-jsoneditor .ace_comment {\
-color: #BCC8BA\
-}\
-.ace-jsoneditor .ace_entity.ace_name.ace_tag,\
-.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\
-color: #606060\
-}\
-.ace-jsoneditor .ace_markup.ace_underline {\
-text-decoration: underline\
-}\
-.ace-jsoneditor .ace_indent-guide {\
-background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y\
-}";
-
-var dom = acequire("../lib/dom");
-dom.importCssString(exports.cssText, exports.cssClass);
-});
diff --git a/src/demo/Demo.css b/src/demo/Demo.css
new file mode 100644
index 0000000..aaf992d
--- /dev/null
+++ b/src/demo/Demo.css
@@ -0,0 +1,13 @@
+body, input, select {
+ font-family: sans-serif;
+ font-size: 11pt; }
+
+.demo .menu {
+ margin: 20px 0; }
+ .demo .menu button, .demo .menu label {
+ margin-right: 10px; }
+
+.demo .contents {
+ height: 400px;
+ width: 100%;
+ max-width: 800px; }
diff --git a/src/demo/Demo.js b/src/demo/Demo.js
new file mode 100644
index 0000000..8d9bb69
--- /dev/null
+++ b/src/demo/Demo.js
@@ -0,0 +1,191 @@
+import React, { Component } from 'react'
+import JSONEditor from '../jsoneditor/index.react'
+import { setIn } from '../jsoneditor/utils/immutabilityHelpers'
+import { largeJson } from './resources/largeJson'
+
+import './Demo.css'
+
+const schema = {
+ "title": "Example Schema",
+ "type": "object",
+ "properties": {
+ "firstName": {
+ "type": "string"
+ },
+ "lastName": {
+ "type": "string"
+ },
+ "gender": {
+ "enum": ["male", "female"]
+ },
+ "age": {
+ "description": "Age in years",
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": ["firstName", "lastName"]
+}
+
+const json = {
+ 'array': [1, 2, 3],
+ 'emptyArray': [],
+ 'emptyObject': {},
+ 'firstName': null,
+ 'boolean': true,
+ 'null': null,
+ 'number': 123,
+ 'object': {'a': 'b', 'c': 'd', 'e': [{"first": true}, {"second": true}]},
+ 'string': 'Hello World',
+ 'unicode': 'A unicode character: \u260E',
+ 'url': 'http://jsoneditoronline.org'
+}
+
+function expandAll (path) {
+ return true
+}
+
+class App extends Component {
+ constructor (props) {
+ super(props)
+
+ this.state = {
+ logging: false,
+
+ options: {
+ json,
+ schema: null,
+
+ name: 'myObject',
+ onPatch: this.handlePatch,
+ onPatchText: this.handlePatchText,
+ onChange: this.handleChange,
+ onChangeText: this.handleChangeText,
+ onChangeMode: this.handleChangeMode,
+ onError: this.handleError,
+ mode: 'tree',
+ modes: ['text', 'code', 'tree', 'form', 'view'],
+ keyBindings: {
+ compact: ['Ctrl+\\', 'Command+\\', 'Ctrl+Alt+1', 'Command+Option+1'],
+ format: ['Ctrl+Shift+\\', 'Command+Shift+\\', 'Ctrl+Alt+2', 'Command+Option+2'],
+ duplicate: ['Ctrl+D', 'Ctrl+Shift+D', 'Command+D', 'Command+Shift+D']
+ },
+ indentation: 4,
+ escapeUnicode: true,
+ history: true,
+ search: true,
+
+ expand: expandAll
+ }
+ }
+
+ }
+ render() {
+ return
+ }
+
+ handleSetJson = () => {
+ this.setState({
+ options: setIn(this.state.options, ['json'], largeJson)
+ })
+ }
+
+ handleGetJson = () => {
+ // FIXME: get updating json in the state working
+ const json = this.state.options.json
+ alert(JSON.stringify(json, null, 2))
+ }
+
+ handleSetMode = (event) => {
+ const mode = event.target.value
+ this.setState({
+ options: setIn(this.state.options, ['mode'], mode)
+ })
+ }
+
+ handleToggleLogging = (event) => {
+ const logging = event.target.checked
+ this.setState({ logging })
+ }
+
+ handleToggleJSONSchema = (event) => {
+ const s = event.target.checked ? schema : null
+ this.setState({
+ options: setIn(this.state.options, ['schema'], s)
+ })
+ }
+
+ handleChange = (json) => {
+ this.log('onChange json=', json)
+ // FIXME: update the json in the state (after JSONEditor neatly updates it instead of generating new json every time
+ // this.setState({
+ // options: setIn(this.state.options, ['json'], json)
+ // })
+ }
+
+ handleChangeText = (text) => {
+ this.log('onChangeText', text)
+ }
+
+ handlePatch = (patch, revert) => {
+ this.log('onPatch patch=', patch, ', revert=', revert)
+ window.patch = patch
+ window.revert = revert
+ }
+
+ handlePatchText = (patch, revert) => {
+ // FIXME: implement onPatchText
+ this.log('onPatchText patch=', patch, ', revert=', revert)
+ }
+
+ handleChangeMode = (mode, prevMode) => {
+ this.log('switched mode from', prevMode, 'to', mode)
+
+ this.setState({
+ options: setIn(this.state.options, ['mode'], mode)
+ })
+ }
+
+ handleError = (err) => {
+ console.error(err)
+ alert(err)
+ }
+
+ log (...args) {
+ if (this.state.logging) {
+ console.log(...args)
+ }
+ }
+}
+
+export default App
diff --git a/src/demo/Demo.scss b/src/demo/Demo.scss
new file mode 100644
index 0000000..4a2388b
--- /dev/null
+++ b/src/demo/Demo.scss
@@ -0,0 +1,22 @@
+
+body, input, select {
+ font-family: sans-serif;
+ font-size: 11pt;
+}
+
+.demo {
+ .menu {
+ margin: 20px 0;
+
+ button, label {
+ margin-right: 10px;
+ }
+ }
+
+ .contents {
+ height: 400px;
+ width: 100%;
+ max-width : 800px;
+ }
+}
+
diff --git a/src/demo/Demo.test.js b/src/demo/Demo.test.js
new file mode 100644
index 0000000..f588a62
--- /dev/null
+++ b/src/demo/Demo.test.js
@@ -0,0 +1,10 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import Demo from './Demo';
+
+
+
+test('renders without crashing', () => {
+ const div = document.createElement('div');
+ ReactDOM.render( , div);
+});
diff --git a/src/resources/largeJson.js b/src/demo/resources/largeJson.js
similarity index 99%
rename from src/resources/largeJson.js
rename to src/demo/resources/largeJson.js
index 9124c0f..144681b 100644
--- a/src/resources/largeJson.js
+++ b/src/demo/resources/largeJson.js
@@ -1,4 +1,4 @@
-const largeJson = {
+export const largeJson = {
"version": "1.0",
"encoding": "UTF-8",
"feed": {
diff --git a/src/develop.html b/src/demo/vanilla_demo.html
similarity index 95%
rename from src/develop.html
rename to src/demo/vanilla_demo.html
index 55f8855..fb9b1c0 100644
--- a/src/develop.html
+++ b/src/demo/vanilla_demo.html
@@ -2,12 +2,12 @@
- Develop JSONEditor
+ JSONEditor vanilla demo
-
+
@@ -16,7 +16,7 @@
font-family: sans-serif;
font-size: 11pt;
}
- #container {
+ #editor {
height: 400px;
width: 100%;
max-width : 800px;
@@ -41,7 +41,7 @@
- Log events
+ Log events
@@ -53,7 +53,7 @@
const error = console.error
return function(exception) {
- if ((exception + '').indexOf('Warning: A component is `contentEditable`') != 0) {
+ if ((exception + '').indexOf('Warning: A component is `contentEditable`') !== 0) {
error.apply(console, arguments)
}
}
diff --git a/src/flow/LessModule.js b/src/flow/LessModule.js
deleted file mode 100644
index 37d49d3..0000000
--- a/src/flow/LessModule.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// @flow
-declare export default string
diff --git a/src/index.js b/src/index.js
index 4ca6164..37283c1 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,277 +1,6 @@
-import React, { createElement as h, Component } from 'react'
-import ReactDOM, { render, unmountComponentAtNode} from 'react-dom'
-import JSONEditor from './components/JSONEditor'
-import CodeMode from './components/CodeMode'
-import TextMode from './components/TextMode'
-import TreeMode from './components/TreeMode'
-import { compileJSONPointer, parseJSONPointer } from './eson'
+import React from 'react';
+import ReactDOM from 'react-dom';
-import '!style!css!less!./jsoneditor.less'
+import Demo from './demo/Demo';
-const modes = {
- code: CodeMode,
- form: TreeMode,
- text: TextMode,
- tree: TreeMode,
- view: TreeMode
-}
-
-/**
- * Create a new json editor
- * @param {HTMLElement} container
- * @param {Options} options
- * @return {Object}
- * @constructor
- */
-function jsoneditor (container, options = {}) {
- if (arguments.length > 2) {
- throw new Error ('Passing JSON via the constructor has been deprecated. ' +
- 'Please pass JSON via editor.set(json).')
- }
-
- const editor = {
- isJSONEditor: true,
-
- _container: container,
- _options: options,
- _schema: null,
- _modes: modes,
- _mode: null,
- _component: null
- }
-
- /**
- * Set JSON object in editor
- * @param {Object | Array | string | number | boolean | null} json JSON data
- * @param {SetOptions} [options]
- */
- editor.set = function (json, options = {}) {
- // TODO: remove options from editor.set, move them to global options instead
- editor._component.set(json, options)
- }
-
- /**
- * Get JSON from the editor
- * @returns {Object | Array | string | number | boolean | null} json
- */
- editor.get = function () {
- return editor._component.get()
- }
-
- /**
- * Set a string containing a JSON document
- * @param {string} text
- */
- editor.setText = function (text) {
- editor._component.setText(text)
- }
-
- /**
- * Get the JSON document as text
- * @return {string} text
- */
- editor.getText = function () {
- return editor._component.getText()
- }
-
- /**
- * Format the json.
- * Only applicable for mode 'text' and 'code' (in other modes nothing will
- * happen)
- */
- editor.format = function () {
- const formatted = TextMode.format(editor._component.getText(), TextMode.getIndentation(this.props))
- editor._component.setText(formatted)
-
- // TODO: test whether this doesn't destroy the current state
- }
-
- /**
- * Compact the json.
- * Only applicable for mode 'text' and 'code' (in other modes nothing will
- * happen)
- */
- editor.compact = function () {
- const compacted = TextMode.compact(editor._component.getText())
- editor._component.setText(compacted)
-
- // TODO: test whether this doesn't destroy the current state
- }
-
- /**
- * Set a JSON schema for validation of the JSON object.
- * To remove the schema, call JSONEditor.setSchema(null)
- * @param {Object | null} schema
- */
- editor.setSchema = function (schema) {
- editor._schema = schema || null
- editor._component.setSchema(schema)
- }
-
- /**
- * Expand one or multiple objects or arrays.
- *
- * Example usage:
- *
- * // expand one item at a specific path
- * editor.expand(['foo', 1, 'bar'])
- *
- * // expand all items nested at a maximum depth of 2
- * editor.expand(function (path) {
- * return path.length <= 2
- * })
- *
- * @param {Path | function (path: Path) : boolean} callback
- */
- editor.expand = function (callback) {
- editor._component.expand(callback)
- }
-
- /**
- * Collapse one or multiple objects or arrays
- *
- * Example usage:
- *
- * // collapse one item at a specific path
- * editor.collapse(['foo', 1, 'bar'])
- *
- * // collapse all items nested deeper than 2
- * editor.collapse(function (path) {
- * return path.length > 2
- * })
- *
- * @param {Path | function (path: Path) : boolean} callback
- */
- editor.collapse = function (callback) {
- editor._component.collapse(callback)
- }
-
- /**
- * Apply a JSONPatch to the current JSON document
- * @param {Array} actions JSONPatch actions
- * @return {Array} Returns a JSONPatch to revert the applied patch
- */
- editor.patch = function (actions) {
- return editor._component.patch(actions)
- }
-
- /**
- * Change the mode of the editor
- * @param {'tree' | 'text'} mode
- */
- editor.setMode = function (mode) {
- // TODO: strongly simplify .setMode, no error handling or logic here
-
- if (mode === editor._mode) {
- // mode stays the same. do nothing
- return
- }
-
- let success = false
- let initialChildCount = editor._container.children.length
- let component = null
- try {
- // find the constructor for the selected mode
- const constructor = editor._modes[mode]
- if (!constructor) {
- throw new Error('Unknown mode "' + mode + '". ' +
- 'Choose from: ' + Object.keys(modes).join(', '))
- }
-
- function handleChangeMode (mode) {
- // we execute editor.setMode on the next tick, after the click event
- // has been finished. This is a workaround for preact which does not
- // neatly replace a rendered app whilst the event is still being handled.
- setTimeout(() => {
- const prevMode = editor._mode
-
- editor.setMode(mode)
-
- if (editor._options.onChangeMode) {
- editor._options.onChangeMode(mode, prevMode)
- }
- })
- }
-
- function handleError (err) {
- if (editor._options && editor._options.onError) {
- editor._options.onError(err)
- }
- else {
- console.error(err)
- }
- }
-
- // create new component
- component = render(
- h(constructor, {
- ...options,
- mode,
- onChangeMode: handleChangeMode,
- onError: handleError
- }),
- editor._container)
-
- // apply JSON schema (if any)
- try {
- component.setSchema(editor._schema)
- }
- catch (err) {
- handleError(err)
- }
-
- // set JSON (this can throw an error)
- const text = editor._component ? editor._component.getText() : '{}'
- component.setText(text)
-
- // when setText didn't fail, we will reach this point
- success = true
- }
- catch (err) {
- console.error(err)
- }
- finally {
- if (success) {
- editor._mode = mode
- editor._component = component
- }
- else {
- // TODO: fall back to text mode when loading code mode failed?
-
- // remove the just created component if an error occurred during construction
- // (for example when construction or setText failed)
- const childCount = editor._container.children.length
- if (childCount !== initialChildCount) {
- editor._container.removeChild(editor._container.lastChild)
- }
- }
- }
- }
-
- /**
- * Remove the editor from the DOM and clean up workers
- */
- editor.destroy = function () {
- unmountComponentAtNode(editor._container)
- }
-
- const mode = options && options.mode || (options.modes && options.modes[0]) || 'tree';
- editor.setMode(mode)
-
- return editor
-}
-
-// expose util functions
-jsoneditor.utils = {
- compileJSONPointer,
- parseJSONPointer
-}
-
-// expose React component
-jsoneditor.JSONEditor = JSONEditor
-
-// expose React itself
-jsoneditor.React = React
-jsoneditor.ReactDOM = ReactDOM
-
-module.exports = jsoneditor
+ReactDOM.render( , document.getElementById('root'));
diff --git a/src/actions.js b/src/jsoneditor/actions.js
similarity index 97%
rename from src/actions.js
rename to src/jsoneditor/actions.js
index 84ca32e..4657c76 100644
--- a/src/actions.js
+++ b/src/jsoneditor/actions.js
@@ -6,10 +6,10 @@ import {
compileJSONPointer, esonToJson, findNextProp,
pathsFromSelection, findRootPath, findSelectionIndices
} from './eson'
-import { cloneWithSymbols, getIn, setIn } from './utils/immutabilityHelpers'
+import { getIn } from './utils/immutabilityHelpers'
import { findUniqueName } from './utils/stringUtils'
import { isObject, stringConvert } from './utils/typeUtils'
-import { compareAsc, compareDesc, strictShallowEqual } from './utils/arrayUtils'
+import { compareAsc, compareDesc } from './utils/arrayUtils'
/**
@@ -138,7 +138,7 @@ export function duplicate (eson, selection) {
*
* @param {ESON} eson
* @param {Path} path
- * @param {Array.<{name?: string, value: JSONType, type?: ESONType}>} values
+ * @param {Array.<{name?: string, value: JSON, type?: ESONType}>} values
* @return {Array}
*/
export function insertBefore (eson, path, values) { // TODO: find a better name and define datastructure for values
@@ -146,7 +146,7 @@ export function insertBefore (eson, path, values) { // TODO: find a better name
const parent = getIn(eson, parentPath)
if (parent[META].type === 'Array') {
- const startIndex = parseInt(last(path))
+ const startIndex = parseInt(last(path), 10)
return values.map((entry, offset) => ({
op: 'add',
path: compileJSONPointer(parentPath.concat(startIndex + offset)),
diff --git a/src/jsoneditor/actions.test.js b/src/jsoneditor/actions.test.js
new file mode 100644
index 0000000..f82cfe2
--- /dev/null
+++ b/src/jsoneditor/actions.test.js
@@ -0,0 +1,81 @@
+'use strict'
+
+import { sort } from './actions'
+import { assertDeepEqualEson } from './utils/assertDeepEqualEson'
+import {esonToJson, expandOne, jsonToEson, META} from './eson'
+import {patchEson} from './patchEson'
+
+// TODO: test changeValue
+// TODO: test changeProperty
+// TODO: test changeType (or cleanup the function)
+// TODO: test duplicate
+// TODO: test insertBefore
+// TODO: test replace
+// TODO: test append
+// TODO: test remove
+// TODO: test removeAll
+
+it('sort root Array', () => {
+ const eson = jsonToEson([1,3,2])
+
+ assertDeepEqualEson(patchEson(eson, sort(eson, [])).data, jsonToEson([1,2,3]))
+ assertDeepEqualEson(patchEson(eson, sort(eson, [], 'asc')).data, jsonToEson([1,2,3]))
+ assertDeepEqualEson(patchEson(eson, sort(eson, [], 'desc')).data, jsonToEson([3,2,1]))
+})
+
+it('sort nested Array', () => {
+ const eson = jsonToEson({arr: [4,1,8,5,3,9,2,7,6]})
+ const actual = patchEson(eson, sort(eson, ['arr'])).data
+ const expected = jsonToEson({arr: [1,2,3,4,5,6,7,8,9]})
+ assertDeepEqualEson(actual, expected)
+})
+
+it('sort nested Array reverse order', () => {
+ // no order provided -> order ascending, but if nothing changes, order descending
+ const eson = jsonToEson({arr: [1,2,3,4,5,6,7,8,9]})
+ const actual = patchEson(eson, sort(eson, ['arr'])).data
+ const expected = jsonToEson({arr: [9,8,7,6,5,4,3,2,1]})
+ assertDeepEqualEson(actual, expected)
+
+ // id's and META should be the same
+ expect(actual.arr[META].id).toEqual(eson.arr[META].id)
+ expect(actual.arr[7][META].id).toEqual(eson.arr[1][META].id)
+})
+
+
+it('sort root Object', () => {
+ const eson = jsonToEson({c: 2, b: 3, a:4})
+
+ expect(patchEson(eson, sort(eson, [])).data[META].props).toEqual(['a', 'b', 'c'])
+ expect(patchEson(eson, sort(eson, [], 'asc')).data[META].props).toEqual(['a', 'b', 'c'])
+ expect(patchEson(eson, sort(eson, [], 'desc')).data[META].props).toEqual(['c', 'b', 'a'])
+})
+
+it('sort nested Object', () => {
+ const eson = jsonToEson({obj: {c: 2, b: 3, a:4}})
+ eson.obj[META].expanded = true
+ eson.obj.c[META].expanded = true
+
+ const actual = patchEson(eson, sort(eson, ['obj'])).data
+
+ // should keep META data
+ expect(actual.obj[META].props).toEqual(['a', 'b', 'c'])
+ expect(actual.obj[META].expanded).toEqual(true)
+ expect(actual.obj.c[META].expanded).toEqual(true)
+ expect(actual.obj[META].id).toEqual(eson.obj[META].id)
+ expect(actual.obj.a[META].id).toEqual(eson.obj.a[META].id)
+ expect(actual.obj.b[META].id).toEqual(eson.obj.b[META].id)
+ expect(actual.obj.c[META].id).toEqual(eson.obj.c[META].id)
+
+ // asc, desc
+ expect(patchEson(eson, sort(eson, ['obj'])).data.obj[META].props).toEqual(['a', 'b', 'c'])
+ expect(patchEson(eson, sort(eson, ['obj'], 'asc')).data.obj[META].props).toEqual(['a', 'b', 'c'])
+ expect(patchEson(eson, sort(eson, ['obj'], 'desc')).data.obj[META].props).toEqual(['c', 'b', 'a'])
+})
+
+it('sort nested Object (larger)', () => {
+ const eson = jsonToEson({obj: {h:1, c:1, e:1, d:1, g:1, b:1, a:1, f:1}})
+ const actual = patchEson(eson, sort(eson, ['obj'])).data
+
+ expect(actual.obj[META].props).toEqual(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'])
+})
diff --git a/src/assets/ace/index.js b/src/jsoneditor/assets/ace/index.js
similarity index 100%
rename from src/assets/ace/index.js
rename to src/jsoneditor/assets/ace/index.js
diff --git a/src/jsoneditor/assets/ace/theme-jsoneditor.js b/src/jsoneditor/assets/ace/theme-jsoneditor.js
new file mode 100644
index 0000000..3eba3c0
--- /dev/null
+++ b/src/jsoneditor/assets/ace/theme-jsoneditor.js
@@ -0,0 +1,144 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Distributed under the BSD license:
+ *
+ * Copyright (c) 2010, Ajax.org B.V.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Ajax.org B.V. nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+window.ace.define('ace/theme/jsoneditor', ['require', 'exports', 'module', 'ace/lib/dom'], function(acequire, exports, module) {
+
+exports.isDark = false
+exports.cssClass = 'ace-jsoneditor'
+exports.cssText = `.ace-jsoneditor .ace_gutter {
+background: #ebebeb;
+color: #333
+}
+
+.ace-jsoneditor.ace_editor {
+font-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif;
+line-height: 1.3;
+}
+.ace-jsoneditor .ace_print-margin {
+width: 1px;
+background: #e8e8e8
+}
+.ace-jsoneditor .ace_scroller {
+background-color: #FFFFFF
+}
+.ace-jsoneditor .ace_text-layer {
+color: gray
+}
+.ace-jsoneditor .ace_variable {
+color: #1a1a1a
+}
+.ace-jsoneditor .ace_cursor {
+border-left: 2px solid #000000
+}
+.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {
+border-left: 0px;
+border-bottom: 1px solid #000000
+}
+.ace-jsoneditor .ace_marker-layer .ace_selection {
+background: lightgray
+}
+.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {
+box-shadow: 0 0 3px 0px #FFFFFF;
+border-radius: 2px
+}
+.ace-jsoneditor .ace_marker-layer .ace_step {
+background: rgb(255, 255, 0)
+}
+.ace-jsoneditor .ace_marker-layer .ace_bracket {
+margin: -1px 0 0 -1px;
+border: 1px solid #BFBFBF
+}
+.ace-jsoneditor .ace_marker-layer .ace_active-line {
+background: #FFFBD1
+}
+.ace-jsoneditor .ace_gutter-active-line {
+background-color : #dcdcdc
+}
+.ace-jsoneditor .ace_marker-layer .ace_selected-word {
+border: 1px solid lightgray
+}
+.ace-jsoneditor .ace_invisible {
+color: #BFBFBF
+}
+.ace-jsoneditor .ace_keyword,
+.ace-jsoneditor .ace_meta,
+.ace-jsoneditor .ace_support.ace_constant.ace_property-value {
+color: #AF956F
+}
+.ace-jsoneditor .ace_keyword.ace_operator {
+color: #484848
+}
+.ace-jsoneditor .ace_keyword.ace_other.ace_unit {
+color: #96DC5F
+}
+.ace-jsoneditor .ace_constant.ace_language {
+color: darkorange
+}
+.ace-jsoneditor .ace_constant.ace_numeric {
+color: red
+}
+.ace-jsoneditor .ace_constant.ace_character.ace_entity {
+color: #BF78CC
+}
+.ace-jsoneditor .ace_invalid {
+color: #FFFFFF;
+background-color: #FF002A;
+}
+.ace-jsoneditor .ace_fold {
+background-color: #AF956F;
+border-color: #000000
+}
+.ace-jsoneditor .ace_storage,
+.ace-jsoneditor .ace_support.ace_class,
+.ace-jsoneditor .ace_support.ace_function,
+.ace-jsoneditor .ace_support.ace_other,
+.ace-jsoneditor .ace_support.ace_type {
+color: #C52727
+}
+.ace-jsoneditor .ace_string {
+color: green
+}
+.ace-jsoneditor .ace_comment {
+color: #BCC8BA
+}
+.ace-jsoneditor .ace_entity.ace_name.ace_tag,
+.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {
+color: #606060
+}
+.ace-jsoneditor .ace_markup.ace_underline {
+text-decoration: underline
+}
+.ace-jsoneditor .ace_indent-guide {
+background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y
+}`
+
+var dom = acequire('../lib/dom')
+dom.importCssString(exports.cssText, exports.cssClass)
+})
diff --git a/src/assets/jsonlint/README.md b/src/jsoneditor/assets/jsonlint/README.md
similarity index 100%
rename from src/assets/jsonlint/README.md
rename to src/jsoneditor/assets/jsonlint/README.md
diff --git a/src/assets/jsonlint/jsonlint.js b/src/jsoneditor/assets/jsonlint/jsonlint.js
similarity index 81%
rename from src/assets/jsonlint/jsonlint.js
rename to src/jsoneditor/assets/jsonlint/jsonlint.js
index 36952fb..8d38c60 100644
--- a/src/assets/jsonlint/jsonlint.js
+++ b/src/jsoneditor/assets/jsonlint/jsonlint.js
@@ -13,7 +13,7 @@ var parser = (function(){
var $0 = $$.length - 1;
switch (yystate) {
case 1: // replace escaped characters with actual character
- this.$ = yytext.replace(/\\(\\|")/g, "$"+"1")
+ this.$ = yytext.replace(/\\(\\|")/g, "$1")
.replace(/\\n/g,'\n')
.replace(/\\r/g,'\r')
.replace(/\\t/g,'\t')
@@ -30,8 +30,8 @@ var parser = (function(){
break;
case 5:this.$ = false;
break;
- case 6:return this.$ = $$[$0-1];
- break;
+ case 6:
+ return this.$ = $$[$0-1];
case 13:this.$ = {};
break;
case 14:this.$ = $$[$0-1];
@@ -50,6 +50,8 @@ var parser = (function(){
break;
case 21:this.$ = $$[$0-2]; $$[$0-2].push($$[$0]);
break;
+ default:
+ break;
}
},
table: [{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],12:1,13:2,15:7,16:8,17:[1,14],23:[1,15]},{1:[3]},{14:[1,16]},{14:[2,7],18:[2,7],22:[2,7],24:[2,7]},{14:[2,8],18:[2,8],22:[2,8],24:[2,8]},{14:[2,9],18:[2,9],22:[2,9],24:[2,9]},{14:[2,10],18:[2,10],22:[2,10],24:[2,10]},{14:[2,11],18:[2,11],22:[2,11],24:[2,11]},{14:[2,12],18:[2,12],22:[2,12],24:[2,12]},{14:[2,3],18:[2,3],22:[2,3],24:[2,3]},{14:[2,4],18:[2,4],22:[2,4],24:[2,4]},{14:[2,5],18:[2,5],22:[2,5],24:[2,5]},{14:[2,1],18:[2,1],21:[2,1],22:[2,1],24:[2,1]},{14:[2,2],18:[2,2],22:[2,2],24:[2,2]},{3:20,4:[1,12],18:[1,17],19:18,20:19},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:23,15:7,16:8,17:[1,14],23:[1,15],24:[1,21],25:22},{1:[2,6]},{14:[2,13],18:[2,13],22:[2,13],24:[2,13]},{18:[1,24],22:[1,25]},{18:[2,16],22:[2,16]},{21:[1,26]},{14:[2,18],18:[2,18],22:[2,18],24:[2,18]},{22:[1,28],24:[1,27]},{22:[2,20],24:[2,20]},{14:[2,14],18:[2,14],22:[2,14],24:[2,14]},{3:20,4:[1,12],20:29},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:30,15:7,16:8,17:[1,14],23:[1,15]},{14:[2,19],18:[2,19],22:[2,19],24:[2,19]},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:31,15:7,16:8,17:[1,14],23:[1,15]},{18:[2,17],22:[2,17]},{18:[2,15],22:[2,15]},{22:[2,21],24:[2,21]}],
@@ -75,7 +77,7 @@ var parser = (function(){
this.lexer.setInput(input);
this.lexer.yy = this.yy;
this.yy.lexer = this.lexer;
- if (typeof this.lexer.yylloc == 'undefined')
+ if (typeof this.lexer.yylloc === 'undefined')
this.lexer.yylloc = {};
var yyloc = this.lexer.yylloc;
lstack.push(yyloc);
@@ -99,7 +101,7 @@ var parser = (function(){
return token;
}
- var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected;
+ var symbol, preErrorSymbol, state, action, r, yyval={},p,len,newState, expected;
while (true) {
// retreive state number from top of stack
state = stack[stack.length-1];
@@ -115,60 +117,60 @@ var parser = (function(){
}
// handle parse error
- _handle_error:
- if (typeof action === 'undefined' || !action.length || !action[0]) {
- if (!recovering) {
- // Report error
- expected = [];
- for (p in table[state]) if (this.terminals_[p] && p > 2) {
- expected.push("'"+this.terminals_[p]+"'");
- }
- var errStr = '';
- if (this.lexer.showPosition) {
- errStr = 'Parse error on line '+(yylineno+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + this.terminals_[symbol]+ "'";
- } else {
- errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " +
- (symbol == 1 /*EOF*/ ? "end of input" :
- ("'"+(this.terminals_[symbol] || symbol)+"'"));
- }
- this.parseError(errStr,
- {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});
- }
+ if (typeof action === 'undefined' || !action.length || !action[0]) {
- // just recovered from another error
- if (recovering == 3) {
- if (symbol == EOF) {
- throw new Error(errStr || 'Parsing halted.');
- }
-
- // discard current lookahead and grab another
- yyleng = this.lexer.yyleng;
- yytext = this.lexer.yytext;
- yylineno = this.lexer.yylineno;
- yyloc = this.lexer.yylloc;
- symbol = lex();
- }
-
- // try to recover from error
- while (1) {
- // check for error recovery rule in this state
- if ((TERROR.toString()) in table[state]) {
- break;
- }
- if (state == 0) {
- throw new Error(errStr || 'Parsing halted.');
- }
- popStack(1);
- state = stack[stack.length-1];
- }
-
- preErrorSymbol = symbol; // save the lookahead token
- symbol = TERROR; // insert generic error symbol as new lookahead
- state = stack[stack.length-1];
- action = table[state] && table[state][TERROR];
- recovering = 3; // allow 3 real symbols to be shifted before reporting a new error
+ if (!recovering) {
+ // Report error
+ expected = [];
+ for (p in table[state]) if (this.terminals_[p] && p > 2) {
+ expected.push("'"+this.terminals_[p]+"'");
}
+ var errStr = '';
+ if (this.lexer.showPosition) {
+ errStr = 'Parse error on line '+(yylineno+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + this.terminals_[symbol]+ "'";
+ } else {
+ errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " +
+ (symbol === 1 /*EOF*/ ? "end of input" :
+ ("'"+(this.terminals_[symbol] || symbol)+"'"));
+ }
+ this.parseError(errStr,
+ {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});
+ }
+
+ // just recovered from another error
+ if (recovering === 3) {
+ if (symbol === EOF) {
+ throw new Error(errStr || 'Parsing halted.');
+ }
+
+ // discard current lookahead and grab another
+ yyleng = this.lexer.yyleng;
+ yytext = this.lexer.yytext;
+ yylineno = this.lexer.yylineno;
+ yyloc = this.lexer.yylloc;
+ symbol = lex();
+ }
+
+ // try to recover from error
+ while (1) {
+ // check for error recovery rule in this state
+ if ((TERROR.toString()) in table[state]) {
+ break;
+ }
+ if (state === 0) {
+ throw new Error(errStr || 'Parsing halted.');
+ }
+ popStack(1);
+ state = stack[stack.length-1];
+ }
+
+ preErrorSymbol = symbol; // save the lookahead token
+ symbol = TERROR; // insert generic error symbol as new lookahead
+ state = stack[stack.length-1];
+ action = table[state] && table[state][TERROR];
+ recovering = 3; // allow 3 real symbols to be shifted before reporting a new error
+ }
// this shouldn't happen, unless resolve defaults are off
if (action[0] instanceof Array && action.length > 1) {
@@ -235,11 +237,11 @@ var parser = (function(){
case 3: // accept
return true;
+
+ default:
+ return true;
}
-
}
-
- return true;
}};
/* Jison generated lexer */
var lexer = (function(){
@@ -308,7 +310,6 @@ var parser = (function(){
match,
tempMatch,
index,
- col,
lines;
if (!this._more) {
this.yytext = '';
@@ -374,35 +375,22 @@ var parser = (function(){
lexer.options = {};
lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
- var YYSTATE=YY_START
switch($avoiding_name_collisions) {
- case 0:/* skip whitespace */
- break;
+ case 0: break; /* skip whitespace */
case 1:return 6
- break;
case 2:yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2); return 4
- break;
case 3:return 17
- break;
case 4:return 18
- break;
case 5:return 23
- break;
case 6:return 24
- break;
case 7:return 22
- break;
case 8:return 21
- break;
case 9:return 10
- break;
case 10:return 11
- break;
case 11:return 8
- break;
case 12:return 14
- break;
case 13:return 'INVALID'
+ default:
break;
}
};
diff --git a/src/assets/jump.js/README.md b/src/jsoneditor/assets/jump.js/README.md
similarity index 100%
rename from src/assets/jump.js/README.md
rename to src/jsoneditor/assets/jump.js/README.md
diff --git a/src/assets/jump.js/src/easing.js b/src/jsoneditor/assets/jump.js/src/easing.js
similarity index 100%
rename from src/assets/jump.js/src/easing.js
rename to src/jsoneditor/assets/jump.js/src/easing.js
diff --git a/src/assets/jump.js/src/jump.js b/src/jsoneditor/assets/jump.js/src/jump.js
similarity index 99%
rename from src/assets/jump.js/src/jump.js
rename to src/jsoneditor/assets/jump.js/src/jump.js
index 63b8e8f..8b3eb3c 100644
--- a/src/assets/jump.js/src/jump.js
+++ b/src/jsoneditor/assets/jump.js/src/jump.js
@@ -153,6 +153,8 @@ const jumper = () => {
element = document.querySelector(target)
stop = top(element)
break
+
+ default:
}
// resolve scroll distance, accounting for offset
@@ -169,6 +171,8 @@ const jumper = () => {
case 'function':
duration = options.duration(distance)
break
+
+ default:
}
// start the loop if we're not already scrolling
diff --git a/src/components/Ace.js b/src/jsoneditor/components/Ace.js
similarity index 91%
rename from src/components/Ace.js
rename to src/jsoneditor/components/Ace.js
index 1a25c4b..77e4855 100644
--- a/src/components/Ace.js
+++ b/src/jsoneditor/components/Ace.js
@@ -1,7 +1,6 @@
-// @flow
-
import { createElement as h, Component } from 'react'
import ace from '../assets/ace'
+import PropTypes from 'prop-types'
/**
* Usage:
@@ -14,6 +13,12 @@ import ace from '../assets/ace'
*
*/
export default class Ace extends Component {
+
+ static propTypes = {
+ value: PropTypes.string.isRequired,
+ indentation: PropTypes.number
+ }
+
aceEditor = null
settingValue = false // Used to prevent Ace from emitting onChange event whilst we're setting a value programmatically
@@ -73,14 +78,15 @@ export default class Ace extends Component {
}
}
- componentWillReceiveProps (nextProps: {value: string, indentation?: number}) {
+ componentWillReceiveProps (nextProps) {
if (this.aceEditor && nextProps.value !== this.aceEditor.getValue()) {
this.settingValue = true
this.aceEditor.setValue(nextProps.value, -1)
this.settingValue = false
}
- if (this.aceEditor && nextProps.indentation != undefined) {
+ if (this.aceEditor &&
+ (typeof nextProps.indentation === 'number' || typeof nextProps.indentation === 'string')) {
this.aceEditor.getSession().setTabSize(this.props.indentation)
}
diff --git a/src/components/CodeMode.js b/src/jsoneditor/components/CodeMode.js
similarity index 83%
rename from src/components/CodeMode.js
rename to src/jsoneditor/components/CodeMode.js
index 7b2ac0d..6805bb2 100644
--- a/src/components/CodeMode.js
+++ b/src/jsoneditor/components/CodeMode.js
@@ -1,6 +1,4 @@
-// @flow
-
-import { createElement as h, Component } from 'react'
+import { createElement as h } from 'react'
import TextMode from './TextMode'
import Ace from './Ace'
@@ -30,13 +28,12 @@ import Ace from './Ace'
*
*/
export default class CodeMode extends TextMode {
- constructor (props: {options: {onLoadAce: Function, indentation: number}}) {
- super(props)
- this.state = {
- text: '{}',
- compiledSchema: null
- }
+ // TODO: work out propTypes
+
+ state = {
+ text: '{}',
+ compiledSchema: null
}
render () {
diff --git a/src/components/JSONEditor.js b/src/jsoneditor/components/JSONEditor.js
similarity index 52%
rename from src/components/JSONEditor.js
rename to src/jsoneditor/components/JSONEditor.js
index 9ed8cb1..3a6eb59 100644
--- a/src/components/JSONEditor.js
+++ b/src/jsoneditor/components/JSONEditor.js
@@ -1,12 +1,19 @@
-// @flow
-
-import { createElement as h, Component } from 'react'
-import PropTypes from 'prop-types'
+import { createElement as h, PureComponent } from 'react'
import CodeMode from './CodeMode'
import TextMode from './TextMode'
import TreeMode from './TreeMode'
-export default class JSONEditor extends Component {
+import './jsoneditor.css'
+
+const DEFAULT_MODE = 'tree'
+
+export default class JSONEditor extends PureComponent {
+
+ // TODO: work out prop types
+ // static propTypes = {
+ // ...
+ // }
+
static modeConstructors = {
code: CodeMode,
form: TreeMode,
@@ -15,18 +22,14 @@ export default class JSONEditor extends Component {
view: TreeMode
}
- state = {
- mode: 'tree'
- }
-
render () {
- const mode = this.state.mode // We use mode from state, not from props!
+ const mode = this.props.mode || DEFAULT_MODE // We use mode from state, not from props!
const ModeConstructor = JSONEditor.modeConstructors[mode]
if (!ModeConstructor) {
// TODO: show an on screen error instead of throwing an error?
throw new Error('Unknown mode "' + mode + '". ' +
- 'Choose from: ' + Object.keys(this.props.modes).join(', '))
+ 'Choose from: ' + Object.keys(this.props.modes).join(', ')) // FIXME: this.props.modes may be undefined
}
return h(ModeConstructor, {
@@ -37,19 +40,7 @@ export default class JSONEditor extends Component {
})
}
- componentWillMount () {
- if (this.props.mode) {
- this.setState({ mode: this.props.mode })
- }
- }
-
- componentWillReceiveProps (nextProps: {mode?: string}) {
- if (nextProps.mode !== this.props.mode) {
- this.setState({ mode: nextProps.mode })
- }
- }
-
- handleError = (err: Error) => {
+ handleError = (err) => {
if (this.props.onError) {
this.props.onError(err)
}
@@ -58,17 +49,11 @@ export default class JSONEditor extends Component {
}
}
- handleChangeMode = (mode: string) => {
- const prevMode = this.state.mode
-
- this.setState({ mode })
+ handleChangeMode = (mode) => {
+ console.log('changeMode', mode, this.props.onChangeMode)
if (this.props.onChangeMode) {
- this.props.onChangeMode(mode, prevMode)
+ this.props.onChangeMode(mode, this.props.mode)
}
}
}
-
-JSONEditor.propTypes = {
- mode: PropTypes.string
-}
diff --git a/src/components/JSONNode.js b/src/jsoneditor/components/JSONNode.js
similarity index 97%
rename from src/components/JSONNode.js
rename to src/jsoneditor/components/JSONNode.js
index 3e9df35..eb99c08 100644
--- a/src/components/JSONNode.js
+++ b/src/jsoneditor/components/JSONNode.js
@@ -1,5 +1,3 @@
-// @flow weak
-
import { createElement as h, PureComponent } from 'react'
import initial from 'lodash/initial'
@@ -10,8 +8,6 @@ import { getInnerText, insideRect, findParentWithAttribute } from '../utils/domU
import { stringConvert, valueType, isUrl } from '../utils/typeUtils'
import { compileJSONPointer, META, SELECTED, SELECTED_END, SELECTED_AFTER, SELECTED_BEFORE } from '../eson'
-import type { ESON, SearchResultStatus, Path } from '../types'
-
// TODO: rename SELECTED, SELECTED_END, etc to AREA_*? It's used for both selection and hovering
const SELECTED_CLASS_NAMES = {
[SELECTED]: ' jsoneditor-selected',
@@ -254,7 +250,15 @@ export default class JSONNode extends PureComponent {
}
// TODO: simplify the method renderProperty
- renderProperty (prop?: String, index?: number, eson: ESON, options: {escapeUnicode: boolean, isPropertyEditable: (Path) => boolean}) {
+
+ /**
+ * Render a property field of a JSONNode
+ * @param {string} [prop]
+ * @param {string} [index]
+ * @param {ESON} eson
+ * @param {{escapeUnicode: boolean, isPropertyEditable: function(Path) : boolean}} options
+ */
+ renderProperty (prop, index, eson, options) {
const isIndex = typeof index === 'number'
const isProp = typeof prop === 'string'
@@ -281,6 +285,7 @@ export default class JSONNode extends PureComponent {
key: 'property',
className: 'jsoneditor-property' + emptyClassName + searchClassName,
contentEditable: 'true',
+ suppressContentEditableWarning: true,
spellCheck: 'false',
onBlur: this.handleChangeProperty
}, escapedPropName)
@@ -311,6 +316,7 @@ export default class JSONNode extends PureComponent {
className: JSONNode.getValueClass(type, itsAnUrl, isEmpty) +
JSONNode.getSearchResultClass(searchResult),
contentEditable: 'true',
+ suppressContentEditableWarning: true,
spellCheck: 'false',
onBlur: this.handleChangeValue,
onInput: this.updateValueStyling,
@@ -420,8 +426,9 @@ export default class JSONNode extends PureComponent {
/**
* Get the css style given a search result type
+ * @param {SearchResultStatus} [searchResultStatus]
*/
- static getSearchResultClass (searchResultStatus?: SearchResultStatus) {
+ static getSearchResultClass (searchResultStatus) {
if (searchResultStatus === 'active') {
return ' jsoneditor-highlight-active'
}
diff --git a/src/components/JSONNodeForm.js b/src/jsoneditor/components/JSONNodeForm.js
similarity index 64%
rename from src/components/JSONNodeForm.js
rename to src/jsoneditor/components/JSONNodeForm.js
index 221a2bd..25f3faf 100644
--- a/src/components/JSONNodeForm.js
+++ b/src/jsoneditor/components/JSONNodeForm.js
@@ -1,9 +1,5 @@
-// @flow
-
import JSONNode from './JSONNode'
-import type { ESON, Path } from '../types'
-
/**
* JSONNodeForm
*
@@ -21,11 +17,17 @@ export default class JSONNodeForm extends JSONNode {
return null
}
- // render a readonly property
- renderProperty (prop?: String, index?: number, eson: ESON, options: {escapeUnicode: boolean, isPropertyEditable: (Path) => boolean}) {
+ /**
+ * Render a property field of a JSONNode
+ * @param {string} [prop]
+ * @param {string} [index]
+ * @param {ESON} eson
+ * @param {{escapeUnicode: boolean, isPropertyEditable: function(Path) : boolean}} options
+ */
+ renderProperty (prop, index, eson, options) {
const formOptions = Object.assign({}, options, { isPropertyEditable })
- return JSONNode.prototype.renderProperty.call(this, prop, index, data, formOptions)
+ return JSONNode.prototype.renderProperty.call(this, prop, index, eson, formOptions)
}
}
diff --git a/src/components/JSONNodeView.js b/src/jsoneditor/components/JSONNodeView.js
similarity index 100%
rename from src/components/JSONNodeView.js
rename to src/jsoneditor/components/JSONNodeView.js
diff --git a/src/components/TextMode.js b/src/jsoneditor/components/TextMode.js
similarity index 95%
rename from src/components/TextMode.js
rename to src/jsoneditor/components/TextMode.js
index 264a03a..3e810c2 100644
--- a/src/components/TextMode.js
+++ b/src/jsoneditor/components/TextMode.js
@@ -1,5 +1,3 @@
-// @flow weak
-
import { createElement as h, Component } from 'react'
import Ajv from 'ajv'
import { parseJSON } from '../utils/jsonUtils'
@@ -45,22 +43,17 @@ const AJV_OPTIONS = {
*
*/
export default class TextMode extends Component {
- state: Object
+
+ state = {
+ text: '{}',
+ compiledSchema: null
+ }
keyDownActions = {
'format': (event) => this.handleCompact(),
'compact': (event) => this.handleFormat()
}
- constructor (props) {
- super(props)
-
- this.state = {
- text: '{}',
- compiledSchema: null
- }
- }
-
componentWillMount () {
this.applyProps(this.props, {})
}
@@ -222,7 +215,7 @@ export default class TextMode extends Component {
*/
setSchema (schema) {
if (schema) {
- const ajv = this.props.ajv || Ajv && Ajv(AJV_OPTIONS)
+ const ajv = this.props.ajv || (Ajv && Ajv(AJV_OPTIONS))
if (!ajv) {
throw new Error('Cannot validate JSON: ajv not available. ' +
@@ -242,9 +235,11 @@ export default class TextMode extends Component {
/**
* Get the configured indentation. When not configured, returns the default value 2
+ * @param {{indentation?: number}} props
+ * @return {number}
*/
- static getIndentation (props?: {indentation?: number}) : number {
- return props && props.indentation || 2
+ static getIndentation (props) {
+ return (props && props.indentation) || 2
}
static format (text, indentation) {
@@ -308,8 +303,9 @@ export default class TextMode extends Component {
/**
* Apply new text to the state, and emit an onChangeText event if there is a change
+ * @param {string} text
*/
- handleChangeText = (text: string) => {
+ handleChangeText = (text) => {
if (this.props.onChangeText && text !== this.state.text) {
const appliedText = this.setText(text)
this.props.onChangeText(appliedText)
@@ -364,8 +360,10 @@ export default class TextMode extends Component {
/**
* Set a string containing a JSON document
+ * @param {string} text
+ * @return {string}
*/
- setText (text: string) : string {
+ setText (text) {
const normalizedText = this.props.escapeUnicode
? escapeUnicodeChars(text)
: text
diff --git a/src/components/TreeMode.js b/src/jsoneditor/components/TreeMode.js
similarity index 93%
rename from src/components/TreeMode.js
rename to src/jsoneditor/components/TreeMode.js
index 082861a..2c9a934 100644
--- a/src/components/TreeMode.js
+++ b/src/jsoneditor/components/TreeMode.js
@@ -1,5 +1,3 @@
-// @flow weak
-
import { createElement as h, Component } from 'react'
import isEqual from 'lodash/isEqual'
import reverse from 'lodash/reverse'
@@ -8,7 +6,7 @@ import Hammer from 'react-hammerjs'
import jump from '../assets/jump.js/src/jump'
import Ajv from 'ajv'
-import { getIn, setIn, updateIn } from '../utils/immutabilityHelpers'
+import { getIn, updateIn } from '../utils/immutabilityHelpers'
import { parseJSON } from '../utils/jsonUtils'
import { enrichSchemaError } from '../utils/schemaUtils'
import {
@@ -36,11 +34,6 @@ import {
import { createFindKeyBinding } from '../utils/keyBindings'
import { KEY_BINDINGS } from '../constants'
-import type {
- ESON, ESONPatch, Selection, ESONPointer,
- Path
-} from '../types'
-
const AJV_OPTIONS = {
allErrors: true,
verbose: true,
@@ -52,19 +45,21 @@ const SEARCH_DEBOUNCE = 300 // milliseconds
const SCROLL_DURATION = 400 // milliseconds
export default class TreeMode extends Component {
- id: number
- state: Object
+ id = Math.round(Math.random() * 1e5) // TODO: create a uuid here?
+
+ // TODO: define propTypes
keyDownActions = null
constructor (props) {
super(props)
- const json = this.props.json || {}
- const expandCallback = this.props.expand || TreeMode.expandRoot
- const eson = expand(jsonToEson(json), expandCallback)
+ // const json = this.props.json || {}
+ // const expandCallback = this.props.expand || TreeMode.expandRoot
+ // const eson = expand(jsonToEson(json), expandCallback)
- this.id = Math.round(Math.random() * 1e5) // TODO: create a uuid here?
+ const json = {}
+ const eson = jsonToEson(json)
this.keyDownActions = {
'up': this.moveUp,
@@ -88,9 +83,10 @@ export default class TreeMode extends Component {
json,
eson,
- history: [eson],
+ history: [],
historyIndex: 0,
+ // TODO: use an event emitter instead? (like with vue.js)
events: {
onChangeProperty: this.handleChangeProperty,
onChangeValue: this.handleChangeValue,
@@ -157,11 +153,17 @@ export default class TreeMode extends Component {
}
// Apply json
- if (nextProps.json !== currentProps.json) {
+ if (nextProps.json !== this.state.json) {
// FIXME: merge meta data from existing eson
+ // FIXME: keep state as is
+
+ const expandCallback = this.props.expand || TreeMode.expandRoot
+ const json = nextProps.json
+ const eson = expand(jsonToEson(json), expandCallback)
+
this.setState({
- json: nextProps.json,
- eson: jsonToEson(nextProps.json) // FIXME: how to handle expand?
+ json,
+ eson
})
// TODO: cleanup
// this.patch([{
@@ -541,11 +543,20 @@ export default class TreeMode extends Component {
})
}
+ /**
+ * Handle sorting a path
+ * @param {Path} path
+ * @param {string | null} [order]
+ */
handleSort = (path, order = null) => {
this.handlePatch(sort(this.state.eson, path, order))
}
- handleSelect = (selection: Selection) => {
+ /**
+ * Set selection
+ * @param {Selection} selection
+ */
+ handleSelect = (selection) => {
this.setState({ selection })
}
@@ -710,7 +721,12 @@ export default class TreeMode extends Component {
}
}
- findDataPathFromElement (element: Element) : Path | null {
+ /**
+ * Find JSON path from an HTML element
+ * @param {Element} element
+ * @return {Path | null}
+ */
+ findDataPathFromElement (element) {
const base = findBaseNode(element)
const attr = base && base.getAttribute && base.getAttribute('data-path')
@@ -718,14 +734,25 @@ export default class TreeMode extends Component {
return attr ? parseJSONPointer(attr.replace(/\/-$/, '')) : null
}
- findESONPointerFromElement (element: Element) : ESONPointer {
+ /**
+ * Find ESON pointer from an HTML element
+ * @param {Element} element
+ * @return {ESONPointer | null}
+ */
+ findESONPointerFromElement (element) {
const path = this.findDataPathFromElement(element)
- const area = element && element.getAttribute && element.getAttribute('data-area') || null
+ const area = (element && element.getAttribute && element.getAttribute('data-area')) || null
return path ? { path, area } : null
}
- selectionFromESONPointer (pointer: ESONPointer) : Selection {
+ /**
+ * Get selection from an ESON pointer
+ * @param {ESONPointer} pointer
+ * @return {Selection}
+ */
+ selectionFromESONPointer (pointer) {
+ // FIXME: does pointer have .area === 'after' ? if so adjust type defs
if (pointer.area === 'after') {
return {after: pointer.path}
}
@@ -755,8 +782,11 @@ export default class TreeMode extends Component {
/**
* Emit an onChange event when there is a listener for it.
* @private
+ * @param {ESONPatch} patch
+ * @param {ESONPatch} revert
+ * @param {ESON} eson
*/
- emitOnChange (patch: ESONPatch, revert: ESONPatch, eson: ESON) {
+ emitOnChange (patch, revert, eson) {
if (this.props.onPatch) {
this.props.onPatch(patch, revert)
}
@@ -939,7 +969,7 @@ export default class TreeMode extends Component {
// TODO: deduplicate this function, it's also implemented in TextMode
setSchema (schema) {
if (schema) {
- const ajv = this.props.ajv || Ajv && Ajv(AJV_OPTIONS)
+ const ajv = (this.props.ajv) || (Ajv && Ajv(AJV_OPTIONS))
if (!ajv) {
throw new Error('Cannot validate JSON: ajv not available. ' +
diff --git a/src/img/description.txt b/src/jsoneditor/components/img/description.txt
similarity index 100%
rename from src/img/description.txt
rename to src/jsoneditor/components/img/description.txt
diff --git a/src/img/jsoneditor-icons.svg b/src/jsoneditor/components/img/jsoneditor-icons.svg
similarity index 100%
rename from src/img/jsoneditor-icons.svg
rename to src/jsoneditor/components/img/jsoneditor-icons.svg
diff --git a/src/jsoneditor/components/jsoneditor.css b/src/jsoneditor/components/jsoneditor.css
new file mode 100644
index 0000000..b627dec
--- /dev/null
+++ b/src/jsoneditor/components/jsoneditor.css
@@ -0,0 +1,670 @@
+/* schema error popover */
+.jsoneditor-schema-error {
+ position: relative;
+ /*@-webkit-keyframes move-up {*/
+ /*from { bottom: 24px; }*/
+ /*to { bottom: 32px; }*/
+ /*}*/
+ /*@-moz-keyframes move-up {*/
+ /*from { bottom: 24px; }*/
+ /*to { bottom: 32px; }*/
+ /*}*/
+ /*@-ms-keyframes move-up {*/
+ /*from { bottom: 24px; }*/
+ /*to { bottom: 32px; }*/
+ /*}*/ }
+ .jsoneditor-schema-error .jsoneditor-popover {
+ background-color: #4c4c4c;
+ border-radius: 3px;
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.4);
+ color: #fff;
+ display: none;
+ padding: 7px 10px;
+ position: absolute;
+ width: 200px;
+ z-index: 4; }
+ .jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above {
+ bottom: 32px;
+ left: -98px; }
+ .jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below {
+ top: 32px;
+ left: -98px; }
+ .jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left {
+ top: -7px;
+ right: 32px; }
+ .jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right {
+ top: -7px;
+ left: 32px; }
+ .jsoneditor-schema-error .jsoneditor-popover:before {
+ border-right: 7px solid transparent;
+ border-left: 7px solid transparent;
+ content: '';
+ display: block;
+ left: 50%;
+ margin-left: -7px;
+ position: absolute; }
+ .jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above:before {
+ border-top: 7px solid #4c4c4c;
+ bottom: -7px; }
+ .jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below:before {
+ border-bottom: 7px solid #4c4c4c;
+ top: -7px; }
+ .jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left:before {
+ border-left: 7px solid #4c4c4c;
+ border-top: 7px solid transparent;
+ border-bottom: 7px solid transparent;
+ content: '';
+ top: 19px;
+ right: -14px;
+ left: inherit;
+ margin-left: inherit;
+ margin-top: -10px;
+ position: absolute; }
+ .jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right:before {
+ border-right: 7px solid #4c4c4c;
+ border-top: 7px solid transparent;
+ border-bottom: 7px solid transparent;
+ content: '';
+ top: 19px;
+ left: -14px;
+ margin-left: inherit;
+ margin-top: -10px;
+ position: absolute; }
+ .jsoneditor-schema-error:hover .jsoneditor-popover,
+ .jsoneditor-schema-error:focus .jsoneditor-popover {
+ display: block;
+ -webkit-animation: fade-in .3s linear 1, move-up .3s linear 1;
+ -moz-animation: fade-in .3s linear 1, move-up .3s linear 1;
+ -ms-animation: fade-in .3s linear 1, move-up .3s linear 1; }
+
+@-webkit-keyframes fade-in {
+ from {
+ opacity: 0; }
+ to {
+ opacity: 1; } }
+
+@-moz-keyframes fade-in {
+ from {
+ opacity: 0; }
+ to {
+ opacity: 1; } }
+
+@-ms-keyframes fade-in {
+ .jsoneditor-schema-error from {
+ opacity: 0; }
+ .jsoneditor-schema-error to {
+ opacity: 1; } }
+
+.jsoneditor {
+ border: 1px solid #3883fa;
+ width: 100%;
+ height: 100%;
+ display: inline-flex;
+ flex-direction: column;
+ line-height: normal; }
+
+.jsoneditor-menu {
+ width: 100%;
+ box-sizing: border-box;
+ color: white;
+ background-color: #3883fa;
+ flex: 0 0 auto; }
+ .jsoneditor-menu button {
+ width: 26px;
+ height: 26px;
+ margin: 2px;
+ padding: 0;
+ border-radius: 2px;
+ border: 1px solid transparent;
+ background: transparent url("img/jsoneditor-icons.svg");
+ color: white;
+ opacity: 0.8;
+ font-family: arial, sans-serif;
+ font-size: 10pt; }
+ .jsoneditor-menu button:hover {
+ background-color: rgba(255, 255, 255, 0.2);
+ border: 1px solid rgba(255, 255, 255, 0.4); }
+ .jsoneditor-menu button:focus,
+ .jsoneditor-menu button:active {
+ background-color: rgba(255, 255, 255, 0.3); }
+ .jsoneditor-menu button:disabled {
+ opacity: 0.5; }
+ .jsoneditor-menu .jsoneditor-vertical-menu-separator {
+ width: 8px;
+ display: inline-block; }
+ .jsoneditor-menu button.jsoneditor-expand-all {
+ background-position: 0 -120px; }
+ .jsoneditor-menu button.jsoneditor-collapse-all {
+ background-position: 0 -96px; }
+ .jsoneditor-menu button.jsoneditor-undo {
+ background-position: -24px -96px; }
+ .jsoneditor-menu button.jsoneditor-undo:disabled {
+ background-position: -24px -120px; }
+ .jsoneditor-menu button.jsoneditor-redo {
+ background-position: -48px -96px; }
+ .jsoneditor-menu button.jsoneditor-redo:disabled {
+ background-position: -48px -120px; }
+ .jsoneditor-menu button.jsoneditor-compact {
+ background-position: -72px -96px; }
+ .jsoneditor-menu button.jsoneditor-format {
+ background-position: -72px -120px; }
+
+.jsoneditor-contents {
+ width: 100%;
+ height: 100%;
+ min-height: 150px;
+ overflow: hidden;
+ padding: 0;
+ margin: 0;
+ flex: 1 1 auto; }
+
+.jsoneditor-tree-contents {
+ padding: 2px 0;
+ overflow: auto; }
+
+.jsoneditor-node {
+ position: relative;
+ font: 14px Arial;
+ display: inline-flex;
+ flex-direction: row; }
+
+.jsoneditor-node > div {
+ flex: 0 0 auto; }
+
+div.jsoneditor-list {
+ list-style-type: none;
+ padding-left: 20px;
+ margin: 0;
+ font-size: 0; }
+
+/* no left padding for the root div element */
+.jsoneditor-contents > div.jsoneditor-list {
+ padding-left: 2px;
+ padding-bottom: 24px; }
+
+.jsoneditor-property,
+.jsoneditor-value,
+.jsoneditor-readonly,
+.jsoneditor-separator {
+ line-height: 20px;
+ font-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif;
+ font-size: 10pt; }
+
+.jsoneditor-property,
+.jsoneditor-value,
+.jsoneditor-readonly {
+ min-width: 24px;
+ word-break: normal;
+ padding: 0 5px;
+ color: #1A1A1A;
+ outline: none; }
+
+.jsoneditor-button-container {
+ font-size: 0; }
+
+.jsoneditor-property,
+.jsoneditor-value {
+ border-radius: 1px;
+ flex: 1 1 auto !important; }
+ .jsoneditor-property p,
+ .jsoneditor-value p {
+ margin: 0;
+ padding: 0; }
+
+.jsoneditor-property:focus,
+.jsoneditor-value:focus {
+ box-shadow: 0 0 3px 1px #008fd5;
+ z-index: 1; }
+
+.jsoneditor-property:hover,
+.jsoneditor-value:hover {
+ background-color: rgba(0, 0, 0, 0.05); }
+
+.jsoneditor-mode-form .jsoneditor-property:hover {
+ background-color: inherit; }
+
+.jsoneditor-mode-view .jsoneditor-property:hover,
+.jsoneditor-mode-view .jsoneditor-value:hover {
+ background-color: inherit; }
+
+.jsoneditor-separator {
+ color: #808080; }
+
+.jsoneditor-readonly {
+ color: #808080; }
+
+.jsoneditor-readonly:focus,
+.jsoneditor-readonly:hover {
+ border-color: transparent;
+ background-color: inherit; }
+
+.jsoneditor-value.jsoneditor-string {
+ color: #008000; }
+
+.jsoneditor-value.jsoneditor-object,
+.jsoneditor-value.jsoneditor-array {
+ min-width: 16px;
+ color: #808080; }
+
+.jsoneditor-value.jsoneditor-number {
+ color: #ee422e; }
+
+.jsoneditor-value.jsoneditor-boolean {
+ color: #ff8c00; }
+
+.jsoneditor-value.jsoneditor-null {
+ color: #004ED0; }
+
+.jsoneditor-value.jsoneditor-invalid {
+ color: #000000; }
+
+div.jsoneditor-value.jsoneditor-url {
+ color: green;
+ text-decoration: underline; }
+
+div.jsoneditor-empty {
+ border: 1px dotted lightgray;
+ border-radius: 2px;
+ padding: 0 5px;
+ line-height: 17px; }
+
+div.jsoneditor-empty::after,
+div.jsoneditor-empty::after {
+ pointer-events: none;
+ color: lightgray;
+ font-size: 8pt; }
+
+div.jsoneditor-property.jsoneditor-empty::after {
+ content: 'prop'; }
+
+div.jsoneditor-value.jsoneditor-empty::after {
+ content: 'value'; }
+
+.jsoneditor-highlight {
+ background-color: yellow; }
+
+.jsoneditor-highlight:hover {
+ background-color: #f0f000; }
+
+.jsoneditor-highlight-active {
+ background-color: #ffd700; }
+
+.jsoneditor-highlight-active:hover {
+ background-color: #f3cd00; }
+
+.jsoneditor-button-placeholder {
+ width: 20px;
+ padding: 0;
+ margin: 0;
+ line-height: 20px; }
+
+button.jsoneditor-button {
+ position: relative;
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ margin: 0;
+ border: none;
+ cursor: pointer;
+ background: transparent url("img/jsoneditor-icons.svg"); }
+
+button.jsoneditor-button:focus {
+ /* TODO: nice outline for buttons with focus
+ outline: #97B0F8 solid 2px;
+ box-shadow: 0 0 8px #97B0F8;
+ */
+ background-color: #f5f5f5;
+ outline: #e5e5e5 solid 1px; }
+
+/* FIXME: change icons from size 24x24 to 20x20 */
+button.jsoneditor-button.jsoneditor-collapsed {
+ background-position: -2px -50px; }
+
+button.jsoneditor-button.jsoneditor-expanded {
+ background-position: -2px -74px; }
+
+button.jsoneditor-button.jsoneditor-drag {
+ background-position: -74px -74px;
+ cursor: move; }
+
+button.jsoneditor-button.jsoneditor-actionmenu {
+ background-position: -50px -74px; }
+
+button.jsoneditor-button.jsoneditor-actionmenu:hover,
+button.jsoneditor-button.jsoneditor-actionmenu:focus,
+button.jsoneditor-button.jsoneditor-actionmenu.jsoneditor-visible {
+ background-position: -50px -50px; }
+
+/******************************* Action Menu **********************************/
+div.jsoneditor-actionmenu {
+ position: absolute;
+ box-sizing: border-box;
+ z-index: 99999;
+ top: 20px;
+ left: 18px;
+ /* 20px - 2px where 2px half the difference between 24x24 icons of the menu and the 20x20 icons of the editor */
+ background: white;
+ border: 1px solid #d3d3d3;
+ box-shadow: 2px 2px 12px rgba(128, 128, 128, 0.3); }
+
+div.jsoneditor-actionmenu.jsoneditor-actionmenu-top {
+ top: auto;
+ bottom: 20px; }
+
+div.jsoneditor-modemenu.jsoneditor-modemenu {
+ top: 26px;
+ left: 0; }
+
+div.jsoneditor-menu-item {
+ line-height: 0;
+ font-size: 0; }
+
+button.jsoneditor-menu-button {
+ width: 136px;
+ height: 24px;
+ padding: 0;
+ margin: 0;
+ line-height: 24px;
+ background: transparent;
+ border: transparent;
+ display: inline-block;
+ box-sizing: border-box;
+ cursor: pointer;
+ color: #4d4d4d;
+ font-size: 10pt;
+ font-family: arial, sans-serif;
+ text-align: left; }
+
+button.jsoneditor-menu-button:hover,
+button.jsoneditor-menu-button:focus {
+ color: #1A1A1A;
+ background-color: #f5f5f5;
+ outline: none; }
+
+button.jsoneditor-menu-button.jsoneditor-selected {
+ color: white;
+ background-color: #ee422e; }
+
+button.jsoneditor-menu-default {
+ width: 104px;
+ /* 136px - 32px */ }
+
+button.jsoneditor-menu-expand {
+ width: 32px;
+ float: right;
+ border-left: 1px solid #e5e5e5; }
+
+span.jsoneditor-icon {
+ float: left;
+ width: 24px;
+ height: 24px;
+ border: none;
+ padding: 0;
+ margin: 0;
+ background-image: url("img/jsoneditor-icons.svg"); }
+
+span.jsoneditor-icon.jsoneditor-icon-expand {
+ float: right;
+ width: 24px;
+ margin: 0 4px;
+ background-position: 0 -72px !important;
+ opacity: 0.4; }
+
+div.jsoneditor-menu-item button.jsoneditor-menu-button:hover span.jsoneditor-icon-expand,
+div.jsoneditor-menu-item button:focus span.jsoneditor-icon-expand {
+ opacity: 1; }
+
+span.jsoneditor-text {
+ display: inline-block;
+ line-height: 24px; }
+
+div.jsoneditor-menu-separator {
+ height: 0;
+ border-top: 1px solid #e5e5e5;
+ padding-top: 5px;
+ margin-top: 5px; }
+
+div.jsoneditor-menu-panel-right {
+ float: right;
+ max-width: 100%; }
+
+button.jsoneditor-remove span.jsoneditor-icon {
+ background-position: -24px -24px; }
+
+button.jsoneditor-remove:hover span.jsoneditor-icon,
+button.jsoneditor-remove:focus span.jsoneditor-icon {
+ background-position: -24px 0; }
+
+button.jsoneditor-insert span.jsoneditor-icon {
+ background-position: 0 -24px; }
+
+button.jsoneditor-insert:hover span.jsoneditor-icon,
+button.jsoneditor-insert:focus span.jsoneditor-icon {
+ background-position: 0 0; }
+
+button.jsoneditor-duplicate span.jsoneditor-icon {
+ background-position: -48px -24px; }
+
+button.jsoneditor-duplicate:hover span.jsoneditor-icon,
+button.jsoneditor-duplicate:focus span.jsoneditor-icon {
+ background-position: -48px 0; }
+
+button.jsoneditor-sort-asc span.jsoneditor-icon {
+ background-position: -168px -24px; }
+
+button.jsoneditor-sort-asc:hover span.jsoneditor-icon,
+button.jsoneditor-sort-asc:focus span.jsoneditor-icon {
+ background-position: -168px 0; }
+
+button.jsoneditor-sort-desc span.jsoneditor-icon {
+ background-position: -192px -24px; }
+
+button.jsoneditor-sort-desc:hover span.jsoneditor-icon,
+button.jsoneditor-sort-desc:focus span.jsoneditor-icon {
+ background-position: -192px 0; }
+
+div.jsoneditor-submenu {
+ visibility: hidden;
+ max-height: 0;
+ overflow: hidden;
+ transition: max-height 0.3s ease-out;
+ box-shadow: inset 0 10px 10px -10px rgba(128, 128, 128, 0.5), inset 0 -10px 10px -10px rgba(128, 128, 128, 0.5); }
+
+div.jsoneditor-submenu.jsoneditor-expanded {
+ visibility: visible;
+ max-height: 104px;
+ /* 4 * 24px + 2 * 5px */
+ /* FIXME: shouldn't rely on max-height equal to 4 items, should be flexible */ }
+
+div.jsoneditor-submenu.jsoneditor-collapsing {
+ visibility: visible;
+ max-height: 0; }
+
+div.jsoneditor-submenu button {
+ padding-left: 24px; }
+
+div.jsoneditor-submenu div.jsoneditor-menu-item:first-child {
+ margin-top: 5px; }
+
+div.jsoneditor-submenu div.jsoneditor-menu-item:last-child {
+ margin-bottom: 5px; }
+
+button.jsoneditor-type-string span.jsoneditor-icon {
+ background-position: -144px -24px; }
+
+button.jsoneditor-type-string:hover span.jsoneditor-icon,
+button.jsoneditor-type-string:focus span.jsoneditor-icon,
+button.jsoneditor-type-string.jsoneditor-selected span.jsoneditor-icon {
+ background-position: -144px 0; }
+
+button.jsoneditor-type-value span.jsoneditor-icon {
+ background-position: -120px -24px; }
+
+button.jsoneditor-type-value:hover span.jsoneditor-icon,
+button.jsoneditor-type-value:focus span.jsoneditor-icon,
+button.jsoneditor-type-value.jsoneditor-selected span.jsoneditor-icon {
+ background-position: -120px 0; }
+
+button.jsoneditor-type-Object span.jsoneditor-icon {
+ background-position: -72px -24px; }
+
+button.jsoneditor-type-Object:hover span.jsoneditor-icon,
+button.jsoneditor-type-Object:focus span.jsoneditor-icon,
+button.jsoneditor-type-Object.jsoneditor-selected span.jsoneditor-icon {
+ background-position: -72px 0; }
+
+button.jsoneditor-type-Array span.jsoneditor-icon {
+ background-position: -96px -24px; }
+
+button.jsoneditor-type-Array:hover span.jsoneditor-icon,
+button.jsoneditor-type-Array:focus span.jsoneditor-icon,
+button.jsoneditor-type-Array.jsoneditor-selected span.jsoneditor-icon {
+ background-position: -96px 0; }
+
+/******************************* Floatting Menu **********************************/
+div.jsoneditor-node-container {
+ position: relative;
+ transition: background-color 100ms ease-in; }
+ div.jsoneditor-node-container.jsoneditor-selected {
+ background-color: #ffed99; }
+ div.jsoneditor-node-container.jsoneditor-selected.jsoneditor-hover {
+ background-color: #ffdb80; }
+ div.jsoneditor-node-container.jsoneditor-selected.jsoneditor-hover.jsoneditor-hover-insert-area {
+ background-color: #ffed99; }
+ div.jsoneditor-node-container.jsoneditor-selected.jsoneditor-hover.jsoneditor-hover-insert-area > div.jsoneditor-insert-area {
+ border: 1px dashed gray;
+ background-color: #f2f2f2; }
+ div.jsoneditor-node-container.jsoneditor-selected.jsoneditor-hover.jsoneditor-hover-insert-area.jsoneditor-selected-insert-area > div.jsoneditor-insert-area {
+ border: 1px dashed #f4af41;
+ background-color: #ffdb80; }
+ div.jsoneditor-node-container.jsoneditor-selected.jsoneditor-selected-insert-area {
+ background-color: inherit; }
+ div.jsoneditor-node-container.jsoneditor-selected.jsoneditor-selected-insert-area.jsoneditor-hover {
+ background-color: #f2f2f2; }
+ div.jsoneditor-node-container.jsoneditor-selected.jsoneditor-selected-insert-area.jsoneditor-hover.jsoneditor-hover-insert-area {
+ background-color: inherit; }
+ div.jsoneditor-node-container.jsoneditor-selected.jsoneditor-selected-insert-area > div.jsoneditor-insert-area {
+ border: 1px dashed #f4af41;
+ background: #ffed99; }
+ div.jsoneditor-node-container.jsoneditor-selected div.jsoneditor-hover {
+ background-color: #ffdb80; }
+ div.jsoneditor-node-container.jsoneditor-selected div.jsoneditor-hover.jsoneditor-hover-insert-area {
+ background-color: inherit; }
+ div.jsoneditor-node-container.jsoneditor-selected div.jsoneditor-hover.jsoneditor-hover-insert-area > div.jsoneditor-insert-area {
+ border: 1px dashed #f4af41;
+ background: #ffdb80; }
+ div.jsoneditor-node-container.jsoneditor-hover {
+ background-color: #f2f2f2; }
+ div.jsoneditor-node-container.jsoneditor-hover.jsoneditor-hover-insert-area {
+ background-color: inherit; }
+ div.jsoneditor-node-container.jsoneditor-hover.jsoneditor-hover-insert-area > div.jsoneditor-insert-area {
+ border: 1px dashed gray;
+ background-color: #f2f2f2; }
+ div.jsoneditor-node-container div.jsoneditor-insert-area {
+ position: absolute;
+ width: 100%;
+ height: 8px;
+ left: 0;
+ top: -4px;
+ border: 1px transparent;
+ box-sizing: border-box;
+ z-index: 1; }
+ div.jsoneditor-node-container div.jsoneditor-floating-menu {
+ position: absolute;
+ bottom: 100%;
+ right: 0;
+ z-index: 999;
+ margin: 10px;
+ white-space: nowrap;
+ border-radius: 5px;
+ box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.24); }
+ div.jsoneditor-node-container div.jsoneditor-floating-menu:after {
+ content: '';
+ position: absolute;
+ top: 100%;
+ left: 35px;
+ margin-left: -10px;
+ width: 0;
+ height: 0;
+ border-top: solid 10px #4d4d4d;
+ border-left: solid 10px transparent;
+ border-right: solid 10px transparent; }
+ div.jsoneditor-node-container div.jsoneditor-floating-menu button.jsoneditor-floating-menu-item {
+ color: #fff;
+ background: #4d4d4d;
+ border: none;
+ border-right: 1px solid #676767;
+ padding: 10px;
+ cursor: pointer;
+ outline: none; }
+ div.jsoneditor-node-container div.jsoneditor-floating-menu button.jsoneditor-floating-menu-item:focus, div.jsoneditor-node-container div.jsoneditor-floating-menu button.jsoneditor-floating-menu-item:hover {
+ background: #676767; }
+ div.jsoneditor-node-container div.jsoneditor-floating-menu button.jsoneditor-floating-menu-item:first-child {
+ border-top-left-radius: 5px;
+ border-bottom-left-radius: 5px; }
+ div.jsoneditor-node-container div.jsoneditor-floating-menu button.jsoneditor-floating-menu-item:last-child {
+ border-top-right-radius: 5px;
+ border-bottom-right-radius: 5px;
+ border-right: none; }
+
+/******************************* **********************************/
+div.jsoneditor-modes {
+ position: relative;
+ display: inline-block;
+ vertical-align: top; }
+ div.jsoneditor-modes button {
+ background: none;
+ width: auto;
+ padding: 2px 6px; }
+ div.jsoneditor-modes button.jsoneditor-type-modes {
+ width: 120px;
+ height: auto;
+ padding: 2px 6px;
+ border-radius: 0;
+ opacity: 1; }
+ div.jsoneditor-modes button.jsoneditor-type-modes:hover {
+ border: none; }
+
+textarea.jsoneditor-text {
+ width: 100%;
+ height: 100%;
+ min-height: 150px;
+ margin: 0;
+ box-sizing: border-box;
+ outline-width: 0;
+ border: none;
+ background-color: #fff;
+ resize: none;
+ font-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif;
+ font-size: 10pt;
+ color: #1A1A1A; }
+
+div.jsoneditor-code {
+ width: 100%;
+ height: 100%;
+ min-height: 150px; }
+
+/* JSON schema errors displayed at the bottom of the editor in mode text and code */
+.jsoneditor-errors {
+ width: 100%;
+ background-color: #ffef8b;
+ border-top: 1px solid #ffd700; }
+ .jsoneditor-errors table {
+ border-collapse: collapse;
+ font-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif;
+ font-size: 10pt; }
+ .jsoneditor-errors table td {
+ padding: 3px 6px;
+ vertical-align: middle; }
+ .jsoneditor-errors table td code {
+ display: block;
+ white-space: pre-wrap; }
+
+.jsoneditor-schema-error {
+ outline: none;
+ border: none;
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ margin: 0 4px;
+ background: url("img/jsoneditor-icons.svg") -171px -49px; }
diff --git a/src/jsoneditor.less b/src/jsoneditor/components/jsoneditor.scss
similarity index 89%
rename from src/jsoneditor.less
rename to src/jsoneditor/components/jsoneditor.scss
index 10b9178..e96969b 100644
--- a/src/jsoneditor.less
+++ b/src/jsoneditor/components/jsoneditor.scss
@@ -1,19 +1,21 @@
-@import url('./popover.less');
+@import './popover.scss';
-@fontFamily: droid sans mono, consolas, monospace, courier new, courier, sans-serif;
-@fontSize: 10pt;
-@black: #1A1A1A;
-@contentsMinHeight: 150px;
-@theme-color: #3883fa;
-@floating-menu-background: #4d4d4d;
-@floating-menu-color: #fff;
-// @selectedColor: #e5e5e5;
-@selectedColor: #ffed99;
-@hoverColor: #f2f2f2;
-@hoverAndSelectedColor: #ffdb80;
+$fontFamily: droid sans mono, consolas, monospace, courier new, courier, sans-serif;
+$fontSize: 10pt;
+$black: #1A1A1A;
+$contentsMinHeight: 150px;
+$theme-color: #3883fa; // TODO: create a central file with the theme colors
+$floating-menu-background: #4d4d4d;
+$floating-menu-color: #fff;
+// $selectedColor: #e5e5e5;
+$selectedColor: #ffed99;
+$hoverColor: #f2f2f2;
+$hoverAndSelectedColor: #ffdb80;
+
+// TODO: split this scss file into separate files per React component
.jsoneditor {
- border: 1px solid @theme-color;
+ border: 1px solid $theme-color;
width: 100%;
height: 100%;
@@ -28,7 +30,7 @@
box-sizing: border-box;
color: white;
- background-color: @theme-color;
+ background-color: $theme-color;
flex: 0 0 auto;
button {
@@ -94,7 +96,7 @@
.jsoneditor-contents {
width: 100%;
height: 100%;
- min-height: @contentsMinHeight;
+ min-height: $contentsMinHeight;
overflow: hidden;
padding: 0;
@@ -139,19 +141,19 @@ div.jsoneditor-list {
.jsoneditor-separator {
line-height: 20px;
- font-family: @fontFamily;
- font-size: @fontSize;
+ font-family: $fontFamily;
+ font-size: $fontSize;
}
.jsoneditor-property,
.jsoneditor-value,
.jsoneditor-readonly {
min-width: 24px;
- word-break: break-word;
+ word-break: normal;
padding: 0 5px;
- color: @black;
+ color: $black;
outline: none;
}
@@ -387,7 +389,7 @@ button.jsoneditor-menu-button {
button.jsoneditor-menu-button:hover,
button.jsoneditor-menu-button:focus {
- color: @black;
+ color: $black;
background-color: #f5f5f5;
outline: none;
}
@@ -568,23 +570,23 @@ div.jsoneditor-node-container {
// TODO: can the hover/select css be simplified?
&.jsoneditor-selected {
- background-color: @selectedColor;
+ background-color: $selectedColor;
&.jsoneditor-hover {
- background-color: @hoverAndSelectedColor;
+ background-color: $hoverAndSelectedColor;
&.jsoneditor-hover-insert-area {
- background-color: @selectedColor;
+ background-color: $selectedColor;
> div.jsoneditor-insert-area {
border: 1px dashed gray;
- background-color: @hoverColor;
+ background-color: $hoverColor;
}
&.jsoneditor-selected-insert-area {
> div.jsoneditor-insert-area {
border: 1px dashed #f4af41;
- background-color: @hoverAndSelectedColor;
+ background-color: $hoverAndSelectedColor;
}
}
}
@@ -594,7 +596,7 @@ div.jsoneditor-node-container {
background-color: inherit;
&.jsoneditor-hover {
- background-color: @hoverColor;
+ background-color: $hoverColor;
&.jsoneditor-hover-insert-area {
background-color: inherit;
@@ -603,46 +605,46 @@ div.jsoneditor-node-container {
> div.jsoneditor-insert-area {
border: 1px dashed #f4af41;
- background: @selectedColor;
+ background: $selectedColor;
}
}
// hovering nested elements
div.jsoneditor-hover {
- background-color: @hoverAndSelectedColor;
+ background-color: $hoverAndSelectedColor;
&.jsoneditor-hover-insert-area {
background-color: inherit;
> div.jsoneditor-insert-area {
border: 1px dashed #f4af41;
- background: @hoverAndSelectedColor;
+ background: $hoverAndSelectedColor;
}
}
}
}
&.jsoneditor-hover {
- background-color: @hoverColor;
+ background-color: $hoverColor;
&.jsoneditor-hover-insert-area {
background-color: inherit;
> div.jsoneditor-insert-area {
border: 1px dashed gray;
- background-color: @hoverColor;
+ background-color: $hoverColor;
}
}
}
div.jsoneditor-insert-area {
- @height: 8px;
+ $height: 8px;
position: absolute;
width: 100%;
- height: @height;
+ height: $height;
left: 0;
- top: -@height/2;
+ top: -$height/2;
border: 1px transparent;
box-sizing: border-box;
z-index: 1; // must be on top of next node, it overlaps a bit
@@ -667,23 +669,23 @@ div.jsoneditor-node-container {
margin-left: -10px;
width: 0;
height: 0;
- border-top: solid 10px @floating-menu-background;
+ border-top: solid 10px $floating-menu-background;
border-left: solid 10px transparent;
border-right: solid 10px transparent;
}
button.jsoneditor-floating-menu-item {
- color: @floating-menu-color;
- background: @floating-menu-background;
+ color: $floating-menu-color;
+ background: $floating-menu-background;
border: none;
- border-right: 1px solid lighten(@floating-menu-background, 10%);
+ border-right: 1px solid lighten($floating-menu-background, 10%);
padding: 10px;
cursor: pointer;
outline: none;
&:focus,
&:hover {
- background: lighten(@floating-menu-background, 10%);
+ background: lighten($floating-menu-background, 10%);
}
&:first-child {
@@ -728,7 +730,7 @@ div.jsoneditor-modes {
textarea.jsoneditor-text {
width: 100%;
height: 100%;
- min-height: @contentsMinHeight;
+ min-height: $contentsMinHeight;
margin: 0;
box-sizing: border-box;
@@ -737,15 +739,15 @@ textarea.jsoneditor-text {
background-color: #fff;
resize: none;
- font-family: @fontFamily;
- font-size: @fontSize;
- color: @black;
+ font-family: $fontFamily;
+ font-size: $fontSize;
+ color: $black;
}
div.jsoneditor-code {
width: 100%;
height: 100%;
- min-height: @contentsMinHeight;
+ min-height: $contentsMinHeight;
}
/* JSON schema errors displayed at the bottom of the editor in mode text and code */
@@ -758,8 +760,8 @@ div.jsoneditor-code {
table {
border-collapse: collapse;
- font-family: @fontFamily;
- font-size: @fontSize;
+ font-family: $fontFamily;
+ font-size: $fontSize;
td {
padding: 3px 6px;
diff --git a/src/components/menu/ActionMenu.js b/src/jsoneditor/components/menu/ActionMenu.js
similarity index 100%
rename from src/components/menu/ActionMenu.js
rename to src/jsoneditor/components/menu/ActionMenu.js
diff --git a/src/components/menu/FloatingMenu.js b/src/jsoneditor/components/menu/FloatingMenu.js
similarity index 98%
rename from src/components/menu/FloatingMenu.js
rename to src/jsoneditor/components/menu/FloatingMenu.js
index 94a91e9..199e2ed 100644
--- a/src/components/menu/FloatingMenu.js
+++ b/src/jsoneditor/components/menu/FloatingMenu.js
@@ -1,7 +1,4 @@
-// @flow weak
-
import { createElement as h, PureComponent } from 'react'
-import { keyComboFromEvent } from '../../utils/keyBindings'
const MENU_CLASS_NAME = 'jsoneditor-floating-menu'
const MENU_ITEM_CLASS_NAME = 'jsoneditor-floating-menu-item'
diff --git a/src/components/menu/Menu.js b/src/jsoneditor/components/menu/Menu.js
similarity index 100%
rename from src/components/menu/Menu.js
rename to src/jsoneditor/components/menu/Menu.js
diff --git a/src/components/menu/ModeButton.js b/src/jsoneditor/components/menu/ModeButton.js
similarity index 100%
rename from src/components/menu/ModeButton.js
rename to src/jsoneditor/components/menu/ModeButton.js
diff --git a/src/components/menu/ModeMenu.js b/src/jsoneditor/components/menu/ModeMenu.js
similarity index 100%
rename from src/components/menu/ModeMenu.js
rename to src/jsoneditor/components/menu/ModeMenu.js
diff --git a/src/jsoneditor/components/menu/Search.css b/src/jsoneditor/components/menu/Search.css
new file mode 100644
index 0000000..f00c562
--- /dev/null
+++ b/src/jsoneditor/components/menu/Search.css
@@ -0,0 +1,57 @@
+div.jsoneditor-search {
+ font-family: arial, sans-serif;
+ font-size: 10pt; }
+ div.jsoneditor-search div.jsoneditor-results {
+ display: inline-block;
+ margin-right: 5px; }
+ div.jsoneditor-search form.jsoneditor-search-box {
+ display: inline-flex;
+ position: relative;
+ max-width: 100%;
+ background-color: white;
+ border: 2px solid #3883fa;
+ box-sizing: border-box; }
+ div.jsoneditor-search form.jsoneditor-search-box::before {
+ position: absolute;
+ display: inline-block;
+ width: 22px;
+ height: 100%;
+ background: transparent url("../img/jsoneditor-icons.svg") -97px -71px;
+ content: ''; }
+ div.jsoneditor-search form.jsoneditor-search-box input.jsoneditor-search-text {
+ display: inline-block;
+ position: relative;
+ border: none;
+ outline: none;
+ width: 120px;
+ max-width: 100%;
+ height: 22px;
+ line-height: 22px;
+ padding: 2px 2px 2px 22px;
+ background: transparent; }
+ div.jsoneditor-search form.jsoneditor-search-box input[type=button] {
+ display: inline-block;
+ position: relative;
+ width: 16px;
+ height: 100%;
+ line-height: 22px;
+ margin: 2px 0;
+ padding: 0;
+ border: none;
+ background: transparent url("../img/jsoneditor-icons.svg");
+ opacity: 0.8;
+ font-family: arial, sans-serif;
+ font-size: 10pt; }
+ div.jsoneditor-search form.jsoneditor-search-box input[type=button]:hover {
+ background-color: transparent; }
+ div.jsoneditor-search form.jsoneditor-search-box input.jsoneditor-search-next {
+ cursor: pointer;
+ background-position: -124px -73px; }
+ div.jsoneditor-search form.jsoneditor-search-box input.jsoneditor-search-next:hover {
+ background-position: -124px -49px; }
+ div.jsoneditor-search form.jsoneditor-search-box input.jsoneditor-search-previous {
+ cursor: pointer;
+ background-position: -148px -73px;
+ margin-right: 2px; }
+ div.jsoneditor-search form.jsoneditor-search-box input.jsoneditor-search-previous:hover {
+ background-position: -148px -49px; }
diff --git a/src/components/menu/Search.js b/src/jsoneditor/components/menu/Search.js
similarity index 97%
rename from src/components/menu/Search.js
rename to src/jsoneditor/components/menu/Search.js
index ce56be3..ab1088c 100644
--- a/src/components/menu/Search.js
+++ b/src/jsoneditor/components/menu/Search.js
@@ -1,17 +1,11 @@
-// @flow weak
-
import { createElement as h, Component } from 'react'
import PropTypes from 'prop-types'
import { keyComboFromEvent } from '../../utils/keyBindings'
import { findEditorContainer, setSelection } from '../utils/domSelector'
-import '!style!css!less!./Search.less'
+import './Search.css'
export default class Search extends Component {
- state: {
- text: string
- }
-
constructor (props) {
super (props)
diff --git a/src/components/menu/Search.less b/src/jsoneditor/components/menu/Search.scss
similarity index 82%
rename from src/components/menu/Search.less
rename to src/jsoneditor/components/menu/Search.scss
index 89f3cdd..83b8972 100644
--- a/src/components/menu/Search.less
+++ b/src/jsoneditor/components/menu/Search.scss
@@ -1,4 +1,4 @@
-@theme-color: #3883fa;
+$theme-color: #3883fa;
div.jsoneditor-search {
font-family: arial, sans-serif;
@@ -15,17 +15,17 @@ div.jsoneditor-search {
max-width: 100%;
background-color: white;
- border: 2px solid @theme-color;
+ border: 2px solid $theme-color;
box-sizing: border-box;
- @search-icon-width: 22px;
+ $search-icon-width: 22px;
&::before {
position: absolute;
display: inline-block;
- width: @search-icon-width;
+ width: $search-icon-width;
height: 100%;
- background: transparent url('../../img/jsoneditor-icons.svg') -97px -71px;
+ background: transparent url('../img/jsoneditor-icons.svg') -97px -71px;
content: '';
}
@@ -39,7 +39,7 @@ div.jsoneditor-search {
max-width: 100%;
height: 22px;
line-height: 22px;
- padding: 2px 2px 2px @search-icon-width;
+ padding: 2px 2px 2px $search-icon-width;
background: transparent;
}
@@ -53,7 +53,7 @@ div.jsoneditor-search {
margin: 2px 0;
padding: 0;
border: none;
- background: transparent url('../../img/jsoneditor-icons.svg');
+ background: transparent url('../img/jsoneditor-icons.svg');
opacity: 0.8;
font-family: arial, sans-serif;
diff --git a/src/components/menu/items.js b/src/jsoneditor/components/menu/items.js
similarity index 100%
rename from src/components/menu/items.js
rename to src/jsoneditor/components/menu/items.js
diff --git a/src/jsoneditor/components/popover.css b/src/jsoneditor/components/popover.css
new file mode 100644
index 0000000..a03f0f2
--- /dev/null
+++ b/src/jsoneditor/components/popover.css
@@ -0,0 +1,96 @@
+/* schema error popover */
+.jsoneditor-schema-error {
+ position: relative;
+ /*@-webkit-keyframes move-up {*/
+ /*from { bottom: 24px; }*/
+ /*to { bottom: 32px; }*/
+ /*}*/
+ /*@-moz-keyframes move-up {*/
+ /*from { bottom: 24px; }*/
+ /*to { bottom: 32px; }*/
+ /*}*/
+ /*@-ms-keyframes move-up {*/
+ /*from { bottom: 24px; }*/
+ /*to { bottom: 32px; }*/
+ /*}*/ }
+ .jsoneditor-schema-error .jsoneditor-popover {
+ background-color: #4c4c4c;
+ border-radius: 3px;
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.4);
+ color: #fff;
+ display: none;
+ padding: 7px 10px;
+ position: absolute;
+ width: 200px;
+ z-index: 4; }
+ .jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above {
+ bottom: 32px;
+ left: -98px; }
+ .jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below {
+ top: 32px;
+ left: -98px; }
+ .jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left {
+ top: -7px;
+ right: 32px; }
+ .jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right {
+ top: -7px;
+ left: 32px; }
+ .jsoneditor-schema-error .jsoneditor-popover:before {
+ border-right: 7px solid transparent;
+ border-left: 7px solid transparent;
+ content: '';
+ display: block;
+ left: 50%;
+ margin-left: -7px;
+ position: absolute; }
+ .jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above:before {
+ border-top: 7px solid #4c4c4c;
+ bottom: -7px; }
+ .jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below:before {
+ border-bottom: 7px solid #4c4c4c;
+ top: -7px; }
+ .jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left:before {
+ border-left: 7px solid #4c4c4c;
+ border-top: 7px solid transparent;
+ border-bottom: 7px solid transparent;
+ content: '';
+ top: 19px;
+ right: -14px;
+ left: inherit;
+ margin-left: inherit;
+ margin-top: -10px;
+ position: absolute; }
+ .jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right:before {
+ border-right: 7px solid #4c4c4c;
+ border-top: 7px solid transparent;
+ border-bottom: 7px solid transparent;
+ content: '';
+ top: 19px;
+ left: -14px;
+ margin-left: inherit;
+ margin-top: -10px;
+ position: absolute; }
+ .jsoneditor-schema-error:hover .jsoneditor-popover,
+ .jsoneditor-schema-error:focus .jsoneditor-popover {
+ display: block;
+ -webkit-animation: fade-in .3s linear 1, move-up .3s linear 1;
+ -moz-animation: fade-in .3s linear 1, move-up .3s linear 1;
+ -ms-animation: fade-in .3s linear 1, move-up .3s linear 1; }
+
+@-webkit-keyframes fade-in {
+ from {
+ opacity: 0; }
+ to {
+ opacity: 1; } }
+
+@-moz-keyframes fade-in {
+ from {
+ opacity: 0; }
+ to {
+ opacity: 1; } }
+
+@-ms-keyframes fade-in {
+ .jsoneditor-schema-error from {
+ opacity: 0; }
+ .jsoneditor-schema-error to {
+ opacity: 1; } }
diff --git a/src/popover.less b/src/jsoneditor/components/popover.scss
similarity index 98%
rename from src/popover.less
rename to src/jsoneditor/components/popover.scss
index ffcf14a..ff21970 100644
--- a/src/popover.less
+++ b/src/jsoneditor/components/popover.scss
@@ -64,7 +64,7 @@
right: -14px;
left: inherit;
margin-left: inherit;
- margin-top: -7px;
+ margin-top: -10px;
position: absolute;
}
@@ -76,7 +76,7 @@
top: 19px;
left: -14px;
margin-left: inherit;
- margin-top: -7px;
+ margin-top: -10px;
position: absolute;
}
diff --git a/src/components/utils/domSelector.js b/src/jsoneditor/components/utils/domSelector.js
similarity index 100%
rename from src/components/utils/domSelector.js
rename to src/jsoneditor/components/utils/domSelector.js
diff --git a/src/constants.js b/src/jsoneditor/constants.js
similarity index 100%
rename from src/constants.js
rename to src/jsoneditor/constants.js
diff --git a/src/eson.js b/src/jsoneditor/eson.js
similarity index 94%
rename from src/eson.js
rename to src/jsoneditor/eson.js
index e9ebd7c..112bc0d 100644
--- a/src/eson.js
+++ b/src/jsoneditor/eson.js
@@ -1,5 +1,3 @@
-// @flow weak
-
/**
* This file contains functions to act on a ESON object.
* All functions are pure and don't mutate the ESON.
@@ -14,12 +12,6 @@ import times from 'lodash/times'
import initial from 'lodash/initial'
import last from 'lodash/last'
-import type {
- ESON, ESONPointer, Selection,
- Path,
- JSONType
-} from './types'
-
export const SELECTED = 1
export const SELECTED_END = 2
export const SELECTED_BEFORE = 3
@@ -38,8 +30,8 @@ export function expandAll (path) {
/**
*
- * @param {JSONType} json
- * @param {JSONPath} path
+ * @param {JSON} json
+ * @param {Path} path
* @return {ESON}
*/
export function jsonToEson (json, path = []) {
@@ -69,7 +61,7 @@ export function jsonToEson (json, path = []) {
* @param {ESON} eson
* @return {Object | Array | string | number | boolean | null} json
*/
-export function esonToJson (eson: ESON) {
+export function esonToJson (eson) {
switch (eson[META].type) {
case 'Array':
return eson.map(item => esonToJson(item))
@@ -154,6 +146,7 @@ export function updatePaths(eson, path = []) {
* @return {ESON}
*/
export function expand (eson, filterCallback, expanded = true) {
+ // TODO: adjust expand to have a filterCallback which can return true, false, or undefined. In the latter case, the expanded state is left as is.
return transform(eson, function (value, path) {
return ((value[META].type === 'Array' || value[META].type === 'Object') && filterCallback(path))
? expandOne(value, [], expanded)
@@ -215,7 +208,7 @@ export function applyErrors (eson, errors = []) {
* Cleanup meta data from an eson object
* @param {ESON} eson Object to be cleaned up
* @param {String} field Field name, for example 'error' or 'selected'
- * @param {String[] | JSONPath[]} [ignorePaths=[]] An optional array with paths to be ignored
+ * @param {Path[]} [ignorePaths=[]] An optional array with paths to be ignored
* @return {ESON}
*/
export function cleanupMetaData(eson, field, ignorePaths = []) {
@@ -395,8 +388,8 @@ export function applySelection (eson, selection) {
return updatedObj
}
else { // root[META].type === 'Array'
- const startIndex = parseInt(start)
- const endIndex = parseInt(end)
+ const startIndex = parseInt(start, 10)
+ const endIndex = parseInt(end, 10)
const minIndex = Math.min(startIndex, endIndex)
const maxIndex = Math.max(startIndex, endIndex) + 1 // include max index itself
@@ -434,8 +427,8 @@ export function findSelectionIndices (root, rootPath, selection) {
const end = (selection.after || selection.before || selection.end)[rootPath.length]
// if no object we assume it's an Array
- const startIndex = root[META].type === 'Object' ? root[META].props.indexOf(start) : parseInt(start)
- const endIndex = root[META].type === 'Object' ? root[META].props.indexOf(end) : parseInt(end)
+ const startIndex = root[META].type === 'Object' ? root[META].props.indexOf(start) : parseInt(start, 10)
+ const endIndex = root[META].type === 'Object' ? root[META].props.indexOf(end) : parseInt(end, 10)
const minIndex = Math.min(startIndex, endIndex)
const maxIndex = Math.max(startIndex, endIndex) +
@@ -446,8 +439,11 @@ export function findSelectionIndices (root, rootPath, selection) {
/**
* Get the JSON paths from a selection, sorted from first to last
+ * @param {ESON} eson
+ * @param {Selection} selection
+ * @return {Path[]}
*/
-export function pathsFromSelection (eson, selection: Selection): Path[] {
+export function pathsFromSelection (eson, selection) {
// find the parent node shared by both start and end of the selection
const rootPath = findRootPath(selection)
const root = getIn(eson, rootPath)
@@ -468,7 +464,7 @@ export function pathsFromSelection (eson, selection: Selection): Path[] {
* @param {Path[]} paths
* @return {Array.<{name: string, value: JSONType}>}
*/
-export function contentsFromPaths (data: ESON, paths: Path[]) {
+export function contentsFromPaths (data, paths) {
return paths.map(path => {
return {
name: last(path),
@@ -508,8 +504,11 @@ export function findRootPath(selection) {
/**
* Find the common path of two paths.
* For example findCommonRoot(['arr', '1', 'name'], ['arr', '1', 'address', 'contact']) returns ['arr', '1']
+ * @param {Path} path1
+ * @param {Path} path2
+ * @return {Path}
*/
-function findSharedPath (path1: Path, path2: Path): Path {
+function findSharedPath (path1, path2) {
let i = 0;
while (i < path1.length && path1[i] === path2[i]) {
i++;
@@ -536,7 +535,7 @@ export function pathExists (eson, path) {
if (Array.isArray(eson)) {
// index of an array
- return pathExists(eson[parseInt(path[0])], path.slice(1))
+ return pathExists(eson[parseInt(path[0], 10)], path.slice(1))
}
else { // Object
// object property. find the index of this property
@@ -583,9 +582,9 @@ export function findNextProp (parent, prop) {
* Parse a JSON Pointer
* WARNING: this is not a complete implementation
* @param {string} pointer
- * @return {Array}
+ * @return {Path}
*/
-export function parseJSONPointer (pointer: string) {
+export function parseJSONPointer (pointer) {
const path = pointer.split('/')
path.shift() // remove the first empty entry
@@ -598,7 +597,7 @@ export function parseJSONPointer (pointer: string) {
* @param {Path} path
* @return {string}
*/
-export function compileJSONPointer (path: Path) {
+export function compileJSONPointer (path) {
return path
.map(p => '/' + String(p).replace(/~/g, '~0').replace(/\//g, '~1'))
.join('')
@@ -612,7 +611,7 @@ export function compileJSONPointer (path: Path) {
* @param {String} search
* @return {boolean} Returns true if `search` is found in `text`
*/
-export function containsCaseInsensitive (text: string, search: string): boolean {
+export function containsCaseInsensitive (text, search) {
return String(text).toLowerCase().indexOf(search.toLowerCase()) !== -1
}
@@ -620,7 +619,7 @@ export function containsCaseInsensitive (text: string, search: string): boolean
* Get a new "unique" id. Id's are created from an incremental counter.
* @return {number}
*/
-export function createId () : number {
+export function createId () {
_id++
return _id
}
diff --git a/test/eson.test.js b/src/jsoneditor/eson.test.js
similarity index 59%
rename from test/eson.test.js
rename to src/jsoneditor/eson.test.js
index 200cddb..926468f 100644
--- a/test/eson.test.js
+++ b/src/jsoneditor/eson.test.js
@@ -1,8 +1,7 @@
'use strict'
import { readFileSync } from 'fs'
-import test from 'ava'
-import { setIn, getIn, deleteIn } from '../src/utils/immutabilityHelpers'
+import { setIn, getIn, deleteIn } from './utils/immutabilityHelpers'
import {
META,
esonToJson, pathExists, transform,
@@ -12,17 +11,17 @@ import {
previousSearchResult,
applySelection, pathsFromSelection,
SELECTED, SELECTED_END
-} from '../src/eson'
+} from './eson'
import 'console.table'
import repeat from 'lodash/repeat'
import { assertDeepEqualEson } from './utils/assertDeepEqualEson'
-test('jsonToEson', t => {
- assertDeepEqualEson(t, jsonToEson(1), {[META]: {id: '[ID]', path: [], type: 'value', value: 1}})
- assertDeepEqualEson(t, jsonToEson("foo"), {[META]: {id: '[ID]', path: [], type: 'value', value: "foo"}})
- assertDeepEqualEson(t, jsonToEson(null), {[META]: {id: '[ID]', path: [], type: 'value', value: null}})
- assertDeepEqualEson(t, jsonToEson(false), {[META]: {id: '[ID]', path: [], type: 'value', value: false}})
- assertDeepEqualEson(t, jsonToEson({a:1, b: 2}), {
+test('jsonToEson', () => {
+ assertDeepEqualEson(jsonToEson(1), {[META]: {id: '[ID]', path: [], type: 'value', value: 1}})
+ assertDeepEqualEson(jsonToEson("foo"), {[META]: {id: '[ID]', path: [], type: 'value', value: "foo"}})
+ assertDeepEqualEson(jsonToEson(null), {[META]: {id: '[ID]', path: [], type: 'value', value: null}})
+ assertDeepEqualEson(jsonToEson(false), {[META]: {id: '[ID]', path: [], type: 'value', value: false}})
+ assertDeepEqualEson(jsonToEson({a:1, b: 2}), {
[META]: {id: '[ID]', path: [], type: 'Object', props: ['a', 'b']},
a: {[META]: {id: '[ID]', path: ['a'], type: 'value', value: 1}},
b: {[META]: {id: '[ID]', path: ['b'], type: 'value', value: 2}}
@@ -34,10 +33,10 @@ test('jsonToEson', t => {
{[META]: {id: '[ID]', path: ['1'], type: 'value', value: 2}}
]
expected[META] = {id: '[ID]', path: [], type: 'Array'}
- assertDeepEqualEson(t, actual, expected)
+ assertDeepEqualEson(actual, expected)
})
-test('esonToJson', t => {
+test('esonToJson', () => {
const json = {
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -47,10 +46,10 @@ test('esonToJson', t => {
"bool": false
}
const eson = jsonToEson(json)
- t.deepEqual(esonToJson(eson), json)
+ expect(esonToJson(eson)).toEqual(json)
})
-test('expand a single path', t => {
+test('expand a single path', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -62,15 +61,15 @@ test('expand a single path', t => {
const path = ['obj', 'arr', 2]
const collapsed = expandOne(eson, path, false)
- t.is(collapsed.obj.arr[2][META].expanded, false)
- assertDeepEqualEson(t, deleteIn(collapsed, path.concat([META, 'expanded'])), eson)
+ expect(collapsed.obj.arr[2][META].expanded).toEqual(false)
+ assertDeepEqualEson(deleteIn(collapsed, path.concat([META, 'expanded'])), eson)
const expanded = expandOne(eson, path, true)
- t.is(expanded.obj.arr[2][META].expanded, true)
- assertDeepEqualEson(t, deleteIn(expanded, path.concat([META, 'expanded'])), eson)
+ expect(expanded.obj.arr[2][META].expanded).toEqual(true)
+ assertDeepEqualEson(deleteIn(expanded, path.concat([META, 'expanded'])), eson)
})
-test('expand all objects/arrays on a path', t => {
+test('expand all objects/arrays on a path', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -83,16 +82,16 @@ test('expand all objects/arrays on a path', t => {
const path = ['obj', 'arr', 2]
const collapsed = expandPath(eson, path, false)
- t.is(collapsed[META].expanded, false)
- t.is(collapsed.obj[META].expanded, false)
- t.is(collapsed.obj.arr[META].expanded, false)
- t.is(collapsed.obj.arr[2][META].expanded, false)
+ expect(collapsed[META].expanded).toEqual(false)
+ expect(collapsed.obj[META].expanded).toEqual(false)
+ expect(collapsed.obj.arr[META].expanded).toEqual(false)
+ expect(collapsed.obj.arr[2][META].expanded).toEqual(false)
const expanded = expandPath(eson, path, true)
- t.is(expanded[META].expanded, true)
- t.is(expanded.obj[META].expanded, true)
- t.is(expanded.obj.arr[META].expanded, true)
- t.is(expanded.obj.arr[2][META].expanded, true)
+ expect(expanded[META].expanded).toEqual(true)
+ expect(expanded.obj[META].expanded).toEqual(true)
+ expect(expanded.obj.arr[META].expanded).toEqual(true)
+ expect(expanded.obj.arr[2][META].expanded).toEqual(true)
let orig = expanded
orig = deleteIn(orig, [].concat([META, 'expanded']))
@@ -100,10 +99,10 @@ test('expand all objects/arrays on a path', t => {
orig = deleteIn(orig, ['obj', 'arr'].concat([META, 'expanded']))
orig = deleteIn(orig, ['obj', 'arr', 2].concat([META, 'expanded']))
- assertDeepEqualEson(t, orig, eson)
+ assertDeepEqualEson(orig, eson)
})
-test('expand a callback', t => {
+test('expand a callback', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -118,19 +117,19 @@ test('expand a callback', t => {
}
const expandedValue = false
const collapsed = expand(eson, filterCallback, expandedValue)
- t.is(collapsed[META].expanded, undefined)
- t.is(collapsed.obj[META].expanded, expandedValue)
- t.is(collapsed.obj.arr[META].expanded, expandedValue)
- t.is(collapsed.obj.arr[2][META].expanded, expandedValue)
+ expect(collapsed[META].expanded).toEqual(undefined)
+ expect(collapsed.obj[META].expanded).toEqual(expandedValue)
+ expect(collapsed.obj.arr[META].expanded).toEqual(expandedValue)
+ expect(collapsed.obj.arr[2][META].expanded).toEqual(expandedValue)
let orig = collapsed
orig = deleteIn(orig, ['obj'].concat([META, 'expanded']))
orig = deleteIn(orig, ['obj', 'arr'].concat([META, 'expanded']))
orig = deleteIn(orig, ['obj', 'arr', 2].concat([META, 'expanded']))
- assertDeepEqualEson(t, orig, eson)
+ assertDeepEqualEson(orig, eson)
})
-test('expand a callback should not change the object when nothing happens', t => {
+test('expand a callback should not change the object when nothing happens', () => {
const eson = jsonToEson({a: [1,2,3], b: {c: 4}})
function callback (path) {
return false
@@ -138,39 +137,39 @@ test('expand a callback should not change the object when nothing happens', t =>
const expanded = false
const collapsed = expand(eson, callback, expanded)
- t.is(collapsed, eson)
+ expect(collapsed).toBe(eson)
})
-test('transform (no change)', t => {
+test('transform (no change)', () => {
const eson = jsonToEson({a: [1,2,3], b: {c: 4}})
const updated = transform(eson, (value, path) => value)
- assertDeepEqualEson(t, updated, eson)
- t.is(updated, eson)
+ assertDeepEqualEson(updated, eson)
+ expect(updated).toBe(eson)
})
-test('transform (change based on value)', t => {
+test('transform (change based on value)', () => {
const eson = jsonToEson({a: [1,2,3], b: {c: 4}})
const updated = transform(eson,
(value, path) => value[META].value === 2 ? jsonToEson(20, path) : value)
const expected = jsonToEson({a: [1,20,3], b: {c: 4}})
- assertDeepEqualEson(t, updated, expected)
- t.is(updated.b, eson.b) // should not have replaced b
+ assertDeepEqualEson(updated, expected)
+ expect(updated.b).toBe(eson.b) // should not have replaced b
})
-test('transform (change based on path)', t => {
+test('transform (change based on path)', () => {
const eson = jsonToEson({a: [1,2,3], b: {c: 4}})
const updated = transform(eson,
(value, path) => path.join('.') === 'a.1' ? jsonToEson(20, path) : value)
const expected = jsonToEson({a: [1,20,3], b: {c: 4}})
- assertDeepEqualEson(t, updated, expected)
- t.is(updated.b, eson.b) // should not have replaced b
+ assertDeepEqualEson(updated, expected)
+ expect(updated.b).toBe(eson.b) // should not have replaced b
})
-test('pathExists', t => {
+test('pathExists', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -180,29 +179,29 @@ test('pathExists', t => {
"bool": false
})
- t.is(pathExists(eson, ['obj', 'arr', 2, 'first']), true)
- t.is(pathExists(eson, ['obj', 'foo']), false)
- t.is(pathExists(eson, ['obj', 'foo', 'bar']), false)
- t.is(pathExists(eson, []), true)
+ expect(pathExists(eson, ['obj', 'arr', 2, 'first'])).toEqual(true)
+ expect(pathExists(eson, ['obj', 'foo'])).toEqual(false)
+ expect(pathExists(eson, ['obj', 'foo', 'bar'])).toEqual(false)
+ expect(pathExists(eson, [])).toEqual(true)
})
-test('parseJSONPointer', t => {
- t.deepEqual(parseJSONPointer('/obj/a'), ['obj', 'a'])
- t.deepEqual(parseJSONPointer('/arr/-'), ['arr', '-'])
- t.deepEqual(parseJSONPointer('/foo/~1~0 ~0~1'), ['foo', '/~ ~/'])
- t.deepEqual(parseJSONPointer('/obj'), ['obj'])
- t.deepEqual(parseJSONPointer('/'), [''])
- t.deepEqual(parseJSONPointer(''), [])
+test('parseJSONPointer', () => {
+ expect(parseJSONPointer('/obj/a')).toEqual(['obj', 'a'])
+ expect(parseJSONPointer('/arr/-')).toEqual(['arr', '-'])
+ expect(parseJSONPointer('/foo/~1~0 ~0~1')).toEqual(['foo', '/~ ~/'])
+ expect(parseJSONPointer('/obj')).toEqual(['obj'])
+ expect(parseJSONPointer('/')).toEqual([''])
+ expect(parseJSONPointer('')).toEqual([])
})
-test('compileJSONPointer', t => {
- t.deepEqual(compileJSONPointer(['foo', 'bar']), '/foo/bar')
- t.deepEqual(compileJSONPointer(['foo', '/~ ~/']), '/foo/~1~0 ~0~1')
- t.deepEqual(compileJSONPointer(['']), '/')
- t.deepEqual(compileJSONPointer([]), '')
+test('compileJSONPointer', () => {
+ expect(compileJSONPointer(['foo', 'bar'])).toEqual('/foo/bar')
+ expect(compileJSONPointer(['foo', '/~ ~/'])).toEqual('/foo/~1~0 ~0~1')
+ expect(compileJSONPointer([''])).toEqual('/')
+ expect(compileJSONPointer([])).toEqual('')
})
-test('add and remove errors', t => {
+test('add and remove errors', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -222,19 +221,19 @@ test('add and remove errors', t => {
let expected = eson
expected = setIn(expected, ['obj', 'arr', '2', 'last', META, 'error'], jsonSchemaErrors[0])
expected = setIn(expected, ['nill', META, 'error'], jsonSchemaErrors[1])
- assertDeepEqualEson(t, actual1, expected)
+ assertDeepEqualEson(actual1, expected)
// re-applying the same errors should not change eson
const actual2 = applyErrors(actual1, jsonSchemaErrors)
- t.is(actual2, actual1)
+ expect(actual2).toBe(actual1)
// clear errors
const actual3 = applyErrors(actual2, [])
- assertDeepEqualEson(t, actual3, eson)
- t.is(actual3.str, eson.str) // shouldn't have touched values not affected by the errors
+ assertDeepEqualEson(actual3, eson)
+ expect(actual3.str).toEqual(eson.str) // shouldn't have touched values not affected by the errors
})
-test('search', t => {
+test('search', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -248,7 +247,7 @@ test('search', t => {
const matches = result.searchResult.matches
const active = result.searchResult.active
- t.deepEqual(matches, [
+ expect(matches).toEqual([
{path: ['obj', 'arr', '2', 'last'], area: 'property'},
{path: ['str'], area: 'value'},
{path: ['nill'], area: 'property'},
@@ -256,7 +255,7 @@ test('search', t => {
{path: ['bool'], area: 'property'},
{path: ['bool'], area: 'value'}
])
- t.deepEqual(active, {path: ['obj', 'arr', '2', 'last'], area: 'property'})
+ expect(active).toEqual({path: ['obj', 'arr', '2', 'last'], area: 'property'})
let expected = esonWithSearch
expected = setIn(expected, ['obj', 'arr', '2', 'last', META, 'searchProperty'], 'active')
@@ -266,10 +265,10 @@ test('search', t => {
expected = setIn(expected, ['bool', META, 'searchProperty'], 'normal')
expected = setIn(expected, ['bool', META, 'searchValue'], 'normal')
- assertDeepEqualEson(t, esonWithSearch, expected)
+ assertDeepEqualEson(esonWithSearch, expected)
})
-test('nextSearchResult', t => {
+test('nextSearchResult', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -280,37 +279,37 @@ test('nextSearchResult', t => {
})
const first = search(eson, 'A')
- t.deepEqual(first.searchResult.matches, [
+ expect(first.searchResult.matches).toEqual([
{path: ['obj', 'arr'], area: 'property'},
{path: ['obj', 'arr', '2', 'last'], area: 'property'},
{path: ['bool'], area: 'value'}
])
- t.deepEqual(first.searchResult.active, {path: ['obj', 'arr'], area: 'property'})
- t.is(getIn(first.eson, ['obj', 'arr', META, 'searchProperty']), 'active')
- t.is(getIn(first.eson, ['obj', 'arr', '2', 'last', META, 'searchProperty']), 'normal')
- t.is(getIn(first.eson, ['bool', META, 'searchValue']), 'normal')
+ expect(first.searchResult.active).toEqual({path: ['obj', 'arr'], area: 'property'})
+ expect(getIn(first.eson, ['obj', 'arr', META, 'searchProperty'])).toEqual('active')
+ expect(getIn(first.eson, ['obj', 'arr', '2', 'last', META, 'searchProperty'])).toEqual('normal')
+ expect(getIn(first.eson, ['bool', META, 'searchValue'])).toEqual('normal')
const second = nextSearchResult(first.eson, first.searchResult)
- t.deepEqual(second.searchResult.active, {path: ['obj', 'arr', '2', 'last'], area: 'property'})
- t.is(getIn(second.eson, ['obj', 'arr', META, 'searchProperty']), 'normal')
- t.is(getIn(second.eson, ['obj', 'arr', '2', 'last', META, 'searchProperty']), 'active')
- t.is(getIn(second.eson, ['bool', META, 'searchValue']), 'normal')
+ expect(second.searchResult.active).toEqual({path: ['obj', 'arr', '2', 'last'], area: 'property'})
+ expect(getIn(second.eson, ['obj', 'arr', META, 'searchProperty'])).toEqual('normal')
+ expect(getIn(second.eson, ['obj', 'arr', '2', 'last', META, 'searchProperty'])).toEqual('active')
+ expect(getIn(second.eson, ['bool', META, 'searchValue'])).toEqual('normal')
const third = nextSearchResult(second.eson, second.searchResult)
- t.deepEqual(third.searchResult.active, {path: ['bool'], area: 'value'})
- t.is(getIn(third.eson, ['obj', 'arr', META, 'searchProperty']), 'normal')
- t.is(getIn(third.eson, ['obj', 'arr', '2', 'last', META, 'searchProperty']), 'normal')
- t.is(getIn(third.eson, ['bool', META, 'searchValue']), 'active')
+ expect(third.searchResult.active).toEqual({path: ['bool'], area: 'value'})
+ expect(getIn(third.eson, ['obj', 'arr', META, 'searchProperty'])).toEqual('normal')
+ expect(getIn(third.eson, ['obj', 'arr', '2', 'last', META, 'searchProperty'])).toEqual('normal')
+ expect(getIn(third.eson, ['bool', META, 'searchValue'])).toEqual('active')
const wrappedAround = nextSearchResult(third.eson, third.searchResult)
- t.deepEqual(wrappedAround.searchResult.active, {path: ['obj', 'arr'], area: 'property'})
- t.is(getIn(wrappedAround.eson, ['obj', 'arr', META, 'searchProperty']), 'active')
- t.is(getIn(wrappedAround.eson, ['obj', 'arr', '2', 'last', META, 'searchProperty']), 'normal')
- t.is(getIn(wrappedAround.eson, ['bool', META, 'searchValue']), 'normal')
+ expect(wrappedAround.searchResult.active).toEqual({path: ['obj', 'arr'], area: 'property'})
+ expect(getIn(wrappedAround.eson, ['obj', 'arr', META, 'searchProperty'])).toEqual('active')
+ expect(getIn(wrappedAround.eson, ['obj', 'arr', '2', 'last', META, 'searchProperty'])).toEqual('normal')
+ expect(getIn(wrappedAround.eson, ['bool', META, 'searchValue'])).toEqual('normal')
})
-test('previousSearchResult', t => {
+test('previousSearchResult', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -321,37 +320,37 @@ test('previousSearchResult', t => {
})
const init = search(eson, 'A')
- t.deepEqual(init.searchResult.matches, [
+ expect(init.searchResult.matches).toEqual([
{path: ['obj', 'arr'], area: 'property'},
{path: ['obj', 'arr', '2', 'last'], area: 'property'},
{path: ['bool'], area: 'value'}
])
- t.deepEqual(init.searchResult.active, {path: ['obj', 'arr'], area: 'property'})
- t.is(getIn(init.eson, ['obj', 'arr', META, 'searchProperty']), 'active')
- t.is(getIn(init.eson, ['obj', 'arr', '2', 'last', META, 'searchProperty']), 'normal')
- t.is(getIn(init.eson, ['bool', META, 'searchValue']), 'normal')
+ expect(init.searchResult.active).toEqual({path: ['obj', 'arr'], area: 'property'})
+ expect(getIn(init.eson, ['obj', 'arr', META, 'searchProperty'])).toEqual('active')
+ expect(getIn(init.eson, ['obj', 'arr', '2', 'last', META, 'searchProperty'])).toEqual('normal')
+ expect(getIn(init.eson, ['bool', META, 'searchValue'])).toEqual('normal')
const third = previousSearchResult(init.eson, init.searchResult)
- t.deepEqual(third.searchResult.active, {path: ['bool'], area: 'value'})
- t.is(getIn(third.eson, ['obj', 'arr', META, 'searchProperty']), 'normal')
- t.is(getIn(third.eson, ['obj', 'arr', '2', 'last', META, 'searchProperty']), 'normal')
- t.is(getIn(third.eson, ['bool', META, 'searchValue']), 'active')
+ expect(third.searchResult.active).toEqual({path: ['bool'], area: 'value'})
+ expect(getIn(third.eson, ['obj', 'arr', META, 'searchProperty'])).toEqual('normal')
+ expect(getIn(third.eson, ['obj', 'arr', '2', 'last', META, 'searchProperty'])).toEqual('normal')
+ expect(getIn(third.eson, ['bool', META, 'searchValue'])).toEqual('active')
const second = previousSearchResult(third.eson, third.searchResult)
- t.deepEqual(second.searchResult.active, {path: ['obj', 'arr', '2', 'last'], area: 'property'})
- t.is(getIn(second.eson, ['obj', 'arr', META, 'searchProperty']), 'normal')
- t.is(getIn(second.eson, ['obj', 'arr', '2', 'last', META, 'searchProperty']), 'active')
- t.is(getIn(second.eson, ['bool', META, 'searchValue']), 'normal')
+ expect(second.searchResult.active).toEqual({path: ['obj', 'arr', '2', 'last'], area: 'property'})
+ expect(getIn(second.eson, ['obj', 'arr', META, 'searchProperty'])).toEqual('normal')
+ expect(getIn(second.eson, ['obj', 'arr', '2', 'last', META, 'searchProperty'])).toEqual('active')
+ expect(getIn(second.eson, ['bool', META, 'searchValue'])).toEqual('normal')
const first = previousSearchResult(second.eson, second.searchResult)
- t.deepEqual(first.searchResult.active, {path: ['obj', 'arr'], area: 'property'})
- t.is(getIn(first.eson, ['obj', 'arr', META, 'searchProperty']), 'active')
- t.is(getIn(first.eson, ['obj', 'arr', '2', 'last', META, 'searchProperty']), 'normal')
- t.is(getIn(first.eson, ['bool', META, 'searchValue']), 'normal')
+ expect(first.searchResult.active).toEqual({path: ['obj', 'arr'], area: 'property'})
+ expect(getIn(first.eson, ['obj', 'arr', META, 'searchProperty'])).toEqual('active')
+ expect(getIn(first.eson, ['obj', 'arr', '2', 'last', META, 'searchProperty'])).toEqual('normal')
+ expect(getIn(first.eson, ['bool', META, 'searchValue'])).toEqual('normal')
})
-test('selection (object)', t => {
+test('selection (object)', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -371,7 +370,7 @@ test('selection (object)', t => {
expected = setIn(expected, ['obj', META, 'selected'], SELECTED)
expected = setIn(expected, ['str', META, 'selected'], SELECTED)
expected = setIn(expected, ['nill', META, 'selected'], SELECTED_END)
- assertDeepEqualEson(t, actual, expected)
+ assertDeepEqualEson(actual, expected)
// test whether old selection results are cleaned up
const selection2 = {
@@ -382,10 +381,10 @@ test('selection (object)', t => {
let expected2 = eson
expected2 = setIn(expected2, ['nill', META, 'selected'], SELECTED)
expected2 = setIn(expected2, ['bool', META, 'selected'], SELECTED_END)
- assertDeepEqualEson(t, actual2, expected2)
+ assertDeepEqualEson(actual2, expected2)
})
-test('selection (array)', t => {
+test('selection (array)', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -405,10 +404,10 @@ test('selection (array)', t => {
expected = setIn(expected, ['obj', 'arr', '0', META, 'selected'], SELECTED_END)
expected = setIn(expected, ['obj', 'arr', '1', META, 'selected'], SELECTED)
- assertDeepEqualEson(t, actual, expected)
+ assertDeepEqualEson(actual, expected)
})
-test('selection (value)', t => {
+test('selection (value)', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -424,10 +423,10 @@ test('selection (value)', t => {
const actual = applySelection(eson, selection)
const expected = setIn(eson, ['obj', 'arr', '2', 'first', META, 'selected'], SELECTED_END)
- assertDeepEqualEson(t, actual, expected)
+ assertDeepEqualEson(actual, expected)
})
-test('selection (node)', t => {
+test('selection (node)', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -443,10 +442,10 @@ test('selection (node)', t => {
const actual = applySelection(eson, selection)
const expected = setIn(eson, ['obj', 'arr', META, 'selected'], SELECTED_END)
- assertDeepEqualEson(t, actual, expected)
+ assertDeepEqualEson(actual, expected)
})
-test('pathsFromSelection (object)', t => {
+test('pathsFromSelection (object)', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -460,14 +459,14 @@ test('pathsFromSelection (object)', t => {
end: ['nill']
}
- t.deepEqual(pathsFromSelection(eson, selection), [
+ expect(pathsFromSelection(eson, selection)).toEqual([
['obj'],
['str'],
['nill']
])
})
-test('pathsFromSelection (array)', t => {
+test('pathsFromSelection (array)', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -481,13 +480,13 @@ test('pathsFromSelection (array)', t => {
end: ['obj', 'arr', '0'] // note the "wrong" order of start and end
}
- t.deepEqual(pathsFromSelection(eson, selection), [
+ expect(pathsFromSelection(eson, selection)).toEqual([
['obj', 'arr', '0'],
['obj', 'arr', '1']
])
})
-test('pathsFromSelection (value)', t => {
+test('pathsFromSelection (value)', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -501,12 +500,12 @@ test('pathsFromSelection (value)', t => {
end: ['obj', 'arr', '2', 'first']
}
- t.deepEqual(pathsFromSelection(eson, selection), [
+ expect(pathsFromSelection(eson, selection)).toEqual([
['obj', 'arr', '2', 'first'],
])
})
-test('pathsFromSelection (before)', t => {
+test('pathsFromSelection (before)', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -519,10 +518,10 @@ test('pathsFromSelection (before)', t => {
before: ['obj', 'arr', '2', 'first']
}
- t.deepEqual(pathsFromSelection(eson, selection), [])
+ expect(pathsFromSelection(eson, selection)).toEqual([])
})
-test('pathsFromSelection (after)', t => {
+test('pathsFromSelection (after)', () => {
const eson = jsonToEson({
"obj": {
"arr": [1,2, {"first":3,"last":4}]
@@ -535,7 +534,7 @@ test('pathsFromSelection (after)', t => {
after: ['obj', 'arr', '2', 'first']
}
- t.deepEqual(pathsFromSelection(eson, selection), [])
+ expect(pathsFromSelection(eson, selection)).toEqual([])
})
// helper function to print JSON in the console
diff --git a/src/header.js b/src/jsoneditor/header.js
similarity index 100%
rename from src/header.js
rename to src/jsoneditor/header.js
diff --git a/src/jsoneditor/index.react.js b/src/jsoneditor/index.react.js
new file mode 100644
index 0000000..e87e2e5
--- /dev/null
+++ b/src/jsoneditor/index.react.js
@@ -0,0 +1,7 @@
+import _JSONEditor from './components/JSONEditor'
+
+export const JSONEditor = _JSONEditor
+
+export default JSONEditor
+
+// TODO: export util functions like immutability helpers
diff --git a/src/jsoneditor/index.vanilla.js b/src/jsoneditor/index.vanilla.js
new file mode 100644
index 0000000..62335c5
--- /dev/null
+++ b/src/jsoneditor/index.vanilla.js
@@ -0,0 +1,275 @@
+import React, { createElement as h, Component } from 'react'
+import * as ReactDOM from 'react-dom'
+import JSONEditor from './components/JSONEditor'
+import CodeMode from './components/CodeMode'
+import TextMode from './components/TextMode'
+import TreeMode from './components/TreeMode'
+import { compileJSONPointer, parseJSONPointer } from './eson'
+
+const modes = {
+ code: CodeMode,
+ form: TreeMode,
+ text: TextMode,
+ tree: TreeMode,
+ view: TreeMode
+}
+
+/**
+ * Create a new json editor
+ * @param {HTMLElement} container
+ * @param {Options} options
+ * @return {Object}
+ * @constructor
+ */
+function jsoneditor (container, options = {}) {
+ if (arguments.length > 2) {
+ throw new Error ('Passing JSON via the constructor has been deprecated. ' +
+ 'Please pass JSON via editor.set(json).')
+ }
+
+ const editor = {
+ isJSONEditor: true,
+
+ _container: container,
+ _options: options,
+ _schema: null,
+ _modes: modes,
+ _mode: null,
+ _component: null
+ }
+
+ /**
+ * Set JSON object in editor
+ * @param {Object | Array | string | number | boolean | null} json JSON data
+ * @param {Options} [options]
+ */
+ editor.set = function (json, options = {}) {
+ // TODO: remove options from editor.set, move them to global options instead
+ editor._component.set(json, options)
+ }
+
+ /**
+ * Get JSON from the editor
+ * @returns {Object | Array | string | number | boolean | null} json
+ */
+ editor.get = function () {
+ return editor._component.get()
+ }
+
+ /**
+ * Set a string containing a JSON document
+ * @param {string} text
+ */
+ editor.setText = function (text) {
+ editor._component.setText(text)
+ }
+
+ /**
+ * Get the JSON document as text
+ * @return {string} text
+ */
+ editor.getText = function () {
+ return editor._component.getText()
+ }
+
+ /**
+ * Format the json.
+ * Only applicable for mode 'text' and 'code' (in other modes nothing will
+ * happen)
+ */
+ editor.format = function () {
+ const formatted = TextMode.format(editor._component.getText(), TextMode.getIndentation(this.props))
+ editor._component.setText(formatted)
+
+ // TODO: test whether this doesn't destroy the current state
+ }
+
+ /**
+ * Compact the json.
+ * Only applicable for mode 'text' and 'code' (in other modes nothing will
+ * happen)
+ */
+ editor.compact = function () {
+ const compacted = TextMode.compact(editor._component.getText())
+ editor._component.setText(compacted)
+
+ // TODO: test whether this doesn't destroy the current state
+ }
+
+ /**
+ * Set a JSON schema for validation of the JSON object.
+ * To remove the schema, call JSONEditor.setSchema(null)
+ * @param {Object | null} schema
+ */
+ editor.setSchema = function (schema) {
+ editor._schema = schema || null
+ editor._component.setSchema(schema)
+ }
+
+ /**
+ * Expand one or multiple objects or arrays.
+ *
+ * Example usage:
+ *
+ * // expand one item at a specific path
+ * editor.expand(['foo', 1, 'bar'])
+ *
+ * // expand all items nested at a maximum depth of 2
+ * editor.expand(function (path) {
+ * return path.length <= 2
+ * })
+ *
+ * @param {Path | function (path: Path) : boolean} callback
+ */
+ editor.expand = function (callback) {
+ editor._component.expand(callback)
+ }
+
+ /**
+ * Collapse one or multiple objects or arrays
+ *
+ * Example usage:
+ *
+ * // collapse one item at a specific path
+ * editor.collapse(['foo', 1, 'bar'])
+ *
+ * // collapse all items nested deeper than 2
+ * editor.collapse(function (path) {
+ * return path.length > 2
+ * })
+ *
+ * @param {Path | function (path: Path) : boolean} callback
+ */
+ editor.collapse = function (callback) {
+ editor._component.collapse(callback)
+ }
+
+ /**
+ * Apply a JSONPatch to the current JSON document
+ * @param {Array} actions JSONPatch actions
+ * @return {Array} Returns a JSONPatch to revert the applied patch
+ */
+ editor.patch = function (actions) {
+ return editor._component.patch(actions)
+ }
+
+ /**
+ * Change the mode of the editor
+ * @param {'tree' | 'text'} mode
+ */
+ editor.setMode = function (mode) {
+ // TODO: strongly simplify .setMode, no error handling or logic here
+
+ if (mode === editor._mode) {
+ // mode stays the same. do nothing
+ return
+ }
+
+ let success = false
+ let initialChildCount = editor._container.children.length
+ let component = null
+ try {
+ // find the constructor for the selected mode
+ const constructor = editor._modes[mode]
+ if (!constructor) {
+ throw new Error('Unknown mode "' + mode + '". ' +
+ 'Choose from: ' + Object.keys(modes).join(', '))
+ }
+
+ function handleChangeMode (mode) {
+ // we execute editor.setMode on the next tick, after the click event
+ // has been finished. This is a workaround for preact which does not
+ // neatly replace a rendered app whilst the event is still being handled.
+ setTimeout(() => {
+ const prevMode = editor._mode
+
+ editor.setMode(mode)
+
+ if (editor._options.onChangeMode) {
+ editor._options.onChangeMode(mode, prevMode)
+ }
+ })
+ }
+
+ function handleError (err) {
+ if (editor._options && editor._options.onError) {
+ editor._options.onError(err)
+ }
+ else {
+ console.error(err)
+ }
+ }
+
+ // create new component
+ component = ReactDOM.render(
+ h(constructor, {
+ ...options,
+ mode,
+ onChangeMode: handleChangeMode,
+ onError: handleError
+ }),
+ editor._container)
+
+ // apply JSON schema (if any)
+ try {
+ component.setSchema(editor._schema)
+ }
+ catch (err) {
+ handleError(err)
+ }
+
+ // set JSON (this can throw an error)
+ const text = editor._component ? editor._component.getText() : '{}'
+ component.setText(text)
+
+ // when setText didn't fail, we will reach this point
+ success = true
+ }
+ catch (err) {
+ console.error(err)
+ }
+ finally {
+ if (success) {
+ editor._mode = mode
+ editor._component = component
+ }
+ else {
+ // TODO: fall back to text mode when loading code mode failed?
+
+ // remove the just created component if an error occurred during construction
+ // (for example when construction or setText failed)
+ const childCount = editor._container.children.length
+ if (childCount !== initialChildCount) {
+ editor._container.removeChild(editor._container.lastChild)
+ }
+ }
+ }
+ }
+
+ /**
+ * Remove the editor from the DOM and clean up workers
+ */
+ editor.destroy = function () {
+ ReactDOM.unmountComponentAtNode(editor._container)
+ }
+
+ const mode = options && options.mode || (options.modes && options.modes[0]) || 'tree';
+ editor.setMode(mode)
+
+ return editor
+}
+
+// expose util functions
+jsoneditor.utils = {
+ compileJSONPointer,
+ parseJSONPointer
+}
+
+// expose React component
+jsoneditor.JSONEditor = JSONEditor
+
+// expose React itself
+jsoneditor.React = React
+jsoneditor.ReactDOM = ReactDOM
+
+module.exports = jsoneditor
diff --git a/src/patchEson.js b/src/jsoneditor/patchEson.js
similarity index 99%
rename from src/patchEson.js
rename to src/jsoneditor/patchEson.js
index 1bd3e0d..195fbeb 100644
--- a/src/patchEson.js
+++ b/src/jsoneditor/patchEson.js
@@ -2,7 +2,6 @@ import isEqual from 'lodash/isEqual'
import initial from 'lodash/initial'
import last from 'lodash/last'
-import type { ESON, Path, ESONPatch } from './types'
import {
setIn, updateIn, getIn, deleteIn, insertAt,
cloneWithSymbols
diff --git a/test/patchEson.test.js b/src/jsoneditor/patchEson.test.js
similarity index 76%
rename from test/patchEson.test.js
rename to src/jsoneditor/patchEson.test.js
index b27dff1..9cad306 100644
--- a/test/patchEson.test.js
+++ b/src/jsoneditor/patchEson.test.js
@@ -1,10 +1,11 @@
+'use strict'
+
import { readFileSync } from 'fs'
-import test from 'ava'
-import { META, jsonToEson, esonToJson } from '../src/eson'
-import { patchEson } from '../src/patchEson'
+import { META, jsonToEson, esonToJson } from './eson'
+import { patchEson } from './patchEson'
import { assertDeepEqualEson } from './utils/assertDeepEqualEson'
-test('jsonpatch add', t => {
+test('jsonpatch add', () => {
const json = {
arr: [1,2,3],
obj: {a : 2}
@@ -19,16 +20,16 @@ test('jsonpatch add', t => {
const patchedData = result.data
const revert = result.revert
- assertDeepEqualEson(t, patchedData, jsonToEson({
+ assertDeepEqualEson(patchedData, jsonToEson({
arr: [1,2,3],
obj: {a : 2, b: {foo: 'bar'}}
}))
- t.deepEqual(revert, [
+ expect(revert).toEqual([
{op: 'remove', path: '/obj/b'}
])
})
-test('jsonpatch add: insert in matrix', t => {
+test('jsonpatch add: insert in matrix', () => {
const json = {
arr: [1,2,3],
obj: {a : 2}
@@ -43,16 +44,16 @@ test('jsonpatch add: insert in matrix', t => {
const patchedData = result.data
const revert = result.revert
- assertDeepEqualEson(t, patchedData, jsonToEson({
+ assertDeepEqualEson(patchedData, jsonToEson({
arr: [1,4,2,3],
obj: {a : 2}
}))
- t.deepEqual(revert, [
+ expect(revert).toEqual([
{op: 'remove', path: '/arr/1'}
])
})
-test('jsonpatch add: append to matrix', t => {
+test('jsonpatch add: append to matrix', () => {
const json = {
arr: [1,2,3],
obj: {a : 2}
@@ -67,16 +68,16 @@ test('jsonpatch add: append to matrix', t => {
const patchedData = result.data
const revert = result.revert
- assertDeepEqualEson(t, patchedData, jsonToEson({
+ assertDeepEqualEson(patchedData, jsonToEson({
arr: [1,2,3,4],
obj: {a : 2}
}))
- t.deepEqual(revert, [
+ expect(revert).toEqual([
{op: 'remove', path: '/arr/3'}
])
})
-test('jsonpatch remove', t => {
+test('jsonpatch remove', () => {
const json = {
arr: [1,2,3],
obj: {a : 4}
@@ -93,11 +94,11 @@ test('jsonpatch remove', t => {
const revert = result.revert
const patchedJson = esonToJson(patchedData)
- assertDeepEqualEson(t, patchedData, jsonToEson({
+ assertDeepEqualEson(patchedData, jsonToEson({
arr: [1,3],
obj: {}
}))
- t.deepEqual(revert, [
+ expect(revert).toEqual([
{op: 'add', path: '/arr/1', value: 2, meta: {type: 'value'}},
{op: 'add', path: '/obj/a', value: 4, meta: {type: 'value', before: null}}
])
@@ -109,11 +110,11 @@ test('jsonpatch remove', t => {
const revert2 = result2.revert
const patchedJson2 = esonToJson(patchedData2)
- t.deepEqual(patchedJson2, json)
- t.deepEqual(revert2, patch)
+ expect(patchedJson2).toEqual(json)
+ expect(revert2).toEqual(patch)
})
-test('jsonpatch replace', t => {
+test('jsonpatch replace', () => {
const json = {
arr: [1,2,3],
obj: {a : 4}
@@ -130,11 +131,11 @@ test('jsonpatch replace', t => {
const revert = result.revert
const patchedJson = esonToJson(patchedData)
- assertDeepEqualEson(t, patchedData, jsonToEson({
+ assertDeepEqualEson(patchedData, jsonToEson({
arr: [1,200,3],
obj: {a: 400}
}))
- t.deepEqual(revert, [
+ expect(revert).toEqual([
{op: 'replace', path: '/arr/1', value: 2, meta: {type: 'value'}},
{op: 'replace', path: '/obj/a', value: 4, meta: {type: 'value'}}
])
@@ -146,14 +147,14 @@ test('jsonpatch replace', t => {
const revert2 = result2.revert
const patchedJson2 = esonToJson(patchedData2)
- t.deepEqual(patchedJson2, json)
- t.deepEqual(revert2, [
+ expect(patchedJson2).toEqual(json)
+ expect(revert2).toEqual([
{op: 'replace', path: '/obj/a', value: 400, meta: {type: 'value'}},
{op: 'replace', path: '/arr/1', value: 200, meta: {type: 'value'}}
])
})
-test('jsonpatch replace (keep ids intact)', t => {
+test('jsonpatch replace (keep ids intact)', () => {
const json = { value: 42 }
const patch = [
{op: 'replace', path: '/value', value: 100}
@@ -165,10 +166,10 @@ test('jsonpatch replace (keep ids intact)', t => {
const patchedData = patchEson(data, patch).data
const patchedValueId = patchedData.value[META].id
- t.is(patchedValueId, valueId)
+ expect(patchedValueId).toEqual(valueId)
})
-test('jsonpatch copy', t => {
+test('jsonpatch copy', () => {
const json = {
arr: [1,2,3],
obj: {a : 4}
@@ -184,11 +185,11 @@ test('jsonpatch copy', t => {
const revert = result.revert
const patchedJson = esonToJson(patchedData)
- t.deepEqual(patchedJson, {
+ expect(patchedJson).toEqual({
arr: [1, 2, {a:4}, 3],
obj: {a: 4}
})
- t.deepEqual(revert, [
+ expect(revert).toEqual([
{op: 'remove', path: '/arr/2'}
])
@@ -199,13 +200,13 @@ test('jsonpatch copy', t => {
const revert2 = result2.revert
const patchedJson2 = esonToJson(patchedData2)
- t.deepEqual(patchedJson2, json)
- t.deepEqual(revert2, [
+ expect(patchedJson2).toEqual(json)
+ expect(revert2).toEqual([
{op: 'add', path: '/arr/2', value: {a: 4}, meta: {type: 'Object'}}
])
})
-test('jsonpatch copy (keeps the same ids)', t => {
+test('jsonpatch copy (keeps the same ids)', () => {
const json = { foo: { bar: 42 } }
const patch = [
{op: 'copy', from: '/foo', path: '/copied'}
@@ -221,16 +222,16 @@ test('jsonpatch copy (keeps the same ids)', t => {
const copiedId = patchedData.copied[META].id
const patchedCopiedBarId = patchedData.copied.bar[META].id
- t.is(patchedFooId, fooId, 'same foo id')
- t.is(patchedBarId, barId, 'same bar id')
+ expect(patchedFooId).toEqual(fooId)
+ expect(patchedBarId).toEqual(barId)
- t.not(copiedId, fooId, 'different id of property copied')
+ expect(copiedId).not.toEqual(fooId)
// The id's of the copied childs are the same, that's okish, they will not bite each other
- t.is(patchedCopiedBarId, patchedBarId, 'same copied bar id')
+ expect(patchedCopiedBarId).toEqual(patchedBarId)
})
-test('jsonpatch move', t => {
+test('jsonpatch move', () => {
const json = {
arr: [1,2,3],
obj: {a : 4}
@@ -246,11 +247,11 @@ test('jsonpatch move', t => {
const revert = result.revert
const patchedJson = esonToJson(patchedData)
- t.is(result.error, null)
- t.deepEqual(patchedJson, {
+ expect(result.error).toEqual(null)
+ expect(patchedJson).toEqual({
arr: [1, 2, {a:4}, 3]
})
- t.deepEqual(revert, [
+ expect(revert).toEqual([
{op: 'move', from: '/arr/2', path: '/obj'}
])
@@ -261,11 +262,11 @@ test('jsonpatch move', t => {
const revert2 = result2.revert
const patchedJson2 = esonToJson(patchedData2)
- t.deepEqual(patchedJson2, json)
- t.deepEqual(revert2, patch)
+ expect(patchedJson2).toEqual(json)
+ expect(revert2).toEqual(patch)
})
-test('jsonpatch move before', t => {
+test('jsonpatch move before', () => {
const json = {
arr: [1,2,3],
obj: {a : 4},
@@ -282,12 +283,12 @@ test('jsonpatch move before', t => {
const revert = result.revert
const patchedJson = esonToJson(patchedData)
- t.is(result.error, null)
- t.deepEqual(patchedJson, {
+ expect(result.error).toEqual(null)
+ expect(patchedJson).toEqual({
arr: [1, 2, {a:4}, 3],
zzz: 'zzz'
})
- t.deepEqual(revert, [
+ expect(revert).toEqual([
{op: 'move', from: '/arr/2', path: '/obj', meta: {before: 'zzz'}}
])
@@ -298,11 +299,11 @@ test('jsonpatch move before', t => {
const revert2 = result2.revert
const patchedJson2 = esonToJson(patchedData2)
- t.deepEqual(patchedJson2, json)
- t.deepEqual(revert2, patch)
+ expect(patchedJson2).toEqual(json)
+ expect(revert2).toEqual(patch)
})
-test('jsonpatch move and replace', t => {
+test('jsonpatch move and replace', () => {
const json = { a: 2, b: 3 }
const patch = [
@@ -317,11 +318,11 @@ test('jsonpatch move and replace', t => {
const patchedJson = esonToJson(patchedData)
// id of the replaced B must be kept intact
- t.is(patchedData.b[META].id, data.b[META].id)
+ expect(patchedData.b[META].id).toEqual(data.b[META].id)
- assertDeepEqualEson(t, patchedData, jsonToEson({b: 2}))
- t.deepEqual(patchedJson, { b : 2 })
- t.deepEqual(revert, [
+ assertDeepEqualEson(patchedData, jsonToEson({b: 2}))
+ expect(patchedJson).toEqual({ b : 2 })
+ expect(revert).toEqual([
{op:'move', from: '/b', path: '/a'},
{op:'add', path:'/b', value: 3, meta: {type: 'value', before: 'b'}}
])
@@ -333,14 +334,14 @@ test('jsonpatch move and replace', t => {
const revert2 = result2.revert
const patchedJson2 = esonToJson(patchedData2)
- t.deepEqual(patchedJson2, json)
- t.deepEqual(revert2, [
+ expect(patchedJson2).toEqual(json)
+ expect(revert2).toEqual([
{op: 'remove', path: '/b'},
{op: 'move', from: '/a', path: '/b'}
])
})
-test('jsonpatch move and replace (nested)', t => {
+test('jsonpatch move and replace (nested)', () => {
const json = {
arr: [1,2,3],
obj: {a : 4}
@@ -356,10 +357,10 @@ test('jsonpatch move and replace (nested)', t => {
const revert = result.revert
const patchedJson = esonToJson(patchedData)
- t.deepEqual(patchedJson, {
+ expect(patchedJson).toEqual({
arr: {a:4}
})
- t.deepEqual(revert, [
+ expect(revert).toEqual([
{op:'move', from: '/arr', path: '/obj'},
{op:'add', path:'/arr', value: [1,2,3], meta: {type: 'Array'}}
])
@@ -371,14 +372,14 @@ test('jsonpatch move and replace (nested)', t => {
const revert2 = result2.revert
const patchedJson2 = esonToJson(patchedData2)
- t.deepEqual(patchedJson2, json)
- t.deepEqual(revert2, [
+ expect(patchedJson2).toEqual(json)
+ expect(revert2).toEqual([
{op: 'remove', path: '/arr'},
{op: 'move', from: '/obj', path: '/arr'}
])
})
-test('jsonpatch move (keep id intact)', t => {
+test('jsonpatch move (keep id intact)', () => {
const json = { value: 42 }
const patch = [
{op: 'move', from: '/value', path: '/moved'}
@@ -390,10 +391,10 @@ test('jsonpatch move (keep id intact)', t => {
const patchedData = patchEson(data, patch).data
const patchedValueId = patchedData.moved[META].id
- t.is(patchedValueId, valueId)
+ expect(patchedValueId).toEqual(valueId)
})
-test('jsonpatch move and replace (keep ids intact)', t => {
+test('jsonpatch move and replace (keep ids intact)', () => {
const json = { a: 2, b: 3 }
const patch = [
{op: 'move', from: '/a', path: '/b'}
@@ -402,15 +403,15 @@ test('jsonpatch move and replace (keep ids intact)', t => {
const data = jsonToEson(json)
const bId = data.b[META].id
- t.deepEqual(data[META].props, ['a', 'b'])
+ expect(data[META].props).toEqual(['a', 'b'])
const patchedData = patchEson(data, patch).data
- t.is(patchedData.b[META].id, bId)
- t.deepEqual(patchedData[META].props, ['b'])
+ expect(patchedData.b[META].id).toEqual(bId)
+ expect(patchedData[META].props).toEqual(['b'])
})
-test('jsonpatch test (ok)', t => {
+test('jsonpatch test (ok)', () => {
const json = {
arr: [1,2,3],
obj: {a : 4}
@@ -427,18 +428,18 @@ test('jsonpatch test (ok)', t => {
const revert = result.revert
const patchedJson = esonToJson(patchedData)
- t.deepEqual(patchedJson, {
+ expect(patchedJson).toEqual({
arr: [1,2,3],
obj: {a : 4},
added: 'ok'
})
- t.deepEqual(revert, [
+ expect(revert).toEqual([
{op: 'remove', path: '/added'}
])
})
-test('jsonpatch test (fail: path not found)', t => {
+test('jsonpatch test (fail: path not found)', () => {
const json = {
arr: [1,2,3],
obj: {a : 4}
@@ -456,15 +457,15 @@ test('jsonpatch test (fail: path not found)', t => {
const patchedJson = esonToJson(patchedData)
// patch shouldn't be applied
- t.deepEqual(patchedJson, {
+ expect(patchedJson).toEqual({
arr: [1,2,3],
obj: {a : 4}
})
- t.deepEqual(revert, [])
- t.is(result.error.toString(), 'Error: Test failed, path not found')
+ expect(revert).toEqual([])
+ expect(result.error.toString()).toEqual('Error: Test failed, path not found')
})
-test('jsonpatch test (fail: value not equal)', t => {
+test('jsonpatch test (fail: value not equal)', () => {
const json = {
arr: [1,2,3],
obj: {a : 4}
@@ -482,12 +483,12 @@ test('jsonpatch test (fail: value not equal)', t => {
const patchedJson = esonToJson(patchedData)
// patch shouldn't be applied
- t.deepEqual(patchedJson, {
+ expect(patchedJson).toEqual({
arr: [1,2,3],
obj: {a : 4}
})
- t.deepEqual(revert, [])
- t.is(result.error.toString(), 'Error: Test failed, value differs')
+ expect(revert).toEqual([])
+ expect(result.error.toString()).toEqual('Error: Test failed, value differs')
})
// helper function to print JSON in the console
diff --git a/src/jsoneditor/types.js b/src/jsoneditor/types.js
new file mode 100644
index 0000000..7b12c45
--- /dev/null
+++ b/src/jsoneditor/types.js
@@ -0,0 +1,104 @@
+/** JSDoc type definitions */
+
+/**
+ * @typedef {{} | [] | string | number | boolean | null} JSON
+ */
+
+/**
+ * @typedef {{
+ * name: string?,
+ * mode: 'code' | 'form' | 'text' | 'tree' | 'view'?,
+ * modes: string[]?,
+ * history: boolean?,
+ * indentation: number | string?,
+ * onChange: function (patch: ESONPatch, revert: ESONPatch)?,
+ * onChangeText: function ()?,
+ * onChangeMode: function (mode: string, prevMode: string)?,
+ * onError: function (err: Error)?,
+ * isPropertyEditable: function (Path)?
+ * isValueEditable: function (Path)?,
+ * escapeUnicode: boolean?,
+ * expand: function(path: Path) : boolean?,
+ * ajv: Object?,
+ * ace: Object?
+ * }} Options
+ */
+
+/**
+ * @typedef {string[]} Path
+ */
+
+/**
+ * @typedef {{
+ * start?: Path,
+ * end?: Path,
+ * before?: Path,
+ * after?: Path,
+ * }} Selection
+ */
+
+/**
+ * @typedef {{matches: ESONPointer[], active: ESONPointer, text: String}} SearchResult
+ */
+
+/**
+ * @typedef {'value' | 'property'} ESONPointerArea
+ */
+
+/**
+ * @typedef {{
+ * path: Path,
+ * area?: ESONPointerArea
+ * }} ESONPointer
+ */
+
+/**
+ * @typedef {'normal' | 'active'} SearchResultStatus
+ */
+
+/**
+ * @typedef {'Object' | 'Array' | 'value' | 'string'} ESONType
+ */
+
+/**
+ * @typedef {{
+ * op: 'add' | 'remove' | 'replace' | 'copy' | 'move' | 'test',
+ * path: string,
+ * from?: string,
+ * value?: *,
+ * meta?: ESONPatchOptions
+ * }} ESONPatchAction
+ */
+
+/**
+ * @typedef {ESONPatchAction[]} ESONPatch
+ */
+
+/**
+ * @typedef {{
+ * id: string,
+ * path: Path,
+ * type: ESONType,
+ * before?: string
+ * props?: string[],
+ * expanded?: boolean,
+ * selected?: boolean,
+ * searchProperty?: SearchResultStatus,
+ * searchValue?: SearchResultStatus
+ * }} ESONPatchOptions
+ *
+ * // TODO: describe search results and selection
+ */
+
+/**
+ * @typedef {Object | Array} ESON
+ */
+
+/**
+ * TODO: change type of dataPath to Path? ESONPointer.path is an array, JSONSchemaError.path is a string -> make this consistent
+ *
+ * @typedef {{
+ * dataPath: string,
+ * message: string
+ * }} JSONSchemaError
+ */
diff --git a/src/utils/arrayUtils.js b/src/jsoneditor/utils/arrayUtils.js
similarity index 100%
rename from src/utils/arrayUtils.js
rename to src/jsoneditor/utils/arrayUtils.js
diff --git a/src/jsoneditor/utils/assertDeepEqualEson.js b/src/jsoneditor/utils/assertDeepEqualEson.js
new file mode 100644
index 0000000..e987b0a
--- /dev/null
+++ b/src/jsoneditor/utils/assertDeepEqualEson.js
@@ -0,0 +1,39 @@
+import {META} from "../eson"
+import lodashTransform from "lodash/transform"
+
+export function assertDeepEqualEson (actual, expected, path = [], ignoreIds = true) {
+ if (expected === undefined) {
+ throw new Error('Argument "expected" is undefined')
+ }
+
+ // console.log('assertDeepEqualEson', actual, expected)
+
+ const actualMeta = ignoreIds ? normalizeMetaIds(actual[META]) : actual[META]
+ const expectedMeta = ignoreIds ? normalizeMetaIds(expected[META]) : expected[META]
+
+ expect(actualMeta).toEqual(expectedMeta) // `Meta data not equal, path=[${path.join(', ')}], actual[META]=${JSON.stringify(actualMeta)}, expected[META]=${JSON.stringify(expectedMeta)}`
+
+ if (actualMeta.type === 'Array') {
+ expect(actual.length).toEqual(expected.length) // 'Actual lengths of arrays should be equal, path=[${path.join(\', \')}]'
+ actual.forEach((item, index) => assertDeepEqualEson(actual[index], expected[index], path.concat(index)), ignoreIds)
+ }
+ else if (actualMeta.type === 'Object') {
+ expect(Object.keys(actual).sort()).toEqual(Object.keys(expected).sort()) // 'Actual properties should be equal, path=[${path.join(\', \')}]'
+ actualMeta.props.forEach(key => assertDeepEqualEson(actual[key], expected[key], path.concat(key)), ignoreIds)
+ }
+ else { // actual[META].type === 'value'
+ expect(Object.keys(actual)).toEqual([]) // 'Value should not contain additional properties, path=[${path.join(\', \')}]'
+ }
+}
+
+function normalizeMetaIds (meta) {
+ return lodashTransform(meta, (result, value, key) => {
+ if (key === 'id') {
+ result[key] = '[ID]'
+ }
+ else {
+ result[key] = value
+ }
+ }, {})
+}
+
diff --git a/src/utils/bindMethods.js b/src/jsoneditor/utils/bindMethods.js
similarity index 100%
rename from src/utils/bindMethods.js
rename to src/jsoneditor/utils/bindMethods.js
diff --git a/src/utils/domUtils.js b/src/jsoneditor/utils/domUtils.js
similarity index 98%
rename from src/utils/domUtils.js
rename to src/jsoneditor/utils/domUtils.js
index a31bca1..e2bfa34 100644
--- a/src/utils/domUtils.js
+++ b/src/jsoneditor/utils/domUtils.js
@@ -188,7 +188,7 @@ export function getInternetExplorerVersion() {
if (navigator.appName === 'Microsoft Internet Explorer')
{
const ua = navigator.userAgent
- const re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})")
+ const re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})")
if (re.exec(ua) !== null) {
rv = parseFloat( RegExp.$1 )
}
diff --git a/src/utils/empty.js b/src/jsoneditor/utils/empty.js
similarity index 100%
rename from src/utils/empty.js
rename to src/jsoneditor/utils/empty.js
diff --git a/src/utils/immutabilityHelpers.js b/src/jsoneditor/utils/immutabilityHelpers.js
similarity index 98%
rename from src/utils/immutabilityHelpers.js
rename to src/jsoneditor/utils/immutabilityHelpers.js
index bf8a2cd..21a2841 100644
--- a/src/utils/immutabilityHelpers.js
+++ b/src/jsoneditor/utils/immutabilityHelpers.js
@@ -1,6 +1,4 @@
-'use strict';
-
-import { isObjectOrArray, isObject } from './typeUtils'
+import { isObjectOrArray } from './typeUtils'
/**
* Immutability helpers
diff --git a/test/immutabilityHelpers.test.js b/src/jsoneditor/utils/immutabilityHelpers.test.js
similarity index 65%
rename from test/immutabilityHelpers.test.js
rename to src/jsoneditor/utils/immutabilityHelpers.test.js
index 21614ee..ebbe15f 100644
--- a/test/immutabilityHelpers.test.js
+++ b/src/jsoneditor/utils/immutabilityHelpers.test.js
@@ -1,8 +1,6 @@
-import test from 'ava';
-import { getIn, setIn, updateIn, deleteIn, insertAt, transform } from '../src/utils/immutabilityHelpers'
+import { getIn, setIn, updateIn, deleteIn, insertAt } from './immutabilityHelpers'
-
-test('getIn', t => {
+test('getIn', () => {
const obj = {
a: {
b: {
@@ -19,13 +17,13 @@ test('getIn', t => {
]
}
- t.deepEqual(getIn(obj, ['a', 'b']), {c: 2})
- t.is(getIn(obj, ['e', '1', 'f']), 5)
- t.is(getIn(obj, ['e', '999', 'f']), undefined)
- t.is(getIn(obj, ['non', 'existing', 'path']), undefined)
+ expect(getIn(obj, ['a', 'b'])).toEqual({c: 2})
+ expect(getIn(obj, ['e', '1', 'f'])).toEqual(5)
+ expect(getIn(obj, ['e', '999', 'f'])).toBeUndefined()
+ expect(getIn(obj, ['non', 'existing', 'path'])).toBeUndefined()
})
-test('setIn basic', t => {
+test('setIn basic', () => {
const obj = {
a: {
b: {
@@ -36,7 +34,7 @@ test('setIn basic', t => {
}
const updated = setIn(obj, ['a', 'b', 'c'], 4)
- t.deepEqual (updated, {
+ expect(updated).toEqual({
a: {
b: {
c: 4
@@ -46,7 +44,7 @@ test('setIn basic', t => {
})
// original should be unchanged
- t.deepEqual (obj, {
+ expect(obj).toEqual({
a: {
b: {
c: 2
@@ -55,25 +53,25 @@ test('setIn basic', t => {
d: 3
})
- t.truthy (obj !== updated)
+ expect(obj).not.toBe(updated)
})
-test('setIn non existing path', t => {
+test('setIn non existing path', () => {
const obj = {}
- t.throws(() => setIn(obj, ['a', 'b', 'c'], 4), /Path does not exist/)
+ expect(() => setIn(obj, ['a', 'b', 'c'], 4)).toThrow(/Path does not exist/)
})
-test('setIn replace value with object should throw an exception', t => {
+test('setIn replace value with object should throw an exception', () => {
const obj = {
a: 42,
d: 3
}
- t.throws(() => setIn(obj, ['a', 'b', 'c'], 4), /Path does not exist/)
+ expect(() => setIn(obj, ['a', 'b', 'c'], 4)).toThrow(/Path does not exist/)
})
-test('setIn replace value inside nested array', t => {
+test('setIn replace value inside nested array', () => {
const obj = {
a: [
1,
@@ -88,7 +86,7 @@ test('setIn replace value inside nested array', t => {
const updated = setIn(obj, ['a', '2', 'c'], 8)
- t.deepEqual (updated, {
+ expect(updated).toEqual({
a: [
1,
2,
@@ -101,23 +99,23 @@ test('setIn replace value inside nested array', t => {
})
})
-test('setIn identical value should return the original object', t => {
+test('setIn identical value should return the original object', () => {
const obj = {a:1, b:2}
const updated = setIn(obj, ['b'], 2)
- t.is(updated, obj) // strict equal
+ expect(updated).toBe(obj) // strict equal
})
-test('setIn identical value should return the original object (2)', t => {
+test('setIn identical value should return the original object (2)', () => {
const obj = {a:1, b: { c: 2}}
const updated = setIn(obj, ['b', 'c'], 2)
- t.is(updated, obj) // strict equal
+ expect(updated).toBe(obj) // strict equal
})
-test('updateIn', t => {
+test('updateIn', () => {
const obj = {
a: {
b: {
@@ -128,7 +126,7 @@ test('updateIn', t => {
}
const updated = updateIn(obj, ['a', 'b', 'c'], (value) => value + 100)
- t.deepEqual (updated, {
+ expect(updated).toEqual({
a: {
b: {
c: 102
@@ -138,7 +136,7 @@ test('updateIn', t => {
})
// original should be unchanged
- t.deepEqual (obj, {
+ expect(obj).toEqual({
a: {
b: {
c: 2
@@ -147,10 +145,10 @@ test('updateIn', t => {
d: 3
})
- t.truthy (obj !== updated)
+ expect(obj).not.toBe(updated)
})
-test('updateIn (2)', t => {
+test('updateIn (2)', () => {
const obj = {
a: {
b: {
@@ -161,7 +159,7 @@ test('updateIn (2)', t => {
}
const updated = updateIn(obj, ['a', 'b' ], (obj) => [1,2,3])
- t.deepEqual (updated, {
+ expect(updated).toEqual({
a: {
b: [1,2,3]
},
@@ -169,7 +167,7 @@ test('updateIn (2)', t => {
})
})
-test('updateIn (3)', t => {
+test('updateIn (3)', () => {
const obj = {
a: {
b: {
@@ -180,7 +178,7 @@ test('updateIn (3)', t => {
}
const updated = updateIn(obj, ['a', 'e' ], (value) => 'foo-' + value)
- t.deepEqual (updated, {
+ expect(updated).toEqual({
a: {
b: {
c: 2
@@ -191,17 +189,17 @@ test('updateIn (3)', t => {
})
})
-test('updateIn return identical value should return the original object', t => {
+test('updateIn return identical value should return the original object', () => {
const obj = {
a: 2,
b: 3
}
const updated = updateIn(obj, ['b' ], (value) => 3)
- t.is(updated, obj)
+ expect(updated).toBe(obj)
})
-test('deleteIn', t => {
+test('deleteIn', () => {
const obj = {
a: {
b: {
@@ -213,7 +211,7 @@ test('deleteIn', t => {
}
const updated = deleteIn(obj, ['a', 'b', 'c'])
- t.deepEqual (updated, {
+ expect(updated).toEqual({
a: {
b: {
d: 3
@@ -223,7 +221,7 @@ test('deleteIn', t => {
})
// original should be unchanged
- t.deepEqual (obj, {
+ expect(obj).toEqual({
a: {
b: {
c: 2,
@@ -233,10 +231,10 @@ test('deleteIn', t => {
e: 4
})
- t.truthy (obj !== updated)
+ expect(obj).not.toBe(updated)
})
-test('deleteIn array', t => {
+test('deleteIn array', () => {
const obj = {
a: {
b: [1, {c: 2, d: 3} , 4]
@@ -245,7 +243,7 @@ test('deleteIn array', t => {
}
const updated = deleteIn(obj, ['a', 'b', '1', 'c'])
- t.deepEqual (updated, {
+ expect(updated).toEqual({
a: {
b: [1, {d: 3} , 4]
},
@@ -253,26 +251,26 @@ test('deleteIn array', t => {
})
// original should be unchanged
- t.deepEqual (obj, {
+ expect(obj).toEqual({
a: {
b: [1, {c: 2, d: 3} , 4]
},
e: 5
})
- t.truthy (obj !== updated)
+ expect(obj).not.toBe(updated)
})
-test('deleteIn non existing path', t => {
+test('deleteIn non existing path', () => {
const obj = { a: {}}
const updated = deleteIn(obj, ['a', 'b'])
- t.truthy (updated === obj)
+ expect(updated).toBe(obj)
})
-test('insertAt', t => {
+test('insertAt', () => {
const obj = { a: [1,2,3]}
const updated = insertAt(obj, ['a', '2'], 8)
- t.deepEqual(updated, {a: [1,2,8,3]})
+ expect(updated).toEqual({a: [1,2,8,3]})
})
diff --git a/src/utils/jsonUtils.js b/src/jsoneditor/utils/jsonUtils.js
similarity index 100%
rename from src/utils/jsonUtils.js
rename to src/jsoneditor/utils/jsonUtils.js
diff --git a/src/utils/keyBindings.js b/src/jsoneditor/utils/keyBindings.js
similarity index 98%
rename from src/utils/keyBindings.js
rename to src/jsoneditor/utils/keyBindings.js
index 3de5594..1fffc67 100644
--- a/src/utils/keyBindings.js
+++ b/src/jsoneditor/utils/keyBindings.js
@@ -78,7 +78,7 @@ function normalizeKeyCombo (combo) {
return upper
}
-const isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0
+const isMac = window.navigator.platform.toUpperCase().indexOf('MAC') >= 0
const metaCodes = {
'Ctrl': true,
diff --git a/src/utils/schemaUtils.js b/src/jsoneditor/utils/schemaUtils.js
similarity index 100%
rename from src/utils/schemaUtils.js
rename to src/jsoneditor/utils/schemaUtils.js
diff --git a/src/utils/shouldComponentUpdate.js b/src/jsoneditor/utils/shouldComponentUpdate.js
similarity index 100%
rename from src/utils/shouldComponentUpdate.js
rename to src/jsoneditor/utils/shouldComponentUpdate.js
diff --git a/src/utils/stringUtils.js b/src/jsoneditor/utils/stringUtils.js
similarity index 88%
rename from src/utils/stringUtils.js
rename to src/jsoneditor/utils/stringUtils.js
index e473b5c..99de62e 100644
--- a/src/utils/stringUtils.js
+++ b/src/jsoneditor/utils/stringUtils.js
@@ -18,7 +18,7 @@ export function escapeHTML (text, escapeUnicode = false) {
}
htmlEscaped = htmlEscaped
- .replace(/ /g, ' \u00A0') // replace double space with an nbsp and space
+ .replace(/ {2}/g, ' \u00A0') // replace double space with an nbsp and space
.replace(/^ /, '\u00A0') // space at start
.replace(/ $/, '\u00A0') // space at end
@@ -48,8 +48,8 @@ export function escapeUnicodeChars (text) {
* @return {String} text
*/
export function unescapeHTML (escapedText) {
- var json = '"' + escapeJSON(escapedText) + '"'
- var htmlEscaped = parseJSON(json)
+ const json = '"' + escapeJSON(escapedText) + '"'
+ const htmlEscaped = parseJSON(json)
return htmlEscaped.replace(/\u00A0/g, ' ') // nbsp character
}
@@ -65,24 +65,24 @@ export function unescapeHTML (escapedText) {
*/
export function escapeJSON (text) {
// TODO: replace with some smart regex (only when a new solution is faster!)
- var escaped = ''
- var i = 0
+ let escaped = ''
+ let i = 0
while (i < text.length) {
- var c = text.charAt(i)
- if (c == '\n') {
+ let c = text.charAt(i)
+ if (c === '\n') {
escaped += '\\n'
}
- else if (c == '\\') {
+ else if (c === '\\') {
escaped += c
i++
c = text.charAt(i)
- if (c === '' || '"\\/bfnrtu'.indexOf(c) == -1) {
+ if (c === '' || '"\\/bfnrtu'.indexOf(c) === -1) {
escaped += '\\' // no valid escape character
}
escaped += c
}
- else if (c == '"') {
+ else if (c === '"') {
escaped += '\\"'
}
else {
diff --git a/src/jsoneditor/utils/stringUtils.test.js b/src/jsoneditor/utils/stringUtils.test.js
new file mode 100644
index 0000000..1a842da
--- /dev/null
+++ b/src/jsoneditor/utils/stringUtils.test.js
@@ -0,0 +1,25 @@
+import { escapeHTML, unescapeHTML, findUniqueName } from './stringUtils'
+
+test('escapeHTML', () => {
+ expect(escapeHTML(' hello ')).toEqual('\u00A0\u00A0 hello \u00A0')
+ expect(escapeHTML('\u00A0 hello')).toEqual('\u00A0 hello')
+ expect(escapeHTML('hello\nworld')).toEqual('hello\\nworld')
+
+ // TODO: test escapeHTML more thoroughly
+})
+
+test('unescapeHTML', () => {
+ expect(unescapeHTML(' \u00A0 hello \u00A0')).toEqual(' hello ')
+ expect(unescapeHTML('\u00A0 hello')).toEqual(' hello')
+
+ expect(unescapeHTML('hello\\nworld')).toEqual('hello\nworld')
+
+ // TODO: test unescapeHTML more thoroughly
+})
+
+test('findUniqueName', () => {
+ expect(findUniqueName('other', ['a', 'b', 'c'])).toEqual('other')
+ expect(findUniqueName('b', ['a', 'b', 'c'])).toEqual('b (copy)')
+ expect(findUniqueName('b', ['a', 'b', 'c', 'b (copy)'])).toEqual('b (copy 2)')
+ expect(findUniqueName('b', ['a', 'b', 'c', 'b (copy)', 'b (copy 2)'])).toEqual('b (copy 3)')
+})
diff --git a/src/utils/typeUtils.js b/src/jsoneditor/utils/typeUtils.js
similarity index 100%
rename from src/utils/typeUtils.js
rename to src/jsoneditor/utils/typeUtils.js
diff --git a/src/types.js b/src/types.js
deleted file mode 100644
index 826040b..0000000
--- a/src/types.js
+++ /dev/null
@@ -1,114 +0,0 @@
-// @flow
-
-/**
- *
- * @typedef {{
- * name: string?,
- * mode: 'code' | 'form' | 'text' | 'tree' | 'view'?,
- * modes: string[]?,
- * history: boolean?,
- * indentation: number | string?,
- * onChange: function (patch: ESONPatch, revert: ESONPatch)?,
- * onChangeText: function ()?,
- * onChangeMode: function (mode: string, prevMode: string)?,
- * onError: function (err: Error)?,
- * isPropertyEditable: function (Path)?
- * isValueEditable: function (Path)?,
- * escapeUnicode: boolean?,
- * expand: function(path: Path) : boolean?,
- * ajv: Object?,
- * ace: Object?
- * }} Options
- *
- * @typedef {string[]} Path
- *
- * @typedef {{matches: ESONPointer[], active: ESONPointer, text: String}} SearchResult
- *
- */
-
-// FIXME: redefine all ESON related types
-
-
-/**************************** GENERIC JSON TYPES ******************************/
-
-export type JSONType = | string | number | boolean | null | JSONObjectType | JSONArrayType
-export type JSONObjectType = { [key:string]: JSONType }
-export type JSONArrayType = JSONType[]
-
-
-/********************** TYPES FOR THE ESON OBJECT MODEL *************************/
-
-export type SearchResultStatus = 'normal' | 'active'
-export type ESONPointerArea = 'value' | 'property'
-
-export type ESONObject = {
- _meta: {
- type: 'Object',
- path: Path,
- expanded?: boolean,
- selected?: boolean,
- searchProperty?: SearchResultStatus,
- searchValue?: SearchResultStatus
- }
-}
-
-export type ESONArray = {
- _meta: {
- type: 'Array',
- path: Path,
- length: number
- expanded?: boolean,
- selected?: boolean,
- searchProperty?: SearchResultStatus,
- searchValue?: SearchResultStatus
- }
-}
-
-export type ESONValue = {
- _meta: {
- type: 'value' | 'string',
- path: Path,
- value: null | boolean | string | number,
- selected?: boolean,
- searchProperty?: SearchResultStatus,
- searchValue?: SearchResultStatus
- }
-}
-
-export type ESON = ESONObject | ESONArray | ESONValue
-
-export type ESONType = 'Object' | 'Array' | 'value' | 'string'
-
-export type Path = string[]
-
-export type ESONPointer = {
- path: Path,
- area?: ESONPointerArea
-}
-
-export type Selection = {
- start?: Path,
- end?: Path,
- before?: Path,
- after?: Path
-}
-
-export type ESONPatchAction = {
- op: string, // TODO: define allowed ops
- path: string,
- from?: string,
- value?: any,
- meta?: ESONPatchOptions
-}
-export type ESONPatch = ESONPatchAction[]
-
-export type ESONPatchOptions = {
- type: ESONType,
- expand: (Path) => boolean
-}
-
-// TODO: ESONPointer.path is an array, JSONSchemaError.path is a string -> make this consistent
-export type JSONSchemaError = {
- dataPath: string, // TODO: change type to Path
- message: string
-}
diff --git a/src_old/css/contextmenu.css b/src_old/css/contextmenu.css
deleted file mode 100644
index 568c20d..0000000
--- a/src_old/css/contextmenu.css
+++ /dev/null
@@ -1,244 +0,0 @@
-
-/* ContextMenu - main menu */
-
-div.jsoneditor-contextmenu-root {
- position: relative;
- width: 0;
- height: 0;
-}
-
-div.jsoneditor-contextmenu {
- position: absolute;
- box-sizing: content-box;
- z-index: 99999;
-}
-
-div.jsoneditor-contextmenu ul,
-div.jsoneditor-contextmenu li {
- box-sizing: content-box;
-}
-
-div.jsoneditor-contextmenu ul {
- position: relative;
- left: 0;
- top: 0;
- width: 124px;
-
- background: white;
- border: 1px solid #d3d3d3;
- box-shadow: 2px 2px 12px rgba(128, 128, 128, 0.3);
-
- list-style: none;
- margin: 0;
- padding: 0;
-}
-
-div.jsoneditor-contextmenu ul li button {
- padding: 0;
- margin: 0;
- width: 124px;
- height: 24px;
- border: none;
- cursor: pointer;
- color: #4d4d4d;
- background: transparent;
-
- font-size: 10pt;
- font-family: arial, sans-serif;
-
- box-sizing: border-box;
-
- line-height: 26px;
- text-align: left;
-}
-
-/* Fix button padding in firefox */
-div.jsoneditor-contextmenu ul li button::-moz-focus-inner {
- padding: 0;
- border: 0;
-}
-
-div.jsoneditor-contextmenu ul li button:hover,
-div.jsoneditor-contextmenu ul li button:focus {
- color: #1a1a1a;
- background-color: #f5f5f5;
- outline: none;
-}
-
-div.jsoneditor-contextmenu ul li button.jsoneditor-default {
- width: 92px;
-}
-
-div.jsoneditor-contextmenu ul li button.jsoneditor-expand {
- float: right;
- width: 32px;
- height: 24px;
- border-left: 1px solid #e5e5e5;
-}
-
-div.jsoneditor-contextmenu div.jsoneditor-icon {
- float: left;
- width: 24px;
- height: 24px;
- border: none;
- padding: 0;
- margin: 0;
- background-image: url('img/jsoneditor-icons.svg');
-}
-
-div.jsoneditor-contextmenu ul li button div.jsoneditor-expand {
- float: right;
- width: 24px;
- height: 24px;
- padding: 0;
- margin: 0 4px 0 0;
- background: url('img/jsoneditor-icons.svg') 0 -72px;
- opacity: 0.4;
-}
-
-div.jsoneditor-contextmenu ul li button:hover div.jsoneditor-expand,
-div.jsoneditor-contextmenu ul li button:focus div.jsoneditor-expand,
-div.jsoneditor-contextmenu ul li.jsoneditor-selected div.jsoneditor-expand,
-div.jsoneditor-contextmenu ul li button.jsoneditor-expand:hover div.jsoneditor-expand,
-div.jsoneditor-contextmenu ul li button.jsoneditor-expand:focus div.jsoneditor-expand {
- opacity: 1;
-}
-
-div.jsoneditor-contextmenu div.jsoneditor-separator {
- height: 0;
- border-top: 1px solid #e5e5e5;
- padding-top: 5px;
- margin-top: 5px;
-}
-
-div.jsoneditor-contextmenu button.jsoneditor-remove > div.jsoneditor-icon {
- background-position: -24px -24px;
-}
-div.jsoneditor-contextmenu button.jsoneditor-remove:hover > div.jsoneditor-icon,
-div.jsoneditor-contextmenu button.jsoneditor-remove:focus > div.jsoneditor-icon {
- background-position: -24px 0;
-}
-
-div.jsoneditor-contextmenu button.jsoneditor-append > div.jsoneditor-icon {
- background-position: 0 -24px;
-}
-div.jsoneditor-contextmenu button.jsoneditor-append:hover > div.jsoneditor-icon,
-div.jsoneditor-contextmenu button.jsoneditor-append:focus > div.jsoneditor-icon {
- background-position: 0 0;
-}
-
-div.jsoneditor-contextmenu button.jsoneditor-insert > div.jsoneditor-icon {
- background-position: 0 -24px;
-}
-div.jsoneditor-contextmenu button.jsoneditor-insert:hover > div.jsoneditor-icon,
-div.jsoneditor-contextmenu button.jsoneditor-insert:focus > div.jsoneditor-icon {
- background-position: 0 0;
-}
-
-div.jsoneditor-contextmenu button.jsoneditor-duplicate > div.jsoneditor-icon {
- background-position: -48px -24px;
-}
-div.jsoneditor-contextmenu button.jsoneditor-duplicate:hover > div.jsoneditor-icon,
-div.jsoneditor-contextmenu button.jsoneditor-duplicate:focus > div.jsoneditor-icon {
- background-position: -48px 0;
-}
-
-div.jsoneditor-contextmenu button.jsoneditor-sort-asc > div.jsoneditor-icon {
- background-position: -168px -24px;
-}
-div.jsoneditor-contextmenu button.jsoneditor-sort-asc:hover > div.jsoneditor-icon,
-div.jsoneditor-contextmenu button.jsoneditor-sort-asc:focus > div.jsoneditor-icon {
- background-position: -168px 0;
-}
-
-div.jsoneditor-contextmenu button.jsoneditor-sort-desc > div.jsoneditor-icon {
- background-position: -192px -24px;
-}
-div.jsoneditor-contextmenu button.jsoneditor-sort-desc:hover > div.jsoneditor-icon,
-div.jsoneditor-contextmenu button.jsoneditor-sort-desc:focus > div.jsoneditor-icon {
- background-position: -192px 0;
-}
-
-/* ContextMenu - sub menu */
-
-div.jsoneditor-contextmenu ul li button.jsoneditor-selected,
-div.jsoneditor-contextmenu ul li button.jsoneditor-selected:hover,
-div.jsoneditor-contextmenu ul li button.jsoneditor-selected:focus {
- color: white;
- background-color: #ee422e;
-}
-
-div.jsoneditor-contextmenu ul li {
- overflow: hidden;
-}
-
-div.jsoneditor-contextmenu ul li ul {
- display: none;
- position: relative;
- left: -10px;
- top: 0;
-
- border: none;
- box-shadow: inset 0 0 10px rgba(128, 128, 128, 0.5);
- padding: 0 10px;
-
- /* TODO: transition is not supported on IE8-9 */
- -webkit-transition: all 0.3s ease-out;
- -moz-transition: all 0.3s ease-out;
- -o-transition: all 0.3s ease-out;
- transition: all 0.3s ease-out;
-}
-
-div.jsoneditor-contextmenu ul li.jsoneditor-selected ul {
-}
-
-div.jsoneditor-contextmenu ul li ul li button {
- padding-left: 24px;
- animation: all ease-in-out 1s;
-}
-
-div.jsoneditor-contextmenu ul li ul li button:hover,
-div.jsoneditor-contextmenu ul li ul li button:focus {
- background-color: #f5f5f5;
-}
-
-div.jsoneditor-contextmenu button.jsoneditor-type-string > div.jsoneditor-icon {
- background-position: -144px -24px;
-}
-div.jsoneditor-contextmenu button.jsoneditor-type-string:hover > div.jsoneditor-icon,
-div.jsoneditor-contextmenu button.jsoneditor-type-string:focus > div.jsoneditor-icon,
-div.jsoneditor-contextmenu button.jsoneditor-type-string.jsoneditor-selected > div.jsoneditor-icon{
- background-position: -144px 0;
-}
-
-div.jsoneditor-contextmenu button.jsoneditor-type-auto > div.jsoneditor-icon {
- background-position: -120px -24px;
-}
-div.jsoneditor-contextmenu button.jsoneditor-type-auto:hover > div.jsoneditor-icon,
-div.jsoneditor-contextmenu button.jsoneditor-type-auto:focus > div.jsoneditor-icon,
-div.jsoneditor-contextmenu button.jsoneditor-type-auto.jsoneditor-selected > div.jsoneditor-icon {
- background-position: -120px 0;
-}
-
-div.jsoneditor-contextmenu button.jsoneditor-type-object > div.jsoneditor-icon {
- background-position: -72px -24px;
-}
-div.jsoneditor-contextmenu button.jsoneditor-type-object:hover > div.jsoneditor-icon,
-div.jsoneditor-contextmenu button.jsoneditor-type-object:focus > div.jsoneditor-icon,
-div.jsoneditor-contextmenu button.jsoneditor-type-object.jsoneditor-selected > div.jsoneditor-icon{
- background-position: -72px 0;
-}
-
-div.jsoneditor-contextmenu button.jsoneditor-type-array > div.jsoneditor-icon {
- background-position: -96px -24px;
-}
-div.jsoneditor-contextmenu button.jsoneditor-type-array:hover > div.jsoneditor-icon,
-div.jsoneditor-contextmenu button.jsoneditor-type-array:focus > div.jsoneditor-icon,
-div.jsoneditor-contextmenu button.jsoneditor-type-array.jsoneditor-selected > div.jsoneditor-icon{
- background-position: -96px 0;
-}
-
-div.jsoneditor-contextmenu button.jsoneditor-type-modes > div.jsoneditor-icon {
- background-image: none;
- width: 6px;
-}
diff --git a/src_old/css/img/description.txt b/src_old/css/img/description.txt
deleted file mode 100644
index fe410a9..0000000
--- a/src_old/css/img/description.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-JSON Editor Icons
-
-size: outer: 24x24 px
- inner: 16x16 px
-
-blue background: RGBA 97b0f8ff
-gray background: RGBA 4d4d4dff
-grey background: RGBA d3d3d3ff
-
-red foreground: RGBA ff3300ff
-green foreground: RGBA 13ae00ff
-
-characters are based on the Arial font
-
diff --git a/src_old/css/img/jsoneditor-icons.svg b/src_old/css/img/jsoneditor-icons.svg
deleted file mode 100644
index 1b40068..0000000
--- a/src_old/css/img/jsoneditor-icons.svg
+++ /dev/null
@@ -1,893 +0,0 @@
-
-
- JSON Editor Icons
-
-
-
- image/svg+xml
-
- JSON Editor Icons
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src_old/css/jsoneditor.css b/src_old/css/jsoneditor.css
deleted file mode 100644
index f5017df..0000000
--- a/src_old/css/jsoneditor.css
+++ /dev/null
@@ -1,449 +0,0 @@
-
-div.jsoneditor {
-
-}
-
-div.jsoneditor-field,
-div.jsoneditor-value,
-div.jsoneditor-readonly {
- border: 1px solid transparent;
- min-height: 16px;
- min-width: 32px;
- padding: 2px;
- margin: 1px;
- word-wrap: break-word;
- float: left;
-}
-
-/* adjust margin of p elements inside editable divs, needed for Opera, IE */
-div.jsoneditor-field p,
-div.jsoneditor-value p {
- margin: 0;
-}
-
-div.jsoneditor-value {
- word-break: break-word;
-}
-
-div.jsoneditor-readonly {
- min-width: 16px;
- color: gray;
-}
-
-div.jsoneditor-empty {
- border-color: lightgray;
- border-style: dashed;
- border-radius: 2px;
-}
-
-div.jsoneditor-field.jsoneditor-empty::after,
-div.jsoneditor-value.jsoneditor-empty::after {
- pointer-events: none;
- color: lightgray;
- font-size: 8pt;
-}
-
-div.jsoneditor-field.jsoneditor-empty::after {
- content: "field";
-}
-
-div.jsoneditor-value.jsoneditor-empty::after {
- content: "value";
-}
-
-div.jsoneditor-value.jsoneditor-url,
-a.jsoneditor-value.jsoneditor-url {
- color: green;
- text-decoration: underline;
-}
-
-a.jsoneditor-value.jsoneditor-url {
- display: inline-block;
- padding: 2px;
- margin: 2px;
-}
-
-a.jsoneditor-value.jsoneditor-url:hover,
-a.jsoneditor-value.jsoneditor-url:focus {
- color: #ee422e;
-}
-
-div.jsoneditor td.jsoneditor-separator {
- padding: 3px 0;
- vertical-align: top;
- color: gray;
-}
-
-div.jsoneditor-field[contenteditable=true]:focus,
-div.jsoneditor-field[contenteditable=true]:hover,
-div.jsoneditor-value[contenteditable=true]:focus,
-div.jsoneditor-value[contenteditable=true]:hover,
-div.jsoneditor-field.jsoneditor-highlight,
-div.jsoneditor-value.jsoneditor-highlight {
- background-color: #FFFFAB;
- border: 1px solid yellow;
- border-radius: 2px;
-}
-
-div.jsoneditor-field.jsoneditor-highlight-active,
-div.jsoneditor-field.jsoneditor-highlight-active:focus,
-div.jsoneditor-field.jsoneditor-highlight-active:hover,
-div.jsoneditor-value.jsoneditor-highlight-active,
-div.jsoneditor-value.jsoneditor-highlight-active:focus,
-div.jsoneditor-value.jsoneditor-highlight-active:hover {
- background-color: #ffee00;
- border: 1px solid #ffc700;
- border-radius: 2px;
-}
-
-div.jsoneditor-value.jsoneditor-string {
- color: #008000;
-}
-
-div.jsoneditor-value.jsoneditor-object,
-div.jsoneditor-value.jsoneditor-array {
- min-width: 16px;
- color: #808080;
-}
-
-div.jsoneditor-value.jsoneditor-number {
- color: #ee422e;
-}
-
-div.jsoneditor-value.jsoneditor-boolean {
- color: #ff8c00;
-}
-
-div.jsoneditor-value.jsoneditor-null {
- color: #004ED0;
-}
-
-div.jsoneditor-value.jsoneditor-invalid {
- color: #000000;
-}
-
-
-
-div.jsoneditor-tree button {
- width: 24px;
- height: 24px;
- padding: 0;
- margin: 0;
- border: none;
- cursor: pointer;
- background: transparent url('img/jsoneditor-icons.svg');
-}
-
-div.jsoneditor-mode-view tr.jsoneditor-expandable td.jsoneditor-tree,
-div.jsoneditor-mode-form tr.jsoneditor-expandable td.jsoneditor-tree {
- cursor: pointer;
-}
-
-div.jsoneditor-tree button.jsoneditor-collapsed {
- background-position: 0 -48px;
-}
-
-div.jsoneditor-tree button.jsoneditor-expanded {
- background-position: 0 -72px;
-}
-
-div.jsoneditor-tree button.jsoneditor-contextmenu {
- background-position: -48px -72px;
-}
-
-div.jsoneditor-tree button.jsoneditor-contextmenu:hover,
-div.jsoneditor-tree button.jsoneditor-contextmenu:focus,
-div.jsoneditor-tree button.jsoneditor-contextmenu.jsoneditor-selected,
-tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu {
- background-position: -48px -48px;
-}
-
-div.jsoneditor-tree *:focus {
- outline: none;
-}
-
-div.jsoneditor-tree button:focus {
- /* TODO: nice outline for buttons with focus
- outline: #97B0F8 solid 2px;
- box-shadow: 0 0 8px #97B0F8;
- */
- background-color: #f5f5f5;
- outline: #e5e5e5 solid 1px;
-}
-
-div.jsoneditor-tree button.jsoneditor-invisible {
- visibility: hidden;
- background: none;
-}
-
-div.jsoneditor {
- color: #1A1A1A;
- border: 1px solid #3883fa;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-
- width: 100%;
- height: 100%;
- overflow: hidden;
- position: relative;
- padding: 0;
- line-height: 100%;
-}
-
-
-div.jsoneditor-tree table.jsoneditor-tree {
- border-collapse: collapse;
- border-spacing: 0;
- width: 100%;
- margin: 0;
-}
-
-div.jsoneditor-outer {
- width: 100%;
- height: 100%;
- margin: -35px 0 0 0;
- padding: 35px 0 0 0;
-
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-textarea.jsoneditor-text,
-.ace-jsoneditor {
- min-height: 150px;
-}
-
-div.jsoneditor-tree {
- width: 100%;
- height: 100%;
- position: relative;
- overflow: auto;
-}
-
-textarea.jsoneditor-text {
- width: 100%;
- height: 100%;
- margin: 0;
-
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-
- outline-width: 0;
- border: none;
- background-color: white;
- resize: none;
-}
-
-tr.jsoneditor-highlight,
-tr.jsoneditor-selected {
- background-color: #e6e6e6;
-}
-
-tr.jsoneditor-selected button.jsoneditor-dragarea,
-tr.jsoneditor-selected button.jsoneditor-contextmenu {
- visibility: hidden;
-}
-
-tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea,
-tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu {
- visibility: visible;
-}
-
-div.jsoneditor-tree button.jsoneditor-dragarea {
- background: url('img/jsoneditor-icons.svg') -72px -72px;
- cursor: move;
-}
-
-div.jsoneditor-tree button.jsoneditor-dragarea:hover,
-div.jsoneditor-tree button.jsoneditor-dragarea:focus,
-tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea {
- background-position: -72px -48px;
-}
-
-div.jsoneditor tr,
-div.jsoneditor th,
-div.jsoneditor td {
- padding: 0;
- margin: 0;
-}
-
-div.jsoneditor td {
- vertical-align: top;
-}
-
-div.jsoneditor td.jsoneditor-tree {
- vertical-align: top;
-}
-
-div.jsoneditor-field,
-div.jsoneditor-value,
-div.jsoneditor td,
-div.jsoneditor th,
-div.jsoneditor textarea,
-.jsoneditor-schema-error {
- font-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif;
- font-size: 10pt;
- color: #1A1A1A;
-}
-
-
-
-
-
-/* popover */
-.jsoneditor-schema-error {
- cursor: default;
- display: inline-block;
- /*font-family: arial, sans-serif;*/
- height: 24px;
- line-height: 24px;
- position: relative;
- text-align: center;
- width: 24px;
-}
-
-div.jsoneditor-tree .jsoneditor-schema-error {
- width: 24px;
- height: 24px;
- padding: 0;
- margin: 0 4px 0 0;
- background: url('img/jsoneditor-icons.svg') -168px -48px;
-}
-
-.jsoneditor-schema-error .jsoneditor-popover {
- background-color: #4c4c4c;
- border-radius: 3px;
- box-shadow: 0 0 5px rgba(0,0,0,0.4);
- color: #fff;
- display: none;
- padding: 7px 10px;
- position: absolute;
- width: 200px;
- z-index: 4;
-}
-
-.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above {
- bottom: 32px;
- left: -98px;
-}
-
-.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below {
- top: 32px;
- left: -98px;
-}
-
-.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left {
- top: -7px;
- right: 32px;
-}
-
-.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right {
- top: -7px;
- left: 32px;
-}
-
-.jsoneditor-schema-error .jsoneditor-popover:before {
- border-right: 7px solid transparent;
- border-left: 7px solid transparent;
- content: '';
- display: block;
- left: 50%;
- margin-left: -7px;
- position: absolute;
-}
-
-.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-above:before {
- border-top: 7px solid #4c4c4c;
- bottom: -7px;
-}
-
-.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-below:before {
- border-bottom: 7px solid #4c4c4c;
- top: -7px;
-}
-
-.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-left:before {
- border-left: 7px solid #4c4c4c;
- border-top: 7px solid transparent;
- border-bottom: 7px solid transparent;
- content: '';
- top: 19px;
- right: -14px;
- left: inherit;
- margin-left: inherit;
- margin-top: -7px;
- position: absolute;
-}
-
-.jsoneditor-schema-error .jsoneditor-popover.jsoneditor-right:before {
- border-right: 7px solid #4c4c4c;
- border-top: 7px solid transparent;
- border-bottom: 7px solid transparent;
- content: '';
- top: 19px;
- left: -14px;
- margin-left: inherit;
- margin-top: -7px;
- position: absolute;
-}
-
-.jsoneditor-schema-error:hover .jsoneditor-popover,
-.jsoneditor-schema-error:focus .jsoneditor-popover {
- display: block;
- -webkit-animation: fade-in .3s linear 1, move-up .3s linear 1;
- -moz-animation: fade-in .3s linear 1, move-up .3s linear 1;
- -ms-animation: fade-in .3s linear 1, move-up .3s linear 1;
-}
-
-@-webkit-keyframes fade-in {
- from { opacity: 0; }
- to { opacity: 1; }
-}
-@-moz-keyframes fade-in {
- from { opacity: 0; }
- to { opacity: 1; }
-}
-@-ms-keyframes fade-in {
- from { opacity: 0; }
- to { opacity: 1; }
-}
-/*@-webkit-keyframes move-up {*/
- /*from { bottom: 24px; }*/
- /*to { bottom: 32px; }*/
-/*}*/
-/*@-moz-keyframes move-up {*/
- /*from { bottom: 24px; }*/
- /*to { bottom: 32px; }*/
-/*}*/
-/*@-ms-keyframes move-up {*/
- /*from { bottom: 24px; }*/
- /*to { bottom: 32px; }*/
-/*}*/
-
-
-/* JSON schema errors displayed at the bottom of the editor in mode text and code */
-
-.jsoneditor .jsoneditor-text-errors {
- width: 100%;
- border-collapse: collapse;
- background-color: #ffef8b;
- border-top: 1px solid #ffd700;
-}
-
-.jsoneditor .jsoneditor-text-errors td {
- padding: 3px 6px;
- vertical-align: middle;
-}
-
-.jsoneditor-text-errors .jsoneditor-schema-error {
- border: none;
- width: 24px;
- height: 24px;
- padding: 0;
- margin: 0 4px 0 0;
- background: url('img/jsoneditor-icons.svg') -168px -48px;
-}
-
diff --git a/src_old/css/menu.css b/src_old/css/menu.css
deleted file mode 100644
index 6a4f44c..0000000
--- a/src_old/css/menu.css
+++ /dev/null
@@ -1,110 +0,0 @@
-
-div.jsoneditor-menu {
- width: 100%;
- height: 35px;
- padding: 2px;
- margin: 0;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-
- color: white;
- background-color: #3883fa;
- border-bottom: 1px solid #3883fa;
-}
-
-div.jsoneditor-menu > button,
-div.jsoneditor-menu > div.jsoneditor-modes > button {
- width: 26px;
- height: 26px;
- margin: 2px;
- padding: 0;
- border-radius: 2px;
- border: 1px solid transparent;
- background: transparent url('img/jsoneditor-icons.svg');
- color: white;
- opacity: 0.8;
-
- font-family: arial, sans-serif;
- font-size: 10pt;
-
- float: left;
-}
-
-div.jsoneditor-menu > button:hover,
-div.jsoneditor-menu > div.jsoneditor-modes > button:hover {
- background-color: rgba(255,255,255,0.2);
- border: 1px solid rgba(255,255,255,0.4);
-}
-div.jsoneditor-menu > button:focus,
-div.jsoneditor-menu > button:active,
-div.jsoneditor-menu > div.jsoneditor-modes > button:focus,
-div.jsoneditor-menu > div.jsoneditor-modes > button:active {
- background-color: rgba(255,255,255,0.3);
-}
-div.jsoneditor-menu > button:disabled,
-div.jsoneditor-menu > div.jsoneditor-modes > button:disabled {
- opacity: 0.5;
-}
-
-div.jsoneditor-menu > button.jsoneditor-collapse-all {
- background-position: 0 -96px;
-}
-div.jsoneditor-menu > button.jsoneditor-expand-all {
- background-position: 0 -120px;
-}
-div.jsoneditor-menu > button.jsoneditor-undo {
- background-position: -24px -96px;
-}
-div.jsoneditor-menu > button.jsoneditor-undo:disabled {
- background-position: -24px -120px;
-}
-div.jsoneditor-menu > button.jsoneditor-redo {
- background-position: -48px -96px;
-}
-div.jsoneditor-menu > button.jsoneditor-redo:disabled {
- background-position: -48px -120px;
-}
-div.jsoneditor-menu > button.jsoneditor-compact {
- background-position: -72px -96px;
-}
-div.jsoneditor-menu > button.jsoneditor-format {
- background-position: -72px -120px;
-}
-
-div.jsoneditor-menu > div.jsoneditor-modes {
- display: inline-block;
- float: left;
-}
-
-div.jsoneditor-menu > div.jsoneditor-modes > button {
- background-image: none;
- width: auto;
- padding-left: 6px;
- padding-right: 6px;
-}
-
-div.jsoneditor-menu > button.jsoneditor-separator,
-div.jsoneditor-menu > div.jsoneditor-modes > button.jsoneditor-separator {
- margin-left: 10px;
-}
-
-div.jsoneditor-menu a {
- font-family: arial, sans-serif;
- font-size: 10pt;
- color: white;
- opacity: 0.8;
- vertical-align: middle;
-}
-
-div.jsoneditor-menu a:hover {
- opacity: 1;
-}
-
-div.jsoneditor-menu a.jsoneditor-poweredBy {
- font-size: 8pt;
- position: absolute;
- right: 0;
- top: 0;
- padding: 10px;
-}
diff --git a/src_old/css/reset.css b/src_old/css/reset.css
deleted file mode 100644
index 13f7334..0000000
--- a/src_old/css/reset.css
+++ /dev/null
@@ -1,25 +0,0 @@
-/* reset styling (prevent conflicts with bootstrap, materialize.css, etc.) */
-
-div.jsoneditor input {
- height: auto;
- border: inherit;
-}
-
-div.jsoneditor input:focus {
- border: none !important;
- box-shadow: none !important;
-}
-
-div.jsoneditor table {
- border-collapse: collapse;
- width: auto;
-}
-
-div.jsoneditor td,
-div.jsoneditor th {
- padding: 0;
- display: table-cell;
- text-align: left;
- vertical-align: inherit;
- border-radius: inherit;
-}
diff --git a/src_old/css/searchbox.css b/src_old/css/searchbox.css
deleted file mode 100644
index 2a92eb6..0000000
--- a/src_old/css/searchbox.css
+++ /dev/null
@@ -1,77 +0,0 @@
-
-table.jsoneditor-search input,
-table.jsoneditor-search div.jsoneditor-results {
- font-family: arial, sans-serif;
- font-size: 10pt;
- color: #1A1A1A;
- background: transparent; /* For Firefox */
-}
-
-table.jsoneditor-search div.jsoneditor-results {
- color: white;
- padding-right: 5px;
- line-height: 24px;
-}
-
-table.jsoneditor-search {
- position: absolute;
- right: 4px;
- top: 4px;
- border-collapse: collapse;
- border-spacing: 0;
-}
-
-table.jsoneditor-search div.jsoneditor-frame {
- border: 1px solid transparent;
- background-color: white;
- padding: 0 2px;
- margin: 0;
-}
-
-table.jsoneditor-search div.jsoneditor-frame table {
- border-collapse: collapse;
-}
-
-table.jsoneditor-search input {
- width: 120px;
- border: none;
- outline: none;
- margin: 1px;
- line-height: 20px;
-}
-
-table.jsoneditor-search button {
- width: 16px;
- height: 24px;
- padding: 0;
- margin: 0;
- border: none;
- background: url('img/jsoneditor-icons.svg');
- vertical-align: top;
-}
-
-table.jsoneditor-search button:hover {
- background-color: transparent;
-}
-
-table.jsoneditor-search button.jsoneditor-refresh {
- width: 18px;
- background-position: -99px -73px;
-}
-
-table.jsoneditor-search button.jsoneditor-next {
- cursor: pointer;
- background-position: -124px -73px;
-}
-table.jsoneditor-search button.jsoneditor-next:hover {
- background-position: -124px -49px;
-}
-
-table.jsoneditor-search button.jsoneditor-previous {
- cursor: pointer;
- background-position: -148px -73px;
- margin-right: 2px;
-}
-table.jsoneditor-search button.jsoneditor-previous:hover {
- background-position: -148px -49px;
-}
diff --git a/src_old/docs/which files do I need.md b/src_old/docs/which files do I need.md
deleted file mode 100644
index 726a8ae..0000000
--- a/src_old/docs/which files do I need.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# Which files do I need?
-
-Ehhh, that's quite some files in this dist folder. Which files do I need?
-
-
-## Full version
-
-If you're not sure which version to use, use the full version.
-
-Which files are needed when using the full version?
-
-- jsoneditor.min.js
-- jsoneditor.map (optional, for debugging purposes only)
-- jsoneditor.min.css
-- img/jsoneditor-icons.svg
-
-
-## Minimalist version
-
-The minimalist version has excluded the following libraries:
-
-- `ace` (via `brace`), used for the code editor.
-- `ajv`, used for JSON schema validation.
-
-This reduces the the size of the minified and gzipped JavaScript file from
-about 160 kB to about 40 kB.
-
-When to use the minimalist version?
-
-- If you don't need the mode "code" and don't need JSON schema validation.
-- Or if you want to provide `ace` and/or `ajv` yourself via the configuration
- options, for example when you already use Ace in other parts of your
- web application too and don't want to bundle the library twice.
-
-Which files are needed when using the minimalist version?
-
-- jsoneditor-minimalist.min.js
-- jsoneditor-minimalist.map (optional, for debugging purposes only)
-- jsoneditor.min.css
-- img/jsoneditor-icons.svg
-
diff --git a/src_old/js/ContextMenu.js b/src_old/js/ContextMenu.js
deleted file mode 100644
index 338f40a..0000000
--- a/src_old/js/ContextMenu.js
+++ /dev/null
@@ -1,457 +0,0 @@
-'use strict';
-
-var util = require('./util');
-
-/**
- * A context menu
- * @param {Object[]} items Array containing the menu structure
- * TODO: describe structure
- * @param {Object} [options] Object with options. Available options:
- * {function} close Callback called when the
- * context menu is being closed.
- * @constructor
- */
-function ContextMenu (items, options) {
- this.dom = {};
-
- var me = this;
- var dom = this.dom;
- this.anchor = undefined;
- this.items = items;
- this.eventListeners = {};
- this.selection = undefined; // holds the selection before the menu was opened
- this.onClose = options ? options.close : undefined;
-
- // create root element
- var root = document.createElement('div');
- root.className = 'jsoneditor-contextmenu-root';
- dom.root = root;
-
- // create a container element
- var menu = document.createElement('div');
- menu.className = 'jsoneditor-contextmenu';
- dom.menu = menu;
- root.appendChild(menu);
-
- // create a list to hold the menu items
- var list = document.createElement('ul');
- list.className = 'jsoneditor-menu';
- menu.appendChild(list);
- dom.list = list;
- dom.items = []; // list with all buttons
-
- // create a (non-visible) button to set the focus to the menu
- var focusButton = document.createElement('button');
- dom.focusButton = focusButton;
- var li = document.createElement('li');
- li.style.overflow = 'hidden';
- li.style.height = '0';
- li.appendChild(focusButton);
- list.appendChild(li);
-
- function createMenuItems (list, domItems, items) {
- items.forEach(function (item) {
- if (item.type == 'separator') {
- // create a separator
- var separator = document.createElement('div');
- separator.className = 'jsoneditor-separator';
- li = document.createElement('li');
- li.appendChild(separator);
- list.appendChild(li);
- }
- else {
- var domItem = {};
-
- // create a menu item
- var li = document.createElement('li');
- list.appendChild(li);
-
- // create a button in the menu item
- var button = document.createElement('button');
- button.className = item.className;
- domItem.button = button;
- if (item.title) {
- button.title = item.title;
- }
- if (item.click) {
- button.onclick = function (event) {
- event.preventDefault();
- me.hide();
- item.click();
- };
- }
- li.appendChild(button);
-
- // create the contents of the button
- if (item.submenu) {
- // add the icon to the button
- var divIcon = document.createElement('div');
- divIcon.className = 'jsoneditor-icon';
- button.appendChild(divIcon);
- button.appendChild(document.createTextNode(item.text));
-
- var buttonSubmenu;
- if (item.click) {
- // submenu and a button with a click handler
- button.className += ' jsoneditor-default';
-
- var buttonExpand = document.createElement('button');
- domItem.buttonExpand = buttonExpand;
- buttonExpand.className = 'jsoneditor-expand';
- buttonExpand.innerHTML = '
';
- li.appendChild(buttonExpand);
- if (item.submenuTitle) {
- buttonExpand.title = item.submenuTitle;
- }
-
- buttonSubmenu = buttonExpand;
- }
- else {
- // submenu and a button without a click handler
- var divExpand = document.createElement('div');
- divExpand.className = 'jsoneditor-expand';
- button.appendChild(divExpand);
-
- buttonSubmenu = button;
- }
-
- // attach a handler to expand/collapse the submenu
- buttonSubmenu.onclick = function (event) {
- event.preventDefault();
- me._onExpandItem(domItem);
- buttonSubmenu.focus();
- };
-
- // create the submenu
- var domSubItems = [];
- domItem.subItems = domSubItems;
- var ul = document.createElement('ul');
- domItem.ul = ul;
- ul.className = 'jsoneditor-menu';
- ul.style.height = '0';
- li.appendChild(ul);
- createMenuItems(ul, domSubItems, item.submenu);
- }
- else {
- // no submenu, just a button with clickhandler
- button.innerHTML = '
' + item.text;
- }
-
- domItems.push(domItem);
- }
- });
- }
- createMenuItems(list, this.dom.items, items);
-
- // TODO: when the editor is small, show the submenu on the right instead of inline?
-
- // calculate the max height of the menu with one submenu expanded
- this.maxHeight = 0; // height in pixels
- items.forEach(function (item) {
- var height = (items.length + (item.submenu ? item.submenu.length : 0)) * 24;
- me.maxHeight = Math.max(me.maxHeight, height);
- });
-}
-
-/**
- * Get the currently visible buttons
- * @return {Array.} buttons
- * @private
- */
-ContextMenu.prototype._getVisibleButtons = function () {
- var buttons = [];
- var me = this;
- this.dom.items.forEach(function (item) {
- buttons.push(item.button);
- if (item.buttonExpand) {
- buttons.push(item.buttonExpand);
- }
- if (item.subItems && item == me.expandedItem) {
- item.subItems.forEach(function (subItem) {
- buttons.push(subItem.button);
- if (subItem.buttonExpand) {
- buttons.push(subItem.buttonExpand);
- }
- // TODO: change to fully recursive method
- });
- }
- });
-
- return buttons;
-};
-
-// currently displayed context menu, a singleton. We may only have one visible context menu
-ContextMenu.visibleMenu = undefined;
-
-/**
- * Attach the menu to an anchor
- * @param {HTMLElement} anchor Anchor where the menu will be attached
- * as sibling.
- * @param {HTMLElement} [contentWindow] The DIV with with the (scrollable) contents
- */
-ContextMenu.prototype.show = function (anchor, contentWindow) {
- this.hide();
-
- // determine whether to display the menu below or above the anchor
- var showBelow = true;
- if (contentWindow) {
- var anchorRect = anchor.getBoundingClientRect();
- var contentRect = contentWindow.getBoundingClientRect();
-
- if (anchorRect.bottom + this.maxHeight < contentRect.bottom) {
- // fits below -> show below
- }
- else if (anchorRect.top - this.maxHeight > contentRect.top) {
- // fits above -> show above
- showBelow = false;
- }
- else {
- // doesn't fit above nor below -> show below
- }
- }
-
- // position the menu
- if (showBelow) {
- // display the menu below the anchor
- var anchorHeight = anchor.offsetHeight;
- this.dom.menu.style.left = '0px';
- this.dom.menu.style.top = anchorHeight + 'px';
- this.dom.menu.style.bottom = '';
- }
- else {
- // display the menu above the anchor
- this.dom.menu.style.left = '0px';
- this.dom.menu.style.top = '';
- this.dom.menu.style.bottom = '0px';
- }
-
- // attach the menu to the parent of the anchor
- var parent = anchor.parentNode;
- parent.insertBefore(this.dom.root, parent.firstChild);
-
- // create and attach event listeners
- var me = this;
- var list = this.dom.list;
- this.eventListeners.mousedown = util.addEventListener(window, 'mousedown', function (event) {
- // hide menu on click outside of the menu
- var target = event.target;
- if ((target != list) && !me._isChildOf(target, list)) {
- me.hide();
- event.stopPropagation();
- event.preventDefault();
- }
- });
- this.eventListeners.keydown = util.addEventListener(window, 'keydown', function (event) {
- me._onKeyDown(event);
- });
-
- // move focus to the first button in the context menu
- this.selection = util.getSelection();
- this.anchor = anchor;
- setTimeout(function () {
- me.dom.focusButton.focus();
- }, 0);
-
- if (ContextMenu.visibleMenu) {
- ContextMenu.visibleMenu.hide();
- }
- ContextMenu.visibleMenu = this;
-};
-
-/**
- * Hide the context menu if visible
- */
-ContextMenu.prototype.hide = function () {
- // remove the menu from the DOM
- if (this.dom.root.parentNode) {
- this.dom.root.parentNode.removeChild(this.dom.root);
- if (this.onClose) {
- this.onClose();
- }
- }
-
- // remove all event listeners
- // all event listeners are supposed to be attached to document.
- for (var name in this.eventListeners) {
- if (this.eventListeners.hasOwnProperty(name)) {
- var fn = this.eventListeners[name];
- if (fn) {
- util.removeEventListener(window, name, fn);
- }
- delete this.eventListeners[name];
- }
- }
-
- if (ContextMenu.visibleMenu == this) {
- ContextMenu.visibleMenu = undefined;
- }
-};
-
-/**
- * Expand a submenu
- * Any currently expanded submenu will be hided.
- * @param {Object} domItem
- * @private
- */
-ContextMenu.prototype._onExpandItem = function (domItem) {
- var me = this;
- var alreadyVisible = (domItem == this.expandedItem);
-
- // hide the currently visible submenu
- var expandedItem = this.expandedItem;
- if (expandedItem) {
- //var ul = expandedItem.ul;
- expandedItem.ul.style.height = '0';
- expandedItem.ul.style.padding = '';
- setTimeout(function () {
- if (me.expandedItem != expandedItem) {
- expandedItem.ul.style.display = '';
- util.removeClassName(expandedItem.ul.parentNode, 'jsoneditor-selected');
- }
- }, 300); // timeout duration must match the css transition duration
- this.expandedItem = undefined;
- }
-
- if (!alreadyVisible) {
- var ul = domItem.ul;
- ul.style.display = 'block';
- var height = ul.clientHeight; // force a reflow in Firefox
- setTimeout(function () {
- if (me.expandedItem == domItem) {
- ul.style.height = (ul.childNodes.length * 24) + 'px';
- ul.style.padding = '5px 10px';
- }
- }, 0);
- util.addClassName(ul.parentNode, 'jsoneditor-selected');
- this.expandedItem = domItem;
- }
-};
-
-/**
- * Handle onkeydown event
- * @param {Event} event
- * @private
- */
-ContextMenu.prototype._onKeyDown = function (event) {
- var target = event.target;
- var keynum = event.which;
- var handled = false;
- var buttons, targetIndex, prevButton, nextButton;
-
- if (keynum == 27) { // ESC
- // hide the menu on ESC key
-
- // restore previous selection and focus
- if (this.selection) {
- util.setSelection(this.selection);
- }
- if (this.anchor) {
- this.anchor.focus();
- }
-
- this.hide();
-
- handled = true;
- }
- else if (keynum == 9) { // Tab
- if (!event.shiftKey) { // Tab
- buttons = this._getVisibleButtons();
- targetIndex = buttons.indexOf(target);
- if (targetIndex == buttons.length - 1) {
- // move to first button
- buttons[0].focus();
- handled = true;
- }
- }
- else { // Shift+Tab
- buttons = this._getVisibleButtons();
- targetIndex = buttons.indexOf(target);
- if (targetIndex == 0) {
- // move to last button
- buttons[buttons.length - 1].focus();
- handled = true;
- }
- }
- }
- else if (keynum == 37) { // Arrow Left
- if (target.className == 'jsoneditor-expand') {
- buttons = this._getVisibleButtons();
- targetIndex = buttons.indexOf(target);
- prevButton = buttons[targetIndex - 1];
- if (prevButton) {
- prevButton.focus();
- }
- }
- handled = true;
- }
- else if (keynum == 38) { // Arrow Up
- buttons = this._getVisibleButtons();
- targetIndex = buttons.indexOf(target);
- prevButton = buttons[targetIndex - 1];
- if (prevButton && prevButton.className == 'jsoneditor-expand') {
- // skip expand button
- prevButton = buttons[targetIndex - 2];
- }
- if (!prevButton) {
- // move to last button
- prevButton = buttons[buttons.length - 1];
- }
- if (prevButton) {
- prevButton.focus();
- }
- handled = true;
- }
- else if (keynum == 39) { // Arrow Right
- buttons = this._getVisibleButtons();
- targetIndex = buttons.indexOf(target);
- nextButton = buttons[targetIndex + 1];
- if (nextButton && nextButton.className == 'jsoneditor-expand') {
- nextButton.focus();
- }
- handled = true;
- }
- else if (keynum == 40) { // Arrow Down
- buttons = this._getVisibleButtons();
- targetIndex = buttons.indexOf(target);
- nextButton = buttons[targetIndex + 1];
- if (nextButton && nextButton.className == 'jsoneditor-expand') {
- // skip expand button
- nextButton = buttons[targetIndex + 2];
- }
- if (!nextButton) {
- // move to first button
- nextButton = buttons[0];
- }
- if (nextButton) {
- nextButton.focus();
- handled = true;
- }
- handled = true;
- }
- // TODO: arrow left and right
-
- if (handled) {
- event.stopPropagation();
- event.preventDefault();
- }
-};
-
-/**
- * Test if an element is a child of a parent element.
- * @param {Element} child
- * @param {Element} parent
- * @return {boolean} isChild
- */
-ContextMenu.prototype._isChildOf = function (child, parent) {
- var e = child.parentNode;
- while (e) {
- if (e == parent) {
- return true;
- }
- e = e.parentNode;
- }
-
- return false;
-};
-
-module.exports = ContextMenu;
diff --git a/src_old/js/Highlighter.js b/src_old/js/Highlighter.js
deleted file mode 100644
index 09b03f6..0000000
--- a/src_old/js/Highlighter.js
+++ /dev/null
@@ -1,86 +0,0 @@
-'use strict';
-
-/**
- * The highlighter can highlight/unhighlight a node, and
- * animate the visibility of a context menu.
- * @constructor Highlighter
- */
-function Highlighter () {
- this.locked = false;
-}
-
-/**
- * Hightlight given node and its childs
- * @param {Node} node
- */
-Highlighter.prototype.highlight = function (node) {
- if (this.locked) {
- return;
- }
-
- if (this.node != node) {
- // unhighlight current node
- if (this.node) {
- this.node.setHighlight(false);
- }
-
- // highlight new node
- this.node = node;
- this.node.setHighlight(true);
- }
-
- // cancel any current timeout
- this._cancelUnhighlight();
-};
-
-/**
- * Unhighlight currently highlighted node.
- * Will be done after a delay
- */
-Highlighter.prototype.unhighlight = function () {
- if (this.locked) {
- return;
- }
-
- var me = this;
- if (this.node) {
- this._cancelUnhighlight();
-
- // do the unhighlighting after a small delay, to prevent re-highlighting
- // the same node when moving from the drag-icon to the contextmenu-icon
- // or vice versa.
- this.unhighlightTimer = setTimeout(function () {
- me.node.setHighlight(false);
- me.node = undefined;
- me.unhighlightTimer = undefined;
- }, 0);
- }
-};
-
-/**
- * Cancel an unhighlight action (if before the timeout of the unhighlight action)
- * @private
- */
-Highlighter.prototype._cancelUnhighlight = function () {
- if (this.unhighlightTimer) {
- clearTimeout(this.unhighlightTimer);
- this.unhighlightTimer = undefined;
- }
-};
-
-/**
- * Lock highlighting or unhighlighting nodes.
- * methods highlight and unhighlight do not work while locked.
- */
-Highlighter.prototype.lock = function () {
- this.locked = true;
-};
-
-/**
- * Unlock highlighting or unhighlighting nodes
- */
-Highlighter.prototype.unlock = function () {
- this.locked = false;
-};
-
-module.exports = Highlighter;
diff --git a/src_old/js/History.js b/src_old/js/History.js
deleted file mode 100644
index 1a8b0bf..0000000
--- a/src_old/js/History.js
+++ /dev/null
@@ -1,267 +0,0 @@
-'use strict';
-
-var util = require('./util');
-
-/**
- * @constructor History
- * Store action history, enables undo and redo
- * @param {JSONEditor} editor
- */
-function History (editor) {
- this.editor = editor;
- this.history = [];
- this.index = -1;
-
- this.clear();
-
- // map with all supported actions
- this.actions = {
- 'editField': {
- 'undo': function (params) {
- params.node.updateField(params.oldValue);
- },
- 'redo': function (params) {
- params.node.updateField(params.newValue);
- }
- },
- 'editValue': {
- 'undo': function (params) {
- params.node.updateValue(params.oldValue);
- },
- 'redo': function (params) {
- params.node.updateValue(params.newValue);
- }
- },
- 'changeType': {
- 'undo': function (params) {
- params.node.changeType(params.oldType);
- },
- 'redo': function (params) {
- params.node.changeType(params.newType);
- }
- },
-
- 'appendNodes': {
- 'undo': function (params) {
- params.nodes.forEach(function (node) {
- params.parent.removeChild(node);
- });
- },
- 'redo': function (params) {
- params.nodes.forEach(function (node) {
- params.parent.appendChild(node);
- });
- }
- },
- 'insertBeforeNodes': {
- 'undo': function (params) {
- params.nodes.forEach(function (node) {
- params.parent.removeChild(node);
- });
- },
- 'redo': function (params) {
- params.nodes.forEach(function (node) {
- params.parent.insertBefore(node, params.beforeNode);
- });
- }
- },
- 'insertAfterNodes': {
- 'undo': function (params) {
- params.nodes.forEach(function (node) {
- params.parent.removeChild(node);
- });
- },
- 'redo': function (params) {
- var afterNode = params.afterNode;
- params.nodes.forEach(function (node) {
- params.parent.insertAfter(params.node, afterNode);
- afterNode = node;
- });
- }
- },
- 'removeNodes': {
- 'undo': function (params) {
- var parent = params.parent;
- var beforeNode = parent.childs[params.index] || parent.append;
- params.nodes.forEach(function (node) {
- parent.insertBefore(node, beforeNode);
- });
- },
- 'redo': function (params) {
- params.nodes.forEach(function (node) {
- params.parent.removeChild(node);
- });
- }
- },
- 'duplicateNodes': {
- 'undo': function (params) {
- params.nodes.forEach(function (node) {
- params.parent.removeChild(node);
- });
- },
- 'redo': function (params) {
- var afterNode = params.afterNode;
- params.nodes.forEach(function (node) {
- params.parent.insertAfter(node, afterNode);
- afterNode = node;
- });
- }
- },
- 'moveNodes': {
- 'undo': function (params) {
- params.nodes.forEach(function (node) {
- params.oldBeforeNode.parent.moveBefore(node, params.oldBeforeNode);
- });
- },
- 'redo': function (params) {
- params.nodes.forEach(function (node) {
- params.newBeforeNode.parent.moveBefore(node, params.newBeforeNode);
- });
- }
- },
-
- 'sort': {
- 'undo': function (params) {
- var node = params.node;
- node.hideChilds();
- node.sort = params.oldSort;
- node.childs = params.oldChilds;
- node.showChilds();
- },
- 'redo': function (params) {
- var node = params.node;
- node.hideChilds();
- node.sort = params.newSort;
- node.childs = params.newChilds;
- node.showChilds();
- }
- }
-
- // TODO: restore the original caret position and selection with each undo
- // TODO: implement history for actions "expand", "collapse", "scroll", "setDocument"
- };
-}
-
-/**
- * The method onChange is executed when the History is changed, and can
- * be overloaded.
- */
-History.prototype.onChange = function () {};
-
-/**
- * Add a new action to the history
- * @param {String} action The executed action. Available actions: "editField",
- * "editValue", "changeType", "appendNode",
- * "removeNode", "duplicateNode", "moveNode"
- * @param {Object} params Object containing parameters describing the change.
- * The parameters in params depend on the action (for
- * example for "editValue" the Node, old value, and new
- * value are provided). params contains all information
- * needed to undo or redo the action.
- */
-History.prototype.add = function (action, params) {
- this.index++;
- this.history[this.index] = {
- 'action': action,
- 'params': params,
- 'timestamp': new Date()
- };
-
- // remove redo actions which are invalid now
- if (this.index < this.history.length - 1) {
- this.history.splice(this.index + 1, this.history.length - this.index - 1);
- }
-
- // fire onchange event
- this.onChange();
-};
-
-/**
- * Clear history
- */
-History.prototype.clear = function () {
- this.history = [];
- this.index = -1;
-
- // fire onchange event
- this.onChange();
-};
-
-/**
- * Check if there is an action available for undo
- * @return {Boolean} canUndo
- */
-History.prototype.canUndo = function () {
- return (this.index >= 0);
-};
-
-/**
- * Check if there is an action available for redo
- * @return {Boolean} canRedo
- */
-History.prototype.canRedo = function () {
- return (this.index < this.history.length - 1);
-};
-
-/**
- * Undo the last action
- */
-History.prototype.undo = function () {
- if (this.canUndo()) {
- var obj = this.history[this.index];
- if (obj) {
- var action = this.actions[obj.action];
- if (action && action.undo) {
- action.undo(obj.params);
- if (obj.params.oldSelection) {
- this.editor.setSelection(obj.params.oldSelection);
- }
- }
- else {
- console.error(new Error('unknown action "' + obj.action + '"'));
- }
- }
- this.index--;
-
- // fire onchange event
- this.onChange();
- }
-};
-
-/**
- * Redo the last action
- */
-History.prototype.redo = function () {
- if (this.canRedo()) {
- this.index++;
-
- var obj = this.history[this.index];
- if (obj) {
- var action = this.actions[obj.action];
- if (action && action.redo) {
- action.redo(obj.params);
- if (obj.params.newSelection) {
- this.editor.setSelection(obj.params.newSelection);
- }
- }
- else {
- console.error(new Error('unknown action "' + obj.action + '"'));
- }
- }
-
- // fire onchange event
- this.onChange();
- }
-};
-
-/**
- * Destroy history
- */
-History.prototype.destroy = function () {
- this.editor = null;
-
- this.history = [];
- this.index = -1;
-};
-
-module.exports = History;
diff --git a/src_old/js/JSONEditor.js b/src_old/js/JSONEditor.js
deleted file mode 100644
index 7420d49..0000000
--- a/src_old/js/JSONEditor.js
+++ /dev/null
@@ -1,385 +0,0 @@
-'use strict';
-
-var Ajv;
-try {
- Ajv = require('ajv');
-}
-catch (err) {
- // no problem... when we need Ajv we will throw a neat exception
-}
-
-var treemode = require('./treemode');
-var textmode = require('./textmode');
-var util = require('./util');
-
-/**
- * @constructor JSONEditor
- * @param {Element} container Container element
- * @param {Object} [options] Object with options. available options:
- * {String} mode Editor mode. Available values:
- * 'tree' (default), 'view',
- * 'form', 'text', and 'code'.
- * {function} onChange Callback method, triggered
- * on change of contents
- * {function} onError Callback method, triggered
- * when an error occurs
- * {Boolean} search Enable search box.
- * True by default
- * Only applicable for modes
- * 'tree', 'view', and 'form'
- * {Boolean} history Enable history (undo/redo).
- * True by default
- * Only applicable for modes
- * 'tree', 'view', and 'form'
- * {String} name Field name for the root node.
- * Only applicable for modes
- * 'tree', 'view', and 'form'
- * {Number} indentation Number of indentation
- * spaces. 4 by default.
- * Only applicable for
- * modes 'text' and 'code'
- * {boolean} escapeUnicode If true, unicode
- * characters are escaped.
- * false by default.
- * {boolean} sortObjectKeys If true, object keys are
- * sorted before display.
- * false by default.
- * @param {Object | undefined} json JSON object
- */
-function JSONEditor (container, options, json) {
- if (!(this instanceof JSONEditor)) {
- throw new Error('JSONEditor constructor called without "new".');
- }
-
- // check for unsupported browser (IE8 and older)
- var ieVersion = util.getInternetExplorerVersion();
- if (ieVersion != -1 && ieVersion < 9) {
- throw new Error('Unsupported browser, IE9 or newer required. ' +
- 'Please install the newest version of your browser.');
- }
-
- if (options) {
- // check for deprecated options
- if (options.error) {
- console.warn('Option "error" has been renamed to "onError"');
- options.onError = options.error;
- delete options.error;
- }
- if (options.change) {
- console.warn('Option "change" has been renamed to "onChange"');
- options.onChange = options.change;
- delete options.change;
- }
- if (options.editable) {
- console.warn('Option "editable" has been renamed to "onEditable"');
- options.onEditable = options.editable;
- delete options.editable;
- }
-
- // validate options
- if (options) {
- var VALID_OPTIONS = [
- 'ace', 'theme',
- 'ajv', 'schema',
- 'onChange', 'onEditable', 'onError', 'onModeChange',
- 'escapeUnicode', 'history', 'search', 'mode', 'modes', 'name', 'indentation', 'sortObjectKeys'
- ];
-
- Object.keys(options).forEach(function (option) {
- if (VALID_OPTIONS.indexOf(option) === -1) {
- console.warn('Unknown option "' + option + '". This option will be ignored');
- }
- });
- }
- }
-
- if (arguments.length) {
- this._create(container, options, json);
- }
-}
-
-/**
- * Configuration for all registered modes. Example:
- * {
- * tree: {
- * mixin: TreeEditor,
- * data: 'json'
- * },
- * text: {
- * mixin: TextEditor,
- * data: 'text'
- * }
- * }
- *
- * @type { Object. }
- */
-JSONEditor.modes = {};
-
-// debounce interval for JSON schema vaidation in milliseconds
-JSONEditor.prototype.DEBOUNCE_INTERVAL = 150;
-
-/**
- * Create the JSONEditor
- * @param {Element} container Container element
- * @param {Object} [options] See description in constructor
- * @param {Object | undefined} json JSON object
- * @private
- */
-JSONEditor.prototype._create = function (container, options, json) {
- this.container = container;
- this.options = options || {};
- this.json = json || {};
-
- var mode = this.options.mode || 'tree';
- this.setMode(mode);
-};
-
-/**
- * Destroy the editor. Clean up DOM, event listeners, and web workers.
- */
-JSONEditor.prototype.destroy = function () {};
-
-/**
- * Set JSON object in editor
- * @param {Object | undefined} json JSON data
- */
-JSONEditor.prototype.set = function (json) {
- this.json = json;
-};
-
-/**
- * Get JSON from the editor
- * @returns {Object} json
- */
-JSONEditor.prototype.get = function () {
- return this.json;
-};
-
-/**
- * Set string containing JSON for the editor
- * @param {String | undefined} jsonText
- */
-JSONEditor.prototype.setText = function (jsonText) {
- this.json = util.parse(jsonText);
-};
-
-/**
- * Get stringified JSON contents from the editor
- * @returns {String} jsonText
- */
-JSONEditor.prototype.getText = function () {
- return JSON.stringify(this.json);
-};
-
-/**
- * Set a field name for the root node.
- * @param {String | undefined} name
- */
-JSONEditor.prototype.setName = function (name) {
- if (!this.options) {
- this.options = {};
- }
- this.options.name = name;
-};
-
-/**
- * Get the field name for the root node.
- * @return {String | undefined} name
- */
-JSONEditor.prototype.getName = function () {
- return this.options && this.options.name;
-};
-
-/**
- * Change the mode of the editor.
- * JSONEditor will be extended with all methods needed for the chosen mode.
- * @param {String} mode Available modes: 'tree' (default), 'view', 'form',
- * 'text', and 'code'.
- */
-JSONEditor.prototype.setMode = function (mode) {
- var container = this.container;
- var options = util.extend({}, this.options);
- var oldMode = options.mode;
- var data;
- var name;
-
- options.mode = mode;
- var config = JSONEditor.modes[mode];
- if (config) {
- try {
- var asText = (config.data == 'text');
- name = this.getName();
- data = this[asText ? 'getText' : 'get'](); // get text or json
-
- this.destroy();
- util.clear(this);
- util.extend(this, config.mixin);
- this.create(container, options);
-
- this.setName(name);
- this[asText ? 'setText' : 'set'](data); // set text or json
-
- if (typeof config.load === 'function') {
- try {
- config.load.call(this);
- }
- catch (err) {
- console.error(err);
- }
- }
-
- if (typeof options.onModeChange === 'function' && mode !== oldMode) {
- try {
- options.onModeChange(mode, oldMode);
- }
- catch (err) {
- console.error(err);
- }
- }
- }
- catch (err) {
- this._onError(err);
- }
- }
- else {
- throw new Error('Unknown mode "' + options.mode + '"');
- }
-};
-
-/**
- * Get the current mode
- * @return {string}
- */
-JSONEditor.prototype.getMode = function () {
- return this.options.mode;
-};
-
-/**
- * Throw an error. If an error callback is configured in options.error, this
- * callback will be invoked. Else, a regular error is thrown.
- * @param {Error} err
- * @private
- */
-JSONEditor.prototype._onError = function(err) {
- if (this.options && typeof this.options.onError === 'function') {
- this.options.onError(err);
- }
- else {
- throw err;
- }
-};
-
-/**
- * Set a JSON schema for validation of the JSON object.
- * To remove the schema, call JSONEditor.setSchema(null)
- * @param {Object | null} schema
- */
-JSONEditor.prototype.setSchema = function (schema) {
- // compile a JSON schema validator if a JSON schema is provided
- if (schema) {
- var ajv;
- try {
- // grab ajv from options if provided, else create a new instance
- ajv = this.options.ajv || Ajv({ allErrors: true, verbose: true });
-
- }
- catch (err) {
- console.warn('Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.');
- }
-
- if (ajv) {
- this.validateSchema = ajv.compile(schema);
-
- // add schema to the options, so that when switching to an other mode,
- // the set schema is not lost
- this.options.schema = schema;
-
- // validate now
- this.validate();
- }
-
- this.refresh(); // update DOM
- }
- else {
- // remove current schema
- this.validateSchema = null;
- this.options.schema = null;
- this.validate(); // to clear current error messages
- this.refresh(); // update DOM
- }
-};
-
-/**
- * Validate current JSON object against the configured JSON schema
- * Throws an exception when no JSON schema is configured
- */
-JSONEditor.prototype.validate = function () {
- // must be implemented by treemode and textmode
-};
-
-/**
- * Refresh the rendered contents
- */
-JSONEditor.prototype.refresh = function () {
- // can be implemented by treemode and textmode
-};
-
-/**
- * Register a plugin with one ore multiple modes for the JSON Editor.
- *
- * A mode is described as an object with properties:
- *
- * - `mode: String` The name of the mode.
- * - `mixin: Object` An object containing the mixin functions which
- * will be added to the JSONEditor. Must contain functions
- * create, get, getText, set, and setText. May have
- * additional functions.
- * When the JSONEditor switches to a mixin, all mixin
- * functions are added to the JSONEditor, and then
- * the function `create(container, options)` is executed.
- * - `data: 'text' | 'json'` The type of data that will be used to load the mixin.
- * - `[load: function]` An optional function called after the mixin
- * has been loaded.
- *
- * @param {Object | Array} mode A mode object or an array with multiple mode objects.
- */
-JSONEditor.registerMode = function (mode) {
- var i, prop;
-
- if (util.isArray(mode)) {
- // multiple modes
- for (i = 0; i < mode.length; i++) {
- JSONEditor.registerMode(mode[i]);
- }
- }
- else {
- // validate the new mode
- if (!('mode' in mode)) throw new Error('Property "mode" missing');
- if (!('mixin' in mode)) throw new Error('Property "mixin" missing');
- if (!('data' in mode)) throw new Error('Property "data" missing');
- var name = mode.mode;
- if (name in JSONEditor.modes) {
- throw new Error('Mode "' + name + '" already registered');
- }
-
- // validate the mixin
- if (typeof mode.mixin.create !== 'function') {
- throw new Error('Required function "create" missing on mixin');
- }
- var reserved = ['setMode', 'registerMode', 'modes'];
- for (i = 0; i < reserved.length; i++) {
- prop = reserved[i];
- if (prop in mode.mixin) {
- throw new Error('Reserved property "' + prop + '" not allowed in mixin');
- }
- }
-
- JSONEditor.modes[name] = mode;
- }
-};
-
-// register tree and text modes
-JSONEditor.registerMode(treemode);
-JSONEditor.registerMode(textmode);
-
-module.exports = JSONEditor;
diff --git a/src_old/js/ModeSwitcher.js b/src_old/js/ModeSwitcher.js
deleted file mode 100644
index 0c99557..0000000
--- a/src_old/js/ModeSwitcher.js
+++ /dev/null
@@ -1,114 +0,0 @@
-'use strict';
-
-var ContextMenu = require('./ContextMenu');
-
-/**
- * Create a select box to be used in the editor menu's, which allows to switch mode
- * @param {HTMLElement} container
- * @param {String[]} modes Available modes: 'code', 'form', 'text', 'tree', 'view'
- * @param {String} current Available modes: 'code', 'form', 'text', 'tree', 'view'
- * @param {function(mode: string)} onSwitch Callback invoked on switch
- * @constructor
- */
-function ModeSwitcher(container, modes, current, onSwitch) {
- // available modes
- var availableModes = {
- code: {
- 'text': 'Code',
- 'title': 'Switch to code highlighter',
- 'click': function () {
- onSwitch('code')
- }
- },
- form: {
- 'text': 'Form',
- 'title': 'Switch to form editor',
- 'click': function () {
- onSwitch('form');
- }
- },
- text: {
- 'text': 'Text',
- 'title': 'Switch to plain text editor',
- 'click': function () {
- onSwitch('text');
- }
- },
- tree: {
- 'text': 'Tree',
- 'title': 'Switch to tree editor',
- 'click': function () {
- onSwitch('tree');
- }
- },
- view: {
- 'text': 'View',
- 'title': 'Switch to tree view',
- 'click': function () {
- onSwitch('view');
- }
- }
- };
-
- // list the selected modes
- var items = [];
- for (var i = 0; i < modes.length; i++) {
- var mode = modes[i];
- var item = availableModes[mode];
- if (!item) {
- throw new Error('Unknown mode "' + mode + '"');
- }
-
- item.className = 'jsoneditor-type-modes' + ((current == mode) ? ' jsoneditor-selected' : '');
- items.push(item);
- }
-
- // retrieve the title of current mode
- var currentMode = availableModes[current];
- if (!currentMode) {
- throw new Error('Unknown mode "' + current + '"');
- }
- var currentTitle = currentMode.text;
-
- // create the html element
- var box = document.createElement('button');
- box.className = 'jsoneditor-modes jsoneditor-separator';
- box.innerHTML = currentTitle + ' ▾';
- box.title = 'Switch editor mode';
- box.onclick = function () {
- var menu = new ContextMenu(items);
- menu.show(box);
- };
-
- var frame = document.createElement('div');
- frame.className = 'jsoneditor-modes';
- frame.style.position = 'relative';
- frame.appendChild(box);
-
- container.appendChild(frame);
-
- this.dom = {
- container: container,
- box: box,
- frame: frame
- };
-}
-
-/**
- * Set focus to switcher
- */
-ModeSwitcher.prototype.focus = function () {
- this.dom.box.focus();
-};
-
-/**
- * Destroy the ModeSwitcher, remove from DOM
- */
-ModeSwitcher.prototype.destroy = function () {
- if (this.dom && this.dom.frame && this.dom.frame.parentNode) {
- this.dom.frame.parentNode.removeChild(this.dom.frame);
- }
- this.dom = null;
-};
-
-module.exports = ModeSwitcher;
diff --git a/src_old/js/Node.js b/src_old/js/Node.js
deleted file mode 100644
index f7bcd8d..0000000
--- a/src_old/js/Node.js
+++ /dev/null
@@ -1,3526 +0,0 @@
-'use strict';
-
-var naturalSort = require('javascript-natural-sort');
-var ContextMenu = require('./ContextMenu');
-var appendNodeFactory = require('./appendNodeFactory');
-var util = require('./util');
-
-/**
- * @constructor Node
- * Create a new Node
- * @param {./treemode} editor
- * @param {Object} [params] Can contain parameters:
- * {string} field
- * {boolean} fieldEditable
- * {*} value
- * {String} type Can have values 'auto', 'array',
- * 'object', or 'string'.
- */
-function Node (editor, params) {
- /** @type {./treemode} */
- this.editor = editor;
- this.dom = {};
- this.expanded = false;
-
- if(params && (params instanceof Object)) {
- this.setField(params.field, params.fieldEditable);
- this.setValue(params.value, params.type);
- }
- else {
- this.setField('');
- this.setValue(null);
- }
-
- this._debouncedOnChangeValue = util.debounce(this._onChangeValue.bind(this), Node.prototype.DEBOUNCE_INTERVAL);
- this._debouncedOnChangeField = util.debounce(this._onChangeField.bind(this), Node.prototype.DEBOUNCE_INTERVAL);
-}
-
-// debounce interval for keyboard input in milliseconds
-Node.prototype.DEBOUNCE_INTERVAL = 150;
-
-/**
- * Determine whether the field and/or value of this node are editable
- * @private
- */
-Node.prototype._updateEditability = function () {
- this.editable = {
- field: true,
- value: true
- };
-
- if (this.editor) {
- this.editable.field = this.editor.options.mode === 'tree';
- this.editable.value = this.editor.options.mode !== 'view';
-
- if ((this.editor.options.mode === 'tree' || this.editor.options.mode === 'form') &&
- (typeof this.editor.options.onEditable === 'function')) {
- var editable = this.editor.options.onEditable({
- field: this.field,
- value: this.value,
- path: this.getPath()
- });
-
- if (typeof editable === 'boolean') {
- this.editable.field = editable;
- this.editable.value = editable;
- }
- else {
- if (typeof editable.field === 'boolean') this.editable.field = editable.field;
- if (typeof editable.value === 'boolean') this.editable.value = editable.value;
- }
- }
- }
-};
-
-/**
- * Get the path of this node
- * @return {String[]} Array containing the path to this node
- */
-Node.prototype.getPath = function () {
- var node = this;
- var path = [];
- while (node) {
- var field = !node.parent
- ? undefined // do not add an (optional) field name of the root node
- : (node.parent.type != 'array')
- ? node.field
- : node.index;
-
- if (field !== undefined) {
- path.unshift(field);
- }
- node = node.parent;
- }
- return path;
-};
-
-/**
- * Find a Node from a JSON path like '.items[3].name'
- * @param {string} jsonPath
- * @return {Node | null} Returns the Node when found, returns null if not found
- */
-Node.prototype.findNode = function (jsonPath) {
- var path = util.parsePath(jsonPath);
- var node = this;
- while (node && path.length > 0) {
- var prop = path.shift();
- if (typeof prop === 'number') {
- if (node.type !== 'array') {
- throw new Error('Cannot get child node at index ' + prop + ': node is no array');
- }
- node = node.childs[prop];
- }
- else { // string
- if (node.type !== 'object') {
- throw new Error('Cannot get child node ' + prop + ': node is no object');
- }
- node = node.childs.filter(function (child) {
- return child.field === prop;
- })[0];
- }
- }
-
- return node;
-};
-
-/**
- * Find all parents of this node. The parents are ordered from root node towards
- * the original node.
- * @return {Array.}
- */
-Node.prototype.findParents = function () {
- var parents = [];
- var parent = this.parent;
- while (parent) {
- parents.unshift(parent);
- parent = parent.parent;
- }
- return parents;
-};
-
-/**
- *
- * @param {{dataPath: string, keyword: string, message: string, params: Object, schemaPath: string} | null} error
- * @param {Node} [child] When this is the error of a parent node, pointing
- * to an invalid child node, the child node itself
- * can be provided. If provided, clicking the error
- * icon will set focus to the invalid child node.
- */
-Node.prototype.setError = function (error, child) {
- // ensure the dom exists
- this.getDom();
-
- this.error = error;
- var tdError = this.dom.tdError;
- if (error) {
- if (!tdError) {
- tdError = document.createElement('td');
- this.dom.tdError = tdError;
- this.dom.tdValue.parentNode.appendChild(tdError);
- }
-
- var popover = document.createElement('div');
- popover.className = 'jsoneditor-popover jsoneditor-right';
- popover.appendChild(document.createTextNode(error.message));
-
- var button = document.createElement('button');
- button.className = 'jsoneditor-schema-error';
- button.appendChild(popover);
-
- // update the direction of the popover
- button.onmouseover = button.onfocus = function updateDirection() {
- var directions = ['right', 'above', 'below', 'left'];
- for (var i = 0; i < directions.length; i++) {
- var direction = directions[i];
- popover.className = 'jsoneditor-popover jsoneditor-' + direction;
-
- var contentRect = this.editor.content.getBoundingClientRect();
- var popoverRect = popover.getBoundingClientRect();
- var margin = 20; // account for a scroll bar
- var fit = util.insideRect(contentRect, popoverRect, margin);
-
- if (fit) {
- break;
- }
- }
- }.bind(this);
-
- // when clicking the error icon, expand all nodes towards the invalid
- // child node, and set focus to the child node
- if (child) {
- button.onclick = function showInvalidNode() {
- child.findParents().forEach(function (parent) {
- parent.expand(false);
- });
-
- child.scrollTo(function () {
- child.focus();
- });
- };
- }
-
- // apply the error message to the node
- while (tdError.firstChild) {
- tdError.removeChild(tdError.firstChild);
- }
- tdError.appendChild(button);
- }
- else {
- if (tdError) {
- this.dom.tdError.parentNode.removeChild(this.dom.tdError);
- delete this.dom.tdError;
- }
- }
-};
-
-/**
- * Get the index of this node: the index in the list of childs where this
- * node is part of
- * @return {number} Returns the index, or -1 if this is the root node
- */
-Node.prototype.getIndex = function () {
- return this.parent ? this.parent.childs.indexOf(this) : -1;
-};
-
-/**
- * Set parent node
- * @param {Node} parent
- */
-Node.prototype.setParent = function(parent) {
- this.parent = parent;
-};
-
-/**
- * Set field
- * @param {String} field
- * @param {boolean} [fieldEditable]
- */
-Node.prototype.setField = function(field, fieldEditable) {
- this.field = field;
- this.previousField = field;
- this.fieldEditable = (fieldEditable === true);
-};
-
-/**
- * Get field
- * @return {String}
- */
-Node.prototype.getField = function() {
- if (this.field === undefined) {
- this._getDomField();
- }
-
- return this.field;
-};
-
-/**
- * Set value. Value is a JSON structure or an element String, Boolean, etc.
- * @param {*} value
- * @param {String} [type] Specify the type of the value. Can be 'auto',
- * 'array', 'object', or 'string'
- */
-Node.prototype.setValue = function(value, type) {
- var childValue, child;
-
- // first clear all current childs (if any)
- var childs = this.childs;
- if (childs) {
- while (childs.length) {
- this.removeChild(childs[0]);
- }
- }
-
- // TODO: remove the DOM of this Node
-
- this.type = this._getType(value);
-
- // check if type corresponds with the provided type
- if (type && type != this.type) {
- if (type == 'string' && this.type == 'auto') {
- this.type = type;
- }
- else {
- throw new Error('Type mismatch: ' +
- 'cannot cast value of type "' + this.type +
- ' to the specified type "' + type + '"');
- }
- }
-
- if (this.type == 'array') {
- // array
- this.childs = [];
- for (var i = 0, iMax = value.length; i < iMax; i++) {
- childValue = value[i];
- if (childValue !== undefined && !(childValue instanceof Function)) {
- // ignore undefined and functions
- child = new Node(this.editor, {
- value: childValue
- });
- this.appendChild(child);
- }
- }
- this.value = '';
- }
- else if (this.type == 'object') {
- // object
- this.childs = [];
- for (var childField in value) {
- if (value.hasOwnProperty(childField)) {
- childValue = value[childField];
- if (childValue !== undefined && !(childValue instanceof Function)) {
- // ignore undefined and functions
- child = new Node(this.editor, {
- field: childField,
- value: childValue
- });
- this.appendChild(child);
- }
- }
- }
- this.value = '';
-
- // sort object keys
- if (this.editor.options.sortObjectKeys === true) {
- this.sort('asc');
- }
- }
- else {
- // value
- this.childs = undefined;
- this.value = value;
- }
-
- this.previousValue = this.value;
-};
-
-/**
- * Get value. Value is a JSON structure
- * @return {*} value
- */
-Node.prototype.getValue = function() {
- //var childs, i, iMax;
-
- if (this.type == 'array') {
- var arr = [];
- this.childs.forEach (function (child) {
- arr.push(child.getValue());
- });
- return arr;
- }
- else if (this.type == 'object') {
- var obj = {};
- this.childs.forEach (function (child) {
- obj[child.getField()] = child.getValue();
- });
- return obj;
- }
- else {
- if (this.value === undefined) {
- this._getDomValue();
- }
-
- return this.value;
- }
-};
-
-/**
- * Get the nesting level of this node
- * @return {Number} level
- */
-Node.prototype.getLevel = function() {
- return (this.parent ? this.parent.getLevel() + 1 : 0);
-};
-
-/**
- * Get path of the root node till the current node
- * @return {Node[]} Returns an array with nodes
- */
-Node.prototype.getNodePath = function() {
- var path = this.parent ? this.parent.getNodePath() : [];
- path.push(this);
- return path;
-};
-
-/**
- * Create a clone of a node
- * The complete state of a clone is copied, including whether it is expanded or
- * not. The DOM elements are not cloned.
- * @return {Node} clone
- */
-Node.prototype.clone = function() {
- var clone = new Node(this.editor);
- clone.type = this.type;
- clone.field = this.field;
- clone.fieldInnerText = this.fieldInnerText;
- clone.fieldEditable = this.fieldEditable;
- clone.value = this.value;
- clone.valueInnerText = this.valueInnerText;
- clone.expanded = this.expanded;
-
- if (this.childs) {
- // an object or array
- var cloneChilds = [];
- this.childs.forEach(function (child) {
- var childClone = child.clone();
- childClone.setParent(clone);
- cloneChilds.push(childClone);
- });
- clone.childs = cloneChilds;
- }
- else {
- // a value
- clone.childs = undefined;
- }
-
- return clone;
-};
-
-/**
- * Expand this node and optionally its childs.
- * @param {boolean} [recurse] Optional recursion, true by default. When
- * true, all childs will be expanded recursively
- */
-Node.prototype.expand = function(recurse) {
- if (!this.childs) {
- return;
- }
-
- // set this node expanded
- this.expanded = true;
- if (this.dom.expand) {
- this.dom.expand.className = 'jsoneditor-expanded';
- }
-
- this.showChilds();
-
- if (recurse !== false) {
- this.childs.forEach(function (child) {
- child.expand(recurse);
- });
- }
-};
-
-/**
- * Collapse this node and optionally its childs.
- * @param {boolean} [recurse] Optional recursion, true by default. When
- * true, all childs will be collapsed recursively
- */
-Node.prototype.collapse = function(recurse) {
- if (!this.childs) {
- return;
- }
-
- this.hideChilds();
-
- // collapse childs in case of recurse
- if (recurse !== false) {
- this.childs.forEach(function (child) {
- child.collapse(recurse);
- });
-
- }
-
- // make this node collapsed
- if (this.dom.expand) {
- this.dom.expand.className = 'jsoneditor-collapsed';
- }
- this.expanded = false;
-};
-
-/**
- * Recursively show all childs when they are expanded
- */
-Node.prototype.showChilds = function() {
- var childs = this.childs;
- if (!childs) {
- return;
- }
- if (!this.expanded) {
- return;
- }
-
- var tr = this.dom.tr;
- var table = tr ? tr.parentNode : undefined;
- if (table) {
- // show row with append button
- var append = this.getAppend();
- var nextTr = tr.nextSibling;
- if (nextTr) {
- table.insertBefore(append, nextTr);
- }
- else {
- table.appendChild(append);
- }
-
- // show childs
- this.childs.forEach(function (child) {
- table.insertBefore(child.getDom(), append);
- child.showChilds();
- });
- }
-};
-
-/**
- * Hide the node with all its childs
- */
-Node.prototype.hide = function() {
- var tr = this.dom.tr;
- var table = tr ? tr.parentNode : undefined;
- if (table) {
- table.removeChild(tr);
- }
- this.hideChilds();
-};
-
-
-/**
- * Recursively hide all childs
- */
-Node.prototype.hideChilds = function() {
- var childs = this.childs;
- if (!childs) {
- return;
- }
- if (!this.expanded) {
- return;
- }
-
- // hide append row
- var append = this.getAppend();
- if (append.parentNode) {
- append.parentNode.removeChild(append);
- }
-
- // hide childs
- this.childs.forEach(function (child) {
- child.hide();
- });
-};
-
-
-/**
- * Add a new child to the node.
- * Only applicable when Node value is of type array or object
- * @param {Node} node
- */
-Node.prototype.appendChild = function(node) {
- if (this._hasChilds()) {
- // adjust the link to the parent
- node.setParent(this);
- node.fieldEditable = (this.type == 'object');
- if (this.type == 'array') {
- node.index = this.childs.length;
- }
- this.childs.push(node);
-
- if (this.expanded) {
- // insert into the DOM, before the appendRow
- var newTr = node.getDom();
- var appendTr = this.getAppend();
- var table = appendTr ? appendTr.parentNode : undefined;
- if (appendTr && table) {
- table.insertBefore(newTr, appendTr);
- }
-
- node.showChilds();
- }
-
- this.updateDom({'updateIndexes': true});
- node.updateDom({'recurse': true});
- }
-};
-
-
-/**
- * Move a node from its current parent to this node
- * Only applicable when Node value is of type array or object
- * @param {Node} node
- * @param {Node} beforeNode
- */
-Node.prototype.moveBefore = function(node, beforeNode) {
- if (this._hasChilds()) {
- // create a temporary row, to prevent the scroll position from jumping
- // when removing the node
- var tbody = (this.dom.tr) ? this.dom.tr.parentNode : undefined;
- if (tbody) {
- var trTemp = document.createElement('tr');
- trTemp.style.height = tbody.clientHeight + 'px';
- tbody.appendChild(trTemp);
- }
-
- if (node.parent) {
- node.parent.removeChild(node);
- }
-
- if (beforeNode instanceof AppendNode) {
- this.appendChild(node);
- }
- else {
- this.insertBefore(node, beforeNode);
- }
-
- if (tbody) {
- tbody.removeChild(trTemp);
- }
- }
-};
-
-/**
- * Move a node from its current parent to this node
- * Only applicable when Node value is of type array or object.
- * If index is out of range, the node will be appended to the end
- * @param {Node} node
- * @param {Number} index
- */
-Node.prototype.moveTo = function (node, index) {
- if (node.parent == this) {
- // same parent
- var currentIndex = this.childs.indexOf(node);
- if (currentIndex < index) {
- // compensate the index for removal of the node itself
- index++;
- }
- }
-
- var beforeNode = this.childs[index] || this.append;
- this.moveBefore(node, beforeNode);
-};
-
-/**
- * Insert a new child before a given node
- * Only applicable when Node value is of type array or object
- * @param {Node} node
- * @param {Node} beforeNode
- */
-Node.prototype.insertBefore = function(node, beforeNode) {
- if (this._hasChilds()) {
- if (beforeNode == this.append) {
- // append to the child nodes
-
- // adjust the link to the parent
- node.setParent(this);
- node.fieldEditable = (this.type == 'object');
- this.childs.push(node);
- }
- else {
- // insert before a child node
- var index = this.childs.indexOf(beforeNode);
- if (index == -1) {
- throw new Error('Node not found');
- }
-
- // adjust the link to the parent
- node.setParent(this);
- node.fieldEditable = (this.type == 'object');
- this.childs.splice(index, 0, node);
- }
-
- if (this.expanded) {
- // insert into the DOM
- var newTr = node.getDom();
- var nextTr = beforeNode.getDom();
- var table = nextTr ? nextTr.parentNode : undefined;
- if (nextTr && table) {
- table.insertBefore(newTr, nextTr);
- }
-
- node.showChilds();
- }
-
- this.updateDom({'updateIndexes': true});
- node.updateDom({'recurse': true});
- }
-};
-
-/**
- * Insert a new child before a given node
- * Only applicable when Node value is of type array or object
- * @param {Node} node
- * @param {Node} afterNode
- */
-Node.prototype.insertAfter = function(node, afterNode) {
- if (this._hasChilds()) {
- var index = this.childs.indexOf(afterNode);
- var beforeNode = this.childs[index + 1];
- if (beforeNode) {
- this.insertBefore(node, beforeNode);
- }
- else {
- this.appendChild(node);
- }
- }
-};
-
-/**
- * Search in this node
- * The node will be expanded when the text is found one of its childs, else
- * it will be collapsed. Searches are case insensitive.
- * @param {String} text
- * @return {Node[]} results Array with nodes containing the search text
- */
-Node.prototype.search = function(text) {
- var results = [];
- var index;
- var search = text ? text.toLowerCase() : undefined;
-
- // delete old search data
- delete this.searchField;
- delete this.searchValue;
-
- // search in field
- if (this.field != undefined) {
- var field = String(this.field).toLowerCase();
- index = field.indexOf(search);
- if (index != -1) {
- this.searchField = true;
- results.push({
- 'node': this,
- 'elem': 'field'
- });
- }
-
- // update dom
- this._updateDomField();
- }
-
- // search in value
- if (this._hasChilds()) {
- // array, object
-
- // search the nodes childs
- if (this.childs) {
- var childResults = [];
- this.childs.forEach(function (child) {
- childResults = childResults.concat(child.search(text));
- });
- results = results.concat(childResults);
- }
-
- // update dom
- if (search != undefined) {
- var recurse = false;
- if (childResults.length == 0) {
- this.collapse(recurse);
- }
- else {
- this.expand(recurse);
- }
- }
- }
- else {
- // string, auto
- if (this.value != undefined ) {
- var value = String(this.value).toLowerCase();
- index = value.indexOf(search);
- if (index != -1) {
- this.searchValue = true;
- results.push({
- 'node': this,
- 'elem': 'value'
- });
- }
- }
-
- // update dom
- this._updateDomValue();
- }
-
- return results;
-};
-
-/**
- * Move the scroll position such that this node is in the visible area.
- * The node will not get the focus
- * @param {function(boolean)} [callback]
- */
-Node.prototype.scrollTo = function(callback) {
- if (!this.dom.tr || !this.dom.tr.parentNode) {
- // if the node is not visible, expand its parents
- var parent = this.parent;
- var recurse = false;
- while (parent) {
- parent.expand(recurse);
- parent = parent.parent;
- }
- }
-
- if (this.dom.tr && this.dom.tr.parentNode) {
- this.editor.scrollTo(this.dom.tr.offsetTop, callback);
- }
-};
-
-
-// stores the element name currently having the focus
-Node.focusElement = undefined;
-
-/**
- * Set focus to this node
- * @param {String} [elementName] The field name of the element to get the
- * focus available values: 'drag', 'menu',
- * 'expand', 'field', 'value' (default)
- */
-Node.prototype.focus = function(elementName) {
- Node.focusElement = elementName;
-
- if (this.dom.tr && this.dom.tr.parentNode) {
- var dom = this.dom;
-
- switch (elementName) {
- case 'drag':
- if (dom.drag) {
- dom.drag.focus();
- }
- else {
- dom.menu.focus();
- }
- break;
-
- case 'menu':
- dom.menu.focus();
- break;
-
- case 'expand':
- if (this._hasChilds()) {
- dom.expand.focus();
- }
- else if (dom.field && this.fieldEditable) {
- dom.field.focus();
- util.selectContentEditable(dom.field);
- }
- else if (dom.value && !this._hasChilds()) {
- dom.value.focus();
- util.selectContentEditable(dom.value);
- }
- else {
- dom.menu.focus();
- }
- break;
-
- case 'field':
- if (dom.field && this.fieldEditable) {
- dom.field.focus();
- util.selectContentEditable(dom.field);
- }
- else if (dom.value && !this._hasChilds()) {
- dom.value.focus();
- util.selectContentEditable(dom.value);
- }
- else if (this._hasChilds()) {
- dom.expand.focus();
- }
- else {
- dom.menu.focus();
- }
- break;
-
- case 'value':
- default:
- if (dom.value && !this._hasChilds()) {
- dom.value.focus();
- util.selectContentEditable(dom.value);
- }
- else if (dom.field && this.fieldEditable) {
- dom.field.focus();
- util.selectContentEditable(dom.field);
- }
- else if (this._hasChilds()) {
- dom.expand.focus();
- }
- else {
- dom.menu.focus();
- }
- break;
- }
- }
-};
-
-/**
- * Select all text in an editable div after a delay of 0 ms
- * @param {Element} editableDiv
- */
-Node.select = function(editableDiv) {
- setTimeout(function () {
- util.selectContentEditable(editableDiv);
- }, 0);
-};
-
-/**
- * Update the values from the DOM field and value of this node
- */
-Node.prototype.blur = function() {
- // retrieve the actual field and value from the DOM.
- this._getDomValue(false);
- this._getDomField(false);
-};
-
-/**
- * Check if given node is a child. The method will check recursively to find
- * this node.
- * @param {Node} node
- * @return {boolean} containsNode
- */
-Node.prototype.containsNode = function(node) {
- if (this == node) {
- return true;
- }
-
- var childs = this.childs;
- if (childs) {
- // TODO: use the js5 Array.some() here?
- for (var i = 0, iMax = childs.length; i < iMax; i++) {
- if (childs[i].containsNode(node)) {
- return true;
- }
- }
- }
-
- return false;
-};
-
-/**
- * Move given node into this node
- * @param {Node} node the childNode to be moved
- * @param {Node} beforeNode node will be inserted before given
- * node. If no beforeNode is given,
- * the node is appended at the end
- * @private
- */
-Node.prototype._move = function(node, beforeNode) {
- if (node == beforeNode) {
- // nothing to do...
- return;
- }
-
- // check if this node is not a child of the node to be moved here
- if (node.containsNode(this)) {
- throw new Error('Cannot move a field into a child of itself');
- }
-
- // remove the original node
- if (node.parent) {
- node.parent.removeChild(node);
- }
-
- // create a clone of the node
- var clone = node.clone();
- node.clearDom();
-
- // insert or append the node
- if (beforeNode) {
- this.insertBefore(clone, beforeNode);
- }
- else {
- this.appendChild(clone);
- }
-
- /* TODO: adjust the field name (to prevent equal field names)
- if (this.type == 'object') {
- }
- */
-};
-
-/**
- * Remove a child from the node.
- * Only applicable when Node value is of type array or object
- * @param {Node} node The child node to be removed;
- * @return {Node | undefined} node The removed node on success,
- * else undefined
- */
-Node.prototype.removeChild = function(node) {
- if (this.childs) {
- var index = this.childs.indexOf(node);
-
- if (index != -1) {
- node.hide();
-
- // delete old search results
- delete node.searchField;
- delete node.searchValue;
-
- var removedNode = this.childs.splice(index, 1)[0];
- removedNode.parent = null;
-
- this.updateDom({'updateIndexes': true});
-
- return removedNode;
- }
- }
-
- return undefined;
-};
-
-/**
- * Remove a child node node from this node
- * This method is equal to Node.removeChild, except that _remove fire an
- * onChange event.
- * @param {Node} node
- * @private
- */
-Node.prototype._remove = function (node) {
- this.removeChild(node);
-};
-
-/**
- * Change the type of the value of this Node
- * @param {String} newType
- */
-Node.prototype.changeType = function (newType) {
- var oldType = this.type;
-
- if (oldType == newType) {
- // type is not changed
- return;
- }
-
- if ((newType == 'string' || newType == 'auto') &&
- (oldType == 'string' || oldType == 'auto')) {
- // this is an easy change
- this.type = newType;
- }
- else {
- // change from array to object, or from string/auto to object/array
- var table = this.dom.tr ? this.dom.tr.parentNode : undefined;
- var lastTr;
- if (this.expanded) {
- lastTr = this.getAppend();
- }
- else {
- lastTr = this.getDom();
- }
- var nextTr = (lastTr && lastTr.parentNode) ? lastTr.nextSibling : undefined;
-
- // hide current field and all its childs
- this.hide();
- this.clearDom();
-
- // adjust the field and the value
- this.type = newType;
-
- // adjust childs
- if (newType == 'object') {
- if (!this.childs) {
- this.childs = [];
- }
-
- this.childs.forEach(function (child, index) {
- child.clearDom();
- delete child.index;
- child.fieldEditable = true;
- if (child.field == undefined) {
- child.field = '';
- }
- });
-
- if (oldType == 'string' || oldType == 'auto') {
- this.expanded = true;
- }
- }
- else if (newType == 'array') {
- if (!this.childs) {
- this.childs = [];
- }
-
- this.childs.forEach(function (child, index) {
- child.clearDom();
- child.fieldEditable = false;
- child.index = index;
- });
-
- if (oldType == 'string' || oldType == 'auto') {
- this.expanded = true;
- }
- }
- else {
- this.expanded = false;
- }
-
- // create new DOM
- if (table) {
- if (nextTr) {
- table.insertBefore(this.getDom(), nextTr);
- }
- else {
- table.appendChild(this.getDom());
- }
- }
- this.showChilds();
- }
-
- if (newType == 'auto' || newType == 'string') {
- // cast value to the correct type
- if (newType == 'string') {
- this.value = String(this.value);
- }
- else {
- this.value = this._stringCast(String(this.value));
- }
-
- this.focus();
- }
-
- this.updateDom({'updateIndexes': true});
-};
-
-/**
- * Retrieve value from DOM
- * @param {boolean} [silent] If true (default), no errors will be thrown in
- * case of invalid data
- * @private
- */
-Node.prototype._getDomValue = function(silent) {
- if (this.dom.value && this.type != 'array' && this.type != 'object') {
- this.valueInnerText = util.getInnerText(this.dom.value);
- }
-
- if (this.valueInnerText != undefined) {
- try {
- // retrieve the value
- var value;
- if (this.type == 'string') {
- value = this._unescapeHTML(this.valueInnerText);
- }
- else {
- var str = this._unescapeHTML(this.valueInnerText);
- value = this._stringCast(str);
- }
- if (value !== this.value) {
- this.value = value;
- this._debouncedOnChangeValue();
- }
- }
- catch (err) {
- this.value = undefined;
- // TODO: sent an action with the new, invalid value?
- if (silent !== true) {
- throw err;
- }
- }
- }
-};
-
-/**
- * Handle a changed value
- * @private
- */
-Node.prototype._onChangeValue = function () {
- // get current selection, then override the range such that we can select
- // the added/removed text on undo/redo
- var oldSelection = this.editor.getSelection();
- if (oldSelection.range) {
- var undoDiff = util.textDiff(String(this.value), String(this.previousValue));
- oldSelection.range.startOffset = undoDiff.start;
- oldSelection.range.endOffset = undoDiff.end;
- }
- var newSelection = this.editor.getSelection();
- if (newSelection.range) {
- var redoDiff = util.textDiff(String(this.previousValue), String(this.value));
- newSelection.range.startOffset = redoDiff.start;
- newSelection.range.endOffset = redoDiff.end;
- }
-
- this.editor._onAction('editValue', {
- node: this,
- oldValue: this.previousValue,
- newValue: this.value,
- oldSelection: oldSelection,
- newSelection: newSelection
- });
-
- this.previousValue = this.value;
-};
-
-/**
- * Handle a changed field
- * @private
- */
-Node.prototype._onChangeField = function () {
- // get current selection, then override the range such that we can select
- // the added/removed text on undo/redo
- var oldSelection = this.editor.getSelection();
- if (oldSelection.range) {
- var undoDiff = util.textDiff(this.field, this.previousField);
- oldSelection.range.startOffset = undoDiff.start;
- oldSelection.range.endOffset = undoDiff.end;
- }
- var newSelection = this.editor.getSelection();
- if (newSelection.range) {
- var redoDiff = util.textDiff(this.previousField, this.field);
- newSelection.range.startOffset = redoDiff.start;
- newSelection.range.endOffset = redoDiff.end;
- }
-
- this.editor._onAction('editField', {
- node: this,
- oldValue: this.previousField,
- newValue: this.field,
- oldSelection: oldSelection,
- newSelection: newSelection
- });
-
- this.previousField = this.field;
-};
-
-/**
- * Update dom value:
- * - the text color of the value, depending on the type of the value
- * - the height of the field, depending on the width
- * - background color in case it is empty
- * @private
- */
-Node.prototype._updateDomValue = function () {
- var domValue = this.dom.value;
- if (domValue) {
- var classNames = ['jsoneditor-value'];
-
-
- // set text color depending on value type
- var value = this.value;
- var type = (this.type == 'auto') ? util.type(value) : this.type;
- var isUrl = type == 'string' && util.isUrl(value);
- classNames.push('jsoneditor-' + type);
- if (isUrl) {
- classNames.push('jsoneditor-url');
- }
-
- // visual styling when empty
- var isEmpty = (String(this.value) == '' && this.type != 'array' && this.type != 'object');
- if (isEmpty) {
- classNames.push('jsoneditor-empty');
- }
-
- // highlight when there is a search result
- if (this.searchValueActive) {
- classNames.push('jsoneditor-highlight-active');
- }
- if (this.searchValue) {
- classNames.push('jsoneditor-highlight');
- }
-
- domValue.className = classNames.join(' ');
-
- // update title
- if (type == 'array' || type == 'object') {
- var count = this.childs ? this.childs.length : 0;
- domValue.title = this.type + ' containing ' + count + ' items';
- }
- else if (isUrl && this.editable.value) {
- domValue.title = 'Ctrl+Click or Ctrl+Enter to open url in new window';
- }
- else {
- domValue.title = '';
- }
-
- // show checkbox when the value is a boolean
- if (type === 'boolean' && this.editable.value) {
- if (!this.dom.checkbox) {
- this.dom.checkbox = document.createElement('input');
- this.dom.checkbox.type = 'checkbox';
- this.dom.tdCheckbox = document.createElement('td');
- this.dom.tdCheckbox.className = 'jsoneditor-tree';
- this.dom.tdCheckbox.appendChild(this.dom.checkbox);
-
- this.dom.tdValue.parentNode.insertBefore(this.dom.tdCheckbox, this.dom.tdValue);
- }
-
- this.dom.checkbox.checked = this.value;
- }
- else {
- // cleanup checkbox when displayed
- if (this.dom.tdCheckbox) {
- this.dom.tdCheckbox.parentNode.removeChild(this.dom.tdCheckbox);
- delete this.dom.tdCheckbox;
- delete this.dom.checkbox;
- }
- }
-
- if (this.enum && this.editable.value) {
- // create select box when this node has an enum object
- if (!this.dom.select) {
- this.dom.select = document.createElement('select');
- this.id = this.field + "_" + new Date().getUTCMilliseconds();
- this.dom.select.id = this.id;
- this.dom.select.name = this.dom.select.id;
-
- //Create the default empty option
- this.dom.select.option = document.createElement('option');
- this.dom.select.option.value = '';
- this.dom.select.option.innerHTML = '--';
- this.dom.select.appendChild(this.dom.select.option);
-
- //Iterate all enum values and add them as options
- for(var i = 0; i < this.enum.length; i++) {
- this.dom.select.option = document.createElement('option');
- this.dom.select.option.value = this.enum[i];
- this.dom.select.option.innerHTML = this.enum[i];
- if(this.dom.select.option.value == this.value){
- this.dom.select.option.selected = true;
- }
- this.dom.select.appendChild(this.dom.select.option);
- }
-
- this.dom.tdSelect = document.createElement('td');
- this.dom.tdSelect.className = 'jsoneditor-tree';
- this.dom.tdSelect.appendChild(this.dom.select);
- this.dom.tdValue.parentNode.insertBefore(this.dom.tdSelect, this.dom.tdValue);
- }
-
- // If the enum is inside a composite type display
- // both the simple input and the dropdown field
- if(this.schema && (
- !this.schema.hasOwnProperty("oneOf") &&
- !this.schema.hasOwnProperty("anyOf") &&
- !this.schema.hasOwnProperty("allOf"))
- ) {
- this.valueFieldHTML = this.dom.tdValue.innerHTML;
- this.dom.tdValue.style.visibility = 'hidden';
- this.dom.tdValue.innerHTML = '';
- } else {
- delete this.valueFieldHTML;
- }
- }
- else {
- // cleanup select box when displayed
- if (this.dom.tdSelect) {
- this.dom.tdSelect.parentNode.removeChild(this.dom.tdSelect);
- delete this.dom.tdSelect;
- delete this.dom.select;
- this.dom.tdValue.innerHTML = this.valueFieldHTML;
- this.dom.tdValue.style.visibility = '';
- delete this.valueFieldHTML;
- }
- }
-
- // strip formatting from the contents of the editable div
- util.stripFormatting(domValue);
- }
-};
-
-/**
- * Update dom field:
- * - the text color of the field, depending on the text
- * - the height of the field, depending on the width
- * - background color in case it is empty
- * @private
- */
-Node.prototype._updateDomField = function () {
- var domField = this.dom.field;
- if (domField) {
- // make backgound color lightgray when empty
- var isEmpty = (String(this.field) == '' && this.parent.type != 'array');
- if (isEmpty) {
- util.addClassName(domField, 'jsoneditor-empty');
- }
- else {
- util.removeClassName(domField, 'jsoneditor-empty');
- }
-
- // highlight when there is a search result
- if (this.searchFieldActive) {
- util.addClassName(domField, 'jsoneditor-highlight-active');
- }
- else {
- util.removeClassName(domField, 'jsoneditor-highlight-active');
- }
- if (this.searchField) {
- util.addClassName(domField, 'jsoneditor-highlight');
- }
- else {
- util.removeClassName(domField, 'jsoneditor-highlight');
- }
-
- // strip formatting from the contents of the editable div
- util.stripFormatting(domField);
- }
-};
-
-/**
- * Retrieve field from DOM
- * @param {boolean} [silent] If true (default), no errors will be thrown in
- * case of invalid data
- * @private
- */
-Node.prototype._getDomField = function(silent) {
- if (this.dom.field && this.fieldEditable) {
- this.fieldInnerText = util.getInnerText(this.dom.field);
- }
-
- if (this.fieldInnerText != undefined) {
- try {
- var field = this._unescapeHTML(this.fieldInnerText);
-
- if (field !== this.field) {
- this.field = field;
- this._debouncedOnChangeField();
- }
- }
- catch (err) {
- this.field = undefined;
- // TODO: sent an action here, with the new, invalid value?
- if (silent !== true) {
- throw err;
- }
- }
- }
-};
-
-/**
- * Validate this node and all it's childs
- * @return {Array.<{node: Node, error: {message: string}}>} Returns a list with duplicates
- */
-Node.prototype.validate = function () {
- var errors = [];
-
- // find duplicate keys
- if (this.type === 'object') {
- var keys = {};
- var duplicateKeys = [];
- for (var i = 0; i < this.childs.length; i++) {
- var child = this.childs[i];
- if (keys[child.field]) {
- duplicateKeys.push(child.field);
- }
- keys[child.field] = true;
- }
-
- if (duplicateKeys.length > 0) {
- errors = this.childs
- .filter(function (node) {
- return duplicateKeys.indexOf(node.field) !== -1;
- })
- .map(function (node) {
- return {
- node: node,
- error: {
- message: 'duplicate key "' + node.field + '"'
- }
- }
- });
- }
- }
-
- // recurse over the childs
- if (this.childs) {
- for (var i = 0; i < this.childs.length; i++) {
- var e = this.childs[i].validate();
- if (e.length > 0) {
- errors = errors.concat(e);
- }
- }
- }
-
- return errors;
-};
-
-/**
- * Clear the dom of the node
- */
-Node.prototype.clearDom = function() {
- // TODO: hide the node first?
- //this.hide();
- // TODO: recursively clear dom?
-
- this.dom = {};
-};
-
-/**
- * Get the HTML DOM TR element of the node.
- * The dom will be generated when not yet created
- * @return {Element} tr HTML DOM TR Element
- */
-Node.prototype.getDom = function() {
- var dom = this.dom;
- if (dom.tr) {
- return dom.tr;
- }
-
- this._updateEditability();
-
- // create row
- dom.tr = document.createElement('tr');
- dom.tr.node = this;
-
- if (this.editor.options.mode === 'tree') { // note: we take here the global setting
- var tdDrag = document.createElement('td');
- if (this.editable.field) {
- // create draggable area
- if (this.parent) {
- var domDrag = document.createElement('button');
- dom.drag = domDrag;
- domDrag.className = 'jsoneditor-dragarea';
- domDrag.title = 'Drag to move this field (Alt+Shift+Arrows)';
- tdDrag.appendChild(domDrag);
- }
- }
- dom.tr.appendChild(tdDrag);
-
- // create context menu
- var tdMenu = document.createElement('td');
- var menu = document.createElement('button');
- dom.menu = menu;
- menu.className = 'jsoneditor-contextmenu';
- menu.title = 'Click to open the actions menu (Ctrl+M)';
- tdMenu.appendChild(dom.menu);
- dom.tr.appendChild(tdMenu);
- }
-
- // create tree and field
- var tdField = document.createElement('td');
- dom.tr.appendChild(tdField);
- dom.tree = this._createDomTree();
- tdField.appendChild(dom.tree);
-
- this.updateDom({'updateIndexes': true});
-
- return dom.tr;
-};
-
-/**
- * DragStart event, fired on mousedown on the dragarea at the left side of a Node
- * @param {Node[] | Node} nodes
- * @param {Event} event
- */
-Node.onDragStart = function (nodes, event) {
- if (!Array.isArray(nodes)) {
- return Node.onDragStart([nodes], event);
- }
- if (nodes.length === 0) {
- return;
- }
-
- var firstNode = nodes[0];
- var lastNode = nodes[nodes.length - 1];
- var draggedNode = Node.getNodeFromTarget(event.target);
- var beforeNode = lastNode._nextSibling();
- var editor = firstNode.editor;
-
- // in case of multiple selected nodes, offsetY prevents the selection from
- // jumping when you start dragging one of the lower down nodes in the selection
- var offsetY = util.getAbsoluteTop(draggedNode.dom.tr) - util.getAbsoluteTop(firstNode.dom.tr);
-
- if (!editor.mousemove) {
- editor.mousemove = util.addEventListener(window, 'mousemove', function (event) {
- Node.onDrag(nodes, event);
- });
- }
-
- if (!editor.mouseup) {
- editor.mouseup = util.addEventListener(window, 'mouseup',function (event ) {
- Node.onDragEnd(nodes, event);
- });
- }
-
- editor.highlighter.lock();
- editor.drag = {
- oldCursor: document.body.style.cursor,
- oldSelection: editor.getSelection(),
- oldBeforeNode: beforeNode,
- mouseX: event.pageX,
- offsetY: offsetY,
- level: firstNode.getLevel()
- };
- document.body.style.cursor = 'move';
-
- event.preventDefault();
-};
-
-/**
- * Drag event, fired when moving the mouse while dragging a Node
- * @param {Node[] | Node} nodes
- * @param {Event} event
- */
-Node.onDrag = function (nodes, event) {
- if (!Array.isArray(nodes)) {
- return Node.onDrag([nodes], event);
- }
- if (nodes.length === 0) {
- return;
- }
-
- // TODO: this method has grown too large. Split it in a number of methods
- var editor = nodes[0].editor;
- var mouseY = event.pageY - editor.drag.offsetY;
- var mouseX = event.pageX;
- var trThis, trPrev, trNext, trFirst, trLast, trRoot;
- var nodePrev, nodeNext;
- var topThis, topPrev, topFirst, heightThis, bottomNext, heightNext;
- var moved = false;
-
- // TODO: add an ESC option, which resets to the original position
-
- // move up/down
- var firstNode = nodes[0];
- trThis = firstNode.dom.tr;
- topThis = util.getAbsoluteTop(trThis);
- heightThis = trThis.offsetHeight;
- if (mouseY < topThis) {
- // move up
- trPrev = trThis;
- do {
- trPrev = trPrev.previousSibling;
- nodePrev = Node.getNodeFromTarget(trPrev);
- topPrev = trPrev ? util.getAbsoluteTop(trPrev) : 0;
- }
- while (trPrev && mouseY < topPrev);
-
- if (nodePrev && !nodePrev.parent) {
- nodePrev = undefined;
- }
-
- if (!nodePrev) {
- // move to the first node
- trRoot = trThis.parentNode.firstChild;
- trPrev = trRoot ? trRoot.nextSibling : undefined;
- nodePrev = Node.getNodeFromTarget(trPrev);
- if (nodePrev == firstNode) {
- nodePrev = undefined;
- }
- }
-
- if (nodePrev) {
- // check if mouseY is really inside the found node
- trPrev = nodePrev.dom.tr;
- topPrev = trPrev ? util.getAbsoluteTop(trPrev) : 0;
- if (mouseY > topPrev + heightThis) {
- nodePrev = undefined;
- }
- }
-
- if (nodePrev) {
- nodes.forEach(function (node) {
- nodePrev.parent.moveBefore(node, nodePrev);
- });
- moved = true;
- }
- }
- else {
- // move down
- var lastNode = nodes[nodes.length - 1];
- trLast = (lastNode.expanded && lastNode.append) ? lastNode.append.getDom() : lastNode.dom.tr;
- trFirst = trLast ? trLast.nextSibling : undefined;
- if (trFirst) {
- topFirst = util.getAbsoluteTop(trFirst);
- trNext = trFirst;
- do {
- nodeNext = Node.getNodeFromTarget(trNext);
- if (trNext) {
- bottomNext = trNext.nextSibling ?
- util.getAbsoluteTop(trNext.nextSibling) : 0;
- heightNext = trNext ? (bottomNext - topFirst) : 0;
-
- if (nodeNext.parent.childs.length == nodes.length &&
- nodeNext.parent.childs[nodes.length - 1] == lastNode) {
- // We are about to remove the last child of this parent,
- // which will make the parents appendNode visible.
- topThis += 27;
- // TODO: dangerous to suppose the height of the appendNode a constant of 27 px.
- }
- }
-
- trNext = trNext.nextSibling;
- }
- while (trNext && mouseY > topThis + heightNext);
-
- if (nodeNext && nodeNext.parent) {
- // calculate the desired level
- var diffX = (mouseX - editor.drag.mouseX);
- var diffLevel = Math.round(diffX / 24 / 2);
- var level = editor.drag.level + diffLevel; // desired level
- var levelNext = nodeNext.getLevel(); // level to be
-
- // find the best fitting level (move upwards over the append nodes)
- trPrev = nodeNext.dom.tr.previousSibling;
- while (levelNext < level && trPrev) {
- nodePrev = Node.getNodeFromTarget(trPrev);
-
- var isDraggedNode = nodes.some(function (node) {
- return node === nodePrev || nodePrev._isChildOf(node);
- });
-
- if (isDraggedNode) {
- // neglect the dragged nodes themselves and their childs
- }
- else if (nodePrev instanceof AppendNode) {
- var childs = nodePrev.parent.childs;
- if (childs.length != nodes.length || childs[nodes.length - 1] != lastNode) {
- // non-visible append node of a list of childs
- // consisting of not only this node (else the
- // append node will change into a visible "empty"
- // text when removing this node).
- nodeNext = Node.getNodeFromTarget(trPrev);
- levelNext = nodeNext.getLevel();
- }
- else {
- break;
- }
- }
- else {
- break;
- }
-
- trPrev = trPrev.previousSibling;
- }
-
- // move the node when its position is changed
- if (trLast.nextSibling != nodeNext.dom.tr) {
- nodes.forEach(function (node) {
- nodeNext.parent.moveBefore(node, nodeNext);
- });
- moved = true;
- }
- }
- }
- }
-
- if (moved) {
- // update the dragging parameters when moved
- editor.drag.mouseX = mouseX;
- editor.drag.level = firstNode.getLevel();
- }
-
- // auto scroll when hovering around the top of the editor
- editor.startAutoScroll(mouseY);
-
- event.preventDefault();
-};
-
-/**
- * Drag event, fired on mouseup after having dragged a node
- * @param {Node[] | Node} nodes
- * @param {Event} event
- */
-Node.onDragEnd = function (nodes, event) {
- if (!Array.isArray(nodes)) {
- return Node.onDrag([nodes], event);
- }
- if (nodes.length === 0) {
- return;
- }
-
- var firstNode = nodes[0];
- var editor = firstNode.editor;
- var parent = firstNode.parent;
- var firstIndex = parent.childs.indexOf(firstNode);
- var beforeNode = parent.childs[firstIndex + nodes.length] || parent.append;
-
- // set focus to the context menu button of the first node
- if (nodes[0]) {
- nodes[0].dom.menu.focus();
- }
-
- var params = {
- nodes: nodes,
- oldSelection: editor.drag.oldSelection,
- newSelection: editor.getSelection(),
- oldBeforeNode: editor.drag.oldBeforeNode,
- newBeforeNode: beforeNode
- };
-
- if (params.oldBeforeNode != params.newBeforeNode) {
- // only register this action if the node is actually moved to another place
- editor._onAction('moveNodes', params);
- }
-
- document.body.style.cursor = editor.drag.oldCursor;
- editor.highlighter.unlock();
- nodes.forEach(function (node) {
- if (event.target !== node.dom.drag && event.target !== node.dom.menu) {
- editor.highlighter.unhighlight();
- }
- });
- delete editor.drag;
-
- if (editor.mousemove) {
- util.removeEventListener(window, 'mousemove', editor.mousemove);
- delete editor.mousemove;
- }
- if (editor.mouseup) {
- util.removeEventListener(window, 'mouseup', editor.mouseup);
- delete editor.mouseup;
- }
-
- // Stop any running auto scroll
- editor.stopAutoScroll();
-
- event.preventDefault();
-};
-
-/**
- * Test if this node is a child of an other node
- * @param {Node} node
- * @return {boolean} isChild
- * @private
- */
-Node.prototype._isChildOf = function (node) {
- var n = this.parent;
- while (n) {
- if (n == node) {
- return true;
- }
- n = n.parent;
- }
-
- return false;
-};
-
-/**
- * Create an editable field
- * @return {Element} domField
- * @private
- */
-Node.prototype._createDomField = function () {
- return document.createElement('div');
-};
-
-/**
- * Set highlighting for this node and all its childs.
- * Only applied to the currently visible (expanded childs)
- * @param {boolean} highlight
- */
-Node.prototype.setHighlight = function (highlight) {
- if (this.dom.tr) {
- if (highlight) {
- util.addClassName(this.dom.tr, 'jsoneditor-highlight');
- }
- else {
- util.removeClassName(this.dom.tr, 'jsoneditor-highlight');
- }
-
- if (this.append) {
- this.append.setHighlight(highlight);
- }
-
- if (this.childs) {
- this.childs.forEach(function (child) {
- child.setHighlight(highlight);
- });
- }
- }
-};
-
-/**
- * Select or deselect a node
- * @param {boolean} selected
- * @param {boolean} [isFirst]
- */
-Node.prototype.setSelected = function (selected, isFirst) {
- this.selected = selected;
-
- if (this.dom.tr) {
- if (selected) {
- util.addClassName(this.dom.tr, 'jsoneditor-selected');
- }
- else {
- util.removeClassName(this.dom.tr, 'jsoneditor-selected');
- }
-
- if (isFirst) {
- util.addClassName(this.dom.tr, 'jsoneditor-first');
- }
- else {
- util.removeClassName(this.dom.tr, 'jsoneditor-first');
- }
-
- if (this.append) {
- this.append.setSelected(selected);
- }
-
- if (this.childs) {
- this.childs.forEach(function (child) {
- child.setSelected(selected);
- });
- }
- }
-};
-
-/**
- * Update the value of the node. Only primitive types are allowed, no Object
- * or Array is allowed.
- * @param {String | Number | Boolean | null} value
- */
-Node.prototype.updateValue = function (value) {
- this.value = value;
- this.updateDom();
-};
-
-/**
- * Update the field of the node.
- * @param {String} field
- */
-Node.prototype.updateField = function (field) {
- this.field = field;
- this.updateDom();
-};
-
-/**
- * Update the HTML DOM, optionally recursing through the childs
- * @param {Object} [options] Available parameters:
- * {boolean} [recurse] If true, the
- * DOM of the childs will be updated recursively.
- * False by default.
- * {boolean} [updateIndexes] If true, the childs
- * indexes of the node will be updated too. False by
- * default.
- */
-Node.prototype.updateDom = function (options) {
- // update level indentation
- var domTree = this.dom.tree;
- if (domTree) {
- domTree.style.marginLeft = this.getLevel() * 24 + 'px';
- }
-
- // apply field to DOM
- var domField = this.dom.field;
- if (domField) {
- if (this.fieldEditable) {
- // parent is an object
- domField.contentEditable = this.editable.field;
- domField.spellcheck = false;
- domField.className = 'jsoneditor-field';
- }
- else {
- // parent is an array this is the root node
- domField.className = 'jsoneditor-readonly';
- }
-
- var fieldText;
- if (this.index != undefined) {
- fieldText = this.index;
- }
- else if (this.field != undefined) {
- fieldText = this.field;
- }
- else if (this._hasChilds()) {
- fieldText = this.type;
- }
- else {
- fieldText = '';
- }
- domField.innerHTML = this._escapeHTML(fieldText);
-
- this._updateSchema();
- }
-
- // apply value to DOM
- var domValue = this.dom.value;
- if (domValue) {
- var count = this.childs ? this.childs.length : 0;
- if (this.type == 'array') {
- domValue.innerHTML = '[' + count + ']';
- util.addClassName(this.dom.tr, 'jsoneditor-expandable');
- }
- else if (this.type == 'object') {
- domValue.innerHTML = '{' + count + '}';
- util.addClassName(this.dom.tr, 'jsoneditor-expandable');
- }
- else {
- domValue.innerHTML = this._escapeHTML(this.value);
- util.removeClassName(this.dom.tr, 'jsoneditor-expandable');
- }
- }
-
- // update field and value
- this._updateDomField();
- this._updateDomValue();
-
- // update childs indexes
- if (options && options.updateIndexes === true) {
- // updateIndexes is true or undefined
- this._updateDomIndexes();
- }
-
- if (options && options.recurse === true) {
- // recurse is true or undefined. update childs recursively
- if (this.childs) {
- this.childs.forEach(function (child) {
- child.updateDom(options);
- });
- }
- }
-
- // update row with append button
- if (this.append) {
- this.append.updateDom();
- }
-};
-
-/**
- * Locate the JSON schema of the node and check for any enum type
- * @private
- */
-Node.prototype._updateSchema = function () {
- //Locating the schema of the node and checking for any enum type
- if(this.editor && this.editor.options) {
- // find the part of the json schema matching this nodes path
- this.schema = Node._findSchema(this.editor.options.schema, this.getPath());
- if (this.schema) {
- this.enum = Node._findEnum(this.schema);
- }
- else {
- delete this.enum;
- }
- }
-};
-
-/**
- * find an enum definition in a JSON schema, as property `enum` or inside
- * one of the schemas composites (`oneOf`, `anyOf`, `allOf`)
- * @param {Object} schema
- * @return {Array | null} Returns the enum when found, null otherwise.
- * @private
- */
-Node._findEnum = function (schema) {
- if (schema.enum) {
- return schema.enum;
- }
-
- var composite = schema.oneOf || schema.anyOf || schema.allOf;
- if (composite) {
- var match = composite.filter(function (entry) {return entry.enum});
- if (match.length > 0) {
- return match[0].enum;
- }
- }
-
- return null
-};
-
-/**
- * Return the part of a JSON schema matching given path.
- * @param {Object} schema
- * @param {Array.} path
- * @return {Object | null}
- * @private
- */
-Node._findSchema = function (schema, path) {
- var childSchema = schema;
-
- for (var i = 0; i < path.length && childSchema; i++) {
- var key = path[i];
- if (typeof key === 'string' && childSchema.properties) {
- childSchema = childSchema.properties[key] || null
- }
- else if (typeof key === 'number' && childSchema.items) {
- childSchema = childSchema.items
- }
- }
-
- return childSchema
-};
-
-/**
- * Update the DOM of the childs of a node: update indexes and undefined field
- * names.
- * Only applicable when structure is an array or object
- * @private
- */
-Node.prototype._updateDomIndexes = function () {
- var domValue = this.dom.value;
- var childs = this.childs;
- if (domValue && childs) {
- if (this.type == 'array') {
- childs.forEach(function (child, index) {
- child.index = index;
- var childField = child.dom.field;
- if (childField) {
- childField.innerHTML = index;
- }
- });
- }
- else if (this.type == 'object') {
- childs.forEach(function (child) {
- if (child.index != undefined) {
- delete child.index;
-
- if (child.field == undefined) {
- child.field = '';
- }
- }
- });
- }
- }
-};
-
-/**
- * Create an editable value
- * @private
- */
-Node.prototype._createDomValue = function () {
- var domValue;
-
- if (this.type == 'array') {
- domValue = document.createElement('div');
- domValue.innerHTML = '[...]';
- }
- else if (this.type == 'object') {
- domValue = document.createElement('div');
- domValue.innerHTML = '{...}';
- }
- else {
- if (!this.editable.value && util.isUrl(this.value)) {
- // create a link in case of read-only editor and value containing an url
- domValue = document.createElement('a');
- domValue.href = this.value;
- domValue.target = '_blank';
- domValue.innerHTML = this._escapeHTML(this.value);
- }
- else {
- // create an editable or read-only div
- domValue = document.createElement('div');
- domValue.contentEditable = this.editable.value;
- domValue.spellcheck = false;
- domValue.innerHTML = this._escapeHTML(this.value);
- }
- }
-
- return domValue;
-};
-
-/**
- * Create an expand/collapse button
- * @return {Element} expand
- * @private
- */
-Node.prototype._createDomExpandButton = function () {
- // create expand button
- var expand = document.createElement('button');
- if (this._hasChilds()) {
- expand.className = this.expanded ? 'jsoneditor-expanded' : 'jsoneditor-collapsed';
- expand.title =
- 'Click to expand/collapse this field (Ctrl+E). \n' +
- 'Ctrl+Click to expand/collapse including all childs.';
- }
- else {
- expand.className = 'jsoneditor-invisible';
- expand.title = '';
- }
-
- return expand;
-};
-
-
-/**
- * Create a DOM tree element, containing the expand/collapse button
- * @return {Element} domTree
- * @private
- */
-Node.prototype._createDomTree = function () {
- var dom = this.dom;
- var domTree = document.createElement('table');
- var tbody = document.createElement('tbody');
- domTree.style.borderCollapse = 'collapse'; // TODO: put in css
- domTree.className = 'jsoneditor-values';
- domTree.appendChild(tbody);
- var tr = document.createElement('tr');
- tbody.appendChild(tr);
-
- // create expand button
- var tdExpand = document.createElement('td');
- tdExpand.className = 'jsoneditor-tree';
- tr.appendChild(tdExpand);
- dom.expand = this._createDomExpandButton();
- tdExpand.appendChild(dom.expand);
- dom.tdExpand = tdExpand;
-
- // create the field
- var tdField = document.createElement('td');
- tdField.className = 'jsoneditor-tree';
- tr.appendChild(tdField);
- dom.field = this._createDomField();
- tdField.appendChild(dom.field);
- dom.tdField = tdField;
-
- // create a separator
- var tdSeparator = document.createElement('td');
- tdSeparator.className = 'jsoneditor-tree';
- tr.appendChild(tdSeparator);
- if (this.type != 'object' && this.type != 'array') {
- tdSeparator.appendChild(document.createTextNode(':'));
- tdSeparator.className = 'jsoneditor-separator';
- }
- dom.tdSeparator = tdSeparator;
-
- // create the value
- var tdValue = document.createElement('td');
- tdValue.className = 'jsoneditor-tree';
- tr.appendChild(tdValue);
- dom.value = this._createDomValue();
- tdValue.appendChild(dom.value);
- dom.tdValue = tdValue;
-
- return domTree;
-};
-
-/**
- * Handle an event. The event is caught centrally by the editor
- * @param {Event} event
- */
-Node.prototype.onEvent = function (event) {
- var type = event.type,
- target = event.target || event.srcElement,
- dom = this.dom,
- node = this,
- expandable = this._hasChilds();
-
- // check if mouse is on menu or on dragarea.
- // If so, highlight current row and its childs
- if (target == dom.drag || target == dom.menu) {
- if (type == 'mouseover') {
- this.editor.highlighter.highlight(this);
- }
- else if (type == 'mouseout') {
- this.editor.highlighter.unhighlight();
- }
- }
-
- // context menu events
- if (type == 'click' && target == dom.menu) {
- var highlighter = node.editor.highlighter;
- highlighter.highlight(node);
- highlighter.lock();
- util.addClassName(dom.menu, 'jsoneditor-selected');
- this.showContextMenu(dom.menu, function () {
- util.removeClassName(dom.menu, 'jsoneditor-selected');
- highlighter.unlock();
- highlighter.unhighlight();
- });
- }
-
- // expand events
- if (type == 'click') {
- if (target == dom.expand ||
- ((node.editor.options.mode === 'view' || node.editor.options.mode === 'form') && target.nodeName === 'DIV')) {
- if (expandable) {
- var recurse = event.ctrlKey; // with ctrl-key, expand/collapse all
- this._onExpand(recurse);
- }
- }
- }
-
- // swap the value of a boolean when the checkbox displayed left is clicked
- if (type == 'change' && target == dom.checkbox) {
- this.dom.value.innerHTML = !this.value;
- this._getDomValue();
- }
-
- // update the value of the node based on the selected option
- if (type == 'change' && target == dom.select) {
- this.dom.value.innerHTML = dom.select.value;
- this._getDomValue();
- this._updateDomValue();
- }
-
- // value events
- var domValue = dom.value;
- if (target == domValue) {
- //noinspection FallthroughInSwitchStatementJS
- switch (type) {
- case 'blur':
- case 'change':
- this._getDomValue(true);
- this._updateDomValue();
- if (this.value) {
- domValue.innerHTML = this._escapeHTML(this.value);
- }
- break;
-
- case 'input':
- //this._debouncedGetDomValue(true); // TODO
- this._getDomValue(true);
- this._updateDomValue();
- break;
-
- case 'keydown':
- case 'mousedown':
- // TODO: cleanup
- this.editor.selection = this.editor.getSelection();
- break;
-
- case 'click':
- if (event.ctrlKey || !this.editable.value) {
- if (util.isUrl(this.value)) {
- window.open(this.value, '_blank');
- }
- }
- break;
-
- case 'keyup':
- //this._debouncedGetDomValue(true); // TODO
- this._getDomValue(true);
- this._updateDomValue();
- break;
-
- case 'cut':
- case 'paste':
- setTimeout(function () {
- node._getDomValue(true);
- node._updateDomValue();
- }, 1);
- break;
- }
- }
-
- // field events
- var domField = dom.field;
- if (target == domField) {
- switch (type) {
- case 'blur':
- case 'change':
- this._getDomField(true);
- this._updateDomField();
- if (this.field) {
- domField.innerHTML = this._escapeHTML(this.field);
- }
- break;
-
- case 'input':
- this._getDomField(true);
- this._updateSchema();
- this._updateDomField();
- this._updateDomValue();
- break;
-
- case 'keydown':
- case 'mousedown':
- this.editor.selection = this.editor.getSelection();
- break;
-
- case 'keyup':
- this._getDomField(true);
- this._updateDomField();
- break;
-
- case 'cut':
- case 'paste':
- setTimeout(function () {
- node._getDomField(true);
- node._updateDomField();
- }, 1);
- break;
- }
- }
-
- // focus
- // when clicked in whitespace left or right from the field or value, set focus
- var domTree = dom.tree;
- if (target == domTree.parentNode && type == 'click' && !event.hasMoved) {
- var left = (event.offsetX != undefined) ?
- (event.offsetX < (this.getLevel() + 1) * 24) :
- (event.pageX < util.getAbsoluteLeft(dom.tdSeparator));// for FF
- if (left || expandable) {
- // node is expandable when it is an object or array
- if (domField) {
- util.setEndOfContentEditable(domField);
- domField.focus();
- }
- }
- else {
- if (domValue && !this.enum) {
- util.setEndOfContentEditable(domValue);
- domValue.focus();
- }
- }
- }
- if (((target == dom.tdExpand && !expandable) || target == dom.tdField || target == dom.tdSeparator) &&
- (type == 'click' && !event.hasMoved)) {
- if (domField) {
- util.setEndOfContentEditable(domField);
- domField.focus();
- }
- }
-
- if (type == 'keydown') {
- this.onKeyDown(event);
- }
-};
-
-/**
- * Key down event handler
- * @param {Event} event
- */
-Node.prototype.onKeyDown = function (event) {
- var keynum = event.which || event.keyCode;
- var target = event.target || event.srcElement;
- var ctrlKey = event.ctrlKey;
- var shiftKey = event.shiftKey;
- var altKey = event.altKey;
- var handled = false;
- var prevNode, nextNode, nextDom, nextDom2;
- var editable = this.editor.options.mode === 'tree';
- var oldSelection;
- var oldBeforeNode;
- var nodes;
- var multiselection;
- var selectedNodes = this.editor.multiselection.nodes.length > 0
- ? this.editor.multiselection.nodes
- : [this];
- var firstNode = selectedNodes[0];
- var lastNode = selectedNodes[selectedNodes.length - 1];
-
- // console.log(ctrlKey, keynum, event.charCode); // TODO: cleanup
- if (keynum == 13) { // Enter
- if (target == this.dom.value) {
- if (!this.editable.value || event.ctrlKey) {
- if (util.isUrl(this.value)) {
- window.open(this.value, '_blank');
- handled = true;
- }
- }
- }
- else if (target == this.dom.expand) {
- var expandable = this._hasChilds();
- if (expandable) {
- var recurse = event.ctrlKey; // with ctrl-key, expand/collapse all
- this._onExpand(recurse);
- target.focus();
- handled = true;
- }
- }
- }
- else if (keynum == 68) { // D
- if (ctrlKey && editable) { // Ctrl+D
- Node.onDuplicate(selectedNodes);
- handled = true;
- }
- }
- else if (keynum == 69) { // E
- if (ctrlKey) { // Ctrl+E and Ctrl+Shift+E
- this._onExpand(shiftKey); // recurse = shiftKey
- target.focus(); // TODO: should restore focus in case of recursing expand (which takes DOM offline)
- handled = true;
- }
- }
- else if (keynum == 77 && editable) { // M
- if (ctrlKey) { // Ctrl+M
- this.showContextMenu(target);
- handled = true;
- }
- }
- else if (keynum == 46 && editable) { // Del
- if (ctrlKey) { // Ctrl+Del
- Node.onRemove(selectedNodes);
- handled = true;
- }
- }
- else if (keynum == 45 && editable) { // Ins
- if (ctrlKey && !shiftKey) { // Ctrl+Ins
- this._onInsertBefore();
- handled = true;
- }
- else if (ctrlKey && shiftKey) { // Ctrl+Shift+Ins
- this._onInsertAfter();
- handled = true;
- }
- }
- else if (keynum == 35) { // End
- if (altKey) { // Alt+End
- // find the last node
- var endNode = this._lastNode();
- if (endNode) {
- endNode.focus(Node.focusElement || this._getElementName(target));
- }
- handled = true;
- }
- }
- else if (keynum == 36) { // Home
- if (altKey) { // Alt+Home
- // find the first node
- var homeNode = this._firstNode();
- if (homeNode) {
- homeNode.focus(Node.focusElement || this._getElementName(target));
- }
- handled = true;
- }
- }
- else if (keynum == 37) { // Arrow Left
- if (altKey && !shiftKey) { // Alt + Arrow Left
- // move to left element
- var prevElement = this._previousElement(target);
- if (prevElement) {
- this.focus(this._getElementName(prevElement));
- }
- handled = true;
- }
- else if (altKey && shiftKey && editable) { // Alt + Shift + Arrow left
- if (lastNode.expanded) {
- var appendDom = lastNode.getAppend();
- nextDom = appendDom ? appendDom.nextSibling : undefined;
- }
- else {
- var dom = lastNode.getDom();
- nextDom = dom.nextSibling;
- }
- if (nextDom) {
- nextNode = Node.getNodeFromTarget(nextDom);
- nextDom2 = nextDom.nextSibling;
- nextNode2 = Node.getNodeFromTarget(nextDom2);
- if (nextNode && nextNode instanceof AppendNode &&
- !(lastNode.parent.childs.length == 1) &&
- nextNode2 && nextNode2.parent) {
- oldSelection = this.editor.getSelection();
- oldBeforeNode = lastNode._nextSibling();
-
- selectedNodes.forEach(function (node) {
- nextNode2.parent.moveBefore(node, nextNode2);
- });
- this.focus(Node.focusElement || this._getElementName(target));
-
- this.editor._onAction('moveNodes', {
- nodes: selectedNodes,
- oldBeforeNode: oldBeforeNode,
- newBeforeNode: nextNode2,
- oldSelection: oldSelection,
- newSelection: this.editor.getSelection()
- });
- }
- }
- }
- }
- else if (keynum == 38) { // Arrow Up
- if (altKey && !shiftKey) { // Alt + Arrow Up
- // find the previous node
- prevNode = this._previousNode();
- if (prevNode) {
- this.editor.deselect(true);
- prevNode.focus(Node.focusElement || this._getElementName(target));
- }
- handled = true;
- }
- else if (!altKey && ctrlKey && shiftKey && editable) { // Ctrl + Shift + Arrow Up
- // select multiple nodes
- prevNode = this._previousNode();
- if (prevNode) {
- multiselection = this.editor.multiselection;
- multiselection.start = multiselection.start || this;
- multiselection.end = prevNode;
- nodes = this.editor._findTopLevelNodes(multiselection.start, multiselection.end);
-
- this.editor.select(nodes);
- prevNode.focus('field'); // select field as we know this always exists
- }
- handled = true;
- }
- else if (altKey && shiftKey && editable) { // Alt + Shift + Arrow Up
- // find the previous node
- prevNode = firstNode._previousNode();
- if (prevNode && prevNode.parent) {
- oldSelection = this.editor.getSelection();
- oldBeforeNode = lastNode._nextSibling();
-
- selectedNodes.forEach(function (node) {
- prevNode.parent.moveBefore(node, prevNode);
- });
- this.focus(Node.focusElement || this._getElementName(target));
-
- this.editor._onAction('moveNodes', {
- nodes: selectedNodes,
- oldBeforeNode: oldBeforeNode,
- newBeforeNode: prevNode,
- oldSelection: oldSelection,
- newSelection: this.editor.getSelection()
- });
- }
- handled = true;
- }
- }
- else if (keynum == 39) { // Arrow Right
- if (altKey && !shiftKey) { // Alt + Arrow Right
- // move to right element
- var nextElement = this._nextElement(target);
- if (nextElement) {
- this.focus(this._getElementName(nextElement));
- }
- handled = true;
- }
- else if (altKey && shiftKey && editable) { // Alt + Shift + Arrow Right
- dom = firstNode.getDom();
- var prevDom = dom.previousSibling;
- if (prevDom) {
- prevNode = Node.getNodeFromTarget(prevDom);
- if (prevNode && prevNode.parent &&
- (prevNode instanceof AppendNode)
- && !prevNode.isVisible()) {
- oldSelection = this.editor.getSelection();
- oldBeforeNode = lastNode._nextSibling();
-
- selectedNodes.forEach(function (node) {
- prevNode.parent.moveBefore(node, prevNode);
- });
- this.focus(Node.focusElement || this._getElementName(target));
-
- this.editor._onAction('moveNodes', {
- nodes: selectedNodes,
- oldBeforeNode: oldBeforeNode,
- newBeforeNode: prevNode,
- oldSelection: oldSelection,
- newSelection: this.editor.getSelection()
- });
- }
- }
- }
- }
- else if (keynum == 40) { // Arrow Down
- if (altKey && !shiftKey) { // Alt + Arrow Down
- // find the next node
- nextNode = this._nextNode();
- if (nextNode) {
- this.editor.deselect(true);
- nextNode.focus(Node.focusElement || this._getElementName(target));
- }
- handled = true;
- }
- else if (!altKey && ctrlKey && shiftKey && editable) { // Ctrl + Shift + Arrow Down
- // select multiple nodes
- nextNode = this._nextNode();
- if (nextNode) {
- multiselection = this.editor.multiselection;
- multiselection.start = multiselection.start || this;
- multiselection.end = nextNode;
- nodes = this.editor._findTopLevelNodes(multiselection.start, multiselection.end);
-
- this.editor.select(nodes);
- nextNode.focus('field'); // select field as we know this always exists
- }
- handled = true;
- }
- else if (altKey && shiftKey && editable) { // Alt + Shift + Arrow Down
- // find the 2nd next node and move before that one
- if (lastNode.expanded) {
- nextNode = lastNode.append ? lastNode.append._nextNode() : undefined;
- }
- else {
- nextNode = lastNode._nextNode();
- }
- var nextNode2 = nextNode && (nextNode._nextNode() || nextNode.parent.append);
- if (nextNode2 && nextNode2.parent) {
- oldSelection = this.editor.getSelection();
- oldBeforeNode = lastNode._nextSibling();
-
- selectedNodes.forEach(function (node) {
- nextNode2.parent.moveBefore(node, nextNode2);
- });
- this.focus(Node.focusElement || this._getElementName(target));
-
- this.editor._onAction('moveNodes', {
- nodes: selectedNodes,
- oldBeforeNode: oldBeforeNode,
- newBeforeNode: nextNode2,
- oldSelection: oldSelection,
- newSelection: this.editor.getSelection()
- });
- }
- handled = true;
- }
- }
-
- if (handled) {
- event.preventDefault();
- event.stopPropagation();
- }
-};
-
-/**
- * Handle the expand event, when clicked on the expand button
- * @param {boolean} recurse If true, child nodes will be expanded too
- * @private
- */
-Node.prototype._onExpand = function (recurse) {
- if (recurse) {
- // Take the table offline
- var table = this.dom.tr.parentNode; // TODO: not nice to access the main table like this
- var frame = table.parentNode;
- var scrollTop = frame.scrollTop;
- frame.removeChild(table);
- }
-
- if (this.expanded) {
- this.collapse(recurse);
- }
- else {
- this.expand(recurse);
- }
-
- if (recurse) {
- // Put the table online again
- frame.appendChild(table);
- frame.scrollTop = scrollTop;
- }
-};
-
-/**
- * Remove nodes
- * @param {Node[] | Node} nodes
- */
-Node.onRemove = function(nodes) {
- if (!Array.isArray(nodes)) {
- return Node.onRemove([nodes]);
- }
-
- if (nodes && nodes.length > 0) {
- var firstNode = nodes[0];
- var parent = firstNode.parent;
- var editor = firstNode.editor;
- var firstIndex = firstNode.getIndex();
- editor.highlighter.unhighlight();
-
- // adjust the focus
- var oldSelection = editor.getSelection();
- Node.blurNodes(nodes);
- var newSelection = editor.getSelection();
-
- // remove the nodes
- nodes.forEach(function (node) {
- node.parent._remove(node);
- });
-
- // store history action
- editor._onAction('removeNodes', {
- nodes: nodes.slice(0), // store a copy of the array!
- parent: parent,
- index: firstIndex,
- oldSelection: oldSelection,
- newSelection: newSelection
- });
- }
-};
-
-
-/**
- * Duplicate nodes
- * duplicated nodes will be added right after the original nodes
- * @param {Node[] | Node} nodes
- */
-Node.onDuplicate = function(nodes) {
- if (!Array.isArray(nodes)) {
- return Node.onDuplicate([nodes]);
- }
-
- if (nodes && nodes.length > 0) {
- var lastNode = nodes[nodes.length - 1];
- var parent = lastNode.parent;
- var editor = lastNode.editor;
-
- editor.deselect(editor.multiselection.nodes);
-
- // duplicate the nodes
- var oldSelection = editor.getSelection();
- var afterNode = lastNode;
- var clones = nodes.map(function (node) {
- var clone = node.clone();
- parent.insertAfter(clone, afterNode);
- afterNode = clone;
- return clone;
- });
-
- // set selection to the duplicated nodes
- if (nodes.length === 1) {
- clones[0].focus();
- }
- else {
- editor.select(clones);
- }
- var newSelection = editor.getSelection();
-
- editor._onAction('duplicateNodes', {
- afterNode: lastNode,
- nodes: clones,
- parent: parent,
- oldSelection: oldSelection,
- newSelection: newSelection
- });
- }
-};
-
-/**
- * Handle insert before event
- * @param {String} [field]
- * @param {*} [value]
- * @param {String} [type] Can be 'auto', 'array', 'object', or 'string'
- * @private
- */
-Node.prototype._onInsertBefore = function (field, value, type) {
- var oldSelection = this.editor.getSelection();
-
- var newNode = new Node(this.editor, {
- field: (field != undefined) ? field : '',
- value: (value != undefined) ? value : '',
- type: type
- });
- newNode.expand(true);
- this.parent.insertBefore(newNode, this);
- this.editor.highlighter.unhighlight();
- newNode.focus('field');
- var newSelection = this.editor.getSelection();
-
- this.editor._onAction('insertBeforeNodes', {
- nodes: [newNode],
- beforeNode: this,
- parent: this.parent,
- oldSelection: oldSelection,
- newSelection: newSelection
- });
-};
-
-/**
- * Handle insert after event
- * @param {String} [field]
- * @param {*} [value]
- * @param {String} [type] Can be 'auto', 'array', 'object', or 'string'
- * @private
- */
-Node.prototype._onInsertAfter = function (field, value, type) {
- var oldSelection = this.editor.getSelection();
-
- var newNode = new Node(this.editor, {
- field: (field != undefined) ? field : '',
- value: (value != undefined) ? value : '',
- type: type
- });
- newNode.expand(true);
- this.parent.insertAfter(newNode, this);
- this.editor.highlighter.unhighlight();
- newNode.focus('field');
- var newSelection = this.editor.getSelection();
-
- this.editor._onAction('insertAfterNodes', {
- nodes: [newNode],
- afterNode: this,
- parent: this.parent,
- oldSelection: oldSelection,
- newSelection: newSelection
- });
-};
-
-/**
- * Handle append event
- * @param {String} [field]
- * @param {*} [value]
- * @param {String} [type] Can be 'auto', 'array', 'object', or 'string'
- * @private
- */
-Node.prototype._onAppend = function (field, value, type) {
- var oldSelection = this.editor.getSelection();
-
- var newNode = new Node(this.editor, {
- field: (field != undefined) ? field : '',
- value: (value != undefined) ? value : '',
- type: type
- });
- newNode.expand(true);
- this.parent.appendChild(newNode);
- this.editor.highlighter.unhighlight();
- newNode.focus('field');
- var newSelection = this.editor.getSelection();
-
- this.editor._onAction('appendNodes', {
- nodes: [newNode],
- parent: this.parent,
- oldSelection: oldSelection,
- newSelection: newSelection
- });
-};
-
-/**
- * Change the type of the node's value
- * @param {String} newType
- * @private
- */
-Node.prototype._onChangeType = function (newType) {
- var oldType = this.type;
- if (newType != oldType) {
- var oldSelection = this.editor.getSelection();
- this.changeType(newType);
- var newSelection = this.editor.getSelection();
-
- this.editor._onAction('changeType', {
- node: this,
- oldType: oldType,
- newType: newType,
- oldSelection: oldSelection,
- newSelection: newSelection
- });
- }
-};
-
-/**
- * Sort the child's of the node. Only applicable when the node has type 'object'
- * or 'array'.
- * @param {String} direction Sorting direction. Available values: "asc", "desc"
- * @private
- */
-Node.prototype.sort = function (direction) {
- if (!this._hasChilds()) {
- return;
- }
-
- var order = (direction == 'desc') ? -1 : 1;
- var prop = (this.type == 'array') ? 'value': 'field';
- this.hideChilds();
-
- var oldChilds = this.childs;
- var oldSortOrder = this.sortOrder;
-
- // copy the array (the old one will be kept for an undo action
- this.childs = this.childs.concat();
-
- // sort the arrays
- this.childs.sort(function (a, b) {
- return order * naturalSort(a[prop], b[prop]);
- });
- this.sortOrder = (order == 1) ? 'asc' : 'desc';
-
- this.editor._onAction('sort', {
- node: this,
- oldChilds: oldChilds,
- oldSort: oldSortOrder,
- newChilds: this.childs,
- newSort: this.sortOrder
- });
-
- this.showChilds();
-};
-
-/**
- * Create a table row with an append button.
- * @return {HTMLElement | undefined} buttonAppend or undefined when inapplicable
- */
-Node.prototype.getAppend = function () {
- if (!this.append) {
- this.append = new AppendNode(this.editor);
- this.append.setParent(this);
- }
- return this.append.getDom();
-};
-
-/**
- * Find the node from an event target
- * @param {Node} target
- * @return {Node | undefined} node or undefined when not found
- * @static
- */
-Node.getNodeFromTarget = function (target) {
- while (target) {
- if (target.node) {
- return target.node;
- }
- target = target.parentNode;
- }
-
- return undefined;
-};
-
-/**
- * Remove the focus of given nodes, and move the focus to the (a) node before,
- * (b) the node after, or (c) the parent node.
- * @param {Array. | Node} nodes
- */
-Node.blurNodes = function (nodes) {
- if (!Array.isArray(nodes)) {
- Node.blurNodes([nodes]);
- return;
- }
-
- var firstNode = nodes[0];
- var parent = firstNode.parent;
- var firstIndex = firstNode.getIndex();
-
- if (parent.childs[firstIndex + nodes.length]) {
- parent.childs[firstIndex + nodes.length].focus();
- }
- else if (parent.childs[firstIndex - 1]) {
- parent.childs[firstIndex - 1].focus();
- }
- else {
- parent.focus();
- }
-};
-
-/**
- * Get the next sibling of current node
- * @return {Node} nextSibling
- * @private
- */
-Node.prototype._nextSibling = function () {
- var index = this.parent.childs.indexOf(this);
- return this.parent.childs[index + 1] || this.parent.append;
-};
-
-/**
- * Get the previously rendered node
- * @return {Node | null} previousNode
- * @private
- */
-Node.prototype._previousNode = function () {
- var prevNode = null;
- var dom = this.getDom();
- if (dom && dom.parentNode) {
- // find the previous field
- var prevDom = dom;
- do {
- prevDom = prevDom.previousSibling;
- prevNode = Node.getNodeFromTarget(prevDom);
- }
- while (prevDom && (prevNode instanceof AppendNode && !prevNode.isVisible()));
- }
- return prevNode;
-};
-
-/**
- * Get the next rendered node
- * @return {Node | null} nextNode
- * @private
- */
-Node.prototype._nextNode = function () {
- var nextNode = null;
- var dom = this.getDom();
- if (dom && dom.parentNode) {
- // find the previous field
- var nextDom = dom;
- do {
- nextDom = nextDom.nextSibling;
- nextNode = Node.getNodeFromTarget(nextDom);
- }
- while (nextDom && (nextNode instanceof AppendNode && !nextNode.isVisible()));
- }
-
- return nextNode;
-};
-
-/**
- * Get the first rendered node
- * @return {Node | null} firstNode
- * @private
- */
-Node.prototype._firstNode = function () {
- var firstNode = null;
- var dom = this.getDom();
- if (dom && dom.parentNode) {
- var firstDom = dom.parentNode.firstChild;
- firstNode = Node.getNodeFromTarget(firstDom);
- }
-
- return firstNode;
-};
-
-/**
- * Get the last rendered node
- * @return {Node | null} lastNode
- * @private
- */
-Node.prototype._lastNode = function () {
- var lastNode = null;
- var dom = this.getDom();
- if (dom && dom.parentNode) {
- var lastDom = dom.parentNode.lastChild;
- lastNode = Node.getNodeFromTarget(lastDom);
- while (lastDom && (lastNode instanceof AppendNode && !lastNode.isVisible())) {
- lastDom = lastDom.previousSibling;
- lastNode = Node.getNodeFromTarget(lastDom);
- }
- }
- return lastNode;
-};
-
-/**
- * Get the next element which can have focus.
- * @param {Element} elem
- * @return {Element | null} nextElem
- * @private
- */
-Node.prototype._previousElement = function (elem) {
- var dom = this.dom;
- // noinspection FallthroughInSwitchStatementJS
- switch (elem) {
- case dom.value:
- if (this.fieldEditable) {
- return dom.field;
- }
- // intentional fall through
- case dom.field:
- if (this._hasChilds()) {
- return dom.expand;
- }
- // intentional fall through
- case dom.expand:
- return dom.menu;
- case dom.menu:
- if (dom.drag) {
- return dom.drag;
- }
- // intentional fall through
- default:
- return null;
- }
-};
-
-/**
- * Get the next element which can have focus.
- * @param {Element} elem
- * @return {Element | null} nextElem
- * @private
- */
-Node.prototype._nextElement = function (elem) {
- var dom = this.dom;
- // noinspection FallthroughInSwitchStatementJS
- switch (elem) {
- case dom.drag:
- return dom.menu;
- case dom.menu:
- if (this._hasChilds()) {
- return dom.expand;
- }
- // intentional fall through
- case dom.expand:
- if (this.fieldEditable) {
- return dom.field;
- }
- // intentional fall through
- case dom.field:
- if (!this._hasChilds()) {
- return dom.value;
- }
- default:
- return null;
- }
-};
-
-/**
- * Get the dom name of given element. returns null if not found.
- * For example when element == dom.field, "field" is returned.
- * @param {Element} element
- * @return {String | null} elementName Available elements with name: 'drag',
- * 'menu', 'expand', 'field', 'value'
- * @private
- */
-Node.prototype._getElementName = function (element) {
- var dom = this.dom;
- for (var name in dom) {
- if (dom.hasOwnProperty(name)) {
- if (dom[name] == element) {
- return name;
- }
- }
- }
- return null;
-};
-
-/**
- * Test if this node has childs. This is the case when the node is an object
- * or array.
- * @return {boolean} hasChilds
- * @private
- */
-Node.prototype._hasChilds = function () {
- return this.type == 'array' || this.type == 'object';
-};
-
-// titles with explanation for the different types
-Node.TYPE_TITLES = {
- 'auto': 'Field type "auto". ' +
- 'The field type is automatically determined from the value ' +
- 'and can be a string, number, boolean, or null.',
- 'object': 'Field type "object". ' +
- 'An object contains an unordered set of key/value pairs.',
- 'array': 'Field type "array". ' +
- 'An array contains an ordered collection of values.',
- 'string': 'Field type "string". ' +
- 'Field type is not determined from the value, ' +
- 'but always returned as string.'
-};
-
-/**
- * Show a contextmenu for this node
- * @param {HTMLElement} anchor Anchor element to attach the context menu to
- * as sibling.
- * @param {function} [onClose] Callback method called when the context menu
- * is being closed.
- */
-Node.prototype.showContextMenu = function (anchor, onClose) {
- var node = this;
- var titles = Node.TYPE_TITLES;
- var items = [];
-
- if (this.editable.value) {
- items.push({
- text: 'Type',
- title: 'Change the type of this field',
- className: 'jsoneditor-type-' + this.type,
- submenu: [
- {
- text: 'Auto',
- className: 'jsoneditor-type-auto' +
- (this.type == 'auto' ? ' jsoneditor-selected' : ''),
- title: titles.auto,
- click: function () {
- node._onChangeType('auto');
- }
- },
- {
- text: 'Array',
- className: 'jsoneditor-type-array' +
- (this.type == 'array' ? ' jsoneditor-selected' : ''),
- title: titles.array,
- click: function () {
- node._onChangeType('array');
- }
- },
- {
- text: 'Object',
- className: 'jsoneditor-type-object' +
- (this.type == 'object' ? ' jsoneditor-selected' : ''),
- title: titles.object,
- click: function () {
- node._onChangeType('object');
- }
- },
- {
- text: 'String',
- className: 'jsoneditor-type-string' +
- (this.type == 'string' ? ' jsoneditor-selected' : ''),
- title: titles.string,
- click: function () {
- node._onChangeType('string');
- }
- }
- ]
- });
- }
-
- if (this._hasChilds()) {
- var direction = ((this.sortOrder == 'asc') ? 'desc': 'asc');
- items.push({
- text: 'Sort',
- title: 'Sort the childs of this ' + this.type,
- className: 'jsoneditor-sort-' + direction,
- click: function () {
- node.sort(direction);
- },
- submenu: [
- {
- text: 'Ascending',
- className: 'jsoneditor-sort-asc',
- title: 'Sort the childs of this ' + this.type + ' in ascending order',
- click: function () {
- node.sort('asc');
- }
- },
- {
- text: 'Descending',
- className: 'jsoneditor-sort-desc',
- title: 'Sort the childs of this ' + this.type +' in descending order',
- click: function () {
- node.sort('desc');
- }
- }
- ]
- });
- }
-
- if (this.parent && this.parent._hasChilds()) {
- if (items.length) {
- // create a separator
- items.push({
- 'type': 'separator'
- });
- }
-
- // create append button (for last child node only)
- var childs = node.parent.childs;
- if (node == childs[childs.length - 1]) {
- items.push({
- text: 'Append',
- title: 'Append a new field with type \'auto\' after this field (Ctrl+Shift+Ins)',
- submenuTitle: 'Select the type of the field to be appended',
- className: 'jsoneditor-append',
- click: function () {
- node._onAppend('', '', 'auto');
- },
- submenu: [
- {
- text: 'Auto',
- className: 'jsoneditor-type-auto',
- title: titles.auto,
- click: function () {
- node._onAppend('', '', 'auto');
- }
- },
- {
- text: 'Array',
- className: 'jsoneditor-type-array',
- title: titles.array,
- click: function () {
- node._onAppend('', []);
- }
- },
- {
- text: 'Object',
- className: 'jsoneditor-type-object',
- title: titles.object,
- click: function () {
- node._onAppend('', {});
- }
- },
- {
- text: 'String',
- className: 'jsoneditor-type-string',
- title: titles.string,
- click: function () {
- node._onAppend('', '', 'string');
- }
- }
- ]
- });
- }
-
- // create insert button
- items.push({
- text: 'Insert',
- title: 'Insert a new field with type \'auto\' before this field (Ctrl+Ins)',
- submenuTitle: 'Select the type of the field to be inserted',
- className: 'jsoneditor-insert',
- click: function () {
- node._onInsertBefore('', '', 'auto');
- },
- submenu: [
- {
- text: 'Auto',
- className: 'jsoneditor-type-auto',
- title: titles.auto,
- click: function () {
- node._onInsertBefore('', '', 'auto');
- }
- },
- {
- text: 'Array',
- className: 'jsoneditor-type-array',
- title: titles.array,
- click: function () {
- node._onInsertBefore('', []);
- }
- },
- {
- text: 'Object',
- className: 'jsoneditor-type-object',
- title: titles.object,
- click: function () {
- node._onInsertBefore('', {});
- }
- },
- {
- text: 'String',
- className: 'jsoneditor-type-string',
- title: titles.string,
- click: function () {
- node._onInsertBefore('', '', 'string');
- }
- }
- ]
- });
-
- if (this.editable.field) {
- // create duplicate button
- items.push({
- text: 'Duplicate',
- title: 'Duplicate this field (Ctrl+D)',
- className: 'jsoneditor-duplicate',
- click: function () {
- Node.onDuplicate(node);
- }
- });
-
- // create remove button
- items.push({
- text: 'Remove',
- title: 'Remove this field (Ctrl+Del)',
- className: 'jsoneditor-remove',
- click: function () {
- Node.onRemove(node);
- }
- });
- }
- }
-
- var menu = new ContextMenu(items, {close: onClose});
- menu.show(anchor, this.editor.content);
-};
-
-/**
- * get the type of a value
- * @param {*} value
- * @return {String} type Can be 'object', 'array', 'string', 'auto'
- * @private
- */
-Node.prototype._getType = function(value) {
- if (value instanceof Array) {
- return 'array';
- }
- if (value instanceof Object) {
- return 'object';
- }
- if (typeof(value) == 'string' && typeof(this._stringCast(value)) != 'string') {
- return 'string';
- }
-
- return 'auto';
-};
-
-/**
- * cast contents of a string to the correct type. This can be a string,
- * a number, a boolean, etc
- * @param {String} str
- * @return {*} castedStr
- * @private
- */
-Node.prototype._stringCast = function(str) {
- var lower = str.toLowerCase(),
- num = Number(str), // will nicely fail with '123ab'
- numFloat = parseFloat(str); // will nicely fail with ' '
-
- if (str == '') {
- return '';
- }
- else if (lower == 'null') {
- return null;
- }
- else if (lower == 'true') {
- return true;
- }
- else if (lower == 'false') {
- return false;
- }
- else if (!isNaN(num) && !isNaN(numFloat)) {
- return num;
- }
- else {
- return str;
- }
-};
-
-/**
- * escape a text, such that it can be displayed safely in an HTML element
- * @param {String} text
- * @return {String} escapedText
- * @private
- */
-Node.prototype._escapeHTML = function (text) {
- if (typeof text !== 'string') {
- return String(text);
- }
- else {
- var htmlEscaped = String(text)
- .replace(/&/g, '&') // must be replaced first!
- .replace(//g, '>')
- .replace(/ /g, ' ') // replace double space with an nbsp and space
- .replace(/^ /, ' ') // space at start
- .replace(/ $/, ' '); // space at end
-
- var json = JSON.stringify(htmlEscaped);
- var html = json.substring(1, json.length - 1);
- if (this.editor.options.escapeUnicode === true) {
- html = util.escapeUnicodeChars(html);
- }
- return html;
- }
-};
-
-/**
- * unescape a string.
- * @param {String} escapedText
- * @return {String} text
- * @private
- */
-Node.prototype._unescapeHTML = function (escapedText) {
- var json = '"' + this._escapeJSON(escapedText) + '"';
- var htmlEscaped = util.parse(json);
-
- return htmlEscaped
- .replace(/</g, '<')
- .replace(/>/g, '>')
- .replace(/ |\u00A0/g, ' ')
- .replace(/&/g, '&'); // must be replaced last
-};
-
-/**
- * escape a text to make it a valid JSON string. The method will:
- * - replace unescaped double quotes with '\"'
- * - replace unescaped backslash with '\\'
- * - replace returns with '\n'
- * @param {String} text
- * @return {String} escapedText
- * @private
- */
-Node.prototype._escapeJSON = function (text) {
- // TODO: replace with some smart regex (only when a new solution is faster!)
- var escaped = '';
- var i = 0;
- while (i < text.length) {
- var c = text.charAt(i);
- if (c == '\n') {
- escaped += '\\n';
- }
- else if (c == '\\') {
- escaped += c;
- i++;
-
- c = text.charAt(i);
- if (c === '' || '"\\/bfnrtu'.indexOf(c) == -1) {
- escaped += '\\'; // no valid escape character
- }
- escaped += c;
- }
- else if (c == '"') {
- escaped += '\\"';
- }
- else {
- escaped += c;
- }
- i++;
- }
-
- return escaped;
-};
-
-// TODO: find a nicer solution to resolve this circular dependency between Node and AppendNode
-var AppendNode = appendNodeFactory(Node);
-
-module.exports = Node;
diff --git a/src_old/js/SearchBox.js b/src_old/js/SearchBox.js
deleted file mode 100644
index 43ff961..0000000
--- a/src_old/js/SearchBox.js
+++ /dev/null
@@ -1,312 +0,0 @@
-'use strict';
-
-/**
- * @constructor SearchBox
- * Create a search box in given HTML container
- * @param {JSONEditor} editor The JSON Editor to attach to
- * @param {Element} container HTML container element of where to
- * create the search box
- */
-function SearchBox (editor, container) {
- var searchBox = this;
-
- this.editor = editor;
- this.timeout = undefined;
- this.delay = 200; // ms
- this.lastText = undefined;
-
- this.dom = {};
- this.dom.container = container;
-
- var table = document.createElement('table');
- this.dom.table = table;
- table.className = 'jsoneditor-search';
- container.appendChild(table);
- var tbody = document.createElement('tbody');
- this.dom.tbody = tbody;
- table.appendChild(tbody);
- var tr = document.createElement('tr');
- tbody.appendChild(tr);
-
- var td = document.createElement('td');
- tr.appendChild(td);
- var results = document.createElement('div');
- this.dom.results = results;
- results.className = 'jsoneditor-results';
- td.appendChild(results);
-
- td = document.createElement('td');
- tr.appendChild(td);
- var divInput = document.createElement('div');
- this.dom.input = divInput;
- divInput.className = 'jsoneditor-frame';
- divInput.title = 'Search fields and values';
- td.appendChild(divInput);
-
- // table to contain the text input and search button
- var tableInput = document.createElement('table');
- divInput.appendChild(tableInput);
- var tbodySearch = document.createElement('tbody');
- tableInput.appendChild(tbodySearch);
- tr = document.createElement('tr');
- tbodySearch.appendChild(tr);
-
- var refreshSearch = document.createElement('button');
- refreshSearch.className = 'jsoneditor-refresh';
- td = document.createElement('td');
- td.appendChild(refreshSearch);
- tr.appendChild(td);
-
- var search = document.createElement('input');
- this.dom.search = search;
- search.oninput = function (event) {
- searchBox._onDelayedSearch(event);
- };
- search.onchange = function (event) { // For IE 9
- searchBox._onSearch();
- };
- search.onkeydown = function (event) {
- searchBox._onKeyDown(event);
- };
- search.onkeyup = function (event) {
- searchBox._onKeyUp(event);
- };
- refreshSearch.onclick = function (event) {
- search.select();
- };
-
- // TODO: ESC in FF restores the last input, is a FF bug, https://bugzilla.mozilla.org/show_bug.cgi?id=598819
- td = document.createElement('td');
- td.appendChild(search);
- tr.appendChild(td);
-
- var searchNext = document.createElement('button');
- searchNext.title = 'Next result (Enter)';
- searchNext.className = 'jsoneditor-next';
- searchNext.onclick = function () {
- searchBox.next();
- };
- td = document.createElement('td');
- td.appendChild(searchNext);
- tr.appendChild(td);
-
- var searchPrevious = document.createElement('button');
- searchPrevious.title = 'Previous result (Shift+Enter)';
- searchPrevious.className = 'jsoneditor-previous';
- searchPrevious.onclick = function () {
- searchBox.previous();
- };
- td = document.createElement('td');
- td.appendChild(searchPrevious);
- tr.appendChild(td);
-}
-
-/**
- * Go to the next search result
- * @param {boolean} [focus] If true, focus will be set to the next result
- * focus is false by default.
- */
-SearchBox.prototype.next = function(focus) {
- if (this.results != undefined) {
- var index = (this.resultIndex != undefined) ? this.resultIndex + 1 : 0;
- if (index > this.results.length - 1) {
- index = 0;
- }
- this._setActiveResult(index, focus);
- }
-};
-
-/**
- * Go to the prevous search result
- * @param {boolean} [focus] If true, focus will be set to the next result
- * focus is false by default.
- */
-SearchBox.prototype.previous = function(focus) {
- if (this.results != undefined) {
- var max = this.results.length - 1;
- var index = (this.resultIndex != undefined) ? this.resultIndex - 1 : max;
- if (index < 0) {
- index = max;
- }
- this._setActiveResult(index, focus);
- }
-};
-
-/**
- * Set new value for the current active result
- * @param {Number} index
- * @param {boolean} [focus] If true, focus will be set to the next result.
- * focus is false by default.
- * @private
- */
-SearchBox.prototype._setActiveResult = function(index, focus) {
- // de-activate current active result
- if (this.activeResult) {
- var prevNode = this.activeResult.node;
- var prevElem = this.activeResult.elem;
- if (prevElem == 'field') {
- delete prevNode.searchFieldActive;
- }
- else {
- delete prevNode.searchValueActive;
- }
- prevNode.updateDom();
- }
-
- if (!this.results || !this.results[index]) {
- // out of range, set to undefined
- this.resultIndex = undefined;
- this.activeResult = undefined;
- return;
- }
-
- this.resultIndex = index;
-
- // set new node active
- var node = this.results[this.resultIndex].node;
- var elem = this.results[this.resultIndex].elem;
- if (elem == 'field') {
- node.searchFieldActive = true;
- }
- else {
- node.searchValueActive = true;
- }
- this.activeResult = this.results[this.resultIndex];
- node.updateDom();
-
- // TODO: not so nice that the focus is only set after the animation is finished
- node.scrollTo(function () {
- if (focus) {
- node.focus(elem);
- }
- });
-};
-
-/**
- * Cancel any running onDelayedSearch.
- * @private
- */
-SearchBox.prototype._clearDelay = function() {
- if (this.timeout != undefined) {
- clearTimeout(this.timeout);
- delete this.timeout;
- }
-};
-
-/**
- * Start a timer to execute a search after a short delay.
- * Used for reducing the number of searches while typing.
- * @param {Event} event
- * @private
- */
-SearchBox.prototype._onDelayedSearch = function (event) {
- // execute the search after a short delay (reduces the number of
- // search actions while typing in the search text box)
- this._clearDelay();
- var searchBox = this;
- this.timeout = setTimeout(function (event) {
- searchBox._onSearch();
- },
- this.delay);
-};
-
-/**
- * Handle onSearch event
- * @param {boolean} [forceSearch] If true, search will be executed again even
- * when the search text is not changed.
- * Default is false.
- * @private
- */
-SearchBox.prototype._onSearch = function (forceSearch) {
- this._clearDelay();
-
- var value = this.dom.search.value;
- var text = (value.length > 0) ? value : undefined;
- if (text != this.lastText || forceSearch) {
- // only search again when changed
- this.lastText = text;
- this.results = this.editor.search(text);
- this._setActiveResult(undefined);
-
- // display search results
- if (text != undefined) {
- var resultCount = this.results.length;
- switch (resultCount) {
- case 0: this.dom.results.innerHTML = 'no results'; break;
- case 1: this.dom.results.innerHTML = '1 result'; break;
- default: this.dom.results.innerHTML = resultCount + ' results'; break;
- }
- }
- else {
- this.dom.results.innerHTML = '';
- }
- }
-};
-
-/**
- * Handle onKeyDown event in the input box
- * @param {Event} event
- * @private
- */
-SearchBox.prototype._onKeyDown = function (event) {
- var keynum = event.which;
- if (keynum == 27) { // ESC
- this.dom.search.value = ''; // clear search
- this._onSearch();
- event.preventDefault();
- event.stopPropagation();
- }
- else if (keynum == 13) { // Enter
- if (event.ctrlKey) {
- // force to search again
- this._onSearch(true);
- }
- else if (event.shiftKey) {
- // move to the previous search result
- this.previous();
- }
- else {
- // move to the next search result
- this.next();
- }
- event.preventDefault();
- event.stopPropagation();
- }
-};
-
-/**
- * Handle onKeyUp event in the input box
- * @param {Event} event
- * @private
- */
-SearchBox.prototype._onKeyUp = function (event) {
- var keynum = event.keyCode;
- if (keynum != 27 && keynum != 13) { // !show and !Enter
- this._onDelayedSearch(event); // For IE 9
- }
-};
-
-/**
- * Clear the search results
- */
-SearchBox.prototype.clear = function () {
- this.dom.search.value = '';
- this._onSearch();
-};
-
-/**
- * Destroy the search box
- */
-SearchBox.prototype.destroy = function () {
- this.editor = null;
- this.dom.container.removeChild(this.dom.table);
- this.dom = null;
-
- this.results = null;
- this.activeResult = null;
-
- this._clearDelay();
-
-};
-
-module.exports = SearchBox;
diff --git a/src_old/js/ace/index.js b/src_old/js/ace/index.js
deleted file mode 100644
index 846ae0a..0000000
--- a/src_old/js/ace/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// load brace
-var ace = require('brace');
-
-// load required ace modules
-require('brace/mode/json');
-require('brace/ext/searchbox');
-require('./theme-jsoneditor');
-
-module.exports = ace;
diff --git a/src_old/js/ace/theme-jsoneditor.js b/src_old/js/ace/theme-jsoneditor.js
deleted file mode 100644
index 6cec3a6..0000000
--- a/src_old/js/ace/theme-jsoneditor.js
+++ /dev/null
@@ -1,144 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Distributed under the BSD license:
- *
- * Copyright (c) 2010, Ajax.org B.V.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Ajax.org B.V. nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***** END LICENSE BLOCK ***** */
-
-ace.define('ace/theme/jsoneditor', ['require', 'exports', 'module', 'ace/lib/dom'], function(acequire, exports, module) {
-
-exports.isDark = false;
-exports.cssClass = "ace-jsoneditor";
-exports.cssText = ".ace-jsoneditor .ace_gutter {\
-background: #ebebeb;\
-color: #333\
-}\
-\
-.ace-jsoneditor.ace_editor {\
-font-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif;\
-line-height: 1.3;\
-}\
-.ace-jsoneditor .ace_print-margin {\
-width: 1px;\
-background: #e8e8e8\
-}\
-.ace-jsoneditor .ace_scroller {\
-background-color: #FFFFFF\
-}\
-.ace-jsoneditor .ace_text-layer {\
-color: gray\
-}\
-.ace-jsoneditor .ace_variable {\
-color: #1a1a1a\
-}\
-.ace-jsoneditor .ace_cursor {\
-border-left: 2px solid #000000\
-}\
-.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\
-border-left: 0px;\
-border-bottom: 1px solid #000000\
-}\
-.ace-jsoneditor .ace_marker-layer .ace_selection {\
-background: lightgray\
-}\
-.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\
-box-shadow: 0 0 3px 0px #FFFFFF;\
-border-radius: 2px\
-}\
-.ace-jsoneditor .ace_marker-layer .ace_step {\
-background: rgb(255, 255, 0)\
-}\
-.ace-jsoneditor .ace_marker-layer .ace_bracket {\
-margin: -1px 0 0 -1px;\
-border: 1px solid #BFBFBF\
-}\
-.ace-jsoneditor .ace_marker-layer .ace_active-line {\
-background: #FFFBD1\
-}\
-.ace-jsoneditor .ace_gutter-active-line {\
-background-color : #dcdcdc\
-}\
-.ace-jsoneditor .ace_marker-layer .ace_selected-word {\
-border: 1px solid lightgray\
-}\
-.ace-jsoneditor .ace_invisible {\
-color: #BFBFBF\
-}\
-.ace-jsoneditor .ace_keyword,\
-.ace-jsoneditor .ace_meta,\
-.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\
-color: #AF956F\
-}\
-.ace-jsoneditor .ace_keyword.ace_operator {\
-color: #484848\
-}\
-.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\
-color: #96DC5F\
-}\
-.ace-jsoneditor .ace_constant.ace_language {\
-color: darkorange\
-}\
-.ace-jsoneditor .ace_constant.ace_numeric {\
-color: red\
-}\
-.ace-jsoneditor .ace_constant.ace_character.ace_entity {\
-color: #BF78CC\
-}\
-.ace-jsoneditor .ace_invalid {\
-color: #FFFFFF;\
-background-color: #FF002A;\
-}\
-.ace-jsoneditor .ace_fold {\
-background-color: #AF956F;\
-border-color: #000000\
-}\
-.ace-jsoneditor .ace_storage,\
-.ace-jsoneditor .ace_support.ace_class,\
-.ace-jsoneditor .ace_support.ace_function,\
-.ace-jsoneditor .ace_support.ace_other,\
-.ace-jsoneditor .ace_support.ace_type {\
-color: #C52727\
-}\
-.ace-jsoneditor .ace_string {\
-color: green\
-}\
-.ace-jsoneditor .ace_comment {\
-color: #BCC8BA\
-}\
-.ace-jsoneditor .ace_entity.ace_name.ace_tag,\
-.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\
-color: #606060\
-}\
-.ace-jsoneditor .ace_markup.ace_underline {\
-text-decoration: underline\
-}\
-.ace-jsoneditor .ace_indent-guide {\
-background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y\
-}";
-
-var dom = acequire("../lib/dom");
-dom.importCssString(exports.cssText, exports.cssClass);
-});
diff --git a/src_old/js/appendNodeFactory.js b/src_old/js/appendNodeFactory.js
deleted file mode 100644
index 12b7466..0000000
--- a/src_old/js/appendNodeFactory.js
+++ /dev/null
@@ -1,228 +0,0 @@
-'use strict';
-
-var util = require('./util');
-var ContextMenu = require('./ContextMenu');
-
-/**
- * A factory function to create an AppendNode, which depends on a Node
- * @param {Node} Node
- */
-function appendNodeFactory(Node) {
- /**
- * @constructor AppendNode
- * @extends Node
- * @param {TreeEditor} editor
- * Create a new AppendNode. This is a special node which is created at the
- * end of the list with childs for an object or array
- */
- function AppendNode (editor) {
- /** @type {TreeEditor} */
- this.editor = editor;
- this.dom = {};
- }
-
- AppendNode.prototype = new Node();
-
- /**
- * Return a table row with an append button.
- * @return {Element} dom TR element
- */
- AppendNode.prototype.getDom = function () {
- // TODO: implement a new solution for the append node
- var dom = this.dom;
-
- if (dom.tr) {
- return dom.tr;
- }
-
- this._updateEditability();
-
- // a row for the append button
- var trAppend = document.createElement('tr');
- trAppend.node = this;
- dom.tr = trAppend;
-
- // TODO: consistent naming
-
- if (this.editor.options.mode === 'tree') {
- // a cell for the dragarea column
- dom.tdDrag = document.createElement('td');
-
- // create context menu
- var tdMenu = document.createElement('td');
- dom.tdMenu = tdMenu;
- var menu = document.createElement('button');
- menu.className = 'jsoneditor-contextmenu';
- menu.title = 'Click to open the actions menu (Ctrl+M)';
- dom.menu = menu;
- tdMenu.appendChild(dom.menu);
- }
-
- // a cell for the contents (showing text 'empty')
- var tdAppend = document.createElement('td');
- var domText = document.createElement('div');
- domText.innerHTML = '(empty)';
- domText.className = 'jsoneditor-readonly';
- tdAppend.appendChild(domText);
- dom.td = tdAppend;
- dom.text = domText;
-
- this.updateDom();
-
- return trAppend;
- };
-
- /**
- * Update the HTML dom of the Node
- */
- AppendNode.prototype.updateDom = function () {
- var dom = this.dom;
- var tdAppend = dom.td;
- if (tdAppend) {
- tdAppend.style.paddingLeft = (this.getLevel() * 24 + 26) + 'px';
- // TODO: not so nice hard coded offset
- }
-
- var domText = dom.text;
- if (domText) {
- domText.innerHTML = '(empty ' + this.parent.type + ')';
- }
-
- // attach or detach the contents of the append node:
- // hide when the parent has childs, show when the parent has no childs
- var trAppend = dom.tr;
- if (!this.isVisible()) {
- if (dom.tr.firstChild) {
- if (dom.tdDrag) {
- trAppend.removeChild(dom.tdDrag);
- }
- if (dom.tdMenu) {
- trAppend.removeChild(dom.tdMenu);
- }
- trAppend.removeChild(tdAppend);
- }
- }
- else {
- if (!dom.tr.firstChild) {
- if (dom.tdDrag) {
- trAppend.appendChild(dom.tdDrag);
- }
- if (dom.tdMenu) {
- trAppend.appendChild(dom.tdMenu);
- }
- trAppend.appendChild(tdAppend);
- }
- }
- };
-
- /**
- * Check whether the AppendNode is currently visible.
- * the AppendNode is visible when its parent has no childs (i.e. is empty).
- * @return {boolean} isVisible
- */
- AppendNode.prototype.isVisible = function () {
- return (this.parent.childs.length == 0);
- };
-
- /**
- * Show a contextmenu for this node
- * @param {HTMLElement} anchor The element to attach the menu to.
- * @param {function} [onClose] Callback method called when the context menu
- * is being closed.
- */
- AppendNode.prototype.showContextMenu = function (anchor, onClose) {
- var node = this;
- var titles = Node.TYPE_TITLES;
- var items = [
- // create append button
- {
- 'text': 'Append',
- 'title': 'Append a new field with type \'auto\' (Ctrl+Shift+Ins)',
- 'submenuTitle': 'Select the type of the field to be appended',
- 'className': 'jsoneditor-insert',
- 'click': function () {
- node._onAppend('', '', 'auto');
- },
- 'submenu': [
- {
- 'text': 'Auto',
- 'className': 'jsoneditor-type-auto',
- 'title': titles.auto,
- 'click': function () {
- node._onAppend('', '', 'auto');
- }
- },
- {
- 'text': 'Array',
- 'className': 'jsoneditor-type-array',
- 'title': titles.array,
- 'click': function () {
- node._onAppend('', []);
- }
- },
- {
- 'text': 'Object',
- 'className': 'jsoneditor-type-object',
- 'title': titles.object,
- 'click': function () {
- node._onAppend('', {});
- }
- },
- {
- 'text': 'String',
- 'className': 'jsoneditor-type-string',
- 'title': titles.string,
- 'click': function () {
- node._onAppend('', '', 'string');
- }
- }
- ]
- }
- ];
-
- var menu = new ContextMenu(items, {close: onClose});
- menu.show(anchor, this.editor.content);
- };
-
- /**
- * Handle an event. The event is catched centrally by the editor
- * @param {Event} event
- */
- AppendNode.prototype.onEvent = function (event) {
- var type = event.type;
- var target = event.target || event.srcElement;
- var dom = this.dom;
-
- // highlight the append nodes parent
- var menu = dom.menu;
- if (target == menu) {
- if (type == 'mouseover') {
- this.editor.highlighter.highlight(this.parent);
- }
- else if (type == 'mouseout') {
- this.editor.highlighter.unhighlight();
- }
- }
-
- // context menu events
- if (type == 'click' && target == dom.menu) {
- var highlighter = this.editor.highlighter;
- highlighter.highlight(this.parent);
- highlighter.lock();
- util.addClassName(dom.menu, 'jsoneditor-selected');
- this.showContextMenu(dom.menu, function () {
- util.removeClassName(dom.menu, 'jsoneditor-selected');
- highlighter.unlock();
- highlighter.unhighlight();
- });
- }
-
- if (type == 'keydown') {
- this.onKeyDown(event);
- }
- };
-
- return AppendNode;
-}
-
-module.exports = appendNodeFactory;
diff --git a/src_old/js/assets/jsonlint/README.md b/src_old/js/assets/jsonlint/README.md
deleted file mode 100644
index ae26ff6..0000000
--- a/src_old/js/assets/jsonlint/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-The file jsonlint.js is copied from the following project:
-
-https://github.com/josdejong/jsonlint at 85a19d7
-
-which is a fork of the (currently not maintained) project:
-
-https://github.com/zaach/jsonlint
-
-The forked project contains some fixes to allow the file to be bundled with
-browserify. The file is copied in this project to prevent issues with linking
-to a github project from package.json, which is for example not supported
-by jspm.
-
-As soon as zaach/jsonlint is being maintained again we can push the fix
-to the original library and use it as dependency again.
diff --git a/src_old/js/assets/jsonlint/jsonlint.js b/src_old/js/assets/jsonlint/jsonlint.js
deleted file mode 100644
index ae9b2f4..0000000
--- a/src_old/js/assets/jsonlint/jsonlint.js
+++ /dev/null
@@ -1,418 +0,0 @@
-/* Jison generated parser */
-var jsonlint = (function(){
-var parser = {trace: function trace() { },
-yy: {},
-symbols_: {"error":2,"JSONString":3,"STRING":4,"JSONNumber":5,"NUMBER":6,"JSONNullLiteral":7,"NULL":8,"JSONBooleanLiteral":9,"TRUE":10,"FALSE":11,"JSONText":12,"JSONValue":13,"EOF":14,"JSONObject":15,"JSONArray":16,"{":17,"}":18,"JSONMemberList":19,"JSONMember":20,":":21,",":22,"[":23,"]":24,"JSONElementList":25,"$accept":0,"$end":1},
-terminals_: {2:"error",4:"STRING",6:"NUMBER",8:"NULL",10:"TRUE",11:"FALSE",14:"EOF",17:"{",18:"}",21:":",22:",",23:"[",24:"]"},
-productions_: [0,[3,1],[5,1],[7,1],[9,1],[9,1],[12,2],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[15,2],[15,3],[20,3],[19,1],[19,3],[16,2],[16,3],[25,1],[25,3]],
-performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
-
-var $0 = $$.length - 1;
-switch (yystate) {
-case 1: // replace escaped characters with actual character
- this.$ = yytext.replace(/\\(\\|")/g, "$"+"1")
- .replace(/\\n/g,'\n')
- .replace(/\\r/g,'\r')
- .replace(/\\t/g,'\t')
- .replace(/\\v/g,'\v')
- .replace(/\\f/g,'\f')
- .replace(/\\b/g,'\b');
-
-break;
-case 2:this.$ = Number(yytext);
-break;
-case 3:this.$ = null;
-break;
-case 4:this.$ = true;
-break;
-case 5:this.$ = false;
-break;
-case 6:return this.$ = $$[$0-1];
-break;
-case 13:this.$ = {};
-break;
-case 14:this.$ = $$[$0-1];
-break;
-case 15:this.$ = [$$[$0-2], $$[$0]];
-break;
-case 16:this.$ = {}; this.$[$$[$0][0]] = $$[$0][1];
-break;
-case 17:this.$ = $$[$0-2]; $$[$0-2][$$[$0][0]] = $$[$0][1];
-break;
-case 18:this.$ = [];
-break;
-case 19:this.$ = $$[$0-1];
-break;
-case 20:this.$ = [$$[$0]];
-break;
-case 21:this.$ = $$[$0-2]; $$[$0-2].push($$[$0]);
-break;
-}
-},
-table: [{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],12:1,13:2,15:7,16:8,17:[1,14],23:[1,15]},{1:[3]},{14:[1,16]},{14:[2,7],18:[2,7],22:[2,7],24:[2,7]},{14:[2,8],18:[2,8],22:[2,8],24:[2,8]},{14:[2,9],18:[2,9],22:[2,9],24:[2,9]},{14:[2,10],18:[2,10],22:[2,10],24:[2,10]},{14:[2,11],18:[2,11],22:[2,11],24:[2,11]},{14:[2,12],18:[2,12],22:[2,12],24:[2,12]},{14:[2,3],18:[2,3],22:[2,3],24:[2,3]},{14:[2,4],18:[2,4],22:[2,4],24:[2,4]},{14:[2,5],18:[2,5],22:[2,5],24:[2,5]},{14:[2,1],18:[2,1],21:[2,1],22:[2,1],24:[2,1]},{14:[2,2],18:[2,2],22:[2,2],24:[2,2]},{3:20,4:[1,12],18:[1,17],19:18,20:19},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:23,15:7,16:8,17:[1,14],23:[1,15],24:[1,21],25:22},{1:[2,6]},{14:[2,13],18:[2,13],22:[2,13],24:[2,13]},{18:[1,24],22:[1,25]},{18:[2,16],22:[2,16]},{21:[1,26]},{14:[2,18],18:[2,18],22:[2,18],24:[2,18]},{22:[1,28],24:[1,27]},{22:[2,20],24:[2,20]},{14:[2,14],18:[2,14],22:[2,14],24:[2,14]},{3:20,4:[1,12],20:29},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:30,15:7,16:8,17:[1,14],23:[1,15]},{14:[2,19],18:[2,19],22:[2,19],24:[2,19]},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:31,15:7,16:8,17:[1,14],23:[1,15]},{18:[2,17],22:[2,17]},{18:[2,15],22:[2,15]},{22:[2,21],24:[2,21]}],
-defaultActions: {16:[2,6]},
-parseError: function parseError(str, hash) {
- throw new Error(str);
-},
-parse: function parse(input) {
- var self = this,
- stack = [0],
- vstack = [null], // semantic value stack
- lstack = [], // location stack
- table = this.table,
- yytext = '',
- yylineno = 0,
- yyleng = 0,
- recovering = 0,
- TERROR = 2,
- EOF = 1;
-
- //this.reductionCount = this.shiftCount = 0;
-
- this.lexer.setInput(input);
- this.lexer.yy = this.yy;
- this.yy.lexer = this.lexer;
- if (typeof this.lexer.yylloc == 'undefined')
- this.lexer.yylloc = {};
- var yyloc = this.lexer.yylloc;
- lstack.push(yyloc);
-
- if (typeof this.yy.parseError === 'function')
- this.parseError = this.yy.parseError;
-
- function popStack (n) {
- stack.length = stack.length - 2*n;
- vstack.length = vstack.length - n;
- lstack.length = lstack.length - n;
- }
-
- function lex() {
- var token;
- token = self.lexer.lex() || 1; // $end = 1
- // if token isn't its numeric value, convert
- if (typeof token !== 'number') {
- token = self.symbols_[token] || token;
- }
- return token;
- }
-
- var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected;
- while (true) {
- // retreive state number from top of stack
- state = stack[stack.length-1];
-
- // use default actions if available
- if (this.defaultActions[state]) {
- action = this.defaultActions[state];
- } else {
- if (symbol == null)
- symbol = lex();
- // read action for current state and first input
- action = table[state] && table[state][symbol];
- }
-
- // handle parse error
- _handle_error:
- if (typeof action === 'undefined' || !action.length || !action[0]) {
-
- if (!recovering) {
- // Report error
- expected = [];
- for (p in table[state]) if (this.terminals_[p] && p > 2) {
- expected.push("'"+this.terminals_[p]+"'");
- }
- var errStr = '';
- if (this.lexer.showPosition) {
- errStr = 'Parse error on line '+(yylineno+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + this.terminals_[symbol]+ "'";
- } else {
- errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " +
- (symbol == 1 /*EOF*/ ? "end of input" :
- ("'"+(this.terminals_[symbol] || symbol)+"'"));
- }
- this.parseError(errStr,
- {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});
- }
-
- // just recovered from another error
- if (recovering == 3) {
- if (symbol == EOF) {
- throw new Error(errStr || 'Parsing halted.');
- }
-
- // discard current lookahead and grab another
- yyleng = this.lexer.yyleng;
- yytext = this.lexer.yytext;
- yylineno = this.lexer.yylineno;
- yyloc = this.lexer.yylloc;
- symbol = lex();
- }
-
- // try to recover from error
- while (1) {
- // check for error recovery rule in this state
- if ((TERROR.toString()) in table[state]) {
- break;
- }
- if (state == 0) {
- throw new Error(errStr || 'Parsing halted.');
- }
- popStack(1);
- state = stack[stack.length-1];
- }
-
- preErrorSymbol = symbol; // save the lookahead token
- symbol = TERROR; // insert generic error symbol as new lookahead
- state = stack[stack.length-1];
- action = table[state] && table[state][TERROR];
- recovering = 3; // allow 3 real symbols to be shifted before reporting a new error
- }
-
- // this shouldn't happen, unless resolve defaults are off
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);
- }
-
- switch (action[0]) {
-
- case 1: // shift
- //this.shiftCount++;
-
- stack.push(symbol);
- vstack.push(this.lexer.yytext);
- lstack.push(this.lexer.yylloc);
- stack.push(action[1]); // push state
- symbol = null;
- if (!preErrorSymbol) { // normal execution/no error
- yyleng = this.lexer.yyleng;
- yytext = this.lexer.yytext;
- yylineno = this.lexer.yylineno;
- yyloc = this.lexer.yylloc;
- if (recovering > 0)
- recovering--;
- } else { // error just occurred, resume old lookahead f/ before error
- symbol = preErrorSymbol;
- preErrorSymbol = null;
- }
- break;
-
- case 2: // reduce
- //this.reductionCount++;
-
- len = this.productions_[action[1]][1];
-
- // perform semantic action
- yyval.$ = vstack[vstack.length-len]; // default to $$ = $1
- // default location, uses first token for firsts, last for lasts
- yyval._$ = {
- first_line: lstack[lstack.length-(len||1)].first_line,
- last_line: lstack[lstack.length-1].last_line,
- first_column: lstack[lstack.length-(len||1)].first_column,
- last_column: lstack[lstack.length-1].last_column
- };
- r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
-
- if (typeof r !== 'undefined') {
- return r;
- }
-
- // pop off stack
- if (len) {
- stack = stack.slice(0,-1*len*2);
- vstack = vstack.slice(0, -1*len);
- lstack = lstack.slice(0, -1*len);
- }
-
- stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- // goto new state = table[STATE][NONTERMINAL]
- newState = table[stack[stack.length-2]][stack[stack.length-1]];
- stack.push(newState);
- break;
-
- case 3: // accept
- return true;
- }
-
- }
-
- return true;
-}};
-/* Jison generated lexer */
-var lexer = (function(){
-var lexer = ({EOF:1,
-parseError:function parseError(str, hash) {
- if (this.yy.parseError) {
- this.yy.parseError(str, hash);
- } else {
- throw new Error(str);
- }
- },
-setInput:function (input) {
- this._input = input;
- this._more = this._less = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = '';
- this.conditionStack = ['INITIAL'];
- this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};
- return this;
- },
-input:function () {
- var ch = this._input[0];
- this.yytext+=ch;
- this.yyleng++;
- this.match+=ch;
- this.matched+=ch;
- var lines = ch.match(/\n/);
- if (lines) this.yylineno++;
- this._input = this._input.slice(1);
- return ch;
- },
-unput:function (ch) {
- this._input = ch + this._input;
- return this;
- },
-more:function () {
- this._more = true;
- return this;
- },
-less:function (n) {
- this._input = this.match.slice(n) + this._input;
- },
-pastInput:function () {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
- },
-upcomingInput:function () {
- var next = this.match;
- if (next.length < 20) {
- next += this._input.substr(0, 20-next.length);
- }
- return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, "");
- },
-showPosition:function () {
- var pre = this.pastInput();
- var c = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c+"^";
- },
-next:function () {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) this.done = true;
-
- var token,
- match,
- tempMatch,
- index,
- col,
- lines;
- if (!this._more) {
- this.yytext = '';
- this.match = '';
- }
- var rules = this._currentRules();
- for (var i=0;i < rules.length; i++) {
- tempMatch = this._input.match(this.rules[rules[i]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i;
- if (!this.options.flex) break;
- }
- }
- if (match) {
- lines = match[0].match(/\n.*/g);
- if (lines) this.yylineno += lines.length;
- this.yylloc = {first_line: this.yylloc.last_line,
- last_line: this.yylineno+1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length}
- this.yytext += match[0];
- this.match += match[0];
- this.yyleng = this.yytext.length;
- this._more = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]);
- if (this.done && this._input) this.done = false;
- if (token) return token;
- else return;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(),
- {text: "", token: null, line: this.yylineno});
- }
- },
-lex:function lex() {
- var r = this.next();
- if (typeof r !== 'undefined') {
- return r;
- } else {
- return this.lex();
- }
- },
-begin:function begin(condition) {
- this.conditionStack.push(condition);
- },
-popState:function popState() {
- return this.conditionStack.pop();
- },
-_currentRules:function _currentRules() {
- return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;
- },
-topState:function () {
- return this.conditionStack[this.conditionStack.length-2];
- },
-pushState:function begin(condition) {
- this.begin(condition);
- }});
-lexer.options = {};
-lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
-
-var YYSTATE=YY_START
-switch($avoiding_name_collisions) {
-case 0:/* skip whitespace */
-break;
-case 1:return 6
-break;
-case 2:yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2); return 4
-break;
-case 3:return 17
-break;
-case 4:return 18
-break;
-case 5:return 23
-break;
-case 6:return 24
-break;
-case 7:return 22
-break;
-case 8:return 21
-break;
-case 9:return 10
-break;
-case 10:return 11
-break;
-case 11:return 8
-break;
-case 12:return 14
-break;
-case 13:return 'INVALID'
-break;
-}
-};
-lexer.rules = [/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/];
-lexer.conditions = {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13],"inclusive":true}};
-
-
-;
-return lexer;})()
-parser.lexer = lexer;
-return parser;
-})();
-if (typeof require !== 'undefined' && typeof exports !== 'undefined') {
- exports.parser = jsonlint;
- exports.parse = jsonlint.parse.bind(jsonlint);
-}
\ No newline at end of file
diff --git a/src_old/js/header.js b/src_old/js/header.js
deleted file mode 100644
index 52ef8d3..0000000
--- a/src_old/js/header.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/*!
- * jsoneditor.js
- *
- * @brief
- * JSONEditor is a web-based tool to view, edit, format, and validate JSON.
- * It has various modes such as a tree editor, a code editor, and a plain text
- * editor.
- *
- * Supported browsers: Chrome, Firefox, Safari, Opera, Internet Explorer 8+
- *
- * @license
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy
- * of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- *
- * Copyright (c) 2011-2016 Jos de Jong, http://jsoneditoronline.org
- *
- * @author Jos de Jong,
- * @version @@version
- * @date @@date
- */
\ No newline at end of file
diff --git a/src_old/js/textmode.js b/src_old/js/textmode.js
deleted file mode 100644
index 91a5741..0000000
--- a/src_old/js/textmode.js
+++ /dev/null
@@ -1,489 +0,0 @@
-'use strict';
-
-var ace;
-try {
- ace = require('./ace');
-}
-catch (err) {
- // failed to load ace, no problem, we will fall back to plain text
-}
-
-var ModeSwitcher = require('./ModeSwitcher');
-var util = require('./util');
-
-// create a mixin with the functions for text mode
-var textmode = {};
-
-var MAX_ERRORS = 3; // maximum number of displayed errors at the bottom
-
-/**
- * Create a text editor
- * @param {Element} container
- * @param {Object} [options] Object with options. available options:
- * {String} mode Available values:
- * "text" (default)
- * or "code".
- * {Number} indentation Number of indentation
- * spaces. 2 by default.
- * {function} onChange Callback method
- * triggered on change
- * {function} onModeChange Callback method
- * triggered after setMode
- * {Object} ace A custom instance of
- * Ace editor.
- * {boolean} escapeUnicode If true, unicode
- * characters are escaped.
- * false by default.
- * @private
- */
-textmode.create = function (container, options) {
- // read options
- options = options || {};
- this.options = options;
-
- // indentation
- if (options.indentation) {
- this.indentation = Number(options.indentation);
- }
- else {
- this.indentation = 2; // number of spaces
- }
-
- // grab ace from options if provided
- var _ace = options.ace ? options.ace : ace;
-
- // determine mode
- this.mode = (options.mode == 'code') ? 'code' : 'text';
- if (this.mode == 'code') {
- // verify whether Ace editor is available and supported
- if (typeof _ace === 'undefined') {
- this.mode = 'text';
- console.warn('Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.');
- }
- }
-
- // determine theme
- this.theme = options.theme || 'ace/theme/jsoneditor';
-
- var me = this;
- this.container = container;
- this.dom = {};
- this.aceEditor = undefined; // ace code editor
- this.textarea = undefined; // plain text editor (fallback when Ace is not available)
- this.validateSchema = null;
-
- // create a debounced validate function
- this._debouncedValidate = util.debounce(this.validate.bind(this), this.DEBOUNCE_INTERVAL);
-
- this.width = container.clientWidth;
- this.height = container.clientHeight;
-
- this.frame = document.createElement('div');
- this.frame.className = 'jsoneditor jsoneditor-mode-' + this.options.mode;
- this.frame.onclick = function (event) {
- // prevent default submit action when the editor is located inside a form
- event.preventDefault();
- };
- this.frame.onkeydown = function (event) {
- me._onKeyDown(event);
- };
-
- // create menu
- this.menu = document.createElement('div');
- this.menu.className = 'jsoneditor-menu';
- this.frame.appendChild(this.menu);
-
- // create format button
- var buttonFormat = document.createElement('button');
- buttonFormat.className = 'jsoneditor-format';
- buttonFormat.title = 'Format JSON data, with proper indentation and line feeds (Ctrl+\\)';
- this.menu.appendChild(buttonFormat);
- buttonFormat.onclick = function () {
- try {
- me.format();
- me._onChange();
- }
- catch (err) {
- me._onError(err);
- }
- };
-
- // create compact button
- var buttonCompact = document.createElement('button');
- buttonCompact.className = 'jsoneditor-compact';
- buttonCompact.title = 'Compact JSON data, remove all whitespaces (Ctrl+Shift+\\)';
- this.menu.appendChild(buttonCompact);
- buttonCompact.onclick = function () {
- try {
- me.compact();
- me._onChange();
- }
- catch (err) {
- me._onError(err);
- }
- };
-
- // create mode box
- if (this.options && this.options.modes && this.options.modes.length) {
- this.modeSwitcher = new ModeSwitcher(this.menu, this.options.modes, this.options.mode, function onSwitch(mode) {
- // switch mode and restore focus
- me.setMode(mode);
- me.modeSwitcher.focus();
- });
- }
-
- this.content = document.createElement('div');
- this.content.className = 'jsoneditor-outer';
- this.frame.appendChild(this.content);
-
- this.container.appendChild(this.frame);
-
- if (this.mode == 'code') {
- this.editorDom = document.createElement('div');
- this.editorDom.style.height = '100%'; // TODO: move to css
- this.editorDom.style.width = '100%'; // TODO: move to css
- this.content.appendChild(this.editorDom);
-
- var aceEditor = _ace.edit(this.editorDom);
- aceEditor.$blockScrolling = Infinity;
- aceEditor.setTheme(this.theme);
- aceEditor.setShowPrintMargin(false);
- aceEditor.setFontSize(13);
- aceEditor.getSession().setMode('ace/mode/json');
- aceEditor.getSession().setTabSize(this.indentation);
- aceEditor.getSession().setUseSoftTabs(true);
- aceEditor.getSession().setUseWrapMode(true);
- aceEditor.commands.bindKey('Ctrl-L', null); // disable Ctrl+L (is used by the browser to select the address bar)
- aceEditor.commands.bindKey('Command-L', null); // disable Ctrl+L (is used by the browser to select the address bar)
- this.aceEditor = aceEditor;
-
- // TODO: deprecated since v5.0.0. Cleanup backward compatibility some day
- if (!this.hasOwnProperty('editor')) {
- Object.defineProperty(this, 'editor', {
- get: function () {
- console.warn('Property "editor" has been renamed to "aceEditor".');
- return me.aceEditor;
- },
- set: function (aceEditor) {
- console.warn('Property "editor" has been renamed to "aceEditor".');
- me.aceEditor = aceEditor;
- }
- });
- }
-
- var poweredBy = document.createElement('a');
- poweredBy.appendChild(document.createTextNode('powered by ace'));
- poweredBy.href = 'http://ace.ajax.org';
- poweredBy.target = '_blank';
- poweredBy.className = 'jsoneditor-poweredBy';
- poweredBy.onclick = function () {
- // TODO: this anchor falls below the margin of the content,
- // therefore the normal a.href does not work. We use a click event
- // for now, but this should be fixed.
- window.open(poweredBy.href, poweredBy.target);
- };
- this.menu.appendChild(poweredBy);
-
- // register onchange event
- aceEditor.on('change', this._onChange.bind(this));
- }
- else {
- // load a plain text textarea
- var textarea = document.createElement('textarea');
- textarea.className = 'jsoneditor-text';
- textarea.spellcheck = false;
- this.content.appendChild(textarea);
- this.textarea = textarea;
-
- // register onchange event
- if (this.textarea.oninput === null) {
- this.textarea.oninput = this._onChange.bind(this);
- }
- else {
- // oninput is undefined. For IE8-
- this.textarea.onchange = this._onChange.bind(this);
- }
- }
-
- this.setSchema(this.options.schema);
-};
-
-/**
- * Handle a change:
- * - Validate JSON schema
- * - Send a callback to the onChange listener if provided
- * @private
- */
-textmode._onChange = function () {
- // validate JSON schema (if configured)
- this._debouncedValidate();
-
- // trigger the onChange callback
- if (this.options.onChange) {
- try {
- this.options.onChange();
- }
- catch (err) {
- console.error('Error in onChange callback: ', err);
- }
- }
-};
-
-/**
- * Event handler for keydown. Handles shortcut keys
- * @param {Event} event
- * @private
- */
-textmode._onKeyDown = function (event) {
- var keynum = event.which || event.keyCode;
- var handled = false;
-
- if (keynum == 220 && event.ctrlKey) {
- if (event.shiftKey) { // Ctrl+Shift+\
- this.compact();
- this._onChange();
- }
- else { // Ctrl+\
- this.format();
- this._onChange();
- }
- handled = true;
- }
-
- if (handled) {
- event.preventDefault();
- event.stopPropagation();
- }
-};
-
-/**
- * Destroy the editor. Clean up DOM, event listeners, and web workers.
- */
-textmode.destroy = function () {
- // remove old ace editor
- if (this.aceEditor) {
- this.aceEditor.destroy();
- this.aceEditor = null;
- }
-
- if (this.frame && this.container && this.frame.parentNode == this.container) {
- this.container.removeChild(this.frame);
- }
-
- if (this.modeSwitcher) {
- this.modeSwitcher.destroy();
- this.modeSwitcher = null;
- }
-
- this.textarea = null;
-
- this._debouncedValidate = null;
-};
-
-/**
- * Compact the code in the formatter
- */
-textmode.compact = function () {
- var json = this.get();
- var text = JSON.stringify(json);
- this.setText(text);
-};
-
-/**
- * Format the code in the formatter
- */
-textmode.format = function () {
- var json = this.get();
- var text = JSON.stringify(json, null, this.indentation);
- this.setText(text);
-};
-
-/**
- * Set focus to the formatter
- */
-textmode.focus = function () {
- if (this.textarea) {
- this.textarea.focus();
- }
- if (this.aceEditor) {
- this.aceEditor.focus();
- }
-};
-
-/**
- * Resize the formatter
- */
-textmode.resize = function () {
- if (this.aceEditor) {
- var force = false;
- this.aceEditor.resize(force);
- }
-};
-
-/**
- * Set json data in the formatter
- * @param {Object} json
- */
-textmode.set = function(json) {
- this.setText(JSON.stringify(json, null, this.indentation));
-};
-
-/**
- * Get json data from the formatter
- * @return {Object} json
- */
-textmode.get = function() {
- var text = this.getText();
- var json;
-
- try {
- json = util.parse(text); // this can throw an error
- }
- catch (err) {
- // try to sanitize json, replace JavaScript notation with JSON notation
- text = util.sanitize(text);
-
- // try to parse again
- json = util.parse(text); // this can throw an error
- }
-
- return json;
-};
-
-/**
- * Get the text contents of the editor
- * @return {String} jsonText
- */
-textmode.getText = function() {
- if (this.textarea) {
- return this.textarea.value;
- }
- if (this.aceEditor) {
- return this.aceEditor.getValue();
- }
- return '';
-};
-
-/**
- * Set the text contents of the editor
- * @param {String} jsonText
- */
-textmode.setText = function(jsonText) {
- var text;
-
- if (this.options.escapeUnicode === true) {
- text = util.escapeUnicodeChars(jsonText);
- }
- else {
- text = jsonText;
- }
-
- if (this.textarea) {
- this.textarea.value = text;
- }
- if (this.aceEditor) {
- // prevent emitting onChange events while setting new text
- var originalOnChange = this.options.onChange;
- this.options.onChange = null;
-
- this.aceEditor.setValue(text, -1);
-
- this.options.onChange = originalOnChange;
- }
-
- // validate JSON schema
- this.validate();
-};
-
-/**
- * Validate current JSON object against the configured JSON schema
- * Throws an exception when no JSON schema is configured
- */
-textmode.validate = function () {
- // clear all current errors
- if (this.dom.validationErrors) {
- this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors);
- this.dom.validationErrors = null;
-
- this.content.style.marginBottom = '';
- this.content.style.paddingBottom = '';
- }
-
- var doValidate = false;
- var errors = [];
- var json;
- try {
- json = this.get(); // this can fail when there is no valid json
- doValidate = true;
- }
- catch (err) {
- // no valid JSON, don't validate
- }
-
- // only validate the JSON when parsing the JSON succeeded
- if (doValidate && this.validateSchema) {
- var valid = this.validateSchema(json);
- if (!valid) {
- errors = this.validateSchema.errors.map(function (error) {
- return util.improveSchemaError(error);
- });
- }
- }
-
- if (errors.length > 0) {
- // limit the number of displayed errors
- var limit = errors.length > MAX_ERRORS;
- if (limit) {
- errors = errors.slice(0, MAX_ERRORS);
- var hidden = this.validateSchema.errors.length - MAX_ERRORS;
- errors.push('(' + hidden + ' more errors...)')
- }
-
- var validationErrors = document.createElement('div');
- validationErrors.innerHTML = '' +
- '' +
- errors.map(function (error) {
- var message;
- if (typeof error === 'string') {
- message = '' + error + ' ';
- }
- else {
- message = '' + error.dataPath + ' ' +
- '' + error.message + ' ';
- }
-
- return ' ' + message + ' '
- }).join('') +
- ' ' +
- '
';
-
- this.dom.validationErrors = validationErrors;
- this.frame.appendChild(validationErrors);
-
- var height = validationErrors.clientHeight;
- this.content.style.marginBottom = (-height) + 'px';
- this.content.style.paddingBottom = height + 'px';
- }
-
- // update the height of the ace editor
- if (this.aceEditor) {
- var force = false;
- this.aceEditor.resize(force);
- }
-};
-
-// define modes
-module.exports = [
- {
- mode: 'text',
- mixin: textmode,
- data: 'text',
- load: textmode.format
- },
- {
- mode: 'code',
- mixin: textmode,
- data: 'text',
- load: textmode.format
- }
-];
diff --git a/src_old/js/treemode.js b/src_old/js/treemode.js
deleted file mode 100644
index f36cdee..0000000
--- a/src_old/js/treemode.js
+++ /dev/null
@@ -1,1194 +0,0 @@
-'use strict';
-
-
-var Highlighter = require('./Highlighter');
-var History = require('./History');
-var SearchBox = require('./SearchBox');
-var ContextMenu = require('./ContextMenu');
-var Node = require('./Node');
-var ModeSwitcher = require('./ModeSwitcher');
-var util = require('./util');
-
-// create a mixin with the functions for tree mode
-var treemode = {};
-
-/**
- * Create a tree editor
- * @param {Element} container Container element
- * @param {Object} [options] Object with options. available options:
- * {String} mode Editor mode. Available values:
- * 'tree' (default), 'view',
- * and 'form'.
- * {Boolean} search Enable search box.
- * True by default
- * {Boolean} history Enable history (undo/redo).
- * True by default
- * {function} onChange Callback method, triggered
- * on change of contents
- * {String} name Field name for the root node.
- * {boolean} escapeUnicode If true, unicode
- * characters are escaped.
- * false by default.
- * {Object} schema A JSON Schema for validation
- * @private
- */
-treemode.create = function (container, options) {
- if (!container) {
- throw new Error('No container element provided.');
- }
- this.container = container;
- this.dom = {};
- this.highlighter = new Highlighter();
- this.selection = undefined; // will hold the last input selection
- this.multiselection = {
- nodes: []
- };
- this.validateSchema = null; // will be set in .setSchema(schema)
- this.errorNodes = [];
-
- this.node = null;
- this.focusTarget = null;
-
- this._setOptions(options);
-
- if (this.options.history && this.options.mode !== 'view') {
- this.history = new History(this);
- }
-
- this._createFrame();
- this._createTable();
-};
-
-/**
- * Destroy the editor. Clean up DOM, event listeners, and web workers.
- */
-treemode.destroy = function () {
- if (this.frame && this.container && this.frame.parentNode == this.container) {
- this.container.removeChild(this.frame);
- this.frame = null;
- }
- this.container = null;
-
- this.dom = null;
-
- this.clear();
- this.node = null;
- this.focusTarget = null;
- this.selection = null;
- this.multiselection = null;
- this.errorNodes = null;
- this.validateSchema = null;
- this._debouncedValidate = null;
-
- if (this.history) {
- this.history.destroy();
- this.history = null;
- }
-
- if (this.searchBox) {
- this.searchBox.destroy();
- this.searchBox = null;
- }
-
- if (this.modeSwitcher) {
- this.modeSwitcher.destroy();
- this.modeSwitcher = null;
- }
-};
-
-/**
- * Initialize and set default options
- * @param {Object} [options] See description in constructor
- * @private
- */
-treemode._setOptions = function (options) {
- this.options = {
- search: true,
- history: true,
- mode: 'tree',
- name: undefined, // field name of root node
- schema: null
- };
-
- // copy all options
- if (options) {
- for (var prop in options) {
- if (options.hasOwnProperty(prop)) {
- this.options[prop] = options[prop];
- }
- }
- }
-
- // compile a JSON schema validator if a JSON schema is provided
- this.setSchema(this.options.schema);
-
- // create a debounced validate function
- this._debouncedValidate = util.debounce(this.validate.bind(this), this.DEBOUNCE_INTERVAL);
-};
-
-/**
- * Set JSON object in editor
- * @param {Object | undefined} json JSON data
- * @param {String} [name] Optional field name for the root node.
- * Can also be set using setName(name).
- */
-treemode.set = function (json, name) {
- // adjust field name for root node
- if (name) {
- // TODO: deprecated since version 2.2.0. Cleanup some day.
- console.warn('Second parameter "name" is deprecated. Use setName(name) instead.');
- this.options.name = name;
- }
-
- // verify if json is valid JSON, ignore when a function
- if (json instanceof Function || (json === undefined)) {
- this.clear();
- }
- else {
- this.content.removeChild(this.table); // Take the table offline
-
- // replace the root node
- var params = {
- field: this.options.name,
- value: json
- };
- var node = new Node(this, params);
- this._setRoot(node);
-
- // validate JSON schema (if configured)
- this.validate();
-
- // expand
- var recurse = false;
- this.node.expand(recurse);
-
- this.content.appendChild(this.table); // Put the table online again
- }
-
- // TODO: maintain history, store last state and previous document
- if (this.history) {
- this.history.clear();
- }
-
- // clear search
- if (this.searchBox) {
- this.searchBox.clear();
- }
-};
-
-/**
- * Get JSON object from editor
- * @return {Object | undefined} json
- */
-treemode.get = function () {
- // remove focus from currently edited node
- if (this.focusTarget) {
- var node = Node.getNodeFromTarget(this.focusTarget);
- if (node) {
- node.blur();
- }
- }
-
- if (this.node) {
- return this.node.getValue();
- }
- else {
- return undefined;
- }
-};
-
-/**
- * Get the text contents of the editor
- * @return {String} jsonText
- */
-treemode.getText = function() {
- return JSON.stringify(this.get());
-};
-
-/**
- * Set the text contents of the editor
- * @param {String} jsonText
- */
-treemode.setText = function(jsonText) {
- this.set(util.parse(jsonText));
-};
-
-/**
- * Set a field name for the root node.
- * @param {String | undefined} name
- */
-treemode.setName = function (name) {
- this.options.name = name;
- if (this.node) {
- this.node.updateField(this.options.name);
- }
-};
-
-/**
- * Get the field name for the root node.
- * @return {String | undefined} name
- */
-treemode.getName = function () {
- return this.options.name;
-};
-
-/**
- * Set focus to the editor. Focus will be set to:
- * - the first editable field or value, or else
- * - to the expand button of the root node, or else
- * - to the context menu button of the root node, or else
- * - to the first button in the top menu
- */
-treemode.focus = function () {
- var input = this.content.querySelector('[contenteditable=true]');
- if (input) {
- input.focus();
- }
- else if (this.node.dom.expand) {
- this.node.dom.expand.focus();
- }
- else if (this.node.dom.menu) {
- this.node.dom.menu.focus();
- }
- else {
- // focus to the first button in the menu
- input = this.frame.querySelector('button');
- if (input) {
- input.focus();
- }
- }
-};
-
-/**
- * Remove the root node from the editor
- */
-treemode.clear = function () {
- if (this.node) {
- this.node.collapse();
- this.tbody.removeChild(this.node.getDom());
- delete this.node;
- }
-};
-
-/**
- * Set the root node for the json editor
- * @param {Node} node
- * @private
- */
-treemode._setRoot = function (node) {
- this.clear();
-
- this.node = node;
-
- // append to the dom
- this.tbody.appendChild(node.getDom());
-};
-
-/**
- * Search text in all nodes
- * The nodes will be expanded when the text is found one of its childs,
- * else it will be collapsed. Searches are case insensitive.
- * @param {String} text
- * @return {Object[]} results Array with nodes containing the search results
- * The result objects contains fields:
- * - {Node} node,
- * - {String} elem the dom element name where
- * the result is found ('field' or
- * 'value')
- */
-treemode.search = function (text) {
- var results;
- if (this.node) {
- this.content.removeChild(this.table); // Take the table offline
- results = this.node.search(text);
- this.content.appendChild(this.table); // Put the table online again
- }
- else {
- results = [];
- }
-
- return results;
-};
-
-/**
- * Expand all nodes
- */
-treemode.expandAll = function () {
- if (this.node) {
- this.content.removeChild(this.table); // Take the table offline
- this.node.expand();
- this.content.appendChild(this.table); // Put the table online again
- }
-};
-
-/**
- * Collapse all nodes
- */
-treemode.collapseAll = function () {
- if (this.node) {
- this.content.removeChild(this.table); // Take the table offline
- this.node.collapse();
- this.content.appendChild(this.table); // Put the table online again
- }
-};
-
-/**
- * The method onChange is called whenever a field or value is changed, created,
- * deleted, duplicated, etc.
- * @param {String} action Change action. Available values: "editField",
- * "editValue", "changeType", "appendNode",
- * "removeNode", "duplicateNode", "moveNode", "expand",
- * "collapse".
- * @param {Object} params Object containing parameters describing the change.
- * The parameters in params depend on the action (for
- * example for "editValue" the Node, old value, and new
- * value are provided). params contains all information
- * needed to undo or redo the action.
- * @private
- */
-treemode._onAction = function (action, params) {
- // add an action to the history
- if (this.history) {
- this.history.add(action, params);
- }
-
- this._onChange();
-};
-
-/**
- * Handle a change:
- * - Validate JSON schema
- * - Send a callback to the onChange listener if provided
- * @private
- */
-treemode._onChange = function () {
- // validate JSON schema (if configured)
- this._debouncedValidate();
-
- // trigger the onChange callback
- if (this.options.onChange) {
- try {
- this.options.onChange();
- }
- catch (err) {
- console.error('Error in onChange callback: ', err);
- }
- }
-};
-
-/**
- * Validate current JSON object against the configured JSON schema
- * Throws an exception when no JSON schema is configured
- */
-treemode.validate = function () {
- // clear all current errors
- if (this.errorNodes) {
- this.errorNodes.forEach(function (node) {
- node.setError(null);
- });
- }
-
- var root = this.node;
- if (!root) { // TODO: this should be redundant but is needed on mode switch
- return;
- }
-
- // check for duplicate keys
- var duplicateErrors = root.validate();
-
- // validate the JSON
- var schemaErrors = [];
- if (this.validateSchema) {
- var valid = this.validateSchema(root.getValue());
- if (!valid) {
- // apply all new errors
- schemaErrors = this.validateSchema.errors
- .map(function (error) {
- return util.improveSchemaError(error);
- })
- .map(function findNode (error) {
- return {
- node: root.findNode(error.dataPath),
- error: error
- }
- })
- .filter(function hasNode (entry) {
- return entry.node != null
- });
- }
- }
-
- // display the error in the nodes with a problem
- this.errorNodes = duplicateErrors
- .concat(schemaErrors)
- .reduce(function expandParents (all, entry) {
- // expand parents, then merge such that parents come first and
- // original entries last
- return entry.node
- .findParents()
- .map(function (parent) {
- return {
- node: parent,
- child: entry.node,
- error: {
- message: parent.type === 'object'
- ? 'Contains invalid properties' // object
- : 'Contains invalid items' // array
- }
- };
- })
- .concat(all, [entry]);
- }, [])
- // TODO: dedupe the parent nodes
- .map(function setError (entry) {
- entry.node.setError(entry.error, entry.child);
- return entry.node;
- });
-};
-
-/**
- * Refresh the rendered contents
- */
-treemode.refresh = function () {
- if (this.node) {
- this.node.updateDom({recurse: true});
- }
-};
-
-/**
- * Start autoscrolling when given mouse position is above the top of the
- * editor contents, or below the bottom.
- * @param {Number} mouseY Absolute mouse position in pixels
- */
-treemode.startAutoScroll = function (mouseY) {
- var me = this;
- var content = this.content;
- var top = util.getAbsoluteTop(content);
- var height = content.clientHeight;
- var bottom = top + height;
- var margin = 24;
- var interval = 50; // ms
-
- if ((mouseY < top + margin) && content.scrollTop > 0) {
- this.autoScrollStep = ((top + margin) - mouseY) / 3;
- }
- else if (mouseY > bottom - margin &&
- height + content.scrollTop < content.scrollHeight) {
- this.autoScrollStep = ((bottom - margin) - mouseY) / 3;
- }
- else {
- this.autoScrollStep = undefined;
- }
-
- if (this.autoScrollStep) {
- if (!this.autoScrollTimer) {
- this.autoScrollTimer = setInterval(function () {
- if (me.autoScrollStep) {
- content.scrollTop -= me.autoScrollStep;
- }
- else {
- me.stopAutoScroll();
- }
- }, interval);
- }
- }
- else {
- this.stopAutoScroll();
- }
-};
-
-/**
- * Stop auto scrolling. Only applicable when scrolling
- */
-treemode.stopAutoScroll = function () {
- if (this.autoScrollTimer) {
- clearTimeout(this.autoScrollTimer);
- delete this.autoScrollTimer;
- }
- if (this.autoScrollStep) {
- delete this.autoScrollStep;
- }
-};
-
-
-/**
- * Set the focus to an element in the editor, set text selection, and
- * set scroll position.
- * @param {Object} selection An object containing fields:
- * {Element | undefined} dom The dom element
- * which has focus
- * {Range | TextRange} range A text selection
- * {Node[]} nodes Nodes in case of multi selection
- * {Number} scrollTop Scroll position
- */
-treemode.setSelection = function (selection) {
- if (!selection) {
- return;
- }
-
- if ('scrollTop' in selection && this.content) {
- // TODO: animated scroll
- this.content.scrollTop = selection.scrollTop;
- }
- if (selection.nodes) {
- // multi-select
- this.select(selection.nodes);
- }
- if (selection.range) {
- util.setSelectionOffset(selection.range);
- }
- if (selection.dom) {
- selection.dom.focus();
- }
-};
-
-/**
- * Get the current focus
- * @return {Object} selection An object containing fields:
- * {Element | undefined} dom The dom element
- * which has focus
- * {Range | TextRange} range A text selection
- * {Node[]} nodes Nodes in case of multi selection
- * {Number} scrollTop Scroll position
- */
-treemode.getSelection = function () {
- var range = util.getSelectionOffset();
- if (range && range.container.nodeName !== 'DIV') { // filter on (editable) divs)
- range = null;
- }
-
- return {
- dom: this.focusTarget,
- range: range,
- nodes: this.multiselection.nodes.slice(0),
- scrollTop: this.content ? this.content.scrollTop : 0
- };
-};
-
-/**
- * Adjust the scroll position such that given top position is shown at 1/4
- * of the window height.
- * @param {Number} top
- * @param {function(boolean)} [callback] Callback, executed when animation is
- * finished. The callback returns true
- * when animation is finished, or false
- * when not.
- */
-treemode.scrollTo = function (top, callback) {
- var content = this.content;
- if (content) {
- var editor = this;
- // cancel any running animation
- if (editor.animateTimeout) {
- clearTimeout(editor.animateTimeout);
- delete editor.animateTimeout;
- }
- if (editor.animateCallback) {
- editor.animateCallback(false);
- delete editor.animateCallback;
- }
-
- // calculate final scroll position
- var height = content.clientHeight;
- var bottom = content.scrollHeight - height;
- var finalScrollTop = Math.min(Math.max(top - height / 4, 0), bottom);
-
- // animate towards the new scroll position
- var animate = function () {
- var scrollTop = content.scrollTop;
- var diff = (finalScrollTop - scrollTop);
- if (Math.abs(diff) > 3) {
- content.scrollTop += diff / 3;
- editor.animateCallback = callback;
- editor.animateTimeout = setTimeout(animate, 50);
- }
- else {
- // finished
- if (callback) {
- callback(true);
- }
- content.scrollTop = finalScrollTop;
- delete editor.animateTimeout;
- delete editor.animateCallback;
- }
- };
- animate();
- }
- else {
- if (callback) {
- callback(false);
- }
- }
-};
-
-/**
- * Create main frame
- * @private
- */
-treemode._createFrame = function () {
- // create the frame
- this.frame = document.createElement('div');
- this.frame.className = 'jsoneditor jsoneditor-mode-' + this.options.mode;
- this.container.appendChild(this.frame);
-
- // create one global event listener to handle all events from all nodes
- var editor = this;
- function onEvent(event) {
- // when switching to mode "code" or "text" via the menu, some events
- // are still fired whilst the _onEvent methods is already removed.
- if (editor._onEvent) {
- editor._onEvent(event);
- }
- }
- this.frame.onclick = function (event) {
- var target = event.target;// || event.srcElement;
-
- onEvent(event);
-
- // prevent default submit action of buttons when editor is located
- // inside a form
- if (target.nodeName == 'BUTTON') {
- event.preventDefault();
- }
- };
- this.frame.oninput = onEvent;
- this.frame.onchange = onEvent;
- this.frame.onkeydown = onEvent;
- this.frame.onkeyup = onEvent;
- this.frame.oncut = onEvent;
- this.frame.onpaste = onEvent;
- this.frame.onmousedown = onEvent;
- this.frame.onmouseup = onEvent;
- this.frame.onmouseover = onEvent;
- this.frame.onmouseout = onEvent;
- // Note: focus and blur events do not propagate, therefore they defined
- // using an eventListener with useCapture=true
- // see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html
- util.addEventListener(this.frame, 'focus', onEvent, true);
- util.addEventListener(this.frame, 'blur', onEvent, true);
- this.frame.onfocusin = onEvent; // for IE
- this.frame.onfocusout = onEvent; // for IE
-
- // create menu
- this.menu = document.createElement('div');
- this.menu.className = 'jsoneditor-menu';
- this.frame.appendChild(this.menu);
-
- // create expand all button
- var expandAll = document.createElement('button');
- expandAll.className = 'jsoneditor-expand-all';
- expandAll.title = 'Expand all fields';
- expandAll.onclick = function () {
- editor.expandAll();
- };
- this.menu.appendChild(expandAll);
-
- // create expand all button
- var collapseAll = document.createElement('button');
- collapseAll.title = 'Collapse all fields';
- collapseAll.className = 'jsoneditor-collapse-all';
- collapseAll.onclick = function () {
- editor.collapseAll();
- };
- this.menu.appendChild(collapseAll);
-
- // create undo/redo buttons
- if (this.history) {
- // create undo button
- var undo = document.createElement('button');
- undo.className = 'jsoneditor-undo jsoneditor-separator';
- undo.title = 'Undo last action (Ctrl+Z)';
- undo.onclick = function () {
- editor._onUndo();
- };
- this.menu.appendChild(undo);
- this.dom.undo = undo;
-
- // create redo button
- var redo = document.createElement('button');
- redo.className = 'jsoneditor-redo';
- redo.title = 'Redo (Ctrl+Shift+Z)';
- redo.onclick = function () {
- editor._onRedo();
- };
- this.menu.appendChild(redo);
- this.dom.redo = redo;
-
- // register handler for onchange of history
- this.history.onChange = function () {
- undo.disabled = !editor.history.canUndo();
- redo.disabled = !editor.history.canRedo();
- };
- this.history.onChange();
- }
-
- // create mode box
- if (this.options && this.options.modes && this.options.modes.length) {
- var me = this;
- this.modeSwitcher = new ModeSwitcher(this.menu, this.options.modes, this.options.mode, function onSwitch(mode) {
- me.modeSwitcher.destroy();
-
- // switch mode and restore focus
- me.setMode(mode);
- me.modeSwitcher.focus();
- });
- }
-
- // create search box
- if (this.options.search) {
- this.searchBox = new SearchBox(this, this.menu);
- }
-};
-
-/**
- * Perform an undo action
- * @private
- */
-treemode._onUndo = function () {
- if (this.history) {
- // undo last action
- this.history.undo();
-
- // fire change event
- this._onChange();
- }
-};
-
-/**
- * Perform a redo action
- * @private
- */
-treemode._onRedo = function () {
- if (this.history) {
- // redo last action
- this.history.redo();
-
- // fire change event
- this._onChange();
- }
-};
-
-/**
- * Event handler
- * @param event
- * @private
- */
-treemode._onEvent = function (event) {
- if (event.type == 'keydown') {
- this._onKeyDown(event);
- }
-
- if (event.type == 'focus') {
- this.focusTarget = event.target;
- }
-
- if (event.type == 'mousedown') {
- this._startDragDistance(event);
- }
- if (event.type == 'mousemove' || event.type == 'mouseup' || event.type == 'click') {
- this._updateDragDistance(event);
- }
-
- var node = Node.getNodeFromTarget(event.target);
-
- if (node && node.selected) {
- if (event.type == 'click') {
- if (event.target == node.dom.menu) {
- this.showContextMenu(event.target);
-
- // stop propagation (else we will open the context menu of a single node)
- return;
- }
-
- // deselect a multi selection
- if (!event.hasMoved) {
- this.deselect();
- }
- }
-
- if (event.type == 'mousedown') {
- // drag multiple nodes
- Node.onDragStart(this.multiselection.nodes, event);
- }
- }
- else {
- if (event.type == 'mousedown') {
- this.deselect();
-
- if (node && event.target == node.dom.drag) {
- // drag a singe node
- Node.onDragStart(node, event);
- }
- else if (!node || (event.target != node.dom.field && event.target != node.dom.value && event.target != node.dom.select)) {
- // select multiple nodes
- this._onMultiSelectStart(event);
- }
- }
- }
-
- if (node) {
- node.onEvent(event);
- }
-};
-
-treemode._startDragDistance = function (event) {
- this.dragDistanceEvent = {
- initialTarget: event.target,
- initialPageX: event.pageX,
- initialPageY: event.pageY,
- dragDistance: 0,
- hasMoved: false
- };
-};
-
-treemode._updateDragDistance = function (event) {
- if (!this.dragDistanceEvent) {
- this._startDragDistance(event);
- }
-
- var diffX = event.pageX - this.dragDistanceEvent.initialPageX;
- var diffY = event.pageY - this.dragDistanceEvent.initialPageY;
-
- this.dragDistanceEvent.dragDistance = Math.sqrt(diffX * diffX + diffY * diffY);
- this.dragDistanceEvent.hasMoved =
- this.dragDistanceEvent.hasMoved || this.dragDistanceEvent.dragDistance > 10;
-
- event.dragDistance = this.dragDistanceEvent.dragDistance;
- event.hasMoved = this.dragDistanceEvent.hasMoved;
-
- return event.dragDistance;
-};
-
-/**
- * Start multi selection of nodes by dragging the mouse
- * @param event
- * @private
- */
-treemode._onMultiSelectStart = function (event) {
- var node = Node.getNodeFromTarget(event.target);
-
- if (this.options.mode !== 'tree' || this.options.onEditable !== undefined) {
- // dragging not allowed in modes 'view' and 'form'
- // TODO: allow multiselection of items when option onEditable is specified
- return;
- }
-
- this.multiselection = {
- start: node || null,
- end: null,
- nodes: []
- };
-
- this._startDragDistance(event);
-
- var editor = this;
- if (!this.mousemove) {
- this.mousemove = util.addEventListener(window, 'mousemove', function (event) {
- editor._onMultiSelect(event);
- });
- }
- if (!this.mouseup) {
- this.mouseup = util.addEventListener(window, 'mouseup', function (event ) {
- editor._onMultiSelectEnd(event);
- });
- }
-
-};
-
-/**
- * Multiselect nodes by dragging
- * @param event
- * @private
- */
-treemode._onMultiSelect = function (event) {
- event.preventDefault();
-
- this._updateDragDistance(event);
- if (!event.hasMoved) {
- return;
- }
-
- var node = Node.getNodeFromTarget(event.target);
-
- if (node) {
- if (this.multiselection.start == null) {
- this.multiselection.start = node;
- }
- this.multiselection.end = node;
- }
-
- // deselect previous selection
- this.deselect();
-
- // find the selected nodes in the range from first to last
- var start = this.multiselection.start;
- var end = this.multiselection.end || this.multiselection.start;
- if (start && end) {
- // find the top level childs, all having the same parent
- this.multiselection.nodes = this._findTopLevelNodes(start, end);
- this.select(this.multiselection.nodes);
- }
-};
-
-/**
- * End of multiselect nodes by dragging
- * @param event
- * @private
- */
-treemode._onMultiSelectEnd = function (event) {
- // set focus to the context menu button of the first node
- if (this.multiselection.nodes[0]) {
- this.multiselection.nodes[0].dom.menu.focus();
- }
-
- this.multiselection.start = null;
- this.multiselection.end = null;
-
- // cleanup global event listeners
- if (this.mousemove) {
- util.removeEventListener(window, 'mousemove', this.mousemove);
- delete this.mousemove;
- }
- if (this.mouseup) {
- util.removeEventListener(window, 'mouseup', this.mouseup);
- delete this.mouseup;
- }
-};
-
-/**
- * deselect currently selected nodes
- * @param {boolean} [clearStartAndEnd=false] If true, the `start` and `end`
- * state is cleared too.
- */
-treemode.deselect = function (clearStartAndEnd) {
- this.multiselection.nodes.forEach(function (node) {
- node.setSelected(false);
- });
- this.multiselection.nodes = [];
-
- if (clearStartAndEnd) {
- this.multiselection.start = null;
- this.multiselection.end = null;
- }
-};
-
-/**
- * select nodes
- * @param {Node[] | Node} nodes
- */
-treemode.select = function (nodes) {
- if (!Array.isArray(nodes)) {
- return this.select([nodes]);
- }
-
- if (nodes) {
- this.deselect();
-
- this.multiselection.nodes = nodes.slice(0);
-
- var first = nodes[0];
- nodes.forEach(function (node) {
- node.setSelected(true, node === first);
- });
- }
-};
-
-/**
- * From two arbitrary selected nodes, find their shared parent node.
- * From that parent node, select the two child nodes in the brances going to
- * nodes `start` and `end`, and select all childs in between.
- * @param {Node} start
- * @param {Node} end
- * @return {Array.} Returns an ordered list with child nodes
- * @private
- */
-treemode._findTopLevelNodes = function (start, end) {
- var startPath = start.getNodePath();
- var endPath = end.getNodePath();
- var i = 0;
- while (i < startPath.length && startPath[i] === endPath[i]) {
- i++;
- }
- var root = startPath[i - 1];
- var startChild = startPath[i];
- var endChild = endPath[i];
-
- if (!startChild || !endChild) {
- if (root.parent) {
- // startChild is a parent of endChild or vice versa
- startChild = root;
- endChild = root;
- root = root.parent
- }
- else {
- // we have selected the root node (which doesn't have a parent)
- startChild = root.childs[0];
- endChild = root.childs[root.childs.length - 1];
- }
- }
-
- if (root && startChild && endChild) {
- var startIndex = root.childs.indexOf(startChild);
- var endIndex = root.childs.indexOf(endChild);
- var firstIndex = Math.min(startIndex, endIndex);
- var lastIndex = Math.max(startIndex, endIndex);
-
- return root.childs.slice(firstIndex, lastIndex + 1);
- }
- else {
- return [];
- }
-};
-
-/**
- * Event handler for keydown. Handles shortcut keys
- * @param {Event} event
- * @private
- */
-treemode._onKeyDown = function (event) {
- var keynum = event.which || event.keyCode;
- var ctrlKey = event.ctrlKey;
- var shiftKey = event.shiftKey;
- var handled = false;
-
- if (keynum == 9) { // Tab or Shift+Tab
- var me = this;
- setTimeout(function () {
- // select all text when moving focus to an editable div
- util.selectContentEditable(me.focusTarget);
- }, 0);
- }
-
- if (this.searchBox) {
- if (ctrlKey && keynum == 70) { // Ctrl+F
- this.searchBox.dom.search.focus();
- this.searchBox.dom.search.select();
- handled = true;
- }
- else if (keynum == 114 || (ctrlKey && keynum == 71)) { // F3 or Ctrl+G
- var focus = true;
- if (!shiftKey) {
- // select next search result (F3 or Ctrl+G)
- this.searchBox.next(focus);
- }
- else {
- // select previous search result (Shift+F3 or Ctrl+Shift+G)
- this.searchBox.previous(focus);
- }
-
- handled = true;
- }
- }
-
- if (this.history) {
- if (ctrlKey && !shiftKey && keynum == 90) { // Ctrl+Z
- // undo
- this._onUndo();
- handled = true;
- }
- else if (ctrlKey && shiftKey && keynum == 90) { // Ctrl+Shift+Z
- // redo
- this._onRedo();
- handled = true;
- }
- }
-
- if (handled) {
- event.preventDefault();
- event.stopPropagation();
- }
-};
-
-/**
- * Create main table
- * @private
- */
-treemode._createTable = function () {
- var contentOuter = document.createElement('div');
- contentOuter.className = 'jsoneditor-outer';
- this.contentOuter = contentOuter;
-
- this.content = document.createElement('div');
- this.content.className = 'jsoneditor-tree';
- contentOuter.appendChild(this.content);
-
- this.table = document.createElement('table');
- this.table.className = 'jsoneditor-tree';
- this.content.appendChild(this.table);
-
- // create colgroup where the first two columns don't have a fixed
- // width, and the edit columns do have a fixed width
- var col;
- this.colgroupContent = document.createElement('colgroup');
- if (this.options.mode === 'tree') {
- col = document.createElement('col');
- col.width = "24px";
- this.colgroupContent.appendChild(col);
- }
- col = document.createElement('col');
- col.width = "24px";
- this.colgroupContent.appendChild(col);
- col = document.createElement('col');
- this.colgroupContent.appendChild(col);
- this.table.appendChild(this.colgroupContent);
-
- this.tbody = document.createElement('tbody');
- this.table.appendChild(this.tbody);
-
- this.frame.appendChild(contentOuter);
-};
-
-/**
- * Show a contextmenu for this node.
- * Used for multiselection
- * @param {HTMLElement} anchor Anchor element to attache the context menu to.
- * @param {function} [onClose] Callback method called when the context menu
- * is being closed.
- */
-treemode.showContextMenu = function (anchor, onClose) {
- var items = [];
- var editor = this;
-
- // create duplicate button
- items.push({
- text: 'Duplicate',
- title: 'Duplicate selected fields (Ctrl+D)',
- className: 'jsoneditor-duplicate',
- click: function () {
- Node.onDuplicate(editor.multiselection.nodes);
- }
- });
-
- // create remove button
- items.push({
- text: 'Remove',
- title: 'Remove selected fields (Ctrl+Del)',
- className: 'jsoneditor-remove',
- click: function () {
- Node.onRemove(editor.multiselection.nodes);
- }
- });
-
- var menu = new ContextMenu(items, {close: onClose});
- menu.show(anchor, this.content);
-};
-
-
-// define modes
-module.exports = [
- {
- mode: 'tree',
- mixin: treemode,
- data: 'json'
- },
- {
- mode: 'view',
- mixin: treemode,
- data: 'json'
- },
- {
- mode: 'form',
- mixin: treemode,
- data: 'json'
- }
-];
diff --git a/src_old/js/util.js b/src_old/js/util.js
deleted file mode 100644
index 1c72bda..0000000
--- a/src_old/js/util.js
+++ /dev/null
@@ -1,772 +0,0 @@
-'use strict';
-
-var jsonlint = require('./assets/jsonlint/jsonlint');
-
-/**
- * Parse JSON using the parser built-in in the browser.
- * On exception, the jsonString is validated and a detailed error is thrown.
- * @param {String} jsonString
- * @return {JSON} json
- */
-exports.parse = function parse(jsonString) {
- try {
- return JSON.parse(jsonString);
- }
- catch (err) {
- // try to throw a more detailed error message using validate
- exports.validate(jsonString);
-
- // rethrow the original error
- throw err;
- }
-};
-
-/**
- * Sanitize a JSON-like string containing. For example changes JavaScript
- * notation into JSON notation.
- * This function for example changes a string like "{a: 2, 'b': {c: 'd'}"
- * into '{"a": 2, "b": {"c": "d"}'
- * @param {string} jsString
- * @returns {string} json
- */
-exports.sanitize = function (jsString) {
- // escape all single and double quotes inside strings
- var chars = [];
- var i = 0;
-
- //If JSON starts with a function (characters/digits/"_-"), remove this function.
- //This is useful for "stripping" JSONP objects to become JSON
- //For example: /* some comment */ function_12321321 ( [{"a":"b"}] ); => [{"a":"b"}]
- var match = jsString.match(/^\s*(\/\*(.|[\r\n])*?\*\/)?\s*[\da-zA-Z_$]+\s*\(([\s\S]*)\)\s*;?\s*$/);
- if (match) {
- jsString = match[3];
- }
-
- // helper functions to get the current/prev/next character
- function curr () { return jsString.charAt(i); }
- function next() { return jsString.charAt(i + 1); }
- function prev() { return jsString.charAt(i - 1); }
-
- // get the last parsed non-whitespace character
- function lastNonWhitespace () {
- var p = chars.length - 1;
-
- while (p >= 0) {
- var pp = chars[p];
- if (pp !== ' ' && pp !== '\n' && pp !== '\r' && pp !== '\t') { // non whitespace
- return pp;
- }
- p--;
- }
-
- return '';
- }
-
- // skip a block comment '/* ... */'
- function skipBlockComment () {
- i += 2;
- while (i < jsString.length && (curr() !== '*' || next() !== '/')) {
- i++;
- }
- i += 2;
- }
-
- // skip a comment '// ...'
- function skipComment () {
- i += 2;
- while (i < jsString.length && (curr() !== '\n')) {
- i++;
- }
- }
-
- // parse single or double quoted string
- function parseString(quote) {
- chars.push('"');
- i++;
- var c = curr();
- while (i < jsString.length && c !== quote) {
- if (c === '"' && prev() !== '\\') {
- // unescaped double quote, escape it
- chars.push('\\');
- }
-
- // handle escape character
- if (c === '\\') {
- i++;
- c = curr();
-
- // remove the escape character when followed by a single quote ', not needed
- if (c !== '\'') {
- chars.push('\\');
- }
- }
- chars.push(c);
-
- i++;
- c = curr();
- }
- if (c === quote) {
- chars.push('"');
- i++;
- }
- }
-
- // parse an unquoted key
- function parseKey() {
- var specialValues = ['null', 'true', 'false'];
- var key = '';
- var c = curr();
-
- var regexp = /[a-zA-Z_$\d]/; // letter, number, underscore, dollar character
- while (regexp.test(c)) {
- key += c;
- i++;
- c = curr();
- }
-
- if (specialValues.indexOf(key) === -1) {
- chars.push('"' + key + '"');
- }
- else {
- chars.push(key);
- }
- }
-
- while(i < jsString.length) {
- var c = curr();
-
- if (c === '/' && next() === '*') {
- skipBlockComment();
- }
- else if (c === '/' && next() === '/') {
- skipComment();
- }
- else if (c === '\'' || c === '"') {
- parseString(c);
- }
- else if (/[a-zA-Z_$]/.test(c) && ['{', ','].indexOf(lastNonWhitespace()) !== -1) {
- // an unquoted object key (like a in '{a:2}')
- parseKey();
- }
- else {
- chars.push(c);
- i++;
- }
- }
-
- return chars.join('');
-};
-
-/**
- * Escape unicode characters.
- * For example input '\u2661' (length 1) will output '\\u2661' (length 5).
- * @param {string} text
- * @return {string}
- */
-exports.escapeUnicodeChars = function (text) {
- // see https://www.wikiwand.com/en/UTF-16
- // note: we leave surrogate pairs as two individual chars,
- // as JSON doesn't interpret them as a single unicode char.
- return text.replace(/[\u007F-\uFFFF]/g, function(c) {
- return '\\u'+('0000' + c.charCodeAt(0).toString(16)).slice(-4);
- })
-};
-
-/**
- * Validate a string containing a JSON object
- * This method uses JSONLint to validate the String. If JSONLint is not
- * available, the built-in JSON parser of the browser is used.
- * @param {String} jsonString String with an (invalid) JSON object
- * @throws Error
- */
-exports.validate = function validate(jsonString) {
- if (typeof(jsonlint) != 'undefined') {
- jsonlint.parse(jsonString);
- }
- else {
- JSON.parse(jsonString);
- }
-};
-
-/**
- * Extend object a with the properties of object b
- * @param {Object} a
- * @param {Object} b
- * @return {Object} a
- */
-exports.extend = function extend(a, b) {
- for (var prop in b) {
- if (b.hasOwnProperty(prop)) {
- a[prop] = b[prop];
- }
- }
- return a;
-};
-
-/**
- * Remove all properties from object a
- * @param {Object} a
- * @return {Object} a
- */
-exports.clear = function clear (a) {
- for (var prop in a) {
- if (a.hasOwnProperty(prop)) {
- delete a[prop];
- }
- }
- return a;
-};
-
-/**
- * Get the type of an object
- * @param {*} object
- * @return {String} type
- */
-exports.type = function type (object) {
- if (object === null) {
- return 'null';
- }
- if (object === undefined) {
- return 'undefined';
- }
- if ((object instanceof Number) || (typeof object === 'number')) {
- return 'number';
- }
- if ((object instanceof String) || (typeof object === 'string')) {
- return 'string';
- }
- if ((object instanceof Boolean) || (typeof object === 'boolean')) {
- return 'boolean';
- }
- if ((object instanceof RegExp) || (typeof object === 'regexp')) {
- return 'regexp';
- }
- if (exports.isArray(object)) {
- return 'array';
- }
-
- return 'object';
-};
-
-/**
- * Test whether a text contains a url (matches when a string starts
- * with 'http://*' or 'https://*' and has no whitespace characters)
- * @param {String} text
- */
-var isUrlRegex = /^https?:\/\/\S+$/;
-exports.isUrl = function isUrl (text) {
- return (typeof text == 'string' || text instanceof String) &&
- isUrlRegex.test(text);
-};
-
-/**
- * Tes whether given object is an Array
- * @param {*} obj
- * @returns {boolean} returns true when obj is an array
- */
-exports.isArray = function (obj) {
- return Object.prototype.toString.call(obj) === '[object Array]';
-};
-
-/**
- * Retrieve the absolute left value of a DOM element
- * @param {Element} elem A dom element, for example a div
- * @return {Number} left The absolute left position of this element
- * in the browser page.
- */
-exports.getAbsoluteLeft = function getAbsoluteLeft(elem) {
- var rect = elem.getBoundingClientRect();
- return rect.left + window.pageXOffset || document.scrollLeft || 0;
-};
-
-/**
- * Retrieve the absolute top value of a DOM element
- * @param {Element} elem A dom element, for example a div
- * @return {Number} top The absolute top position of this element
- * in the browser page.
- */
-exports.getAbsoluteTop = function getAbsoluteTop(elem) {
- var rect = elem.getBoundingClientRect();
- return rect.top + window.pageYOffset || document.scrollTop || 0;
-};
-
-/**
- * add a className to the given elements style
- * @param {Element} elem
- * @param {String} className
- */
-exports.addClassName = function addClassName(elem, className) {
- var classes = elem.className.split(' ');
- if (classes.indexOf(className) == -1) {
- classes.push(className); // add the class to the array
- elem.className = classes.join(' ');
- }
-};
-
-/**
- * add a className to the given elements style
- * @param {Element} elem
- * @param {String} className
- */
-exports.removeClassName = function removeClassName(elem, className) {
- var classes = elem.className.split(' ');
- var index = classes.indexOf(className);
- if (index != -1) {
- classes.splice(index, 1); // remove the class from the array
- elem.className = classes.join(' ');
- }
-};
-
-/**
- * Strip the formatting from the contents of a div
- * the formatting from the div itself is not stripped, only from its childs.
- * @param {Element} divElement
- */
-exports.stripFormatting = function stripFormatting(divElement) {
- var childs = divElement.childNodes;
- for (var i = 0, iMax = childs.length; i < iMax; i++) {
- var child = childs[i];
-
- // remove the style
- if (child.style) {
- // TODO: test if child.attributes does contain style
- child.removeAttribute('style');
- }
-
- // remove all attributes
- var attributes = child.attributes;
- if (attributes) {
- for (var j = attributes.length - 1; j >= 0; j--) {
- var attribute = attributes[j];
- if (attribute.specified === true) {
- child.removeAttribute(attribute.name);
- }
- }
- }
-
- // recursively strip childs
- exports.stripFormatting(child);
- }
-};
-
-/**
- * Set focus to the end of an editable div
- * code from Nico Burns
- * http://stackoverflow.com/users/140293/nico-burns
- * http://stackoverflow.com/questions/1125292/how-to-move-cursor-to-end-of-contenteditable-entity
- * @param {Element} contentEditableElement A content editable div
- */
-exports.setEndOfContentEditable = function setEndOfContentEditable(contentEditableElement) {
- var range, selection;
- if(document.createRange) {
- range = document.createRange();//Create a range (a range is a like the selection but invisible)
- range.selectNodeContents(contentEditableElement);//Select the entire contents of the element with the range
- range.collapse(false);//collapse the range to the end point. false means collapse to end rather than the start
- selection = window.getSelection();//get the selection object (allows you to change selection)
- selection.removeAllRanges();//remove any selections already made
- selection.addRange(range);//make the range you have just created the visible selection
- }
-};
-
-/**
- * Select all text of a content editable div.
- * http://stackoverflow.com/a/3806004/1262753
- * @param {Element} contentEditableElement A content editable div
- */
-exports.selectContentEditable = function selectContentEditable(contentEditableElement) {
- if (!contentEditableElement || contentEditableElement.nodeName != 'DIV') {
- return;
- }
-
- var sel, range;
- if (window.getSelection && document.createRange) {
- range = document.createRange();
- range.selectNodeContents(contentEditableElement);
- sel = window.getSelection();
- sel.removeAllRanges();
- sel.addRange(range);
- }
-};
-
-/**
- * Get text selection
- * http://stackoverflow.com/questions/4687808/contenteditable-selected-text-save-and-restore
- * @return {Range | TextRange | null} range
- */
-exports.getSelection = function getSelection() {
- if (window.getSelection) {
- var sel = window.getSelection();
- if (sel.getRangeAt && sel.rangeCount) {
- return sel.getRangeAt(0);
- }
- }
- return null;
-};
-
-/**
- * Set text selection
- * http://stackoverflow.com/questions/4687808/contenteditable-selected-text-save-and-restore
- * @param {Range | TextRange | null} range
- */
-exports.setSelection = function setSelection(range) {
- if (range) {
- if (window.getSelection) {
- var sel = window.getSelection();
- sel.removeAllRanges();
- sel.addRange(range);
- }
- }
-};
-
-/**
- * Get selected text range
- * @return {Object} params object containing parameters:
- * {Number} startOffset
- * {Number} endOffset
- * {Element} container HTML element holding the
- * selected text element
- * Returns null if no text selection is found
- */
-exports.getSelectionOffset = function getSelectionOffset() {
- var range = exports.getSelection();
-
- if (range && 'startOffset' in range && 'endOffset' in range &&
- range.startContainer && (range.startContainer == range.endContainer)) {
- return {
- startOffset: range.startOffset,
- endOffset: range.endOffset,
- container: range.startContainer.parentNode
- };
- }
-
- return null;
-};
-
-/**
- * Set selected text range in given element
- * @param {Object} params An object containing:
- * {Element} container
- * {Number} startOffset
- * {Number} endOffset
- */
-exports.setSelectionOffset = function setSelectionOffset(params) {
- if (document.createRange && window.getSelection) {
- var selection = window.getSelection();
- if(selection) {
- var range = document.createRange();
-
- if (!params.container.firstChild) {
- params.container.appendChild(document.createTextNode(''));
- }
-
- // TODO: do not suppose that the first child of the container is a textnode,
- // but recursively find the textnodes
- range.setStart(params.container.firstChild, params.startOffset);
- range.setEnd(params.container.firstChild, params.endOffset);
-
- exports.setSelection(range);
- }
- }
-};
-
-/**
- * Get the inner text of an HTML element (for example a div element)
- * @param {Element} element
- * @param {Object} [buffer]
- * @return {String} innerText
- */
-exports.getInnerText = function getInnerText(element, buffer) {
- var first = (buffer == undefined);
- if (first) {
- buffer = {
- 'text': '',
- 'flush': function () {
- var text = this.text;
- this.text = '';
- return text;
- },
- 'set': function (text) {
- this.text = text;
- }
- };
- }
-
- // text node
- if (element.nodeValue) {
- return buffer.flush() + element.nodeValue;
- }
-
- // divs or other HTML elements
- if (element.hasChildNodes()) {
- var childNodes = element.childNodes;
- var innerText = '';
-
- for (var i = 0, iMax = childNodes.length; i < iMax; i++) {
- var child = childNodes[i];
-
- if (child.nodeName == 'DIV' || child.nodeName == 'P') {
- var prevChild = childNodes[i - 1];
- var prevName = prevChild ? prevChild.nodeName : undefined;
- if (prevName && prevName != 'DIV' && prevName != 'P' && prevName != 'BR') {
- innerText += '\n';
- buffer.flush();
- }
- innerText += exports.getInnerText(child, buffer);
- buffer.set('\n');
- }
- else if (child.nodeName == 'BR') {
- innerText += buffer.flush();
- buffer.set('\n');
- }
- else {
- innerText += exports.getInnerText(child, buffer);
- }
- }
-
- return innerText;
- }
- else {
- if (element.nodeName == 'P' && exports.getInternetExplorerVersion() != -1) {
- // On Internet Explorer, a with hasChildNodes()==false is
- // rendered with a new line. Note that a
with
- // hasChildNodes()==true is rendered without a new line
- // Other browsers always ensure there is a inside the
,
- // and if not, the
does not render a new line
- return buffer.flush();
- }
- }
-
- // br or unknown
- return '';
-};
-
-/**
- * Returns the version of Internet Explorer or a -1
- * (indicating the use of another browser).
- * Source: http://msdn.microsoft.com/en-us/library/ms537509(v=vs.85).aspx
- * @return {Number} Internet Explorer version, or -1 in case of an other browser
- */
-exports.getInternetExplorerVersion = function getInternetExplorerVersion() {
- if (_ieVersion == -1) {
- var rv = -1; // Return value assumes failure.
- if (navigator.appName == 'Microsoft Internet Explorer')
- {
- var ua = navigator.userAgent;
- var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
- if (re.exec(ua) != null) {
- rv = parseFloat( RegExp.$1 );
- }
- }
-
- _ieVersion = rv;
- }
-
- return _ieVersion;
-};
-
-/**
- * Test whether the current browser is Firefox
- * @returns {boolean} isFirefox
- */
-exports.isFirefox = function isFirefox () {
- return (navigator.userAgent.indexOf("Firefox") != -1);
-};
-
-/**
- * cached internet explorer version
- * @type {Number}
- * @private
- */
-var _ieVersion = -1;
-
-/**
- * Add and event listener. Works for all browsers
- * @param {Element} element An html element
- * @param {string} action The action, for example "click",
- * without the prefix "on"
- * @param {function} listener The callback function to be executed
- * @param {boolean} [useCapture] false by default
- * @return {function} the created event listener
- */
-exports.addEventListener = function addEventListener(element, action, listener, useCapture) {
- if (element.addEventListener) {
- if (useCapture === undefined)
- useCapture = false;
-
- if (action === "mousewheel" && exports.isFirefox()) {
- action = "DOMMouseScroll"; // For Firefox
- }
-
- element.addEventListener(action, listener, useCapture);
- return listener;
- } else if (element.attachEvent) {
- // Old IE browsers
- var f = function () {
- return listener.call(element, window.event);
- };
- element.attachEvent("on" + action, f);
- return f;
- }
-};
-
-/**
- * Remove an event listener from an element
- * @param {Element} element An html dom element
- * @param {string} action The name of the event, for example "mousedown"
- * @param {function} listener The listener function
- * @param {boolean} [useCapture] false by default
- */
-exports.removeEventListener = function removeEventListener(element, action, listener, useCapture) {
- if (element.removeEventListener) {
- if (useCapture === undefined)
- useCapture = false;
-
- if (action === "mousewheel" && exports.isFirefox()) {
- action = "DOMMouseScroll"; // For Firefox
- }
-
- element.removeEventListener(action, listener, useCapture);
- } else if (element.detachEvent) {
- // Old IE browsers
- element.detachEvent("on" + action, listener);
- }
-};
-
-/**
- * Parse a JSON path like '.items[3].name' into an array
- * @param {string} jsonPath
- * @return {Array}
- */
-exports.parsePath = function parsePath(jsonPath) {
- var prop, remainder;
-
- if (jsonPath.length === 0) {
- return [];
- }
-
- // find a match like '.prop'
- var match = jsonPath.match(/^\.(\w+)/);
- if (match) {
- prop = match[1];
- remainder = jsonPath.substr(prop.length + 1);
- }
- else if (jsonPath[0] === '[') {
- // find a match like
- var end = jsonPath.indexOf(']');
- if (end === -1) {
- throw new SyntaxError('Character ] expected in path');
- }
- if (end === 1) {
- throw new SyntaxError('Index expected after [');
- }
-
- var value = jsonPath.substring(1, end);
- prop = value === '*' ? value : JSON.parse(value); // parse string and number
- remainder = jsonPath.substr(end + 1);
- }
- else {
- throw new SyntaxError('Failed to parse path');
- }
-
- return [prop].concat(parsePath(remainder))
-};
-
-/**
- * Improve the error message of a JSON schema error
- * @param {Object} error
- * @return {Object} The error
- */
-exports.improveSchemaError = function (error) {
- if (error.keyword === 'enum' && Array.isArray(error.schema)) {
- var enums = error.schema;
- if (enums) {
- enums = enums.map(function (value) {
- return JSON.stringify(value);
- });
-
- if (enums.length > 5) {
- var more = ['(' + (enums.length - 5) + ' more...)'];
- enums = enums.slice(0, 5);
- enums.push(more);
- }
- error.message = 'should be equal to one of: ' + enums.join(', ');
- }
- }
-
- if (error.keyword === 'additionalProperties') {
- error.message = 'should NOT have additional property: ' + error.params.additionalProperty;
- }
-
- return error;
-};
-
-/**
- * Test whether the child rect fits completely inside the parent rect.
- * @param {ClientRect} parent
- * @param {ClientRect} child
- * @param {number} margin
- */
-exports.insideRect = function (parent, child, margin) {
- var _margin = margin !== undefined ? margin : 0;
- return child.left - _margin >= parent.left
- && child.right + _margin <= parent.right
- && child.top - _margin >= parent.top
- && child.bottom + _margin <= parent.bottom;
-};
-
-/**
- * Returns a function, that, as long as it continues to be invoked, will not
- * be triggered. The function will be called after it stops being called for
- * N milliseconds.
- *
- * Source: https://davidwalsh.name/javascript-debounce-function
- *
- * @param {function} func
- * @param {number} wait Number in milliseconds
- * @param {boolean} [immediate=false] If `immediate` is passed, trigger the
- * function on the leading edge, instead
- * of the trailing.
- * @return {function} Return the debounced function
- */
-exports.debounce = function debounce(func, wait, immediate) {
- var timeout;
- return function() {
- var context = this, args = arguments;
- var later = function() {
- timeout = null;
- if (!immediate) func.apply(context, args);
- };
- var callNow = immediate && !timeout;
- clearTimeout(timeout);
- timeout = setTimeout(later, wait);
- if (callNow) func.apply(context, args);
- };
-};
-
-/**
- * Determines the difference between two texts.
- * Can only detect one removed or inserted block of characters.
- * @param {string} oldText
- * @param {string} newText
- * @return {{start: number, end: number}} Returns the start and end
- * of the changed part in newText.
- */
-exports.textDiff = function textDiff(oldText, newText) {
- var len = newText.length;
- var start = 0;
- var oldEnd = oldText.length;
- var newEnd = newText.length;
-
- while (newText.charAt(start) === oldText.charAt(start)
- && start < len) {
- start++;
- }
-
- while (newText.charAt(newEnd - 1) === oldText.charAt(oldEnd - 1)
- && newEnd > start && oldEnd > 0) {
- newEnd--;
- oldEnd--;
- }
-
- return {start: start, end: newEnd};
-};
diff --git a/test/actions.test.js b/test/actions.test.js
deleted file mode 100644
index fab0131..0000000
--- a/test/actions.test.js
+++ /dev/null
@@ -1,84 +0,0 @@
-'use strict'
-
-import test from 'ava'
-import {
- sort
-} from '../src/actions'
-import { assertDeepEqualEson } from './utils/assertDeepEqualEson'
-import {esonToJson, expandOne, jsonToEson, META} from '../src/eson'
-import {patchEson} from '../src/patchEson'
-
-// TODO: test changeValue
-// TODO: test changeProperty
-// TODO: test changeType (or cleanup the function)
-// TODO: test duplicate
-// TODO: test insertBefore
-// TODO: test replace
-// TODO: test append
-// TODO: test remove
-// TODO: test removeAll
-
-test('sort root Array', t => {
- const eson = jsonToEson([1,3,2])
-
- assertDeepEqualEson(t, patchEson(eson, sort(eson, [])).data, jsonToEson([1,2,3]))
- assertDeepEqualEson(t, patchEson(eson, sort(eson, [], 'asc')).data, jsonToEson([1,2,3]))
- assertDeepEqualEson(t, patchEson(eson, sort(eson, [], 'desc')).data, jsonToEson([3,2,1]))
-})
-
-test('sort nested Array', t => {
- const eson = jsonToEson({arr: [4,1,8,5,3,9,2,7,6]})
- const actual = patchEson(eson, sort(eson, ['arr'])).data
- const expected = jsonToEson({arr: [1,2,3,4,5,6,7,8,9]})
- assertDeepEqualEson(t, actual, expected)
-})
-
-test('sort nested Array reverse order', t => {
- // no order provided -> order ascending, but if nothing changes, order descending
- const eson = jsonToEson({arr: [1,2,3,4,5,6,7,8,9]})
- const actual = patchEson(eson, sort(eson, ['arr'])).data
- const expected = jsonToEson({arr: [9,8,7,6,5,4,3,2,1]})
- assertDeepEqualEson(t, actual, expected)
-
- // id's and META should be the same
- t.deepEqual(actual.arr[META].id, eson.arr[META].id)
- t.deepEqual(actual.arr[7][META].id, eson.arr[1][META].id)
-})
-
-
-test('sort root Object', t => {
- const eson = jsonToEson({c: 2, b: 3, a:4})
-
- t.deepEqual(patchEson(eson, sort(eson, [])).data[META].props, ['a', 'b', 'c'])
- t.deepEqual(patchEson(eson, sort(eson, [], 'asc')).data[META].props, ['a', 'b', 'c'])
- t.deepEqual(patchEson(eson, sort(eson, [], 'desc')).data[META].props, ['c', 'b', 'a'])
-})
-
-test('sort nested Object', t => {
- const eson = jsonToEson({obj: {c: 2, b: 3, a:4}})
- eson.obj[META].expanded = true
- eson.obj.c[META].expanded = true
-
- const actual = patchEson(eson, sort(eson, ['obj'])).data
-
- // should keep META data
- t.deepEqual(actual.obj[META].props, ['a', 'b', 'c'])
- t.deepEqual(actual.obj[META].expanded, true)
- t.deepEqual(actual.obj.c[META].expanded, true)
- t.deepEqual(actual.obj[META].id, eson.obj[META].id)
- t.deepEqual(actual.obj.a[META].id, eson.obj.a[META].id)
- t.deepEqual(actual.obj.b[META].id, eson.obj.b[META].id)
- t.deepEqual(actual.obj.c[META].id, eson.obj.c[META].id)
-
- // asc, desc
- t.deepEqual(patchEson(eson, sort(eson, ['obj'])).data.obj[META].props, ['a', 'b', 'c'])
- t.deepEqual(patchEson(eson, sort(eson, ['obj'], 'asc')).data.obj[META].props, ['a', 'b', 'c'])
- t.deepEqual(patchEson(eson, sort(eson, ['obj'], 'desc')).data.obj[META].props, ['c', 'b', 'a'])
-})
-
-test('sort nested Object (larger)', t => {
- const eson = jsonToEson({obj: {h:1, c:1, e:1, d:1, g:1, b:1, a:1, f:1}})
- const actual = patchEson(eson, sort(eson, ['obj'])).data
-
- t.deepEqual(actual.obj[META].props, ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'])
-})
diff --git a/test/couchdbeditor.html b/test/couchdbeditor.html
deleted file mode 100644
index ddabae0..0000000
--- a/test/couchdbeditor.html
+++ /dev/null
@@ -1,99 +0,0 @@
-
-
-
- CouchDB Document Editor
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- CouchDB Document Editor
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/test/largefile.json b/test/largefile.json
deleted file mode 100644
index 8f3a180..0000000
--- a/test/largefile.json
+++ /dev/null
@@ -1,12605 +0,0 @@
-{
- "version": "1.0",
- "encoding": "UTF-8",
- "feed": {
- "xmlns$app": "http://www.w3.org/2007/app",
- "xmlns": "http://www.w3.org/2005/Atom",
- "xmlns$media": "http://search.yahoo.com/mrss/",
- "xmlns$openSearch": "http://a9.com/-/spec/opensearch/1.1/",
- "xmlns$gd": "http://schemas.google.com/g/2005",
- "xmlns$gml": "http://www.opengis.net/gml",
- "xmlns$yt": "http://gdata.youtube.com/schemas/2007",
- "xmlns$georss": "http://www.georss.org/georss",
- "gd$etag": "W/\"A0MHRHo6fSp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:videos"
- },
- "updated": {
- "$t": "2012-04-16T06:57:15.415Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- }
- ],
- "title": {
- "$t": "YouTube Videos matching query: football -soccer"
- },
- "logo": {
- "$t": "http://www.youtube.com/img/pic_youtubelogo_123x63.gif"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com"
- },
- {
- "rel": "http://schemas.google.com/g/2005#feed",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos?v=2"
- },
- {
- "rel": "http://schemas.google.com/g/2005#batch",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/batch?v=2"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos?alt=json&q=football+-soccer&start-index=1&max-results=50&orderby=published&v=2"
- },
- {
- "rel": "service",
- "type": "application/atomsvc+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos?alt=atom-service&v=2"
- },
- {
- "rel": "next",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos?alt=json&q=football+-soccer&start-index=51&max-results=50&orderby=published&v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "YouTube"
- },
- "uri": {
- "$t": "http://www.youtube.com/"
- }
- }
- ],
- "generator": {
- "$t": "YouTube data API",
- "version": "2.1",
- "uri": "http://gdata.youtube.com"
- },
- "openSearch$totalResults": {
- "$t": 17775
- },
- "openSearch$startIndex": {
- "$t": 1
- },
- "openSearch$itemsPerPage": {
- "$t": 50
- },
- "entry": [
- {
- "gd$etag": "W/\"DUYGQH47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:ZUHnx_yGfYg"
- },
- "published": {
- "$t": "2012-04-16T06:18:41.000Z"
- },
- "updated": {
- "$t": "2012-04-16T06:18:41.000Z"
- },
- "app$control": {
- "yt$state": {
- "$t": "Syndication of this video was restricted by its owner.",
- "name": "restricted",
- "reasonCode": "limitedSyndication"
- }
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "friendshipunited"
- }
- ],
- "title": {
- "$t": "FRIENDSHIP UNITED (Prima Lingkar Asri)"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/ZUHnx_yGfYg?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=ZUHnx_yGfYg&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/ZUHnx_yGfYg/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/ZUHnx_yGfYg/related?v=2"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/ZUHnx_yGfYg?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "ClarissaScolastica"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/ClarissaScolastica"
- },
- "yt$userId": {
- "$t": "PxqMFmq9hESdd7fL8uyY6g"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "denied"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/ZUHnx_yGfYg/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/ZUHnx_yGfYg?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 139,
- "yt$format": 5
- }
- ],
- "media$credit": [
- {
- "$t": "clarissascolastica",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "ClarissaScolastica"
- }
- ],
- "media$description": {
- "$t": "We are Friendship United,We are team football in Prima Lingkar Asri (Indonesia),Thanks for watching my video. \"We're not born winners,we're not born losers,we're born choosers!\" Go follow on twitter crew #FriendshipUnited ( @rezaocta16 , @ossaaay , @clariscolastica , @raga_yohanes , @dinabiil , @Evan_julio , @mkafi8 , @dirgabijaksono , @gitchaw , @albrin , @santonyvardy , @andryrivaldy )",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "friendshipunited"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=ZUHnx_yGfYg&feature=youtube_gdata_player"
- },
- "media$restriction": [
- {
- "$t": "UM US VI",
- "type": "country",
- "relationship": "deny"
- }
- ],
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/ZUHnx_yGfYg/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:09.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/ZUHnx_yGfYg/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/ZUHnx_yGfYg/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/ZUHnx_yGfYg/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:34.750",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/ZUHnx_yGfYg/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:09.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/ZUHnx_yGfYg/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:44.250",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "FRIENDSHIP UNITED (Prima Lingkar Asri)",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "139"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T06:18:41.000Z"
- },
- "yt$videoid": {
- "$t": "ZUHnx_yGfYg"
- }
- },
- "yt$recorded": {
- "$t": "2012-04-16"
- }
- },
- {
- "gd$etag": "W/\"DUcGQX47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:S0KcBLqEoas"
- },
- "published": {
- "$t": "2012-04-16T06:17:00.000Z"
- },
- "updated": {
- "$t": "2012-04-16T06:17:00.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Animals",
- "label": "Pets & Animals"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "perro"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "footbal"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "playas de tijuana"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "pelota"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "perrita"
- }
- ],
- "title": {
- "$t": "Gina jugando football"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/S0KcBLqEoas?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=S0KcBLqEoas&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/S0KcBLqEoas/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/S0KcBLqEoas/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=S0KcBLqEoas"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/S0KcBLqEoas?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "elizabethortegaco"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/elizabethortegaco"
- },
- "yt$userId": {
- "$t": "cjAHg7F2kL_ECS8lgJ0nRw"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/S0KcBLqEoas/comments?v=2",
- "countHint": 0
- }
- },
- "yt$location": {
- "$t": "playas tijuana"
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Animals",
- "label": "Pets & Animals",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/S0KcBLqEoas?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 59,
- "yt$format": 5
- },
- {
- "url": "rtsp://v7.cache8.c.youtube.com/CiILENy73wIaGQmroYS6BJxCSxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 59,
- "yt$format": 1
- },
- {
- "url": "rtsp://v2.cache3.c.youtube.com/CiILENy73wIaGQmroYS6BJxCSxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 59,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "elizabethortegaco",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "elizabethortegaco"
- }
- ],
- "media$description": {
- "$t": "perrita Gina jugando football con unos ninios frente al cafe aquamarino y el horno 320 en el malecon de playas de tijuana, ella queria que le patearan la pelota!!!",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "perro, footbal, playas de tijuana, pelota, perrita"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=S0KcBLqEoas&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/S0KcBLqEoas/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:29.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/S0KcBLqEoas/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/S0KcBLqEoas/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/S0KcBLqEoas/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:14.750",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/S0KcBLqEoas/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:29.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/S0KcBLqEoas/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:44.250",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Gina jugando football",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "59"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T06:17:00.000Z"
- },
- "yt$videoid": {
- "$t": "S0KcBLqEoas"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "1"
- }
- },
- {
- "gd$etag": "W/\"DE4DQH47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:ScT3ehz70yU"
- },
- "published": {
- "$t": "2012-04-16T06:16:11.000Z"
- },
- "updated": {
- "$t": "2012-04-16T06:16:11.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Entertainment",
- "label": "Entertainment"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Joe"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Jonas"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Demi"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Lovato"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Dallas"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Selena"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "love"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "jealous"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "sister"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "hate"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "player"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "loser"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "movie"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "series"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "short"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "story"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "one"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "shot"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Rated"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "jemi"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "onetruemedia"
- }
- ],
- "title": {
- "$t": "Under The Stars (Movie-One) Episode- 12 (JEMI)"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/ScT3ehz70yU?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=ScT3ehz70yU&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/ScT3ehz70yU/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/ScT3ehz70yU/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=ScT3ehz70yU"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/ScT3ehz70yU?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "TheBlurify"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/TheBlurify"
- },
- "yt$userId": {
- "$t": "m80cE4ZVd6-7C8TVoTpnWw"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/ScT3ehz70yU/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Entertainment",
- "label": "Entertainment",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/ScT3ehz70yU?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 17,
- "yt$format": 5
- },
- {
- "url": "rtsp://v1.cache1.c.youtube.com/CiILENy73wIaGQkl0_scevfESRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 17,
- "yt$format": 1
- },
- {
- "url": "rtsp://v3.cache8.c.youtube.com/CiILENy73wIaGQkl0_scevfESRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 17,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "theblurify",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "TheBlurify"
- }
- ],
- "media$description": {
- "$t": "Story Here! =========== PLEASE CHECK OUT THE VIDEO I POSTED ABOUT MY NEW STORY IF YOU HAVEN'T YET!!! =========== *Knock knock!* I heard a voice as I jumped back in surprise. *Wow, did I scare you?*Sam asked with a light chuckle. I shook my head. He wore a pair of navy blue shorts and his torso remained bare. He had a good tanned body from what I quickly glanced at, not wanting to make it obvious. He was skinny but lean and toned. Not a bad view, if you asked me.*We're going down for a swim,* He informed. His hands rested on his waist and a towel over his shoulder. *Do you want to go?* His smile was lose and with caution. I guess he knew I wasn't about to fall for his charming toothy smile and decided to play it safe. *No, thanks.* I replied. I knew the rest wouldn't make it very welcoming for me to join. Sam nodded and began walking back. *Ok.* He smiled. *I'll be there if you change your mind.* I managed to show a smile of gratitude. The least I could do was give him credit for being nice and putting an effort to make me feel good about being here and not like a burden. *Thank you.* The rest left soon after which pretty much left me alone. There was a lake a short walks away, from what I remembered, so I'm sure they were all there. It was killing me not to just swallow my pride and go for a swim. Having the days heat wash away and feel the cool water against my skin, but at the same time, I was sure as hell not about to strip down to my bikini and have Lauren or Maggie ... ",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Joe, Jonas, Demi, Lovato, Dallas, Selena, love, jealous, sister, hate, player, loser, movie, series, short, story, one, shot, Rated, jemi, onetruemedia"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=ScT3ehz70yU&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/ScT3ehz70yU/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:08.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/ScT3ehz70yU/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/ScT3ehz70yU/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/ScT3ehz70yU/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:04.250",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/ScT3ehz70yU/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:08.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/ScT3ehz70yU/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:12.750",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Under The Stars (Movie-One) Episode- 12 (JEMI)",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "17"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T06:16:11.000Z"
- },
- "yt$videoid": {
- "$t": "ScT3ehz70yU"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "2"
- }
- },
- {
- "gd$etag": "W/\"DEADSH47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:CRw7iiAfHPU"
- },
- "published": {
- "$t": "2012-04-16T06:12:59.000Z"
- },
- "updated": {
- "$t": "2012-04-16T06:12:59.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "zaccagni"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "gubbio"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "zurla_entertainment"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "inverness"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "scotland"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "scozia"
- }
- ],
- "title": {
- "$t": "Football match in Inverness, Scotland (rigori scozzesi)"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/CRw7iiAfHPU?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=CRw7iiAfHPU&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/CRw7iiAfHPU/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/CRw7iiAfHPU/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=CRw7iiAfHPU"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/CRw7iiAfHPU?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "zaccaimano"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/zaccaimano"
- },
- "yt$userId": {
- "$t": "kkb0S3rhe-LttdSqgG6LMA"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/CRw7iiAfHPU/comments?v=2",
- "countHint": 0
- }
- },
- "georss$where": {
- "gml$Point": {
- "gml$pos": {
- "$t": "57.4777717590332 -4.224720001220703"
- }
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/CRw7iiAfHPU?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 107,
- "yt$format": 5
- },
- {
- "url": "rtsp://v3.cache2.c.youtube.com/CiILENy73wIaGQn1HB8gijscCRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 107,
- "yt$format": 1
- },
- {
- "url": "rtsp://v4.cache1.c.youtube.com/CiILENy73wIaGQn1HB8gijscCRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 107,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "zaccaimano",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "zaccaimano"
- }
- ],
- "media$description": {
- "$t": "The final penalties",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "zaccagni, gubbio, zurla_entertainment, inverness, scotland, scozia"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=CRw7iiAfHPU&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/CRw7iiAfHPU/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:53.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/CRw7iiAfHPU/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/CRw7iiAfHPU/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/CRw7iiAfHPU/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:26.750",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/CRw7iiAfHPU/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:53.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/CRw7iiAfHPU/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:20.250",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Football match in Inverness, Scotland (rigori scozzesi)",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "107"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T06:12:59.000Z"
- },
- "yt$videoid": {
- "$t": "CRw7iiAfHPU"
- }
- },
- "yt$recorded": {
- "$t": "2012-04-06"
- }
- },
- {
- "gd$etag": "W/\"DEEFRH47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:5EjeJpLY7S0"
- },
- "published": {
- "$t": "2012-04-16T06:10:15.000Z"
- },
- "updated": {
- "$t": "2012-04-16T06:10:15.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "UNO"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "omavs"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Nebraska-Omaha"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "UNO Mavericks sports"
- }
- ],
- "title": {
- "$t": "PlayersSuingUNO.wmv"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/5EjeJpLY7S0?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=5EjeJpLY7S0&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/5EjeJpLY7S0/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/5EjeJpLY7S0/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=5EjeJpLY7S0"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/5EjeJpLY7S0?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "UNOMavsBlog"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/UNOMavsBlog"
- },
- "yt$userId": {
- "$t": "64HM5pIt74M5HIavzb1L3w"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/5EjeJpLY7S0/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/5EjeJpLY7S0?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 321,
- "yt$format": 5
- },
- {
- "url": "rtsp://v8.cache7.c.youtube.com/CiILENy73wIaGQkt7diSJt5I5BMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 321,
- "yt$format": 1
- },
- {
- "url": "rtsp://v7.cache6.c.youtube.com/CiILENy73wIaGQkt7diSJt5I5BMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 321,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "unomavsblog",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "UNOMavsBlog"
- }
- ],
- "media$description": {
- "$t": "Campus reaction to the news that former football players and recruits are suing UNO for information to determine if they were mislead about the football program.",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "UNO, omavs, Nebraska-Omaha, UNO Mavericks sports"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=5EjeJpLY7S0&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/5EjeJpLY7S0/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:40.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/5EjeJpLY7S0/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/5EjeJpLY7S0/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/5EjeJpLY7S0/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:20.250",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/5EjeJpLY7S0/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:40.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/5EjeJpLY7S0/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:04:00.750",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "PlayersSuingUNO.wmv",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "321"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T06:10:15.000Z"
- },
- "yt$videoid": {
- "$t": "5EjeJpLY7S0"
- }
- }
- },
- {
- "gd$etag": "W/\"Dk8AQH47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:0A15f4B1T9U"
- },
- "published": {
- "$t": "2012-04-16T05:40:41.000Z"
- },
- "updated": {
- "$t": "2012-04-16T05:40:41.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "People",
- "label": "People & Blogs"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Kerala"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "messi"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "football"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "play"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "(അവന്റെഒരുതോഴി)"
- }
- ],
- "title": {
- "$t": "Kerala messi football play (അവന്റെഒരുതോഴി)"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/0A15f4B1T9U?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=0A15f4B1T9U&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/0A15f4B1T9U/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/0A15f4B1T9U/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=0A15f4B1T9U"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/0A15f4B1T9U?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "kottayamvideo"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/kottayamvideo"
- },
- "yt$userId": {
- "$t": "VYK-aGk1mi9IZDwEMmwGHg"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/0A15f4B1T9U/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "People",
- "label": "People & Blogs",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/0A15f4B1T9U?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 27,
- "yt$format": 5
- },
- {
- "url": "rtsp://v6.cache1.c.youtube.com/CiILENy73wIaGQnVT3WAf3kN0BMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 27,
- "yt$format": 1
- },
- {
- "url": "rtsp://v8.cache1.c.youtube.com/CiILENy73wIaGQnVT3WAf3kN0BMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 27,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "kottayamvideo",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "kottayamvideo"
- }
- ],
- "media$description": {
- "$t": "American football is a sport played between two teams of eleven with the objective of scoring points by advancing the ball into the opposing team's end zone. Known in the United States simply as football, it may also be referred to informally as gridiron football,[1][2] and even more rare, the \"pigskin\".[3] The ball can be advanced by running with it or throwing it to a teammate. Points can be scored by carrying the ball over the opponent's goal line, catching a pass thrown over that goal line, kicking the ball through the opponent's goal posts or tackling an opposing ball carrier in his own end zone. In the United States, the major forms are high school football, college football and professional football. Each of these are played under slightly different rules.[4] High school football is governed by the National Federation of State High School Associations and college football by the National Collegiate Athletic Association and National Association of Intercollegiate Athletics. The major league for professional football is the National Football League.",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Kerala, messi, football, play, (അവന്റെഒരുതോഴി)"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=0A15f4B1T9U&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/0A15f4B1T9U/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:13.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/0A15f4B1T9U/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/0A15f4B1T9U/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/0A15f4B1T9U/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:06.750",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/0A15f4B1T9U/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:13.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/0A15f4B1T9U/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:20.250",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Kerala messi football play (അവന്റെഒരുതോഴി)",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "27"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T05:40:41.000Z"
- },
- "yt$videoid": {
- "$t": "0A15f4B1T9U"
- }
- }
- },
- {
- "gd$etag": "W/\"DkAASX47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:7hg2BvLQvuw"
- },
- "published": {
- "$t": "2012-04-16T05:39:08.000Z"
- },
- "updated": {
- "$t": "2012-04-16T05:39:08.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "mobile"
- }
- ],
- "title": {
- "$t": "#39 Jorge Batres SBU"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/7hg2BvLQvuw?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=7hg2BvLQvuw&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/7hg2BvLQvuw/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/7hg2BvLQvuw/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=7hg2BvLQvuw"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/7hg2BvLQvuw?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "SBUFBVideosDept"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/SBUFBVideosDept"
- },
- "yt$userId": {
- "$t": "isxkO3iSNLZUpjYqPGOvPQ"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "allowed"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/7hg2BvLQvuw/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/7hg2BvLQvuw?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 149,
- "yt$format": 5
- },
- {
- "url": "rtsp://v5.cache7.c.youtube.com/CiILENy73wIaGQnsvtDyBjYY7hMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 149,
- "yt$format": 1
- },
- {
- "url": "rtsp://v4.cache8.c.youtube.com/CiILENy73wIaGQnsvtDyBjYY7hMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 149,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "sbufbvideosdept",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "SBUFBVideosDept"
- }
- ],
- "media$description": {
- "$t": "Jorge Batres, SBU's kicker/punter gives a few words about the upcoming 2012 football season.",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "mobile"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=7hg2BvLQvuw&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/7hg2BvLQvuw/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:14.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/7hg2BvLQvuw/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/7hg2BvLQvuw/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/7hg2BvLQvuw/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:37.250",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/7hg2BvLQvuw/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:14.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/7hg2BvLQvuw/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:51.750",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "#39 Jorge Batres SBU",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "149"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T05:39:08.000Z"
- },
- "yt$videoid": {
- "$t": "7hg2BvLQvuw"
- }
- }
- },
- {
- "gd$etag": "W/\"DkAFR347eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:O_IJnyUbSDY"
- },
- "published": {
- "$t": "2012-04-16T05:38:36.000Z"
- },
- "updated": {
- "$t": "2012-04-16T05:38:36.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "People",
- "label": "People & Blogs"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Homer"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "LA"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Relay for Life"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Glory Gals"
- }
- ],
- "title": {
- "$t": "Relay for Life - Homer, LA 2012"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/O_IJnyUbSDY?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=O_IJnyUbSDY&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/O_IJnyUbSDY/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/O_IJnyUbSDY/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=O_IJnyUbSDY"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/O_IJnyUbSDY?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "HomerMessenger"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/HomerMessenger"
- },
- "yt$userId": {
- "$t": "b37co3tL2mrGD96aUNl80A"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/O_IJnyUbSDY/comments?v=2",
- "countHint": 0
- }
- },
- "yt$hd": {},
- "media$group": {
- "media$category": [
- {
- "$t": "People",
- "label": "People & Blogs",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/O_IJnyUbSDY?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 252,
- "yt$format": 5
- },
- {
- "url": "rtsp://v1.cache7.c.youtube.com/CiILENy73wIaGQk2SBslnwnyOxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 252,
- "yt$format": 1
- },
- {
- "url": "rtsp://v6.cache8.c.youtube.com/CiILENy73wIaGQk2SBslnwnyOxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 252,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "homermessenger",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "HomerMessenger"
- }
- ],
- "media$description": {
- "$t": "Footage from the Luminaries Ceremony - Relay for Life 2012 - Homer, LA at Homer High School Football Stadium",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Homer, LA, Relay for Life, Glory Gals"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=O_IJnyUbSDY&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/O_IJnyUbSDY/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:06",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/O_IJnyUbSDY/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/O_IJnyUbSDY/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/O_IJnyUbSDY/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:03",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/O_IJnyUbSDY/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:06",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/O_IJnyUbSDY/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:03:09",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Relay for Life - Homer, LA 2012",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "252"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T05:38:36.000Z"
- },
- "yt$videoid": {
- "$t": "O_IJnyUbSDY"
- }
- }
- },
- {
- "gd$etag": "W/\"DkMERn47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:t-afuUNb0Uo"
- },
- "published": {
- "$t": "2012-04-16T05:33:27.000Z"
- },
- "updated": {
- "$t": "2012-04-16T05:33:27.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "People",
- "label": "People & Blogs"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "highlights!"
- }
- ],
- "title": {
- "$t": "highlights!.wmv"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/t-afuUNb0Uo?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=t-afuUNb0Uo&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/t-afuUNb0Uo/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/t-afuUNb0Uo/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=t-afuUNb0Uo"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/t-afuUNb0Uo?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "edgarraguilar8"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/edgarraguilar8"
- },
- "yt$userId": {
- "$t": "uJk4jnk3B900MyfYn6gz5g"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/t-afuUNb0Uo/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "People",
- "label": "People & Blogs",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/t-afuUNb0Uo?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 571,
- "yt$format": 5
- },
- {
- "url": "rtsp://v5.cache7.c.youtube.com/CiILENy73wIaGQlK0VtDuZ_mtxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 571,
- "yt$format": 1
- },
- {
- "url": "rtsp://v1.cache4.c.youtube.com/CiILENy73wIaGQlK0VtDuZ_mtxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 571,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "edgarraguilar8",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "edgarraguilar8"
- }
- ],
- "media$description": {
- "$t": "some of what i thought were some of my best plays in high school football!! mostly clips from my junior year because unfortunately my sophmore and senior year i got hurt and my seasons ended early. .",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "highlights!"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=t-afuUNb0Uo&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/t-afuUNb0Uo/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:04:45.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/t-afuUNb0Uo/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/t-afuUNb0Uo/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/t-afuUNb0Uo/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:22.750",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/t-afuUNb0Uo/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:04:45.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/t-afuUNb0Uo/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:07:08.250",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "highlights!.wmv",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "571"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T05:33:27.000Z"
- },
- "yt$videoid": {
- "$t": "t-afuUNb0Uo"
- }
- }
- },
- {
- "gd$etag": "W/\"CU8CRX47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:weMSc7VyDD4"
- },
- "published": {
- "$t": "2012-04-16T05:24:24.000Z"
- },
- "updated": {
- "$t": "2012-04-16T05:24:24.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Games",
- "label": "Gaming"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Fer"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "dayz"
- }
- ],
- "title": {
- "$t": "Runescape-Dragon Claws Giveaway"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/weMSc7VyDD4?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=weMSc7VyDD4&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/weMSc7VyDD4/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/weMSc7VyDD4/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=weMSc7VyDD4"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/weMSc7VyDD4?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "TyroneAloneWithMeth"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/TyroneAloneWithMeth"
- },
- "yt$userId": {
- "$t": "nMLRKdVQ7P-p_cEipgO1fA"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/weMSc7VyDD4/comments?v=2",
- "countHint": 0
- }
- },
- "yt$hd": {},
- "media$group": {
- "media$category": [
- {
- "$t": "Games",
- "label": "Gaming",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/weMSc7VyDD4?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 38,
- "yt$format": 5
- },
- {
- "url": "rtsp://v6.cache1.c.youtube.com/CiILENy73wIaGQk-DHK1cxLjwRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 38,
- "yt$format": 1
- },
- {
- "url": "rtsp://v1.cache1.c.youtube.com/CiILENy73wIaGQk-DHK1cxLjwRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 38,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "tyronealonewithmeth",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "TyroneAloneWithMeth"
- }
- ],
- "media$description": {
- "$t": "Message for more info EXTRA TAGS: tehnoobshow thepwnageninja herzantix tehnoobshoow Penny the Penguin funny runescape rs free zezima animal skychi account twixalex crush hilarious dark arm3 sladeakakevin crushman90 runescape boss kalphite dragon king black chaos elemental queen parody Lord of the rings sisterhood traveling pants moby dick war of worlds lion boy series starr parody hilarious rs retard runescape. twixalex crushman michael weird upside down cheese popper kids kid wheelchair dude green blue yellow are all colors of the rainbow skittles rule skittle commercial delicious cookie sprinkles dramatic prarie dog stick figures on crack 1 2 3 4 5 are all numbers of the rainbow wtf did i just say number of the rainbow thats kind of stupid in a funny way with balony pk vid video f2p p2p bank free account extra tags: KIDS RANQE PURPLE 0WNZ ZEZIMA N0VALYFE PHAT LURE OWNAGE RUNESCAPE WILDY WILDERNESS ELVEMAGE ELVEMAGE RUNESCAPE PKING RUN3 4RR0WPK OWNAGE MAIKEL PRO I MAHATMA I EVO BLOODHOUN34 KIDS RANQE KRAZYFAKEN RUNESCAPE PKER RUNESCAPE PKING INTIATE PURE 99 STR MAGE RANGE OBBY MAUL WICKED MAUL FIRE CAPE P00NAGE I KASOY I ELF MAGE PKA OBBY MAUL MAULER EDGEVILLE POONAGEkids ranqe elvemage purple 0wnz bloodhoun34 runescape pking wild pker ownage zezima phat lure KIDS RANQE PURPLE 0WNZ ZEZIMA N0VALYFE PHAT LURE OWNAGE RUNESCAPE WILDY WILDERNESS ELVEMAGE ELVEMAGE RUNESCAPE PKING RUN3 4RR0WPK OWNAGE MAIKEL PRO I MAHATMA I EVO BLOODHOUN34 KIDS RANQE KRAZYFAKEN RUNESCAPE PKER ... ",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Fer, dayz"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=weMSc7VyDD4&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/weMSc7VyDD4/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:19",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/weMSc7VyDD4/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/weMSc7VyDD4/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/weMSc7VyDD4/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:09.500",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/weMSc7VyDD4/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:19",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/weMSc7VyDD4/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:28.500",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Runescape-Dragon Claws Giveaway",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "38"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T05:24:24.000Z"
- },
- "yt$videoid": {
- "$t": "weMSc7VyDD4"
- }
- }
- },
- {
- "gd$etag": "W/\"CUAFRX47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:3lMygQpMEEs"
- },
- "published": {
- "$t": "2012-04-16T05:21:54.000Z"
- },
- "updated": {
- "$t": "2012-04-16T05:21:54.000Z"
- },
- "app$control": {
- "yt$state": {
- "$t": "Syndication of this video was restricted by its owner.",
- "name": "restricted",
- "reasonCode": "limitedSyndication"
- }
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Football"
- }
- ],
- "title": {
- "$t": "Football 14.02.2012"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/3lMygQpMEEs?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=3lMygQpMEEs&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/3lMygQpMEEs/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/3lMygQpMEEs/related?v=2"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/3lMygQpMEEs?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "Jarom Nowak"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/rZyYP-Lh0-Kkl5aFG85ktw"
- },
- "yt$userId": {
- "$t": "rZyYP-Lh0-Kkl5aFG85ktw"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "denied"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/3lMygQpMEEs/comments?v=2",
- "countHint": 0
- }
- },
- "yt$hd": {},
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/3lMygQpMEEs?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 409,
- "yt$format": 5
- }
- ],
- "media$credit": [
- {
- "$t": "rZyYP-Lh0-Kkl5aFG85ktw",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "Jarom Nowak"
- }
- ],
- "media$description": {
- "$t": "Deathmatch 14.04.2012",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Football"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=3lMygQpMEEs&feature=youtube_gdata_player"
- },
- "media$restriction": [
- {
- "$t": "DE",
- "type": "country",
- "relationship": "deny"
- }
- ],
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/3lMygQpMEEs/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:03:24.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/3lMygQpMEEs/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/3lMygQpMEEs/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/3lMygQpMEEs/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:42.250",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/3lMygQpMEEs/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:03:24.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/3lMygQpMEEs/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:05:06.750",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Football 14.02.2012",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "409"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T05:21:54.000Z"
- },
- "yt$videoid": {
- "$t": "3lMygQpMEEs"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "7"
- }
- },
- {
- "gd$etag": "W/\"CE4BSX47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:rRW9R8Zclbk"
- },
- "published": {
- "$t": "2012-04-16T05:09:18.000Z"
- },
- "updated": {
- "$t": "2012-04-16T05:09:18.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "#Richmond#Tigers#MCG#AFL#"
- }
- ],
- "title": {
- "$t": "RichmondTigers2012 'Hear the Tigers Raw' Membership Promo unauthorised"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/rRW9R8Zclbk?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=rRW9R8Zclbk&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/rRW9R8Zclbk/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/rRW9R8Zclbk/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=rRW9R8Zclbk"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/rRW9R8Zclbk?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "RichmondTigers2011"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/RichmondTigers2011"
- },
- "yt$userId": {
- "$t": "po8qqWXXp6Fo00UGlbcTlg"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/rRW9R8Zclbk/comments?v=2",
- "countHint": 0
- }
- },
- "yt$hd": {},
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/rRW9R8Zclbk?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 36,
- "yt$format": 5
- },
- {
- "url": "rtsp://v2.cache3.c.youtube.com/CiILENy73wIaGQm5lVzGR70VrRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 36,
- "yt$format": 1
- },
- {
- "url": "rtsp://v7.cache6.c.youtube.com/CiILENy73wIaGQm5lVzGR70VrRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 36,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "richmondtigers2011",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "RichmondTigers2011"
- }
- ],
- "media$description": {
- "$t": "RichmondTigers2012 'Hear the Tigers Raw' Membership Promo unauthorised written, spoken & photographed by Pete Dowe. www.richmondfc.com.au www.youtube.com www.youtube.com www.youtube.com #funny#Richmond#Tigers#Membership#Promo#MCG#Punt#Rd#Oval# #Melbourne#Cricket#Ground#AFL#Football#",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "#Richmond#Tigers#MCG#AFL#"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=rRW9R8Zclbk&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/rRW9R8Zclbk/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:18",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/rRW9R8Zclbk/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/rRW9R8Zclbk/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/rRW9R8Zclbk/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:09",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/rRW9R8Zclbk/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:18",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/rRW9R8Zclbk/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:27",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "RichmondTigers2012 'Hear the Tigers Raw' Membership Promo unauthorised",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "36"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T05:09:18.000Z"
- },
- "yt$videoid": {
- "$t": "rRW9R8Zclbk"
- }
- }
- },
- {
- "gd$etag": "W/\"CEIGQX47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:qjO8l5uNunE"
- },
- "published": {
- "$t": "2012-04-16T05:02:00.000Z"
- },
- "updated": {
- "$t": "2012-04-16T05:02:00.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "RJ Dill"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Kaleb Johnson"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Scarlet Nation"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Rutgers football"
- }
- ],
- "title": {
- "$t": "RJ Dill and Kaleb Johnson interviews"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/qjO8l5uNunE?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=qjO8l5uNunE&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/qjO8l5uNunE/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/qjO8l5uNunE/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=qjO8l5uNunE"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/qjO8l5uNunE?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "scarletnationtv"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/scarletnationtv"
- },
- "yt$userId": {
- "$t": "beUNBqGe0GbGCQpGJr4xVg"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/qjO8l5uNunE/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/qjO8l5uNunE?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 104,
- "yt$format": 5
- },
- {
- "url": "rtsp://v6.cache5.c.youtube.com/CiILENy73wIaGQlxuo2bl7wzqhMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 104,
- "yt$format": 1
- },
- {
- "url": "rtsp://v3.cache8.c.youtube.com/CiILENy73wIaGQlxuo2bl7wzqhMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 104,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "scarletnationtv",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "scarletnationtv"
- }
- ],
- "media$description": {
- "$t": "Rutgers offensive tackles RJ Dill and Kaleb Johnson talk Rutgers football.",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "RJ Dill, Kaleb Johnson, Scarlet Nation, Rutgers football"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=qjO8l5uNunE&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/qjO8l5uNunE/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:52",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/qjO8l5uNunE/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/qjO8l5uNunE/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/qjO8l5uNunE/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:26",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/qjO8l5uNunE/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:52",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/qjO8l5uNunE/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:18",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "RJ Dill and Kaleb Johnson interviews",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "104"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T05:02:00.000Z"
- },
- "yt$videoid": {
- "$t": "qjO8l5uNunE"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "3"
- }
- },
- {
- "gd$etag": "W/\"C04HRH47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:C6t6gKz_nqA"
- },
- "published": {
- "$t": "2012-04-16T04:52:15.000Z"
- },
- "updated": {
- "$t": "2012-04-16T04:52:15.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Education",
- "label": "Education"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Larry"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "romano"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "park"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "football"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "saturday"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "league"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "cell"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "phone"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "usage"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "talking"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "and"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "catching"
- }
- ],
- "title": {
- "$t": "larry romano on the phone making a 1st down completion saturday football league"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/C6t6gKz_nqA?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=C6t6gKz_nqA&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/C6t6gKz_nqA/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/C6t6gKz_nqA/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=C6t6gKz_nqA"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/C6t6gKz_nqA?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "namnamer"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/namnamer"
- },
- "yt$userId": {
- "$t": "Pg1Kgppp1H57d15BSZgA-w"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/C6t6gKz_nqA/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Education",
- "label": "Education",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/C6t6gKz_nqA?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 289,
- "yt$format": 5
- },
- {
- "url": "rtsp://v2.cache8.c.youtube.com/CiILENy73wIaGQmgnv-sgHqrCxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 289,
- "yt$format": 1
- },
- {
- "url": "rtsp://v4.cache3.c.youtube.com/CiILENy73wIaGQmgnv-sgHqrCxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 289,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "namnamer",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "namnamer"
- }
- ],
- "media$description": {
- "$t": "It's illegal to talk on the phone while driving a car but driving down field... it's still legal in park football to talk while playing. not recommended unless you are a pro like Larry but...",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Larry, romano, park, football, saturday, league, cell, phone, usage, talking, and, catching"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=C6t6gKz_nqA&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/C6t6gKz_nqA/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:24.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/C6t6gKz_nqA/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/C6t6gKz_nqA/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/C6t6gKz_nqA/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:12.250",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/C6t6gKz_nqA/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:24.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/C6t6gKz_nqA/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:03:36.750",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "larry romano on the phone making a 1st down completion saturday football league",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "289"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T04:52:15.000Z"
- },
- "yt$videoid": {
- "$t": "C6t6gKz_nqA"
- }
- }
- },
- {
- "gd$etag": "W/\"C04ERn47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:htHKUbXYw2M"
- },
- "published": {
- "$t": "2012-04-16T04:51:47.000Z"
- },
- "updated": {
- "$t": "2012-04-16T04:51:47.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Comedy",
- "label": "Comedy"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "FF"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Jeffery"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "and"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Preston"
- }
- ],
- "title": {
- "$t": "FF introducing Jeffery and Preston Irving"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/htHKUbXYw2M?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=htHKUbXYw2M&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/htHKUbXYw2M/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/htHKUbXYw2M/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=htHKUbXYw2M"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/htHKUbXYw2M?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "thehuckabee182"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/thehuckabee182"
- },
- "yt$userId": {
- "$t": "rnahI2jjsVsjwX9OQCvPlA"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/htHKUbXYw2M/comments?v=2",
- "countHint": 0
- }
- },
- "yt$hd": {},
- "media$group": {
- "media$category": [
- {
- "$t": "Comedy",
- "label": "Comedy",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/htHKUbXYw2M?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 146,
- "yt$format": 5
- },
- {
- "url": "rtsp://v5.cache7.c.youtube.com/CiILENy73wIaGQljw9i1UcrRhhMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 146,
- "yt$format": 1
- },
- {
- "url": "rtsp://v4.cache8.c.youtube.com/CiILENy73wIaGQljw9i1UcrRhhMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 146,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "thehuckabee182",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "thehuckabee182"
- }
- ],
- "media$description": {
- "$t": "A kickass trailer of an upcoming fantasy football film. Looks to be the funniest film ever. Introducing the characters Jeffery and Preston Irving.",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "FF, Jeffery, and, Preston"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=htHKUbXYw2M&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/htHKUbXYw2M/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:13",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/htHKUbXYw2M/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/htHKUbXYw2M/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/htHKUbXYw2M/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:36.500",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/htHKUbXYw2M/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:13",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/htHKUbXYw2M/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:49.500",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "FF introducing Jeffery and Preston Irving",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "146"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T04:51:47.000Z"
- },
- "yt$videoid": {
- "$t": "htHKUbXYw2M"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "3"
- }
- },
- {
- "gd$etag": "W/\"C08NR347eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:QUxE8dfrSf8"
- },
- "published": {
- "$t": "2012-04-16T04:51:36.000Z"
- },
- "updated": {
- "$t": "2012-04-16T04:51:36.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "football"
- }
- ],
- "title": {
- "$t": "ThundersU16-2012-04-15.MPG"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/QUxE8dfrSf8?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=QUxE8dfrSf8&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/QUxE8dfrSf8/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/QUxE8dfrSf8/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=QUxE8dfrSf8"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/QUxE8dfrSf8?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "8960Krogsager"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/8960Krogsager"
- },
- "yt$userId": {
- "$t": "OkaIPe6KmLmVNKzzuzT-tA"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/QUxE8dfrSf8/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/QUxE8dfrSf8?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 47,
- "yt$format": 5
- },
- {
- "url": "rtsp://v2.cache1.c.youtube.com/CiILENy73wIaGQn_SevX8URMQRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 47,
- "yt$format": 1
- },
- {
- "url": "rtsp://v6.cache1.c.youtube.com/CiILENy73wIaGQn_SevX8URMQRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 47,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "8960krogsager",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "8960Krogsager"
- }
- ],
- "media$description": {
- "$t": "U16 American Football Randers Thunder vs Herning Hawks: 6-0 15. april 2012",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "football"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=QUxE8dfrSf8&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/QUxE8dfrSf8/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:23.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/QUxE8dfrSf8/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/QUxE8dfrSf8/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/QUxE8dfrSf8/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:11.750",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/QUxE8dfrSf8/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:23.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/QUxE8dfrSf8/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:35.250",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "ThundersU16-2012-04-15.MPG",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "47"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T04:51:36.000Z"
- },
- "yt$videoid": {
- "$t": "QUxE8dfrSf8"
- }
- }
- },
- {
- "gd$etag": "W/\"C0UDQX47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:q1-elpWAAoo"
- },
- "published": {
- "$t": "2012-04-16T04:41:10.000Z"
- },
- "updated": {
- "$t": "2012-04-16T04:41:10.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "football"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "college football"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "tulsa golden hurricans"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "tulsa football"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "GJ Kinne"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "wide receiver"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "quarter back"
- }
- ],
- "title": {
- "$t": "Landon Finton 2012 Football Highlights"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/q1-elpWAAoo?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=q1-elpWAAoo&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/q1-elpWAAoo/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/q1-elpWAAoo/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=q1-elpWAAoo"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/q1-elpWAAoo?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "Ryan Edwards"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/saGhMa5XGVHl02wfLNEy7g"
- },
- "yt$userId": {
- "$t": "saGhMa5XGVHl02wfLNEy7g"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/q1-elpWAAoo/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/q1-elpWAAoo?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 94,
- "yt$format": 5
- },
- {
- "url": "rtsp://v2.cache3.c.youtube.com/CiILENy73wIaGQmKAoCVlp5fqxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 94,
- "yt$format": 1
- },
- {
- "url": "rtsp://v1.cache1.c.youtube.com/CiILENy73wIaGQmKAoCVlp5fqxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 94,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "saGhMa5XGVHl02wfLNEy7g",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "Ryan Edwards"
- }
- ],
- "media$description": {
- "$t": "7 year old Landon Finton football highlights",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "football, college football, tulsa golden hurricans, tulsa football, GJ Kinne, wide receiver, quarter back"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=q1-elpWAAoo&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/q1-elpWAAoo/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:47",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/q1-elpWAAoo/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/q1-elpWAAoo/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/q1-elpWAAoo/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:23.500",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/q1-elpWAAoo/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:47",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/q1-elpWAAoo/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:10.500",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Landon Finton 2012 Football Highlights",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "94"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T04:41:10.000Z"
- },
- "yt$videoid": {
- "$t": "q1-elpWAAoo"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "1"
- }
- },
- {
- "gd$etag": "W/\"CkQBQn47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:3W1ya1FqhCU"
- },
- "published": {
- "$t": "2012-04-16T04:25:53.000Z"
- },
- "updated": {
- "$t": "2012-04-16T04:25:53.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Games",
- "label": "Gaming"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "The"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Rumble"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Fish"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "ザ・ランブルフィッシュ"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "ATOMISWAVE"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "SAMMY"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "ARCADE"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "CAB"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "GAME"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "FIGHTING"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "BEAT"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "UM"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "UP"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "KUNG"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "FU"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "ca"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "HD"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": ".GAME"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "PLAY"
- }
- ],
- "title": {
- "$t": "The Rumble Fish ザ・ランブルフィッシュ game play atomiswave cab & pics HD"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/3W1ya1FqhCU?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=3W1ya1FqhCU&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/3W1ya1FqhCU/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/3W1ya1FqhCU/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=3W1ya1FqhCU"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/3W1ya1FqhCU?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "dzzmoo1"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/dzzmoo1"
- },
- "yt$userId": {
- "$t": "DDLrqLjO1egeeRdx8X4s8A"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "moderated"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "denied"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/3W1ya1FqhCU/comments?v=2",
- "countHint": 0
- }
- },
- "yt$hd": {},
- "media$group": {
- "media$category": [
- {
- "$t": "Games",
- "label": "Gaming",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/3W1ya1FqhCU?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 101,
- "yt$format": 5
- },
- {
- "url": "rtsp://v5.cache2.c.youtube.com/CiILENy73wIaGQklhGpRa3Jt3RMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 101,
- "yt$format": 1
- },
- {
- "url": "rtsp://v6.cache4.c.youtube.com/CiILENy73wIaGQklhGpRa3Jt3RMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 101,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "dzzmoo1",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "dzzmoo1"
- }
- ],
- "media$description": {
- "$t": "The Rumble Fish (ザ・ランブルフィッシュ?) is a 2D fighting game developed by Dimps and published by Sega Sammy Holdings. It was originally released in 2004 for the Atomiswave arcade platform and was later ported to the PlayStation 2 on March 17, 2005. A sequel, The Rumble Fish 2, has since been developed.Atomiswave game play and cab (HD) and pics part 0.2 Atomiswave games Demolish Fist (Sammy / Dimps) Dirty Pigskin Football (Play Mechanix) Dolphin Blue (Sammy) Extreme Hunting (Sammy) Extreme Hunting 2 Tournament Edition (Sega Amusement USA) Faster Than Speed (Sammy) Fist of the North Star (Hokuto No Ken) (Sega / ARC System Works) Guilty Gear Isuka (Sammy / ARC System Works) Guilty Gear X Version 1.5 (Sammy / ARC System Works) Hustle Tamaire Kyousou (Animal Basket) (Sammy) Knights of Valour: The Seven Spirits (Sammy / IGS) Maximum Speed (Sammy) Metal Slug 6 (Sega / SNK Playmore) Neo Geo Battle Coliseum (Sega / SNK Playmore) Ranger Mission (Sammy) Salaried Worker Golden Taro (Sammy) Samurai Shodown VI (Sega / SNK Playmore) Sega Bass Fishing Challenge (Sega Amusement USA) Sega Clay Challenge (Sega Amusement USA) Sports Shooting USA (Sammy) The King of Fighters Neowave (Sammy / SNK Playmore) The King of Fighters XI (Sega / SNK Playmore) The Rumble Fish (Sammy / Dimps) The Rumble Fish 2 (Sega / Dimps) Victory Furlong - Horse Racing (Sammy) [edit] Unreleased Chase 1929 (Sammy) Force Five (Sammy) Kenju (Sammy / DreamFactory) Premier Eleven (Sammy / Dimps) Sushi Bar (Sammy)",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "The, Rumble, Fish, ザ・ランブルフィッシュ, ATOMISWAVE, SAMMY, ARCADE, CAB, GAME, FIGHTING, BEAT, UM, UP, KUNG, FU, ca, HD, .GAME, PLAY"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=3W1ya1FqhCU&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/3W1ya1FqhCU/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:50.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/3W1ya1FqhCU/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/3W1ya1FqhCU/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/3W1ya1FqhCU/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:25.250",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/3W1ya1FqhCU/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:50.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/3W1ya1FqhCU/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:15.750",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "The Rumble Fish ザ・ランブルフィッシュ game play atomiswave cab & pics HD",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "101"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T04:25:53.000Z"
- },
- "yt$videoid": {
- "$t": "3W1ya1FqhCU"
- }
- },
- "yt$statistics": {
- "favoriteCount": "2",
- "viewCount": "27"
- }
- },
- {
- "gd$etag": "W/\"A0IMSX47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:U_Lw8ccft9U"
- },
- "published": {
- "$t": "2012-04-16T04:13:08.000Z"
- },
- "updated": {
- "$t": "2012-04-16T04:13:08.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Sport"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Tunisie"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Football"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Professionnalisme"
- }
- ],
- "title": {
- "$t": "Tunisia Sport (2/10) _ Football Professionnel en Tunisie 26-02-2010.MPG"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/U_Lw8ccft9U?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=U_Lw8ccft9U&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/U_Lw8ccft9U/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/U_Lw8ccft9U/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=U_Lw8ccft9U"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/U_Lw8ccft9U?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "amoezaineb"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/amoezaineb"
- },
- "yt$userId": {
- "$t": "EKm4GFx69vsS69IMZJ1crQ"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/U_Lw8ccft9U/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/U_Lw8ccft9U?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 600,
- "yt$format": 5
- },
- {
- "url": "rtsp://v6.cache6.c.youtube.com/CiILENy73wIaGQnVtx_H8fDyUxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 600,
- "yt$format": 1
- },
- {
- "url": "rtsp://v2.cache5.c.youtube.com/CiILENy73wIaGQnVtx_H8fDyUxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 600,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "amoezaineb",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "amoezaineb"
- }
- ],
- "media$description": {
- "$t": "Épisode 2/10 : Professionnalisme/ compétence-habileté + mentalité-sérieux + éthique-responsabilité",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Sport, Tunisie, Football, Professionnalisme"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=U_Lw8ccft9U&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/U_Lw8ccft9U/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:05:00",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/U_Lw8ccft9U/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/U_Lw8ccft9U/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/U_Lw8ccft9U/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:30",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/U_Lw8ccft9U/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:05:00",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/U_Lw8ccft9U/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:07:30",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Tunisia Sport (2/10) _ Football Professionnel en Tunisie 26-02-2010.MPG",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "600"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T04:13:08.000Z"
- },
- "yt$videoid": {
- "$t": "U_Lw8ccft9U"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "1"
- }
- },
- {
- "gd$etag": "W/\"Ak4GQH47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:g6j2GbE95Hg"
- },
- "published": {
- "$t": "2012-04-16T04:08:03.000Z"
- },
- "updated": {
- "$t": "2012-04-16T06:48:41.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "People",
- "label": "People & Blogs"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "el"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "football"
- }
- ],
- "title": {
- "$t": "el football.AVI"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/g6j2GbE95Hg?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=g6j2GbE95Hg&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/g6j2GbE95Hg/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/g6j2GbE95Hg/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=g6j2GbE95Hg"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/g6j2GbE95Hg?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "louinex"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/louinex"
- },
- "yt$userId": {
- "$t": "PSot9M-Q0Da3Gq8SPGUOcA"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/g6j2GbE95Hg/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "People",
- "label": "People & Blogs",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/g6j2GbE95Hg?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 135,
- "yt$format": 5
- },
- {
- "url": "rtsp://v1.cache7.c.youtube.com/CiILENy73wIaGQl45D2xGfaogxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 135,
- "yt$format": 1
- },
- {
- "url": "rtsp://v8.cache5.c.youtube.com/CiILENy73wIaGQl45D2xGfaogxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 135,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "louinex",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "louinex"
- }
- ],
- "media$description": {
- "$t": "",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "el, football"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=g6j2GbE95Hg&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/g6j2GbE95Hg/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:07.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/g6j2GbE95Hg/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/g6j2GbE95Hg/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/g6j2GbE95Hg/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:33.750",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/g6j2GbE95Hg/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:07.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/g6j2GbE95Hg/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:41.250",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "el football.AVI",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "135"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T04:08:03.000Z"
- },
- "yt$videoid": {
- "$t": "g6j2GbE95Hg"
- }
- }
- },
- {
- "gd$etag": "W/\"Ak4BQH47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:5xHBXPswmcw"
- },
- "published": {
- "$t": "2012-04-16T04:02:31.000Z"
- },
- "updated": {
- "$t": "2012-04-16T04:02:31.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Ramona"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Football"
- }
- ],
- "title": {
- "$t": "Marc Sutton #78"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/5xHBXPswmcw?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=5xHBXPswmcw&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/5xHBXPswmcw/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/5xHBXPswmcw/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=5xHBXPswmcw"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/5xHBXPswmcw?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "Ramonaramsfootball"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/Ramonaramsfootball"
- },
- "yt$userId": {
- "$t": "JE_miX30awxqh9o0Tv1nFw"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "denied"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/5xHBXPswmcw?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 386,
- "yt$format": 5
- },
- {
- "url": "rtsp://v4.cache4.c.youtube.com/CiILENy73wIaGQnMmTD7XMER5xMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 386,
- "yt$format": 1
- },
- {
- "url": "rtsp://v8.cache8.c.youtube.com/CiILENy73wIaGQnMmTD7XMER5xMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 386,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "ramonaramsfootball",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "Ramonaramsfootball"
- }
- ],
- "media$description": {
- "$t": "Marc Sutton #78 Class of 2012, National Football Federation Award Winner, All Inland Empire First Team for 2 years, Position: Tackle Height:6'4\" Weight:265",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Ramona, Football"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=5xHBXPswmcw&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/5xHBXPswmcw/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:03:13",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/5xHBXPswmcw/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/5xHBXPswmcw/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/5xHBXPswmcw/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:36.500",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/5xHBXPswmcw/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:03:13",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/5xHBXPswmcw/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:04:49.500",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Marc Sutton #78",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "386"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T04:02:31.000Z"
- },
- "yt$videoid": {
- "$t": "5xHBXPswmcw"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "3"
- }
- },
- {
- "gd$etag": "W/\"AkACQn47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:mTkisZG6mcU"
- },
- "published": {
- "$t": "2012-04-16T03:59:23.000Z"
- },
- "updated": {
- "$t": "2012-04-16T03:59:23.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Nonprofit",
- "label": "Nonprofits & Activism"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Rancho"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Cucamonga"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Middle"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "School"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Advanced"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Band"
- }
- ],
- "title": {
- "$t": "Joseph @ Colony High 10-2-11.mp4"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/mTkisZG6mcU?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=mTkisZG6mcU&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/mTkisZG6mcU/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/mTkisZG6mcU/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=mTkisZG6mcU"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/mTkisZG6mcU?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "majicmiracles"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/majicmiracles"
- },
- "yt$userId": {
- "$t": "nRO7en25sxio2jY7CiyDeQ"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/mTkisZG6mcU/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Nonprofit",
- "label": "Nonprofits & Activism",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/mTkisZG6mcU?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 21,
- "yt$format": 5
- },
- {
- "url": "rtsp://v6.cache3.c.youtube.com/CiILENy73wIaGQnFmbqRsSI5mRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 21,
- "yt$format": 1
- },
- {
- "url": "rtsp://v4.cache8.c.youtube.com/CiILENy73wIaGQnFmbqRsSI5mRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 21,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "majicmiracles",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "majicmiracles"
- }
- ],
- "media$description": {
- "$t": "Football Game - Drumming from the Bleachers",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Rancho, Cucamonga, Middle, School, Advanced, Band"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=mTkisZG6mcU&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/mTkisZG6mcU/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:10.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/mTkisZG6mcU/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/mTkisZG6mcU/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/mTkisZG6mcU/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:05.250",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/mTkisZG6mcU/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:10.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/mTkisZG6mcU/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:15.750",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Joseph @ Colony High 10-2-11.mp4",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "21"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T03:59:23.000Z"
- },
- "yt$videoid": {
- "$t": "mTkisZG6mcU"
- }
- }
- },
- {
- "gd$etag": "W/\"AkQHRH47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:XnRokBqZBrc"
- },
- "published": {
- "$t": "2012-04-16T03:52:15.000Z"
- },
- "updated": {
- "$t": "2012-04-16T03:52:15.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "People",
- "label": "People & Blogs"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "aaronfootball2"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Outdoor Sports"
- }
- ],
- "title": {
- "$t": "Aaron Playing Football"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/XnRokBqZBrc?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=XnRokBqZBrc&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/XnRokBqZBrc/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/XnRokBqZBrc/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=XnRokBqZBrc"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/XnRokBqZBrc?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "lauraellen32"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/lauraellen32"
- },
- "yt$userId": {
- "$t": "hiO6pvzA3blJzKG_-UVaFQ"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/XnRokBqZBrc/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "People",
- "label": "People & Blogs",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/XnRokBqZBrc?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 115,
- "yt$format": 5
- },
- {
- "url": "rtsp://v6.cache4.c.youtube.com/CiILENy73wIaGQm3BpkakGh0XhMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 115,
- "yt$format": 1
- },
- {
- "url": "rtsp://v1.cache7.c.youtube.com/CiILENy73wIaGQm3BpkakGh0XhMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 115,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "lauraellen32",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "lauraellen32"
- }
- ],
- "media$description": {
- "$t": "October 2011 - He's number 48",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "aaronfootball2, Outdoor Sports"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=XnRokBqZBrc&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/XnRokBqZBrc/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:57.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/XnRokBqZBrc/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/XnRokBqZBrc/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/XnRokBqZBrc/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:28.750",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/XnRokBqZBrc/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:57.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/XnRokBqZBrc/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:26.250",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Aaron Playing Football",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "115"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T03:52:15.000Z"
- },
- "yt$videoid": {
- "$t": "XnRokBqZBrc"
- }
- }
- },
- {
- "gd$etag": "W/\"AkYAR347eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:Weto5t-jNrE"
- },
- "published": {
- "$t": "2012-04-16T03:49:06.000Z"
- },
- "updated": {
- "$t": "2012-04-16T03:49:06.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Diablos"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Spartans"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Mission"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Viejo"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "De"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "La"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Salle"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Football"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "High"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "School"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "2005"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "sports"
- }
- ],
- "title": {
- "$t": "Giacomo Vitko's HS Football Highlights Pt. 3"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/Weto5t-jNrE?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=Weto5t-jNrE&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/Weto5t-jNrE/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/Weto5t-jNrE/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=Weto5t-jNrE"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/Weto5t-jNrE?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "Me4678"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/Me4678"
- },
- "yt$userId": {
- "$t": "qCTTrmhVWvFLqKAU4k0zwQ"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/Weto5t-jNrE/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/Weto5t-jNrE?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 69,
- "yt$format": 5
- },
- {
- "url": "rtsp://v8.cache4.c.youtube.com/CiILENy73wIaGQmxNqPf5mjrWRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 69,
- "yt$format": 1
- },
- {
- "url": "rtsp://v1.cache2.c.youtube.com/CiILENy73wIaGQmxNqPf5mjrWRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 69,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "me4678",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "Me4678"
- }
- ],
- "media$description": {
- "$t": "Mission Viejo DT-72 Vs De La Salle",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Diablos, Spartans, Mission, Viejo, De, La, Salle, Football, High, School, 2005, sports"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=Weto5t-jNrE&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/Weto5t-jNrE/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:34.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/Weto5t-jNrE/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/Weto5t-jNrE/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/Weto5t-jNrE/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:17.250",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/Weto5t-jNrE/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:34.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/Weto5t-jNrE/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:51.750",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Giacomo Vitko's HS Football Highlights Pt. 3",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "69"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T03:49:06.000Z"
- },
- "yt$videoid": {
- "$t": "Weto5t-jNrE"
- }
- }
- },
- {
- "gd$etag": "W/\"AkYDQX47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:NS5e35tTD6k"
- },
- "published": {
- "$t": "2012-04-16T03:49:30.000Z"
- },
- "updated": {
- "$t": "2012-04-16T03:49:30.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Jed Brummett"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Carroll County Crushing Crows"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Indoor Football"
- }
- ],
- "title": {
- "$t": "Jed Brummett - Indoor Football April 15 2012 - 1st TD Pass Vs. Crushing Crows East"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/NS5e35tTD6k?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=NS5e35tTD6k&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/NS5e35tTD6k/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/NS5e35tTD6k/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=NS5e35tTD6k"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/NS5e35tTD6k?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "rodgerraven"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/rodgerraven"
- },
- "yt$userId": {
- "$t": "1dfHFnOQ87E2lcXt53TWXg"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/NS5e35tTD6k/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/NS5e35tTD6k?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 16,
- "yt$format": 5
- },
- {
- "url": "rtsp://v3.cache4.c.youtube.com/CiILENy73wIaGQmpD1Ob314uNRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 16,
- "yt$format": 1
- },
- {
- "url": "rtsp://v4.cache7.c.youtube.com/CiILENy73wIaGQmpD1Ob314uNRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 16,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "rodgerraven",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "rodgerraven"
- }
- ],
- "media$description": {
- "$t": "Crushing Crows North lost a tough fought game vs Crushing Crows East 20-12",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Jed Brummett, Carroll County Crushing Crows, Indoor Football"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=NS5e35tTD6k&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/NS5e35tTD6k/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:08",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/NS5e35tTD6k/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/NS5e35tTD6k/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/NS5e35tTD6k/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:04",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/NS5e35tTD6k/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:08",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/NS5e35tTD6k/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:12",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Jed Brummett - Indoor Football April 15 2012 - 1st TD Pass Vs. Crushing Crows East",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "16"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T03:49:30.000Z"
- },
- "yt$videoid": {
- "$t": "NS5e35tTD6k"
- }
- }
- },
- {
- "gd$etag": "W/\"DU4GSH47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:H6IjXIotjWI"
- },
- "published": {
- "$t": "2012-04-16T03:45:29.000Z"
- },
- "updated": {
- "$t": "2012-04-16T03:45:29.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Blake"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "First"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Pick"
- }
- ],
- "title": {
- "$t": "Blake First Tackle Football Pick vs Bulldogs 7-6 Win"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/H6IjXIotjWI?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=H6IjXIotjWI&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/H6IjXIotjWI/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/H6IjXIotjWI/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=H6IjXIotjWI"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/H6IjXIotjWI?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "BlakeLilFitzStaley"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/BlakeLilFitzStaley"
- },
- "yt$userId": {
- "$t": "XcJFG0qDgG0PzRMTwd6Wqg"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/H6IjXIotjWI/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/H6IjXIotjWI?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 17,
- "yt$format": 5
- },
- {
- "url": "rtsp://v1.cache2.c.youtube.com/CiILENy73wIaGQlijS2KXCOiHxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 17,
- "yt$format": 1
- },
- {
- "url": "rtsp://v2.cache7.c.youtube.com/CiILENy73wIaGQlijS2KXCOiHxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 17,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "blakelilfitzstaley",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "BlakeLilFitzStaley"
- }
- ],
- "media$description": {
- "$t": "",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Blake, First, Pick"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=H6IjXIotjWI&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/H6IjXIotjWI/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:08.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/H6IjXIotjWI/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/H6IjXIotjWI/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/H6IjXIotjWI/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:04.250",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/H6IjXIotjWI/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:08.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/H6IjXIotjWI/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:12.750",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Blake First Tackle Football Pick vs Bulldogs 7-6 Win",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "17"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T03:45:29.000Z"
- },
- "yt$videoid": {
- "$t": "H6IjXIotjWI"
- }
- }
- },
- {
- "gd$etag": "W/\"DEMHQX47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:7MckFDAUJXQ"
- },
- "published": {
- "$t": "2012-04-16T03:20:30.000Z"
- },
- "updated": {
- "$t": "2012-04-16T03:20:30.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "People",
- "label": "People & Blogs"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Anatomy"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Final"
- }
- ],
- "title": {
- "$t": "Anatomy Final.mp4"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/7MckFDAUJXQ?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=7MckFDAUJXQ&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/7MckFDAUJXQ/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/7MckFDAUJXQ/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=7MckFDAUJXQ"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/7MckFDAUJXQ?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "Jacobr158"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/Jacobr158"
- },
- "yt$userId": {
- "$t": "odOMv6k7vbnl_tZDBCs5kw"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/7MckFDAUJXQ/comments?v=2",
- "countHint": 0
- }
- },
- "yt$hd": {},
- "media$group": {
- "media$category": [
- {
- "$t": "People",
- "label": "People & Blogs",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/7MckFDAUJXQ?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 219,
- "yt$format": 5
- },
- {
- "url": "rtsp://v5.cache7.c.youtube.com/CiILENy73wIaGQl0JRQwFCTH7BMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 219,
- "yt$format": 1
- },
- {
- "url": "rtsp://v6.cache1.c.youtube.com/CiILENy73wIaGQl0JRQwFCTH7BMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 219,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "jacobr158",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "Jacobr158"
- }
- ],
- "media$description": {
- "$t": "This video describes the muscles used in throwing a football how to improve them, and what throwing a football looks like.",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Anatomy, Final"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=7MckFDAUJXQ&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/7MckFDAUJXQ/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:49.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/7MckFDAUJXQ/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/7MckFDAUJXQ/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/7MckFDAUJXQ/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:54.750",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/7MckFDAUJXQ/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:49.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/7MckFDAUJXQ/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:44.250",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Anatomy Final.mp4",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "219"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T03:20:30.000Z"
- },
- "yt$videoid": {
- "$t": "7MckFDAUJXQ"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "2"
- }
- },
- {
- "gd$etag": "W/\"DEMESX47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:m_NVZ7A-h6E"
- },
- "published": {
- "$t": "2012-04-16T03:20:08.000Z"
- },
- "updated": {
- "$t": "2012-04-16T03:20:08.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "People",
- "label": "People & Blogs"
- }
- ],
- "title": {
- "$t": "shoe and football=swagg!!!"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/m_NVZ7A-h6E?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=m_NVZ7A-h6E&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/m_NVZ7A-h6E/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/m_NVZ7A-h6E/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=m_NVZ7A-h6E"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/m_NVZ7A-h6E?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "e3swagg"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/e3swagg"
- },
- "yt$userId": {
- "$t": "u9E1DgtYmsB_LGsvsX3rWQ"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/m_NVZ7A-h6E/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "People",
- "label": "People & Blogs",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/m_NVZ7A-h6E?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 15,
- "yt$format": 5
- },
- {
- "url": "rtsp://v1.cache7.c.youtube.com/CiILENy73wIaGQmhhz6wZ1XzmxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 15,
- "yt$format": 1
- },
- {
- "url": "rtsp://v8.cache1.c.youtube.com/CiILENy73wIaGQmhhz6wZ1XzmxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 15,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "e3swagg",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "e3swagg"
- }
- ],
- "media$description": {
- "$t": "my shoe and a football can talk. Lol",
- "type": "plain"
- },
- "media$keywords": {},
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=m_NVZ7A-h6E&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/m_NVZ7A-h6E/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:07.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/m_NVZ7A-h6E/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/m_NVZ7A-h6E/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/m_NVZ7A-h6E/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:03.750",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/m_NVZ7A-h6E/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:07.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/m_NVZ7A-h6E/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:11.250",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "shoe and football=swagg!!!",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "15"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T03:20:08.000Z"
- },
- "yt$videoid": {
- "$t": "m_NVZ7A-h6E"
- }
- }
- },
- {
- "gd$etag": "W/\"DEQMQX47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:dxCDd9d85eQ"
- },
- "published": {
- "$t": "2012-04-16T03:19:40.000Z"
- },
- "updated": {
- "$t": "2012-04-16T03:19:40.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "People",
- "label": "People & Blogs"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "lucy"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "camrae"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "012"
- }
- ],
- "title": {
- "$t": "Just us a finchel love story ep 1"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/dxCDd9d85eQ?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=dxCDd9d85eQ&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/dxCDd9d85eQ/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/dxCDd9d85eQ/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=dxCDd9d85eQ"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/dxCDd9d85eQ?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "Mackenzie Clearwater"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/y5Xccjwl41lISaYrcAIi_A"
- },
- "yt$userId": {
- "$t": "y5Xccjwl41lISaYrcAIi_A"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/dxCDd9d85eQ/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "People",
- "label": "People & Blogs",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/dxCDd9d85eQ?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 7,
- "yt$format": 5
- },
- {
- "url": "rtsp://v1.cache5.c.youtube.com/CiILENy73wIaGQnk5XzXd4MQdxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 7,
- "yt$format": 1
- },
- {
- "url": "rtsp://v2.cache8.c.youtube.com/CiILENy73wIaGQnk5XzXd4MQdxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 7,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "y5Xccjwl41lISaYrcAIi_A",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "Mackenzie Clearwater"
- }
- ],
- "media$description": {
- "$t": "Plot: Finn has a huge crush on Rachel but Finn and Rachel are best friends. Rachel and Sam are going out but Rachel likes Finn. Rachel is not that cool but finn is in the caption of the football team, Finn and Rachel have been best friends since they were 5 they are both 15 when they were little they they promised to be each other's first kiss On with the story At School f-hey Rach u want to come round tonight r-hey yer why not f- sweet r-ur such a nerd f- u bet ya r- oh god I cant be seen with a nerd latter (about to walk a way but finn stands in frount of her) f- realy well then (hugs her ) Q-awww how cute are u two final going out yay that means that Santana ows me $30 r- QUINN f- its great to know that our friends are making bets about our love life (btw Rachel and Quinn are friends) R-well where are very close friends F-(gets a bit sad at the word Friend ) Q- well it was just the glee culb R+F-we need to talk to them Q-(runs away) R- where is she going F- who cears R- where were we ill be at ur around 4 the end sorry it was short the next one will be longer no copy right intende",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "lucy, camrae, 012"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=dxCDd9d85eQ&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/dxCDd9d85eQ/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:03.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/dxCDd9d85eQ/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/dxCDd9d85eQ/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/dxCDd9d85eQ/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:01.750",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/dxCDd9d85eQ/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:03.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/dxCDd9d85eQ/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:05.250",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Just us a finchel love story ep 1",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "7"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T03:19:40.000Z"
- },
- "yt$videoid": {
- "$t": "dxCDd9d85eQ"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "2"
- }
- },
- {
- "gd$etag": "W/\"DEQHRH47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:Yo8PPfYYzYo"
- },
- "published": {
- "$t": "2012-04-16T03:18:55.000Z"
- },
- "updated": {
- "$t": "2012-04-16T03:18:55.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Entertainment",
- "label": "Entertainment"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "All Pro Football 2k8"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "2k sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "visual concepts"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "the catch"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Joe Montana"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Herman Moore"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "San Francisco 49ers"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Detroit Lions"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "NFL"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Google"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Yahoo"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "wikipedia"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "bing"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "PS3"
- }
- ],
- "title": {
- "$t": "All Pro Football 2K8 Spectacular Catch!!! Joe Montana to Herman Moore"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/Yo8PPfYYzYo?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=Yo8PPfYYzYo&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/Yo8PPfYYzYo/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/Yo8PPfYYzYo/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=Yo8PPfYYzYo"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/Yo8PPfYYzYo?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "tjglendinning"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/tjglendinning"
- },
- "yt$userId": {
- "$t": "1IFS_bkPOus2ZVbdZdPELQ"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/Yo8PPfYYzYo/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Entertainment",
- "label": "Entertainment",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/Yo8PPfYYzYo?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 33,
- "yt$format": 5
- },
- {
- "url": "rtsp://v5.cache5.c.youtube.com/CiILENy73wIaGQmKzRj2PQ-PYhMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 33,
- "yt$format": 1
- },
- {
- "url": "rtsp://v4.cache6.c.youtube.com/CiILENy73wIaGQmKzRj2PQ-PYhMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 33,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "tjglendinning",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "tjglendinning"
- }
- ],
- "media$description": {
- "$t": "Awesome catch... The 2K Series of football games are still better than modern games in nearly all aspects. The graphics are not quite on par, but this game was made in 2007 and looks way better than Madden 10 or possibly even 11 graphically. The presentation is still top notch.",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "All Pro Football 2k8, 2k sports, visual concepts, the catch, Joe Montana, Herman Moore, San Francisco 49ers, Detroit Lions, NFL, Google, Yahoo, wikipedia, bing, PS3"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=Yo8PPfYYzYo&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/Yo8PPfYYzYo/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:16.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/Yo8PPfYYzYo/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/Yo8PPfYYzYo/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/Yo8PPfYYzYo/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:08.250",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/Yo8PPfYYzYo/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:16.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/Yo8PPfYYzYo/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:24.750",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "All Pro Football 2K8 Spectacular Catch!!! Joe Montana to Herman Moore",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "33"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T03:18:55.000Z"
- },
- "yt$videoid": {
- "$t": "Yo8PPfYYzYo"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "4"
- }
- },
- {
- "gd$etag": "W/\"DEUBRH47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:NMYpMDpId-E"
- },
- "published": {
- "$t": "2012-04-16T03:17:35.000Z"
- },
- "updated": {
- "$t": "2012-04-16T03:17:35.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Education",
- "label": "Education"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Adult"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "ABA"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Therapy"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Independent Leisure skills"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Scrapbooking"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Special needs"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Autism"
- }
- ],
- "title": {
- "$t": "Leisure Skills: Scrapbooking"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/NMYpMDpId-E?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=NMYpMDpId-E&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/NMYpMDpId-E/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=NMYpMDpId-E"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/NMYpMDpId-E?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "ShapeOfBehavior"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/ShapeOfBehavior"
- },
- "yt$userId": {
- "$t": "tGXXyf0lq885PjT9avLtJA"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "denied"
- },
- {
- "action": "commentVote",
- "permission": "denied"
- },
- {
- "action": "videoRespond",
- "permission": "denied"
- },
- {
- "action": "rate",
- "permission": "denied"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "yt$hd": {},
- "media$group": {
- "media$category": [
- {
- "$t": "Education",
- "label": "Education",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/NMYpMDpId-E?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 16,
- "yt$format": 5
- },
- {
- "url": "rtsp://v4.cache4.c.youtube.com/CiILENy73wIaGQnhd0g6MCnGNBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 16,
- "yt$format": 1
- },
- {
- "url": "rtsp://v4.cache8.c.youtube.com/CiILENy73wIaGQnhd0g6MCnGNBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 16,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "shapeofbehavior",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "ShapeOfBehavior"
- }
- ],
- "media$description": {
- "$t": "The Shape focuses on building leisure skills around patient preference and choice in the young adult program. This young adult likes football and he enjoys the floppy paper and the stickers allow the incoporation of more fine motor development. Building independent leisure skills promotes independence and is crticial for better quality of life.",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Adult, ABA, Therapy, Independent Leisure skills, Scrapbooking, Special needs, Autism"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=NMYpMDpId-E&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/NMYpMDpId-E/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:08",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/NMYpMDpId-E/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/NMYpMDpId-E/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/NMYpMDpId-E/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:04",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/NMYpMDpId-E/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:08",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/NMYpMDpId-E/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:12",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Leisure Skills: Scrapbooking",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "16"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T03:17:35.000Z"
- },
- "yt$videoid": {
- "$t": "NMYpMDpId-E"
- }
- }
- },
- {
- "gd$etag": "W/\"DEUAQ347eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:NVEvZmggNKM"
- },
- "published": {
- "$t": "2012-04-16T03:17:22.000Z"
- },
- "updated": {
- "$t": "2012-04-16T03:17:22.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "People",
- "label": "People & Blogs"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "JUSTIN"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "BIEBER"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "ES"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "DEL"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "BARCA!!!"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "youtube"
- }
- ],
- "title": {
- "$t": "JUSTIN BIEBER ES DEL BARCA!!! - YouTube.flv"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/NVEvZmggNKM?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=NVEvZmggNKM&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/NVEvZmggNKM/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/NVEvZmggNKM/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=NVEvZmggNKM"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/NVEvZmggNKM?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "JUSTIN startpop"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/WZNMChP4aOldvORBIFIQTA"
- },
- "yt$userId": {
- "$t": "WZNMChP4aOldvORBIFIQTA"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/NVEvZmggNKM/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "People",
- "label": "People & Blogs",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/NVEvZmggNKM?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 169,
- "yt$format": 5
- },
- {
- "url": "rtsp://v7.cache5.c.youtube.com/CiILENy73wIaGQmjNCBoZi9RNRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 169,
- "yt$format": 1
- },
- {
- "url": "rtsp://v8.cache7.c.youtube.com/CiILENy73wIaGQmjNCBoZi9RNRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 169,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "WZNMChP4aOldvORBIFIQTA",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "JUSTIN startpop"
- }
- ],
- "media$description": {
- "$t": "Justin Bieber jugando football con la camisera del barca vamosss Justin goo goo ...",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "JUSTIN, BIEBER, ES, DEL, BARCA!!!, youtube"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=NVEvZmggNKM&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/NVEvZmggNKM/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:24.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/NVEvZmggNKM/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/NVEvZmggNKM/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/NVEvZmggNKM/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:42.250",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/NVEvZmggNKM/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:24.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/NVEvZmggNKM/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:06.750",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "JUSTIN BIEBER ES DEL BARCA!!! - YouTube.flv",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "169"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T03:17:22.000Z"
- },
- "yt$videoid": {
- "$t": "NVEvZmggNKM"
- }
- }
- },
- {
- "gd$etag": "W/\"D0QMQH47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:fe9lRnedv2U"
- },
- "published": {
- "$t": "2012-04-16T03:03:01.000Z"
- },
- "updated": {
- "$t": "2012-04-16T03:03:01.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Football"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "talented freshmen"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "quarterback"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "highlights"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "valuable"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "nfl"
- }
- ],
- "title": {
- "$t": "Pano Tiatia 2011 Football Highlights"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/fe9lRnedv2U?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=fe9lRnedv2U&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/fe9lRnedv2U/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/fe9lRnedv2U/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=fe9lRnedv2U"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/fe9lRnedv2U?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "lstiax2"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/lstiax2"
- },
- "yt$userId": {
- "$t": "jWHn5L0Cf4y2XozrkEG8tA"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "denied"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/fe9lRnedv2U/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/fe9lRnedv2U?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 234,
- "yt$format": 5
- },
- {
- "url": "rtsp://v4.cache8.c.youtube.com/CiILENy73wIaGQllv513RmXvfRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 234,
- "yt$format": 1
- },
- {
- "url": "rtsp://v5.cache8.c.youtube.com/CiILENy73wIaGQllv513RmXvfRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 234,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "lstiax2",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "lstiax2"
- }
- ],
- "media$description": {
- "$t": "Pano Tiatia, Freshmen #29 Running Back | Pineview High School, St. George, Utah Ran over 1500 yards in the season.",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Football, sports, talented freshmen, quarterback, highlights, valuable, nfl"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=fe9lRnedv2U&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/fe9lRnedv2U/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:57",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/fe9lRnedv2U/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/fe9lRnedv2U/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/fe9lRnedv2U/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:58.500",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/fe9lRnedv2U/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:57",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/fe9lRnedv2U/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:55.500",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Pano Tiatia 2011 Football Highlights",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "234"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T03:03:01.000Z"
- },
- "yt$videoid": {
- "$t": "fe9lRnedv2U"
- }
- }
- },
- {
- "gd$etag": "W/\"D0YDQH47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:UF4a21RDJ78"
- },
- "published": {
- "$t": "2012-04-16T02:59:31.000Z"
- },
- "updated": {
- "$t": "2012-04-16T02:59:31.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "People",
- "label": "People & Blogs"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Davis Rugby"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Davis High"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Rugby"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "DC Rugby"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Utah Rugby"
- }
- ],
- "title": {
- "$t": "Davis High Rugby vs Rocky Mtn Rugby Fight.wmv"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/UF4a21RDJ78?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=UF4a21RDJ78&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/UF4a21RDJ78/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/UF4a21RDJ78/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=UF4a21RDJ78"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/UF4a21RDJ78?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "JayGBarton1"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/JayGBarton1"
- },
- "yt$userId": {
- "$t": "jS-zBAq670xAB5vg0fbE4g"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/UF4a21RDJ78/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "People",
- "label": "People & Blogs",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/UF4a21RDJ78?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 79,
- "yt$format": 5
- },
- {
- "url": "rtsp://v6.cache1.c.youtube.com/CiILENy73wIaGQm_J0NU2xpeUBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 79,
- "yt$format": 1
- },
- {
- "url": "rtsp://v7.cache5.c.youtube.com/CiILENy73wIaGQm_J0NU2xpeUBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 79,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "jaygbarton1",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "JayGBarton1"
- }
- ],
- "media$description": {
- "$t": "Davis High Rugby in Davis County, Utah played a game at the Davis High Football field in Kaysville, Utah. Watch Davis High School play these boys... Davis worked them in this game it was exciting to see Davis Play these boys. Because of a fight the ref called the game a draw...",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Davis Rugby, Davis High, Rugby, DC Rugby, Utah Rugby"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=UF4a21RDJ78&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/UF4a21RDJ78/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:39.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/UF4a21RDJ78/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/UF4a21RDJ78/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/UF4a21RDJ78/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:19.750",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/UF4a21RDJ78/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:39.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/UF4a21RDJ78/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:59.250",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Davis High Rugby vs Rocky Mtn Rugby Fight.wmv",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "79"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:59:31.000Z"
- },
- "yt$videoid": {
- "$t": "UF4a21RDJ78"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "2"
- }
- },
- {
- "gd$etag": "W/\"DkAHSX47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:QSmB4X6WCwU"
- },
- "published": {
- "$t": "2012-04-16T02:52:18.000Z"
- },
- "updated": {
- "$t": "2012-04-16T02:52:18.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "People",
- "label": "People & Blogs"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Nikki"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Rowe"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Football"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Isaac"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Govea"
- }
- ],
- "title": {
- "$t": "Nikki Rowe Football Isaac Govea 2010"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/QSmB4X6WCwU?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=QSmB4X6WCwU&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/QSmB4X6WCwU/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/QSmB4X6WCwU/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=QSmB4X6WCwU"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/QSmB4X6WCwU?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "dan100295"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/dan100295"
- },
- "yt$userId": {
- "$t": "F4YOrtG8Jw1dp2U4IFh10Q"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/QSmB4X6WCwU/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "People",
- "label": "People & Blogs",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/QSmB4X6WCwU?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 302,
- "yt$format": 5
- },
- {
- "url": "rtsp://v2.cache1.c.youtube.com/CiILENy73wIaGQkFC5Z-4YEpQRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 302,
- "yt$format": 1
- },
- {
- "url": "rtsp://v2.cache8.c.youtube.com/CiILENy73wIaGQkFC5Z-4YEpQRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 302,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "dan100295",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "dan100295"
- }
- ],
- "media$description": {
- "$t": "#21 Isaac Govea Senior Year Highlights",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Nikki, Rowe, Football, Isaac, Govea"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=QSmB4X6WCwU&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/QSmB4X6WCwU/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:31",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/QSmB4X6WCwU/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/QSmB4X6WCwU/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/QSmB4X6WCwU/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:15.500",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/QSmB4X6WCwU/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:31",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/QSmB4X6WCwU/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:03:46.500",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Nikki Rowe Football Isaac Govea 2010",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "302"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:52:18.000Z"
- },
- "yt$videoid": {
- "$t": "QSmB4X6WCwU"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "1"
- }
- },
- {
- "gd$etag": "W/\"DkQHSX47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:TWbTiYA-g4c"
- },
- "published": {
- "$t": "2012-04-16T02:45:38.000Z"
- },
- "updated": {
- "$t": "2012-04-16T02:45:38.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Football"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Highlights"
- }
- ],
- "title": {
- "$t": "JAKE SANDERS 2011 CARROLLTON FOOTBALL HIGHLIGHTS"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/TWbTiYA-g4c?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=TWbTiYA-g4c&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/TWbTiYA-g4c/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/TWbTiYA-g4c/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=TWbTiYA-g4c"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/TWbTiYA-g4c?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "Collier Sanders"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/IfDpsBQG7sxYY6fW4VMXww"
- },
- "yt$userId": {
- "$t": "IfDpsBQG7sxYY6fW4VMXww"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/TWbTiYA-g4c/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/TWbTiYA-g4c?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 242,
- "yt$format": 5
- },
- {
- "url": "rtsp://v7.cache6.c.youtube.com/CiILENy73wIaGQmHgz6AidNmTRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 242,
- "yt$format": 1
- },
- {
- "url": "rtsp://v4.cache6.c.youtube.com/CiILENy73wIaGQmHgz6AidNmTRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 242,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "IfDpsBQG7sxYY6fW4VMXww",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "Collier Sanders"
- }
- ],
- "media$description": {
- "$t": "Jake Sanders 2011 football highlights - Carrollton High School Trojans Class of 2014 6'6\" 320 lbs OT/OG",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Football, Highlights"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=TWbTiYA-g4c&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/TWbTiYA-g4c/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:01",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/TWbTiYA-g4c/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/TWbTiYA-g4c/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/TWbTiYA-g4c/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:00.500",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/TWbTiYA-g4c/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:01",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/TWbTiYA-g4c/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:03:01.500",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "JAKE SANDERS 2011 CARROLLTON FOOTBALL HIGHLIGHTS",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "242"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:45:38.000Z"
- },
- "yt$videoid": {
- "$t": "TWbTiYA-g4c"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "4"
- }
- },
- {
- "gd$etag": "W/\"DkYDSX47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:A3nrRdjtPs8"
- },
- "published": {
- "$t": "2012-04-16T02:42:58.000Z"
- },
- "updated": {
- "$t": "2012-04-16T02:42:58.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "People",
- "label": "People & Blogs"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "football"
- }
- ],
- "title": {
- "$t": "cardinals flag football"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/A3nrRdjtPs8?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=A3nrRdjtPs8&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/A3nrRdjtPs8/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/A3nrRdjtPs8/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=A3nrRdjtPs8"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/A3nrRdjtPs8?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "Samantha roberts"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/FS184ENyxC4MsxogNYxYIw"
- },
- "yt$userId": {
- "$t": "FS184ENyxC4MsxogNYxYIw"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/A3nrRdjtPs8/comments?v=2",
- "countHint": 0
- }
- },
- "yt$hd": {},
- "media$group": {
- "media$category": [
- {
- "$t": "People",
- "label": "People & Blogs",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/A3nrRdjtPs8?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 6,
- "yt$format": 5
- },
- {
- "url": "rtsp://v6.cache1.c.youtube.com/CiILENy73wIaGQnPPu3YRet5AxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 6,
- "yt$format": 1
- },
- {
- "url": "rtsp://v2.cache8.c.youtube.com/CiILENy73wIaGQnPPu3YRet5AxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 6,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "FS184ENyxC4MsxogNYxYIw",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "Samantha roberts"
- }
- ],
- "media$description": {
- "$t": "Cardinals Flagfootball",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "football"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=A3nrRdjtPs8&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/A3nrRdjtPs8/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:03",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/A3nrRdjtPs8/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/A3nrRdjtPs8/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/A3nrRdjtPs8/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:01.500",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/A3nrRdjtPs8/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:03",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/A3nrRdjtPs8/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:04.500",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "cardinals flag football",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "6"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:42:58.000Z"
- },
- "yt$videoid": {
- "$t": "A3nrRdjtPs8"
- }
- }
- },
- {
- "gd$etag": "W/\"CU4EQX47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:_bKFFGfhx0k"
- },
- "published": {
- "$t": "2012-04-16T02:38:20.000Z"
- },
- "updated": {
- "$t": "2012-04-16T02:38:20.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Nonprofit",
- "label": "Nonprofits & Activism"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "tshirt"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Battle"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "2010"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "10"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "30"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "11"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "31"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "40"
- }
- ],
- "title": {
- "$t": "T-Shirt Battle"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/_bKFFGfhx0k?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=_bKFFGfhx0k&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/_bKFFGfhx0k/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=_bKFFGfhx0k"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/_bKFFGfhx0k?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "3LittleNinjas"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/3LittleNinjas"
- },
- "yt$userId": {
- "$t": "aoZimlscjBchASOWVd1KtA"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "moderated"
- },
- {
- "action": "commentVote",
- "permission": "denied"
- },
- {
- "action": "videoRespond",
- "permission": "denied"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/_bKFFGfhx0k/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Nonprofit",
- "label": "Nonprofits & Activism",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/_bKFFGfhx0k?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 45,
- "yt$format": 5
- },
- {
- "url": "rtsp://v5.cache5.c.youtube.com/CiILENy73wIaGQlJx-FnFIWy_RMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 45,
- "yt$format": 1
- },
- {
- "url": "rtsp://v8.cache7.c.youtube.com/CiILENy73wIaGQlJx-FnFIWy_RMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 45,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "3littleninjas",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "3LittleNinjas"
- }
- ],
- "media$description": {
- "$t": "Monster vs. Football vs. Boston Terrier vs. Eagles vs. Boston Terrier",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "tshirt, Battle, 2010, 10, 30, 11, 31, 40"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=_bKFFGfhx0k&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/_bKFFGfhx0k/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:22.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/_bKFFGfhx0k/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/_bKFFGfhx0k/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/_bKFFGfhx0k/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:11.250",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/_bKFFGfhx0k/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:22.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/_bKFFGfhx0k/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:33.750",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "T-Shirt Battle",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "45"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:38:20.000Z"
- },
- "yt$videoid": {
- "$t": "_bKFFGfhx0k"
- }
- }
- },
- {
- "gd$etag": "W/\"CU8HRX47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:JKGRaBGCXHI"
- },
- "published": {
- "$t": "2012-04-16T02:37:14.000Z"
- },
- "updated": {
- "$t": "2012-04-16T02:37:14.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "People",
- "label": "People & Blogs"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "CO"
- }
- ],
- "title": {
- "$t": "Cross Over sencillo Football Skills"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/JKGRaBGCXHI?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=JKGRaBGCXHI&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/JKGRaBGCXHI/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/JKGRaBGCXHI/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=JKGRaBGCXHI"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/JKGRaBGCXHI?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "XavierRojo1"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/XavierRojo1"
- },
- "yt$userId": {
- "$t": "i7lel-X-k9WhWCYBCReCbA"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/JKGRaBGCXHI/comments?v=2",
- "countHint": 0
- }
- },
- "yt$hd": {},
- "media$group": {
- "media$category": [
- {
- "$t": "People",
- "label": "People & Blogs",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/JKGRaBGCXHI?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 9,
- "yt$format": 5
- },
- {
- "url": "rtsp://v1.cache2.c.youtube.com/CiILENy73wIaGQlyXIIRaJGhJBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 9,
- "yt$format": 1
- },
- {
- "url": "rtsp://v6.cache2.c.youtube.com/CiILENy73wIaGQlyXIIRaJGhJBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 9,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "xavierrojo1",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "XavierRojo1"
- }
- ],
- "media$description": {
- "$t": "Mi cross over sencillo",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "CO"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=JKGRaBGCXHI&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/JKGRaBGCXHI/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:04.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/JKGRaBGCXHI/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/JKGRaBGCXHI/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/JKGRaBGCXHI/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:02.250",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/JKGRaBGCXHI/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:04.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/JKGRaBGCXHI/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:06.750",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Cross Over sencillo Football Skills",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "9"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:37:14.000Z"
- },
- "yt$videoid": {
- "$t": "JKGRaBGCXHI"
- }
- }
- },
- {
- "gd$etag": "W/\"CEABSX47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:8mTmvj_j-g8"
- },
- "published": {
- "$t": "2012-04-16T02:30:08.000Z"
- },
- "updated": {
- "$t": "2012-04-16T05:05:58.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "SBU"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Football"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Bearcats"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Weights"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "NCAA"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Samoa"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Samoans"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Jorge"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Batres"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Shedd"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Jameson"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Manuma"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Dro"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Ben"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Maligni"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Villa"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Athletes"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Strenght"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Conditioning"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "hodgetwins"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Work"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Big"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Muscle"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Iron"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Pump"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Protein"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Workout"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Curls"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Bench"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Squat"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Split"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Jerk"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Incline"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Massive"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Huge"
- }
- ],
- "title": {
- "$t": "SBU Football Grind Time Season."
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/8mTmvj_j-g8?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=8mTmvj_j-g8&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/8mTmvj_j-g8/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/8mTmvj_j-g8/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=8mTmvj_j-g8"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/8mTmvj_j-g8?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "jbKicks10"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/jbKicks10"
- },
- "yt$userId": {
- "$t": "_LQBLfh5z9r3se1gQNsglA"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/8mTmvj_j-g8/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/8mTmvj_j-g8?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 171,
- "yt$format": 5
- },
- {
- "url": "rtsp://v3.cache7.c.youtube.com/CiILENy73wIaGQkP-uM_vuZk8hMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 171,
- "yt$format": 1
- },
- {
- "url": "rtsp://v6.cache4.c.youtube.com/CiILENy73wIaGQkP-uM_vuZk8hMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 171,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "jbkicks10",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "jbKicks10"
- }
- ],
- "media$description": {
- "$t": "Sbu Football players on a off day getting better for the upcoming season. Family!",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "SBU, Football, Bearcats, Weights, NCAA, Samoa, Samoans, Jorge, Batres, Shedd, Jameson, Manuma, Dro, Ben, Maligni, Villa, Athletes, Sports, Strenght, Conditioning, hodgetwins, Work, Big, Muscle, Iron, Pump, Protein, Workout, Curls, Bench, Squat, Split, Jerk, Incline, Massive, Huge"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=8mTmvj_j-g8&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/8mTmvj_j-g8/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:25.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/8mTmvj_j-g8/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/8mTmvj_j-g8/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/8mTmvj_j-g8/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:42.750",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/8mTmvj_j-g8/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:25.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/8mTmvj_j-g8/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:08.250",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "SBU Football Grind Time Season.",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "171"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:30:08.000Z"
- },
- "yt$videoid": {
- "$t": "8mTmvj_j-g8"
- }
- },
- "gd$rating": {
- "average": 5,
- "max": 5,
- "min": 1,
- "numRaters": 1,
- "rel": "http://schemas.google.com/g/2005#overall"
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "8"
- },
- "yt$rating": {
- "numDislikes": "0",
- "numLikes": "1"
- }
- },
- {
- "gd$etag": "W/\"CUMGRX47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:GYQXHEMNrNs"
- },
- "published": {
- "$t": "2012-04-16T02:30:24.000Z"
- },
- "updated": {
- "$t": "2012-04-16T02:30:24.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Entertainment",
- "label": "Entertainment"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "cosmos"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "ranni"
- }
- ],
- "title": {
- "$t": "18th Cosmos Football Tournament Ranni"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/GYQXHEMNrNs?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=GYQXHEMNrNs&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/GYQXHEMNrNs/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/GYQXHEMNrNs/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=GYQXHEMNrNs"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/GYQXHEMNrNs?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "nibis000"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/nibis000"
- },
- "yt$userId": {
- "$t": "bRZsdMalHparLXLqGO7FjA"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/GYQXHEMNrNs/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Entertainment",
- "label": "Entertainment",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/GYQXHEMNrNs?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 54,
- "yt$format": 5
- },
- {
- "url": "rtsp://v4.cache7.c.youtube.com/CiILENy73wIaGQnbrA1DHBeEGRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 54,
- "yt$format": 1
- },
- {
- "url": "rtsp://v6.cache7.c.youtube.com/CiILENy73wIaGQnbrA1DHBeEGRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 54,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "nibis000",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "nibis000"
- }
- ],
- "media$description": {
- "$t": "www.cosmosranni.com Video By : Sibin Thomas n Lijo Varghese",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "cosmos, ranni"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=GYQXHEMNrNs&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/GYQXHEMNrNs/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:27",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/GYQXHEMNrNs/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/GYQXHEMNrNs/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/GYQXHEMNrNs/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:13.500",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/GYQXHEMNrNs/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:27",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/GYQXHEMNrNs/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:40.500",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "18th Cosmos Football Tournament Ranni",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "54"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:30:24.000Z"
- },
- "yt$videoid": {
- "$t": "GYQXHEMNrNs"
- }
- }
- },
- {
- "gd$etag": "W/\"CUcBQ347eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:BXEkcUrDT0w"
- },
- "published": {
- "$t": "2012-04-16T02:24:12.000Z"
- },
- "updated": {
- "$t": "2012-04-16T02:24:12.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Entertainment",
- "label": "Entertainment"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "ronaldo"
- }
- ],
- "title": {
- "$t": "Top five divers of world football"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/BXEkcUrDT0w?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=BXEkcUrDT0w&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/BXEkcUrDT0w/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/BXEkcUrDT0w/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=BXEkcUrDT0w"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/BXEkcUrDT0w?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "pnirajan"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/pnirajan"
- },
- "yt$userId": {
- "$t": "CzVunAaNES51pCtAp8pFdg"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/BXEkcUrDT0w/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Entertainment",
- "label": "Entertainment",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/BXEkcUrDT0w?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 56,
- "yt$format": 5
- },
- {
- "url": "rtsp://v1.cache3.c.youtube.com/CiILENy73wIaGQlMT8NKcSRxBRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 56,
- "yt$format": 1
- },
- {
- "url": "rtsp://v8.cache1.c.youtube.com/CiILENy73wIaGQlMT8NKcSRxBRMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 56,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "pnirajan",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "pnirajan"
- }
- ],
- "media$description": {
- "$t": "ronaldo atlintop busquets",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "ronaldo"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=BXEkcUrDT0w&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/BXEkcUrDT0w/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:28",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/BXEkcUrDT0w/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/BXEkcUrDT0w/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/BXEkcUrDT0w/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:14",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/BXEkcUrDT0w/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:28",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/BXEkcUrDT0w/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:42",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Top five divers of world football",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "56"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:24:12.000Z"
- },
- "yt$videoid": {
- "$t": "BXEkcUrDT0w"
- }
- }
- },
- {
- "gd$etag": "W/\"CE4NQH47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:s6uAgjYxL8w"
- },
- "published": {
- "$t": "2012-04-16T02:23:11.000Z"
- },
- "updated": {
- "$t": "2012-04-16T02:23:11.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Education",
- "label": "Education"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "WPI"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Blimp"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Autonomous"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Flying"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "RC"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "RC Blimp"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "MQP"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Marcus Menghini"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Daniel Lanier"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Daniel Sarafconn"
- }
- ],
- "title": {
- "$t": "WPI Autonomous Blimp MQP Speed Test"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/s6uAgjYxL8w?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=s6uAgjYxL8w&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/s6uAgjYxL8w/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/s6uAgjYxL8w/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=s6uAgjYxL8w"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/s6uAgjYxL8w?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "MazonDel"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/MazonDel"
- },
- "yt$userId": {
- "$t": "7nVP6VVh0wA2HdJMzUwUww"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/s6uAgjYxL8w/comments?v=2",
- "countHint": 0
- }
- },
- "yt$hd": {},
- "media$group": {
- "media$category": [
- {
- "$t": "Education",
- "label": "Education",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/s6uAgjYxL8w?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 32,
- "yt$format": 5
- },
- {
- "url": "rtsp://v3.cache1.c.youtube.com/CiILENy73wIaGQnMLzE2goCrsxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 32,
- "yt$format": 1
- },
- {
- "url": "rtsp://v5.cache5.c.youtube.com/CiILENy73wIaGQnMLzE2goCrsxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 32,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "mazondel",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "MazonDel"
- }
- ],
- "media$description": {
- "$t": "Marcus Menghini (pilot) and Daniel Lanier (tether operator) take the blimp down to the WPI football field and do a speed run from one end to the other with an amusing ending. Estimated speed is about 8.2 MPH and 7.1 Knots. The goals and requirements of the project stipulated that the blimp was able to beat 5 knot speeds for up to 90 minutes.",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "WPI, Blimp, Autonomous, Flying, RC, RC Blimp, MQP, Marcus Menghini, Daniel Lanier, Daniel Sarafconn"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=s6uAgjYxL8w&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/s6uAgjYxL8w/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:16",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/s6uAgjYxL8w/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/s6uAgjYxL8w/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/s6uAgjYxL8w/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:08",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/s6uAgjYxL8w/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:16",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/s6uAgjYxL8w/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:24",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "WPI Autonomous Blimp MQP Speed Test",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "32"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:23:11.000Z"
- },
- "yt$videoid": {
- "$t": "s6uAgjYxL8w"
- }
- }
- },
- {
- "gd$etag": "W/\"CE4MQH47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:n9laM0U_It4"
- },
- "published": {
- "$t": "2012-04-16T02:23:01.000Z"
- },
- "updated": {
- "$t": "2012-04-16T02:23:01.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "People",
- "label": "People & Blogs"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Piermario Morosini"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "collapses on pitch"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Pescara vs Livorno 14/04/2012"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Serie PIERMARIO MOROSINI"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "SI ACCASCIATO zaslabl"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "atak serca die dies smierc"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "ZAWAL SERCA DIE DIES DIED"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Piermario Morosini collapses"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "on pitch and DIE Pescara"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "vs livorno"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "collapsing during game"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "14 april 2012"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Piermario Morosini dead"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "after collapsing on pitch"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Piermario Morosini RIP"
- }
- ],
- "title": {
- "$t": "DEATH OF Italian Football Player \"Piermario Morosini"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/n9laM0U_It4?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=n9laM0U_It4&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/n9laM0U_It4/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/n9laM0U_It4/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=n9laM0U_It4"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/n9laM0U_It4?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "uisdui jkdfuji"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/u8AmWN8WK5om_0mDm1RwVg"
- },
- "yt$userId": {
- "$t": "u8AmWN8WK5om_0mDm1RwVg"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/n9laM0U_It4/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "People",
- "label": "People & Blogs",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/n9laM0U_It4?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 147,
- "yt$format": 5
- },
- {
- "url": "rtsp://v4.cache1.c.youtube.com/CiILENy73wIaGQneIj9FM1rZnxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 147,
- "yt$format": 1
- },
- {
- "url": "rtsp://v2.cache6.c.youtube.com/CiILENy73wIaGQneIj9FM1rZnxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 147,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "u8AmWN8WK5om_0mDm1RwVg",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "uisdui jkdfuji"
- }
- ],
- "media$description": {
- "$t": "tinyurl.com Piermario Morosini, collapses on pitch, Pescara vs Livorno 14/04/2012, Serie PIERMARIO MOROSINI, SI ACCASCIATO zaslabl, atak serca die dies smierc, ZAWAL SERCA DIE DIES DIED,Piermario Morosini collapses, on pitch and DIE Pescara, vs livorno, Piermario Morosini, collapsing during game, 14 april 2012,Piermario Morosini DEAD on the pitch,Piermario Morosini dead, after collapsing on pitch,Piermario Morosini RIP",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Piermario Morosini, collapses on pitch, Pescara vs Livorno 14/04/2012, Serie PIERMARIO MOROSINI, SI ACCASCIATO zaslabl, atak serca die dies smierc, ZAWAL SERCA DIE DIES DIED, Piermario Morosini collapses, on pitch and DIE Pescara, vs livorno, collapsing during game, 14 april 2012, Piermario Morosini dead, after collapsing on pitch, Piermario Morosini RIP"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=n9laM0U_It4&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/n9laM0U_It4/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:13.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/n9laM0U_It4/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/n9laM0U_It4/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/n9laM0U_It4/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:36.750",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/n9laM0U_It4/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:13.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/n9laM0U_It4/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:50.250",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "DEATH OF Italian Football Player \"Piermario Morosini",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "147"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:23:01.000Z"
- },
- "yt$videoid": {
- "$t": "n9laM0U_It4"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "43"
- }
- },
- {
- "gd$etag": "W/\"C0QNQH47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:Y_9kP-Pduqk"
- },
- "published": {
- "$t": "2012-04-16T02:23:53.000Z"
- },
- "updated": {
- "$t": "2012-04-16T04:43:11.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Richmond#Tigers#MCG#AFL#"
- }
- ],
- "title": {
- "$t": "RichmondTigers2012 'Hear the Tigers Raw' Membership Promo unauthorised"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/Y_9kP-Pduqk?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=Y_9kP-Pduqk&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/Y_9kP-Pduqk/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/Y_9kP-Pduqk/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=Y_9kP-Pduqk"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/Y_9kP-Pduqk?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "RichmondTigers2012"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/RichmondTigers2012"
- },
- "yt$userId": {
- "$t": "o8ndLvRQsNNnxkfO2KsKew"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/Y_9kP-Pduqk/comments?v=2",
- "countHint": 0
- }
- },
- "yt$hd": {},
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/Y_9kP-Pduqk?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 36,
- "yt$format": 5
- },
- {
- "url": "rtsp://v1.cache8.c.youtube.com/CiILENy73wIaGQmput3jP2T_YxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 36,
- "yt$format": 1
- },
- {
- "url": "rtsp://v8.cache7.c.youtube.com/CiILENy73wIaGQmput3jP2T_YxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 36,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "richmondtigers2012",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "RichmondTigers2012"
- }
- ],
- "media$description": {
- "$t": "RichmondTigers2012 'Hear the Tigers Raw' Membership Promo unauthorised written, spoken & photographed by Pete Dowe. www.richmondfc.com.au www.youtube.com www.youtube.com www.youtube.com Richmond#Tigers#Membership#Promo#MCG#Punt#Rd#Oval#Melbourne#Cricket#Ground#AFL#Football#",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Richmond#Tigers#MCG#AFL#"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=Y_9kP-Pduqk&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/Y_9kP-Pduqk/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:18",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/Y_9kP-Pduqk/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/Y_9kP-Pduqk/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/Y_9kP-Pduqk/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:09",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/Y_9kP-Pduqk/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:18",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/Y_9kP-Pduqk/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:27",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "RichmondTigers2012 'Hear the Tigers Raw' Membership Promo unauthorised",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "36"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:23:53.000Z"
- },
- "yt$videoid": {
- "$t": "Y_9kP-Pduqk"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "8"
- }
- },
- {
- "gd$etag": "W/\"CUcHR347eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:G8WwszlH5bM"
- },
- "published": {
- "$t": "2012-04-16T02:23:56.000Z"
- },
- "updated": {
- "$t": "2012-04-16T02:23:56.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "topps"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "amazon"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "baseball cards"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "sportdeals4u"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Wowzzer"
- }
- ],
- "title": {
- "$t": "amazon order from wowzzer"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/G8WwszlH5bM?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=G8WwszlH5bM&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/G8WwszlH5bM/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/G8WwszlH5bM/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=G8WwszlH5bM"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/G8WwszlH5bM?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "DingerzDarwin"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/DingerzDarwin"
- },
- "yt$userId": {
- "$t": "WfKIyLDZKDAdnJDLZT4a3g"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/G8WwszlH5bM/comments?v=2",
- "countHint": 0
- }
- },
- "yt$hd": {},
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/G8WwszlH5bM?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 169,
- "yt$format": 5
- },
- {
- "url": "rtsp://v7.cache2.c.youtube.com/CiILENy73wIaGQmz5Uc5s7DFGxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 169,
- "yt$format": 1
- },
- {
- "url": "rtsp://v2.cache5.c.youtube.com/CiILENy73wIaGQmz5Uc5s7DFGxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 169,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "dingerzdarwin",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "DingerzDarwin"
- }
- ],
- "media$description": {
- "$t": "Amazon/wowzzer sent football cards instead of baseball cards.",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "topps, amazon, baseball cards, sportdeals4u, Wowzzer"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=G8WwszlH5bM&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/G8WwszlH5bM/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:24.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/G8WwszlH5bM/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/G8WwszlH5bM/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/G8WwszlH5bM/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:42.250",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/G8WwszlH5bM/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:24.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/G8WwszlH5bM/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:06.750",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "amazon order from wowzzer",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "169"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:23:56.000Z"
- },
- "yt$videoid": {
- "$t": "G8WwszlH5bM"
- }
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "13"
- }
- },
- {
- "gd$etag": "W/\"CE4GSX47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:fr3ik4pxgs8"
- },
- "published": {
- "$t": "2012-04-16T02:22:08.000Z"
- },
- "updated": {
- "$t": "2012-04-16T02:22:08.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Howto",
- "label": "Howto & Style"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "moi"
- }
- ],
- "title": {
- "$t": "FootConnect_Ver1"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/fr3ik4pxgs8?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=fr3ik4pxgs8&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/fr3ik4pxgs8/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/fr3ik4pxgs8/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=fr3ik4pxgs8"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/fr3ik4pxgs8?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "trinhvandien82"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/trinhvandien82"
- },
- "yt$userId": {
- "$t": "sFieUQ5yo-6wQxO4JsTlJg"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/fr3ik4pxgs8/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Howto",
- "label": "Howto & Style",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/fr3ik4pxgs8?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 430,
- "yt$format": 5
- },
- {
- "url": "rtsp://v8.cache8.c.youtube.com/CiILENy73wIaGQnPgnGKk-K9fhMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 430,
- "yt$format": 1
- },
- {
- "url": "rtsp://v6.cache2.c.youtube.com/CiILENy73wIaGQnPgnGKk-K9fhMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 430,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "trinhvandien82",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "trinhvandien82"
- }
- ],
- "media$description": {
- "$t": "Football Connection App",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "video, moi"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=fr3ik4pxgs8&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/fr3ik4pxgs8/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:03:35",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/fr3ik4pxgs8/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/fr3ik4pxgs8/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/fr3ik4pxgs8/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:47.500",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/fr3ik4pxgs8/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:03:35",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/fr3ik4pxgs8/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:05:22.500",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "FootConnect_Ver1",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "430"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:22:08.000Z"
- },
- "yt$videoid": {
- "$t": "fr3ik4pxgs8"
- }
- }
- },
- {
- "gd$etag": "W/\"CkUNQn47eCp7I2A9WhVXFUg.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:V8G4q3AiMfw"
- },
- "published": {
- "$t": "2012-04-16T02:18:04.000Z"
- },
- "updated": {
- "$t": "2012-04-16T04:24:53.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Sports",
- "label": "Sports"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "jv"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "football"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "highlights"
- }
- ],
- "title": {
- "$t": "Tejon Anthony Sophomore Football Highlight"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/V8G4q3AiMfw?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=V8G4q3AiMfw&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/V8G4q3AiMfw/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/V8G4q3AiMfw/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=V8G4q3AiMfw"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/V8G4q3AiMfw?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "McJagger13"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/McJagger13"
- },
- "yt$userId": {
- "$t": "-mzo8fl_pEwzoMzlYsIwYQ"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/V8G4q3AiMfw/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Sports",
- "label": "Sports",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/V8G4q3AiMfw?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 330,
- "yt$format": 5
- },
- {
- "url": "rtsp://v2.cache6.c.youtube.com/CiILENy73wIaGQn8MSJwq7jBVxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 330,
- "yt$format": 1
- },
- {
- "url": "rtsp://v7.cache3.c.youtube.com/CiILENy73wIaGQn8MSJwq7jBVxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 330,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "mcjagger13",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "McJagger13"
- }
- ],
- "media$description": {
- "$t": "half of my football season",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "jv, football, highlights"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=V8G4q3AiMfw&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/V8G4q3AiMfw/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:45",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/V8G4q3AiMfw/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/V8G4q3AiMfw/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/V8G4q3AiMfw/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:01:22.500",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/V8G4q3AiMfw/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:02:45",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/V8G4q3AiMfw/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:04:07.500",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Tejon Anthony Sophomore Football Highlight",
- "type": "plain"
- },
- "yt$aspectRatio": {
- "$t": "widescreen"
- },
- "yt$duration": {
- "seconds": "330"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:18:04.000Z"
- },
- "yt$videoid": {
- "$t": "V8G4q3AiMfw"
- }
- },
- "gd$rating": {
- "average": 5,
- "max": 5,
- "min": 1,
- "numRaters": 2,
- "rel": "http://schemas.google.com/g/2005#overall"
- },
- "yt$statistics": {
- "favoriteCount": "0",
- "viewCount": "25"
- },
- "yt$rating": {
- "numDislikes": "0",
- "numLikes": "2"
- }
- },
- {
- "gd$etag": "W/\"CEMERH47eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:kJhXN-rHX2Q"
- },
- "published": {
- "$t": "2012-04-16T02:13:25.000Z"
- },
- "updated": {
- "$t": "2012-04-16T02:13:25.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "Entertainment",
- "label": "Entertainment"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "R5"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Love"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Story"
- }
- ],
- "title": {
- "$t": "Love Me R5 Love Story Episode 10"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/kJhXN-rHX2Q?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=kJhXN-rHX2Q&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/kJhXN-rHX2Q/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/kJhXN-rHX2Q/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=kJhXN-rHX2Q"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/kJhXN-rHX2Q?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "BrookieBoo867"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/BrookieBoo867"
- },
- "yt$userId": {
- "$t": "ze3g9dgUy02MbcqwKkscaQ"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/kJhXN-rHX2Q/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "Entertainment",
- "label": "Entertainment",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/kJhXN-rHX2Q?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 40,
- "yt$format": 5
- },
- {
- "url": "rtsp://v7.cache5.c.youtube.com/CiILENy73wIaGQlkX8fqN1eYkBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 40,
- "yt$format": 1
- },
- {
- "url": "rtsp://v7.cache5.c.youtube.com/CiILENy73wIaGQlkX8fqN1eYkBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 40,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "brookieboo867",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "BrookieBoo867"
- }
- ],
- "media$description": {
- "$t": "***With the Boys*** Andy: So you live right next door to Mads? Ross: *nods* Yepp. ???: *runs out of the house* RIKER! PLEASE DON'T KILL ME!!!! Riker: *runs out behind ???* ROCKY YOU'RE DEAD!!! Andy: You're brothers? *points to Riker and Rocky running down the road* Ross: *nods his head* Unfortunately. Ryland: *walks out of the house* Hey bro. Whos that? *points to Andy* Ross: This is Maddy's friend Andy from Tennessee. *turns to Andy* This is my little brother Ryland. Andy: Nice to meet you. Ryland: You too. Ross: So what'd Rocky do to Riker? Ryland: Long story short, Rocky was being stupid again. Ross: *nods his head* I shouldv'e known. Andy: Hey have you ever seen Mads try to play football? Ross: Nah. *smiles* I bet its funny. She doesn't seem like the athletic type Andy: *laughs* Oh. she's not. Ryland: We should ask her to come play football. Us, Riker, Rocky, and Rydel Ross: And Madison and Bree. Ryland: Who? Andy: Mads other friends. Ryland: *smiles* Are they hot? Ross: *starts laughing* As Maddy's boyfriend, Im not authorized to say yes or no. Andy: They're hot. *laughs* Ryland: YES! ***the guys get everyone at the park to play football*** Rydel: Ok Me and Ratliff are captains. Rocky: Not fair. *crosses his arms and starts pouting* Madison: Oh come on. Don't get your panties in a knot. Rocky: Grrr. Fiesty. I like that *winks at Madison* Madison: *laughs* I think you have a twitch. Riker: I like this girl! *high fives Madison* Rocky: Me too. *smiles at Madison* Bree ... ",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "R5, Love, Story"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=kJhXN-rHX2Q&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/kJhXN-rHX2Q/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:20",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/kJhXN-rHX2Q/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/kJhXN-rHX2Q/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/kJhXN-rHX2Q/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:10",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/kJhXN-rHX2Q/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:20",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/kJhXN-rHX2Q/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:30",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Love Me R5 Love Story Episode 10",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "40"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:13:25.000Z"
- },
- "yt$videoid": {
- "$t": "kJhXN-rHX2Q"
- }
- }
- },
- {
- "gd$etag": "W/\"CEMHR347eCp7I2A9WhVXFUk.\"",
- "id": {
- "$t": "tag:youtube.com,2008:video:hNdMghxKYeg"
- },
- "published": {
- "$t": "2012-04-16T02:13:56.000Z"
- },
- "updated": {
- "$t": "2012-04-16T02:13:56.000Z"
- },
- "category": [
- {
- "scheme": "http://schemas.google.com/g/2005#kind",
- "term": "http://gdata.youtube.com/schemas/2007#video"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat",
- "term": "People",
- "label": "People & Blogs"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Rubén"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Aguirre"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Gremio"
- },
- {
- "scheme": "http://gdata.youtube.com/schemas/2007/keywords.cat",
- "term": "Giovani"
- }
- ],
- "title": {
- "$t": "Rubén Aguirre - Un saludo a Grêmio Football Club e Giovani Chambón!"
- },
- "content": {
- "type": "application/x-shockwave-flash",
- "src": "https://www.youtube.com/v/hNdMghxKYeg?version=3&f=videos&app=youtube_gdata"
- },
- "link": [
- {
- "rel": "alternate",
- "type": "text/html",
- "href": "https://www.youtube.com/watch?v=hNdMghxKYeg&feature=youtube_gdata"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.responses",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/hNdMghxKYeg/responses?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#video.related",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/hNdMghxKYeg/related?v=2"
- },
- {
- "rel": "http://gdata.youtube.com/schemas/2007#mobile",
- "type": "text/html",
- "href": "https://m.youtube.com/details?v=hNdMghxKYeg"
- },
- {
- "rel": "self",
- "type": "application/atom+xml",
- "href": "https://gdata.youtube.com/feeds/api/videos/hNdMghxKYeg?v=2"
- }
- ],
- "author": [
- {
- "name": {
- "$t": "Bblackjoe"
- },
- "uri": {
- "$t": "https://gdata.youtube.com/feeds/api/users/Bblackjoe"
- },
- "yt$userId": {
- "$t": "ONOyAdsF99aRKEnzxtdaag"
- }
- }
- ],
- "yt$accessControl": [
- {
- "action": "comment",
- "permission": "allowed"
- },
- {
- "action": "commentVote",
- "permission": "allowed"
- },
- {
- "action": "videoRespond",
- "permission": "moderated"
- },
- {
- "action": "rate",
- "permission": "allowed"
- },
- {
- "action": "embed",
- "permission": "allowed"
- },
- {
- "action": "list",
- "permission": "allowed"
- },
- {
- "action": "autoPlay",
- "permission": "allowed"
- },
- {
- "action": "syndicate",
- "permission": "allowed"
- }
- ],
- "gd$comments": {
- "gd$feedLink": {
- "rel": "http://gdata.youtube.com/schemas/2007#comments",
- "href": "https://gdata.youtube.com/feeds/api/videos/hNdMghxKYeg/comments?v=2",
- "countHint": 0
- }
- },
- "media$group": {
- "media$category": [
- {
- "$t": "People",
- "label": "People & Blogs",
- "scheme": "http://gdata.youtube.com/schemas/2007/categories.cat"
- }
- ],
- "media$content": [
- {
- "url": "https://www.youtube.com/v/hNdMghxKYeg?version=3&f=videos&app=youtube_gdata",
- "type": "application/x-shockwave-flash",
- "medium": "video",
- "isDefault": "true",
- "expression": "full",
- "duration": 25,
- "yt$format": 5
- },
- {
- "url": "rtsp://v7.cache4.c.youtube.com/CiILENy73wIaGQnoYUocgkzXhBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 25,
- "yt$format": 1
- },
- {
- "url": "rtsp://v5.cache8.c.youtube.com/CiILENy73wIaGQnoYUocgkzXhBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp",
- "type": "video/3gpp",
- "medium": "video",
- "expression": "full",
- "duration": 25,
- "yt$format": 6
- }
- ],
- "media$credit": [
- {
- "$t": "bblackjoe",
- "role": "uploader",
- "scheme": "urn:youtube",
- "yt$display": "Bblackjoe"
- }
- ],
- "media$description": {
- "$t": "Rubén Aguirre em sua twitcam se dirigindo a minha pessoa =)",
- "type": "plain"
- },
- "media$keywords": {
- "$t": "Rubén, Aguirre, Gremio, Giovani"
- },
- "media$license": {
- "$t": "youtube",
- "type": "text/html",
- "href": "http://www.youtube.com/t/terms"
- },
- "media$player": {
- "url": "https://www.youtube.com/watch?v=hNdMghxKYeg&feature=youtube_gdata_player"
- },
- "media$thumbnail": [
- {
- "url": "http://i.ytimg.com/vi/hNdMghxKYeg/default.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:12.500",
- "yt$name": "default"
- },
- {
- "url": "http://i.ytimg.com/vi/hNdMghxKYeg/mqdefault.jpg",
- "height": 180,
- "width": 320,
- "yt$name": "mqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/hNdMghxKYeg/hqdefault.jpg",
- "height": 360,
- "width": 480,
- "yt$name": "hqdefault"
- },
- {
- "url": "http://i.ytimg.com/vi/hNdMghxKYeg/1.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:06.250",
- "yt$name": "start"
- },
- {
- "url": "http://i.ytimg.com/vi/hNdMghxKYeg/2.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:12.500",
- "yt$name": "middle"
- },
- {
- "url": "http://i.ytimg.com/vi/hNdMghxKYeg/3.jpg",
- "height": 90,
- "width": 120,
- "time": "00:00:18.750",
- "yt$name": "end"
- }
- ],
- "media$title": {
- "$t": "Rubén Aguirre - Un saludo a Grêmio Football Club e Giovani Chambón!",
- "type": "plain"
- },
- "yt$duration": {
- "seconds": "25"
- },
- "yt$uploaded": {
- "$t": "2012-04-16T02:13:56.000Z"
- },
- "yt$videoid": {
- "$t": "hNdMghxKYeg"
- }
- }
- }
- ]
- }
-}
diff --git a/test/resources/eson1.json b/test/resources/eson1.json
deleted file mode 100644
index 34e00a2..0000000
--- a/test/resources/eson1.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "type": "Object",
- "expanded": true,
- "props": [
- {
- "id": "[ID]",
- "name": "obj",
- "value": {
- "type": "Object",
- "expanded": true,
- "props": [
- {
- "id": "[ID]",
- "name": "arr",
- "value": {
- "type": "Array",
- "expanded": true,
- "items": [
- {
- "id": "[ID]",
- "value": {
- "type": "value",
- "value": 1
- }
- },
- {
- "id": "[ID]",
- "value": {
- "type": "value",
- "value": 2
- }
- },
- {
- "id": "[ID]",
- "value": {
- "type": "Object",
- "expanded": true,
- "props": [
- {
- "id": "[ID]",
- "name": "first",
- "value": {
- "type": "value",
- "value": 3
- }
- },
- {
- "id": "[ID]",
- "name": "last",
- "value": {
- "type": "value",
- "value": 4
- }
- }
- ]
- }
- }
- ]
- }
- }
- ]
- }
- },
- {
- "id": "[ID]",
- "name": "str",
- "value": {
- "type": "value",
- "value": "hello world"
- }
- },
- {
- "id": "[ID]",
- "name": "nill",
- "value": {
- "type": "value",
- "value": null
- }
- },
- {
- "id": "[ID]",
- "name": "bool",
- "value": {
- "type": "value",
- "value": false
- }
- }
- ]
-}
diff --git a/test/resources/eson2.json b/test/resources/eson2.json
deleted file mode 100644
index e2c0419..0000000
--- a/test/resources/eson2.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "type": "Object",
- "props": [
- {
- "id": "[ID]",
- "name": "obj",
- "value": {
- "type": "Object",
- "props": [
- {
- "id": "[ID]",
- "name": "a",
- "value": {
- "type": "value",
- "value": 2
- }
- }
- ]
- }
- },
- {
- "id": "[ID]",
- "name": "arr",
- "value": {
- "type": "Array",
- "items": [
- {
- "id": "[ID]",
- "value": {
- "type": "value",
- "value": 3
- }
- }
- ]
- }
- }
- ]
-}
diff --git a/test/resources/json1.json b/test/resources/json1.json
deleted file mode 100644
index e7ca309..0000000
--- a/test/resources/json1.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "obj": {
- "arr": [1,2, {"first":3,"last":4}]
- },
- "str": "hello world",
- "nill": null,
- "bool": false
-}
diff --git a/test/stringUtils.test.js b/test/stringUtils.test.js
deleted file mode 100644
index f14af22..0000000
--- a/test/stringUtils.test.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import test from 'ava';
-import { escapeHTML, unescapeHTML, findUniqueName } from '../src/utils/stringUtils'
-
-test('escapeHTML', t => {
- t.is(escapeHTML(' hello '), '\u00A0\u00A0 hello \u00A0')
- t.is(escapeHTML('\u00A0 hello'), '\u00A0 hello')
- t.is(escapeHTML('hello\nworld'), 'hello\\nworld')
-
- // TODO: test escapeHTML more thorougly
-})
-
-test('unescapeHTML', t => {
- t.is(unescapeHTML(' \u00A0 hello \u00A0'), ' hello ')
- t.is(unescapeHTML('\u00A0 hello'), ' hello')
-
- t.is(unescapeHTML('hello\\nworld'), 'hello\nworld')
-
- // TODO: test unescapeHTML more thorougly
-})
-
-test('findUniqueName', t => {
- t.is(findUniqueName('other', ['a', 'b', 'c']), 'other')
- t.is(findUniqueName('b', ['a', 'b', 'c']), 'b (copy)')
- t.is(findUniqueName('b', ['a', 'b', 'c', 'b (copy)']), 'b (copy 2)')
- t.is(findUniqueName('b', ['a', 'b', 'c', 'b (copy)', 'b (copy 2)']), 'b (copy 3)')
-})
diff --git a/test/test_bootstrap.html b/test/test_bootstrap.html
deleted file mode 100644
index 714fa93..0000000
--- a/test/test_bootstrap.html
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Test with bootstrap
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/test/test_build.html b/test/test_build.html
deleted file mode 100644
index 0a4bc97..0000000
--- a/test/test_build.html
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Switch editor mode using the mode box.
- Note that the mode can be changed programmatically as well using the method
- editor.setMode(mode)
, try it in the console of your browser.
-
-
-
-
-
-
-
diff --git a/test/test_destroy.html b/test/test_destroy.html
deleted file mode 100644
index f60236f..0000000
--- a/test/test_destroy.html
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Switch editor mode using the mode box.
- Note that the mode can be changed programmatically as well using the method
- editor.setMode(mode)
, try it in the console of your browser.
-
-
-
-
-
- Destroy
-
-
-
-
-
diff --git a/test/test_materialize.html b/test/test_materialize.html
deleted file mode 100644
index c57f3d1..0000000
--- a/test/test_materialize.html
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Switch editor mode using the mode box.
- Note that the mode can be changed programmatically as well using the method
- editor.setMode(mode)
, try it in the console of your browser.
-
-
-
-
-
-
-
diff --git a/test/test_minimalist.html b/test/test_minimalist.html
deleted file mode 100644
index 257927b..0000000
--- a/test/test_minimalist.html
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Switch editor mode using the mode box.
- Note that the mode can be changed programmatically as well using the method
- editor.setMode(mode)
, try it in the console of your browser.
-
-
-
-
-
-
-
diff --git a/test/test_schema.html b/test/test_schema.html
deleted file mode 100644
index f95b1ab..0000000
--- a/test/test_schema.html
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Switch editor mode using the mode box.
- Note that the mode can be changed programmatically as well using the method
- editor.setMode(mode)
, try it in the console of your browser.
-
-
-
-
-
-
-
diff --git a/test/util.test.bak.js b/test/util.test.bak.js
deleted file mode 100644
index fbeaff5..0000000
--- a/test/util.test.bak.js
+++ /dev/null
@@ -1,91 +0,0 @@
-var assert = require('assert');
-var util = require('./js/util');
-
-// console.log('TEST', util.parsePath('.items[3].name'));
-// console.log('TEST', util.parsePath('.items[*].name'));
-
-describe('util', function () {
-
- describe('sanitize', function () {
-
- it('should leave valid JSON as is', function () {
- assert.equal(util.sanitize('{"a":2}'), '{"a":2}');
- });
-
- it('should replace JavaScript with JSON', function () {
- assert.equal(util.sanitize('{a:2}'), '{"a":2}');
- assert.equal(util.sanitize('{\'a\':2}'), '{"a":2}');
- assert.equal(util.sanitize('{a:\'foo\'}'), '{"a":"foo"}');
- assert.equal(util.sanitize('{a:\'foo\',b:\'bar\'}'), '{"a":"foo","b":"bar"}');
-
- // should leave string content untouched
- assert.equal(util.sanitize('"{a:b}"'), '"{a:b}"');
- });
-
- it('should add/remove escape characters', function () {
- assert.equal(util.sanitize('"foo\'bar"'), '"foo\'bar"');
- assert.equal(util.sanitize('"foo\\"bar"'), '"foo\\"bar"');
- assert.equal(util.sanitize('\'foo"bar\''), '"foo\\"bar"');
- assert.equal(util.sanitize('\'foo\\\'bar\''), '"foo\'bar"');
- assert.equal(util.sanitize('"foo\\\'bar"'), '"foo\'bar"');
- });
-
- it('remove comments', function () {
- assert.equal(util.sanitize('/* foo */ {}'), ' {}');
- assert.equal(util.sanitize('/* foo */ {}'), ' {}');
- assert.equal(util.sanitize('{a:\'foo\',/*hello*/b:\'bar\'}'), '{"a":"foo","b":"bar"}');
- assert.equal(util.sanitize('{\na:\'foo\',//hello\nb:\'bar\'\n}'), '{\n"a":"foo",\n"b":"bar"\n}');
-
- // should not remove comments in string
- assert.equal(util.sanitize('{"str":"/* foo */"}'), '{"str":"/* foo */"}');
- });
-
- it('should strip JSONP notation', function () {
- // matching
- assert.equal(util.sanitize('callback_123({});'), '{}');
- assert.equal(util.sanitize('callback_123([]);'), '[]');
- assert.equal(util.sanitize('callback_123(2);'), '2');
- assert.equal(util.sanitize('callback_123("foo");'), '"foo"');
- assert.equal(util.sanitize('callback_123(null);'), 'null');
- assert.equal(util.sanitize('callback_123(true);'), 'true');
- assert.equal(util.sanitize('callback_123(false);'), 'false');
- assert.equal(util.sanitize('/* foo bar */ callback_123 ({})'), '{}');
- assert.equal(util.sanitize('/* foo bar */ callback_123 ({})'), '{}');
- assert.equal(util.sanitize('/* foo bar */\ncallback_123({})'), '{}');
- assert.equal(util.sanitize('/* foo bar */ callback_123 ( {} )'), ' {} ');
- assert.equal(util.sanitize(' /* foo bar */ callback_123 ({}); '), '{}');
- assert.equal(util.sanitize('\n/* foo\nbar */\ncallback_123 ({});\n\n'), '{}');
-
- // non-matching
- assert.equal(util.sanitize('callback abc({});'), 'callback abc({});');
- assert.equal(util.sanitize('callback {}'), 'callback {}');
- assert.equal(util.sanitize('callback({}'), 'callback({}');
- });
-
- });
-
- describe('path', function () {
-
- it ('should parse a json path', function () {
- assert.deepEqual(util.parsePath(''), []);
- assert.deepEqual(util.parsePath('.foo'), ['foo']);
- assert.deepEqual(util.parsePath('.foo.bar'), ['foo', 'bar']);
- assert.deepEqual(util.parsePath('.foo[2]'), ['foo', 2]);
- assert.deepEqual(util.parsePath('.foo[2].bar'), ['foo', 2, 'bar']);
- assert.deepEqual(util.parsePath('.foo["prop with spaces"]'), ['foo', 'prop with spaces']);
- assert.deepEqual(util.parsePath('.foo[*].bar'), ['foo', '*', 'bar']);
- });
-
- it ('should throw an exception in case of an invalid path', function () {
- assert.throws(function () {util.parsePath('.')}, /Error/);
- assert.throws(function () {util.parsePath('[')}, /Error/);
- assert.throws(function () {util.parsePath('[]')}, /Error/);
- assert.throws(function () {util.parsePath('.[]')}, /Error/);
- assert.throws(function () {util.parsePath('["23]')}, /Error/);
- assert.throws(function () {util.parsePath('.foo bar')}, /Error/);
- });
-
- });
-
- // TODO: thoroughly test all util methods
-});
\ No newline at end of file
diff --git a/test/utils/assertDeepEqualEson.js b/test/utils/assertDeepEqualEson.js
deleted file mode 100644
index 6d2b18a..0000000
--- a/test/utils/assertDeepEqualEson.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// TODO: move assertDeepEqualEson into a separate function
-import {META} from "../../src/eson"
-import lodashTransform from "lodash/transform"
-
-export function assertDeepEqualEson (t, actual, expected, path = [], ignoreIds = true) {
- if (expected === undefined) {
- throw new Error('Argument "expected" is undefined')
- }
-
- // console.log('assertDeepEqualEson', actual, expected)
-
- const actualMeta = ignoreIds ? normalizeMetaIds(actual[META]) : actual[META]
- const expectedMeta = ignoreIds ? normalizeMetaIds(expected[META]) : expected[META]
-
- t.deepEqual(actualMeta, expectedMeta, `Meta data not equal, path=[${path.join(', ')}], actual[META]=${JSON.stringify(actualMeta)}, expected[META]=${JSON.stringify(expectedMeta)}`)
-
- if (actualMeta.type === 'Array') {
- t.deepEqual(actual.length, expected.length, 'Actual lengths of arrays should be equal, path=[${path.join(\', \')}]')
- actual.forEach((item, index) => assertDeepEqualEson(t, actual[index], expected[index], path.concat(index)), ignoreIds)
- }
- else if (actualMeta.type === 'Object') {
- t.deepEqual(Object.keys(actual).sort(), Object.keys(expected).sort(), 'Actual properties should be equal, path=[${path.join(\', \')}]')
- actualMeta.props.forEach(key => assertDeepEqualEson(t, actual[key], expected[key], path.concat(key)), ignoreIds)
- }
- else { // actual[META].type === 'value'
- t.deepEqual(Object.keys(actual), [], 'Value should not contain additional properties, path=[${path.join(\', \')}]')
- }
-}
-
-function normalizeMetaIds (meta) {
- return lodashTransform(meta, (result, value, key) => {
- if (key === 'id') {
- result[key] = '[ID]'
- }
- else {
- result[key] = value
- }
- }, {})
-}
-
diff --git a/webpack.config.js b/webpack.config.js
new file mode 100644
index 0000000..86e54c8
--- /dev/null
+++ b/webpack.config.js
@@ -0,0 +1,53 @@
+const webpack = require('webpack')
+
+const minifyPlugin = new webpack.optimize.UglifyJsPlugin({ sourceMap: true })
+
+const productionEnvPlugin = new webpack.DefinePlugin({
+ 'process.env': {
+ NODE_ENV: JSON.stringify('production')
+ }
+})
+
+module.exports = {
+ entry: './src/jsoneditor/index.vanilla.js',
+ devtool: 'source-map',
+ cache: true,
+ bail: true,
+ output: {
+ library: 'jsoneditor',
+ libraryTarget: 'umd',
+ filename: 'dist/jsoneditor.js'
+ },
+ plugins: [
+ // bannerPlugin,
+ productionEnvPlugin,
+ minifyPlugin
+ ],
+ module: {
+ rules: [
+ {
+ test: /\.js$/,
+ exclude: /node_modules/,
+ use: { loader: 'babel-loader'}
+ },
+ {
+ test: /\.css$/,
+ use: [ 'style-loader', 'css-loader' ]
+ },
+ {
+ test: /\.svg/,
+ use: {
+ loader: 'svg-url-loader',
+ options: {}
+ }
+ }
+ ]
+ },
+ // using preact saves in the order of 25 kB
+ resolve: {
+ 'alias': {
+ 'react': 'preact-compat',
+ 'react-dom': 'preact-compat'
+ }
+ }
+}
\ No newline at end of file
diff --git a/webpack.config.minimalist.js b/webpack.config.minimalist.js
new file mode 100644
index 0000000..96c3e77
--- /dev/null
+++ b/webpack.config.minimalist.js
@@ -0,0 +1,19 @@
+const webpack = require('webpack')
+const config = require('./webpack.config')
+const emptyFile = __dirname + '/src/jsoneditor/utils/empty.js'
+
+const excludeAcePlugin = new webpack.NormalModuleReplacementPlugin(new RegExp('assets\/ace'), emptyFile)
+const excludeAjvPlugin = new webpack.NormalModuleReplacementPlugin(new RegExp('^ajv$'), emptyFile)
+
+const configMinimalist = Object.assign({}, config, {
+ output: Object.assign({}, config.output, {
+ filename: 'dist/jsoneditor-minimalist.js'
+ }),
+
+ plugins: [
+ excludeAcePlugin,
+ excludeAjvPlugin
+ ].concat(config.plugins)
+})
+
+module.exports = configMinimalist